@talkjs/web-components 0.0.24 → 0.0.25

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/default.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use client";
2
2
  import xn from "htm";
3
- import oe, { useMemo as Y, useRef as b, useState as y, useEffect as v, useCallback as U, createElement as te, Fragment as Xn, useLayoutEffect as Ae, useContext as Gn, forwardRef as Ye, useImperativeHandle as jt } from "react";
3
+ import oe, { useMemo as U, useRef as B, useState as b, useEffect as v, useCallback as y, createElement as te, Fragment as Xn, useLayoutEffect as Ae, useContext as Gn, forwardRef as $e, useImperativeHandle as jt } from "react";
4
4
  import * as zn from "universal-base64";
5
5
  import { jsx as u, jsxs as x, Fragment as me } from "react/jsx-runtime";
6
6
  import Kn from "wavesurfer.js";
@@ -13,11 +13,11 @@ import { baseKeymap as fe } from "prosemirror-commands";
13
13
  import ta, { EmailMatch as na, UrlMatch as aa } from "autolinker";
14
14
  import { ReplaceStep as ia } from "prosemirror-transform";
15
15
  import { observable as H, opaqueObject as At, batch as le, observe as Ot, configureLegendState as sa, internal as ra } from "@legendapp/state";
16
- import { useSession as Ce, useStore as M, useController as Oe, useTheme as G, useEditorInternals as ge, useEmojiPicker as oa, usePopover as Ea, EmojiPickerContext as Gt, PopoverContext as la, useChatboxCallbacks as ca, EditorInternalsContext as zt, PermissionContext as Kt, StoreContext as Wt, ThemeContext as qt, ControllerContext as Jt, SessionContext as Zt, ChatboxCallbacksContext as _a } from "./globalConstants.js";
17
- import { useObservable as ee, useSelector as f, useObserveEffect as ce, For as Je } from "@legendapp/state/react";
16
+ import { useSession as Ce, useStore as k, useController as Oe, useTheme as G, useEditorInternals as ge, useEmojiPicker as oa, usePopover as Ea, EmojiPickerContext as Gt, PopoverContext as la, useChatboxCallbacks as ca, EditorInternalsContext as zt, PermissionContext as Kt, StoreContext as Wt, ThemeContext as qt, ControllerContext as Jt, SessionContext as Zt, ChatboxCallbacksContext as _a } from "./globalConstants.js";
17
+ import { useObservable as ee, useSelector as f, useObserveEffect as ce, For as Ze } from "@legendapp/state/react";
18
18
  import { CSSTransition as Aa } from "react-transition-group";
19
19
  import { useFloating as Oa } from "@floating-ui/react-dom";
20
- import * as xe from "@radix-ui/react-popover";
20
+ import * as Xe from "@radix-ui/react-popover";
21
21
  import * as Pe from "@radix-ui/react-dropdown-menu";
22
22
  import { ErrorBoundary as Qt } from "react-error-boundary";
23
23
  import { getTalkSession as Ta } from "@talkjs/core";
@@ -52,7 +52,7 @@ function Tt(e, t) {
52
52
  }
53
53
  const ut = ["#996666", "#9A6E61", "#8D7662", "#8E775E", "#948771", "#8A8360", "#888D65", "#6F8E63", "#749378", "#678975", "#779E86", "#639A8F", "#6D92A1", "#65869F", "#697E9A", "#736C9F", "#8C6495", "#956387", "#B05D54", "#B16D52", "#AF8751", "#AC8A56", "#B7A458", "#B5B35C", "#83AA5D", "#4F9D5D", "#5FA777", "#66B58F", "#5FB3AC", "#589AAF", "#4E7F9E", "#456CAC", "#6456B7", "#714AB2", "#9771B5", "#C154C1", "#B05E81", "#B04C6A", "#B94E48", "#AF593E", "#C5994B", "#B8C25D", "#87AB39", "#4FA83D", "#40A860", "#41AA78", "#3AB09E", "#3FC1AA", "#56B4BE", "#3EABBF", "#4682B4", "#7A58C1", "#9966CC", "#C54B8C", "#B44668", "#AE4560", "#A3807B", "#AB917A", "#ACA586", "#A8AF8E", "#9EA587", "#8BA690", "#7DA98D", "#7CB0A1", "#8BA9A5", "#7CA1A6", "#859FAF", "#8D90A1", "#A397B4", "#AE809E", "#C08081", "#BB8983", "#B19461", "#B5A27F", "#B8B56A", "#9AB973", "#7AC488", "#7CB7BB", "#80B3C4", "#788BBA", "#7A89B8", "#9678B6", "#CB8FA9", "#B57281", "#C6726B", "#C88A65", "#C2955D", "#C8B568", "#B9C46A", "#74C365", "#6FD0C5", "#6093D1", "#7666C6", "#D06DA1"], ma = Symbol("no_render");
54
54
  function V(e) {
55
- const t = ee(!1), n = b({ _value: typeof e == "function" ? e() : e.peek(), get value() {
55
+ const t = ee(!1), n = B({ _value: typeof e == "function" ? e() : e.peek(), get value() {
56
56
  return setTimeout(() => {
57
57
  t.set(!0);
58
58
  }), n.current._value;
@@ -66,8 +66,8 @@ function V(e) {
66
66
  }), n.current;
67
67
  }
68
68
  function Te() {
69
- const e = Ce(), t = M(), n = Oe(), a = G(), i = V(t.app$.appMetadata), s = V(t.currentUser$), r = V(t.state$.currentConversation), o = V(t.t$), E = V(t.device$), l = V(t.themeCustom$), c = V(() => t.state$.typing.child(t.state$.extCurrentConversationId.get()).get()), T = V(() => t.state$.participants.child(t.state$.extCurrentConversationId.get()).get());
70
- return Y(() => ({ session: e, store: t, chatbox: n, theme: a, get app() {
69
+ const e = Ce(), t = k(), n = Oe(), a = G(), i = V(t.app$.appMetadata), s = V(t.currentUser$), r = V(t.state$.currentConversation), o = V(t.t$), E = V(t.device$), l = V(t.themeCustom$), c = V(() => t.state$.typing.child(t.state$.extCurrentConversationId.get()).get()), _ = V(() => t.state$.participants.child(t.state$.extCurrentConversationId.get()).get());
70
+ return U(() => ({ session: e, store: t, chatbox: n, theme: a, get app() {
71
71
  return i.value;
72
72
  }, get currentUser() {
73
73
  return s.value;
@@ -82,12 +82,12 @@ function Te() {
82
82
  }, get typing() {
83
83
  return c.value;
84
84
  }, get participants() {
85
- return T.value;
86
- } }), [i, n, r, s, E, t, o, a, l, c, T, e]);
85
+ return _.value;
86
+ } }), [i, n, r, s, E, t, o, a, l, c, _, e]);
87
87
  }
88
88
  function tn() {
89
- const e = Ce(), t = M(), n = G(), a = Oe(), i = V(t.app$.appMetadata), s = V(t.currentUser$), r = V(t.t$), o = V(t.device$), E = V(t.themeCustom$);
90
- return Y(() => ({ session: e, store: t, theme: n, conversationList: a, get app() {
89
+ const e = Ce(), t = k(), n = G(), a = Oe(), i = V(t.app$.appMetadata), s = V(t.currentUser$), r = V(t.t$), o = V(t.device$), E = V(t.themeCustom$);
90
+ return U(() => ({ session: e, store: t, theme: n, conversationList: a, get app() {
91
91
  return i.value;
92
92
  }, get currentUser() {
93
93
  return s.value;
@@ -99,12 +99,12 @@ function tn() {
99
99
  return E.value.value;
100
100
  } }), [i, a, s, o, e, t, r, n, E]);
101
101
  }
102
- class $e {
102
+ class je {
103
103
  constructor(t = {}) {
104
104
  this._handlers = /* @__PURE__ */ new Set(), this._meta = t;
105
105
  }
106
106
  meta(t) {
107
- return new $e(t);
107
+ return new je(t);
108
108
  }
109
109
  _emit(t, n) {
110
110
  for (const a of this._handlers) a({ level: t, data: n, timestamp: Date.now(), meta: this._meta });
@@ -128,19 +128,19 @@ class $e {
128
128
  return this._handlers.add(t), () => this._handlers.delete(t);
129
129
  }
130
130
  }
131
- const Ze = new $e(), q = new $e(), O = { code: "en-US", name: "English (US)", translation: { YESTERDAY: "Yesterday", TODAY: "Today", DAYS: "d", HOURS: "h", MINUTES: "m", JUST_NOW: "just now", LOCATION: "Location", CANCEL: "Cancel", INBOX: "Inbox", DESKTOP_NOTIFICATIONS: "Browser notifications", DESKTOP_NOTIFICATIONS_ERROR: "Can't enable browser notifications because your browser actively blocks them. Try looking in the settings or using a different browser.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `${e} demo notification`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "If you keep your browser tab open, you'll see this pop up when someone talks to you.", SEND_BUTTON_TEXT: "Send", ENTRYBOX_TEXT_LIMIT: "Only 10,000 characters are allowed.", ENTRYBOX_PLACEHOLDER: "Say something...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "This conversation is no longer active.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "You can read, but not send messages.", MESSAGELIST_LOADING_OLDER: "Loading older messages...", MESSAGELIST_SHOW_OLDER: "Show older messages", MESSAGELIST_NEW_MARKER: "New", MESSAGE_SENT_VIA_EMAIL: "This message was sent via email", YOU_MARKER: "you", UPLOAD_IN_PROGRESS: "Uploading...", UPLOAD_SEND_FILE: "Send file", UPLOAD_SHARE_LOCATION: "Share location", UPLOAD_ERROR: "Unfortunately, something went wrong uploading. The file might be unsupported or too large.", SHARE_LOCATION_ERROR: "Cannot share location: ", LOADING: "Loading...", HUB_EMPTY: "Your chat history will show up here", HUB_SHOW_EARLIER: "Show earlier chats", INBOX_NO_CHATS_TITLE: "No chats yet!", INBOX_NO_CHATS_BODY: "Once you've had one or more conversations, they will show up here.", ENABLE_TRANSLATION: "Translate this conversation to English", DISABLE_TRANSLATION: "Show original", SEARCH_PLACEHOLDER_TEXT: "Search...", SEARCH_SEARCHING: "Searching...", SEARCH_NO_RESULTS: "No results found", SEARCH_NO_MORE_RESULTS: "No more results", CHAT_NOT_FOUND: "Chat not found", DELETE_MESSAGE: "Delete message", DELETION_EXPLANATION: "If you delete this message, it will disappear for everybody.", EDIT_MESSAGE: "Edit message", SAVE: "Save", EDITED_INDICATOR: "edited", REPLY_TO_MESSAGE: "Reply", REPLY_TO_ARIA_LABEL: (e, t) => `Replying to ${e}: ${t}`, REPLY_MODE_LEAVE_ARIA_LABEL: "Exit reply mode", ADD_REACTION: "Add reaction", AUTH_EXPIRED_OVERLAY_TITLE: "Your chat session has expired", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "Refresh the page to continue", VOICE_MESSAGE: "Voice message", LEAVE_CONVERSATION: "Leave conversation", MARK_CONVERSATION_AS_UNREAD: "Mark as unread", STATUS_INDICATOR_ONLINE: "Active", STATUS_INDICATOR_OFFLINE: "Away", CONTACT_INFORMATION_HIDDEN: "hidden information" } }, pa = { code: "ar", name: "Arabic", translation: { YESTERDAY: "الأمس", TODAY: "اليوم", DAYS: "يوم", HOURS: "ساعة", MINUTES: "دقيقة", JUST_NOW: "فقط الآن", LOCATION: "الموقع", CANCEL: "إلغاء", INBOX: "علبة الوارد", DESKTOP_NOTIFICATIONS: "إشعارات المتصفح", DESKTOP_NOTIFICATIONS_ERROR: "لا يمكن تمكين إشعارات المتصفح لأن متصفحك يمنعها بشكل نشط. جرّب البحث في الإعدادات أو استخدام متصفح آخر.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `إعلام ${e} التجريبي`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "إذا أبقيت علامة تبويب المتصفح مفتوحة ، فسترى هذا ينبثق عندما يتحدث شخص معك.", SEND_BUTTON_TEXT: "إرسال", ENTRYBOX_TEXT_LIMIT: "يُسمح فقط بـ 10.000 حرف.", ENTRYBOX_PLACEHOLDER: "قل شيئًا ...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "هذه المحادثة لم تعد نشطة.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "يمكنك القراءة ، لكن لا يمكنك إرسال الرسائل.", MESSAGELIST_LOADING_OLDER: "جارٍ تحميل الرسائل القديمة ...", MESSAGELIST_SHOW_OLDER: "عرض الرسائل الأقدم", MESSAGELIST_NEW_MARKER: "جديد", MESSAGE_SENT_VIA_EMAIL: "تم إرسال هذه الرسالة عبر البريد الإلكتروني", YOU_MARKER: "أنت", UPLOAD_IN_PROGRESS: "جارٍ التحميل ...", UPLOAD_SEND_FILE: "إرسال ملف", UPLOAD_SHARE_LOCATION: "مشاركة الموقع", UPLOAD_ERROR: "حدث خطأ ما في تحميل شيء. ربما يكون الملف غير متوافق أو كبير جدًا.", SHARE_LOCATION_ERROR: "لا يمكن مشاركة الموقع:", LOADING: "جارٍ التحميل ...", HUB_EMPTY: "سوف يظهر سجل الدردشات هنا", HUB_SHOW_EARLIER: "إظهار الدردشات السابقة", INBOX_NO_CHATS_TITLE: "لا توجد دردشات بعد!", INBOX_NO_CHATS_BODY: "بمجرد أن يكون لديك واحد أو أكثر من المحادثات ، سوف تظهر هنا.", ENABLE_TRANSLATION: "ترجم هذه المحادثة إلى العربية", DISABLE_TRANSLATION: "إظهار الأصلي", SEARCH_PLACEHOLDER_TEXT: "...بحث", SEARCH_SEARCHING: "...يتم الآن البحث", SEARCH_NO_RESULTS: "لم يتم العثور على نتائج", SEARCH_NO_MORE_RESULTS: "لا يوجد المزيد من النتائج", CHAT_NOT_FOUND: "لم يتم العثور على الدردشة", DELETE_MESSAGE: "احذف الرسالة", DELETION_EXPLANATION: "إذا قمت بحذف هذه الرسالة، فهي ستختفي للجميع.", EDIT_MESSAGE: "تعديل الرسالة", SAVE: "حفظ", EDITED_INDICATOR: "معدّلة", REPLY_TO_MESSAGE: "رد", ADD_REACTION: "أضف تفاعلاً", AUTH_EXPIRED_OVERLAY_TITLE: "انتهت جلسة الدردشة المخصصة لك", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "يُرجى إعادة تحميل الصفحة للمتابعة", VOICE_MESSAGE: "رسالة صوتية", CONTACT_INFORMATION_HIDDEN: "المعلومات المخفية", LEAVE_CONVERSATION: "الخروج من المحادثة", MARK_CONVERSATION_AS_UNREAD: "وضع علامة غير مقروءة", REPLY_TO_ARIA_LABEL: O.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: O.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: O.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: O.translation.STATUS_INDICATOR_OFFLINE } }, ha = { code: "bg-BG", name: "Bulgarian", translation: { YESTERDAY: "Вчера", TODAY: "Днес", DAYS: "Ден", HOURS: "Час", MINUTES: "m", JUST_NOW: "Току-що", LOCATION: "местоположението", CANCEL: "Откажи", INBOX: "Кутия", DESKTOP_NOTIFICATIONS: "Известия на браузъра", DESKTOP_NOTIFICATIONS_ERROR: "Не можете да активирате известията на браузъра, защото браузърът ви ги блокира активно. Опитайте да погледнете в настройките или да използвате друг браузър.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `${e} демо известие`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "Ако държите раздела на браузъра си отворен, ще видите този изскачащ прозорец, когато някой говори с вас.", SEND_BUTTON_TEXT: "Изпрати", ENTRYBOX_TEXT_LIMIT: "Разрешени са само до 10.000 знака.", ENTRYBOX_PLACEHOLDER: "Кажете нещо...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "Този ​​разговор вече не е активен.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "Можете да четете, но не и да изпращате съобщения.", MESSAGELIST_LOADING_OLDER: "Зареждане на по-стари съобщения...", MESSAGELIST_SHOW_OLDER: "Показване на по-стари съобщения", MESSAGELIST_NEW_MARKER: "Нови", MESSAGE_SENT_VIA_EMAIL: "Това съобщение беше изпратено по имейл", YOU_MARKER: "Вие", UPLOAD_IN_PROGRESS: "Качване...", UPLOAD_SEND_FILE: "Изпращане на файл", UPLOAD_SHARE_LOCATION: "Споделяне на местоположението", UPLOAD_ERROR: "За съжаление нещо се обърка при качването. Файлът може да не се поддържа или е твърде голям.", SHARE_LOCATION_ERROR: "Не може да се сподели местоположението: ", LOADING: "Зареждане...", HUB_EMPTY: "Историята на вашите разговори ще се покаже тук", HUB_SHOW_EARLIER: "Показване на по-ранни чатове", INBOX_NO_CHATS_TITLE: "Все още нямате разговори!", INBOX_NO_CHATS_BODY: "След като проведете един или повече разговори, те ще се покажат тук.", ENABLE_TRANSLATION: "Преведете този разговор на български", DISABLE_TRANSLATION: "Показване на оригинал", SEARCH_PLACEHOLDER_TEXT: "Търсене...", SEARCH_SEARCHING: "Търсене...", SEARCH_NO_RESULTS: "Няма намерени резултати", SEARCH_NO_MORE_RESULTS: "Няма повече резултати", CHAT_NOT_FOUND: "Чатът не е намерен", DELETE_MESSAGE: "Изтриване на съобщение", DELETION_EXPLANATION: "Ако изтриете това съобщение, то ще изчезне за всички.", EDIT_MESSAGE: "Редактиране на съобщението", SAVE: "Запиши", EDITED_INDICATOR: "редактирано", REPLY_TO_MESSAGE: "Отговори", ADD_REACTION: "Добави реакция", AUTH_EXPIRED_OVERLAY_TITLE: "Вашата чат сесия е изтекла", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "Обновете страницата, за да продължите", VOICE_MESSAGE: "Гласово съобщение", CONTACT_INFORMATION_HIDDEN: "Скрита информация", LEAVE_CONVERSATION: "Напускане на разговора", MARK_CONVERSATION_AS_UNREAD: "Маркирай като непрочетено", REPLY_TO_ARIA_LABEL: O.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: O.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: O.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: O.translation.STATUS_INDICATOR_OFFLINE } }, Da = { code: "bs-BA", name: "Bosnian", translation: { YESTERDAY: "Jučer", TODAY: "Danas", DAYS: "d", HOURS: "s", MINUTES: "m", JUST_NOW: "Upravo sad", LOCATION: "Lokacija", CANCEL: "Otkaži", INBOX: "Pretinac", DESKTOP_NOTIFICATIONS: "Obavijesti preglednika", DESKTOP_NOTIFICATIONS_ERROR: "Notifikacije preglednika se ne mogu omogućiti jer ih vaš preglednik aktivno blokira. Pokušajte pregledati postavke ili koristiti drugi preglednik.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `${e} demo notifikacija`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "Ako karticu preglednika ostavite otvorenu, pojavit će se ovaj pop-up kada netko razgovara s vama.", SEND_BUTTON_TEXT: "Pošalji", ENTRYBOX_TEXT_LIMIT: "Dozvoljeno je samo 10.000 znakova.", ENTRYBOX_PLACEHOLDER: "Reci nešto...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "Ovaj razgovor više nije aktivan.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "Možeš čitati, ali ne i slati poruke.", MESSAGELIST_LOADING_OLDER: "Učitavam starije poruke...", MESSAGELIST_SHOW_OLDER: "Prikaži starije poruke", MESSAGELIST_NEW_MARKER: "Novo", MESSAGE_SENT_VIA_EMAIL: "Ova poruka je poslana e-poštom", YOU_MARKER: "ti", UPLOAD_IN_PROGRESS: "Učitavam...", UPLOAD_SEND_FILE: "Pošalji datoteku", UPLOAD_SHARE_LOCATION: "Podijeli lokaciju", UPLOAD_ERROR: "Nažalost, nešto je pošlo krivo. Datoteka možda nije podržana ili je prevelika.", SHARE_LOCATION_ERROR: "Nije moguće podijeliti lokaciju: ", LOADING: "Učitavam...", HUB_EMPTY: "Ovdje će se prikazati vaša povijest razgovora", HUB_SHOW_EARLIER: "Prikaži ranije razgovore", INBOX_NO_CHATS_TITLE: "Nema razgovora!", INBOX_NO_CHATS_BODY: "Nakon što vodite jedan ili više razgovora, oni će se pojaviti ovdje.", ENABLE_TRANSLATION: "Prevedi ovaj razgovor na bosanski jezik", DISABLE_TRANSLATION: "Prikaži original", SEARCH_PLACEHOLDER_TEXT: "Pretraži...", SEARCH_SEARCHING: "Pretraživanje...", SEARCH_NO_RESULTS: "Nema rezultata", SEARCH_NO_MORE_RESULTS: "Nema više rezultata", CHAT_NOT_FOUND: "Ćaskanje nije pronađeno", DELETE_MESSAGE: "Obriši poruku", DELETION_EXPLANATION: "Ako izbrišete ovu poruku, ona će nestati za sve.", EDIT_MESSAGE: "Uredi poruku", SAVE: "Sačuvati", EDITED_INDICATOR: "uređeno", REPLY_TO_MESSAGE: "Odgovorite", ADD_REACTION: "Dodajte reakciju", AUTH_EXPIRED_OVERLAY_TITLE: "Vaša chat sesija je istekla", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "Osvježite stranicu da nastavite", VOICE_MESSAGE: "Glasovna poruka", CONTACT_INFORMATION_HIDDEN: "Skrivene informacije", LEAVE_CONVERSATION: "Napusti razgovor", MARK_CONVERSATION_AS_UNREAD: "Označi kao nepročitano", REPLY_TO_ARIA_LABEL: O.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: O.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: O.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: O.translation.STATUS_INDICATOR_OFFLINE } }, Ca = { code: "ca-ES", name: "Catalan (ES)", translation: { YESTERDAY: "Ahir", TODAY: "Avui", DAYS: "d", HOURS: "h", MINUTES: "m", JUST_NOW: "ara mateix", LOCATION: "Ubicació", CANCEL: "Cancel·lar", INBOX: "Safata d'entrada", DESKTOP_NOTIFICATIONS: "Notificacions d'escriptori", DESKTOP_NOTIFICATIONS_ERROR: "No es poden habilitar les notificacions del navegador perquè el teu navegador les bloqueja activament. Prova de buscar a la configuració o utilitza un altre navegador.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `Notificació de demostració de ${e}`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "Si mantens la pestanya del navegador oberta, veuràs aquesta notificació quan algú et parli.", SEND_BUTTON_TEXT: "Enviar", ENTRYBOX_TEXT_LIMIT: "Només es permeten 10.000 caràcters.", ENTRYBOX_PLACEHOLDER: "Digues alguna cosa...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "Aquesta conversa ja no està activa.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "Pots llegir, però no enviar missatges.", MESSAGELIST_LOADING_OLDER: "Carregant missatges antics...", MESSAGELIST_SHOW_OLDER: "Mostrar missatges més antics", MESSAGELIST_NEW_MARKER: "Nou", MESSAGE_SENT_VIA_EMAIL: "Aquest missatge s'ha enviat per correu electrònic", YOU_MARKER: "tu", UPLOAD_IN_PROGRESS: "S'està pujant...", UPLOAD_SEND_FILE: "Enviar arxiu", UPLOAD_SHARE_LOCATION: "Compartir ubicació", UPLOAD_ERROR: "Desafortunadament, alguna cosa ha anat malament en pujar. L'arxiu pot ser no compatible o massa gran.", SHARE_LOCATION_ERROR: "No es pot compartir la ubicació: ", LOADING: "Carregant...", HUB_EMPTY: "El teu historial de xat apareixerà aquí", HUB_SHOW_EARLIER: "Mostra xats anteriors", INBOX_NO_CHATS_TITLE: "Encara no hi ha xats!", INBOX_NO_CHATS_BODY: "Un cop hagis tingut una o més converses, apareixeran aquí.", ENABLE_TRANSLATION: "Traduir aquesta conversa al català", DISABLE_TRANSLATION: "Mostrar original", SEARCH_PLACEHOLDER_TEXT: "Cerca...", SEARCH_SEARCHING: "Buscant...", SEARCH_NO_RESULTS: "No s'han trobat resultats", SEARCH_NO_MORE_RESULTS: "No hi ha més resultats", CHAT_NOT_FOUND: "Xat no trobat", DELETE_MESSAGE: "Esborrar missatge", DELETION_EXPLANATION: "Si esborres aquest missatge, desapareixerà per a tothom.", EDIT_MESSAGE: "Editar missatge", SAVE: "Desar", EDITED_INDICATOR: "editat", REPLY_TO_MESSAGE: "Respondre", REPLY_TO_ARIA_LABEL: (e, t) => `Responent a ${e}: ${t}`, REPLY_MODE_LEAVE_ARIA_LABEL: "Sortir del mode de resposta", ADD_REACTION: "Afegir reacció", VOICE_MESSAGE: "Missatge de veu", LEAVE_CONVERSATION: "Abandonar la conversa", MARK_CONVERSATION_AS_UNREAD: "marcar com no llegit", STATUS_INDICATOR_ONLINE: "Actiu", STATUS_INDICATOR_OFFLINE: "Absent", CONTACT_INFORMATION_HIDDEN: "informació oculta", AUTH_EXPIRED_OVERLAY_TITLE: "La teva sessió de xat ha caducat", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "Actualitza la pàgina per continuar" } }, ga = { code: "cs-CZ", name: "Czech", translation: { YESTERDAY: "Včera", TODAY: "Dnes", DAYS: "d", HOURS: "h", MINUTES: "m", JUST_NOW: "právě teď", LOCATION: "Lokace", CANCEL: "Zrušit", INBOX: "Doručené", DESKTOP_NOTIFICATIONS: "Oznámení v prohlížeči", DESKTOP_NOTIFICATIONS_ERROR: "Nelze povolit notifikace prohlížeče, protože váš prohlížeč je aktivně blokuje. Zkuste se podívat na nastavení nebo zkuste použít jiný prohlížeč.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `${e} demo notifikace`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "Pokud necháte kartu prohlížeče otevřenou, uvidíte tento popup jakmile s vámi bude někdo mluvit.", SEND_BUTTON_TEXT: "Odeslat", ENTRYBOX_TEXT_LIMIT: "Je povoleno Maximálně 10.000 znaků.", ENTRYBOX_PLACEHOLDER: "Napište něco...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "Tato konverzace již není aktivní.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "Můžete číst, ale nemůžete posílat zprávy.", MESSAGELIST_LOADING_OLDER: "Nahrávám starší zprávy...", MESSAGELIST_SHOW_OLDER: "Zobrazit starší zprávy", MESSAGELIST_NEW_MARKER: "Nové", MESSAGE_SENT_VIA_EMAIL: "Tato zpráva byla odeslána přes mail.", YOU_MARKER: "vy", UPLOAD_IN_PROGRESS: "Nahrávám...", UPLOAD_SEND_FILE: "Poslat soubor", UPLOAD_SHARE_LOCATION: "Sdílet pozici", UPLOAD_ERROR: "Nepodařilo se nahrát soubor. Ten je buď nepodporován a/nebo příliš velký.", SHARE_LOCATION_ERROR: "Není možné sdílet pozici: ", LOADING: "Nahrávám...", HUB_EMPTY: "Vaše historie se zde zobrazí", HUB_SHOW_EARLIER: "Zobrazit dřívější konverzace", INBOX_NO_CHATS_TITLE: "Zatím zde nejsou žádné konverzace!", INBOX_NO_CHATS_BODY: "Jakmile budete mít jednu nebo více konverzací, objeví se zde.", ENABLE_TRANSLATION: "Přeložit tuto konverzaci do češtiny", DISABLE_TRANSLATION: "Zobrazit původní", SEARCH_PLACEHOLDER_TEXT: "Hledat...", SEARCH_SEARCHING: "Hledání...", SEARCH_NO_RESULTS: "Nenašly se žádné výsledky", SEARCH_NO_MORE_RESULTS: "Žádné další výsledky", CHAT_NOT_FOUND: "Chat nenalezen", DELETE_MESSAGE: "Smazat zprávu", DELETION_EXPLANATION: "Pokud tuto zprávu smažete, zmizí pro všechny.", EDIT_MESSAGE: "Upravit zprávu", SAVE: "Uložit", EDITED_INDICATOR: "upraveno", REPLY_TO_MESSAGE: "Odpovědět", ADD_REACTION: "Reagovat", AUTH_EXPIRED_OVERLAY_TITLE: "Váš chat byl kvůli nečinnosti odpojen", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "Pro pokračování obnovte stránku", VOICE_MESSAGE: "Hlasová zpráva", CONTACT_INFORMATION_HIDDEN: "Skrytá informace", LEAVE_CONVERSATION: "Opustit konverzaci", MARK_CONVERSATION_AS_UNREAD: "Označit jako nepřečtené", REPLY_TO_ARIA_LABEL: O.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: O.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: O.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: O.translation.STATUS_INDICATOR_OFFLINE } }, va = { code: "da-DK", name: "Danish", translation: { YESTERDAY: "I går", TODAY: "I dag", DAYS: "d", HOURS: "t", MINUTES: "m", JUST_NOW: "lige nu", LOCATION: "Placering", CANCEL: "Annuller", INBOX: "Indbakke", DESKTOP_NOTIFICATIONS: "Browsermeddelelser", DESKTOP_NOTIFICATIONS_ERROR: "Kan ikke aktivere Browsermeddelelser, fordi din browser aktivt blokerer dem. Prøv at kigge i indstillingerne eller benyt en anden browser.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `${e} demomeddelelse`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "Hvis du holder dit browser-faneblad åben, vil du se det her komme op, når nogen taler til dig.", SEND_BUTTON_TEXT: "Send", ENTRYBOX_TEXT_LIMIT: "Kun 10.000 tegn er tilladt.", ENTRYBOX_PLACEHOLDER: "Sig noget...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "Denne samtale er ikke længere aktiv.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "Du kan læse, men ikke sende beskeder.", MESSAGELIST_LOADING_OLDER: "Indlæser ældre beskeder...", MESSAGELIST_SHOW_OLDER: "Vis ældre beskeder", MESSAGELIST_NEW_MARKER: "Ny", MESSAGE_SENT_VIA_EMAIL: "Denne besked blev sendt via e-mail", YOU_MARKER: "dig", UPLOAD_IN_PROGRESS: "Overfører...", UPLOAD_SEND_FILE: "Send fil", UPLOAD_SHARE_LOCATION: "Del placering", UPLOAD_ERROR: "Der er sket noget forkert ved upload. Filen kan ikke understøttes eller filen er for stor.", SHARE_LOCATION_ERROR: "Kan ikke dele placering: ", LOADING: "Indlæser...", HUB_EMPTY: "Dine samtaler vises her", HUB_SHOW_EARLIER: "Vis tidligere chats", INBOX_NO_CHATS_TITLE: "Ingen chats endnu!", INBOX_NO_CHATS_BODY: "Når du har haft en eller flere samtaler, vises de her.", ENABLE_TRANSLATION: "Oversæt denne konversation til dansk", DISABLE_TRANSLATION: "Vis den oprindelige", SEARCH_PLACEHOLDER_TEXT: "Søg...", SEARCH_SEARCHING: "Søger...", SEARCH_NO_RESULTS: "Ingen resultater fundet", SEARCH_NO_MORE_RESULTS: "Ikke flere resultater", CHAT_NOT_FOUND: "Chat ikke fundet", DELETE_MESSAGE: "Slet besked", DELETION_EXPLANATION: "Hvis du sletter denne besked, vil ingen kunne se den.", EDIT_MESSAGE: "Rediger besked", SAVE: "Gem", EDITED_INDICATOR: "redigeret", REPLY_TO_MESSAGE: "Svar", ADD_REACTION: "Tilføj reaktion", AUTH_EXPIRED_OVERLAY_TITLE: "Din chatsession er udløbet", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "Opdater siden for at fortsætte", VOICE_MESSAGE: "Talebesked", CONTACT_INFORMATION_HIDDEN: "Skjulte oplysninger", LEAVE_CONVERSATION: "Forlad samtale", MARK_CONVERSATION_AS_UNREAD: "Marker som ulæst", REPLY_TO_ARIA_LABEL: O.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: O.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: O.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: O.translation.STATUS_INDICATOR_OFFLINE } }, fa = { code: "de-DE", name: "German", translation: { YESTERDAY: "Gestern", TODAY: "Heute", DAYS: "d", HOURS: "h", MINUTES: "m", JUST_NOW: "gerade jetzt", LOCATION: "Standort", CANCEL: "Abbrechen", INBOX: "Inbox", DESKTOP_NOTIFICATIONS: "Browser-Benachrichtigungen", DESKTOP_NOTIFICATIONS_ERROR: "Browser-Benachrichtigungen können nicht aktiviert werden, da Ihr Browser sie aktiv blockiert. Versuchen Sie, in den Einstellungen nachzuschlagen oder einen anderen Browser zu verwenden.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `${e} Demo-Benachrichtigung`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "Wenn Sie Ihre Browser-Registerkarte geöffnet lassen, wird dies angezeigt, wenn jemand mit Ihnen spricht.", SEND_BUTTON_TEXT: "Senden", ENTRYBOX_TEXT_LIMIT: "Nur 10.000 Zeichen sind erlaubt.", ENTRYBOX_PLACEHOLDER: "Sag etwas...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "Diese Konversation ist nicht mehr aktiv.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "Sie können Nachrichten lesen, aber nicht senden.", MESSAGELIST_LOADING_OLDER: "Ältere Nachrichten werden geladen...", MESSAGELIST_SHOW_OLDER: "Zeige ältere Nachrichten", MESSAGELIST_NEW_MARKER: "Neu", MESSAGE_SENT_VIA_EMAIL: "Diese Nachricht wurde per E-Mail gesendet", YOU_MARKER: "du", UPLOAD_IN_PROGRESS: "Hochladen...", UPLOAD_SEND_FILE: "Datei senden", UPLOAD_SHARE_LOCATION: "Standort teilen", UPLOAD_ERROR: "Beim Hochladen ist ein Fehler aufgetreten. Die Datei ist möglicherweise nicht unterstützt oder zu groß.", SHARE_LOCATION_ERROR: "Standort kann nicht freigegeben werden: ", LOADING: "Laden...", HUB_EMPTY: "Ihr Chat-Verlauf wird hier angezeigt", HUB_SHOW_EARLIER: "Zeige frühere Chats", INBOX_NO_CHATS_TITLE: "Noch keine Chats!", INBOX_NO_CHATS_BODY: "Sobald Sie eine oder mehrere Unterhaltungen geführt haben, werden sie hier angezeigt.", ENABLE_TRANSLATION: "Dieses Gespräch auf Deutsch übersetzen", DISABLE_TRANSLATION: "Originaltext anzeigen", SEARCH_PLACEHOLDER_TEXT: "Suche...", SEARCH_SEARCHING: "Suchen...", SEARCH_NO_RESULTS: "Keine Suchergebnisse gefunden", SEARCH_NO_MORE_RESULTS: "Keine weiteren Suchergebnisse", CHAT_NOT_FOUND: "Chat nicht gefunden", DELETE_MESSAGE: "Nachricht löschen", DELETION_EXPLANATION: "Wenn Sie diese Nachricht löschen, wird sie für alle verschwinden.", EDIT_MESSAGE: "Nachricht bearbeiten", SAVE: "Speichern", EDITED_INDICATOR: "bearbeitet", REPLY_TO_MESSAGE: "Antworten", ADD_REACTION: "Reaktion hinzufügen", AUTH_EXPIRED_OVERLAY_TITLE: "Ihre Chatsitzung ist abgelaufen", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "Laden Sie zum Fortfahren die Seite neu", VOICE_MESSAGE: "Sprachnachricht", CONTACT_INFORMATION_HIDDEN: "Geschützte Angaben", LEAVE_CONVERSATION: "Unterhaltung verlassen", MARK_CONVERSATION_AS_UNREAD: "als ungelesen markieren", REPLY_TO_ARIA_LABEL: O.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: O.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: O.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: O.translation.STATUS_INDICATOR_OFFLINE } }, ka = { code: "el-GR", name: "Greek (Greece)", translation: { YESTERDAY: "Χθές", TODAY: "Σήμερα", DAYS: "Ημέρες", HOURS: "'Ωρες", MINUTES: "Λεπτά", JUST_NOW: "Μόλις τώρα", LOCATION: "Τοποθεσία", CANCEL: "Ακύρωση", INBOX: "Εισερχόμενα", DESKTOP_NOTIFICATIONS: "Ειδοποιήσεις περιηγητή", DESKTOP_NOTIFICATIONS_ERROR: "Δεν είναι δυνατή η ενεργοποίηση των ειδοποιήσεων του προγράμματος περιήγησης, επειδή το πρόγραμμα περιήγησης τις αποκλείει ενεργά. Δοκιμάστε να τσεκάρετε τις ρυθμίσεις ή να χρησιμοποιήσετε διαφορετικό πρόγραμμα περιήγησης.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `${e} Δοκιμαστική επίδειξη`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "Αν διατηρήσετε ανοιχτή τη σελίδα του προγράμματος περιήγησης, θα δείτε αυτό το pop up (παράθυρο) όταν κάποιος σας μιλάει.", SEND_BUTTON_TEXT: "Αποστολή", ENTRYBOX_TEXT_LIMIT: "Επιτρέπονται μόνο 10.000 χαρακτήρες.", ENTRYBOX_PLACEHOLDER: "Πείτε κάτι...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "Αυτή η συζήτηση δεν είναι πλέον ενεργή.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "Μπορείτε να διαβάσετε αλλά δεν μπορείτε να στείλετε μηνύματα.", MESSAGELIST_LOADING_OLDER: "Φόρτωση παλαιοτέρων μηνυμάτων...", MESSAGELIST_SHOW_OLDER: "Εμφάνιση παλαιότερων μηνυμάτων", MESSAGELIST_NEW_MARKER: "Νέο", MESSAGE_SENT_VIA_EMAIL: "Αυτό το μήνυμα εστάλη μέσω ηλεκτρονικού ταχυδρομείου", YOU_MARKER: "Εσείς", UPLOAD_IN_PROGRESS: "Ανέβασμα...", UPLOAD_SEND_FILE: "Αποστολή αρχείου", UPLOAD_SHARE_LOCATION: "Κοινή χρήση τοποθεσίας", UPLOAD_ERROR: "Κάτι πήγε στραβά κατά τη φόρτωση. Το αρχείο ενδέχεται να μην υποστηρίζεται ή να είναι υπερβολικά μεγάλο.", SHARE_LOCATION_ERROR: "Δεν είναι δυνατή η χρήση κοινής τοποθεσίας: ", LOADING: "Φόρτωση...", HUB_EMPTY: "Το ιστορικό των συνομιλιών σας θα εμφανιστεί εδώ", HUB_SHOW_EARLIER: "Εμφάνιση προηγούμενων συνομιλιών", INBOX_NO_CHATS_TITLE: "Δεν υπάρχουν ακόμα συζητήσεις!", INBOX_NO_CHATS_BODY: "Μόλις έχετε μία ή περισσότερες συνομιλίες, θα εμφανιστούν εδώ.", ENABLE_TRANSLATION: "Μετάφραση αυτής της συνομιλίας στα ελληνικά", DISABLE_TRANSLATION: "Προβολή πρωτοτύπου", SEARCH_PLACEHOLDER_TEXT: "Αναζήτηση...", SEARCH_SEARCHING: "Αναζήτηση...", SEARCH_NO_RESULTS: "Δεν βρέθηκαν αποτελέσματα", SEARCH_NO_MORE_RESULTS: "Δεν υπάρχουν περισσότερα αποτελέσματα", CHAT_NOT_FOUND: "Η συνομιλία δεν βρέθηκε", DELETE_MESSAGE: "Διαγραφή μηνύματος", DELETION_EXPLANATION: "Εάν διαγράψετε αυτό το μήνυμα, θα εξαφανιστεί για όλους.", EDIT_MESSAGE: "Επεξεργασία μηνύματος", SAVE: "Αποθήκευση", EDITED_INDICATOR: "επεξεργασμένο", REPLY_TO_MESSAGE: "Απάντηση", ADD_REACTION: "Προσθήκη αντίδρασης", AUTH_EXPIRED_OVERLAY_TITLE: "Η συνεδρία της συνομιλίας σας έχει λήξει", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "Ανανεώστε τη σελίδα για να συνεχίσετε", VOICE_MESSAGE: "Ηχητικό μήνυμα", CONTACT_INFORMATION_HIDDEN: "Κρυμμένες πληροφορίες", LEAVE_CONVERSATION: "Αποσυρθείτε από τη συζήτηση", MARK_CONVERSATION_AS_UNREAD: "Επισήμανση ως μη αναγνωσμένα", REPLY_TO_ARIA_LABEL: O.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: O.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: O.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: O.translation.STATUS_INDICATOR_OFFLINE } }, Ma = { code: "es-ES", name: "Spanish", translation: { YESTERDAY: "Ayer", TODAY: "Hoy", DAYS: "d", HOURS: "h", MINUTES: "m", JUST_NOW: "justo ahora", LOCATION: "Ubicación", CANCEL: "Cancelar", INBOX: "Inbox", DESKTOP_NOTIFICATIONS: "Notificaciones del navigator", DESKTOP_NOTIFICATIONS_ERROR: "No se logró habilitar las notificaciones del navigador, comprueba que tu navegador no las esté bloqueando o intenta con otro navegador.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `${e} notificación de prueba`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "Si dejas esta pestaña abierta, verás este pop up cuando alguien te hable.", SEND_BUTTON_TEXT: "Enviar", ENTRYBOX_TEXT_LIMIT: "Sólo 10.000 caracteres permitidos.", ENTRYBOX_PLACEHOLDER: "Escribe algo...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "Esta conversación ya no está activa.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "Puedes leer pero no enviar mensajes.", MESSAGELIST_LOADING_OLDER: "Cargando mensajes pasados...", MESSAGELIST_SHOW_OLDER: "Ver mensajes pasados", MESSAGELIST_NEW_MARKER: "Nuevo", MESSAGE_SENT_VIA_EMAIL: "Este mensaje ha sido enviado vía email", YOU_MARKER: "tú", UPLOAD_IN_PROGRESS: "Subir...", UPLOAD_SEND_FILE: "Enviar archivo", UPLOAD_SHARE_LOCATION: "Compartir ubicación", UPLOAD_ERROR: "Ocurrió un problema subiendo el archivo. Puede que el archivo esté en un formato no soportado o que sea demasiado grande.", SHARE_LOCATION_ERROR: "No se logró compartir la ubicación: ", LOADING: "Cargando...", HUB_EMPTY: "Tu historial de conversaciones se mostrará aquí", HUB_SHOW_EARLIER: "Ver conversaciones pasadas", INBOX_NO_CHATS_TITLE: "¡Aún sin conversaciones!", INBOX_NO_CHATS_BODY: "Una vez que tengas una o más conversaciones, se mostrarán aquí.", ENABLE_TRANSLATION: "Traducir esta conversación al español", DISABLE_TRANSLATION: "Mostrar la conversación original", SEARCH_PLACEHOLDER_TEXT: "Buscar...", SEARCH_SEARCHING: "Buscando...", SEARCH_NO_RESULTS: "No se encontraron resultados", SEARCH_NO_MORE_RESULTS: "No hay más resultados", CHAT_NOT_FOUND: "Chat no encontrado", DELETE_MESSAGE: "Eliminar mensaje", DELETION_EXPLANATION: "Este mensaje desaparecerá para todos si lo borras.", EDIT_MESSAGE: "Editar mensaje", SAVE: "Guardar", EDITED_INDICATOR: "editado", REPLY_TO_MESSAGE: "Responder", ADD_REACTION: "Añadir reacción", AUTH_EXPIRED_OVERLAY_TITLE: "Su sesión de chat ha expirado", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "Actualice la página para continuar", VOICE_MESSAGE: "Mensaje de voz", CONTACT_INFORMATION_HIDDEN: "Información oculta", LEAVE_CONVERSATION: "Abandonar conversación", MARK_CONVERSATION_AS_UNREAD: "Marcar como no leída", REPLY_TO_ARIA_LABEL: O.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: O.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: O.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: O.translation.STATUS_INDICATOR_OFFLINE } }, Pa = { code: "et-EE", name: "Estonian", translation: { YESTERDAY: "Eile", TODAY: "Täna", DAYS: "p", HOURS: "t", MINUTES: "m", JUST_NOW: "Just nüüd", LOCATION: "Asukoht", CANCEL: "Katkesta", INBOX: "Postkast", DESKTOP_NOTIFICATIONS: "Veebibrauseri teated", DESKTOP_NOTIFICATIONS_ERROR: "Töölaua teatisi ei saa lubada, kuna Teie brauser blokeerib need aktiivselt. Proovige muuta seadeid või kasutada mõnda muud brauserit.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `${e} demo teavitus`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "Kui hoiate oma brauseri vahekaardi lahti ja näete seda hüpikakent, siis keegi soovib Teiega rääkida.", SEND_BUTTON_TEXT: "Saada", ENTRYBOX_TEXT_LIMIT: "Ainult kuni 10.000 tähemärki on lubatud.", ENTRYBOX_PLACEHOLDER: "Kirjuta midagi...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "See vestlus ei ole enam aktiivne.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "Sa saad lugeda teateid, aga mitte kirjutada.", MESSAGELIST_LOADING_OLDER: "Laen vanemaid teateid...", MESSAGELIST_SHOW_OLDER: "Näita vanemaid teateid", MESSAGELIST_NEW_MARKER: "Uus", MESSAGE_SENT_VIA_EMAIL: "See teade on saadetud e-postiga", YOU_MARKER: "Sina", UPLOAD_IN_PROGRESS: "Laen...", UPLOAD_SEND_FILE: "Saada fail", UPLOAD_SHARE_LOCATION: "Jaga faili asukohta", UPLOAD_ERROR: "Nüüd läks midagi nihu, seoses faili ülesse laadimisega. Tundmatu fail või liiga suur.", SHARE_LOCATION_ERROR: "Ei suuda jagada faili asukohta: ", LOADING: "Laen...", HUB_EMPTY: "Siin on Sinu vestluste ajalugu", HUB_SHOW_EARLIER: "Näita vanemaid vestlusi", INBOX_NO_CHATS_TITLE: "Pole ühtegi vestlust!", INBOX_NO_CHATS_BODY: "Kui Sul tekib üks või rohkem vestlust, siis on need kuvatakse siin.", ENABLE_TRANSLATION: "Tõlgi see vestlus eesti keelde", DISABLE_TRANSLATION: "Näita algteksti", SEARCH_PLACEHOLDER_TEXT: "Otsi...", SEARCH_SEARCHING: "Otsin...", SEARCH_NO_RESULTS: "Otsingu tulemused puuduvad", SEARCH_NO_MORE_RESULTS: "Rohkem tulemusi ei ole ", CHAT_NOT_FOUND: "Vestlust ei leitud", DELETE_MESSAGE: "Kustuta sõnum", DELETION_EXPLANATION: "Kui kustutate selle sõnumi, kaob see kõigi jaoks.", EDIT_MESSAGE: "Redigeeri sõnumit", SAVE: "Salvesta", EDITED_INDICATOR: "muudetud", REPLY_TO_MESSAGE: "Vasta", ADD_REACTION: "Lisa reaktsioon", AUTH_EXPIRED_OVERLAY_TITLE: "Teie vestlussessioon on lõppenud", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "Jätkamiseks värskendage lehte", VOICE_MESSAGE: "Häälsõnum", CONTACT_INFORMATION_HIDDEN: "Varjatud informatsioon", LEAVE_CONVERSATION: "Lahku vestlusest", MARK_CONVERSATION_AS_UNREAD: "Märgi mitteloetuks", REPLY_TO_ARIA_LABEL: O.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: O.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: O.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: O.translation.STATUS_INDICATOR_OFFLINE } }, Ha = { code: "fa", name: "Persian (Farsi)", translation: { YESTERDAY: "دیروز", TODAY: "امروز", DAYS: "روز", HOURS: "ساعت", MINUTES: "دقیقه", JUST_NOW: "هم اکنون", LOCATION: "مکان", CANCEL: "لغو", INBOX: "صندوق", DESKTOP_NOTIFICATIONS: "اطلاعیه‌های مرورگر", DESKTOP_NOTIFICATIONS_ERROR: "خطا در فعال سازی اعلان های مرورگر، مرورگر شما آنها را مسدود می کند سعی کنید تنظیمات مرورگر را تغییر دهید یا از یک مرورگر دیگر استفاده کنید.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `نوتیفیکیشن دمو ${e}`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "اگر صفحه ی مرورگر را باز نگهدارید این را موقعه ای که کسی با شما صحبت کند خواهید دید", SEND_BUTTON_TEXT: "بفرست", ENTRYBOX_TEXT_LIMIT: "فقط ۱۰،۰۰۰ حروف مجاز می باشد.", ENTRYBOX_PLACEHOLDER: "...چیزی بنویسید", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: ".این مکالمه دیگر فعال نمی باشد", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "شما می توانید بخوانید اما نمی توانید پیام بفرستید", MESSAGELIST_LOADING_OLDER: "...در حال بارگذاری پیام های قدیمی تر", MESSAGELIST_SHOW_OLDER: "نشان دادن پیام های قدیمی", MESSAGELIST_NEW_MARKER: "جدید", MESSAGE_SENT_VIA_EMAIL: "پیام توسط ایمل ارسال شد", YOU_MARKER: "شما", UPLOAD_IN_PROGRESS: "...در حال بارگذاری", UPLOAD_SEND_FILE: "فرستادن پوشه", UPLOAD_SHARE_LOCATION: "اشتراک گذاری مکان", UPLOAD_ERROR: "متاسفانه بارگذاری با مشکل روبه رو شد. ممکن است فایل حجیم باشد یا ساپورت نشده باشد.", SHARE_LOCATION_ERROR: "خطا در اشتراک گذاری مکان: ", LOADING: "...بارگذاری", HUB_EMPTY: "تاریخچه گفتگو اینجا نمایان می شود", HUB_SHOW_EARLIER: "دیدن گفتگو های قبلی", INBOX_NO_CHATS_TITLE: "هنوز گفتگویی وجود ندارد", INBOX_NO_CHATS_BODY: "بعد از داشتن یک مکالمه یا بیشتر، آنها اینجا نمایان می شوند.", ENABLE_TRANSLATION: "این مکالمه را به فارسی ترجمه کن", DISABLE_TRANSLATION: "زبان اصلی را نشان بده", SEARCH_PLACEHOLDER_TEXT: "...جستجو", SEARCH_SEARCHING: "...در حال جستجو", SEARCH_NO_RESULTS: "نتیجه ای یافت نشد", SEARCH_NO_MORE_RESULTS: "نتیجه بیشتری وجود ندارد", CHAT_NOT_FOUND: "مکالمه پیدا نشد", DELETE_MESSAGE: "حذف پیام ", DELETION_EXPLANATION: "اگر این پیام را حذف کنید، برای همه ناپدید می شود.", EDIT_MESSAGE: "ویرایش پیام", SAVE: "ذخیره", EDITED_INDICATOR: "ویرایش‌شده", REPLY_TO_MESSAGE: "پاسخ دادن", ADD_REACTION: "واکنش را اضافه کنید", AUTH_EXPIRED_OVERLAY_TITLE: "جلسه چت شما منقضی شده است", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "برای ادامه صفحه را بازخوانی کنید", VOICE_MESSAGE: "پیام صوتی", CONTACT_INFORMATION_HIDDEN: "اطلاعات پنهان", LEAVE_CONVERSATION: "خروج از گفتگو", MARK_CONVERSATION_AS_UNREAD: "به عنوان خوانده نشده علامت گذاری کن", REPLY_TO_ARIA_LABEL: O.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: O.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: O.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: O.translation.STATUS_INDICATOR_OFFLINE } }, Ua = { code: "fi-FI", name: "Finnish", translation: { YESTERDAY: "Eilen", TODAY: "Tänään", DAYS: "p", HOURS: "t", MINUTES: "m", JUST_NOW: "juuri nyt", LOCATION: "Sijainti", CANCEL: "Peruuta", INBOX: "Saapuneet", DESKTOP_NOTIFICATIONS: "Selaimen ilmoitukset", DESKTOP_NOTIFICATIONS_ERROR: "Työpöydän ilmoituksia ei voitu kytkeä päälle, koska selaimesi estää ne aktiivisesti. Koeta tutkia sen asetuksia tai vaihda selainta.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `${e} demo ilmoitus`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "Jos pidät tämän sivun auki, näet vastaavan ilmoituksen kun joku puhuu sinulle.", SEND_BUTTON_TEXT: "Lähetä", ENTRYBOX_TEXT_LIMIT: "Maksimissaan 10000 merkkiä.", ENTRYBOX_PLACEHOLDER: "Sano jotain...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "Tämä keskustelu ei ole enää aktiivinen.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "Voit lukea, mutta et lähettää viestejä.", MESSAGELIST_LOADING_OLDER: "Ladataan vanhoja viestejä..", MESSAGELIST_SHOW_OLDER: "Näytä vanhat viestit", MESSAGELIST_NEW_MARKER: "Uusi", MESSAGE_SENT_VIA_EMAIL: "Tämä viesti on lähetetty sähköpostin välityksellä", YOU_MARKER: "sinä", UPLOAD_IN_PROGRESS: "Ladataan...", UPLOAD_SEND_FILE: "Lähetä tiedosto", UPLOAD_SHARE_LOCATION: "Jaa sijainti", UPLOAD_ERROR: "Valitettavasti jokin meni vikaan. Tiedostotyyppiä ei ehkä tueta tai se saattaa olla liian suuri.", SHARE_LOCATION_ERROR: "Sijaintia ei pystytty jakamaan: ", LOADING: "Ladataan...", HUB_EMPTY: "Keskusteluhistoriasi näkyy tässä", HUB_SHOW_EARLIER: "Näytä aiemmat keskustelut", INBOX_NO_CHATS_TITLE: "Ei keskusteluja, vielä!", INBOX_NO_CHATS_BODY: "Kun olet käynyt yhden tai useamman keskustelun, ne näkyvät täällä.", ENABLE_TRANSLATION: "Käännä keskustelu kielelle suomi", DISABLE_TRANSLATION: "Näytä alkuperäinen", SEARCH_PLACEHOLDER_TEXT: "Etsi...", SEARCH_SEARCHING: "Etsiminen...", SEARCH_NO_RESULTS: "Tuloksia ei löytynyt", SEARCH_NO_MORE_RESULTS: "Ei enempää tuloksia", CHAT_NOT_FOUND: "Keskustelua ei löytynyt", DELETE_MESSAGE: "Poista viesti", DELETION_EXPLANATION: "Jos poistat tämän viestin, se häviää kaikilta.", EDIT_MESSAGE: "Muokkaa viestiä", SAVE: "Tallenna", EDITED_INDICATOR: "muokattu", REPLY_TO_MESSAGE: "Vastaa", ADD_REACTION: "Lisää reaktio", AUTH_EXPIRED_OVERLAY_TITLE: "Istuntosi on vanhentunut", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "Päivitä sivu jatkaaksesi", VOICE_MESSAGE: "Ääniviesti", CONTACT_INFORMATION_HIDDEN: "Piilotetut tiedot", LEAVE_CONVERSATION: "Poistu keskustelusta", MARK_CONVERSATION_AS_UNREAD: "Merkitse lukemattomaksi", REPLY_TO_ARIA_LABEL: O.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: O.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: O.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: O.translation.STATUS_INDICATOR_OFFLINE } }, ba = { code: "fr-FR", name: "French", translation: { YESTERDAY: "Hier", TODAY: "Aujourd'hui", DAYS: "j", HOURS: "h", MINUTES: "m", JUST_NOW: "maintenant", LOCATION: "Emplacement", CANCEL: "Annuler", INBOX: "Boîte de réception", DESKTOP_NOTIFICATIONS: "Notifications du navigateur", DESKTOP_NOTIFICATIONS_ERROR: "Impossible d'activer les notifications du navigateur car votre navigateur les bloque. Essayez de changer ses paramètres ou de changer de navigateur.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `Notification de démonstration ${e}`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "Si vous maintenez l'onglet ouvert dans votre navigateur vous verrez apparaître une alerte lorsque quelqu'un vous parlera.", SEND_BUTTON_TEXT: "Envoyer", ENTRYBOX_TEXT_LIMIT: "Seuls 10.000 caractères sont autorisés.", ENTRYBOX_PLACEHOLDER: "Ecrivez quelque chose...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "Cette conversation n'est plus active.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "Vous pouvez lire, mais pas envoyer de messages.", MESSAGELIST_LOADING_OLDER: "Chargement des anciens messages ...", MESSAGELIST_SHOW_OLDER: "Afficher les anciens messages", MESSAGELIST_NEW_MARKER: "Nouveau", MESSAGE_SENT_VIA_EMAIL: "Ce message a été envoyé par e-mail", YOU_MARKER: "vous", UPLOAD_IN_PROGRESS: "Envoi en cours...", UPLOAD_SEND_FILE: "Envoyer un fichier", UPLOAD_SHARE_LOCATION: "Partager mon emplacement", UPLOAD_ERROR: "Un problème est survenu lors de l'envoi: le fichier est peut-être non pris en charge ou trop volumineux.", SHARE_LOCATION_ERROR: "Impossible de partager votre emplacement: ", LOADING: "Chargement en cours...", HUB_EMPTY: "Votre historique de discussion apparaîtra ici", HUB_SHOW_EARLIER: "Afficher les conversations précédentes", INBOX_NO_CHATS_TITLE: "Aucune conversation pour l'instant!", INBOX_NO_CHATS_BODY: "Une fois que vous aurez eu une ou plusieurs conversations, elles apparaîtront ici.", ENABLE_TRANSLATION: "Traduire cette conversation en français", DISABLE_TRANSLATION: "Remontrer la conversation originale", SEARCH_PLACEHOLDER_TEXT: "Rechercher...", SEARCH_SEARCHING: "Recherche...", SEARCH_NO_RESULTS: "Aucun résultat trouvé", SEARCH_NO_MORE_RESULTS: "Il n’y a plus de résultats", CHAT_NOT_FOUND: "Conversation introuvable", DELETE_MESSAGE: "Supprimer le message", DELETION_EXPLANATION: "Si vous supprimez ce message, il disparaîtra pour tout le monde.", EDIT_MESSAGE: "Modifier le message", SAVE: "Enregistrer", EDITED_INDICATOR: "modifié", REPLY_TO_MESSAGE: "Répondre", ADD_REACTION: "Ajouter une réaction", AUTH_EXPIRED_OVERLAY_TITLE: "Votre session de chat a expiré", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "Actualisez la page pour continuer", VOICE_MESSAGE: "Message vocal", CONTACT_INFORMATION_HIDDEN: "Informations masquées", LEAVE_CONVERSATION: "Quitter la conversation", MARK_CONVERSATION_AS_UNREAD: "Marquer comme non lu", REPLY_TO_ARIA_LABEL: O.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: O.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: O.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: O.translation.STATUS_INDICATOR_OFFLINE } }, ya = { code: "he-IL", name: "Hebrew", translation: { YESTERDAY: "אתמול", TODAY: "היום", DAYS: "d", HOURS: "h", MINUTES: "m", JUST_NOW: "עכשיו", LOCATION: "מיקום", CANCEL: "בטל", INBOX: "דואר נכנס", DESKTOP_NOTIFICATIONS: "התראות דפדפן", DESKTOP_NOTIFICATIONS_ERROR: "לא ניתן להפעיל התראות במרועה דפדפן מכיוון שהדפדפן שלך חוסם אותן באופן פעיל. נסה להסתכל בהגדרות או להשתמש בדפדפן אחר.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `${e} הודעה על הדגמה`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "אם אתה שומר על כרטיסיית הדפדפן שלך פתוחה, תראה את זה צץ כשמישהו ידבר איתך.", SEND_BUTTON_TEXT: "שלח", ENTRYBOX_TEXT_LIMIT: "רק 10.000 תווים", ENTRYBOX_PLACEHOLDER: "תגיד משהו...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "שיחה זו אינה פעילה עוד.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "אתה יכול לקרוא, אך לא לשלוח הודעות.", MESSAGELIST_LOADING_OLDER: "טוען הודעות ישנות...", MESSAGELIST_SHOW_OLDER: "הצג הודעות ישנות", MESSAGELIST_NEW_MARKER: "חדש", MESSAGE_SENT_VIA_EMAIL: "הודעה זאת נשלחה דרך אימייל", YOU_MARKER: "אתה", UPLOAD_IN_PROGRESS: "מעלה ...", UPLOAD_SEND_FILE: "שלח קובץ", UPLOAD_SHARE_LOCATION: "שתף מיקום", UPLOAD_ERROR: "לרוע המזל משהו השתבש בהעלאה. ייתכן שהקובץ אינו נתמך או גדול מדי.", SHARE_LOCATION_ERROR: "לא ניתן לשתף מיקום: ", LOADING: "טוען...", HUB_EMPTY: "היסטוריית הצ'אט שלך תופיע כאן", HUB_SHOW_EARLIER: "הצג צ'אטים קודמים", INBOX_NO_CHATS_TITLE: "אין עדיין צ'אטים!", INBOX_NO_CHATS_BODY: "לאחר שניהלת שיחה אחת או יותר, הם יופיעו כאן.", ENABLE_TRANSLATION: "תרגם שיחה זו לעברית", DISABLE_TRANSLATION: "הצג מקור", SEARCH_PLACEHOLDER_TEXT: "...חפש", SEARCH_SEARCHING: "...מחפש", SEARCH_NO_RESULTS: "לא נמצאו תוצאות", SEARCH_NO_MORE_RESULTS: "אין תוצאות נוספות", CHAT_NOT_FOUND: "הצ'אט לא נמצא", DELETE_MESSAGE: "מחיקת הודעה", DELETION_EXPLANATION: "אם תמחק הודעה זו, היא תיעלם עבור כולם.", EDIT_MESSAGE: "עריכת הודעה", SAVE: "שמור", EDITED_INDICATOR: "ערוך", REPLY_TO_MESSAGE: "השב", ADD_REACTION: "הוספת תגובה", AUTH_EXPIRED_OVERLAY_TITLE: "הפעלת הצ׳אט שלכם פגה", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "רעננו את העמוד כדי להמשיך", VOICE_MESSAGE: "הודעה קולית", CONTACT_INFORMATION_HIDDEN: "מידע מוסתר", LEAVE_CONVERSATION: "צא מהשיחה", MARK_CONVERSATION_AS_UNREAD: "סמן כלא נקרא", REPLY_TO_ARIA_LABEL: O.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: O.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: O.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: O.translation.STATUS_INDICATOR_OFFLINE } }, Ba = { code: "hi-IN", name: "Hindi (IN)", translation: { YESTERDAY: "कल", TODAY: "आज", DAYS: "d", HOURS: "h", MINUTES: "m", JUST_NOW: "अभी", LOCATION: "जगह", CANCEL: "रद्द करें", INBOX: "इनबॉक्स", DESKTOP_NOTIFICATIONS: "ब्राउज़र सूचनाएं", DESKTOP_NOTIFICATIONS_ERROR: "ब्राउज़र सूचनाएं सक्षम नहीं कर सकता क्योंकि आपका ब्राउज़र सक्रिय रूप से उन्हें ब्लॉक करता है। सेटिंग्स में देखने या एक अलग ब्राउज़र का उपयोग करने का प्रयास करें।", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `${e} डेमो अधिसूचना`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "यदि आप अपना ब्राउज़र टैब खुला रखते हैं, तो यह पॉप अप आपको तब दिखाई देगा जब कोई आपसे बात करेगा।", SEND_BUTTON_TEXT: "भेजें", ENTRYBOX_TEXT_LIMIT: "केवल 10,000 वर्णों की अनुमति है।", ENTRYBOX_PLACEHOLDER: "कुछ कहिए...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "यह चैट अब सक्रिय नहीं है।", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "आप पढ़ सकते हैं, लेकिन संदेश नहीं भेज सकते।", MESSAGELIST_LOADING_OLDER: "पुराने संदेश लोड हो रहे हैं ...", MESSAGELIST_SHOW_OLDER: "पुराने संदेश दिखाएं", MESSAGELIST_NEW_MARKER: "नया", MESSAGE_SENT_VIA_EMAIL: "यह संदेश ईमेल के माध्यम से भेजा गया था", YOU_MARKER: "आप", UPLOAD_IN_PROGRESS: "अपलोड हो रहा है...", UPLOAD_SEND_FILE: "फाइल भेजें", UPLOAD_SHARE_LOCATION: "जगह शेयर करें", UPLOAD_ERROR: "दुर्भाग्य से, अपलोड करते समय कुछ गलत हो गया। फ़ाइल असमर्थित या बहुत बड़ी हो सकती है।", SHARE_LOCATION_ERROR: "जगह शेयर नहीं हो पाया: ", LOADING: "लोड हो रहा है...", HUB_EMPTY: "आपका चैट इतिहास यहां दिखाई देगा", HUB_SHOW_EARLIER: "पहले की चैट दिखाओ", INBOX_NO_CHATS_TITLE: "अभी तक कोई चैट नहीं!", INBOX_NO_CHATS_BODY: "एक बार जब आप एक या अधिक चैट कर लेते हैं, तो वे यहां दिखाई देंगे।", ENABLE_TRANSLATION: "इस बातचीत का हिंदी में अनुवाद कीजिए", DISABLE_TRANSLATION: "मूल दिखाएँ", SEARCH_PLACEHOLDER_TEXT: "खोजें...", SEARCH_SEARCHING: "खोज जारी है...", SEARCH_NO_RESULTS: "कोई परिणाम नहीं मिला", SEARCH_NO_MORE_RESULTS: "और कोई परिणाम नहीं", CHAT_NOT_FOUND: "चैट नहीं मिली", DELETE_MESSAGE: "संदेश डिलीट करें", DELETION_EXPLANATION: "यदि आप इस संदेश को हटाते हैं, तो यह सभी के लिए गायब हो जाएगा.", EDIT_MESSAGE: "संदेश में बदलाव करें", SAVE: "सहेजें", EDITED_INDICATOR: "संपादित किया गया", REPLY_TO_MESSAGE: "जवाब दीजिए ।", ADD_REACTION: "प्रतिक्रिया जोड़ें", AUTH_EXPIRED_OVERLAY_TITLE: "आपका चैट सेशन समाप्त हो चुका है", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "आगे बढ़ने के लिए रिफ्रेश करें", VOICE_MESSAGE: "वॉयस मैसेज", CONTACT_INFORMATION_HIDDEN: "छुपी हुई जानकारी", LEAVE_CONVERSATION: "बातचीत को ख़त्म करें", MARK_CONVERSATION_AS_UNREAD: "अपठित के रूप में चिह्नित करें", REPLY_TO_ARIA_LABEL: O.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: O.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: O.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: O.translation.STATUS_INDICATOR_OFFLINE } }, wa = { code: "hr-HR", name: "Croatian", translation: { YESTERDAY: "Jučer", TODAY: "Danas", DAYS: "d", HOURS: "s", MINUTES: "m", JUST_NOW: "Upravo sad", LOCATION: "Lokacija", CANCEL: "Otkaži", INBOX: "Pretinac", DESKTOP_NOTIFICATIONS: "Obavijesti preglednika", DESKTOP_NOTIFICATIONS_ERROR: "Notifikacije preglednika nisu omogućene jer ih vaš preglednik aktivno blokira. Pokušajte pogledati postavke ili koristiti neki drugi preglednik.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `${e} demo notifikacija`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "Ako karticu preglednika ostavite otvorenu, pojavit će se ovaj pop-up kada netko razgovara s vama.", SEND_BUTTON_TEXT: "Pošalji", ENTRYBOX_TEXT_LIMIT: "Dozvoljeno je samo 10.000 znakova.", ENTRYBOX_PLACEHOLDER: "Reci nešto...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "Ovaj razgovor više nije aktivan.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "Možeš čitati, ali ne i slati poruke.", MESSAGELIST_LOADING_OLDER: "Učitavam starije poruke...", MESSAGELIST_SHOW_OLDER: "Prikaži starije poruke", MESSAGELIST_NEW_MARKER: "Novo", MESSAGE_SENT_VIA_EMAIL: "Ova poruka je poslana e-poštom", YOU_MARKER: "ti", UPLOAD_IN_PROGRESS: "Učitavam...", UPLOAD_SEND_FILE: "Pošalji datoteku", UPLOAD_SHARE_LOCATION: "Podijeli lokaciju", UPLOAD_ERROR: "Nažalost, nešto je pošlo krivo. Datoteka možda nije podržana ili je prevelika.", SHARE_LOCATION_ERROR: "Nije moguće podijeliti lokaciju: ", LOADING: "Učitavam...", HUB_EMPTY: "Ovdje će se prikazati vaša povijest razgovora", HUB_SHOW_EARLIER: "Prikaži ranije razgovore", INBOX_NO_CHATS_TITLE: "Nema razgovora!", INBOX_NO_CHATS_BODY: "Nakon što vodite jedan ili više razgovora, oni će se pojaviti ovdje.", ENABLE_TRANSLATION: "Prevedi ovaj razgovor na hrvatski jezik", DISABLE_TRANSLATION: "Prikaži original", SEARCH_PLACEHOLDER_TEXT: "Pretraži...", SEARCH_SEARCHING: "Pretraživanje...", SEARCH_NO_RESULTS: "Nema rezultata", SEARCH_NO_MORE_RESULTS: "Nema više rezultata", CHAT_NOT_FOUND: "Razgovor nije pronađen", DELETE_MESSAGE: "Obriši poruku", DELETION_EXPLANATION: "Ako izbrišete ovu poruku, nestat će za sve.", EDIT_MESSAGE: "Uredi poruku", SAVE: "Spremi", EDITED_INDICATOR: "uređivao", REPLY_TO_MESSAGE: "Odgovorite", ADD_REACTION: "Dodajte reakciju", AUTH_EXPIRED_OVERLAY_TITLE: "Vaša sesija razgovora je istekla", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "Osvježite stranicu za nastavak", VOICE_MESSAGE: "Glasovna poruka", CONTACT_INFORMATION_HIDDEN: "Skrivene informacije", LEAVE_CONVERSATION: "Napustiti razgovor", MARK_CONVERSATION_AS_UNREAD: "Označi kao nepročitano", REPLY_TO_ARIA_LABEL: O.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: O.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: O.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: O.translation.STATUS_INDICATOR_OFFLINE } }, Ya = { code: "hu-HU", name: "Hungarian", translation: { YESTERDAY: "Tegnap", TODAY: "Ma", DAYS: "n", HOURS: "ó", MINUTES: "p", JUST_NOW: "éppen most", LOCATION: "Helyszín", CANCEL: "Visszavonás", INBOX: "Postaláda", DESKTOP_NOTIFICATIONS: "Böngésző értesítések", DESKTOP_NOTIFICATIONS_ERROR: "Azért nem tudja bekapcsolni a böngésző értesítések funkciót, mert böngészője aktívan blokkolja azt. Tekintse meg a beállításokat vagy használjon másik böngészőt.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `${e} demo értesítés`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "Ha nyitva hagyja böngészőjét, felugró ablak fog megjelenni, ha valaki beszélni szeretne Önnel.", SEND_BUTTON_TEXT: "Küldés", ENTRYBOX_TEXT_LIMIT: "Mindőssze 10.000 karakter megengedett.", ENTRYBOX_PLACEHOLDER: "Mondjon valamit...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "Ez a beszélgetés már nem aktív.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "Elolvashatja az üzeneteket, de nem küldhet újat.", MESSAGELIST_LOADING_OLDER: "Korábbi üzenetek betöltése...", MESSAGELIST_SHOW_OLDER: "Korábbi üzenetek megjelenítése", MESSAGELIST_NEW_MARKER: "Új", MESSAGE_SENT_VIA_EMAIL: "Ez az üzenet e-mailben került elküldésre", YOU_MARKER: "Ön", UPLOAD_IN_PROGRESS: "Feltöltés...", UPLOAD_SEND_FILE: "Fájl küldése", UPLOAD_SHARE_LOCATION: "Helyszín megosztása", UPLOAD_ERROR: "Sajnos hiba történt a feltöltés során. A fájl nem támogatott vagy túl nagy.", SHARE_LOCATION_ERROR: "Helyszín megosztása nem lehetséges: ", LOADING: "Betöltés...", HUB_EMPTY: "A beszélgetések előzményei itt láthatók", HUB_SHOW_EARLIER: "Korábbi beszélgetések megjelenítése", INBOX_NO_CHATS_TITLE: "Még nincs megjeleníthető beszélgetés!", INBOX_NO_CHATS_BODY: "Amint egy vagy több beszélgetéssel rendelkezik, azok itt fognak megjelenni.", ENABLE_TRANSLATION: "A beszélgetés lefordítása erre a nyelvre: magyar", DISABLE_TRANSLATION: "Eredeti megjelenítése", SEARCH_PLACEHOLDER_TEXT: "Keresés...", SEARCH_SEARCHING: "Keresés...", SEARCH_NO_RESULTS: "Nincs találat", SEARCH_NO_MORE_RESULTS: "Nincs több találat", CHAT_NOT_FOUND: "A csevegés nem található", DELETE_MESSAGE: "Üzenet törlése", DELETION_EXPLANATION: "Ha törlöd ezt az üzenetet, az mindenki számára eltűnik.", EDIT_MESSAGE: "Üzenet szerkesztése", SAVE: "Mentés", EDITED_INDICATOR: "szerkesztve", REPLY_TO_MESSAGE: "Válaszadás", ADD_REACTION: "Reagálás erre", AUTH_EXPIRED_OVERLAY_TITLE: "Chat munkamenete lejárt", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "Folytatáshoz frissítse az oldalt", VOICE_MESSAGE: "Hangüzenet", CONTACT_INFORMATION_HIDDEN: "Rejtett információ", LEAVE_CONVERSATION: "Kilépés a beszélgetésből", MARK_CONVERSATION_AS_UNREAD: "Megjelölés olvasatlanként", REPLY_TO_ARIA_LABEL: O.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: O.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: O.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: O.translation.STATUS_INDICATOR_OFFLINE } }, $a = { code: "id-ID", name: "Bahasa Indonesia", translation: { YESTERDAY: "Kemarin", TODAY: "Hari ini", DAYS: "h", HOURS: "j", MINUTES: "m", JUST_NOW: "sekarang", LOCATION: "Lokasi", CANCEL: "Batal", INBOX: "Kotak Masuk", DESKTOP_NOTIFICATIONS: "Notifikasi peramban", DESKTOP_NOTIFICATIONS_ERROR: "Tidak dapat mengaktifkan pemberitahuan browser karena browser Anda secara aktif memblokir mereka. Coba cari di pengaturan atau menggunakan browser yang berbeda.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `pemberitahuan demo ${e}`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "Jika Anda membiarkan tab browser tetap terbuka, Anda akan melihat ini muncul ketika seseorang berbicara kepada Anda.", SEND_BUTTON_TEXT: "Kirim", ENTRYBOX_TEXT_LIMIT: "Hanya 10.000 karakter yang diizinkan.", ENTRYBOX_PLACEHOLDER: "Katakan sesuatu...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "Percakapan ini tidak lagi aktif.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "Anda dapat membaca, tetapi tidak mengirim pesan.", MESSAGELIST_LOADING_OLDER: "Memuat pesan lama...", MESSAGELIST_SHOW_OLDER: "Tampilkan pesan yang lebih lama", MESSAGELIST_NEW_MARKER: "Baru", MESSAGE_SENT_VIA_EMAIL: "Pesan ini dikirim melalui email", YOU_MARKER: "Anda", UPLOAD_IN_PROGRESS: "Mengunggah...", UPLOAD_SEND_FILE: "Kirim mengajukan", UPLOAD_SHARE_LOCATION: "Bagikan lokasi", UPLOAD_ERROR: "Ada yang salah diunggah. File mungkin tidak didukung atau terlalu besar.", SHARE_LOCATION_ERROR: "Tidak dapat membagikan lokasi: ", LOADING: "Memuat...", HUB_EMPTY: "Riwayat obrolan Anda akan muncul di sini", HUB_SHOW_EARLIER: "Tampilkan obrolan sebelumnya", INBOX_NO_CHATS_TITLE: "Belum ada obrolan!", INBOX_NO_CHATS_BODY: "Setelah Anda melakukan satu atau lebih percakapan, mereka akan muncul di sini.", ENABLE_TRANSLATION: "Terjemahkan percakapan ini ke Indonesia", DISABLE_TRANSLATION: "Perlihatkan asli", SEARCH_PLACEHOLDER_TEXT: "Cari...", SEARCH_SEARCHING: "Mencari...", SEARCH_NO_RESULTS: "Tidak ditemukan hasil", SEARCH_NO_MORE_RESULTS: "Tidak ada hasil lainnya", CHAT_NOT_FOUND: "Obrolan tidak ditemukan", DELETE_MESSAGE: "Hapus pesan", DELETION_EXPLANATION: "Jika pesan ini Anda hapus, pesan ini akan tidak terlihat bagi siapa pun.", EDIT_MESSAGE: "Sunting pesan", SAVE: "Mentés", EDITED_INDICATOR: "diedit", REPLY_TO_MESSAGE: "Balas", ADD_REACTION: "Tambah reaksi", AUTH_EXPIRED_OVERLAY_TITLE: "Sesi obrolan Anda sudah lewat batas waktu", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "Muat ulang halaman untuk melanjutkan", VOICE_MESSAGE: "Pesan suara", CONTACT_INFORMATION_HIDDEN: "Informasi tersembunyi", LEAVE_CONVERSATION: "Tinggalkan percakapan", MARK_CONVERSATION_AS_UNREAD: "Tandai sebagai Belum dibaca", REPLY_TO_ARIA_LABEL: O.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: O.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: O.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: O.translation.STATUS_INDICATOR_OFFLINE } }, ja = { code: "is-IS", name: "Íslenska", translation: { YESTERDAY: "Í gær", TODAY: "Í dag", DAYS: "dagar", HOURS: "klst.", MINUTES: "mín.", JUST_NOW: "núna", LOCATION: "Staðsetning", CANCEL: "Hætta við", INBOX: "Pósthólf", DESKTOP_NOTIFICATIONS: "Tilkynningar í vafra", DESKTOP_NOTIFICATIONS_ERROR: "Ekki er hægt að birta tilkynningar í vafra vegna þess að vafrinn sem þú notar hindrar það. Reyndu að leita að stillingum eða að nota annan vafra.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `${e} prufutilkynning`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "Ef flipinn í vafranum er opinn muntu sjá þessa tilkynningu birtast þegar einhver sendir þér skilaboð.", SEND_BUTTON_TEXT: "Senda", ENTRYBOX_TEXT_LIMIT: "Aðeins 10.000 stafir komast fyrir.", ENTRYBOX_PLACEHOLDER: "Segðu eitthvað...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "Þessar samræður eru ekki lengar virkar.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "Þú getur lesið, en ekki sent skilaboð.", MESSAGELIST_LOADING_OLDER: "Sæki eldri skilaboð...", MESSAGELIST_SHOW_OLDER: "Sýna eldri skilaboð", MESSAGELIST_NEW_MARKER: "Ný", MESSAGE_SENT_VIA_EMAIL: "Þessi skilaboð voru send með tölvupósti", YOU_MARKER: "þú", UPLOAD_IN_PROGRESS: "Hleð upp...", UPLOAD_SEND_FILE: "Senda skrá", UPLOAD_SHARE_LOCATION: "Deila staðsetningu", UPLOAD_ERROR: "Því miður fór eitthvað úrskeiðis við að hlaða upp. Skráin gæti verið af rangri tegund eð of stór.", SHARE_LOCATION_ERROR: "Ekki er hægt að deila staðsetningu: ", LOADING: "Hleð...", HUB_EMPTY: "Fyrri samtöl munu birtast hér", HUB_SHOW_EARLIER: "Sýna fyrri samtöl", INBOX_NO_CHATS_TITLE: "Engin samtöl enn!", INBOX_NO_CHATS_BODY: "Þegar þú hefur átt eitt eða fleiri samtöl, munu þau birtast hér.", ENABLE_TRANSLATION: "Þýða þetta samtal á ensku", DISABLE_TRANSLATION: "Sýna upprunalegt", SEARCH_PLACEHOLDER_TEXT: "Leita...", SEARCH_SEARCHING: "Leita...", SEARCH_NO_RESULTS: "Ekkert fannst", SEARCH_NO_MORE_RESULTS: "Engar fleiri niðurstöður", CHAT_NOT_FOUND: "Samtal fannst ekki", DELETE_MESSAGE: "Eyða skilaboðum", DELETION_EXPLANATION: "Ef þú eyðir þessum skilaboðum munu þau hverfa hjá öllum.", EDIT_MESSAGE: "Breyta skilaboðum", SAVE: "Vista", EDITED_INDICATOR: "breytt", REPLY_TO_MESSAGE: "Svara", REPLY_TO_ARIA_LABEL: (e, t) => `Svara ${e}: ${t}`, REPLY_MODE_LEAVE_ARIA_LABEL: "Fara úr svari", ADD_REACTION: "Setja inn viðbrögð", AUTH_EXPIRED_OVERLAY_TITLE: "Spjallið hefur runnið út", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "Endurnýjaðu síðuna til að halda áfram", VOICE_MESSAGE: "Raddskilaboð", LEAVE_CONVERSATION: "Skilja eftir skilaboð", MARK_CONVERSATION_AS_UNREAD: "Merkja sem ólesið", STATUS_INDICATOR_ONLINE: "Virk", STATUS_INDICATOR_OFFLINE: "Ekki við", CONTACT_INFORMATION_HIDDEN: "faldar upplýsingar" } }, Fa = { code: "it-IT", name: "Italian", translation: { YESTERDAY: "Ieri", TODAY: "Oggi", DAYS: "g", HOURS: "o", MINUTES: "m", JUST_NOW: "adesso", LOCATION: "Posizione", CANCEL: "Annulla", INBOX: "Posta in arrivo", DESKTOP_NOTIFICATIONS: "Notifiche browser", DESKTOP_NOTIFICATIONS_ERROR: "Impossibile abilitare le notifiche browser perché il browser le blocca attivamente. Prova a cercare le impostazioni o utilizzare un browser diverso.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `${e} demo notification`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "Se si mantiene aperta la scheda del browser, questo verrà visualizzato quando qualcuno ti parla.", SEND_BUTTON_TEXT: "Invia", ENTRYBOX_TEXT_LIMIT: "Sono consentiti solo 10.000 caratteri.", ENTRYBOX_PLACEHOLDER: "Dì qualcosa...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "Questa conversazione non è più attiva.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "Puoi leggere, ma non inviare messaggi.", MESSAGELIST_LOADING_OLDER: "Caricamento dei messaggi precedenti...", MESSAGELIST_SHOW_OLDER: "Mostra messaggi precedenti", MESSAGELIST_NEW_MARKER: "Nuovo", MESSAGE_SENT_VIA_EMAIL: "Questo messaggio è stato inviato via email", YOU_MARKER: "tu", UPLOAD_IN_PROGRESS: "Caricamento in corso...", UPLOAD_SEND_FILE: "Invia file", UPLOAD_SHARE_LOCATION: "Condividi posizione", UPLOAD_ERROR: "Qualcosa è andato storto durante il caricamento. Il file potrebbe non essere supportato o troppo grande.", SHARE_LOCATION_ERROR: "Impossibile condividere la posizione: ", LOADING: "Caricamento in corso...", HUB_EMPTY: "La cronologia della tua chat verrà mostrata qui", HUB_SHOW_EARLIER: "Mostra chat precedenti", INBOX_NO_CHATS_TITLE: "Non ci sono ancora chat!", INBOX_NO_CHATS_BODY: "Una volta che hai avuto una o più conversazioni, verranno visualizzate qui.", ENABLE_TRANSLATION: "Traduci questa conversazione in italiano", DISABLE_TRANSLATION: "Mostra l'originale", SEARCH_PLACEHOLDER_TEXT: "Cerca...", SEARCH_SEARCHING: "Cercando...", SEARCH_NO_RESULTS: "Nessun risultato trovato", SEARCH_NO_MORE_RESULTS: "Non ci sono più risultati", CHAT_NOT_FOUND: "Chat non trovata", DELETE_MESSAGE: "Elimina messaggio", DELETION_EXPLANATION: "Se elimini il messaggio, questo scomparirà per tutti.", EDIT_MESSAGE: "Modifica messaggio", SAVE: "Salva", EDITED_INDICATOR: "modificato", REPLY_TO_MESSAGE: "Rispondi", ADD_REACTION: "Aggiungi reazione", AUTH_EXPIRED_OVERLAY_TITLE: "La sessione di chat è scaduta", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "Aggiorna la pagina per continuare", VOICE_MESSAGE: "Messaggio vocale", CONTACT_INFORMATION_HIDDEN: "Informazioni nascoste", LEAVE_CONVERSATION: "Abbandona la conversazione", MARK_CONVERSATION_AS_UNREAD: "Segna come non letto", REPLY_TO_ARIA_LABEL: O.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: O.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: O.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: O.translation.STATUS_INDICATOR_OFFLINE } }, Va = { code: "ja-JP", name: "Japanese", translation: { YESTERDAY: "昨日", TODAY: "今日", DAYS: "日前", HOURS: "時間前", MINUTES: "分前", JUST_NOW: "たった今", LOCATION: "場所", CANCEL: "キャンセル", INBOX: "受信箱", DESKTOP_NOTIFICATIONS: "ブラウザの通知", DESKTOP_NOTIFICATIONS_ERROR: "ブラウザの通知はブロックされているため、ブラウザの通知を有効にできません。設定を確認するか、別のブラウザを使用してください。", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `${e} デモ通知`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "ブラウザのタブを開いたままにしておくと、誰かがあなたに話しかけたときにこのポップアップが表示されます。", SEND_BUTTON_TEXT: "送信", ENTRYBOX_TEXT_LIMIT: "許可されているのは10.000文字までです。", ENTRYBOX_PLACEHOLDER: "メッセージを入力してください", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "この会話はもうアクティブではありません。", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "あなたは読むことはできますが、メッセージを送ることはできません。", MESSAGELIST_LOADING_OLDER: "古いメッセージを読み込んでいます...", MESSAGELIST_SHOW_OLDER: "古いメッセージを表示", MESSAGELIST_NEW_MARKER: "新着", MESSAGE_SENT_VIA_EMAIL: "このメッセージはメールで送信されました", YOU_MARKER: "あなたは", UPLOAD_IN_PROGRESS: "アップロード中...", UPLOAD_SEND_FILE: "ファイル送信", UPLOAD_SHARE_LOCATION: "共有場所", UPLOAD_ERROR: "アップロード中に問題が発生しました。ファイルがサポートされていないか、大きすぎる可能性があります。", SHARE_LOCATION_ERROR: "場所を共有できません: ", LOADING: "読み込み中...", HUB_EMPTY: "あなたのチャット履歴がここに表示されます", HUB_SHOW_EARLIER: "以前のチャットを表示", INBOX_NO_CHATS_TITLE: "まだチャットがありません!", INBOX_NO_CHATS_BODY: "会話が1つ以上あると、ここに表示されます", ENABLE_TRANSLATION: "この会話を日本語に翻訳する", DISABLE_TRANSLATION: "オリジナルを表示", SEARCH_PLACEHOLDER_TEXT: "検索...", SEARCH_SEARCHING: "検索中...", SEARCH_NO_RESULTS: "結果が見つかりません", SEARCH_NO_MORE_RESULTS: "これ以上結果はありません", CHAT_NOT_FOUND: "チャットが見つかりませんでした", DELETE_MESSAGE: "メッセージを削除する", DELETION_EXPLANATION: "このメッセージを削除すると、全ての人に表示されなくなります。", EDIT_MESSAGE: "メッセージを編集する", SAVE: "上書き保存", EDITED_INDICATOR: "編集", REPLY_TO_MESSAGE: "返信する", ADD_REACTION: "リアクションを追加", AUTH_EXPIRED_OVERLAY_TITLE: "チャットセッションの有効期限が切れました", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "続けるにはページを更新してください", VOICE_MESSAGE: "ボイスメッセージ", CONTACT_INFORMATION_HIDDEN: "機密情報", LEAVE_CONVERSATION: "会話をやめる", MARK_CONVERSATION_AS_UNREAD: "未読としてマーク", REPLY_TO_ARIA_LABEL: O.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: O.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: O.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: O.translation.STATUS_INDICATOR_OFFLINE } }, xa = { code: "ka-GE", name: "Georgian", translation: { YESTERDAY: "გუშინ", TODAY: "დღეს", DAYS: "დღ", HOURS: "სთ", MINUTES: "წთ", JUST_NOW: "ახლა", LOCATION: "ადგილმდებარეობა", CANCEL: "გაუქმება", INBOX: "მიღებული შეტყობინება", DESKTOP_NOTIFICATIONS: "ბრაუზერის შეტყობინებები", DESKTOP_NOTIFICATIONS_ERROR: "შეუძლებელია ბრაუზერის შეტკობინებების ჩართვა. ეს ბრაუზერი ბლოკავს მათ. სცადე ცვლილება ოპციებიდან ან გამოიყენე სხვა ბრაუზერი.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `${e} შეტყობინებების დემო ვერსია`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "თუ დატოვებ ბრაუზერის ფანჯარას გახსნილს, როცა ვიღაც მოგწერს საუბარი ამოვარდება დესკტოპზე.", SEND_BUTTON_TEXT: "გაგზავნა", ENTRYBOX_TEXT_LIMIT: "დაშვებულია მხოლოდ 10.000 სიმბოლო.", ENTRYBOX_PLACEHOLDER: "დაწერე რაღაც...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "ეს დიალოგი აღარ არის ხელმისაწვდომი.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "შეგიძლია წაიკითხო, მაგრამ ვერ გააგზავნი შეტყობინებას.", MESSAGELIST_LOADING_OLDER: "იტვირთება ძველი შეტყობინებები...", MESSAGELIST_SHOW_OLDER: "ძველი შეტყობინებების ჩვენება", MESSAGELIST_NEW_MARKER: "ახალი", MESSAGE_SENT_VIA_EMAIL: "ეს შეტყობინება გამოგზავნილია იმეილით", YOU_MARKER: "you", UPLOAD_IN_PROGRESS: "იტვირთება...", UPLOAD_SEND_FILE: "ფაილის გაგზავნა", UPLOAD_SHARE_LOCATION: "ადგილმდებარეობის გაზიარება", UPLOAD_ERROR: "პრობლემაა ატვირთვისას. ფაილის შესაძლოა არის არათავსებადი ან ძალიან დიდი.", SHARE_LOCATION_ERROR: "შეუძლებელია ადგილმდებარეობის გაზიარება: ", LOADING: "იტვირთება...", HUB_EMPTY: "საუბრების ისტორია გამოჩნდება აქ", HUB_SHOW_EARLIER: "წინა საუბრების ნახვა", INBOX_NO_CHATS_TITLE: "ჯერ-ჯერობით არ არის საუბრები!", INBOX_NO_CHATS_BODY: "უკვე დასრულებული საუბარები გამოჩნდება აქ", ENABLE_TRANSLATION: "თარგმნეთ ეს საუბარი ინგლისურად", DISABLE_TRANSLATION: "ორიგინალის ჩვენება", SEARCH_PLACEHOLDER_TEXT: "ძიება...", SEARCH_SEARCHING: "მიმდინარეობს ძიება...", SEARCH_NO_RESULTS: "შედეგები ვერ ქართველი", SEARCH_NO_MORE_RESULTS: "სხვა შედეგი ვერ მოიძებნა", CHAT_NOT_FOUND: "ჩატი ვერ მოიძებნა", DELETE_MESSAGE: "შეტყობინების წაშლა ", DELETION_EXPLANATION: "თუ ამ შეტყობინებას წაშლით, ის ყველასთვის გაქრება.", EDIT_MESSAGE: "შეტყობინების რედაქტირება", SAVE: "შენახვა", EDITED_INDICATOR: "რედაქტირებულია", REPLY_TO_MESSAGE: "პასუხის გაცემა", ADD_REACTION: "დაამატეთ რეაქცია", AUTH_EXPIRED_OVERLAY_TITLE: "თქვენი ჩეთის სესიის ვადა ამოიწურა", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "განაახლეთ გვერდი გასაგრძელებლად", VOICE_MESSAGE: "ხმოვანი შეტყობინება", CONTACT_INFORMATION_HIDDEN: "ფარული ინფორმაცია", LEAVE_CONVERSATION: "საუბრის დატოვება", MARK_CONVERSATION_AS_UNREAD: "წაუკითხავად მონიშვნა", REPLY_TO_ARIA_LABEL: O.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: O.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: O.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: O.translation.STATUS_INDICATOR_OFFLINE } }, Xa = { code: "ko-KR", name: "Korean (South Korea)", translation: { YESTERDAY: "어제", TODAY: "오늘", DAYS: "일 전", HOURS: "시간 전", MINUTES: "분 전", JUST_NOW: "방금", LOCATION: "위치", CANCEL: "취소", INBOX: "대화 목록", DESKTOP_NOTIFICATIONS: "브라우저 알림", DESKTOP_NOTIFICATIONS_ERROR: "브라우저 알림을 표시할 수 없습니다. 브라우저 설정을 확인하거나 다른 브라우저를 사용해주세요.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `${e} 데모 알림`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "브라우저 탭을 열어 둔 상태에서 누군가 대화 할 때 이 팝업이 표시됩니다.", SEND_BUTTON_TEXT: "전송", ENTRYBOX_TEXT_LIMIT: "최대 10,000자까지 입력할 수 있습니다.", ENTRYBOX_PLACEHOLDER: "메세지를 입력하세요...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "채팅이 종료되었습니다.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "읽기만 가능하며 메시지를 보낼 수 없습니다.", MESSAGELIST_LOADING_OLDER: "이전 메시지 로드 중...", MESSAGELIST_SHOW_OLDER: "이전 메시지 표시", MESSAGELIST_NEW_MARKER: "새 메시지", MESSAGE_SENT_VIA_EMAIL: "이 메시지는 이메일을 통해 전송되었습니다.", YOU_MARKER: "나", UPLOAD_IN_PROGRESS: "업로드 중...", UPLOAD_SEND_FILE: "파일 전송", UPLOAD_SHARE_LOCATION: "위치 공유", UPLOAD_ERROR: "업로드가 실패했습니다. 파일이 지원되지 않거나 너무 클 수 있습니다.", SHARE_LOCATION_ERROR: "위치를 공유 할 수 없습니다: ", LOADING: "로드 중...", HUB_EMPTY: "채팅 기록이 여기에 표시됩니다", HUB_SHOW_EARLIER: "이전 채팅보기", INBOX_NO_CHATS_TITLE: "아직 채팅이 없습니다!", INBOX_NO_CHATS_BODY: "대화가 하나 이상 있으면 여기에 표시됩니다.", ENABLE_TRANSLATION: "이 대화를 한국어로 번역", DISABLE_TRANSLATION: "원본 표시", SEARCH_PLACEHOLDER_TEXT: "검색...", SEARCH_SEARCHING: "검색 중...", SEARCH_NO_RESULTS: "검색 결과 없음", SEARCH_NO_MORE_RESULTS: "추가 검색 결과 없음", CHAT_NOT_FOUND: "대화를 찾지 못했습니다", DELETE_MESSAGE: "메시지 삭제", DELETION_EXPLANATION: "이 메시지를 삭제하면 모든 사람이 볼 수 없게 됩니다.", EDIT_MESSAGE: "메시지 편집하기", SAVE: "저장", EDITED_INDICATOR: "편집", REPLY_TO_MESSAGE: "회신", ADD_REACTION: "반응 추가", AUTH_EXPIRED_OVERLAY_TITLE: "채팅 세션이 만료되었습니다", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "계속하려면 페이지를 새로고침하세요", VOICE_MESSAGE: "음성 메시지", CONTACT_INFORMATION_HIDDEN: "숨겨진 정보", LEAVE_CONVERSATION: "대화 떠나기", MARK_CONVERSATION_AS_UNREAD: "읽지 않은 상태로 표시", REPLY_TO_ARIA_LABEL: O.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: O.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: O.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: O.translation.STATUS_INDICATOR_OFFLINE } }, Ga = { code: "nb-NO", name: "Norwegian (Bokmål)", translation: { YESTERDAY: "I går", TODAY: "I dag", DAYS: "d", HOURS: "h", MINUTES: "m", JUST_NOW: "Nå", LOCATION: "Plassering", CANCEL: "Avbryt", INBOX: "Innboks", DESKTOP_NOTIFICATIONS: "Nettleservarsler", DESKTOP_NOTIFICATIONS_ERROR: "Kan ikke aktivere Nettleservarsler fordi nettleseren din aktivt blokkerer dem. Prøv å se i innstillingene eller bruke en annen nettleser.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `${e} demo varslinger`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "Hvis du holder nettleservinduet åpent, vil du se dette varsel når noen snakker til deg.", SEND_BUTTON_TEXT: "Send", ENTRYBOX_TEXT_LIMIT: "Kun 10.000 tegn er tillatt.", ENTRYBOX_PLACEHOLDER: "Si noe...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "Denne samtale er ikke lengre aktiv.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "Du kan lese, men ikke sende meldinger.", MESSAGELIST_LOADING_OLDER: "Laster eldre meldinger...", MESSAGELIST_SHOW_OLDER: "Vis eldre meldinger", MESSAGELIST_NEW_MARKER: "Ny", MESSAGE_SENT_VIA_EMAIL: "Denne meldingen er sendt via e-post", YOU_MARKER: "deg", UPLOAD_IN_PROGRESS: "Laster opp...", UPLOAD_SEND_FILE: "Send fil", UPLOAD_SHARE_LOCATION: "Del din plassering", UPLOAD_ERROR: "Noe gikk galt i uplastingen. Det kan være filen ikke støttes eller for stor.", SHARE_LOCATION_ERROR: "Kan ikke dele plasseringen: ", LOADING: "Laster...", HUB_EMPTY: "Din chats historikk vil vises her", HUB_SHOW_EARLIER: "Vis tidligere chats", INBOX_NO_CHATS_TITLE: "Ingen chats enda!", INBOX_NO_CHATS_BODY: "Så snart du får en eller flere samtaler, vil de vises her.", ENABLE_TRANSLATION: "Oversett denne samtalen til norsk", DISABLE_TRANSLATION: "Vis original", SEARCH_PLACEHOLDER_TEXT: "Søk...", SEARCH_SEARCHING: "Søker...", SEARCH_NO_RESULTS: "Finner ingen resultater", SEARCH_NO_MORE_RESULTS: "Ingen flere resultater", CHAT_NOT_FOUND: "Chat ikke funnet", DELETE_MESSAGE: "Slett melding", DELETION_EXPLANATION: "Hvis du sletter denne meldingen, forsvinner den for alle.", EDIT_MESSAGE: "Rediger melding", SAVE: "Lagre", EDITED_INDICATOR: "redigert", REPLY_TO_MESSAGE: "Svar", ADD_REACTION: "Legg til reaksjon", AUTH_EXPIRED_OVERLAY_TITLE: "Chatøkten er utløpt", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "Oppdater siden for å fortsette", VOICE_MESSAGE: "Lydmelding", CONTACT_INFORMATION_HIDDEN: "Skjult informasjon", LEAVE_CONVERSATION: "Forlat samtalen", MARK_CONVERSATION_AS_UNREAD: "Merk som ulest", REPLY_TO_ARIA_LABEL: O.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: O.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: O.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: O.translation.STATUS_INDICATOR_OFFLINE } }, za = { code: "nl-NL", name: "Dutch", translation: { YESTERDAY: "Gisteren", TODAY: "Vandaag", DAYS: "d", HOURS: "u", MINUTES: "m", JUST_NOW: "zojuist", LOCATION: "Locatie", CANCEL: "Annuleren", INBOX: "Inbox", DESKTOP_NOTIFICATIONS: "Browsermeldingen", DESKTOP_NOTIFICATIONS_ERROR: "Browsermeldingen kunnen niet geactiveerd worden omdat de browser het blokkeert. Check de instellingen van je browser of probeer een andere browser.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `${e} demo notificatie`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "Als je je browser open houdt, zie je deze popup als iemand tegen je praat.", SEND_BUTTON_TEXT: "Verzenden", ENTRYBOX_TEXT_LIMIT: "Maximaal 10.000 tekens toegestaan.", ENTRYBOX_PLACEHOLDER: "Typ een bericht...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "Dit gesprek is niet actief meer.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "Je kunt geen berichten sturen.", MESSAGELIST_LOADING_OLDER: "Eerdere berichten laden...", MESSAGELIST_SHOW_OLDER: "Laad eerdere berichten", MESSAGELIST_NEW_MARKER: "Nieuw", MESSAGE_SENT_VIA_EMAIL: "Dit bericht is verstuurd via e-mail", YOU_MARKER: "jij", UPLOAD_IN_PROGRESS: "Uploaden...", UPLOAD_SEND_FILE: "Verzend bestand", UPLOAD_SHARE_LOCATION: "Deel locatie", UPLOAD_ERROR: "Er ging iets mis. Het bestand wordt niet ondersteund of is te groot.", SHARE_LOCATION_ERROR: "Locatie delen mislukt: ", LOADING: "Bezig met laden...", HUB_EMPTY: "Berichtengeschiedenis wordt hier weergegeven", HUB_SHOW_EARLIER: "Laat eerdere berichten zien", INBOX_NO_CHATS_TITLE: "Nog geen chats!", INBOX_NO_CHATS_BODY: "Zodra je een of meerdere conversaties hebt gehad, worden deze hier weergegeven.", ENABLE_TRANSLATION: "Vertaal dit gesprek naar het Nederlands", DISABLE_TRANSLATION: "Toon oorspronkelijk gesprek", SEARCH_PLACEHOLDER_TEXT: "Zoek...", SEARCH_SEARCHING: "Zoeken...", SEARCH_NO_RESULTS: "Geen resultaten gevonden", SEARCH_NO_MORE_RESULTS: "Niet meer resultaten", CHAT_NOT_FOUND: "Chat niet gevonden", DELETE_MESSAGE: "Bericht verwijderen", DELETION_EXPLANATION: "Als je dit bericht verwijdert, zal het voor iedereen verdwijnen.", EDIT_MESSAGE: "Bericht bewerken", SAVE: "Opslaan", EDITED_INDICATOR: "bewerkt", REPLY_TO_MESSAGE: "Beantwoorden", ADD_REACTION: "Reactie toevoegen", AUTH_EXPIRED_OVERLAY_TITLE: "Je chatsessie is verlopen", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "Ververs de pagina om door te gaan", VOICE_MESSAGE: "Spraakbericht", CONTACT_INFORMATION_HIDDEN: "verborgen informatie", LEAVE_CONVERSATION: "Gesprek verlaten", MARK_CONVERSATION_AS_UNREAD: "Markeren als ongelezen", REPLY_TO_ARIA_LABEL: O.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: O.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: O.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: O.translation.STATUS_INDICATOR_OFFLINE } }, Ka = { code: "pl-PL", name: "Polish", translation: { YESTERDAY: "Wczoraj", TODAY: "Dzisiaj", DAYS: "d", HOURS: "h", MINUTES: "m", JUST_NOW: "teraz", LOCATION: "Lokalizacja", CANCEL: "Anuluj", INBOX: "Skrzynka odbiorcza", DESKTOP_NOTIFICATIONS: "Powiadomienia", DESKTOP_NOTIFICATIONS_ERROR: "Nie można aktywować powiadomień, ponieważ twoja przeglądarka je blokuje. Proszę zmienić ustawienie lub spróbować innej przeglądarki.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `${e} przykładowe powiadomienie`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "Jeśli zostawisz tę kartę otwartą, zobaczysz takie powiadomienie, gdy ktoś napisze do Ciebie.", SEND_BUTTON_TEXT: "Wyślij", ENTRYBOX_TEXT_LIMIT: "Nie można wysyłać więcej niż 10000 znaków.", ENTRYBOX_PLACEHOLDER: "Napisz coś...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "Ten czat nie jest aktywny.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "Możesz czytać wiadomości, ale nie możesz ich wysyłać.", MESSAGELIST_LOADING_OLDER: "Wczytuję starsze wiadomości...", MESSAGELIST_SHOW_OLDER: "Zobacz starsze wiadomości", MESSAGELIST_NEW_MARKER: "Nowe", MESSAGE_SENT_VIA_EMAIL: "Ta wiadomość została wysłana przez email.", YOU_MARKER: "ty", UPLOAD_IN_PROGRESS: "Przesyłanie...", UPLOAD_SEND_FILE: "Prześlij plik", UPLOAD_SHARE_LOCATION: "Udostępnij lokalizację", UPLOAD_ERROR: "Coś poszło nie tak. Plik może być zbyt duży lub jest nieobsługiwany.", SHARE_LOCATION_ERROR: "Nie da się udostępnić lokalizacji: ", LOADING: "Ładowanie...", HUB_EMPTY: "Twoje czaty pojawią się tutaj", HUB_SHOW_EARLIER: "Zobacz starsze czaty", INBOX_NO_CHATS_TITLE: "Brak czatów!", INBOX_NO_CHATS_BODY: "Rozpoczęte konwersacje pojawią się tutaj.", ENABLE_TRANSLATION: "Przetłumacz tę konwersację na język polski", DISABLE_TRANSLATION: "Pokaż oryginał", SEARCH_PLACEHOLDER_TEXT: "Wyszukaj...", SEARCH_SEARCHING: "Wyszukiwanie...", SEARCH_NO_RESULTS: "Nie znaleziono wyników", SEARCH_NO_MORE_RESULTS: "Nie ma innych wyników", CHAT_NOT_FOUND: "Nie znaleziono konwersacji", DELETE_MESSAGE: "Usuń wiadomość", DELETION_EXPLANATION: "Jeśli usuniesz tę wiadomość, przestanie być widoczna dla wszystkich.", EDIT_MESSAGE: "Edytuj wiadomość", SAVE: "Zapisz", EDITED_INDICATOR: "edytowano", REPLY_TO_MESSAGE: "Odpowiedz", ADD_REACTION: "Dodaj reakcję", AUTH_EXPIRED_OVERLAY_TITLE: "Twoja sesja wygasła", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "Odśwież stronę, aby kontynuować", VOICE_MESSAGE: "Wiadomość głosowa", CONTACT_INFORMATION_HIDDEN: "Ukryte informacje", LEAVE_CONVERSATION: "Opuść konwersację", MARK_CONVERSATION_AS_UNREAD: "Oznacz jako nieprzeczytane", REPLY_TO_ARIA_LABEL: O.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: O.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: O.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: O.translation.STATUS_INDICATOR_OFFLINE } }, Wa = { code: "pt-BR", name: "Portuguese (Brazil)", translation: { YESTERDAY: "Ontem", TODAY: "Hoje", DAYS: "d", HOURS: "h", MINUTES: "m", JUST_NOW: "agora mesmo", LOCATION: "Localização", CANCEL: "Cancelar", INBOX: "Caixa de entrada", DESKTOP_NOTIFICATIONS: "Notificações do navegador", DESKTOP_NOTIFICATIONS_ERROR: "Não é possível ativar as notificações da navegador porque seu navegador as bloqueia. Tente procurar nas configurações ou usar um navegador diferente.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `${e} notificação de demonstração`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "Se você mantiver a guia do navegador aberta, verá essa mensagem quando alguém falar com você.", SEND_BUTTON_TEXT: "Enviar", ENTRYBOX_TEXT_LIMIT: "Apenas 10.000 caracteres são permitidos.", ENTRYBOX_PLACEHOLDER: "Diga algo...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "Esta conversa não está mais ativa.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "Você pode ler, mas não enviar mensagens.", MESSAGELIST_LOADING_OLDER: "Carregando mensagens antigas...", MESSAGELIST_SHOW_OLDER: "Mostrar mensagens mais antigas", MESSAGELIST_NEW_MARKER: "Novo", MESSAGE_SENT_VIA_EMAIL: "Esta mensagem foi enviada via email.", YOU_MARKER: "Você", UPLOAD_IN_PROGRESS: "Carregando...", UPLOAD_SEND_FILE: "Enviar arquivo", UPLOAD_SHARE_LOCATION: "Compartilhar localização", UPLOAD_ERROR: "Algo deu errado ao fazer o upload. O arquivo pode não ter suporte ou ser muito grande.", SHARE_LOCATION_ERROR: "Não é possível compartilhar o local: ", LOADING: "Carregando...", HUB_EMPTY: "Seu histórico de conversas será exibido aqui", HUB_SHOW_EARLIER: "Mostrar conversas anteriores", INBOX_NO_CHATS_TITLE: "Ainda não há chats!", INBOX_NO_CHATS_BODY: "Depois de ter uma ou mais conversas, elas serão exibidas aqui.", ENABLE_TRANSLATION: "Traduzir esta conversa para português", DISABLE_TRANSLATION: "Ver a conversa não traduzida", SEARCH_PLACEHOLDER_TEXT: "Busca...", SEARCH_SEARCHING: "Consultando...", SEARCH_NO_RESULTS: "Resultados nao encontrados", SEARCH_NO_MORE_RESULTS: "Não há mais resultados", CHAT_NOT_FOUND: "Conversa não encontrada", DELETE_MESSAGE: "Excluir mensagem", DELETION_EXPLANATION: "Se você excluir esta mensagem, ela desaparecerá para todos.", EDIT_MESSAGE: "Editar mensagem", SAVE: "Salvar", EDITED_INDICATOR: "editada", REPLY_TO_MESSAGE: "Responder", ADD_REACTION: "Adicionar reação", AUTH_EXPIRED_OVERLAY_TITLE: "Sua sessão de chat expirou", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "Atualize a página para continuar", VOICE_MESSAGE: "Mensagem de voz", LEAVE_CONVERSATION: "Sair da conversa", MARK_CONVERSATION_AS_UNREAD: "Marcar como não lida", CONTACT_INFORMATION_HIDDEN: "Informação oculta", REPLY_TO_ARIA_LABEL: O.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: O.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: O.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: O.translation.STATUS_INDICATOR_OFFLINE } }, qa = { code: "ro-RO", name: "Romanian (Romania)", translation: { YESTERDAY: "Ieri", TODAY: "Astăzi", DAYS: "z", HOURS: "o", MINUTES: "m", JUST_NOW: "chiar acum", LOCATION: "Locație", CANCEL: "Anulare", INBOX: "Inbox", DESKTOP_NOTIFICATIONS: "Notificări browser", DESKTOP_NOTIFICATIONS_ERROR: "Nu se pot activa notificări browser deoarece browserul dvs. le blochează în mod activ. Încercați să căutați în setări sau utilizând un alt browser.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `Notificare de debit ${e}`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "Dacă țineți fișa browserului deschis, veți vedea acest pop-up atunci când cineva vorbește cu dvs.", SEND_BUTTON_TEXT: "Trimiteți", ENTRYBOX_TEXT_LIMIT: "Sunt permise numai 10.000 de caractere.", ENTRYBOX_PLACEHOLDER: "Spune ceva...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "Această conversație nu mai este activă.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "Puteți citi, dar nu puteți trimite mesaje.", MESSAGELIST_LOADING_OLDER: "Încărcarea mesajelor mai vechi...", MESSAGELIST_SHOW_OLDER: "Afișați mesaje mai vechi", MESSAGELIST_NEW_MARKER: "Nou", MESSAGE_SENT_VIA_EMAIL: "Acest mesaj a fost trimis prin e-mail", YOU_MARKER: "voi", UPLOAD_IN_PROGRESS: "Încărcarea...", UPLOAD_SEND_FILE: "Trimiteți fișierul", UPLOAD_SHARE_LOCATION: "Distribuiți locația", UPLOAD_ERROR: "Sa încărcat ceva în mod greșit. Fișierul ar putea fi neacceptat sau prea mare.", SHARE_LOCATION_ERROR: "Nu se poate partaja locația: ", LOADING: "Încărcare...", HUB_EMPTY: "Istoricul chat-ului dvs. va apărea aici", HUB_SHOW_EARLIER: "Afișați discuțiile anterioare", INBOX_NO_CHATS_TITLE: "Încă nu vorbești!", INBOX_NO_CHATS_BODY: "După ce ați avut una sau mai multe conversații, acestea vor apărea aici.", ENABLE_TRANSLATION: "Traduceți această conversație în română", DISABLE_TRANSLATION: "Arată originalul", SEARCH_PLACEHOLDER_TEXT: "Căutare...", SEARCH_SEARCHING: "Se caută...", SEARCH_NO_RESULTS: "Nu s-au găsit rezultate", SEARCH_NO_MORE_RESULTS: "Nu mai există rezultate", CHAT_NOT_FOUND: "Conversația nu a fost găsită", DELETE_MESSAGE: "Șterge mesajul", DELETION_EXPLANATION: "Dacă ștergi acest mesaj, acesta va dispărea pentru toată lumea.", EDIT_MESSAGE: "Redactează mesajul", SAVE: "Salvare", EDITED_INDICATOR: "editat", REPLY_TO_MESSAGE: "Răspundeți", ADD_REACTION: "Adaugă o reacție", AUTH_EXPIRED_OVERLAY_TITLE: "Sesiunea dumneavoastră de chat a expirat", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "Reîmprospătați pagina pentru a continua", VOICE_MESSAGE: "Mesaj vocal", CONTACT_INFORMATION_HIDDEN: "Informații ascunse", LEAVE_CONVERSATION: "Părăsește conversația", MARK_CONVERSATION_AS_UNREAD: "Marcheaza ca necitit", REPLY_TO_ARIA_LABEL: O.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: O.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: O.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: O.translation.STATUS_INDICATOR_OFFLINE } }, Ja = { code: "ru-RU", name: "Russian", translation: { YESTERDAY: "Вчера", TODAY: "Сегодня", DAYS: "д", HOURS: "ч", MINUTES: "м", JUST_NOW: "только что", LOCATION: "Местоположение", CANCEL: "Отмена", INBOX: "Входящие", DESKTOP_NOTIFICATIONS: "Оповещения", DESKTOP_NOTIFICATIONS_ERROR: "Невозможно включить оповещения, потому что ваш браузер активно блокирует их. Проверьте ваши настройки или попробуйте другой браузер.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `${e} демо-оповещение`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "Если вкладка вашего браузера открыта, вы увидите всплывающее окошко оповещения когда кто-то отправит вам сообщение.", SEND_BUTTON_TEXT: "Отправить", ENTRYBOX_TEXT_LIMIT: "Разрешено использовать только 10 тысяч символов.", ENTRYBOX_PLACEHOLDER: "Напишите что-нибудь...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "Этот разговор больше неактивен.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "Вы можете читать, но не отправлять сообщения.", MESSAGELIST_LOADING_OLDER: "Загрузка старых сообщения...", MESSAGELIST_SHOW_OLDER: "Показать старые сообщения", MESSAGELIST_NEW_MARKER: "Новые", MESSAGE_SENT_VIA_EMAIL: "Это сообщение было отправлено по электронной почте", YOU_MARKER: "вы", UPLOAD_IN_PROGRESS: "Загрузка...", UPLOAD_SEND_FILE: "Отправить файл", UPLOAD_SHARE_LOCATION: "Поделиться местоположением", UPLOAD_ERROR: "Что-то пошло не так: такой файл не поддерживается или он слишком большой.", SHARE_LOCATION_ERROR: "Не удается поделиться местоположением: ", LOADING: "Загрузка...", HUB_EMPTY: "Здесь появится ваша история чата", HUB_SHOW_EARLIER: "Показать предыдущие чаты", INBOX_NO_CHATS_TITLE: "Пока нет чатов!", INBOX_NO_CHATS_BODY: "Как только у вас будет один или несколько разговоров, они появятся здесь.", ENABLE_TRANSLATION: "Переведите этот разговор на русский", DISABLE_TRANSLATION: "Show source", SEARCH_PLACEHOLDER_TEXT: "поиск...", SEARCH_SEARCHING: "Поиск...", SEARCH_NO_RESULTS: "Результаты не найдены", SEARCH_NO_MORE_RESULTS: "Больше результатов нет", CHAT_NOT_FOUND: "Чат не найден", DELETE_MESSAGE: "Удалить сообщение", DELETION_EXPLANATION: "Если вы удалите это сообщение, оно исчезнет для всех.", EDIT_MESSAGE: "Изменить сообщение", SAVE: "сохранить", EDITED_INDICATOR: "изменено", REPLY_TO_MESSAGE: "Ответить", ADD_REACTION: "Добавить реакцию", AUTH_EXPIRED_OVERLAY_TITLE: "Срок действия вашего сеанса чата истек", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "Обновите страницу, чтобы продолжить", VOICE_MESSAGE: "Голосовое сообщение", CONTACT_INFORMATION_HIDDEN: "Информация скрыта", LEAVE_CONVERSATION: "Выйти из беседы", MARK_CONVERSATION_AS_UNREAD: "Отметить как непрочитанное", REPLY_TO_ARIA_LABEL: O.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: O.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: O.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: O.translation.STATUS_INDICATOR_OFFLINE } }, Za = { code: "sq-AL", name: "Albanian", translation: { YESTERDAY: "Dje", TODAY: "Sot", DAYS: "d", HOURS: "o", MINUTES: "m", JUST_NOW: "Tani", LOCATION: "Pozicion", CANCEL: "Anulo", INBOX: "Inbox", DESKTOP_NOTIFICATIONS: "Njoftimet e shfletuesit", DESKTOP_NOTIFICATIONS_ERROR: "Nuk mund të aktivizohen njoftimet në shfletues sepse shfletuesi juaj i bllokon ato në mënyrë aktive. Provoni të shikoni cilësimet ose përdorni një shfletues të ndryshëm.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `${e} njoftime në desktop`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "Lënia e skedës së shfletuesit tuaj të hapur do të pop-up kur dikush flet me ju.", SEND_BUTTON_TEXT: "Dërgo", ENTRYBOX_TEXT_LIMIT: "Lejohen vetëm 10,000 karaktere", ENTRYBOX_PLACEHOLDER: "Thuaj diçka...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "Kjo bisedë nuk është më aktive.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "Mund të lexoni por jo të dërgoni mesazhe.", MESSAGELIST_LOADING_OLDER: "Duke ngarkuar mesazhe më të vjetra...", MESSAGELIST_SHOW_OLDER: "Trego mesazhe më të vjetra", MESSAGELIST_NEW_MARKER: "E ri", MESSAGE_SENT_VIA_EMAIL: "Ky mesazh u dërgua si email", YOU_MARKER: "ti", UPLOAD_IN_PROGRESS: "Ngarkim...", UPLOAD_SEND_FILE: "Dërgo datotekën", UPLOAD_SHARE_LOCATION: "Ndani lokacionin", UPLOAD_ERROR: "Na vjen keq, diçka nuk shkoi si duhet. Dosja mund të mos ket mbështetje ose mund të jetë shumë e madhe.", SHARE_LOCATION_ERROR: "Nuk mund të ndahet lokacioni: ", LOADING: "Ngarkim...", HUB_EMPTY: "Këtu do të paraqitet/ shfaqet historia e bisedës tuaj", HUB_SHOW_EARLIER: "Shfaqi bisedat e mëparshme", INBOX_NO_CHATS_TITLE: "Nuk ka biseda!", INBOX_NO_CHATS_BODY: "Pasi të keni një ose më shumë biseda, ato do të paraqiten/shfaqen këtu.", ENABLE_TRANSLATION: "Përkthejeni këtë bisedë në shqiptare", DISABLE_TRANSLATION: "Shikoni origjinalin", SEARCH_PLACEHOLDER_TEXT: "Kërko...", SEARCH_SEARCHING: "Kërko...", SEARCH_NO_RESULTS: "Nuk ka rezultate", SEARCH_NO_MORE_RESULTS: "Nuk ka më rezultate", CHAT_NOT_FOUND: "Biseda nuk u gjet", DELETE_MESSAGE: "Fshi mesazhin", DELETION_EXPLANATION: "Nëse e fshini këtë mesazh, ai do të zhduket për të gjithë.", EDIT_MESSAGE: "Redakto mesazhin", SAVE: "Ruaj", EDITED_INDICATOR: "redaktuar", REPLY_TO_MESSAGE: "Përgjigj", ADD_REACTION: "Shtoni reagimin", AUTH_EXPIRED_OVERLAY_TITLE: "Sesioni juaj i bisedës ka skaduar", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "Rifresko faqen për të vazhduar", VOICE_MESSAGE: "Mesazh zanor", CONTACT_INFORMATION_HIDDEN: "informacione të fshehura", LEAVE_CONVERSATION: "Largohu nga bashkëbisedimi", MARK_CONVERSATION_AS_UNREAD: "Shëno si të palexuar", REPLY_TO_ARIA_LABEL: O.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: O.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: O.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: O.translation.STATUS_INDICATOR_OFFLINE } }, Qa = { code: "sr-SP", name: "Serbian", translation: { YESTERDAY: "Juče", TODAY: "Danas", DAYS: "d", HOURS: "s", MINUTES: "m", JUST_NOW: "Upravo sad", LOCATION: "Lokacija", CANCEL: "Otkaži", INBOX: "Pretinac", DESKTOP_NOTIFICATIONS: "Browser Notifikacija", DESKTOP_NOTIFICATIONS_ERROR: "Browser notifikacije nisu omogućene jer ih vaš pregledač aktivno blokira. Pokušajte pogledati postavke ili koristiti neki drugi pregledač.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `${e} demo notifikacija`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "Ako karticu pregledača ostavite otvorenu, pojaviće se ovaj pop-up kada neko razgovara s vama.", SEND_BUTTON_TEXT: "Pošalji", ENTRYBOX_TEXT_LIMIT: "Dozvoljeno je samo 10.000 znakova.", ENTRYBOX_PLACEHOLDER: "Kaži nešto...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "Ovaj razgovor više nije aktivan.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "Možete da čitate, ali ne i da šaljete poruke.", MESSAGELIST_LOADING_OLDER: "Učitavam starije poruke...", MESSAGELIST_SHOW_OLDER: "Prikaži starije poruke", MESSAGELIST_NEW_MARKER: "Novo", MESSAGE_SENT_VIA_EMAIL: "Ova poruka je poslana imejlom", YOU_MARKER: "ti", UPLOAD_IN_PROGRESS: "Učitavam...", UPLOAD_SEND_FILE: "Pošalji datoteku", UPLOAD_SHARE_LOCATION: "Podeli lokaciju", UPLOAD_ERROR: "Nažalost, nešto je pošlo krivo. Datoteka možda nije podržana ili je prevelika.", SHARE_LOCATION_ERROR: "Nije moguće podeliti lokaciju: ", LOADING: "Učitavam...", HUB_EMPTY: "Ovde će biti prikazana istorija razgovora", HUB_SHOW_EARLIER: "Prikaži ranije razgovore", INBOX_NO_CHATS_TITLE: "Nema razgovora!", INBOX_NO_CHATS_BODY: "Nakon što vodite jedan ili više razgovora, oni će se pojaviti ovde.", ENABLE_TRANSLATION: "Prevedi ovaj razgovor na srpski jezik", DISABLE_TRANSLATION: "Prikaži original", SEARCH_PLACEHOLDER_TEXT: "Pretraži...", SEARCH_SEARCHING: "Pretraživanje...", SEARCH_NO_RESULTS: "Nema rezultata", SEARCH_NO_MORE_RESULTS: "Nema više rezultata", CHAT_NOT_FOUND: "Ćaskanje nije pronađeno", DELETE_MESSAGE: "Izbriši poruku", DELETION_EXPLANATION: "Ako obrišete ovu poruku, ona neće biti vidljiva ni za koga.", EDIT_MESSAGE: "Ispravi poruku", SAVE: "Sačuvaj", EDITED_INDICATOR: "ispravljeno", REPLY_TO_MESSAGE: "Odgovorite", ADD_REACTION: "Dodaj reakciju", AUTH_EXPIRED_OVERLAY_TITLE: "Vaša sesija ćaskanja je istekla", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "Osvežite stranicu da biste nastavili", VOICE_MESSAGE: "Glasovna poruka", CONTACT_INFORMATION_HIDDEN: "Sakrivene informacije", LEAVE_CONVERSATION: "Napusti razgovor", MARK_CONVERSATION_AS_UNREAD: "Označi kao nepročitanu", REPLY_TO_ARIA_LABEL: (e, t) => `Odgovarate korisniku ${e}: ${t}`, REPLY_MODE_LEAVE_ARIA_LABEL: "Izađi iz moda pisanja odgovora", STATUS_INDICATOR_ONLINE: "Aktivan", STATUS_INDICATOR_OFFLINE: "Neaktivan" } }, ei = { code: "sv-SE", name: "Swedish (Sweden)", translation: { YESTERDAY: "Igår", TODAY: "Idag", DAYS: "d", HOURS: "h", MINUTES: "m", JUST_NOW: "just nu", LOCATION: "Plats", CANCEL: "Avbryt", INBOX: "Inkorg", DESKTOP_NOTIFICATIONS: "Webbläsarnotiser", DESKTOP_NOTIFICATIONS_ERROR: "Kan inte aktivera webbläsarnotiser eftersom din webbläsare aktivt blockerar dem. Se över inställningarna eller använd en annan webbläsare.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `${e} demonotis`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "Om du har fliken i webbläsaren öppen så kommer den här notisen visas när någon pratar med dig.", SEND_BUTTON_TEXT: "Skicka", ENTRYBOX_TEXT_LIMIT: "Max 10 000 tecken är tillåtet.", ENTRYBOX_PLACEHOLDER: "Skriv ett meddelande...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "Den här konversationen är inte längre aktiv.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "Du kan läsa men inte skicka meddelanden.", MESSAGELIST_LOADING_OLDER: "Läser in tidigare meddelanden...", MESSAGELIST_SHOW_OLDER: "Visa tidigare meddelanden", MESSAGELIST_NEW_MARKER: "Nytt", MESSAGE_SENT_VIA_EMAIL: "Detta meddelande skickades via e-post", YOU_MARKER: "du", UPLOAD_IN_PROGRESS: "Laddar upp...", UPLOAD_SEND_FILE: "Skicka fil", UPLOAD_SHARE_LOCATION: "Dela plats", UPLOAD_ERROR: "Något gick fel vid uppladdningen. Filen kan vara av en typ som inte stöds eller är för stor.", SHARE_LOCATION_ERROR: "Kan inte dela plats: ", LOADING: "Laddar...", HUB_EMPTY: "Din chatthistorik kommer att visas här", HUB_SHOW_EARLIER: "Visa tidigare chattar", INBOX_NO_CHATS_TITLE: "Inga chattar ännu!", INBOX_NO_CHATS_BODY: "När du har haft en eller flera konversationer kommer de att visas här.", ENABLE_TRANSLATION: "Översätt den här konversationen till svenska", DISABLE_TRANSLATION: "Visa original", SEARCH_PLACEHOLDER_TEXT: "Sök...", SEARCH_SEARCHING: "Söker...", SEARCH_NO_RESULTS: "Inga resultat hittades", SEARCH_NO_MORE_RESULTS: "Inga fler resultat", CHAT_NOT_FOUND: "Chatten hittades inte", DELETE_MESSAGE: "Radera meddelandet", DELETION_EXPLANATION: "Om du raderar det här meddelandet försvinner det för alla.", EDIT_MESSAGE: "Redigera meddelandet", SAVE: "Spara", EDITED_INDICATOR: "redigerad", REPLY_TO_MESSAGE: "Svara", ADD_REACTION: "Lägg till reaktion", AUTH_EXPIRED_OVERLAY_TITLE: "Din chatsession har gått ut", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "Uppdatera sidan för att fortsätta", VOICE_MESSAGE: "Röstmeddelande", CONTACT_INFORMATION_HIDDEN: "Dold information", LEAVE_CONVERSATION: "Lämna konversationen", MARK_CONVERSATION_AS_UNREAD: "Markera som oläst", REPLY_TO_ARIA_LABEL: O.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: O.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: O.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: O.translation.STATUS_INDICATOR_OFFLINE } }, ti = { code: "tr-TR", name: "Turkish", translation: { YESTERDAY: "Dün", TODAY: "Bugün", DAYS: "g", HOURS: "s", MINUTES: "d", JUST_NOW: "az önce", LOCATION: "Konum", CANCEL: "İptal", INBOX: "Gelen Kutusu", SEND_BUTTON_TEXT: "Gönder", ENTRYBOX_TEXT_LIMIT: "En fazla 10.000 karaktere izin veriliyor.", ENTRYBOX_PLACEHOLDER: "Bir şeyler söyle...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "Bu konuşma artık aktif değil.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "Mesajları okuyabilirsiniz ancak mesaj gönderemezsiniz.", MESSAGELIST_LOADING_OLDER: "Eski mesajlar yükleniyor...", MESSAGELIST_SHOW_OLDER: "Eski mesajları göster", MESSAGELIST_NEW_MARKER: "Yeni", DESKTOP_NOTIFICATIONS: "Tarayıcı bildirimleri", DESKTOP_NOTIFICATIONS_ERROR: "Tarayıcınız aktif olarak engellediğinden tarayıcı bildirimlerini etkinleştiremiyoruz. Ayarları kontrol etmeyi veya farklı bir tarayıcı kullanmayı deneyebilirsiniz.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `${e} test bildirimi`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "Eğer tarayıcınızın penceresini açık tutarsanız biri mesaj yazdığında bu bildirimi göreceksiniz.", MESSAGE_SENT_VIA_EMAIL: "Bu mesaj e-posta ile gönderilmiştir.", YOU_MARKER: "siz", UPLOAD_IN_PROGRESS: "Yükleniyor...", UPLOAD_SEND_FILE: "Dosya gönder", UPLOAD_SHARE_LOCATION: "Konum paylaş", UPLOAD_ERROR: "Yükleme sırasında bir şeyler yanlış gitti. Dosya desteklenmiyor veya izin verilenden büyük olabilir.", SHARE_LOCATION_ERROR: "Konum paylaşılamadı: ", LOADING: "Yükleniyor...", HUB_EMPTY: "Konuşma geçmişiniz burada görünecek", HUB_SHOW_EARLIER: "Önceki konuşmaları göster", INBOX_NO_CHATS_TITLE: "Henüz konuşma yok!", INBOX_NO_CHATS_BODY: "Bir veya daha fazla konuşma başlattığınız konuşmalar burada belirecek.", ENABLE_TRANSLATION: "Bu konuşmayı Türkçe'ye çevir", DISABLE_TRANSLATION: "Orijinali göster", SEARCH_PLACEHOLDER_TEXT: "Ara...", SEARCH_SEARCHING: "Arıyor...", SEARCH_NO_RESULTS: "Sonuç bulunamadı", SEARCH_NO_MORE_RESULTS: "Başka sonuç bulunamadı.", CHAT_NOT_FOUND: "Sohbet bulunamadı", DELETE_MESSAGE: "Mesajı sil", DELETION_EXPLANATION: "Bu mesajı silerseniz herkes için görünmez olacaktır.", EDIT_MESSAGE: "Mesajı düzenle", SAVE: "Kaydet", EDITED_INDICATOR: "düzenlenmiş", REPLY_TO_MESSAGE: "Yanıtla", ADD_REACTION: "Tepki ekle", AUTH_EXPIRED_OVERLAY_TITLE: "Sohbet oturumunuz sona erdi", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "Devam etmek için sayfayı yenileyin", VOICE_MESSAGE: "Sesli mesaj", CONTACT_INFORMATION_HIDDEN: "Gizli bilgi", LEAVE_CONVERSATION: "Konuşmadan ayrıl", MARK_CONVERSATION_AS_UNREAD: "Okunmamış olarak işaretle", REPLY_TO_ARIA_LABEL: O.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: O.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: O.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: O.translation.STATUS_INDICATOR_OFFLINE } }, ni = { code: "uk-UA", name: "Ukrainian (Ukraine)", translation: { YESTERDAY: "Вчора", TODAY: "Сьогодні", DAYS: "d", HOURS: "h", MINUTES: "м", JUST_NOW: "просто зараз", LOCATION: "Місцезнаходження", CANCEL: "Скасувати", INBOX: "Вхідні", DESKTOP_NOTIFICATIONS: "Сповіщення в браузері", DESKTOP_NOTIFICATIONS_ERROR: "Неможливо ввімкнути сповіщення в браузері, оскільки ваш веб-переглядач активно їх блокує. Спробуйте переглянути налаштування або використовувати інший браузер.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `Демо-повідомлення про ${e}`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "Якщо ви відкриєте вкладку веб-переглядача відкритою, ви побачите це спливаюче вікно, коли хтось спілкується з вами.", SEND_BUTTON_TEXT: "Надіслати", ENTRYBOX_TEXT_LIMIT: "Дозволено лише 10 000 символів.", ENTRYBOX_PLACEHOLDER: "Скажи щось...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "Ця розмова більше не активна.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "Ви можете читати, але не надсилати повідомлення.", MESSAGELIST_LOADING_OLDER: "Завантаження старих повідомлень...", MESSAGELIST_SHOW_OLDER: "Показати старіші повідомлення", MESSAGELIST_NEW_MARKER: "Нові", MESSAGE_SENT_VIA_EMAIL: "Це повідомлення надіслано електронною поштою", YOU_MARKER: "ти", UPLOAD_IN_PROGRESS: "Завантаження...", UPLOAD_SEND_FILE: "Надіслати файл", UPLOAD_SHARE_LOCATION: "Поділитися місцезнаходженням", UPLOAD_ERROR: "На жаль, під час завантаження щось не вдалось. Файл може бути непідтримуваним або занадто великим.", SHARE_LOCATION_ERROR: "Неможливо поділити місцезнаходження: ", LOADING: "Завантаження...", HUB_EMPTY: "Тут відобразиться ваша історія чатів", HUB_SHOW_EARLIER: "Показати попередні чати", INBOX_NO_CHATS_TITLE: "Чатів ще немає!", INBOX_NO_CHATS_BODY: "Після того, як ви проведете одну чи кілька бесід, вони з’являться тут.", ENABLE_TRANSLATION: "Перекласти цю розмову англійською", DISABLE_TRANSLATION: "Показати оригінал", SEARCH_PLACEHOLDER_TEXT: "Пошук...", SEARCH_SEARCHING: "Пошук...", SEARCH_NO_RESULTS: "Не знайдено результатів", SEARCH_NO_MORE_RESULTS: "Більше немає результатів", CHAT_NOT_FOUND: "Чат не знайдено", DELETE_MESSAGE: "Видалити повідомлення", DELETION_EXPLANATION: "Якщо ви видалите це повідомлення, воно зникне для всіх.", EDIT_MESSAGE: "Редагувати повідомлення", SAVE: "Зберегти", EDITED_INDICATOR: "відредаговано", REPLY_TO_MESSAGE: "Відповісти", ADD_REACTION: "Додати реакцію", AUTH_EXPIRED_OVERLAY_TITLE: "Ваша сесія в чаті закінчилась", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "Оновіть сторінку, щоб продовжити", VOICE_MESSAGE: "Голосове повідомлення", CONTACT_INFORMATION_HIDDEN: "Прихована інформація", LEAVE_CONVERSATION: "Залишити розмову", MARK_CONVERSATION_AS_UNREAD: "Відзначити як непрочитане", REPLY_TO_ARIA_LABEL: O.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: O.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: O.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: O.translation.STATUS_INDICATOR_OFFLINE } }, ai = { code: "vi-VN", name: "Vietnamese", translation: { YESTERDAY: "Hôm qua", TODAY: "Hôm nay", DAYS: "ngày", HOURS: "giờ", MINUTES: "phút", JUST_NOW: "vừa xong", LOCATION: "Địa điểm", CANCEL: "Hủy", INBOX: "Hộp thư đến", DESKTOP_NOTIFICATIONS: "Thông báo trình duyệt", DESKTOP_NOTIFICATIONS_ERROR: "Không thể bật thông báo trên trình duyệt vì trình duyệt của bạn đang tắt chức năng này. Hãy thử tìm trong cài đặt trình duyệt hoặc sử dụng một trình duyệt khác.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `${e} thông báo thử nghiệm`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "Nếu bạn giữ tab trình duyệt của bạn mở, bạn sẽ thấy cửa sổ bật lên khi ai đó nói chuyện với bạn.", SEND_BUTTON_TEXT: "Gửi", ENTRYBOX_TEXT_LIMIT: "Tối đa 10.000 ký tự.", ENTRYBOX_PLACEHOLDER: "Nói gì đó...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "Cuộc hội thoại này không còn hoạt động.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "Bạn có thể đọc, nhưng không thể gửi tin nhắn.", MESSAGELIST_LOADING_OLDER: "Đang tải tin nhắn cũ...", MESSAGELIST_SHOW_OLDER: "Hiển thị tin nhắn trước đó", MESSAGELIST_NEW_MARKER: "Mới", MESSAGE_SENT_VIA_EMAIL: "Tin nhắn này đã được gửi qua email", YOU_MARKER: "bạn", UPLOAD_IN_PROGRESS: "Đang tải lên...", UPLOAD_SEND_FILE: "Gửi tệp", UPLOAD_SHARE_LOCATION: "Chia sẻ vị trí", UPLOAD_ERROR: "Thật không may, quá trình tải lên không thành công. Tệp không được hỗ trợ hoặc quá lớn.", SHARE_LOCATION_ERROR: "Không thể chia sẻ vị trí: ", LOADING: "Đang tải...", HUB_EMPTY: "Lịch sử trò chuyện của bạn sẽ hiển thị ở đây", HUB_SHOW_EARLIER: "Hiển thị các cuộc trò chuyện trước đó", INBOX_NO_CHATS_TITLE: "Chưa có cuộc trò chuyện nào!", INBOX_NO_CHATS_BODY: "Khi bạn đã có một hoặc nhiều cuộc trò chuyện, chúng sẽ hiển thị ở đây.", ENABLE_TRANSLATION: "Dịch cuộc hội thoại sang Tiếng Việt", DISABLE_TRANSLATION: "Hiển thị nội dung gốc", SEARCH_PLACEHOLDER_TEXT: "TÌm kiếm...", SEARCH_SEARCHING: "Đang tìm kiếm...", SEARCH_NO_RESULTS: "Không tìm thấy kết quả nào", SEARCH_NO_MORE_RESULTS: "Không có kết quả nào khác", CHAT_NOT_FOUND: "Không tìm thấy cuộc trò chuyện", DELETE_MESSAGE: "Xóa tin nhắn", DELETION_EXPLANATION: "Nếu bạn xóa tin nhắn này, tất cả mọi người sẽ không còn thấy nó.", EDIT_MESSAGE: "Chỉnh sửa tin nhắn", SAVE: "lưu", EDITED_INDICATOR: "đã chỉnh sửa", REPLY_TO_MESSAGE: "đáp lại", ADD_REACTION: "Thêm biểu tượng cảm xúc", AUTH_EXPIRED_OVERLAY_TITLE: "Phiên trò chuyện của bạn đã hết hạn", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "Hãy làm mới trang để tiếp tục", VOICE_MESSAGE: "Tin nhắn thoại", CONTACT_INFORMATION_HIDDEN: "Thông tin ẩn", LEAVE_CONVERSATION: "Thoát khỏi cuộc trò chuyện", MARK_CONVERSATION_AS_UNREAD: "Đánh dấu là chưa đọc", REPLY_TO_ARIA_LABEL: O.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: O.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: O.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: O.translation.STATUS_INDICATOR_OFFLINE } }, ii = { code: "zh-CN", name: "Chinese (Simplified)", translation: { YESTERDAY: "昨天", TODAY: "今天", DAYS: "天", HOURS: "小时", MINUTES: "分钟", JUST_NOW: "刚才", LOCATION: "地点", CANCEL: "取消", INBOX: "收件箱", DESKTOP_NOTIFICATIONS: "浏览器通知", DESKTOP_NOTIFICATIONS_ERROR: "因浏览器设置为阻止,所以无法激活浏览器提醒。请去设置里查看或者尝试其他的浏览器。", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `${e} 演示提醒`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "只要保持浏览器开着,如果有人和你对话,将会自动弹出对话窗口。", SEND_BUTTON_TEXT: "发送", ENTRYBOX_TEXT_LIMIT: "不超过10,000个字符。", ENTRYBOX_PLACEHOLDER: "写点什么吧……", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "该对话已结束。", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "你只能阅读信息,不能发送信息。", MESSAGELIST_LOADING_OLDER: "载入之前的信息……", MESSAGELIST_SHOW_OLDER: "显示之前的信息", MESSAGELIST_NEW_MARKER: "新消息", MESSAGE_SENT_VIA_EMAIL: "该信息已通过邮件发送。", YOU_MARKER: "你", UPLOAD_IN_PROGRESS: "上传中……", UPLOAD_SEND_FILE: "发送文件", UPLOAD_SHARE_LOCATION: "分享地址", UPLOAD_ERROR: "上传出错。文件格式不支持或者太大。", SHARE_LOCATION_ERROR: "无法分享地址: ", LOADING: "正在载入……", HUB_EMPTY: "你的聊天记录将在此显示。", HUB_SHOW_EARLIER: "显示之前的聊天记录。", INBOX_NO_CHATS_TITLE: "暂无任何聊天记录!", INBOX_NO_CHATS_BODY: "如果你有一个或多个对话窗口进行中,将显示在这里。", ENABLE_TRANSLATION: "翻译至简体中文", DISABLE_TRANSLATION: "查看原文", SEARCH_PLACEHOLDER_TEXT: "搜索...", SEARCH_SEARCHING: "正在搜索...", SEARCH_NO_RESULTS: "未找到结果", SEARCH_NO_MORE_RESULTS: "无更多结果", CHAT_NOT_FOUND: "未找到“聊天”", DELETE_MESSAGE: "删除消息", DELETION_EXPLANATION: "如果您删除此消息,那么所有人都将无法再看到它。", EDIT_MESSAGE: "编辑消息", SAVE: "保存", EDITED_INDICATOR: "本消息有改动", REPLY_TO_MESSAGE: "回复", ADD_REACTION: "添加反应", AUTH_EXPIRED_OVERLAY_TITLE: "您的聊天会话已过期", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "刷新页面以继续", VOICE_MESSAGE: "语音消息", CONTACT_INFORMATION_HIDDEN: "隐藏信息", LEAVE_CONVERSATION: "离开对话", MARK_CONVERSATION_AS_UNREAD: "标记为未读", REPLY_TO_ARIA_LABEL: O.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: O.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: O.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: O.translation.STATUS_INDICATOR_OFFLINE } }, si = { code: "zh-TW", name: "Chinese (Traditional)", translation: { YESTERDAY: "昨天", TODAY: "昨天", DAYS: "天", HOURS: "小時", MINUTES: "分", JUST_NOW: "現在", LOCATION: "地點", CANCEL: "取消", INBOX: "收件箱", DESKTOP_NOTIFICATIONS: "瀏覽器通知", DESKTOP_NOTIFICATIONS_ERROR: "無法啟用瀏覽器通知,因為您的瀏覽器主動阻止它們。 嘗試查看設置或使用其他瀏覽器。", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `${e} 演示通知`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "如果您持續打開瀏覽器標籤頁,當有人與您通話時,您會看到此彈出窗口。", SEND_BUTTON_TEXT: "發送", ENTRYBOX_TEXT_LIMIT: "只允許10.000個字符。", ENTRYBOX_PLACEHOLDER: "說些什麼...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "此對話不再有效。", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "您可以閱讀,但不能發送消息。", MESSAGELIST_LOADING_OLDER: "加載舊訊息...", MESSAGELIST_SHOW_OLDER: "顯示較舊的訊息", MESSAGELIST_NEW_MARKER: "新的", MESSAGE_SENT_VIA_EMAIL: "此訊息是通過電郵發送的", YOU_MARKER: "您", UPLOAD_IN_PROGRESS: "上傳中...", UPLOAD_SEND_FILE: "發送文件", UPLOAD_SHARE_LOCATION: "共享位置", UPLOAD_ERROR: "不幸的是,上傳出了問題。 該文件可能不受支持或太大。", SHARE_LOCATION_ERROR: "無法分享位置:", LOADING: "載入中...", HUB_EMPTY: "您的聊天記錄將顯示在此處", HUB_SHOW_EARLIER: "顯示早先的聊天記錄", INBOX_NO_CHATS_TITLE: "還沒聊天!", INBOX_NO_CHATS_BODY: "一旦您進行了一次或多次對話,他們就會顯示在此處。", ENABLE_TRANSLATION: "翻譯此對話至繁體中文", DISABLE_TRANSLATION: "顯示原文", SEARCH_PLACEHOLDER_TEXT: "搜尋...", SEARCH_SEARCHING: "正在搜尋...", SEARCH_NO_RESULTS: "找不到任何結果", SEARCH_NO_MORE_RESULTS: "沒有其他結果", CHAT_NOT_FOUND: "查無對話", DELETE_MESSAGE: "刪除訊息", DELETION_EXPLANATION: "您如果刪除這條訊息,所有人都將看不到它。", EDIT_MESSAGE: "編輯訊息", SAVE: "儲存", EDITED_INDICATOR: "已編輯", REPLY_TO_MESSAGE: "回覆", ADD_REACTION: "加入表情回應", AUTH_EXPIRED_OVERLAY_TITLE: "您的會話過程已過期", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "請刷新頁面以繼續", VOICE_MESSAGE: "語音訊息", CONTACT_INFORMATION_HIDDEN: "隱藏訊息", LEAVE_CONVERSATION: "離開對話", MARK_CONVERSATION_AS_UNREAD: "標記為未讀", REPLY_TO_ARIA_LABEL: O.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: O.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: O.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: O.translation.STATUS_INDICATOR_OFFLINE } }, dt = { ar: pa, bg: ha, bs: Da, ca: Ca, cs: ga, da: va, de: fa, el: ka, en: O, es: Ma, et: Pa, fa: Ha, fi: Ua, fr: ba, he: ya, hi: Ba, hr: wa, hu: Ya, id: $a, is: ja, it: Fa, ja: Va, ka: xa, ko: Xa, nb: Ga, nl: za, pl: Ka, pt: Wa, ro: qa, ru: Ja, sq: Za, sr: Qa, sv: ei, tr: ti, uk: ni, vi: ai, zh: ii, zhTw: si };
131
+ const be = new je(), q = new je(), T = { code: "en-US", name: "English (US)", translation: { YESTERDAY: "Yesterday", TODAY: "Today", DAYS: "d", HOURS: "h", MINUTES: "m", JUST_NOW: "just now", LOCATION: "Location", CANCEL: "Cancel", INBOX: "Inbox", DESKTOP_NOTIFICATIONS: "Browser notifications", DESKTOP_NOTIFICATIONS_ERROR: "Can't enable browser notifications because your browser actively blocks them. Try looking in the settings or using a different browser.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `${e} demo notification`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "If you keep your browser tab open, you'll see this pop up when someone talks to you.", SEND_BUTTON_TEXT: "Send", ENTRYBOX_TEXT_LIMIT: "Only 10,000 characters are allowed.", ENTRYBOX_PLACEHOLDER: "Say something...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "This conversation is no longer active.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "You can read, but not send messages.", MESSAGELIST_LOADING_OLDER: "Loading older messages...", MESSAGELIST_SHOW_OLDER: "Show older messages", MESSAGELIST_NEW_MARKER: "New", MESSAGE_SENT_VIA_EMAIL: "This message was sent via email", YOU_MARKER: "you", UPLOAD_IN_PROGRESS: "Uploading...", UPLOAD_SEND_FILE: "Send file", UPLOAD_SHARE_LOCATION: "Share location", UPLOAD_ERROR: "Unfortunately, something went wrong uploading. The file might be unsupported or too large.", SHARE_LOCATION_ERROR: "Cannot share location: ", LOADING: "Loading...", HUB_EMPTY: "Your chat history will show up here", HUB_SHOW_EARLIER: "Show earlier chats", INBOX_NO_CHATS_TITLE: "No chats yet!", INBOX_NO_CHATS_BODY: "Once you've had one or more conversations, they will show up here.", ENABLE_TRANSLATION: "Translate this conversation to English", DISABLE_TRANSLATION: "Show original", SEARCH_PLACEHOLDER_TEXT: "Search...", SEARCH_SEARCHING: "Searching...", SEARCH_NO_RESULTS: "No results found", SEARCH_NO_MORE_RESULTS: "No more results", CHAT_NOT_FOUND: "Chat not found", DELETE_MESSAGE: "Delete message", DELETION_EXPLANATION: "If you delete this message, it will disappear for everybody.", EDIT_MESSAGE: "Edit message", SAVE: "Save", EDITED_INDICATOR: "edited", REPLY_TO_MESSAGE: "Reply", REPLY_TO_ARIA_LABEL: (e, t) => `Replying to ${e}: ${t}`, REPLY_MODE_LEAVE_ARIA_LABEL: "Exit reply mode", ADD_REACTION: "Add reaction", AUTH_EXPIRED_OVERLAY_TITLE: "Your chat session has expired", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "Refresh the page to continue", VOICE_MESSAGE: "Voice message", LEAVE_CONVERSATION: "Leave conversation", MARK_CONVERSATION_AS_UNREAD: "Mark as unread", STATUS_INDICATOR_ONLINE: "Active", STATUS_INDICATOR_OFFLINE: "Away", CONTACT_INFORMATION_HIDDEN: "hidden information" } }, pa = { code: "ar", name: "Arabic", translation: { YESTERDAY: "الأمس", TODAY: "اليوم", DAYS: "يوم", HOURS: "ساعة", MINUTES: "دقيقة", JUST_NOW: "فقط الآن", LOCATION: "الموقع", CANCEL: "إلغاء", INBOX: "علبة الوارد", DESKTOP_NOTIFICATIONS: "إشعارات المتصفح", DESKTOP_NOTIFICATIONS_ERROR: "لا يمكن تمكين إشعارات المتصفح لأن متصفحك يمنعها بشكل نشط. جرّب البحث في الإعدادات أو استخدام متصفح آخر.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `إعلام ${e} التجريبي`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "إذا أبقيت علامة تبويب المتصفح مفتوحة ، فسترى هذا ينبثق عندما يتحدث شخص معك.", SEND_BUTTON_TEXT: "إرسال", ENTRYBOX_TEXT_LIMIT: "يُسمح فقط بـ 10.000 حرف.", ENTRYBOX_PLACEHOLDER: "قل شيئًا ...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "هذه المحادثة لم تعد نشطة.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "يمكنك القراءة ، لكن لا يمكنك إرسال الرسائل.", MESSAGELIST_LOADING_OLDER: "جارٍ تحميل الرسائل القديمة ...", MESSAGELIST_SHOW_OLDER: "عرض الرسائل الأقدم", MESSAGELIST_NEW_MARKER: "جديد", MESSAGE_SENT_VIA_EMAIL: "تم إرسال هذه الرسالة عبر البريد الإلكتروني", YOU_MARKER: "أنت", UPLOAD_IN_PROGRESS: "جارٍ التحميل ...", UPLOAD_SEND_FILE: "إرسال ملف", UPLOAD_SHARE_LOCATION: "مشاركة الموقع", UPLOAD_ERROR: "حدث خطأ ما في تحميل شيء. ربما يكون الملف غير متوافق أو كبير جدًا.", SHARE_LOCATION_ERROR: "لا يمكن مشاركة الموقع:", LOADING: "جارٍ التحميل ...", HUB_EMPTY: "سوف يظهر سجل الدردشات هنا", HUB_SHOW_EARLIER: "إظهار الدردشات السابقة", INBOX_NO_CHATS_TITLE: "لا توجد دردشات بعد!", INBOX_NO_CHATS_BODY: "بمجرد أن يكون لديك واحد أو أكثر من المحادثات ، سوف تظهر هنا.", ENABLE_TRANSLATION: "ترجم هذه المحادثة إلى العربية", DISABLE_TRANSLATION: "إظهار الأصلي", SEARCH_PLACEHOLDER_TEXT: "...بحث", SEARCH_SEARCHING: "...يتم الآن البحث", SEARCH_NO_RESULTS: "لم يتم العثور على نتائج", SEARCH_NO_MORE_RESULTS: "لا يوجد المزيد من النتائج", CHAT_NOT_FOUND: "لم يتم العثور على الدردشة", DELETE_MESSAGE: "احذف الرسالة", DELETION_EXPLANATION: "إذا قمت بحذف هذه الرسالة، فهي ستختفي للجميع.", EDIT_MESSAGE: "تعديل الرسالة", SAVE: "حفظ", EDITED_INDICATOR: "معدّلة", REPLY_TO_MESSAGE: "رد", ADD_REACTION: "أضف تفاعلاً", AUTH_EXPIRED_OVERLAY_TITLE: "انتهت جلسة الدردشة المخصصة لك", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "يُرجى إعادة تحميل الصفحة للمتابعة", VOICE_MESSAGE: "رسالة صوتية", CONTACT_INFORMATION_HIDDEN: "المعلومات المخفية", LEAVE_CONVERSATION: "الخروج من المحادثة", MARK_CONVERSATION_AS_UNREAD: "وضع علامة غير مقروءة", REPLY_TO_ARIA_LABEL: T.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: T.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: T.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: T.translation.STATUS_INDICATOR_OFFLINE } }, ha = { code: "bg-BG", name: "Bulgarian", translation: { YESTERDAY: "Вчера", TODAY: "Днес", DAYS: "Ден", HOURS: "Час", MINUTES: "m", JUST_NOW: "Току-що", LOCATION: "местоположението", CANCEL: "Откажи", INBOX: "Кутия", DESKTOP_NOTIFICATIONS: "Известия на браузъра", DESKTOP_NOTIFICATIONS_ERROR: "Не можете да активирате известията на браузъра, защото браузърът ви ги блокира активно. Опитайте да погледнете в настройките или да използвате друг браузър.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `${e} демо известие`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "Ако държите раздела на браузъра си отворен, ще видите този изскачащ прозорец, когато някой говори с вас.", SEND_BUTTON_TEXT: "Изпрати", ENTRYBOX_TEXT_LIMIT: "Разрешени са само до 10.000 знака.", ENTRYBOX_PLACEHOLDER: "Кажете нещо...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "Този ​​разговор вече не е активен.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "Можете да четете, но не и да изпращате съобщения.", MESSAGELIST_LOADING_OLDER: "Зареждане на по-стари съобщения...", MESSAGELIST_SHOW_OLDER: "Показване на по-стари съобщения", MESSAGELIST_NEW_MARKER: "Нови", MESSAGE_SENT_VIA_EMAIL: "Това съобщение беше изпратено по имейл", YOU_MARKER: "Вие", UPLOAD_IN_PROGRESS: "Качване...", UPLOAD_SEND_FILE: "Изпращане на файл", UPLOAD_SHARE_LOCATION: "Споделяне на местоположението", UPLOAD_ERROR: "За съжаление нещо се обърка при качването. Файлът може да не се поддържа или е твърде голям.", SHARE_LOCATION_ERROR: "Не може да се сподели местоположението: ", LOADING: "Зареждане...", HUB_EMPTY: "Историята на вашите разговори ще се покаже тук", HUB_SHOW_EARLIER: "Показване на по-ранни чатове", INBOX_NO_CHATS_TITLE: "Все още нямате разговори!", INBOX_NO_CHATS_BODY: "След като проведете един или повече разговори, те ще се покажат тук.", ENABLE_TRANSLATION: "Преведете този разговор на български", DISABLE_TRANSLATION: "Показване на оригинал", SEARCH_PLACEHOLDER_TEXT: "Търсене...", SEARCH_SEARCHING: "Търсене...", SEARCH_NO_RESULTS: "Няма намерени резултати", SEARCH_NO_MORE_RESULTS: "Няма повече резултати", CHAT_NOT_FOUND: "Чатът не е намерен", DELETE_MESSAGE: "Изтриване на съобщение", DELETION_EXPLANATION: "Ако изтриете това съобщение, то ще изчезне за всички.", EDIT_MESSAGE: "Редактиране на съобщението", SAVE: "Запиши", EDITED_INDICATOR: "редактирано", REPLY_TO_MESSAGE: "Отговори", ADD_REACTION: "Добави реакция", AUTH_EXPIRED_OVERLAY_TITLE: "Вашата чат сесия е изтекла", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "Обновете страницата, за да продължите", VOICE_MESSAGE: "Гласово съобщение", CONTACT_INFORMATION_HIDDEN: "Скрита информация", LEAVE_CONVERSATION: "Напускане на разговора", MARK_CONVERSATION_AS_UNREAD: "Маркирай като непрочетено", REPLY_TO_ARIA_LABEL: T.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: T.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: T.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: T.translation.STATUS_INDICATOR_OFFLINE } }, Da = { code: "bs-BA", name: "Bosnian", translation: { YESTERDAY: "Jučer", TODAY: "Danas", DAYS: "d", HOURS: "s", MINUTES: "m", JUST_NOW: "Upravo sad", LOCATION: "Lokacija", CANCEL: "Otkaži", INBOX: "Pretinac", DESKTOP_NOTIFICATIONS: "Obavijesti preglednika", DESKTOP_NOTIFICATIONS_ERROR: "Notifikacije preglednika se ne mogu omogućiti jer ih vaš preglednik aktivno blokira. Pokušajte pregledati postavke ili koristiti drugi preglednik.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `${e} demo notifikacija`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "Ako karticu preglednika ostavite otvorenu, pojavit će se ovaj pop-up kada netko razgovara s vama.", SEND_BUTTON_TEXT: "Pošalji", ENTRYBOX_TEXT_LIMIT: "Dozvoljeno je samo 10.000 znakova.", ENTRYBOX_PLACEHOLDER: "Reci nešto...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "Ovaj razgovor više nije aktivan.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "Možeš čitati, ali ne i slati poruke.", MESSAGELIST_LOADING_OLDER: "Učitavam starije poruke...", MESSAGELIST_SHOW_OLDER: "Prikaži starije poruke", MESSAGELIST_NEW_MARKER: "Novo", MESSAGE_SENT_VIA_EMAIL: "Ova poruka je poslana e-poštom", YOU_MARKER: "ti", UPLOAD_IN_PROGRESS: "Učitavam...", UPLOAD_SEND_FILE: "Pošalji datoteku", UPLOAD_SHARE_LOCATION: "Podijeli lokaciju", UPLOAD_ERROR: "Nažalost, nešto je pošlo krivo. Datoteka možda nije podržana ili je prevelika.", SHARE_LOCATION_ERROR: "Nije moguće podijeliti lokaciju: ", LOADING: "Učitavam...", HUB_EMPTY: "Ovdje će se prikazati vaša povijest razgovora", HUB_SHOW_EARLIER: "Prikaži ranije razgovore", INBOX_NO_CHATS_TITLE: "Nema razgovora!", INBOX_NO_CHATS_BODY: "Nakon što vodite jedan ili više razgovora, oni će se pojaviti ovdje.", ENABLE_TRANSLATION: "Prevedi ovaj razgovor na bosanski jezik", DISABLE_TRANSLATION: "Prikaži original", SEARCH_PLACEHOLDER_TEXT: "Pretraži...", SEARCH_SEARCHING: "Pretraživanje...", SEARCH_NO_RESULTS: "Nema rezultata", SEARCH_NO_MORE_RESULTS: "Nema više rezultata", CHAT_NOT_FOUND: "Ćaskanje nije pronađeno", DELETE_MESSAGE: "Obriši poruku", DELETION_EXPLANATION: "Ako izbrišete ovu poruku, ona će nestati za sve.", EDIT_MESSAGE: "Uredi poruku", SAVE: "Sačuvati", EDITED_INDICATOR: "uređeno", REPLY_TO_MESSAGE: "Odgovorite", ADD_REACTION: "Dodajte reakciju", AUTH_EXPIRED_OVERLAY_TITLE: "Vaša chat sesija je istekla", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "Osvježite stranicu da nastavite", VOICE_MESSAGE: "Glasovna poruka", CONTACT_INFORMATION_HIDDEN: "Skrivene informacije", LEAVE_CONVERSATION: "Napusti razgovor", MARK_CONVERSATION_AS_UNREAD: "Označi kao nepročitano", REPLY_TO_ARIA_LABEL: T.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: T.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: T.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: T.translation.STATUS_INDICATOR_OFFLINE } }, Ca = { code: "ca-ES", name: "Catalan (ES)", translation: { YESTERDAY: "Ahir", TODAY: "Avui", DAYS: "d", HOURS: "h", MINUTES: "m", JUST_NOW: "ara mateix", LOCATION: "Ubicació", CANCEL: "Cancel·lar", INBOX: "Safata d'entrada", DESKTOP_NOTIFICATIONS: "Notificacions d'escriptori", DESKTOP_NOTIFICATIONS_ERROR: "No es poden habilitar les notificacions del navegador perquè el teu navegador les bloqueja activament. Prova de buscar a la configuració o utilitza un altre navegador.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `Notificació de demostració de ${e}`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "Si mantens la pestanya del navegador oberta, veuràs aquesta notificació quan algú et parli.", SEND_BUTTON_TEXT: "Enviar", ENTRYBOX_TEXT_LIMIT: "Només es permeten 10.000 caràcters.", ENTRYBOX_PLACEHOLDER: "Digues alguna cosa...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "Aquesta conversa ja no està activa.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "Pots llegir, però no enviar missatges.", MESSAGELIST_LOADING_OLDER: "Carregant missatges antics...", MESSAGELIST_SHOW_OLDER: "Mostrar missatges més antics", MESSAGELIST_NEW_MARKER: "Nou", MESSAGE_SENT_VIA_EMAIL: "Aquest missatge s'ha enviat per correu electrònic", YOU_MARKER: "tu", UPLOAD_IN_PROGRESS: "S'està pujant...", UPLOAD_SEND_FILE: "Enviar arxiu", UPLOAD_SHARE_LOCATION: "Compartir ubicació", UPLOAD_ERROR: "Desafortunadament, alguna cosa ha anat malament en pujar. L'arxiu pot ser no compatible o massa gran.", SHARE_LOCATION_ERROR: "No es pot compartir la ubicació: ", LOADING: "Carregant...", HUB_EMPTY: "El teu historial de xat apareixerà aquí", HUB_SHOW_EARLIER: "Mostra xats anteriors", INBOX_NO_CHATS_TITLE: "Encara no hi ha xats!", INBOX_NO_CHATS_BODY: "Un cop hagis tingut una o més converses, apareixeran aquí.", ENABLE_TRANSLATION: "Traduir aquesta conversa al català", DISABLE_TRANSLATION: "Mostrar original", SEARCH_PLACEHOLDER_TEXT: "Cerca...", SEARCH_SEARCHING: "Buscant...", SEARCH_NO_RESULTS: "No s'han trobat resultats", SEARCH_NO_MORE_RESULTS: "No hi ha més resultats", CHAT_NOT_FOUND: "Xat no trobat", DELETE_MESSAGE: "Esborrar missatge", DELETION_EXPLANATION: "Si esborres aquest missatge, desapareixerà per a tothom.", EDIT_MESSAGE: "Editar missatge", SAVE: "Desar", EDITED_INDICATOR: "editat", REPLY_TO_MESSAGE: "Respondre", REPLY_TO_ARIA_LABEL: (e, t) => `Responent a ${e}: ${t}`, REPLY_MODE_LEAVE_ARIA_LABEL: "Sortir del mode de resposta", ADD_REACTION: "Afegir reacció", VOICE_MESSAGE: "Missatge de veu", LEAVE_CONVERSATION: "Abandonar la conversa", MARK_CONVERSATION_AS_UNREAD: "marcar com no llegit", STATUS_INDICATOR_ONLINE: "Actiu", STATUS_INDICATOR_OFFLINE: "Absent", CONTACT_INFORMATION_HIDDEN: "informació oculta", AUTH_EXPIRED_OVERLAY_TITLE: "La teva sessió de xat ha caducat", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "Actualitza la pàgina per continuar" } }, ga = { code: "cs-CZ", name: "Czech", translation: { YESTERDAY: "Včera", TODAY: "Dnes", DAYS: "d", HOURS: "h", MINUTES: "m", JUST_NOW: "právě teď", LOCATION: "Lokace", CANCEL: "Zrušit", INBOX: "Doručené", DESKTOP_NOTIFICATIONS: "Oznámení v prohlížeči", DESKTOP_NOTIFICATIONS_ERROR: "Nelze povolit notifikace prohlížeče, protože váš prohlížeč je aktivně blokuje. Zkuste se podívat na nastavení nebo zkuste použít jiný prohlížeč.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `${e} demo notifikace`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "Pokud necháte kartu prohlížeče otevřenou, uvidíte tento popup jakmile s vámi bude někdo mluvit.", SEND_BUTTON_TEXT: "Odeslat", ENTRYBOX_TEXT_LIMIT: "Je povoleno Maximálně 10.000 znaků.", ENTRYBOX_PLACEHOLDER: "Napište něco...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "Tato konverzace již není aktivní.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "Můžete číst, ale nemůžete posílat zprávy.", MESSAGELIST_LOADING_OLDER: "Nahrávám starší zprávy...", MESSAGELIST_SHOW_OLDER: "Zobrazit starší zprávy", MESSAGELIST_NEW_MARKER: "Nové", MESSAGE_SENT_VIA_EMAIL: "Tato zpráva byla odeslána přes mail.", YOU_MARKER: "vy", UPLOAD_IN_PROGRESS: "Nahrávám...", UPLOAD_SEND_FILE: "Poslat soubor", UPLOAD_SHARE_LOCATION: "Sdílet pozici", UPLOAD_ERROR: "Nepodařilo se nahrát soubor. Ten je buď nepodporován a/nebo příliš velký.", SHARE_LOCATION_ERROR: "Není možné sdílet pozici: ", LOADING: "Nahrávám...", HUB_EMPTY: "Vaše historie se zde zobrazí", HUB_SHOW_EARLIER: "Zobrazit dřívější konverzace", INBOX_NO_CHATS_TITLE: "Zatím zde nejsou žádné konverzace!", INBOX_NO_CHATS_BODY: "Jakmile budete mít jednu nebo více konverzací, objeví se zde.", ENABLE_TRANSLATION: "Přeložit tuto konverzaci do češtiny", DISABLE_TRANSLATION: "Zobrazit původní", SEARCH_PLACEHOLDER_TEXT: "Hledat...", SEARCH_SEARCHING: "Hledání...", SEARCH_NO_RESULTS: "Nenašly se žádné výsledky", SEARCH_NO_MORE_RESULTS: "Žádné další výsledky", CHAT_NOT_FOUND: "Chat nenalezen", DELETE_MESSAGE: "Smazat zprávu", DELETION_EXPLANATION: "Pokud tuto zprávu smažete, zmizí pro všechny.", EDIT_MESSAGE: "Upravit zprávu", SAVE: "Uložit", EDITED_INDICATOR: "upraveno", REPLY_TO_MESSAGE: "Odpovědět", ADD_REACTION: "Reagovat", AUTH_EXPIRED_OVERLAY_TITLE: "Váš chat byl kvůli nečinnosti odpojen", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "Pro pokračování obnovte stránku", VOICE_MESSAGE: "Hlasová zpráva", CONTACT_INFORMATION_HIDDEN: "Skrytá informace", LEAVE_CONVERSATION: "Opustit konverzaci", MARK_CONVERSATION_AS_UNREAD: "Označit jako nepřečtené", REPLY_TO_ARIA_LABEL: T.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: T.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: T.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: T.translation.STATUS_INDICATOR_OFFLINE } }, va = { code: "da-DK", name: "Danish", translation: { YESTERDAY: "I går", TODAY: "I dag", DAYS: "d", HOURS: "t", MINUTES: "m", JUST_NOW: "lige nu", LOCATION: "Placering", CANCEL: "Annuller", INBOX: "Indbakke", DESKTOP_NOTIFICATIONS: "Browsermeddelelser", DESKTOP_NOTIFICATIONS_ERROR: "Kan ikke aktivere Browsermeddelelser, fordi din browser aktivt blokerer dem. Prøv at kigge i indstillingerne eller benyt en anden browser.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `${e} demomeddelelse`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "Hvis du holder dit browser-faneblad åben, vil du se det her komme op, når nogen taler til dig.", SEND_BUTTON_TEXT: "Send", ENTRYBOX_TEXT_LIMIT: "Kun 10.000 tegn er tilladt.", ENTRYBOX_PLACEHOLDER: "Sig noget...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "Denne samtale er ikke længere aktiv.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "Du kan læse, men ikke sende beskeder.", MESSAGELIST_LOADING_OLDER: "Indlæser ældre beskeder...", MESSAGELIST_SHOW_OLDER: "Vis ældre beskeder", MESSAGELIST_NEW_MARKER: "Ny", MESSAGE_SENT_VIA_EMAIL: "Denne besked blev sendt via e-mail", YOU_MARKER: "dig", UPLOAD_IN_PROGRESS: "Overfører...", UPLOAD_SEND_FILE: "Send fil", UPLOAD_SHARE_LOCATION: "Del placering", UPLOAD_ERROR: "Der er sket noget forkert ved upload. Filen kan ikke understøttes eller filen er for stor.", SHARE_LOCATION_ERROR: "Kan ikke dele placering: ", LOADING: "Indlæser...", HUB_EMPTY: "Dine samtaler vises her", HUB_SHOW_EARLIER: "Vis tidligere chats", INBOX_NO_CHATS_TITLE: "Ingen chats endnu!", INBOX_NO_CHATS_BODY: "Når du har haft en eller flere samtaler, vises de her.", ENABLE_TRANSLATION: "Oversæt denne konversation til dansk", DISABLE_TRANSLATION: "Vis den oprindelige", SEARCH_PLACEHOLDER_TEXT: "Søg...", SEARCH_SEARCHING: "Søger...", SEARCH_NO_RESULTS: "Ingen resultater fundet", SEARCH_NO_MORE_RESULTS: "Ikke flere resultater", CHAT_NOT_FOUND: "Chat ikke fundet", DELETE_MESSAGE: "Slet besked", DELETION_EXPLANATION: "Hvis du sletter denne besked, vil ingen kunne se den.", EDIT_MESSAGE: "Rediger besked", SAVE: "Gem", EDITED_INDICATOR: "redigeret", REPLY_TO_MESSAGE: "Svar", ADD_REACTION: "Tilføj reaktion", AUTH_EXPIRED_OVERLAY_TITLE: "Din chatsession er udløbet", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "Opdater siden for at fortsætte", VOICE_MESSAGE: "Talebesked", CONTACT_INFORMATION_HIDDEN: "Skjulte oplysninger", LEAVE_CONVERSATION: "Forlad samtale", MARK_CONVERSATION_AS_UNREAD: "Marker som ulæst", REPLY_TO_ARIA_LABEL: T.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: T.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: T.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: T.translation.STATUS_INDICATOR_OFFLINE } }, fa = { code: "de-DE", name: "German", translation: { YESTERDAY: "Gestern", TODAY: "Heute", DAYS: "d", HOURS: "h", MINUTES: "m", JUST_NOW: "gerade jetzt", LOCATION: "Standort", CANCEL: "Abbrechen", INBOX: "Inbox", DESKTOP_NOTIFICATIONS: "Browser-Benachrichtigungen", DESKTOP_NOTIFICATIONS_ERROR: "Browser-Benachrichtigungen können nicht aktiviert werden, da Ihr Browser sie aktiv blockiert. Versuchen Sie, in den Einstellungen nachzuschlagen oder einen anderen Browser zu verwenden.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `${e} Demo-Benachrichtigung`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "Wenn Sie Ihre Browser-Registerkarte geöffnet lassen, wird dies angezeigt, wenn jemand mit Ihnen spricht.", SEND_BUTTON_TEXT: "Senden", ENTRYBOX_TEXT_LIMIT: "Nur 10.000 Zeichen sind erlaubt.", ENTRYBOX_PLACEHOLDER: "Sag etwas...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "Diese Konversation ist nicht mehr aktiv.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "Sie können Nachrichten lesen, aber nicht senden.", MESSAGELIST_LOADING_OLDER: "Ältere Nachrichten werden geladen...", MESSAGELIST_SHOW_OLDER: "Zeige ältere Nachrichten", MESSAGELIST_NEW_MARKER: "Neu", MESSAGE_SENT_VIA_EMAIL: "Diese Nachricht wurde per E-Mail gesendet", YOU_MARKER: "du", UPLOAD_IN_PROGRESS: "Hochladen...", UPLOAD_SEND_FILE: "Datei senden", UPLOAD_SHARE_LOCATION: "Standort teilen", UPLOAD_ERROR: "Beim Hochladen ist ein Fehler aufgetreten. Die Datei ist möglicherweise nicht unterstützt oder zu groß.", SHARE_LOCATION_ERROR: "Standort kann nicht freigegeben werden: ", LOADING: "Laden...", HUB_EMPTY: "Ihr Chat-Verlauf wird hier angezeigt", HUB_SHOW_EARLIER: "Zeige frühere Chats", INBOX_NO_CHATS_TITLE: "Noch keine Chats!", INBOX_NO_CHATS_BODY: "Sobald Sie eine oder mehrere Unterhaltungen geführt haben, werden sie hier angezeigt.", ENABLE_TRANSLATION: "Dieses Gespräch auf Deutsch übersetzen", DISABLE_TRANSLATION: "Originaltext anzeigen", SEARCH_PLACEHOLDER_TEXT: "Suche...", SEARCH_SEARCHING: "Suchen...", SEARCH_NO_RESULTS: "Keine Suchergebnisse gefunden", SEARCH_NO_MORE_RESULTS: "Keine weiteren Suchergebnisse", CHAT_NOT_FOUND: "Chat nicht gefunden", DELETE_MESSAGE: "Nachricht löschen", DELETION_EXPLANATION: "Wenn Sie diese Nachricht löschen, wird sie für alle verschwinden.", EDIT_MESSAGE: "Nachricht bearbeiten", SAVE: "Speichern", EDITED_INDICATOR: "bearbeitet", REPLY_TO_MESSAGE: "Antworten", ADD_REACTION: "Reaktion hinzufügen", AUTH_EXPIRED_OVERLAY_TITLE: "Ihre Chatsitzung ist abgelaufen", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "Laden Sie zum Fortfahren die Seite neu", VOICE_MESSAGE: "Sprachnachricht", CONTACT_INFORMATION_HIDDEN: "Geschützte Angaben", LEAVE_CONVERSATION: "Unterhaltung verlassen", MARK_CONVERSATION_AS_UNREAD: "als ungelesen markieren", REPLY_TO_ARIA_LABEL: T.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: T.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: T.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: T.translation.STATUS_INDICATOR_OFFLINE } }, ka = { code: "el-GR", name: "Greek (Greece)", translation: { YESTERDAY: "Χθές", TODAY: "Σήμερα", DAYS: "Ημέρες", HOURS: "'Ωρες", MINUTES: "Λεπτά", JUST_NOW: "Μόλις τώρα", LOCATION: "Τοποθεσία", CANCEL: "Ακύρωση", INBOX: "Εισερχόμενα", DESKTOP_NOTIFICATIONS: "Ειδοποιήσεις περιηγητή", DESKTOP_NOTIFICATIONS_ERROR: "Δεν είναι δυνατή η ενεργοποίηση των ειδοποιήσεων του προγράμματος περιήγησης, επειδή το πρόγραμμα περιήγησης τις αποκλείει ενεργά. Δοκιμάστε να τσεκάρετε τις ρυθμίσεις ή να χρησιμοποιήσετε διαφορετικό πρόγραμμα περιήγησης.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `${e} Δοκιμαστική επίδειξη`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "Αν διατηρήσετε ανοιχτή τη σελίδα του προγράμματος περιήγησης, θα δείτε αυτό το pop up (παράθυρο) όταν κάποιος σας μιλάει.", SEND_BUTTON_TEXT: "Αποστολή", ENTRYBOX_TEXT_LIMIT: "Επιτρέπονται μόνο 10.000 χαρακτήρες.", ENTRYBOX_PLACEHOLDER: "Πείτε κάτι...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "Αυτή η συζήτηση δεν είναι πλέον ενεργή.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "Μπορείτε να διαβάσετε αλλά δεν μπορείτε να στείλετε μηνύματα.", MESSAGELIST_LOADING_OLDER: "Φόρτωση παλαιοτέρων μηνυμάτων...", MESSAGELIST_SHOW_OLDER: "Εμφάνιση παλαιότερων μηνυμάτων", MESSAGELIST_NEW_MARKER: "Νέο", MESSAGE_SENT_VIA_EMAIL: "Αυτό το μήνυμα εστάλη μέσω ηλεκτρονικού ταχυδρομείου", YOU_MARKER: "Εσείς", UPLOAD_IN_PROGRESS: "Ανέβασμα...", UPLOAD_SEND_FILE: "Αποστολή αρχείου", UPLOAD_SHARE_LOCATION: "Κοινή χρήση τοποθεσίας", UPLOAD_ERROR: "Κάτι πήγε στραβά κατά τη φόρτωση. Το αρχείο ενδέχεται να μην υποστηρίζεται ή να είναι υπερβολικά μεγάλο.", SHARE_LOCATION_ERROR: "Δεν είναι δυνατή η χρήση κοινής τοποθεσίας: ", LOADING: "Φόρτωση...", HUB_EMPTY: "Το ιστορικό των συνομιλιών σας θα εμφανιστεί εδώ", HUB_SHOW_EARLIER: "Εμφάνιση προηγούμενων συνομιλιών", INBOX_NO_CHATS_TITLE: "Δεν υπάρχουν ακόμα συζητήσεις!", INBOX_NO_CHATS_BODY: "Μόλις έχετε μία ή περισσότερες συνομιλίες, θα εμφανιστούν εδώ.", ENABLE_TRANSLATION: "Μετάφραση αυτής της συνομιλίας στα ελληνικά", DISABLE_TRANSLATION: "Προβολή πρωτοτύπου", SEARCH_PLACEHOLDER_TEXT: "Αναζήτηση...", SEARCH_SEARCHING: "Αναζήτηση...", SEARCH_NO_RESULTS: "Δεν βρέθηκαν αποτελέσματα", SEARCH_NO_MORE_RESULTS: "Δεν υπάρχουν περισσότερα αποτελέσματα", CHAT_NOT_FOUND: "Η συνομιλία δεν βρέθηκε", DELETE_MESSAGE: "Διαγραφή μηνύματος", DELETION_EXPLANATION: "Εάν διαγράψετε αυτό το μήνυμα, θα εξαφανιστεί για όλους.", EDIT_MESSAGE: "Επεξεργασία μηνύματος", SAVE: "Αποθήκευση", EDITED_INDICATOR: "επεξεργασμένο", REPLY_TO_MESSAGE: "Απάντηση", ADD_REACTION: "Προσθήκη αντίδρασης", AUTH_EXPIRED_OVERLAY_TITLE: "Η συνεδρία της συνομιλίας σας έχει λήξει", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "Ανανεώστε τη σελίδα για να συνεχίσετε", VOICE_MESSAGE: "Ηχητικό μήνυμα", CONTACT_INFORMATION_HIDDEN: "Κρυμμένες πληροφορίες", LEAVE_CONVERSATION: "Αποσυρθείτε από τη συζήτηση", MARK_CONVERSATION_AS_UNREAD: "Επισήμανση ως μη αναγνωσμένα", REPLY_TO_ARIA_LABEL: T.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: T.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: T.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: T.translation.STATUS_INDICATOR_OFFLINE } }, Ma = { code: "es-ES", name: "Spanish", translation: { YESTERDAY: "Ayer", TODAY: "Hoy", DAYS: "d", HOURS: "h", MINUTES: "m", JUST_NOW: "justo ahora", LOCATION: "Ubicación", CANCEL: "Cancelar", INBOX: "Inbox", DESKTOP_NOTIFICATIONS: "Notificaciones del navigator", DESKTOP_NOTIFICATIONS_ERROR: "No se logró habilitar las notificaciones del navigador, comprueba que tu navegador no las esté bloqueando o intenta con otro navegador.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `${e} notificación de prueba`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "Si dejas esta pestaña abierta, verás este pop up cuando alguien te hable.", SEND_BUTTON_TEXT: "Enviar", ENTRYBOX_TEXT_LIMIT: "Sólo 10.000 caracteres permitidos.", ENTRYBOX_PLACEHOLDER: "Escribe algo...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "Esta conversación ya no está activa.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "Puedes leer pero no enviar mensajes.", MESSAGELIST_LOADING_OLDER: "Cargando mensajes pasados...", MESSAGELIST_SHOW_OLDER: "Ver mensajes pasados", MESSAGELIST_NEW_MARKER: "Nuevo", MESSAGE_SENT_VIA_EMAIL: "Este mensaje ha sido enviado vía email", YOU_MARKER: "tú", UPLOAD_IN_PROGRESS: "Subir...", UPLOAD_SEND_FILE: "Enviar archivo", UPLOAD_SHARE_LOCATION: "Compartir ubicación", UPLOAD_ERROR: "Ocurrió un problema subiendo el archivo. Puede que el archivo esté en un formato no soportado o que sea demasiado grande.", SHARE_LOCATION_ERROR: "No se logró compartir la ubicación: ", LOADING: "Cargando...", HUB_EMPTY: "Tu historial de conversaciones se mostrará aquí", HUB_SHOW_EARLIER: "Ver conversaciones pasadas", INBOX_NO_CHATS_TITLE: "¡Aún sin conversaciones!", INBOX_NO_CHATS_BODY: "Una vez que tengas una o más conversaciones, se mostrarán aquí.", ENABLE_TRANSLATION: "Traducir esta conversación al español", DISABLE_TRANSLATION: "Mostrar la conversación original", SEARCH_PLACEHOLDER_TEXT: "Buscar...", SEARCH_SEARCHING: "Buscando...", SEARCH_NO_RESULTS: "No se encontraron resultados", SEARCH_NO_MORE_RESULTS: "No hay más resultados", CHAT_NOT_FOUND: "Chat no encontrado", DELETE_MESSAGE: "Eliminar mensaje", DELETION_EXPLANATION: "Este mensaje desaparecerá para todos si lo borras.", EDIT_MESSAGE: "Editar mensaje", SAVE: "Guardar", EDITED_INDICATOR: "editado", REPLY_TO_MESSAGE: "Responder", ADD_REACTION: "Añadir reacción", AUTH_EXPIRED_OVERLAY_TITLE: "Su sesión de chat ha expirado", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "Actualice la página para continuar", VOICE_MESSAGE: "Mensaje de voz", CONTACT_INFORMATION_HIDDEN: "Información oculta", LEAVE_CONVERSATION: "Abandonar conversación", MARK_CONVERSATION_AS_UNREAD: "Marcar como no leída", REPLY_TO_ARIA_LABEL: T.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: T.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: T.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: T.translation.STATUS_INDICATOR_OFFLINE } }, Pa = { code: "et-EE", name: "Estonian", translation: { YESTERDAY: "Eile", TODAY: "Täna", DAYS: "p", HOURS: "t", MINUTES: "m", JUST_NOW: "Just nüüd", LOCATION: "Asukoht", CANCEL: "Katkesta", INBOX: "Postkast", DESKTOP_NOTIFICATIONS: "Veebibrauseri teated", DESKTOP_NOTIFICATIONS_ERROR: "Töölaua teatisi ei saa lubada, kuna Teie brauser blokeerib need aktiivselt. Proovige muuta seadeid või kasutada mõnda muud brauserit.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `${e} demo teavitus`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "Kui hoiate oma brauseri vahekaardi lahti ja näete seda hüpikakent, siis keegi soovib Teiega rääkida.", SEND_BUTTON_TEXT: "Saada", ENTRYBOX_TEXT_LIMIT: "Ainult kuni 10.000 tähemärki on lubatud.", ENTRYBOX_PLACEHOLDER: "Kirjuta midagi...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "See vestlus ei ole enam aktiivne.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "Sa saad lugeda teateid, aga mitte kirjutada.", MESSAGELIST_LOADING_OLDER: "Laen vanemaid teateid...", MESSAGELIST_SHOW_OLDER: "Näita vanemaid teateid", MESSAGELIST_NEW_MARKER: "Uus", MESSAGE_SENT_VIA_EMAIL: "See teade on saadetud e-postiga", YOU_MARKER: "Sina", UPLOAD_IN_PROGRESS: "Laen...", UPLOAD_SEND_FILE: "Saada fail", UPLOAD_SHARE_LOCATION: "Jaga faili asukohta", UPLOAD_ERROR: "Nüüd läks midagi nihu, seoses faili ülesse laadimisega. Tundmatu fail või liiga suur.", SHARE_LOCATION_ERROR: "Ei suuda jagada faili asukohta: ", LOADING: "Laen...", HUB_EMPTY: "Siin on Sinu vestluste ajalugu", HUB_SHOW_EARLIER: "Näita vanemaid vestlusi", INBOX_NO_CHATS_TITLE: "Pole ühtegi vestlust!", INBOX_NO_CHATS_BODY: "Kui Sul tekib üks või rohkem vestlust, siis on need kuvatakse siin.", ENABLE_TRANSLATION: "Tõlgi see vestlus eesti keelde", DISABLE_TRANSLATION: "Näita algteksti", SEARCH_PLACEHOLDER_TEXT: "Otsi...", SEARCH_SEARCHING: "Otsin...", SEARCH_NO_RESULTS: "Otsingu tulemused puuduvad", SEARCH_NO_MORE_RESULTS: "Rohkem tulemusi ei ole ", CHAT_NOT_FOUND: "Vestlust ei leitud", DELETE_MESSAGE: "Kustuta sõnum", DELETION_EXPLANATION: "Kui kustutate selle sõnumi, kaob see kõigi jaoks.", EDIT_MESSAGE: "Redigeeri sõnumit", SAVE: "Salvesta", EDITED_INDICATOR: "muudetud", REPLY_TO_MESSAGE: "Vasta", ADD_REACTION: "Lisa reaktsioon", AUTH_EXPIRED_OVERLAY_TITLE: "Teie vestlussessioon on lõppenud", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "Jätkamiseks värskendage lehte", VOICE_MESSAGE: "Häälsõnum", CONTACT_INFORMATION_HIDDEN: "Varjatud informatsioon", LEAVE_CONVERSATION: "Lahku vestlusest", MARK_CONVERSATION_AS_UNREAD: "Märgi mitteloetuks", REPLY_TO_ARIA_LABEL: T.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: T.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: T.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: T.translation.STATUS_INDICATOR_OFFLINE } }, Ha = { code: "fa", name: "Persian (Farsi)", translation: { YESTERDAY: "دیروز", TODAY: "امروز", DAYS: "روز", HOURS: "ساعت", MINUTES: "دقیقه", JUST_NOW: "هم اکنون", LOCATION: "مکان", CANCEL: "لغو", INBOX: "صندوق", DESKTOP_NOTIFICATIONS: "اطلاعیه‌های مرورگر", DESKTOP_NOTIFICATIONS_ERROR: "خطا در فعال سازی اعلان های مرورگر، مرورگر شما آنها را مسدود می کند سعی کنید تنظیمات مرورگر را تغییر دهید یا از یک مرورگر دیگر استفاده کنید.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `نوتیفیکیشن دمو ${e}`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "اگر صفحه ی مرورگر را باز نگهدارید این را موقعه ای که کسی با شما صحبت کند خواهید دید", SEND_BUTTON_TEXT: "بفرست", ENTRYBOX_TEXT_LIMIT: "فقط ۱۰،۰۰۰ حروف مجاز می باشد.", ENTRYBOX_PLACEHOLDER: "...چیزی بنویسید", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: ".این مکالمه دیگر فعال نمی باشد", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "شما می توانید بخوانید اما نمی توانید پیام بفرستید", MESSAGELIST_LOADING_OLDER: "...در حال بارگذاری پیام های قدیمی تر", MESSAGELIST_SHOW_OLDER: "نشان دادن پیام های قدیمی", MESSAGELIST_NEW_MARKER: "جدید", MESSAGE_SENT_VIA_EMAIL: "پیام توسط ایمل ارسال شد", YOU_MARKER: "شما", UPLOAD_IN_PROGRESS: "...در حال بارگذاری", UPLOAD_SEND_FILE: "فرستادن پوشه", UPLOAD_SHARE_LOCATION: "اشتراک گذاری مکان", UPLOAD_ERROR: "متاسفانه بارگذاری با مشکل روبه رو شد. ممکن است فایل حجیم باشد یا ساپورت نشده باشد.", SHARE_LOCATION_ERROR: "خطا در اشتراک گذاری مکان: ", LOADING: "...بارگذاری", HUB_EMPTY: "تاریخچه گفتگو اینجا نمایان می شود", HUB_SHOW_EARLIER: "دیدن گفتگو های قبلی", INBOX_NO_CHATS_TITLE: "هنوز گفتگویی وجود ندارد", INBOX_NO_CHATS_BODY: "بعد از داشتن یک مکالمه یا بیشتر، آنها اینجا نمایان می شوند.", ENABLE_TRANSLATION: "این مکالمه را به فارسی ترجمه کن", DISABLE_TRANSLATION: "زبان اصلی را نشان بده", SEARCH_PLACEHOLDER_TEXT: "...جستجو", SEARCH_SEARCHING: "...در حال جستجو", SEARCH_NO_RESULTS: "نتیجه ای یافت نشد", SEARCH_NO_MORE_RESULTS: "نتیجه بیشتری وجود ندارد", CHAT_NOT_FOUND: "مکالمه پیدا نشد", DELETE_MESSAGE: "حذف پیام ", DELETION_EXPLANATION: "اگر این پیام را حذف کنید، برای همه ناپدید می شود.", EDIT_MESSAGE: "ویرایش پیام", SAVE: "ذخیره", EDITED_INDICATOR: "ویرایش‌شده", REPLY_TO_MESSAGE: "پاسخ دادن", ADD_REACTION: "واکنش را اضافه کنید", AUTH_EXPIRED_OVERLAY_TITLE: "جلسه چت شما منقضی شده است", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "برای ادامه صفحه را بازخوانی کنید", VOICE_MESSAGE: "پیام صوتی", CONTACT_INFORMATION_HIDDEN: "اطلاعات پنهان", LEAVE_CONVERSATION: "خروج از گفتگو", MARK_CONVERSATION_AS_UNREAD: "به عنوان خوانده نشده علامت گذاری کن", REPLY_TO_ARIA_LABEL: T.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: T.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: T.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: T.translation.STATUS_INDICATOR_OFFLINE } }, Ua = { code: "fi-FI", name: "Finnish", translation: { YESTERDAY: "Eilen", TODAY: "Tänään", DAYS: "p", HOURS: "t", MINUTES: "m", JUST_NOW: "juuri nyt", LOCATION: "Sijainti", CANCEL: "Peruuta", INBOX: "Saapuneet", DESKTOP_NOTIFICATIONS: "Selaimen ilmoitukset", DESKTOP_NOTIFICATIONS_ERROR: "Työpöydän ilmoituksia ei voitu kytkeä päälle, koska selaimesi estää ne aktiivisesti. Koeta tutkia sen asetuksia tai vaihda selainta.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `${e} demo ilmoitus`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "Jos pidät tämän sivun auki, näet vastaavan ilmoituksen kun joku puhuu sinulle.", SEND_BUTTON_TEXT: "Lähetä", ENTRYBOX_TEXT_LIMIT: "Maksimissaan 10000 merkkiä.", ENTRYBOX_PLACEHOLDER: "Sano jotain...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "Tämä keskustelu ei ole enää aktiivinen.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "Voit lukea, mutta et lähettää viestejä.", MESSAGELIST_LOADING_OLDER: "Ladataan vanhoja viestejä..", MESSAGELIST_SHOW_OLDER: "Näytä vanhat viestit", MESSAGELIST_NEW_MARKER: "Uusi", MESSAGE_SENT_VIA_EMAIL: "Tämä viesti on lähetetty sähköpostin välityksellä", YOU_MARKER: "sinä", UPLOAD_IN_PROGRESS: "Ladataan...", UPLOAD_SEND_FILE: "Lähetä tiedosto", UPLOAD_SHARE_LOCATION: "Jaa sijainti", UPLOAD_ERROR: "Valitettavasti jokin meni vikaan. Tiedostotyyppiä ei ehkä tueta tai se saattaa olla liian suuri.", SHARE_LOCATION_ERROR: "Sijaintia ei pystytty jakamaan: ", LOADING: "Ladataan...", HUB_EMPTY: "Keskusteluhistoriasi näkyy tässä", HUB_SHOW_EARLIER: "Näytä aiemmat keskustelut", INBOX_NO_CHATS_TITLE: "Ei keskusteluja, vielä!", INBOX_NO_CHATS_BODY: "Kun olet käynyt yhden tai useamman keskustelun, ne näkyvät täällä.", ENABLE_TRANSLATION: "Käännä keskustelu kielelle suomi", DISABLE_TRANSLATION: "Näytä alkuperäinen", SEARCH_PLACEHOLDER_TEXT: "Etsi...", SEARCH_SEARCHING: "Etsiminen...", SEARCH_NO_RESULTS: "Tuloksia ei löytynyt", SEARCH_NO_MORE_RESULTS: "Ei enempää tuloksia", CHAT_NOT_FOUND: "Keskustelua ei löytynyt", DELETE_MESSAGE: "Poista viesti", DELETION_EXPLANATION: "Jos poistat tämän viestin, se häviää kaikilta.", EDIT_MESSAGE: "Muokkaa viestiä", SAVE: "Tallenna", EDITED_INDICATOR: "muokattu", REPLY_TO_MESSAGE: "Vastaa", ADD_REACTION: "Lisää reaktio", AUTH_EXPIRED_OVERLAY_TITLE: "Istuntosi on vanhentunut", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "Päivitä sivu jatkaaksesi", VOICE_MESSAGE: "Ääniviesti", CONTACT_INFORMATION_HIDDEN: "Piilotetut tiedot", LEAVE_CONVERSATION: "Poistu keskustelusta", MARK_CONVERSATION_AS_UNREAD: "Merkitse lukemattomaksi", REPLY_TO_ARIA_LABEL: T.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: T.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: T.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: T.translation.STATUS_INDICATOR_OFFLINE } }, ba = { code: "fr-FR", name: "French", translation: { YESTERDAY: "Hier", TODAY: "Aujourd'hui", DAYS: "j", HOURS: "h", MINUTES: "m", JUST_NOW: "maintenant", LOCATION: "Emplacement", CANCEL: "Annuler", INBOX: "Boîte de réception", DESKTOP_NOTIFICATIONS: "Notifications du navigateur", DESKTOP_NOTIFICATIONS_ERROR: "Impossible d'activer les notifications du navigateur car votre navigateur les bloque. Essayez de changer ses paramètres ou de changer de navigateur.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `Notification de démonstration ${e}`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "Si vous maintenez l'onglet ouvert dans votre navigateur vous verrez apparaître une alerte lorsque quelqu'un vous parlera.", SEND_BUTTON_TEXT: "Envoyer", ENTRYBOX_TEXT_LIMIT: "Seuls 10.000 caractères sont autorisés.", ENTRYBOX_PLACEHOLDER: "Ecrivez quelque chose...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "Cette conversation n'est plus active.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "Vous pouvez lire, mais pas envoyer de messages.", MESSAGELIST_LOADING_OLDER: "Chargement des anciens messages ...", MESSAGELIST_SHOW_OLDER: "Afficher les anciens messages", MESSAGELIST_NEW_MARKER: "Nouveau", MESSAGE_SENT_VIA_EMAIL: "Ce message a été envoyé par e-mail", YOU_MARKER: "vous", UPLOAD_IN_PROGRESS: "Envoi en cours...", UPLOAD_SEND_FILE: "Envoyer un fichier", UPLOAD_SHARE_LOCATION: "Partager mon emplacement", UPLOAD_ERROR: "Un problème est survenu lors de l'envoi: le fichier est peut-être non pris en charge ou trop volumineux.", SHARE_LOCATION_ERROR: "Impossible de partager votre emplacement: ", LOADING: "Chargement en cours...", HUB_EMPTY: "Votre historique de discussion apparaîtra ici", HUB_SHOW_EARLIER: "Afficher les conversations précédentes", INBOX_NO_CHATS_TITLE: "Aucune conversation pour l'instant!", INBOX_NO_CHATS_BODY: "Une fois que vous aurez eu une ou plusieurs conversations, elles apparaîtront ici.", ENABLE_TRANSLATION: "Traduire cette conversation en français", DISABLE_TRANSLATION: "Remontrer la conversation originale", SEARCH_PLACEHOLDER_TEXT: "Rechercher...", SEARCH_SEARCHING: "Recherche...", SEARCH_NO_RESULTS: "Aucun résultat trouvé", SEARCH_NO_MORE_RESULTS: "Il n’y a plus de résultats", CHAT_NOT_FOUND: "Conversation introuvable", DELETE_MESSAGE: "Supprimer le message", DELETION_EXPLANATION: "Si vous supprimez ce message, il disparaîtra pour tout le monde.", EDIT_MESSAGE: "Modifier le message", SAVE: "Enregistrer", EDITED_INDICATOR: "modifié", REPLY_TO_MESSAGE: "Répondre", ADD_REACTION: "Ajouter une réaction", AUTH_EXPIRED_OVERLAY_TITLE: "Votre session de chat a expiré", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "Actualisez la page pour continuer", VOICE_MESSAGE: "Message vocal", CONTACT_INFORMATION_HIDDEN: "Informations masquées", LEAVE_CONVERSATION: "Quitter la conversation", MARK_CONVERSATION_AS_UNREAD: "Marquer comme non lu", REPLY_TO_ARIA_LABEL: T.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: T.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: T.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: T.translation.STATUS_INDICATOR_OFFLINE } }, ya = { code: "he-IL", name: "Hebrew", translation: { YESTERDAY: "אתמול", TODAY: "היום", DAYS: "d", HOURS: "h", MINUTES: "m", JUST_NOW: "עכשיו", LOCATION: "מיקום", CANCEL: "בטל", INBOX: "דואר נכנס", DESKTOP_NOTIFICATIONS: "התראות דפדפן", DESKTOP_NOTIFICATIONS_ERROR: "לא ניתן להפעיל התראות במרועה דפדפן מכיוון שהדפדפן שלך חוסם אותן באופן פעיל. נסה להסתכל בהגדרות או להשתמש בדפדפן אחר.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `${e} הודעה על הדגמה`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "אם אתה שומר על כרטיסיית הדפדפן שלך פתוחה, תראה את זה צץ כשמישהו ידבר איתך.", SEND_BUTTON_TEXT: "שלח", ENTRYBOX_TEXT_LIMIT: "רק 10.000 תווים", ENTRYBOX_PLACEHOLDER: "תגיד משהו...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "שיחה זו אינה פעילה עוד.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "אתה יכול לקרוא, אך לא לשלוח הודעות.", MESSAGELIST_LOADING_OLDER: "טוען הודעות ישנות...", MESSAGELIST_SHOW_OLDER: "הצג הודעות ישנות", MESSAGELIST_NEW_MARKER: "חדש", MESSAGE_SENT_VIA_EMAIL: "הודעה זאת נשלחה דרך אימייל", YOU_MARKER: "אתה", UPLOAD_IN_PROGRESS: "מעלה ...", UPLOAD_SEND_FILE: "שלח קובץ", UPLOAD_SHARE_LOCATION: "שתף מיקום", UPLOAD_ERROR: "לרוע המזל משהו השתבש בהעלאה. ייתכן שהקובץ אינו נתמך או גדול מדי.", SHARE_LOCATION_ERROR: "לא ניתן לשתף מיקום: ", LOADING: "טוען...", HUB_EMPTY: "היסטוריית הצ'אט שלך תופיע כאן", HUB_SHOW_EARLIER: "הצג צ'אטים קודמים", INBOX_NO_CHATS_TITLE: "אין עדיין צ'אטים!", INBOX_NO_CHATS_BODY: "לאחר שניהלת שיחה אחת או יותר, הם יופיעו כאן.", ENABLE_TRANSLATION: "תרגם שיחה זו לעברית", DISABLE_TRANSLATION: "הצג מקור", SEARCH_PLACEHOLDER_TEXT: "...חפש", SEARCH_SEARCHING: "...מחפש", SEARCH_NO_RESULTS: "לא נמצאו תוצאות", SEARCH_NO_MORE_RESULTS: "אין תוצאות נוספות", CHAT_NOT_FOUND: "הצ'אט לא נמצא", DELETE_MESSAGE: "מחיקת הודעה", DELETION_EXPLANATION: "אם תמחק הודעה זו, היא תיעלם עבור כולם.", EDIT_MESSAGE: "עריכת הודעה", SAVE: "שמור", EDITED_INDICATOR: "ערוך", REPLY_TO_MESSAGE: "השב", ADD_REACTION: "הוספת תגובה", AUTH_EXPIRED_OVERLAY_TITLE: "הפעלת הצ׳אט שלכם פגה", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "רעננו את העמוד כדי להמשיך", VOICE_MESSAGE: "הודעה קולית", CONTACT_INFORMATION_HIDDEN: "מידע מוסתר", LEAVE_CONVERSATION: "צא מהשיחה", MARK_CONVERSATION_AS_UNREAD: "סמן כלא נקרא", REPLY_TO_ARIA_LABEL: T.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: T.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: T.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: T.translation.STATUS_INDICATOR_OFFLINE } }, Ba = { code: "hi-IN", name: "Hindi (IN)", translation: { YESTERDAY: "कल", TODAY: "आज", DAYS: "d", HOURS: "h", MINUTES: "m", JUST_NOW: "अभी", LOCATION: "जगह", CANCEL: "रद्द करें", INBOX: "इनबॉक्स", DESKTOP_NOTIFICATIONS: "ब्राउज़र सूचनाएं", DESKTOP_NOTIFICATIONS_ERROR: "ब्राउज़र सूचनाएं सक्षम नहीं कर सकता क्योंकि आपका ब्राउज़र सक्रिय रूप से उन्हें ब्लॉक करता है। सेटिंग्स में देखने या एक अलग ब्राउज़र का उपयोग करने का प्रयास करें।", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `${e} डेमो अधिसूचना`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "यदि आप अपना ब्राउज़र टैब खुला रखते हैं, तो यह पॉप अप आपको तब दिखाई देगा जब कोई आपसे बात करेगा।", SEND_BUTTON_TEXT: "भेजें", ENTRYBOX_TEXT_LIMIT: "केवल 10,000 वर्णों की अनुमति है।", ENTRYBOX_PLACEHOLDER: "कुछ कहिए...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "यह चैट अब सक्रिय नहीं है।", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "आप पढ़ सकते हैं, लेकिन संदेश नहीं भेज सकते।", MESSAGELIST_LOADING_OLDER: "पुराने संदेश लोड हो रहे हैं ...", MESSAGELIST_SHOW_OLDER: "पुराने संदेश दिखाएं", MESSAGELIST_NEW_MARKER: "नया", MESSAGE_SENT_VIA_EMAIL: "यह संदेश ईमेल के माध्यम से भेजा गया था", YOU_MARKER: "आप", UPLOAD_IN_PROGRESS: "अपलोड हो रहा है...", UPLOAD_SEND_FILE: "फाइल भेजें", UPLOAD_SHARE_LOCATION: "जगह शेयर करें", UPLOAD_ERROR: "दुर्भाग्य से, अपलोड करते समय कुछ गलत हो गया। फ़ाइल असमर्थित या बहुत बड़ी हो सकती है।", SHARE_LOCATION_ERROR: "जगह शेयर नहीं हो पाया: ", LOADING: "लोड हो रहा है...", HUB_EMPTY: "आपका चैट इतिहास यहां दिखाई देगा", HUB_SHOW_EARLIER: "पहले की चैट दिखाओ", INBOX_NO_CHATS_TITLE: "अभी तक कोई चैट नहीं!", INBOX_NO_CHATS_BODY: "एक बार जब आप एक या अधिक चैट कर लेते हैं, तो वे यहां दिखाई देंगे।", ENABLE_TRANSLATION: "इस बातचीत का हिंदी में अनुवाद कीजिए", DISABLE_TRANSLATION: "मूल दिखाएँ", SEARCH_PLACEHOLDER_TEXT: "खोजें...", SEARCH_SEARCHING: "खोज जारी है...", SEARCH_NO_RESULTS: "कोई परिणाम नहीं मिला", SEARCH_NO_MORE_RESULTS: "और कोई परिणाम नहीं", CHAT_NOT_FOUND: "चैट नहीं मिली", DELETE_MESSAGE: "संदेश डिलीट करें", DELETION_EXPLANATION: "यदि आप इस संदेश को हटाते हैं, तो यह सभी के लिए गायब हो जाएगा.", EDIT_MESSAGE: "संदेश में बदलाव करें", SAVE: "सहेजें", EDITED_INDICATOR: "संपादित किया गया", REPLY_TO_MESSAGE: "जवाब दीजिए ।", ADD_REACTION: "प्रतिक्रिया जोड़ें", AUTH_EXPIRED_OVERLAY_TITLE: "आपका चैट सेशन समाप्त हो चुका है", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "आगे बढ़ने के लिए रिफ्रेश करें", VOICE_MESSAGE: "वॉयस मैसेज", CONTACT_INFORMATION_HIDDEN: "छुपी हुई जानकारी", LEAVE_CONVERSATION: "बातचीत को ख़त्म करें", MARK_CONVERSATION_AS_UNREAD: "अपठित के रूप में चिह्नित करें", REPLY_TO_ARIA_LABEL: T.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: T.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: T.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: T.translation.STATUS_INDICATOR_OFFLINE } }, wa = { code: "hr-HR", name: "Croatian", translation: { YESTERDAY: "Jučer", TODAY: "Danas", DAYS: "d", HOURS: "s", MINUTES: "m", JUST_NOW: "Upravo sad", LOCATION: "Lokacija", CANCEL: "Otkaži", INBOX: "Pretinac", DESKTOP_NOTIFICATIONS: "Obavijesti preglednika", DESKTOP_NOTIFICATIONS_ERROR: "Notifikacije preglednika nisu omogućene jer ih vaš preglednik aktivno blokira. Pokušajte pogledati postavke ili koristiti neki drugi preglednik.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `${e} demo notifikacija`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "Ako karticu preglednika ostavite otvorenu, pojavit će se ovaj pop-up kada netko razgovara s vama.", SEND_BUTTON_TEXT: "Pošalji", ENTRYBOX_TEXT_LIMIT: "Dozvoljeno je samo 10.000 znakova.", ENTRYBOX_PLACEHOLDER: "Reci nešto...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "Ovaj razgovor više nije aktivan.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "Možeš čitati, ali ne i slati poruke.", MESSAGELIST_LOADING_OLDER: "Učitavam starije poruke...", MESSAGELIST_SHOW_OLDER: "Prikaži starije poruke", MESSAGELIST_NEW_MARKER: "Novo", MESSAGE_SENT_VIA_EMAIL: "Ova poruka je poslana e-poštom", YOU_MARKER: "ti", UPLOAD_IN_PROGRESS: "Učitavam...", UPLOAD_SEND_FILE: "Pošalji datoteku", UPLOAD_SHARE_LOCATION: "Podijeli lokaciju", UPLOAD_ERROR: "Nažalost, nešto je pošlo krivo. Datoteka možda nije podržana ili je prevelika.", SHARE_LOCATION_ERROR: "Nije moguće podijeliti lokaciju: ", LOADING: "Učitavam...", HUB_EMPTY: "Ovdje će se prikazati vaša povijest razgovora", HUB_SHOW_EARLIER: "Prikaži ranije razgovore", INBOX_NO_CHATS_TITLE: "Nema razgovora!", INBOX_NO_CHATS_BODY: "Nakon što vodite jedan ili više razgovora, oni će se pojaviti ovdje.", ENABLE_TRANSLATION: "Prevedi ovaj razgovor na hrvatski jezik", DISABLE_TRANSLATION: "Prikaži original", SEARCH_PLACEHOLDER_TEXT: "Pretraži...", SEARCH_SEARCHING: "Pretraživanje...", SEARCH_NO_RESULTS: "Nema rezultata", SEARCH_NO_MORE_RESULTS: "Nema više rezultata", CHAT_NOT_FOUND: "Razgovor nije pronađen", DELETE_MESSAGE: "Obriši poruku", DELETION_EXPLANATION: "Ako izbrišete ovu poruku, nestat će za sve.", EDIT_MESSAGE: "Uredi poruku", SAVE: "Spremi", EDITED_INDICATOR: "uređivao", REPLY_TO_MESSAGE: "Odgovorite", ADD_REACTION: "Dodajte reakciju", AUTH_EXPIRED_OVERLAY_TITLE: "Vaša sesija razgovora je istekla", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "Osvježite stranicu za nastavak", VOICE_MESSAGE: "Glasovna poruka", CONTACT_INFORMATION_HIDDEN: "Skrivene informacije", LEAVE_CONVERSATION: "Napustiti razgovor", MARK_CONVERSATION_AS_UNREAD: "Označi kao nepročitano", REPLY_TO_ARIA_LABEL: T.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: T.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: T.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: T.translation.STATUS_INDICATOR_OFFLINE } }, Ya = { code: "hu-HU", name: "Hungarian", translation: { YESTERDAY: "Tegnap", TODAY: "Ma", DAYS: "n", HOURS: "ó", MINUTES: "p", JUST_NOW: "éppen most", LOCATION: "Helyszín", CANCEL: "Visszavonás", INBOX: "Postaláda", DESKTOP_NOTIFICATIONS: "Böngésző értesítések", DESKTOP_NOTIFICATIONS_ERROR: "Azért nem tudja bekapcsolni a böngésző értesítések funkciót, mert böngészője aktívan blokkolja azt. Tekintse meg a beállításokat vagy használjon másik böngészőt.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `${e} demo értesítés`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "Ha nyitva hagyja böngészőjét, felugró ablak fog megjelenni, ha valaki beszélni szeretne Önnel.", SEND_BUTTON_TEXT: "Küldés", ENTRYBOX_TEXT_LIMIT: "Mindőssze 10.000 karakter megengedett.", ENTRYBOX_PLACEHOLDER: "Mondjon valamit...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "Ez a beszélgetés már nem aktív.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "Elolvashatja az üzeneteket, de nem küldhet újat.", MESSAGELIST_LOADING_OLDER: "Korábbi üzenetek betöltése...", MESSAGELIST_SHOW_OLDER: "Korábbi üzenetek megjelenítése", MESSAGELIST_NEW_MARKER: "Új", MESSAGE_SENT_VIA_EMAIL: "Ez az üzenet e-mailben került elküldésre", YOU_MARKER: "Ön", UPLOAD_IN_PROGRESS: "Feltöltés...", UPLOAD_SEND_FILE: "Fájl küldése", UPLOAD_SHARE_LOCATION: "Helyszín megosztása", UPLOAD_ERROR: "Sajnos hiba történt a feltöltés során. A fájl nem támogatott vagy túl nagy.", SHARE_LOCATION_ERROR: "Helyszín megosztása nem lehetséges: ", LOADING: "Betöltés...", HUB_EMPTY: "A beszélgetések előzményei itt láthatók", HUB_SHOW_EARLIER: "Korábbi beszélgetések megjelenítése", INBOX_NO_CHATS_TITLE: "Még nincs megjeleníthető beszélgetés!", INBOX_NO_CHATS_BODY: "Amint egy vagy több beszélgetéssel rendelkezik, azok itt fognak megjelenni.", ENABLE_TRANSLATION: "A beszélgetés lefordítása erre a nyelvre: magyar", DISABLE_TRANSLATION: "Eredeti megjelenítése", SEARCH_PLACEHOLDER_TEXT: "Keresés...", SEARCH_SEARCHING: "Keresés...", SEARCH_NO_RESULTS: "Nincs találat", SEARCH_NO_MORE_RESULTS: "Nincs több találat", CHAT_NOT_FOUND: "A csevegés nem található", DELETE_MESSAGE: "Üzenet törlése", DELETION_EXPLANATION: "Ha törlöd ezt az üzenetet, az mindenki számára eltűnik.", EDIT_MESSAGE: "Üzenet szerkesztése", SAVE: "Mentés", EDITED_INDICATOR: "szerkesztve", REPLY_TO_MESSAGE: "Válaszadás", ADD_REACTION: "Reagálás erre", AUTH_EXPIRED_OVERLAY_TITLE: "Chat munkamenete lejárt", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "Folytatáshoz frissítse az oldalt", VOICE_MESSAGE: "Hangüzenet", CONTACT_INFORMATION_HIDDEN: "Rejtett információ", LEAVE_CONVERSATION: "Kilépés a beszélgetésből", MARK_CONVERSATION_AS_UNREAD: "Megjelölés olvasatlanként", REPLY_TO_ARIA_LABEL: T.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: T.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: T.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: T.translation.STATUS_INDICATOR_OFFLINE } }, $a = { code: "id-ID", name: "Bahasa Indonesia", translation: { YESTERDAY: "Kemarin", TODAY: "Hari ini", DAYS: "h", HOURS: "j", MINUTES: "m", JUST_NOW: "sekarang", LOCATION: "Lokasi", CANCEL: "Batal", INBOX: "Kotak Masuk", DESKTOP_NOTIFICATIONS: "Notifikasi peramban", DESKTOP_NOTIFICATIONS_ERROR: "Tidak dapat mengaktifkan pemberitahuan browser karena browser Anda secara aktif memblokir mereka. Coba cari di pengaturan atau menggunakan browser yang berbeda.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `pemberitahuan demo ${e}`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "Jika Anda membiarkan tab browser tetap terbuka, Anda akan melihat ini muncul ketika seseorang berbicara kepada Anda.", SEND_BUTTON_TEXT: "Kirim", ENTRYBOX_TEXT_LIMIT: "Hanya 10.000 karakter yang diizinkan.", ENTRYBOX_PLACEHOLDER: "Katakan sesuatu...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "Percakapan ini tidak lagi aktif.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "Anda dapat membaca, tetapi tidak mengirim pesan.", MESSAGELIST_LOADING_OLDER: "Memuat pesan lama...", MESSAGELIST_SHOW_OLDER: "Tampilkan pesan yang lebih lama", MESSAGELIST_NEW_MARKER: "Baru", MESSAGE_SENT_VIA_EMAIL: "Pesan ini dikirim melalui email", YOU_MARKER: "Anda", UPLOAD_IN_PROGRESS: "Mengunggah...", UPLOAD_SEND_FILE: "Kirim mengajukan", UPLOAD_SHARE_LOCATION: "Bagikan lokasi", UPLOAD_ERROR: "Ada yang salah diunggah. File mungkin tidak didukung atau terlalu besar.", SHARE_LOCATION_ERROR: "Tidak dapat membagikan lokasi: ", LOADING: "Memuat...", HUB_EMPTY: "Riwayat obrolan Anda akan muncul di sini", HUB_SHOW_EARLIER: "Tampilkan obrolan sebelumnya", INBOX_NO_CHATS_TITLE: "Belum ada obrolan!", INBOX_NO_CHATS_BODY: "Setelah Anda melakukan satu atau lebih percakapan, mereka akan muncul di sini.", ENABLE_TRANSLATION: "Terjemahkan percakapan ini ke Indonesia", DISABLE_TRANSLATION: "Perlihatkan asli", SEARCH_PLACEHOLDER_TEXT: "Cari...", SEARCH_SEARCHING: "Mencari...", SEARCH_NO_RESULTS: "Tidak ditemukan hasil", SEARCH_NO_MORE_RESULTS: "Tidak ada hasil lainnya", CHAT_NOT_FOUND: "Obrolan tidak ditemukan", DELETE_MESSAGE: "Hapus pesan", DELETION_EXPLANATION: "Jika pesan ini Anda hapus, pesan ini akan tidak terlihat bagi siapa pun.", EDIT_MESSAGE: "Sunting pesan", SAVE: "Mentés", EDITED_INDICATOR: "diedit", REPLY_TO_MESSAGE: "Balas", ADD_REACTION: "Tambah reaksi", AUTH_EXPIRED_OVERLAY_TITLE: "Sesi obrolan Anda sudah lewat batas waktu", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "Muat ulang halaman untuk melanjutkan", VOICE_MESSAGE: "Pesan suara", CONTACT_INFORMATION_HIDDEN: "Informasi tersembunyi", LEAVE_CONVERSATION: "Tinggalkan percakapan", MARK_CONVERSATION_AS_UNREAD: "Tandai sebagai Belum dibaca", REPLY_TO_ARIA_LABEL: T.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: T.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: T.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: T.translation.STATUS_INDICATOR_OFFLINE } }, ja = { code: "is-IS", name: "Íslenska", translation: { YESTERDAY: "Í gær", TODAY: "Í dag", DAYS: "dagar", HOURS: "klst.", MINUTES: "mín.", JUST_NOW: "núna", LOCATION: "Staðsetning", CANCEL: "Hætta við", INBOX: "Pósthólf", DESKTOP_NOTIFICATIONS: "Tilkynningar í vafra", DESKTOP_NOTIFICATIONS_ERROR: "Ekki er hægt að birta tilkynningar í vafra vegna þess að vafrinn sem þú notar hindrar það. Reyndu að leita að stillingum eða að nota annan vafra.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `${e} prufutilkynning`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "Ef flipinn í vafranum er opinn muntu sjá þessa tilkynningu birtast þegar einhver sendir þér skilaboð.", SEND_BUTTON_TEXT: "Senda", ENTRYBOX_TEXT_LIMIT: "Aðeins 10.000 stafir komast fyrir.", ENTRYBOX_PLACEHOLDER: "Segðu eitthvað...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "Þessar samræður eru ekki lengar virkar.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "Þú getur lesið, en ekki sent skilaboð.", MESSAGELIST_LOADING_OLDER: "Sæki eldri skilaboð...", MESSAGELIST_SHOW_OLDER: "Sýna eldri skilaboð", MESSAGELIST_NEW_MARKER: "Ný", MESSAGE_SENT_VIA_EMAIL: "Þessi skilaboð voru send með tölvupósti", YOU_MARKER: "þú", UPLOAD_IN_PROGRESS: "Hleð upp...", UPLOAD_SEND_FILE: "Senda skrá", UPLOAD_SHARE_LOCATION: "Deila staðsetningu", UPLOAD_ERROR: "Því miður fór eitthvað úrskeiðis við að hlaða upp. Skráin gæti verið af rangri tegund eð of stór.", SHARE_LOCATION_ERROR: "Ekki er hægt að deila staðsetningu: ", LOADING: "Hleð...", HUB_EMPTY: "Fyrri samtöl munu birtast hér", HUB_SHOW_EARLIER: "Sýna fyrri samtöl", INBOX_NO_CHATS_TITLE: "Engin samtöl enn!", INBOX_NO_CHATS_BODY: "Þegar þú hefur átt eitt eða fleiri samtöl, munu þau birtast hér.", ENABLE_TRANSLATION: "Þýða þetta samtal á ensku", DISABLE_TRANSLATION: "Sýna upprunalegt", SEARCH_PLACEHOLDER_TEXT: "Leita...", SEARCH_SEARCHING: "Leita...", SEARCH_NO_RESULTS: "Ekkert fannst", SEARCH_NO_MORE_RESULTS: "Engar fleiri niðurstöður", CHAT_NOT_FOUND: "Samtal fannst ekki", DELETE_MESSAGE: "Eyða skilaboðum", DELETION_EXPLANATION: "Ef þú eyðir þessum skilaboðum munu þau hverfa hjá öllum.", EDIT_MESSAGE: "Breyta skilaboðum", SAVE: "Vista", EDITED_INDICATOR: "breytt", REPLY_TO_MESSAGE: "Svara", REPLY_TO_ARIA_LABEL: (e, t) => `Svara ${e}: ${t}`, REPLY_MODE_LEAVE_ARIA_LABEL: "Fara úr svari", ADD_REACTION: "Setja inn viðbrögð", AUTH_EXPIRED_OVERLAY_TITLE: "Spjallið hefur runnið út", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "Endurnýjaðu síðuna til að halda áfram", VOICE_MESSAGE: "Raddskilaboð", LEAVE_CONVERSATION: "Skilja eftir skilaboð", MARK_CONVERSATION_AS_UNREAD: "Merkja sem ólesið", STATUS_INDICATOR_ONLINE: "Virk", STATUS_INDICATOR_OFFLINE: "Ekki við", CONTACT_INFORMATION_HIDDEN: "faldar upplýsingar" } }, Fa = { code: "it-IT", name: "Italian", translation: { YESTERDAY: "Ieri", TODAY: "Oggi", DAYS: "g", HOURS: "o", MINUTES: "m", JUST_NOW: "adesso", LOCATION: "Posizione", CANCEL: "Annulla", INBOX: "Posta in arrivo", DESKTOP_NOTIFICATIONS: "Notifiche browser", DESKTOP_NOTIFICATIONS_ERROR: "Impossibile abilitare le notifiche browser perché il browser le blocca attivamente. Prova a cercare le impostazioni o utilizzare un browser diverso.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `${e} demo notification`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "Se si mantiene aperta la scheda del browser, questo verrà visualizzato quando qualcuno ti parla.", SEND_BUTTON_TEXT: "Invia", ENTRYBOX_TEXT_LIMIT: "Sono consentiti solo 10.000 caratteri.", ENTRYBOX_PLACEHOLDER: "Dì qualcosa...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "Questa conversazione non è più attiva.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "Puoi leggere, ma non inviare messaggi.", MESSAGELIST_LOADING_OLDER: "Caricamento dei messaggi precedenti...", MESSAGELIST_SHOW_OLDER: "Mostra messaggi precedenti", MESSAGELIST_NEW_MARKER: "Nuovo", MESSAGE_SENT_VIA_EMAIL: "Questo messaggio è stato inviato via email", YOU_MARKER: "tu", UPLOAD_IN_PROGRESS: "Caricamento in corso...", UPLOAD_SEND_FILE: "Invia file", UPLOAD_SHARE_LOCATION: "Condividi posizione", UPLOAD_ERROR: "Qualcosa è andato storto durante il caricamento. Il file potrebbe non essere supportato o troppo grande.", SHARE_LOCATION_ERROR: "Impossibile condividere la posizione: ", LOADING: "Caricamento in corso...", HUB_EMPTY: "La cronologia della tua chat verrà mostrata qui", HUB_SHOW_EARLIER: "Mostra chat precedenti", INBOX_NO_CHATS_TITLE: "Non ci sono ancora chat!", INBOX_NO_CHATS_BODY: "Una volta che hai avuto una o più conversazioni, verranno visualizzate qui.", ENABLE_TRANSLATION: "Traduci questa conversazione in italiano", DISABLE_TRANSLATION: "Mostra l'originale", SEARCH_PLACEHOLDER_TEXT: "Cerca...", SEARCH_SEARCHING: "Cercando...", SEARCH_NO_RESULTS: "Nessun risultato trovato", SEARCH_NO_MORE_RESULTS: "Non ci sono più risultati", CHAT_NOT_FOUND: "Chat non trovata", DELETE_MESSAGE: "Elimina messaggio", DELETION_EXPLANATION: "Se elimini il messaggio, questo scomparirà per tutti.", EDIT_MESSAGE: "Modifica messaggio", SAVE: "Salva", EDITED_INDICATOR: "modificato", REPLY_TO_MESSAGE: "Rispondi", ADD_REACTION: "Aggiungi reazione", AUTH_EXPIRED_OVERLAY_TITLE: "La sessione di chat è scaduta", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "Aggiorna la pagina per continuare", VOICE_MESSAGE: "Messaggio vocale", CONTACT_INFORMATION_HIDDEN: "Informazioni nascoste", LEAVE_CONVERSATION: "Abbandona la conversazione", MARK_CONVERSATION_AS_UNREAD: "Segna come non letto", REPLY_TO_ARIA_LABEL: T.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: T.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: T.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: T.translation.STATUS_INDICATOR_OFFLINE } }, Va = { code: "ja-JP", name: "Japanese", translation: { YESTERDAY: "昨日", TODAY: "今日", DAYS: "日前", HOURS: "時間前", MINUTES: "分前", JUST_NOW: "たった今", LOCATION: "場所", CANCEL: "キャンセル", INBOX: "受信箱", DESKTOP_NOTIFICATIONS: "ブラウザの通知", DESKTOP_NOTIFICATIONS_ERROR: "ブラウザの通知はブロックされているため、ブラウザの通知を有効にできません。設定を確認するか、別のブラウザを使用してください。", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `${e} デモ通知`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "ブラウザのタブを開いたままにしておくと、誰かがあなたに話しかけたときにこのポップアップが表示されます。", SEND_BUTTON_TEXT: "送信", ENTRYBOX_TEXT_LIMIT: "許可されているのは10.000文字までです。", ENTRYBOX_PLACEHOLDER: "メッセージを入力してください", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "この会話はもうアクティブではありません。", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "あなたは読むことはできますが、メッセージを送ることはできません。", MESSAGELIST_LOADING_OLDER: "古いメッセージを読み込んでいます...", MESSAGELIST_SHOW_OLDER: "古いメッセージを表示", MESSAGELIST_NEW_MARKER: "新着", MESSAGE_SENT_VIA_EMAIL: "このメッセージはメールで送信されました", YOU_MARKER: "あなたは", UPLOAD_IN_PROGRESS: "アップロード中...", UPLOAD_SEND_FILE: "ファイル送信", UPLOAD_SHARE_LOCATION: "共有場所", UPLOAD_ERROR: "アップロード中に問題が発生しました。ファイルがサポートされていないか、大きすぎる可能性があります。", SHARE_LOCATION_ERROR: "場所を共有できません: ", LOADING: "読み込み中...", HUB_EMPTY: "あなたのチャット履歴がここに表示されます", HUB_SHOW_EARLIER: "以前のチャットを表示", INBOX_NO_CHATS_TITLE: "まだチャットがありません!", INBOX_NO_CHATS_BODY: "会話が1つ以上あると、ここに表示されます", ENABLE_TRANSLATION: "この会話を日本語に翻訳する", DISABLE_TRANSLATION: "オリジナルを表示", SEARCH_PLACEHOLDER_TEXT: "検索...", SEARCH_SEARCHING: "検索中...", SEARCH_NO_RESULTS: "結果が見つかりません", SEARCH_NO_MORE_RESULTS: "これ以上結果はありません", CHAT_NOT_FOUND: "チャットが見つかりませんでした", DELETE_MESSAGE: "メッセージを削除する", DELETION_EXPLANATION: "このメッセージを削除すると、全ての人に表示されなくなります。", EDIT_MESSAGE: "メッセージを編集する", SAVE: "上書き保存", EDITED_INDICATOR: "編集", REPLY_TO_MESSAGE: "返信する", ADD_REACTION: "リアクションを追加", AUTH_EXPIRED_OVERLAY_TITLE: "チャットセッションの有効期限が切れました", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "続けるにはページを更新してください", VOICE_MESSAGE: "ボイスメッセージ", CONTACT_INFORMATION_HIDDEN: "機密情報", LEAVE_CONVERSATION: "会話をやめる", MARK_CONVERSATION_AS_UNREAD: "未読としてマーク", REPLY_TO_ARIA_LABEL: T.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: T.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: T.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: T.translation.STATUS_INDICATOR_OFFLINE } }, xa = { code: "ka-GE", name: "Georgian", translation: { YESTERDAY: "გუშინ", TODAY: "დღეს", DAYS: "დღ", HOURS: "სთ", MINUTES: "წთ", JUST_NOW: "ახლა", LOCATION: "ადგილმდებარეობა", CANCEL: "გაუქმება", INBOX: "მიღებული შეტყობინება", DESKTOP_NOTIFICATIONS: "ბრაუზერის შეტყობინებები", DESKTOP_NOTIFICATIONS_ERROR: "შეუძლებელია ბრაუზერის შეტკობინებების ჩართვა. ეს ბრაუზერი ბლოკავს მათ. სცადე ცვლილება ოპციებიდან ან გამოიყენე სხვა ბრაუზერი.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `${e} შეტყობინებების დემო ვერსია`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "თუ დატოვებ ბრაუზერის ფანჯარას გახსნილს, როცა ვიღაც მოგწერს საუბარი ამოვარდება დესკტოპზე.", SEND_BUTTON_TEXT: "გაგზავნა", ENTRYBOX_TEXT_LIMIT: "დაშვებულია მხოლოდ 10.000 სიმბოლო.", ENTRYBOX_PLACEHOLDER: "დაწერე რაღაც...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "ეს დიალოგი აღარ არის ხელმისაწვდომი.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "შეგიძლია წაიკითხო, მაგრამ ვერ გააგზავნი შეტყობინებას.", MESSAGELIST_LOADING_OLDER: "იტვირთება ძველი შეტყობინებები...", MESSAGELIST_SHOW_OLDER: "ძველი შეტყობინებების ჩვენება", MESSAGELIST_NEW_MARKER: "ახალი", MESSAGE_SENT_VIA_EMAIL: "ეს შეტყობინება გამოგზავნილია იმეილით", YOU_MARKER: "you", UPLOAD_IN_PROGRESS: "იტვირთება...", UPLOAD_SEND_FILE: "ფაილის გაგზავნა", UPLOAD_SHARE_LOCATION: "ადგილმდებარეობის გაზიარება", UPLOAD_ERROR: "პრობლემაა ატვირთვისას. ფაილის შესაძლოა არის არათავსებადი ან ძალიან დიდი.", SHARE_LOCATION_ERROR: "შეუძლებელია ადგილმდებარეობის გაზიარება: ", LOADING: "იტვირთება...", HUB_EMPTY: "საუბრების ისტორია გამოჩნდება აქ", HUB_SHOW_EARLIER: "წინა საუბრების ნახვა", INBOX_NO_CHATS_TITLE: "ჯერ-ჯერობით არ არის საუბრები!", INBOX_NO_CHATS_BODY: "უკვე დასრულებული საუბარები გამოჩნდება აქ", ENABLE_TRANSLATION: "თარგმნეთ ეს საუბარი ინგლისურად", DISABLE_TRANSLATION: "ორიგინალის ჩვენება", SEARCH_PLACEHOLDER_TEXT: "ძიება...", SEARCH_SEARCHING: "მიმდინარეობს ძიება...", SEARCH_NO_RESULTS: "შედეგები ვერ ქართველი", SEARCH_NO_MORE_RESULTS: "სხვა შედეგი ვერ მოიძებნა", CHAT_NOT_FOUND: "ჩატი ვერ მოიძებნა", DELETE_MESSAGE: "შეტყობინების წაშლა ", DELETION_EXPLANATION: "თუ ამ შეტყობინებას წაშლით, ის ყველასთვის გაქრება.", EDIT_MESSAGE: "შეტყობინების რედაქტირება", SAVE: "შენახვა", EDITED_INDICATOR: "რედაქტირებულია", REPLY_TO_MESSAGE: "პასუხის გაცემა", ADD_REACTION: "დაამატეთ რეაქცია", AUTH_EXPIRED_OVERLAY_TITLE: "თქვენი ჩეთის სესიის ვადა ამოიწურა", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "განაახლეთ გვერდი გასაგრძელებლად", VOICE_MESSAGE: "ხმოვანი შეტყობინება", CONTACT_INFORMATION_HIDDEN: "ფარული ინფორმაცია", LEAVE_CONVERSATION: "საუბრის დატოვება", MARK_CONVERSATION_AS_UNREAD: "წაუკითხავად მონიშვნა", REPLY_TO_ARIA_LABEL: T.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: T.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: T.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: T.translation.STATUS_INDICATOR_OFFLINE } }, Xa = { code: "ko-KR", name: "Korean (South Korea)", translation: { YESTERDAY: "어제", TODAY: "오늘", DAYS: "일 전", HOURS: "시간 전", MINUTES: "분 전", JUST_NOW: "방금", LOCATION: "위치", CANCEL: "취소", INBOX: "대화 목록", DESKTOP_NOTIFICATIONS: "브라우저 알림", DESKTOP_NOTIFICATIONS_ERROR: "브라우저 알림을 표시할 수 없습니다. 브라우저 설정을 확인하거나 다른 브라우저를 사용해주세요.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `${e} 데모 알림`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "브라우저 탭을 열어 둔 상태에서 누군가 대화 할 때 이 팝업이 표시됩니다.", SEND_BUTTON_TEXT: "전송", ENTRYBOX_TEXT_LIMIT: "최대 10,000자까지 입력할 수 있습니다.", ENTRYBOX_PLACEHOLDER: "메세지를 입력하세요...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "채팅이 종료되었습니다.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "읽기만 가능하며 메시지를 보낼 수 없습니다.", MESSAGELIST_LOADING_OLDER: "이전 메시지 로드 중...", MESSAGELIST_SHOW_OLDER: "이전 메시지 표시", MESSAGELIST_NEW_MARKER: "새 메시지", MESSAGE_SENT_VIA_EMAIL: "이 메시지는 이메일을 통해 전송되었습니다.", YOU_MARKER: "나", UPLOAD_IN_PROGRESS: "업로드 중...", UPLOAD_SEND_FILE: "파일 전송", UPLOAD_SHARE_LOCATION: "위치 공유", UPLOAD_ERROR: "업로드가 실패했습니다. 파일이 지원되지 않거나 너무 클 수 있습니다.", SHARE_LOCATION_ERROR: "위치를 공유 할 수 없습니다: ", LOADING: "로드 중...", HUB_EMPTY: "채팅 기록이 여기에 표시됩니다", HUB_SHOW_EARLIER: "이전 채팅보기", INBOX_NO_CHATS_TITLE: "아직 채팅이 없습니다!", INBOX_NO_CHATS_BODY: "대화가 하나 이상 있으면 여기에 표시됩니다.", ENABLE_TRANSLATION: "이 대화를 한국어로 번역", DISABLE_TRANSLATION: "원본 표시", SEARCH_PLACEHOLDER_TEXT: "검색...", SEARCH_SEARCHING: "검색 중...", SEARCH_NO_RESULTS: "검색 결과 없음", SEARCH_NO_MORE_RESULTS: "추가 검색 결과 없음", CHAT_NOT_FOUND: "대화를 찾지 못했습니다", DELETE_MESSAGE: "메시지 삭제", DELETION_EXPLANATION: "이 메시지를 삭제하면 모든 사람이 볼 수 없게 됩니다.", EDIT_MESSAGE: "메시지 편집하기", SAVE: "저장", EDITED_INDICATOR: "편집", REPLY_TO_MESSAGE: "회신", ADD_REACTION: "반응 추가", AUTH_EXPIRED_OVERLAY_TITLE: "채팅 세션이 만료되었습니다", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "계속하려면 페이지를 새로고침하세요", VOICE_MESSAGE: "음성 메시지", CONTACT_INFORMATION_HIDDEN: "숨겨진 정보", LEAVE_CONVERSATION: "대화 떠나기", MARK_CONVERSATION_AS_UNREAD: "읽지 않은 상태로 표시", REPLY_TO_ARIA_LABEL: T.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: T.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: T.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: T.translation.STATUS_INDICATOR_OFFLINE } }, Ga = { code: "nb-NO", name: "Norwegian (Bokmål)", translation: { YESTERDAY: "I går", TODAY: "I dag", DAYS: "d", HOURS: "h", MINUTES: "m", JUST_NOW: "Nå", LOCATION: "Plassering", CANCEL: "Avbryt", INBOX: "Innboks", DESKTOP_NOTIFICATIONS: "Nettleservarsler", DESKTOP_NOTIFICATIONS_ERROR: "Kan ikke aktivere Nettleservarsler fordi nettleseren din aktivt blokkerer dem. Prøv å se i innstillingene eller bruke en annen nettleser.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `${e} demo varslinger`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "Hvis du holder nettleservinduet åpent, vil du se dette varsel når noen snakker til deg.", SEND_BUTTON_TEXT: "Send", ENTRYBOX_TEXT_LIMIT: "Kun 10.000 tegn er tillatt.", ENTRYBOX_PLACEHOLDER: "Si noe...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "Denne samtale er ikke lengre aktiv.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "Du kan lese, men ikke sende meldinger.", MESSAGELIST_LOADING_OLDER: "Laster eldre meldinger...", MESSAGELIST_SHOW_OLDER: "Vis eldre meldinger", MESSAGELIST_NEW_MARKER: "Ny", MESSAGE_SENT_VIA_EMAIL: "Denne meldingen er sendt via e-post", YOU_MARKER: "deg", UPLOAD_IN_PROGRESS: "Laster opp...", UPLOAD_SEND_FILE: "Send fil", UPLOAD_SHARE_LOCATION: "Del din plassering", UPLOAD_ERROR: "Noe gikk galt i uplastingen. Det kan være filen ikke støttes eller for stor.", SHARE_LOCATION_ERROR: "Kan ikke dele plasseringen: ", LOADING: "Laster...", HUB_EMPTY: "Din chats historikk vil vises her", HUB_SHOW_EARLIER: "Vis tidligere chats", INBOX_NO_CHATS_TITLE: "Ingen chats enda!", INBOX_NO_CHATS_BODY: "Så snart du får en eller flere samtaler, vil de vises her.", ENABLE_TRANSLATION: "Oversett denne samtalen til norsk", DISABLE_TRANSLATION: "Vis original", SEARCH_PLACEHOLDER_TEXT: "Søk...", SEARCH_SEARCHING: "Søker...", SEARCH_NO_RESULTS: "Finner ingen resultater", SEARCH_NO_MORE_RESULTS: "Ingen flere resultater", CHAT_NOT_FOUND: "Chat ikke funnet", DELETE_MESSAGE: "Slett melding", DELETION_EXPLANATION: "Hvis du sletter denne meldingen, forsvinner den for alle.", EDIT_MESSAGE: "Rediger melding", SAVE: "Lagre", EDITED_INDICATOR: "redigert", REPLY_TO_MESSAGE: "Svar", ADD_REACTION: "Legg til reaksjon", AUTH_EXPIRED_OVERLAY_TITLE: "Chatøkten er utløpt", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "Oppdater siden for å fortsette", VOICE_MESSAGE: "Lydmelding", CONTACT_INFORMATION_HIDDEN: "Skjult informasjon", LEAVE_CONVERSATION: "Forlat samtalen", MARK_CONVERSATION_AS_UNREAD: "Merk som ulest", REPLY_TO_ARIA_LABEL: T.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: T.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: T.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: T.translation.STATUS_INDICATOR_OFFLINE } }, za = { code: "nl-NL", name: "Dutch", translation: { YESTERDAY: "Gisteren", TODAY: "Vandaag", DAYS: "d", HOURS: "u", MINUTES: "m", JUST_NOW: "zojuist", LOCATION: "Locatie", CANCEL: "Annuleren", INBOX: "Inbox", DESKTOP_NOTIFICATIONS: "Browsermeldingen", DESKTOP_NOTIFICATIONS_ERROR: "Browsermeldingen kunnen niet geactiveerd worden omdat de browser het blokkeert. Check de instellingen van je browser of probeer een andere browser.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `${e} demo notificatie`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "Als je je browser open houdt, zie je deze popup als iemand tegen je praat.", SEND_BUTTON_TEXT: "Verzenden", ENTRYBOX_TEXT_LIMIT: "Maximaal 10.000 tekens toegestaan.", ENTRYBOX_PLACEHOLDER: "Typ een bericht...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "Dit gesprek is niet actief meer.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "Je kunt geen berichten sturen.", MESSAGELIST_LOADING_OLDER: "Eerdere berichten laden...", MESSAGELIST_SHOW_OLDER: "Laad eerdere berichten", MESSAGELIST_NEW_MARKER: "Nieuw", MESSAGE_SENT_VIA_EMAIL: "Dit bericht is verstuurd via e-mail", YOU_MARKER: "jij", UPLOAD_IN_PROGRESS: "Uploaden...", UPLOAD_SEND_FILE: "Verzend bestand", UPLOAD_SHARE_LOCATION: "Deel locatie", UPLOAD_ERROR: "Er ging iets mis. Het bestand wordt niet ondersteund of is te groot.", SHARE_LOCATION_ERROR: "Locatie delen mislukt: ", LOADING: "Bezig met laden...", HUB_EMPTY: "Berichtengeschiedenis wordt hier weergegeven", HUB_SHOW_EARLIER: "Laat eerdere berichten zien", INBOX_NO_CHATS_TITLE: "Nog geen chats!", INBOX_NO_CHATS_BODY: "Zodra je een of meerdere conversaties hebt gehad, worden deze hier weergegeven.", ENABLE_TRANSLATION: "Vertaal dit gesprek naar het Nederlands", DISABLE_TRANSLATION: "Toon oorspronkelijk gesprek", SEARCH_PLACEHOLDER_TEXT: "Zoek...", SEARCH_SEARCHING: "Zoeken...", SEARCH_NO_RESULTS: "Geen resultaten gevonden", SEARCH_NO_MORE_RESULTS: "Niet meer resultaten", CHAT_NOT_FOUND: "Chat niet gevonden", DELETE_MESSAGE: "Bericht verwijderen", DELETION_EXPLANATION: "Als je dit bericht verwijdert, zal het voor iedereen verdwijnen.", EDIT_MESSAGE: "Bericht bewerken", SAVE: "Opslaan", EDITED_INDICATOR: "bewerkt", REPLY_TO_MESSAGE: "Beantwoorden", ADD_REACTION: "Reactie toevoegen", AUTH_EXPIRED_OVERLAY_TITLE: "Je chatsessie is verlopen", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "Ververs de pagina om door te gaan", VOICE_MESSAGE: "Spraakbericht", CONTACT_INFORMATION_HIDDEN: "verborgen informatie", LEAVE_CONVERSATION: "Gesprek verlaten", MARK_CONVERSATION_AS_UNREAD: "Markeren als ongelezen", REPLY_TO_ARIA_LABEL: T.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: T.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: T.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: T.translation.STATUS_INDICATOR_OFFLINE } }, Ka = { code: "pl-PL", name: "Polish", translation: { YESTERDAY: "Wczoraj", TODAY: "Dzisiaj", DAYS: "d", HOURS: "h", MINUTES: "m", JUST_NOW: "teraz", LOCATION: "Lokalizacja", CANCEL: "Anuluj", INBOX: "Skrzynka odbiorcza", DESKTOP_NOTIFICATIONS: "Powiadomienia", DESKTOP_NOTIFICATIONS_ERROR: "Nie można aktywować powiadomień, ponieważ twoja przeglądarka je blokuje. Proszę zmienić ustawienie lub spróbować innej przeglądarki.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `${e} przykładowe powiadomienie`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "Jeśli zostawisz tę kartę otwartą, zobaczysz takie powiadomienie, gdy ktoś napisze do Ciebie.", SEND_BUTTON_TEXT: "Wyślij", ENTRYBOX_TEXT_LIMIT: "Nie można wysyłać więcej niż 10000 znaków.", ENTRYBOX_PLACEHOLDER: "Napisz coś...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "Ten czat nie jest aktywny.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "Możesz czytać wiadomości, ale nie możesz ich wysyłać.", MESSAGELIST_LOADING_OLDER: "Wczytuję starsze wiadomości...", MESSAGELIST_SHOW_OLDER: "Zobacz starsze wiadomości", MESSAGELIST_NEW_MARKER: "Nowe", MESSAGE_SENT_VIA_EMAIL: "Ta wiadomość została wysłana przez email.", YOU_MARKER: "ty", UPLOAD_IN_PROGRESS: "Przesyłanie...", UPLOAD_SEND_FILE: "Prześlij plik", UPLOAD_SHARE_LOCATION: "Udostępnij lokalizację", UPLOAD_ERROR: "Coś poszło nie tak. Plik może być zbyt duży lub jest nieobsługiwany.", SHARE_LOCATION_ERROR: "Nie da się udostępnić lokalizacji: ", LOADING: "Ładowanie...", HUB_EMPTY: "Twoje czaty pojawią się tutaj", HUB_SHOW_EARLIER: "Zobacz starsze czaty", INBOX_NO_CHATS_TITLE: "Brak czatów!", INBOX_NO_CHATS_BODY: "Rozpoczęte konwersacje pojawią się tutaj.", ENABLE_TRANSLATION: "Przetłumacz tę konwersację na język polski", DISABLE_TRANSLATION: "Pokaż oryginał", SEARCH_PLACEHOLDER_TEXT: "Wyszukaj...", SEARCH_SEARCHING: "Wyszukiwanie...", SEARCH_NO_RESULTS: "Nie znaleziono wyników", SEARCH_NO_MORE_RESULTS: "Nie ma innych wyników", CHAT_NOT_FOUND: "Nie znaleziono konwersacji", DELETE_MESSAGE: "Usuń wiadomość", DELETION_EXPLANATION: "Jeśli usuniesz tę wiadomość, przestanie być widoczna dla wszystkich.", EDIT_MESSAGE: "Edytuj wiadomość", SAVE: "Zapisz", EDITED_INDICATOR: "edytowano", REPLY_TO_MESSAGE: "Odpowiedz", ADD_REACTION: "Dodaj reakcję", AUTH_EXPIRED_OVERLAY_TITLE: "Twoja sesja wygasła", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "Odśwież stronę, aby kontynuować", VOICE_MESSAGE: "Wiadomość głosowa", CONTACT_INFORMATION_HIDDEN: "Ukryte informacje", LEAVE_CONVERSATION: "Opuść konwersację", MARK_CONVERSATION_AS_UNREAD: "Oznacz jako nieprzeczytane", REPLY_TO_ARIA_LABEL: T.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: T.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: T.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: T.translation.STATUS_INDICATOR_OFFLINE } }, Wa = { code: "pt-BR", name: "Portuguese (Brazil)", translation: { YESTERDAY: "Ontem", TODAY: "Hoje", DAYS: "d", HOURS: "h", MINUTES: "m", JUST_NOW: "agora mesmo", LOCATION: "Localização", CANCEL: "Cancelar", INBOX: "Caixa de entrada", DESKTOP_NOTIFICATIONS: "Notificações do navegador", DESKTOP_NOTIFICATIONS_ERROR: "Não é possível ativar as notificações da navegador porque seu navegador as bloqueia. Tente procurar nas configurações ou usar um navegador diferente.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `${e} notificação de demonstração`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "Se você mantiver a guia do navegador aberta, verá essa mensagem quando alguém falar com você.", SEND_BUTTON_TEXT: "Enviar", ENTRYBOX_TEXT_LIMIT: "Apenas 10.000 caracteres são permitidos.", ENTRYBOX_PLACEHOLDER: "Diga algo...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "Esta conversa não está mais ativa.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "Você pode ler, mas não enviar mensagens.", MESSAGELIST_LOADING_OLDER: "Carregando mensagens antigas...", MESSAGELIST_SHOW_OLDER: "Mostrar mensagens mais antigas", MESSAGELIST_NEW_MARKER: "Novo", MESSAGE_SENT_VIA_EMAIL: "Esta mensagem foi enviada via email.", YOU_MARKER: "Você", UPLOAD_IN_PROGRESS: "Carregando...", UPLOAD_SEND_FILE: "Enviar arquivo", UPLOAD_SHARE_LOCATION: "Compartilhar localização", UPLOAD_ERROR: "Algo deu errado ao fazer o upload. O arquivo pode não ter suporte ou ser muito grande.", SHARE_LOCATION_ERROR: "Não é possível compartilhar o local: ", LOADING: "Carregando...", HUB_EMPTY: "Seu histórico de conversas será exibido aqui", HUB_SHOW_EARLIER: "Mostrar conversas anteriores", INBOX_NO_CHATS_TITLE: "Ainda não há chats!", INBOX_NO_CHATS_BODY: "Depois de ter uma ou mais conversas, elas serão exibidas aqui.", ENABLE_TRANSLATION: "Traduzir esta conversa para português", DISABLE_TRANSLATION: "Ver a conversa não traduzida", SEARCH_PLACEHOLDER_TEXT: "Busca...", SEARCH_SEARCHING: "Consultando...", SEARCH_NO_RESULTS: "Resultados nao encontrados", SEARCH_NO_MORE_RESULTS: "Não há mais resultados", CHAT_NOT_FOUND: "Conversa não encontrada", DELETE_MESSAGE: "Excluir mensagem", DELETION_EXPLANATION: "Se você excluir esta mensagem, ela desaparecerá para todos.", EDIT_MESSAGE: "Editar mensagem", SAVE: "Salvar", EDITED_INDICATOR: "editada", REPLY_TO_MESSAGE: "Responder", ADD_REACTION: "Adicionar reação", AUTH_EXPIRED_OVERLAY_TITLE: "Sua sessão de chat expirou", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "Atualize a página para continuar", VOICE_MESSAGE: "Mensagem de voz", LEAVE_CONVERSATION: "Sair da conversa", MARK_CONVERSATION_AS_UNREAD: "Marcar como não lida", CONTACT_INFORMATION_HIDDEN: "Informação oculta", REPLY_TO_ARIA_LABEL: T.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: T.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: T.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: T.translation.STATUS_INDICATOR_OFFLINE } }, qa = { code: "ro-RO", name: "Romanian (Romania)", translation: { YESTERDAY: "Ieri", TODAY: "Astăzi", DAYS: "z", HOURS: "o", MINUTES: "m", JUST_NOW: "chiar acum", LOCATION: "Locație", CANCEL: "Anulare", INBOX: "Inbox", DESKTOP_NOTIFICATIONS: "Notificări browser", DESKTOP_NOTIFICATIONS_ERROR: "Nu se pot activa notificări browser deoarece browserul dvs. le blochează în mod activ. Încercați să căutați în setări sau utilizând un alt browser.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `Notificare de debit ${e}`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "Dacă țineți fișa browserului deschis, veți vedea acest pop-up atunci când cineva vorbește cu dvs.", SEND_BUTTON_TEXT: "Trimiteți", ENTRYBOX_TEXT_LIMIT: "Sunt permise numai 10.000 de caractere.", ENTRYBOX_PLACEHOLDER: "Spune ceva...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "Această conversație nu mai este activă.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "Puteți citi, dar nu puteți trimite mesaje.", MESSAGELIST_LOADING_OLDER: "Încărcarea mesajelor mai vechi...", MESSAGELIST_SHOW_OLDER: "Afișați mesaje mai vechi", MESSAGELIST_NEW_MARKER: "Nou", MESSAGE_SENT_VIA_EMAIL: "Acest mesaj a fost trimis prin e-mail", YOU_MARKER: "voi", UPLOAD_IN_PROGRESS: "Încărcarea...", UPLOAD_SEND_FILE: "Trimiteți fișierul", UPLOAD_SHARE_LOCATION: "Distribuiți locația", UPLOAD_ERROR: "Sa încărcat ceva în mod greșit. Fișierul ar putea fi neacceptat sau prea mare.", SHARE_LOCATION_ERROR: "Nu se poate partaja locația: ", LOADING: "Încărcare...", HUB_EMPTY: "Istoricul chat-ului dvs. va apărea aici", HUB_SHOW_EARLIER: "Afișați discuțiile anterioare", INBOX_NO_CHATS_TITLE: "Încă nu vorbești!", INBOX_NO_CHATS_BODY: "După ce ați avut una sau mai multe conversații, acestea vor apărea aici.", ENABLE_TRANSLATION: "Traduceți această conversație în română", DISABLE_TRANSLATION: "Arată originalul", SEARCH_PLACEHOLDER_TEXT: "Căutare...", SEARCH_SEARCHING: "Se caută...", SEARCH_NO_RESULTS: "Nu s-au găsit rezultate", SEARCH_NO_MORE_RESULTS: "Nu mai există rezultate", CHAT_NOT_FOUND: "Conversația nu a fost găsită", DELETE_MESSAGE: "Șterge mesajul", DELETION_EXPLANATION: "Dacă ștergi acest mesaj, acesta va dispărea pentru toată lumea.", EDIT_MESSAGE: "Redactează mesajul", SAVE: "Salvare", EDITED_INDICATOR: "editat", REPLY_TO_MESSAGE: "Răspundeți", ADD_REACTION: "Adaugă o reacție", AUTH_EXPIRED_OVERLAY_TITLE: "Sesiunea dumneavoastră de chat a expirat", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "Reîmprospătați pagina pentru a continua", VOICE_MESSAGE: "Mesaj vocal", CONTACT_INFORMATION_HIDDEN: "Informații ascunse", LEAVE_CONVERSATION: "Părăsește conversația", MARK_CONVERSATION_AS_UNREAD: "Marcheaza ca necitit", REPLY_TO_ARIA_LABEL: T.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: T.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: T.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: T.translation.STATUS_INDICATOR_OFFLINE } }, Ja = { code: "ru-RU", name: "Russian", translation: { YESTERDAY: "Вчера", TODAY: "Сегодня", DAYS: "д", HOURS: "ч", MINUTES: "м", JUST_NOW: "только что", LOCATION: "Местоположение", CANCEL: "Отмена", INBOX: "Входящие", DESKTOP_NOTIFICATIONS: "Оповещения", DESKTOP_NOTIFICATIONS_ERROR: "Невозможно включить оповещения, потому что ваш браузер активно блокирует их. Проверьте ваши настройки или попробуйте другой браузер.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `${e} демо-оповещение`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "Если вкладка вашего браузера открыта, вы увидите всплывающее окошко оповещения когда кто-то отправит вам сообщение.", SEND_BUTTON_TEXT: "Отправить", ENTRYBOX_TEXT_LIMIT: "Разрешено использовать только 10 тысяч символов.", ENTRYBOX_PLACEHOLDER: "Напишите что-нибудь...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "Этот разговор больше неактивен.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "Вы можете читать, но не отправлять сообщения.", MESSAGELIST_LOADING_OLDER: "Загрузка старых сообщения...", MESSAGELIST_SHOW_OLDER: "Показать старые сообщения", MESSAGELIST_NEW_MARKER: "Новые", MESSAGE_SENT_VIA_EMAIL: "Это сообщение было отправлено по электронной почте", YOU_MARKER: "вы", UPLOAD_IN_PROGRESS: "Загрузка...", UPLOAD_SEND_FILE: "Отправить файл", UPLOAD_SHARE_LOCATION: "Поделиться местоположением", UPLOAD_ERROR: "Что-то пошло не так: такой файл не поддерживается или он слишком большой.", SHARE_LOCATION_ERROR: "Не удается поделиться местоположением: ", LOADING: "Загрузка...", HUB_EMPTY: "Здесь появится ваша история чата", HUB_SHOW_EARLIER: "Показать предыдущие чаты", INBOX_NO_CHATS_TITLE: "Пока нет чатов!", INBOX_NO_CHATS_BODY: "Как только у вас будет один или несколько разговоров, они появятся здесь.", ENABLE_TRANSLATION: "Переведите этот разговор на русский", DISABLE_TRANSLATION: "Show source", SEARCH_PLACEHOLDER_TEXT: "поиск...", SEARCH_SEARCHING: "Поиск...", SEARCH_NO_RESULTS: "Результаты не найдены", SEARCH_NO_MORE_RESULTS: "Больше результатов нет", CHAT_NOT_FOUND: "Чат не найден", DELETE_MESSAGE: "Удалить сообщение", DELETION_EXPLANATION: "Если вы удалите это сообщение, оно исчезнет для всех.", EDIT_MESSAGE: "Изменить сообщение", SAVE: "сохранить", EDITED_INDICATOR: "изменено", REPLY_TO_MESSAGE: "Ответить", ADD_REACTION: "Добавить реакцию", AUTH_EXPIRED_OVERLAY_TITLE: "Срок действия вашего сеанса чата истек", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "Обновите страницу, чтобы продолжить", VOICE_MESSAGE: "Голосовое сообщение", CONTACT_INFORMATION_HIDDEN: "Информация скрыта", LEAVE_CONVERSATION: "Выйти из беседы", MARK_CONVERSATION_AS_UNREAD: "Отметить как непрочитанное", REPLY_TO_ARIA_LABEL: T.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: T.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: T.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: T.translation.STATUS_INDICATOR_OFFLINE } }, Za = { code: "sq-AL", name: "Albanian", translation: { YESTERDAY: "Dje", TODAY: "Sot", DAYS: "d", HOURS: "o", MINUTES: "m", JUST_NOW: "Tani", LOCATION: "Pozicion", CANCEL: "Anulo", INBOX: "Inbox", DESKTOP_NOTIFICATIONS: "Njoftimet e shfletuesit", DESKTOP_NOTIFICATIONS_ERROR: "Nuk mund të aktivizohen njoftimet në shfletues sepse shfletuesi juaj i bllokon ato në mënyrë aktive. Provoni të shikoni cilësimet ose përdorni një shfletues të ndryshëm.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `${e} njoftime në desktop`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "Lënia e skedës së shfletuesit tuaj të hapur do të pop-up kur dikush flet me ju.", SEND_BUTTON_TEXT: "Dërgo", ENTRYBOX_TEXT_LIMIT: "Lejohen vetëm 10,000 karaktere", ENTRYBOX_PLACEHOLDER: "Thuaj diçka...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "Kjo bisedë nuk është më aktive.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "Mund të lexoni por jo të dërgoni mesazhe.", MESSAGELIST_LOADING_OLDER: "Duke ngarkuar mesazhe më të vjetra...", MESSAGELIST_SHOW_OLDER: "Trego mesazhe më të vjetra", MESSAGELIST_NEW_MARKER: "E ri", MESSAGE_SENT_VIA_EMAIL: "Ky mesazh u dërgua si email", YOU_MARKER: "ti", UPLOAD_IN_PROGRESS: "Ngarkim...", UPLOAD_SEND_FILE: "Dërgo datotekën", UPLOAD_SHARE_LOCATION: "Ndani lokacionin", UPLOAD_ERROR: "Na vjen keq, diçka nuk shkoi si duhet. Dosja mund të mos ket mbështetje ose mund të jetë shumë e madhe.", SHARE_LOCATION_ERROR: "Nuk mund të ndahet lokacioni: ", LOADING: "Ngarkim...", HUB_EMPTY: "Këtu do të paraqitet/ shfaqet historia e bisedës tuaj", HUB_SHOW_EARLIER: "Shfaqi bisedat e mëparshme", INBOX_NO_CHATS_TITLE: "Nuk ka biseda!", INBOX_NO_CHATS_BODY: "Pasi të keni një ose më shumë biseda, ato do të paraqiten/shfaqen këtu.", ENABLE_TRANSLATION: "Përkthejeni këtë bisedë në shqiptare", DISABLE_TRANSLATION: "Shikoni origjinalin", SEARCH_PLACEHOLDER_TEXT: "Kërko...", SEARCH_SEARCHING: "Kërko...", SEARCH_NO_RESULTS: "Nuk ka rezultate", SEARCH_NO_MORE_RESULTS: "Nuk ka më rezultate", CHAT_NOT_FOUND: "Biseda nuk u gjet", DELETE_MESSAGE: "Fshi mesazhin", DELETION_EXPLANATION: "Nëse e fshini këtë mesazh, ai do të zhduket për të gjithë.", EDIT_MESSAGE: "Redakto mesazhin", SAVE: "Ruaj", EDITED_INDICATOR: "redaktuar", REPLY_TO_MESSAGE: "Përgjigj", ADD_REACTION: "Shtoni reagimin", AUTH_EXPIRED_OVERLAY_TITLE: "Sesioni juaj i bisedës ka skaduar", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "Rifresko faqen për të vazhduar", VOICE_MESSAGE: "Mesazh zanor", CONTACT_INFORMATION_HIDDEN: "informacione të fshehura", LEAVE_CONVERSATION: "Largohu nga bashkëbisedimi", MARK_CONVERSATION_AS_UNREAD: "Shëno si të palexuar", REPLY_TO_ARIA_LABEL: T.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: T.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: T.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: T.translation.STATUS_INDICATOR_OFFLINE } }, Qa = { code: "sr-SP", name: "Serbian", translation: { YESTERDAY: "Juče", TODAY: "Danas", DAYS: "d", HOURS: "s", MINUTES: "m", JUST_NOW: "Upravo sad", LOCATION: "Lokacija", CANCEL: "Otkaži", INBOX: "Pretinac", DESKTOP_NOTIFICATIONS: "Browser Notifikacija", DESKTOP_NOTIFICATIONS_ERROR: "Browser notifikacije nisu omogućene jer ih vaš pregledač aktivno blokira. Pokušajte pogledati postavke ili koristiti neki drugi pregledač.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `${e} demo notifikacija`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "Ako karticu pregledača ostavite otvorenu, pojaviće se ovaj pop-up kada neko razgovara s vama.", SEND_BUTTON_TEXT: "Pošalji", ENTRYBOX_TEXT_LIMIT: "Dozvoljeno je samo 10.000 znakova.", ENTRYBOX_PLACEHOLDER: "Kaži nešto...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "Ovaj razgovor više nije aktivan.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "Možete da čitate, ali ne i da šaljete poruke.", MESSAGELIST_LOADING_OLDER: "Učitavam starije poruke...", MESSAGELIST_SHOW_OLDER: "Prikaži starije poruke", MESSAGELIST_NEW_MARKER: "Novo", MESSAGE_SENT_VIA_EMAIL: "Ova poruka je poslana imejlom", YOU_MARKER: "ti", UPLOAD_IN_PROGRESS: "Učitavam...", UPLOAD_SEND_FILE: "Pošalji datoteku", UPLOAD_SHARE_LOCATION: "Podeli lokaciju", UPLOAD_ERROR: "Nažalost, nešto je pošlo krivo. Datoteka možda nije podržana ili je prevelika.", SHARE_LOCATION_ERROR: "Nije moguće podeliti lokaciju: ", LOADING: "Učitavam...", HUB_EMPTY: "Ovde će biti prikazana istorija razgovora", HUB_SHOW_EARLIER: "Prikaži ranije razgovore", INBOX_NO_CHATS_TITLE: "Nema razgovora!", INBOX_NO_CHATS_BODY: "Nakon što vodite jedan ili više razgovora, oni će se pojaviti ovde.", ENABLE_TRANSLATION: "Prevedi ovaj razgovor na srpski jezik", DISABLE_TRANSLATION: "Prikaži original", SEARCH_PLACEHOLDER_TEXT: "Pretraži...", SEARCH_SEARCHING: "Pretraživanje...", SEARCH_NO_RESULTS: "Nema rezultata", SEARCH_NO_MORE_RESULTS: "Nema više rezultata", CHAT_NOT_FOUND: "Ćaskanje nije pronađeno", DELETE_MESSAGE: "Izbriši poruku", DELETION_EXPLANATION: "Ako obrišete ovu poruku, ona neće biti vidljiva ni za koga.", EDIT_MESSAGE: "Ispravi poruku", SAVE: "Sačuvaj", EDITED_INDICATOR: "ispravljeno", REPLY_TO_MESSAGE: "Odgovorite", ADD_REACTION: "Dodaj reakciju", AUTH_EXPIRED_OVERLAY_TITLE: "Vaša sesija ćaskanja je istekla", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "Osvežite stranicu da biste nastavili", VOICE_MESSAGE: "Glasovna poruka", CONTACT_INFORMATION_HIDDEN: "Sakrivene informacije", LEAVE_CONVERSATION: "Napusti razgovor", MARK_CONVERSATION_AS_UNREAD: "Označi kao nepročitanu", REPLY_TO_ARIA_LABEL: (e, t) => `Odgovarate korisniku ${e}: ${t}`, REPLY_MODE_LEAVE_ARIA_LABEL: "Izađi iz moda pisanja odgovora", STATUS_INDICATOR_ONLINE: "Aktivan", STATUS_INDICATOR_OFFLINE: "Neaktivan" } }, ei = { code: "sv-SE", name: "Swedish (Sweden)", translation: { YESTERDAY: "Igår", TODAY: "Idag", DAYS: "d", HOURS: "h", MINUTES: "m", JUST_NOW: "just nu", LOCATION: "Plats", CANCEL: "Avbryt", INBOX: "Inkorg", DESKTOP_NOTIFICATIONS: "Webbläsarnotiser", DESKTOP_NOTIFICATIONS_ERROR: "Kan inte aktivera webbläsarnotiser eftersom din webbläsare aktivt blockerar dem. Se över inställningarna eller använd en annan webbläsare.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `${e} demonotis`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "Om du har fliken i webbläsaren öppen så kommer den här notisen visas när någon pratar med dig.", SEND_BUTTON_TEXT: "Skicka", ENTRYBOX_TEXT_LIMIT: "Max 10 000 tecken är tillåtet.", ENTRYBOX_PLACEHOLDER: "Skriv ett meddelande...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "Den här konversationen är inte längre aktiv.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "Du kan läsa men inte skicka meddelanden.", MESSAGELIST_LOADING_OLDER: "Läser in tidigare meddelanden...", MESSAGELIST_SHOW_OLDER: "Visa tidigare meddelanden", MESSAGELIST_NEW_MARKER: "Nytt", MESSAGE_SENT_VIA_EMAIL: "Detta meddelande skickades via e-post", YOU_MARKER: "du", UPLOAD_IN_PROGRESS: "Laddar upp...", UPLOAD_SEND_FILE: "Skicka fil", UPLOAD_SHARE_LOCATION: "Dela plats", UPLOAD_ERROR: "Något gick fel vid uppladdningen. Filen kan vara av en typ som inte stöds eller är för stor.", SHARE_LOCATION_ERROR: "Kan inte dela plats: ", LOADING: "Laddar...", HUB_EMPTY: "Din chatthistorik kommer att visas här", HUB_SHOW_EARLIER: "Visa tidigare chattar", INBOX_NO_CHATS_TITLE: "Inga chattar ännu!", INBOX_NO_CHATS_BODY: "När du har haft en eller flera konversationer kommer de att visas här.", ENABLE_TRANSLATION: "Översätt den här konversationen till svenska", DISABLE_TRANSLATION: "Visa original", SEARCH_PLACEHOLDER_TEXT: "Sök...", SEARCH_SEARCHING: "Söker...", SEARCH_NO_RESULTS: "Inga resultat hittades", SEARCH_NO_MORE_RESULTS: "Inga fler resultat", CHAT_NOT_FOUND: "Chatten hittades inte", DELETE_MESSAGE: "Radera meddelandet", DELETION_EXPLANATION: "Om du raderar det här meddelandet försvinner det för alla.", EDIT_MESSAGE: "Redigera meddelandet", SAVE: "Spara", EDITED_INDICATOR: "redigerad", REPLY_TO_MESSAGE: "Svara", ADD_REACTION: "Lägg till reaktion", AUTH_EXPIRED_OVERLAY_TITLE: "Din chatsession har gått ut", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "Uppdatera sidan för att fortsätta", VOICE_MESSAGE: "Röstmeddelande", CONTACT_INFORMATION_HIDDEN: "Dold information", LEAVE_CONVERSATION: "Lämna konversationen", MARK_CONVERSATION_AS_UNREAD: "Markera som oläst", REPLY_TO_ARIA_LABEL: T.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: T.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: T.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: T.translation.STATUS_INDICATOR_OFFLINE } }, ti = { code: "tr-TR", name: "Turkish", translation: { YESTERDAY: "Dün", TODAY: "Bugün", DAYS: "g", HOURS: "s", MINUTES: "d", JUST_NOW: "az önce", LOCATION: "Konum", CANCEL: "İptal", INBOX: "Gelen Kutusu", SEND_BUTTON_TEXT: "Gönder", ENTRYBOX_TEXT_LIMIT: "En fazla 10.000 karaktere izin veriliyor.", ENTRYBOX_PLACEHOLDER: "Bir şeyler söyle...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "Bu konuşma artık aktif değil.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "Mesajları okuyabilirsiniz ancak mesaj gönderemezsiniz.", MESSAGELIST_LOADING_OLDER: "Eski mesajlar yükleniyor...", MESSAGELIST_SHOW_OLDER: "Eski mesajları göster", MESSAGELIST_NEW_MARKER: "Yeni", DESKTOP_NOTIFICATIONS: "Tarayıcı bildirimleri", DESKTOP_NOTIFICATIONS_ERROR: "Tarayıcınız aktif olarak engellediğinden tarayıcı bildirimlerini etkinleştiremiyoruz. Ayarları kontrol etmeyi veya farklı bir tarayıcı kullanmayı deneyebilirsiniz.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `${e} test bildirimi`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "Eğer tarayıcınızın penceresini açık tutarsanız biri mesaj yazdığında bu bildirimi göreceksiniz.", MESSAGE_SENT_VIA_EMAIL: "Bu mesaj e-posta ile gönderilmiştir.", YOU_MARKER: "siz", UPLOAD_IN_PROGRESS: "Yükleniyor...", UPLOAD_SEND_FILE: "Dosya gönder", UPLOAD_SHARE_LOCATION: "Konum paylaş", UPLOAD_ERROR: "Yükleme sırasında bir şeyler yanlış gitti. Dosya desteklenmiyor veya izin verilenden büyük olabilir.", SHARE_LOCATION_ERROR: "Konum paylaşılamadı: ", LOADING: "Yükleniyor...", HUB_EMPTY: "Konuşma geçmişiniz burada görünecek", HUB_SHOW_EARLIER: "Önceki konuşmaları göster", INBOX_NO_CHATS_TITLE: "Henüz konuşma yok!", INBOX_NO_CHATS_BODY: "Bir veya daha fazla konuşma başlattığınız konuşmalar burada belirecek.", ENABLE_TRANSLATION: "Bu konuşmayı Türkçe'ye çevir", DISABLE_TRANSLATION: "Orijinali göster", SEARCH_PLACEHOLDER_TEXT: "Ara...", SEARCH_SEARCHING: "Arıyor...", SEARCH_NO_RESULTS: "Sonuç bulunamadı", SEARCH_NO_MORE_RESULTS: "Başka sonuç bulunamadı.", CHAT_NOT_FOUND: "Sohbet bulunamadı", DELETE_MESSAGE: "Mesajı sil", DELETION_EXPLANATION: "Bu mesajı silerseniz herkes için görünmez olacaktır.", EDIT_MESSAGE: "Mesajı düzenle", SAVE: "Kaydet", EDITED_INDICATOR: "düzenlenmiş", REPLY_TO_MESSAGE: "Yanıtla", ADD_REACTION: "Tepki ekle", AUTH_EXPIRED_OVERLAY_TITLE: "Sohbet oturumunuz sona erdi", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "Devam etmek için sayfayı yenileyin", VOICE_MESSAGE: "Sesli mesaj", CONTACT_INFORMATION_HIDDEN: "Gizli bilgi", LEAVE_CONVERSATION: "Konuşmadan ayrıl", MARK_CONVERSATION_AS_UNREAD: "Okunmamış olarak işaretle", REPLY_TO_ARIA_LABEL: T.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: T.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: T.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: T.translation.STATUS_INDICATOR_OFFLINE } }, ni = { code: "uk-UA", name: "Ukrainian (Ukraine)", translation: { YESTERDAY: "Вчора", TODAY: "Сьогодні", DAYS: "d", HOURS: "h", MINUTES: "м", JUST_NOW: "просто зараз", LOCATION: "Місцезнаходження", CANCEL: "Скасувати", INBOX: "Вхідні", DESKTOP_NOTIFICATIONS: "Сповіщення в браузері", DESKTOP_NOTIFICATIONS_ERROR: "Неможливо ввімкнути сповіщення в браузері, оскільки ваш веб-переглядач активно їх блокує. Спробуйте переглянути налаштування або використовувати інший браузер.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `Демо-повідомлення про ${e}`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "Якщо ви відкриєте вкладку веб-переглядача відкритою, ви побачите це спливаюче вікно, коли хтось спілкується з вами.", SEND_BUTTON_TEXT: "Надіслати", ENTRYBOX_TEXT_LIMIT: "Дозволено лише 10 000 символів.", ENTRYBOX_PLACEHOLDER: "Скажи щось...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "Ця розмова більше не активна.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "Ви можете читати, але не надсилати повідомлення.", MESSAGELIST_LOADING_OLDER: "Завантаження старих повідомлень...", MESSAGELIST_SHOW_OLDER: "Показати старіші повідомлення", MESSAGELIST_NEW_MARKER: "Нові", MESSAGE_SENT_VIA_EMAIL: "Це повідомлення надіслано електронною поштою", YOU_MARKER: "ти", UPLOAD_IN_PROGRESS: "Завантаження...", UPLOAD_SEND_FILE: "Надіслати файл", UPLOAD_SHARE_LOCATION: "Поділитися місцезнаходженням", UPLOAD_ERROR: "На жаль, під час завантаження щось не вдалось. Файл може бути непідтримуваним або занадто великим.", SHARE_LOCATION_ERROR: "Неможливо поділити місцезнаходження: ", LOADING: "Завантаження...", HUB_EMPTY: "Тут відобразиться ваша історія чатів", HUB_SHOW_EARLIER: "Показати попередні чати", INBOX_NO_CHATS_TITLE: "Чатів ще немає!", INBOX_NO_CHATS_BODY: "Після того, як ви проведете одну чи кілька бесід, вони з’являться тут.", ENABLE_TRANSLATION: "Перекласти цю розмову англійською", DISABLE_TRANSLATION: "Показати оригінал", SEARCH_PLACEHOLDER_TEXT: "Пошук...", SEARCH_SEARCHING: "Пошук...", SEARCH_NO_RESULTS: "Не знайдено результатів", SEARCH_NO_MORE_RESULTS: "Більше немає результатів", CHAT_NOT_FOUND: "Чат не знайдено", DELETE_MESSAGE: "Видалити повідомлення", DELETION_EXPLANATION: "Якщо ви видалите це повідомлення, воно зникне для всіх.", EDIT_MESSAGE: "Редагувати повідомлення", SAVE: "Зберегти", EDITED_INDICATOR: "відредаговано", REPLY_TO_MESSAGE: "Відповісти", ADD_REACTION: "Додати реакцію", AUTH_EXPIRED_OVERLAY_TITLE: "Ваша сесія в чаті закінчилась", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "Оновіть сторінку, щоб продовжити", VOICE_MESSAGE: "Голосове повідомлення", CONTACT_INFORMATION_HIDDEN: "Прихована інформація", LEAVE_CONVERSATION: "Залишити розмову", MARK_CONVERSATION_AS_UNREAD: "Відзначити як непрочитане", REPLY_TO_ARIA_LABEL: T.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: T.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: T.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: T.translation.STATUS_INDICATOR_OFFLINE } }, ai = { code: "vi-VN", name: "Vietnamese", translation: { YESTERDAY: "Hôm qua", TODAY: "Hôm nay", DAYS: "ngày", HOURS: "giờ", MINUTES: "phút", JUST_NOW: "vừa xong", LOCATION: "Địa điểm", CANCEL: "Hủy", INBOX: "Hộp thư đến", DESKTOP_NOTIFICATIONS: "Thông báo trình duyệt", DESKTOP_NOTIFICATIONS_ERROR: "Không thể bật thông báo trên trình duyệt vì trình duyệt của bạn đang tắt chức năng này. Hãy thử tìm trong cài đặt trình duyệt hoặc sử dụng một trình duyệt khác.", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `${e} thông báo thử nghiệm`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "Nếu bạn giữ tab trình duyệt của bạn mở, bạn sẽ thấy cửa sổ bật lên khi ai đó nói chuyện với bạn.", SEND_BUTTON_TEXT: "Gửi", ENTRYBOX_TEXT_LIMIT: "Tối đa 10.000 ký tự.", ENTRYBOX_PLACEHOLDER: "Nói gì đó...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "Cuộc hội thoại này không còn hoạt động.", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "Bạn có thể đọc, nhưng không thể gửi tin nhắn.", MESSAGELIST_LOADING_OLDER: "Đang tải tin nhắn cũ...", MESSAGELIST_SHOW_OLDER: "Hiển thị tin nhắn trước đó", MESSAGELIST_NEW_MARKER: "Mới", MESSAGE_SENT_VIA_EMAIL: "Tin nhắn này đã được gửi qua email", YOU_MARKER: "bạn", UPLOAD_IN_PROGRESS: "Đang tải lên...", UPLOAD_SEND_FILE: "Gửi tệp", UPLOAD_SHARE_LOCATION: "Chia sẻ vị trí", UPLOAD_ERROR: "Thật không may, quá trình tải lên không thành công. Tệp không được hỗ trợ hoặc quá lớn.", SHARE_LOCATION_ERROR: "Không thể chia sẻ vị trí: ", LOADING: "Đang tải...", HUB_EMPTY: "Lịch sử trò chuyện của bạn sẽ hiển thị ở đây", HUB_SHOW_EARLIER: "Hiển thị các cuộc trò chuyện trước đó", INBOX_NO_CHATS_TITLE: "Chưa có cuộc trò chuyện nào!", INBOX_NO_CHATS_BODY: "Khi bạn đã có một hoặc nhiều cuộc trò chuyện, chúng sẽ hiển thị ở đây.", ENABLE_TRANSLATION: "Dịch cuộc hội thoại sang Tiếng Việt", DISABLE_TRANSLATION: "Hiển thị nội dung gốc", SEARCH_PLACEHOLDER_TEXT: "TÌm kiếm...", SEARCH_SEARCHING: "Đang tìm kiếm...", SEARCH_NO_RESULTS: "Không tìm thấy kết quả nào", SEARCH_NO_MORE_RESULTS: "Không có kết quả nào khác", CHAT_NOT_FOUND: "Không tìm thấy cuộc trò chuyện", DELETE_MESSAGE: "Xóa tin nhắn", DELETION_EXPLANATION: "Nếu bạn xóa tin nhắn này, tất cả mọi người sẽ không còn thấy nó.", EDIT_MESSAGE: "Chỉnh sửa tin nhắn", SAVE: "lưu", EDITED_INDICATOR: "đã chỉnh sửa", REPLY_TO_MESSAGE: "đáp lại", ADD_REACTION: "Thêm biểu tượng cảm xúc", AUTH_EXPIRED_OVERLAY_TITLE: "Phiên trò chuyện của bạn đã hết hạn", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "Hãy làm mới trang để tiếp tục", VOICE_MESSAGE: "Tin nhắn thoại", CONTACT_INFORMATION_HIDDEN: "Thông tin ẩn", LEAVE_CONVERSATION: "Thoát khỏi cuộc trò chuyện", MARK_CONVERSATION_AS_UNREAD: "Đánh dấu là chưa đọc", REPLY_TO_ARIA_LABEL: T.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: T.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: T.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: T.translation.STATUS_INDICATOR_OFFLINE } }, ii = { code: "zh-CN", name: "Chinese (Simplified)", translation: { YESTERDAY: "昨天", TODAY: "今天", DAYS: "天", HOURS: "小时", MINUTES: "分钟", JUST_NOW: "刚才", LOCATION: "地点", CANCEL: "取消", INBOX: "收件箱", DESKTOP_NOTIFICATIONS: "浏览器通知", DESKTOP_NOTIFICATIONS_ERROR: "因浏览器设置为阻止,所以无法激活浏览器提醒。请去设置里查看或者尝试其他的浏览器。", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `${e} 演示提醒`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "只要保持浏览器开着,如果有人和你对话,将会自动弹出对话窗口。", SEND_BUTTON_TEXT: "发送", ENTRYBOX_TEXT_LIMIT: "不超过10,000个字符。", ENTRYBOX_PLACEHOLDER: "写点什么吧……", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "该对话已结束。", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "你只能阅读信息,不能发送信息。", MESSAGELIST_LOADING_OLDER: "载入之前的信息……", MESSAGELIST_SHOW_OLDER: "显示之前的信息", MESSAGELIST_NEW_MARKER: "新消息", MESSAGE_SENT_VIA_EMAIL: "该信息已通过邮件发送。", YOU_MARKER: "你", UPLOAD_IN_PROGRESS: "上传中……", UPLOAD_SEND_FILE: "发送文件", UPLOAD_SHARE_LOCATION: "分享地址", UPLOAD_ERROR: "上传出错。文件格式不支持或者太大。", SHARE_LOCATION_ERROR: "无法分享地址: ", LOADING: "正在载入……", HUB_EMPTY: "你的聊天记录将在此显示。", HUB_SHOW_EARLIER: "显示之前的聊天记录。", INBOX_NO_CHATS_TITLE: "暂无任何聊天记录!", INBOX_NO_CHATS_BODY: "如果你有一个或多个对话窗口进行中,将显示在这里。", ENABLE_TRANSLATION: "翻译至简体中文", DISABLE_TRANSLATION: "查看原文", SEARCH_PLACEHOLDER_TEXT: "搜索...", SEARCH_SEARCHING: "正在搜索...", SEARCH_NO_RESULTS: "未找到结果", SEARCH_NO_MORE_RESULTS: "无更多结果", CHAT_NOT_FOUND: "未找到“聊天”", DELETE_MESSAGE: "删除消息", DELETION_EXPLANATION: "如果您删除此消息,那么所有人都将无法再看到它。", EDIT_MESSAGE: "编辑消息", SAVE: "保存", EDITED_INDICATOR: "本消息有改动", REPLY_TO_MESSAGE: "回复", ADD_REACTION: "添加反应", AUTH_EXPIRED_OVERLAY_TITLE: "您的聊天会话已过期", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "刷新页面以继续", VOICE_MESSAGE: "语音消息", CONTACT_INFORMATION_HIDDEN: "隐藏信息", LEAVE_CONVERSATION: "离开对话", MARK_CONVERSATION_AS_UNREAD: "标记为未读", REPLY_TO_ARIA_LABEL: T.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: T.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: T.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: T.translation.STATUS_INDICATOR_OFFLINE } }, si = { code: "zh-TW", name: "Chinese (Traditional)", translation: { YESTERDAY: "昨天", TODAY: "昨天", DAYS: "天", HOURS: "小時", MINUTES: "分", JUST_NOW: "現在", LOCATION: "地點", CANCEL: "取消", INBOX: "收件箱", DESKTOP_NOTIFICATIONS: "瀏覽器通知", DESKTOP_NOTIFICATIONS_ERROR: "無法啟用瀏覽器通知,因為您的瀏覽器主動阻止它們。 嘗試查看設置或使用其他瀏覽器。", DESKTOP_NOTIFICATIONS_DEMO_TITLE: (e) => `${e} 演示通知`, DESKTOP_NOTIFICATIONS_DEMO_BODY: "如果您持續打開瀏覽器標籤頁,當有人與您通話時,您會看到此彈出窗口。", SEND_BUTTON_TEXT: "發送", ENTRYBOX_TEXT_LIMIT: "只允許10.000個字符。", ENTRYBOX_PLACEHOLDER: "說些什麼...", ENTRYBOX_PLACEHOLDER_CHAT_CLOSED: "此對話不再有效。", ENTRYBOX_PLACEHOLDER_CHAT_READONLY: "您可以閱讀,但不能發送消息。", MESSAGELIST_LOADING_OLDER: "加載舊訊息...", MESSAGELIST_SHOW_OLDER: "顯示較舊的訊息", MESSAGELIST_NEW_MARKER: "新的", MESSAGE_SENT_VIA_EMAIL: "此訊息是通過電郵發送的", YOU_MARKER: "您", UPLOAD_IN_PROGRESS: "上傳中...", UPLOAD_SEND_FILE: "發送文件", UPLOAD_SHARE_LOCATION: "共享位置", UPLOAD_ERROR: "不幸的是,上傳出了問題。 該文件可能不受支持或太大。", SHARE_LOCATION_ERROR: "無法分享位置:", LOADING: "載入中...", HUB_EMPTY: "您的聊天記錄將顯示在此處", HUB_SHOW_EARLIER: "顯示早先的聊天記錄", INBOX_NO_CHATS_TITLE: "還沒聊天!", INBOX_NO_CHATS_BODY: "一旦您進行了一次或多次對話,他們就會顯示在此處。", ENABLE_TRANSLATION: "翻譯此對話至繁體中文", DISABLE_TRANSLATION: "顯示原文", SEARCH_PLACEHOLDER_TEXT: "搜尋...", SEARCH_SEARCHING: "正在搜尋...", SEARCH_NO_RESULTS: "找不到任何結果", SEARCH_NO_MORE_RESULTS: "沒有其他結果", CHAT_NOT_FOUND: "查無對話", DELETE_MESSAGE: "刪除訊息", DELETION_EXPLANATION: "您如果刪除這條訊息,所有人都將看不到它。", EDIT_MESSAGE: "編輯訊息", SAVE: "儲存", EDITED_INDICATOR: "已編輯", REPLY_TO_MESSAGE: "回覆", ADD_REACTION: "加入表情回應", AUTH_EXPIRED_OVERLAY_TITLE: "您的會話過程已過期", AUTH_EXPIRED_OVERLAY_DESCRIPTION: "請刷新頁面以繼續", VOICE_MESSAGE: "語音訊息", CONTACT_INFORMATION_HIDDEN: "隱藏訊息", LEAVE_CONVERSATION: "離開對話", MARK_CONVERSATION_AS_UNREAD: "標記為未讀", REPLY_TO_ARIA_LABEL: T.translation.REPLY_TO_ARIA_LABEL, REPLY_MODE_LEAVE_ARIA_LABEL: T.translation.REPLY_MODE_LEAVE_ARIA_LABEL, STATUS_INDICATOR_ONLINE: T.translation.STATUS_INDICATOR_ONLINE, STATUS_INDICATOR_OFFLINE: T.translation.STATUS_INDICATOR_OFFLINE } }, dt = { ar: pa, bg: ha, bs: Da, ca: Ca, cs: ga, da: va, de: fa, el: ka, en: T, es: Ma, et: Pa, fa: Ha, fi: Ua, fr: ba, he: ya, hi: Ba, hr: wa, hu: Ya, id: $a, is: ja, it: Fa, ja: Va, ka: xa, ko: Xa, nb: Ga, nl: za, pl: Ka, pt: Wa, ro: qa, ru: Ja, sq: Za, sr: Qa, sv: ei, tr: ti, uk: ni, vi: ai, zh: ii, zhTw: si };
132
132
  function nn(e) {
133
133
  const t = e.replace(/_/g, "-").toLowerCase(), n = dt[t];
134
134
  if (n) return { ...n.translation, locale: t };
135
135
  const a = t.slice(0, 2), i = dt[a];
136
- return i ? { ...i.translation, locale: a } : (q.warn(`User locale '${e}' not supported; falling back to English.`), { ...O.translation, locale: "en-US" });
136
+ return i ? { ...i.translation, locale: a } : (q.warn(`User locale '${e}' not supported; falling back to English.`), { ...T.translation, locale: "en-US" });
137
137
  }
138
138
  class an extends Error {
139
139
  }
140
140
  function St(e, t) {
141
141
  if (!e) throw new an(t != null ? t : "Assertion failed");
142
142
  }
143
- const k = Object.assign(St, { is: function(e, t, n) {
143
+ const M = Object.assign(St, { is: function(e, t, n) {
144
144
  return St(t, n);
145
145
  }, unreachable: function() {
146
146
  throw new Error("Unreachable code");
@@ -234,10 +234,10 @@ class ln extends En {
234
234
  constructor(t, n) {
235
235
  super(t, n), this.messageSubscription = null, this.readyForNewMessagesPromise = Promise.resolve(), this.participantSubscription = null, this.onlineSubscriptions = {}, this.state$ = H({ extCurrentConversationId: null, editor: { isEmpty: !0, isTyping: !1, atTextLimit: !1, characterCount: 0, showEmojiPicker: !1, suggestEmojiQuery: void 0, suggestMentionQuery: void 0 }, referencedMessageId: null, editingMessageId: null, currentConversation: null, visibility: { isInView: !1, tabFocused: !0 }, messages: {}, participants: {}, typing: {}, isUserConnected: {}, ephemeralMessages: {}, ephemeralMessageIdMapping: {}, localFileBlobUrls: {}, userPermissions: () => {
236
236
  const a = this.app$.role.general.get(), i = this.app$.role.permissions.get();
237
- return k.defined(a), k.defined(i), { showTypingIndicator: a.showTypingIndicators, canShareFile: a.enableFileTransfers, canShareLocation: a.enableLocation, canMention: a.enableMentions, showOnlineStatus: a.enablePresence !== !1, canSendVoiceMessage: a.enableVoiceRecording, canLeaveConversation: i.conversations.leave === "all", canMarkConversationAsUnread: i.conversations.markAsUnread === "all" };
237
+ return M.defined(a), M.defined(i), { showTypingIndicator: a.showTypingIndicators, canShareFile: a.enableFileTransfers, canShareLocation: a.enableLocation, canMention: a.enableMentions, showOnlineStatus: a.enablePresence !== !1, canSendVoiceMessage: a.enableVoiceRecording, canLeaveConversation: i.conversations.leave === "all", canMarkConversationAsUnread: i.conversations.markAsUnread === "all" };
238
238
  }, messagePermissions: () => {
239
239
  const a = this.app$.role.permissions.get();
240
- k.defined(a);
240
+ M.defined(a);
241
241
  const i = this.state$.userPermissions.get(), s = { ...oi, ...i }, r = { canReplyToMessage: Q(a.messages.reply, !0), canEditMessage: Q(a.messages.edit, !0), canDeleteMessage: Q(a.messages.delete, !0), canAddReaction: Q(a.messages.emojiReactions, !0), ...i }, o = { ...r, canEditMessage: !1 }, E = { canReplyToMessage: Q(a.messages.reply, !1), canEditMessage: Q(a.messages.edit, !1), canDeleteMessage: Q(a.messages.delete, !1), canAddReaction: Q(a.messages.emojiReactions, !1), ...i };
242
242
  return { system: s, own: r, ownWithoutEditing: o, other: E, otherWithoutEditing: { ...E, canEditMessage: !1 } };
243
243
  } }), this.locale$ = H(() => {
@@ -248,35 +248,35 @@ class ln extends En {
248
248
  const a = this.state$.extCurrentConversationId.get(), i = this.state$.referencedMessageId.get();
249
249
  return a && i ? this.state$.messages.child(a).lookup.child(i).get() : null;
250
250
  }), this.chatItems$ = H(() => {
251
- var I, _;
251
+ var S, A;
252
252
  const a = this.state$.extCurrentConversationId.get();
253
253
  if (!a) return [];
254
- const i = this.state$.currentConversation.readUntil.get(), s = (I = this.state$.messages.child(a).state.get()) != null ? I : [], r = Object.values((_ = this.state$.ephemeralMessages.child(a).get()) != null ? _ : {}), o = (r.length === 0 ? s : r.concat(s).sort((A, d) => d.createdAt - A.createdAt)).map((A) => {
255
- const d = A.content[0], N = d == null ? void 0 : d.type;
256
- if (!d || N !== "file") return A;
254
+ const i = this.state$.currentConversation.readUntil.get(), s = (S = this.state$.messages.child(a).state.get()) != null ? S : [], r = Object.values((A = this.state$.ephemeralMessages.child(a).get()) != null ? A : {}), o = (r.length === 0 ? s : r.concat(s).sort((O, d) => d.createdAt - O.createdAt)).map((O) => {
255
+ const d = O.content[0], N = d == null ? void 0 : d.type;
256
+ if (!d || N !== "file") return O;
257
257
  const m = d.size + "," + d.filename, R = this.state$.localFileBlobUrls.child(a).child(m).url.get();
258
- return R ? { ...A, content: [{ ...d, url: R }] } : A;
258
+ return R ? { ...O, content: [{ ...d, url: R }] } : O;
259
259
  });
260
260
  let E = null, l = 0, c = !1;
261
- const T = [];
262
- for (const A of o) {
263
- const d = new Date(A.createdAt), N = new Date(d).setHours(0, 0, 0, 0), m = l && N !== l, R = d.getTime() > i, L = !(!c || R || E != null && E.id.startsWith("ephemeral"));
264
- (L || m) && T.push(new Qe({ id: "border-before-" + A.id, isDayMarker: !!m, isReadMarker: !!L, timestamp: m ? l : void 0 })), T.push(A), c = R, l = N, E = A;
261
+ const _ = [];
262
+ for (const O of o) {
263
+ const d = new Date(O.createdAt), N = new Date(d).setHours(0, 0, 0, 0), m = l && N !== l, R = d.getTime() > i, L = !(!c || R || E != null && E.id.startsWith("ephemeral"));
264
+ (L || m) && _.push(new Qe({ id: "border-before-" + O.id, isDayMarker: !!m, isReadMarker: !!L, timestamp: m ? l : void 0 })), _.push(O), c = R, l = N, E = O;
265
265
  }
266
- return function(A, d) {
266
+ return function(O, d) {
267
267
  const N = [];
268
268
  let m = [];
269
269
  const R = Symbol("NO_KEY");
270
270
  let L = R;
271
- for (const p of A) {
271
+ for (const p of O) {
272
272
  const C = d(p);
273
273
  L === R || L === C ? m.push(p) : (N.push(m), m = [p]), L = C;
274
274
  }
275
275
  return m.length !== 0 && N.push(m), N;
276
- }(T, (A) => {
276
+ }(_, (O) => {
277
277
  var d;
278
- return A instanceof Qe ? A.id : (d = A.sender) == null ? void 0 : d.id;
279
- }).map((A) => (A.id = A.map((d) => d.id).join(","), A));
278
+ return O instanceof Qe ? O.id : (d = O.sender) == null ? void 0 : d.id;
279
+ }).map((O) => (O.id = O.map((d) => d.id).join(","), O));
280
280
  }), this.mentionableUsers$ = H(() => {
281
281
  const a = this.state$.extCurrentConversationId.get(), i = this.extUserId$.get();
282
282
  if (!a || !i) return [];
@@ -306,28 +306,28 @@ class ln extends En {
306
306
  le(() => {
307
307
  var E;
308
308
  const i = n.reduce((l, c) => (l[c.id] = c, l), {}), s = this.state$.extCurrentConversationId.peek(), r = this.extUserId$.peek();
309
- k(r && s), this.state$.messages.child(t).set({ state: n, lookup: i, loadedAll: a });
309
+ M(r && s), this.state$.messages.child(t).set({ state: n, lookup: i, loadedAll: a });
310
310
  const o = this.state$.ephemeralMessages.child(t);
311
311
  for (const l of n) {
312
312
  const c = this.state$.ephemeralMessageIdMapping.child(t).child(l.id).peek();
313
313
  c && o.child(c).delete();
314
- const T = l.content[0];
315
- if (((E = l.sender) == null ? void 0 : E.id) !== r || T.type !== "file") continue;
316
- const I = T.size + "," + T.filename, _ = this.state$.localFileBlobUrls.child(s).child(I);
317
- if (_.fetching.peek() !== !1) continue;
318
- const A = () => _.delete();
319
- if (T.subtype === "image") {
320
- _.fetching.set(!0);
314
+ const _ = l.content[0];
315
+ if (((E = l.sender) == null ? void 0 : E.id) !== r || _.type !== "file") continue;
316
+ const S = _.size + "," + _.filename, A = this.state$.localFileBlobUrls.child(s).child(S);
317
+ if (A.fetching.peek() !== !1) continue;
318
+ const O = () => A.delete();
319
+ if (_.subtype === "image") {
320
+ A.fetching.set(!0);
321
321
  const d = document.createElement("img");
322
- d.addEventListener("load", A, { once: !0 }), d.src = T.url;
323
- } else if (T.subtype === "video") {
324
- _.fetching.set(!0);
322
+ d.addEventListener("load", O, { once: !0 }), d.src = _.url;
323
+ } else if (_.subtype === "video") {
324
+ A.fetching.set(!0);
325
325
  const d = document.createElement("video");
326
- d.addEventListener("loaddata", A, { once: !0 }), d.src = T.url;
327
- } else if (T.subtype === "audio") {
328
- _.fetching.set(!0);
326
+ d.addEventListener("loaddata", O, { once: !0 }), d.src = _.url;
327
+ } else if (_.subtype === "audio") {
328
+ A.fetching.set(!0);
329
329
  const d = document.createElement("audio");
330
- d.addEventListener("loaddata", A, { once: !0 }), d.src = T.url;
330
+ d.addEventListener("loaddata", O, { once: !0 }), d.src = _.url;
331
331
  }
332
332
  }
333
333
  });
@@ -341,8 +341,8 @@ class Qe {
341
341
  this.id = t, this.isDayMarker = n, this.isReadMarker = a, this.timestamp = n ? i : void 0;
342
342
  }
343
343
  }
344
- function be(e) {
345
- const t = M();
344
+ function ye(e) {
345
+ const t = k();
346
346
  return u(t instanceof ln ? Ei : li, { ...e });
347
347
  }
348
348
  function Ei(e) {
@@ -354,7 +354,7 @@ function li(e) {
354
354
  return u(t.Icon, { common: n, ...e });
355
355
  }
356
356
  function et({ src: e, onError: t, filename: n, className: a = "" }) {
357
- const i = b(null), s = b(), r = b(), [o, E] = y(!1), [l, c] = y(0), [T, I] = y(1), _ = b(), [A, d] = y(!1);
357
+ const i = B(null), s = B(), r = B(), [o, E] = b(!1), [l, c] = b(0), [_, S] = b(1), A = B(), [O, d] = b(!1);
358
358
  v(() => {
359
359
  s.current = new Audio();
360
360
  const R = { normalize: !0, height: 50, container: i.current };
@@ -370,33 +370,33 @@ function et({ src: e, onError: t, filename: n, className: a = "" }) {
370
370
  const D = s.current;
371
371
  D.addEventListener("error", L), D.src = e, D.preload = "auto", D.preservesPitch = !0, R.media = D;
372
372
  }
373
- _.current = function(D) {
374
- var $, g, w, ue, ne, de, X, K;
373
+ A.current = function(D) {
374
+ var $, g, Y, ue, ne, de, X, K;
375
375
  if (!D.container) return;
376
376
  const h = getComputedStyle(D.container), P = ($ = pe.parse(h.color)) != null ? $ : new pe(255, 255, 255, 1), F = P.withAlpha(P.alpha / 2);
377
- return Kn.create({ ...D, barGap: (g = D.barGap) != null ? g : 2, barRadius: (w = D.barRadius) != null ? w : 0, barWidth: (ue = D.barWidth) != null ? ue : 2, barHeight: D.barHeight, hideScrollbar: !0, cursorWidth: (ne = D.cursorWidth) != null ? ne : 0, cursorColor: D.cursorColor, height: (de = D.height) != null ? de : 24, progressColor: (X = D.progressColor) != null ? X : F.toRgbaString(), waveColor: (K = D.waveColor) != null ? K : F.toRgbaString() });
377
+ return Kn.create({ ...D, barGap: (g = D.barGap) != null ? g : 2, barRadius: (Y = D.barRadius) != null ? Y : 0, barWidth: (ue = D.barWidth) != null ? ue : 2, barHeight: D.barHeight, hideScrollbar: !0, cursorWidth: (ne = D.cursorWidth) != null ? ne : 0, cursorColor: D.cursorColor, height: (de = D.height) != null ? de : 24, progressColor: (X = D.progressColor) != null ? X : F.toRgbaString(), waveColor: (K = D.waveColor) != null ? K : F.toRgbaString() });
378
378
  }(R);
379
- const C = _.current;
379
+ const C = A.current;
380
380
  return C.on("finish", () => {
381
381
  s.current.loop = !0, E(!1);
382
382
  }), C.on("ready", (D) => c(Math.trunc(D))), C.on("timeupdate", (D) => c(Math.trunc(D))), R.backend === "WebAudio" && C.load(e).catch(() => {
383
383
  d(!0), E(!1), t == null || t();
384
384
  }), () => {
385
385
  var D;
386
- (D = s.current) == null || D.removeEventListener("error", L), s.current = void 0, C.destroy(), _.current = void 0;
386
+ (D = s.current) == null || D.removeEventListener("error", L), s.current = void 0, C.destroy(), A.current = void 0;
387
387
  };
388
388
  }, [e, n, t]);
389
- const N = U(() => {
389
+ const N = y(() => {
390
390
  var R;
391
- if (_.current.options.backend === "WebAudio") _.current.isPlaying() || r.current.play(), _.current.playPause(), E((R = _.current.isPlaying()) != null ? R : !1);
391
+ if (A.current.options.backend === "WebAudio") A.current.isPlaying() || r.current.play(), A.current.playPause(), E((R = A.current.isPlaying()) != null ? R : !1);
392
392
  else {
393
393
  const L = s.current;
394
394
  L.paused ? L.play() : L.pause(), L.loop = !1, !L.paused && L.ended && (L.load(), L.play()), E(!L.paused);
395
395
  }
396
- }, []), m = U((R) => {
397
- _.current.setPlaybackRate(R), I(R);
396
+ }, []), m = y((R) => {
397
+ A.current.setPlaybackRate(R), S(R);
398
398
  }, []);
399
- return A ? u("div", {}) : x("div", { className: `t-audio-player ${a}`, children: [u("button", { onClick: N, children: u(be, { className: "t-play-pause-icon", type: o ? "pause" : "play", "aria-label": o ? "pause audio" : "play audio" }) }), u("div", { className: "t-waveform", ref: i }), u("div", { className: "t-duration", children: kn(l) }), x(Re, { type: "menu", popoverComponent: _i, popoverProps: { playbackSpeed: T, selectPlaybackSpeed: m }, className: "t-playback-speed", "aria-label": "set playback speed", children: [T, "x", u(be, { type: "updown", className: "t-up-down-icon", "aria-hidden": !0 })] })] });
399
+ return O ? u("div", {}) : x("div", { className: `t-audio-player ${a}`, children: [u("button", { onClick: N, children: u(ye, { className: "t-play-pause-icon", type: o ? "pause" : "play", "aria-label": o ? "pause audio" : "play audio" }) }), u("div", { className: "t-waveform", ref: i }), u("div", { className: "t-duration", children: kn(l) }), x(Re, { type: "menu", popoverComponent: _i, popoverProps: { playbackSpeed: _, selectPlaybackSpeed: m }, className: "t-playback-speed", "aria-label": "set playback speed", children: [_, "x", u(ye, { type: "updown", className: "t-up-down-icon", "aria-hidden": !0 })] })] });
400
400
  }
401
401
  const ci = [0.25, 0.5, 0.75, 1, 1.25, 1.5, 2];
402
402
  function _i({ playbackSpeed: e, selectPlaybackSpeed: t }) {
@@ -424,16 +424,16 @@ class pe {
424
424
  return i !== 1 ? `rgba(${t}, ${n}, ${a}, ${i})` : `rgb(${t}, ${n}, ${a})`;
425
425
  }
426
426
  }
427
- const B = new qn({ nodes: { doc: { content: "paragraph+" }, paragraph: { code: !0, content: "inline*", parseDOM: [{ tag: "p" }], toDOM: () => ["p", 0] }, text: { group: "inline" }, mention: { group: "inline", inline: !0, attrs: { id: {}, name: {} }, content: "text*", toDOM: (e) => ["span", { "data-mention-id": e.attrs.id, class: "t-mention" }, `@${e.attrs.name}`], parseDOM: [{ tag: "span[data-mention-id]", getAttrs: (e) => ({ id: e.dataset["mention-id"] }) }] }, customemoji: { group: "inline", inline: !0, attrs: { name: {}, url: {} }, content: "text*", selectable: !1, toDOM: (e) => ["img", { src: e.attrs.url, alt: e.attrs.name, "data-custom-emoji": e.attrs.name }], parseDOM: [{ tag: "img[data-custom-emoji]", getAttrs: (e) => {
427
+ const w = new qn({ nodes: { doc: { content: "paragraph+" }, paragraph: { code: !0, content: "inline*", parseDOM: [{ tag: "p" }], toDOM: () => ["p", 0] }, text: { group: "inline" }, mention: { group: "inline", inline: !0, attrs: { id: {}, name: {} }, content: "text*", toDOM: (e) => ["span", { "data-mention-id": e.attrs.id, class: "t-mention" }, `@${e.attrs.name}`], parseDOM: [{ tag: "span[data-mention-id]", getAttrs: (e) => ({ id: e.dataset["mention-id"] }) }] }, customemoji: { group: "inline", inline: !0, attrs: { name: {}, url: {} }, content: "text*", selectable: !1, toDOM: (e) => ["img", { src: e.attrs.url, alt: e.attrs.name, "data-custom-emoji": e.attrs.name }], parseDOM: [{ tag: "img[data-custom-emoji]", getAttrs: (e) => {
428
428
  const t = e;
429
429
  return { name: t.dataset.customEmoji, url: t.src };
430
- } }] } }, marks: { literal: { toDOM: () => ["span", { "data-literal": "" }], parseDOM: [{ tag: "span[data-literal]" }] }, bold: { toDOM: () => ["b"], parseDOM: [{ tag: "b" }] }, italic: { toDOM: () => ["i"], parseDOM: [{ tag: "i" }] }, strikethrough: { toDOM: () => ["del"], parseDOM: [{ tag: "del" }] }, emoji: { attrs: { emoji: {} }, toDOM: (e) => ["span", { "data-emoji": e.attrs.emoji }, e.attrs.emoji], parseDOM: [{ tag: "span[data-emoji]", getAttrs: (e) => ({ emoji: e.dataset.emoji }) }] } } }), Xe = new xt("placeholder"), Nt = new Xt({ key: Xe, props: { decorations(e) {
430
+ } }] } }, marks: { literal: { toDOM: () => ["span", { "data-literal": "" }], parseDOM: [{ tag: "span[data-literal]" }] }, bold: { toDOM: () => ["b"], parseDOM: [{ tag: "b" }] }, italic: { toDOM: () => ["i"], parseDOM: [{ tag: "i" }] }, strikethrough: { toDOM: () => ["del"], parseDOM: [{ tag: "del" }] }, emoji: { attrs: { emoji: {} }, toDOM: (e) => ["span", { "data-emoji": e.attrs.emoji }, e.attrs.emoji], parseDOM: [{ tag: "span[data-emoji]", getAttrs: (e) => ({ emoji: e.dataset.emoji }) }] } } }), Ge = new xt("placeholder"), Nt = new Xt({ key: Ge, props: { decorations(e) {
431
431
  if (cn(e.doc)) return;
432
- const t = e.doc.firstChild, n = Ft.node(0, t.nodeSize, { class: "empty-node", "data-placeholder": Xe.getState(e) });
432
+ const t = e.doc.firstChild, n = Ft.node(0, t.nodeSize, { class: "empty-node", "data-placeholder": Ge.getState(e) });
433
433
  return Vt.create(e.doc, [n]);
434
434
  } }, state: { init: () => "", apply: (e, t) => {
435
435
  var n;
436
- return (n = e.getMeta(Xe)) != null ? n : t;
436
+ return (n = e.getMeta(Ge)) != null ? n : t;
437
437
  } } });
438
438
  function cn(e) {
439
439
  return e.childCount !== 1 || e.firstChild.childCount !== 0;
@@ -565,7 +565,7 @@ const mi = J(/(?:^|\n)(?:\s*[-*+]\s+[^\n]+(?:\n|$))+/g, ([e]) => /* @__PURE__ */
565
565
  a.push(E), n = o + r.length;
566
566
  }
567
567
  return n < e.length && a.push(e.substring(n)), a;
568
- }, Di = (e) => Tn(e).flatMap((t) => typeof t == "string" ? Ge(t) : ["<", ...Ge(t.url), ...Ge("|" + t.children[0] + ">")]), Ge = (e) => {
568
+ }, Di = (e) => Tn(e).flatMap((t) => typeof t == "string" ? ze(t) : ["<", ...ze(t.url), ...ze("|" + t.children[0] + ">")]), ze = (e) => {
569
569
  const t = ta.parse(e, { urls: !0, email: !0, phone: !1, hashtag: !1, mention: !1 }), n = [];
570
570
  let a = 0;
571
571
  for (const i of t) {
@@ -588,11 +588,11 @@ const vi = function(e) {
588
588
  function dn(e, t = { except: [] }) {
589
589
  let n = function(a, i) {
590
590
  let s = [a];
591
- return s = ze(s, i.multilineSteps), s = ze(s, [vi]), s = ze(s, i.singlelineSteps), s = Sn(s), s;
591
+ return s = Ke(s, i.multilineSteps), s = Ke(s, [vi]), s = Ke(s, i.singlelineSteps), s = Sn(s), s;
592
592
  }(e, gi(t));
593
593
  return n = In(n, !1), n;
594
594
  }
595
- function ze(e, t) {
595
+ function Ke(e, t) {
596
596
  return t.reduce((n, a) => Le(n, a), e);
597
597
  }
598
598
  function Sn(e) {
@@ -606,7 +606,12 @@ function In(e, t) {
606
606
  let a = [];
607
607
  for (let i = 0; i < e.length; i++) {
608
608
  const s = e[i];
609
- typeof s == "string" ? a.push(s) : "children" in s ? (a.length > 0 && (n.push(a.join("")), a = []), s.children = In(s.children, t || s.type === "link" || s.type === "actionbutton" || s.type === "actionlink"), n.push(s)) : s.type === "autolink" && t ? a.push(s.text) : (a.length > 0 && (n.push(a.join("")), a = []), n.push(s));
609
+ if (typeof s == "string") a.push(s);
610
+ else if ("children" in s) {
611
+ a.length > 0 && (n.push(a.join("")), a = []);
612
+ const r = In(s.children, t || s.type === "link" || s.type === "actionbutton" || s.type === "actionlink");
613
+ n.push({ ...s, children: r });
614
+ } else s.type === "autolink" && t ? a.push(s.text) : (a.length > 0 && (n.push(a.join("")), a = []), n.push(s));
610
615
  }
611
616
  return a.length > 0 && (n.push(a.join("")), a = []), n;
612
617
  }
@@ -616,15 +621,15 @@ function fi() {
616
621
  const a = (s = Date.now()) => {
617
622
  window.clearTimeout(e), e = void 0, t = s;
618
623
  const r = function(o) {
619
- o = o.removeMark(0, o.doc.content.size, B.marks.bold), o = o.removeMark(0, o.doc.content.size, B.marks.italic), o = o.removeMark(0, o.doc.content.size, B.marks.strikethrough), o.doc.firstChild;
624
+ o = o.removeMark(0, o.doc.content.size, w.marks.bold), o = o.removeMark(0, o.doc.content.size, w.marks.italic), o = o.removeMark(0, o.doc.content.size, w.marks.strikethrough), o.doc.firstChild;
620
625
  const E = function(l) {
621
626
  const c = [];
622
- let T, I = "";
623
- return l.descendants((_, A) => (_.isText ? (I += _.text, T != null || (T = A)) : I && T !== void 0 && (c.push({ text: I, pos: T }), I = "", T = void 0), _.type !== B.nodes.mention)), I && T !== void 0 && c.push({ text: I, pos: T }), c;
627
+ let _, S = "";
628
+ return l.descendants((A, O) => (A.isText ? (S += A.text, _ != null || (_ = O)) : S && _ !== void 0 && (c.push({ text: S, pos: _ }), S = "", _ = void 0), A.type !== w.nodes.mention)), S && _ !== void 0 && c.push({ text: S, pos: _ }), c;
624
629
  }(o.doc);
625
630
  for (const { text: l, pos: c } of E) {
626
- const T = dn(l, { only: ["Wikitext"] });
627
- [o] = Nn(o, c, T);
631
+ const _ = dn(l, { only: ["Wikitext"] });
632
+ [o] = Nn(o, c, _);
628
633
  }
629
634
  return o;
630
635
  }(n.state.tr);
@@ -639,9 +644,9 @@ function Nn(e, t, n, a = 0, i = []) {
639
644
  a += s.length;
640
645
  } else if (s.type === "bold" || s.type === "italic" || s.type === "strikethrough") {
641
646
  a += 1;
642
- const r = B.marks[s.type], o = [...i, r];
647
+ const r = w.marks[s.type], o = [...i, r];
643
648
  [e, a] = Nn(e, t, s.children, a, o), a += 1;
644
- } else k.unreachable();
649
+ } else M.unreachable();
645
650
  return [e, a];
646
651
  }
647
652
  function Lt(e) {
@@ -649,20 +654,20 @@ function Lt(e) {
649
654
  if (!n) return !0;
650
655
  let a = t.tr;
651
656
  const i = ct.between(t.selection.$from, t.selection.$to);
652
- return a = a.replaceRangeWith(i.from, i.from, B.text(e, a.storedMarks)), a = a.replaceRangeWith(i.to + 1, i.to + 1, B.text(e, a.storedMarks)), a = a.setSelection(ct.near(a.doc.resolve(i.to + 1))), n(a), !0;
657
+ return a = a.replaceRangeWith(i.from, i.from, w.text(e, a.storedMarks)), a = a.replaceRangeWith(i.to + 1, i.to + 1, w.text(e, a.storedMarks)), a = a.setSelection(ct.near(a.doc.resolve(i.to + 1))), n(a), !0;
653
658
  };
654
659
  }
655
660
  function ki(e, t, n) {
656
661
  const a = t.clipboardData;
657
662
  if (!a) return !1;
658
663
  const i = function(s) {
659
- const r = s.items || [], o = { "image/gif": "gif", "image/png": "png", "image/jpeg": "jpg", "image/svg+xml": "svg" }, E = Array.from(r).filter((T) => T.kind === "file" && o[T.type]);
664
+ const r = s.items || [], o = { "image/gif": "gif", "image/png": "png", "image/jpeg": "jpg", "image/svg+xml": "svg" }, E = Array.from(r).filter((_) => _.kind === "file" && o[_.type]);
660
665
  if (E.length === 0 || s.types.includes("text/rtf")) return;
661
666
  const l = E[0];
662
667
  let c = l.getAsFile();
663
668
  if (!c.name) {
664
- const T = "image." + o[l.type];
665
- c = new File([c], T, { type: l.type, lastModified: Date.now() });
669
+ const _ = "image." + o[l.type];
670
+ c = new File([c], _, { type: l.type, lastModified: Date.now() });
666
671
  }
667
672
  return c;
668
673
  }(a);
@@ -679,23 +684,23 @@ function Mi(e, { allowSpaces: t = !1 }) {
679
684
  const l = E.input.slice(Math.max(0, E.index - 1), E.index);
680
685
  if (!/^[\s\0]?$/.test(l)) continue;
681
686
  const c = E.index + n.start();
682
- let T = c + E[0].length;
683
- if (t && a.test(o.slice(T - 1, T + 1)) && (E[0] += " ", T++), c < n.pos && T >= n.pos) return { range: { from: c, to: T }, text: E[0] };
687
+ let _ = c + E[0].length;
688
+ if (t && a.test(o.slice(_ - 1, _ + 1)) && (E[0] += " ", _++), c < n.pos && _ >= n.pos) return { range: { from: c, to: _ }, text: E[0] };
684
689
  }
685
690
  };
686
691
  }
687
692
  function mt({ matcher: e = Mi("#"), suggestionClass: t = "ProseMirror-suggestion", onEnter: n = () => !1, onChange: a = () => !1, onExit: i = () => !1, onKeyDown: s = () => !1, debug: r = !1 }) {
688
693
  return new Xt({ key: new xt("suggestions"), view() {
689
694
  return { update: (o, E) => {
690
- const l = this.key.getState(E), c = this.key.getState(o.state), T = l.active && c.active && l.range.from !== c.range.from, I = !l.active && c.active, _ = l.active && !c.active, A = !I && !_ && l.text !== c.text;
691
- (_ || T) && i({ view: o, range: l.range, text: l.text }), A && !T && a({ view: o, range: c.range, text: c.text }), (I || T) && n({ view: o, range: c.range, text: c.text });
695
+ const l = this.key.getState(E), c = this.key.getState(o.state), _ = l.active && c.active && l.range.from !== c.range.from, S = !l.active && c.active, A = l.active && !c.active, O = !S && !A && l.text !== c.text;
696
+ (A || _) && i({ view: o, range: l.range, text: l.text }), O && !_ && a({ view: o, range: c.range, text: c.text }), (S || _) && n({ view: o, range: c.range, text: c.text });
692
697
  } };
693
698
  }, state: { init: () => ({ active: !1, range: {}, text: null }), apply(o, E) {
694
699
  const { selection: l } = o, c = { ...E };
695
700
  if (l.from === l.to) {
696
701
  (l.from < E.range.from || l.from > E.range.to) && (c.active = !1);
697
- const T = l.$from, I = e(T);
698
- I ? (c.active = !0, c.range = I.range, c.text = I.text) : c.active = !1;
702
+ const _ = l.$from, S = e(_);
703
+ S ? (c.active = !0, c.range = S.range, c.text = S.text) : c.active = !1;
699
704
  } else c.active = !1;
700
705
  return c.active || (c.range = {}, c.text = null), c;
701
706
  } }, props: { handleKeyDown(o, E) {
@@ -707,17 +712,17 @@ function mt({ matcher: e = Mi("#"), suggestionClass: t = "ProseMirror-suggestion
707
712
  } } });
708
713
  }
709
714
  function Pi({ placeholder: e, disabled: t, className: n = "", characterLimit: a, spellcheck: i }) {
710
- const s = ge(), r = b(), o = b(null);
711
- return v(() => (r.current = function(E, l, c, T, I) {
712
- const _ = Jn.create({ schema: B, plugins: [...I.filter(Hi), Zn(), _t({ ...fe, "Mod-z": Qn, "Mod-y": ea, "Mod-b": Lt("*"), "Mod-i": Lt("_"), "Mod-Enter": fe.Enter, "Shift-Enter": fe.Enter, Enter: c }), _t({ Enter: fe.Enter }), Nt] }), A = fi(), d = new Wn(E, { handlePaste: (N, m, R) => ki(N, m, T), clipboardTextSerializer(N) {
715
+ const s = ge(), r = B(), o = B(null);
716
+ return v(() => (r.current = function(E, l, c, _, S) {
717
+ const A = Jn.create({ schema: w, plugins: [...S.filter(Hi), Zn(), _t({ ...fe, "Mod-z": Qn, "Mod-y": ea, "Mod-b": Lt("*"), "Mod-i": Lt("_"), "Mod-Enter": fe.Enter, "Shift-Enter": fe.Enter, Enter: c }), _t({ Enter: fe.Enter }), Nt] }), O = fi(), d = new Wn(E, { handlePaste: (N, m, R) => ki(N, m, _), clipboardTextSerializer(N) {
713
718
  const m = [];
714
719
  return N.content.forEach((R) => {
715
720
  R && m.push(_n(R.textContent));
716
721
  }), m.join();
717
- }, state: _, dispatchTransaction(N) {
718
- N = (N = N.removeStoredMark(B.marks.literal)).removeStoredMark(B.marks.emoji);
722
+ }, state: A, dispatchTransaction(N) {
723
+ N = (N = N.removeStoredMark(w.marks.literal)).removeStoredMark(w.marks.emoji);
719
724
  const m = d.state.apply(N);
720
- d.state.doc.eq(m.doc) || l(new ye(m.doc)), d.updateState(m), N.steps.some((R) => R instanceof ia) && setTimeout(() => A(d), 0);
725
+ d.state.doc.eq(m.doc) || l(new Be(m.doc)), d.updateState(m), N.steps.some((R) => R instanceof ia) && setTimeout(() => O(d), 0);
721
726
  } });
722
727
  return d;
723
728
  }(o.current, (E) => s.onChange(E), () => !!s.onEnter && (s.onEnter(), !0), (E) => s.onPasteImage(E), [s.emojiSuggesterPlugin(), s.mentionsPlugin()]), s.setEditorView(r.current), () => {
@@ -740,15 +745,15 @@ function Pi({ placeholder: e, disabled: t, className: n = "", characterLimit: a,
740
745
  function pt(e) {
741
746
  if (e.startsWith(":")) throw new Error("Not implemented");
742
747
  {
743
- const t = B.marks.emoji.create({ emoji: e });
744
- return B.text(e, [t]);
748
+ const t = w.marks.emoji.create({ emoji: e });
749
+ return w.text(e, [t]);
745
750
  }
746
751
  }
747
752
  function ht(e, t) {
748
753
  const n = encodeURIComponent(e);
749
- return B.nodes.mention.create({ id: e, name: t }, B.text(`<!!mention:${n}|${t}>`));
754
+ return w.nodes.mention.create({ id: e, name: t }, w.text(`<!!mention:${n}|${t}>`));
750
755
  }
751
- const we = class we {
756
+ const Ye = class Ye {
752
757
  constructor(t) {
753
758
  this.doc = t, this.size = this.doc.content.size, this.hasContent = cn(this.doc);
754
759
  }
@@ -756,16 +761,16 @@ const we = class we {
756
761
  return this.doc.textContent.replace(/\xa0/g, " ");
757
762
  }
758
763
  };
759
- we.EMPTY = new we(B.topNodeType.create());
760
- let ye = we;
764
+ Ye.EMPTY = new Ye(w.topNodeType.create());
765
+ let Be = Ye;
761
766
  function Hi(e) {
762
767
  return e != null;
763
768
  }
764
769
  const Rn = /^\/.*[^\\]\/[im]*$/;
765
770
  function Dt(e) {
766
- return Rn.test(e) ? !Be(e).test("") : !1;
771
+ return Rn.test(e) ? !we(e).test("") : !1;
767
772
  }
768
- function Be(e) {
773
+ function we(e) {
769
774
  const t = e.match(/^\/(.*[^\\])\/(.*)$/);
770
775
  if (!t) throw new Error(`Expected ${e} to be a (non-empty) regex`);
771
776
  let n = t[2] || "";
@@ -836,16 +841,16 @@ function Yi(e) {
836
841
  }
837
842
  class $i {
838
843
  constructor({ mode: t, allowedHostnames: n, allowedPhoneNrs: a, allowedMatches: i, forbiddenMatches: s, suppressLinks: r, suppressEmailAddresses: o, suppressPhoneNumbers: E, replacement: l }) {
839
- Ee.oneOf(t, ["all", "otherOnly", "off"]), this.mode = t, this.suppressLinks = r !== !1, this.suppressEmailAddresses = o !== !1, this.suppressPhoneNumbers = E !== !1, this.allowedHostnames = n || [], this.allowedPhoneNrs = (a || []).filter((c) => c).map((c) => c.replace(/[^0-9]/g, "")), this.allowedMatches = (i || []).filter(Dt).map((c) => Be(c)), this.forbiddenMatches = (s || []).filter(Dt).map((c) => Be(c)), Ee(() => this.allowedMatches.every((c) => c.flags.includes("g")), "All regexes in `suppressContactInfo.allowedMatches` must be global. Check `allowedMatches`!"), Ee(() => this.forbiddenMatches.every((c) => c.flags.includes("g")), "All regexes in `suppressContactInfo.forbiddenMatches` must be global. Check `forbiddenMatches`!"), l = l == null ? void 0 : l.trim(), this.replacement = l && l.length > 0 ? l : void 0;
844
+ Ee.oneOf(t, ["all", "otherOnly", "off"]), this.mode = t, this.suppressLinks = r !== !1, this.suppressEmailAddresses = o !== !1, this.suppressPhoneNumbers = E !== !1, this.allowedHostnames = n || [], this.allowedPhoneNrs = (a || []).filter((c) => c).map((c) => c.replace(/[^0-9]/g, "")), this.allowedMatches = (i || []).filter(Dt).map((c) => we(c)), this.forbiddenMatches = (s || []).filter(Dt).map((c) => we(c)), Ee(() => this.allowedMatches.every((c) => c.flags.includes("g")), "All regexes in `suppressContactInfo.allowedMatches` must be global. Check `allowedMatches`!"), Ee(() => this.forbiddenMatches.every((c) => c.flags.includes("g")), "All regexes in `suppressContactInfo.forbiddenMatches` must be global. Check `forbiddenMatches`!"), l = l == null ? void 0 : l.trim(), this.replacement = l && l.length > 0 ? l : void 0;
840
845
  }
841
846
  shouldSuppress({ isContentBySender: t }) {
842
847
  return this.mode === "all" || this.mode === "otherOnly" && !t;
843
848
  }
844
849
  }
845
850
  function Ln(e) {
846
- var n, a, i, s, r, o, E, l, c, T, I, _, A;
851
+ var n, a, i, s, r, o, E, l, c, _, S, A, O;
847
852
  let t = "";
848
- return e.t && (t = `(${e.t("CONTACT_INFORMATION_HIDDEN")})`), { formattedLinks: (n = e.formattedLinks) != null ? n : "plaintext", markup: (a = e.markup) != null ? a : !1, useFallbackMentions: (i = e.useFallbackMentions) != null ? i : !1, sameTabLinkRules: (s = e.sameTabLinkRules) != null ? s : [], enableEmojiImageFallback: (r = e.enableEmojiImageFallback) != null ? r : !1, highlight: (o = e.highlight) != null ? o : [], contactInfo: (E = e.contactInfo) != null ? E : !1, suppression: (l = e.suppression) != null ? l : new $i({ mode: "off" }), contactInfoHiddenText: (I = (T = e.contactInfoHiddenText) != null ? T : (c = e.suppression) == null ? void 0 : c.replacement) != null ? I : t, customEmojiUrls: (_ = e.customEmojiUrls) != null ? _ : {}, enableActions: (A = e.enableActions) != null ? A : !0 };
853
+ return e.t && (t = `(${e.t("CONTACT_INFORMATION_HIDDEN")})`), { formattedLinks: (n = e.formattedLinks) != null ? n : "plaintext", markup: (a = e.markup) != null ? a : !1, useFallbackMentions: (i = e.useFallbackMentions) != null ? i : !1, sameTabLinkRules: (s = e.sameTabLinkRules) != null ? s : [], enableEmojiImageFallback: (r = e.enableEmojiImageFallback) != null ? r : !1, highlight: (o = e.highlight) != null ? o : [], contactInfo: (E = e.contactInfo) != null ? E : !1, suppression: (l = e.suppression) != null ? l : new $i({ mode: "off" }), contactInfoHiddenText: (S = (_ = e.contactInfoHiddenText) != null ? _ : (c = e.suppression) == null ? void 0 : c.replacement) != null ? S : t, customEmojiUrls: (A = e.customEmojiUrls) != null ? A : {}, enableActions: (O = e.enableActions) != null ? O : !0 };
849
854
  }
850
855
  class mn extends En {
851
856
  constructor() {
@@ -867,7 +872,7 @@ class mn extends En {
867
872
  }
868
873
  function ji({ id: e, text: t }) {
869
874
  var s;
870
- const n = M(), a = f(() => {
875
+ const n = k(), a = f(() => {
871
876
  var E;
872
877
  if (n instanceof mn) return;
873
878
  const r = n.state$.extCurrentConversationId.get(), o = r && n.state$.participants.child(r).get();
@@ -877,7 +882,7 @@ function ji({ id: e, text: t }) {
877
882
  }
878
883
  function _e(e, t) {
879
884
  const n = e.flatMap((a) => {
880
- if (typeof a == "string") return Ke(a, t.highlight);
885
+ if (typeof a == "string") return We(a, t.highlight);
881
886
  switch (a.type) {
882
887
  case "bold":
883
888
  case "italic":
@@ -895,10 +900,10 @@ function _e(e, t) {
895
900
  return xi(a, t);
896
901
  case "codeblock":
897
902
  case "codeBlock":
898
- return [u("code", { "data-language": a.language, children: Ke(a.text, t.highlight) })];
903
+ return [u("code", { "data-language": a.language, children: We(a.text, t.highlight) })];
899
904
  case "codespan":
900
905
  case "codeSpan":
901
- return u("code", { children: Ke((i = a.text, i.replace(/^\s*\n/m, "").replace(/\n\s*$/m, "")), t.highlight) });
906
+ return u("code", { children: We((i = a.text, i.replace(/^\s*\n/m, "").replace(/\n\s*$/m, "")), t.highlight) });
902
907
  case "mention":
903
908
  return Ee.falsy(t.useFallbackMentions), u(ji, { id: a.id, text: a.text }, a.id);
904
909
  case "suppressed":
@@ -920,7 +925,7 @@ function _e(e, t) {
920
925
  });
921
926
  return n.every((a) => typeof a == "string") ? [n.join("")] : n;
922
927
  }
923
- function Ke(e, t) {
928
+ function We(e, t) {
924
929
  return t.length === 0 ? [e] : function(n, a, i) {
925
930
  let s = 0;
926
931
  const r = [];
@@ -938,7 +943,7 @@ const Fi = (e, t) => {
938
943
  return [te(n, null, ..._e(e.children, t))];
939
944
  };
940
945
  function Vi({ unicode: e }) {
941
- const [t, n] = y(() => e !== ":arslan:");
946
+ const [t, n] = b(() => e !== ":arslan:");
942
947
  if (v(() => {
943
948
  t && !rn(e) && n(!1);
944
949
  }, []), t) return u("span", { className: "t-emoji", children: e });
@@ -951,7 +956,7 @@ const xi = (e, t) => {
951
956
  case "link": {
952
957
  const a = function(i, s) {
953
958
  for (const r of i) if (Rn.test(r)) {
954
- if (Be(r).test(s)) return "_top";
959
+ if (we(r).test(s)) return "_top";
955
960
  } else if (Ui(r, s)) return "_top";
956
961
  return "_blank";
957
962
  }(t.sameTabLinkRules, e.url);
@@ -971,7 +976,7 @@ function pn({ block: e, nonInteractive: t, className: n = "" }) {
971
976
  return te("span", { className: `t-text ${n}` }, ...i);
972
977
  }
973
978
  function Gi(e) {
974
- const t = G(), n = M(), { className: a = "", ...i } = e, s = f(() => n.state$.messages.child(n.state$.extCurrentConversationId.get()).lookup.child(e.message.id).content.child(0).url.get());
979
+ const t = G(), n = k(), { className: a = "", ...i } = e, s = f(() => n.state$.messages.child(n.state$.extCurrentConversationId.get()).lookup.child(e.message.id).content.child(0).url.get());
975
980
  return u("div", { className: `t-message-content ${a}`, children: e.message.content.map((r) => {
976
981
  var o;
977
982
  return u(zi, { block: r, theme: t, downloadUrl: s, ...i }, e.message.createdAt + ((o = e.message.editedAt) != null ? o : 0));
@@ -998,15 +1003,15 @@ function zi({ common: e, block: t, message: n, theme: a, downloadUrl: i }) {
998
1003
  return r.FileBlock;
999
1004
  }
1000
1005
  default:
1001
- k.never(o);
1006
+ M.never(o);
1002
1007
  }
1003
1008
  }(a, t);
1004
1009
  return u(s, { block: t, common: e, message: n, downloadUrl: i });
1005
1010
  }
1006
- function je(e, t, n = !0) {
1007
- const a = U((s) => {
1011
+ function Fe(e, t, n = !0) {
1012
+ const a = y((s) => {
1008
1013
  s.keyCode === 27 && e();
1009
- }, [e]), i = U((s) => {
1014
+ }, [e]), i = y((s) => {
1010
1015
  s.target instanceof HTMLElement && s.target.closest(t) === null && e();
1011
1016
  }, [t, e]);
1012
1017
  v(() => {
@@ -1016,7 +1021,7 @@ function je(e, t, n = !0) {
1016
1021
  }, [a, i, n]);
1017
1022
  }
1018
1023
  function hn(e) {
1019
- const [t, n] = y();
1024
+ const [t, n] = b();
1020
1025
  return v(() => {
1021
1026
  let a = !0;
1022
1027
  return e().then((i) => {
@@ -1027,8 +1032,8 @@ function hn(e) {
1027
1032
  }, [e]), t;
1028
1033
  }
1029
1034
  function rt() {
1030
- const e = M(), t = f(e.t$);
1031
- return u(be, { type: "spinner", "aria-label": t.LOADING, className: "t-loading-icon" });
1035
+ const e = k(), t = f(e.t$);
1036
+ return u(ye, { type: "spinner", "aria-label": t.LOADING, className: "t-loading-icon" });
1032
1037
  }
1033
1038
  const Ki = "https://cdn.jsdelivr.net/npm/emoji-picker-element@1.26.3/+esm", ot = /* @__PURE__ */ function(e) {
1034
1039
  let t;
@@ -1040,23 +1045,23 @@ const Ki = "https://cdn.jsdelivr.net/npm/emoji-picker-element@1.26.3/+esm", ot =
1040
1045
  const e = await import(/*webpackIgnore: true*/ /* @vite-ignore */Ki);
1041
1046
  return await new e.Database().ready(), e;
1042
1047
  } catch (e) {
1043
- return Ze.error("Failed to load emoji picker:", e), new Promise(() => {
1048
+ return be.error("Failed to load emoji picker:", e), new Promise(() => {
1044
1049
  });
1045
1050
  }
1046
1051
  });
1047
1052
  function Dn(e) {
1048
- const { onClose: t, onEmojiSelected: n } = oa(), a = b(null), i = hn(ot);
1053
+ const { onClose: t, onEmojiSelected: n } = oa(), a = B(null), i = hn(ot);
1049
1054
  return v(() => {
1050
1055
  if (!i) return;
1051
- k.defined(a.current);
1056
+ M.defined(a.current);
1052
1057
  const s = a.current, r = s.shadowRoot;
1053
1058
  (function(l, c) {
1054
- const T = document.createElement("style");
1055
- T.textContent = c, l.appendChild(T);
1059
+ const _ = document.createElement("style");
1060
+ _.textContent = c, l.appendChild(_);
1056
1061
  })(r, ".search-row{margin-right:var(--emoji-padding)}.emoji-menu{grid-template-columns:repeat(auto-fill,var(--total-emoji-size));padding:var(--emoji-padding)}.emoji,button.emoji{border-radius:8px}.favorites{border-top-width:1px}input.search:focus{border-color:var(--input-focused-border-color);outline:0}.picker{container-type:size}@container (height < 300px){.favorites{display:none}}#skintone-button{margin:0 -3px 0 4px}.custom-emoji{padding:0}#emo-🏻,#emo-🏼,#emo-🏽,#emo-🏾,#emo-🏿{display:none}[data-has-mouse] .emoji:hover{background-color:var(--button-hover-background)}");
1057
1062
  const o = (l) => {
1058
- var T;
1059
- const c = (T = l.detail.unicode) != null ? T : l.detail.name;
1063
+ var _;
1064
+ const c = (_ = l.detail.unicode) != null ? _ : l.detail.name;
1060
1065
  n(c);
1061
1066
  };
1062
1067
  function E(l) {
@@ -1068,7 +1073,7 @@ function Dn(e) {
1068
1073
  }, [i, n]), v(() => {
1069
1074
  var s;
1070
1075
  i && a.current && ((s = a.current.shadowRoot.getElementById("search")) == null || s.focus());
1071
- }, [i]), je(() => t(), ".t-emoji-picker"), u("div", i ? { className: "t-emoji-picker", children: u("emoji-picker", { ref: a, class: e.colorScheme }) } : { className: "t-emoji-picker", "t-loading": "", children: u(rt, {}) });
1076
+ }, [i]), Fe(() => t(), ".t-emoji-picker"), u("div", i ? { className: "t-emoji-picker", children: u("emoji-picker", { ref: a, class: e.colorScheme }) } : { className: "t-emoji-picker", "t-loading": "", children: u(rt, {}) });
1072
1077
  }
1073
1078
  function Wi(e) {
1074
1079
  const { messageId: t, colorScheme: n, ...a } = e, { closePopover: i } = Ea(), s = Oe();
@@ -1080,8 +1085,8 @@ const qi = { ltr: ["ArrowLeft", "ArrowRight"], rtl: ["ArrowRight", "ArrowLeft"],
1080
1085
  function Cn(e, { focused: t, setFocused: n, itemCount: a, dir: i, onConfirm: s, onSpace: r }) {
1081
1086
  if (a === 0) return !1;
1082
1087
  const o = (c) => {
1083
- var T, I, _;
1084
- T = 0, I = c, _ = a - 1, c = Math.max(T, Math.min(I, _)), n(c);
1088
+ var _, S, A;
1089
+ _ = 0, S = c, A = a - 1, c = Math.max(_, Math.min(S, A)), n(c);
1085
1090
  }, [E, l] = qi[i];
1086
1091
  switch (e) {
1087
1092
  case E:
@@ -1102,51 +1107,51 @@ function gn({ focused: e, setFocused: t, buttonId: n }) {
1102
1107
  const i = n(e);
1103
1108
  i && ((s = document.getElementById(i)) == null || s.scrollIntoView({ block: "nearest" }));
1104
1109
  }, [e, n]);
1105
- const a = U((i) => {
1110
+ const a = y((i) => {
1106
1111
  const s = i.currentTarget.dataset.index;
1107
1112
  t(+s);
1108
1113
  }, [t]);
1109
- return { containerProps: Y(() => ({ role: "menu", "aria-activedescendant": n(e) }), [e, n]), itemProps: U((i) => ({ onMouseMove: a, id: n(i), "data-index": i }), [a, n]) };
1114
+ return { containerProps: U(() => ({ role: "menu", "aria-activedescendant": n(e) }), [e, n]), itemProps: y((i) => ({ onMouseMove: a, id: n(i), "data-index": i }), [a, n]) };
1110
1115
  }
1111
1116
  function Ji(e) {
1112
- const [t, n] = y([]), [a, i] = y([]), [s, r] = y(0), [o, E] = y(0), l = hn(ot), c = Y(() => l && new l.value.Database({}), [l]), T = ge(), I = f(T.state$.suggestEmojiQuery);
1117
+ const [t, n] = b([]), [a, i] = b([]), [s, r] = b(0), [o, E] = b(0), l = hn(ot), c = U(() => l && new l.value.Database({}), [l]), _ = ge(), S = f(_.state$.suggestEmojiQuery);
1113
1118
  v(() => {
1114
- c && (I ? async function() {
1119
+ c && (S ? async function() {
1115
1120
  const R = await c.getPreferredSkinTone();
1116
1121
  E(R);
1117
- let L = await c.getEmojiBySearchQuery(I);
1122
+ let L = await c.getEmojiBySearchQuery(S);
1118
1123
  if (L = L.filter((p) => p.url || function(C) {
1119
1124
  return C.version <= on && !Qi.includes(C.unicode);
1120
1125
  }(p)), function(p, C) {
1121
1126
  C.sort((D, h) => {
1122
1127
  var $, g;
1123
- const P = ($ = D.shortcodes) == null ? void 0 : $.find((w) => w.startsWith(p)), F = (g = h.shortcodes) == null ? void 0 : g.find((w) => w.startsWith(p));
1128
+ const P = ($ = D.shortcodes) == null ? void 0 : $.find((Y) => Y.startsWith(p)), F = (g = h.shortcodes) == null ? void 0 : g.find((Y) => Y.startsWith(p));
1124
1129
  return P && !F ? -1 : !P && F ? 1 : P && F ? P.length - F.length : 0;
1125
1130
  });
1126
- }(I.substring(1), L), r(0), n(L), L.length > 0 && i(L), I.endsWith(":")) {
1127
- const p = I.slice(1, -1), C = L.find((D) => {
1131
+ }(S.substring(1), L), r(0), n(L), L.length > 0 && i(L), S.endsWith(":")) {
1132
+ const p = S.slice(1, -1), C = L.find((D) => {
1128
1133
  var h;
1129
1134
  return (h = D.shortcodes) == null ? void 0 : h.includes(p);
1130
1135
  });
1131
- C && T.selectEmoji(Ne(C, R));
1136
+ C && _.selectEmoji(Ne(C, R));
1132
1137
  }
1133
1138
  }() : n([]));
1134
- }, [I, T, c]);
1135
- const _ = U((R) => {
1139
+ }, [S, _, c]);
1140
+ const A = y((R) => {
1136
1141
  const L = t[R];
1137
1142
  return L && "emoji-button-" + Ne(L, o);
1138
- }, [t, o]), { containerProps: A, itemProps: d } = gn({ focused: s, setFocused: r, buttonId: _ }), N = t.length > 0;
1139
- je(() => T.closeSuggester(), ".t-emoji-suggest-bar", N), v(() => {
1140
- if (N) return T.listenKeydown("emoji", (R) => Cn(R, { dir: "ltr", focused: s, setFocused: r, itemCount: t.length, onConfirm() {
1143
+ }, [t, o]), { containerProps: O, itemProps: d } = gn({ focused: s, setFocused: r, buttonId: A }), N = t.length > 0;
1144
+ Fe(() => _.closeSuggester(), ".t-emoji-suggest-bar", N), v(() => {
1145
+ if (N) return _.listenKeydown("emoji", (R) => Cn(R, { dir: "ltr", focused: s, setFocused: r, itemCount: t.length, onConfirm() {
1141
1146
  const L = t[s];
1142
- k.defined(L), T.selectEmoji(Ne(L, o));
1147
+ M.defined(L), _.selectEmoji(Ne(L, o));
1143
1148
  } })), () => {
1144
- T.listenKeydown("emoji", void 0);
1149
+ _.listenKeydown("emoji", void 0);
1145
1150
  };
1146
- T.listenKeydown("emoji", void 0);
1147
- }, [T, t, s, N, o]);
1148
- const m = b(null);
1149
- return u(Aa, { in: N, timeout: 100, classNames: "slide", mountOnEnter: !0, unmountOnExit: !0, nodeRef: m, children: u("div", { className: "t-emoji-suggest-bar", ref: m, ...A, children: a.map((R, L) => u(Zi, { emoji: R, skinTone: o, focused: L === s, onSelect: (p) => T.selectEmoji(p), ...d(L) }, Ne(R, o))) }) });
1151
+ _.listenKeydown("emoji", void 0);
1152
+ }, [_, t, s, N, o]);
1153
+ const m = B(null);
1154
+ return u(Aa, { in: N, timeout: 100, classNames: "slide", mountOnEnter: !0, unmountOnExit: !0, nodeRef: m, children: u("div", { className: "t-emoji-suggest-bar", ref: m, ...O, children: a.map((R, L) => u(Zi, { emoji: R, skinTone: o, focused: L === s, onSelect: (p) => _.selectEmoji(p), ...d(L) }, Ne(R, o))) }) });
1150
1155
  }
1151
1156
  function Ne(e, t) {
1152
1157
  return at(e) ? vn(e, t) : e.name;
@@ -1166,66 +1171,66 @@ function vn(e, t) {
1166
1171
  }
1167
1172
  const Qi = ["🏻", "🏼", "🏽", "🏾", "🏿"];
1168
1173
  function es(e) {
1169
- const { anchorSelector: t, children: n, ...a } = e, i = Y(() => document.querySelector(t), [t]), { refs: s, floatingStyles: r } = Oa({ placement: "top-start" });
1174
+ const { anchorSelector: t, children: n, ...a } = e, i = U(() => document.querySelector(t), [t]), { refs: s, floatingStyles: r } = Oa({ placement: "top-start" });
1170
1175
  return Ae(() => {
1171
1176
  i && s.setReference(i);
1172
1177
  }, [s, i]), u("div", { ref: s.setFloating, style: { ...r, zIndex: 1e3 }, ...a, children: n });
1173
1178
  }
1174
1179
  function ts(e) {
1175
- const t = M(), n = f(() => t.mentionableUsers$.get()), [a, i] = y(0), s = ge(), r = f(s.state$.suggestMentionQuery), o = Y(() => Object.fromEntries(n.map((_) => {
1176
- return [_.id, (A = _.name, [...A.matchAll(/^|\s+/g)].map((d) => d.index + d[0].length).map((d) => A.substring(d)))];
1177
- var A;
1178
- })), [n]), E = Y(() => {
1180
+ const t = k(), n = f(() => t.mentionableUsers$.get()), [a, i] = b(0), s = ge(), r = f(s.state$.suggestMentionQuery), o = U(() => Object.fromEntries(n.map((A) => {
1181
+ return [A.id, (O = A.name, [...O.matchAll(/^|\s+/g)].map((d) => d.index + d[0].length).map((d) => O.substring(d)))];
1182
+ var O;
1183
+ })), [n]), E = U(() => {
1179
1184
  if (!r) return [];
1180
- const _ = Ct(r);
1181
- return _ === "" ? n : n.filter((A) => o[A.id].some((d) => function(N, m) {
1185
+ const A = Ct(r);
1186
+ return A === "" ? n : n.filter((O) => o[O.id].some((d) => function(N, m) {
1182
1187
  return Tt(N.substring(0, m.length), m);
1183
- }(d, _)));
1184
- }, [r, n, o]), l = b(void 0);
1188
+ }(d, A)));
1189
+ }, [r, n, o]), l = B(void 0);
1185
1190
  v(() => {
1186
1191
  if (l.current) {
1187
- const _ = E.findIndex((A) => A.id === l.current);
1188
- i(_ === -1 ? 0 : _);
1192
+ const A = E.findIndex((O) => O.id === l.current);
1193
+ i(A === -1 ? 0 : A);
1189
1194
  }
1190
1195
  }, [E]), v(() => {
1191
- var _;
1192
- l.current = (_ = E[a]) == null ? void 0 : _.id;
1196
+ var A;
1197
+ l.current = (A = E[a]) == null ? void 0 : A.id;
1193
1198
  }, [a, E]);
1194
- const c = U((_) => {
1199
+ const c = y((A) => {
1195
1200
  var d;
1196
- const A = (d = E[_]) == null ? void 0 : d.id;
1197
- return A && "mention-button-" + A;
1198
- }, [E]), { containerProps: T, itemProps: I } = gn({ focused: a, setFocused: i, buttonId: c });
1201
+ const O = (d = E[A]) == null ? void 0 : d.id;
1202
+ return O && "mention-button-" + O;
1203
+ }, [E]), { containerProps: _, itemProps: S } = gn({ focused: a, setFocused: i, buttonId: c });
1199
1204
  return v(() => {
1200
- if (E.length !== 0) return s.listenKeydown("mention", (_) => Cn(_, { dir: "ttb", focused: a, setFocused: i, itemCount: E.length, onSpace() {
1205
+ if (E.length !== 0) return s.listenKeydown("mention", (A) => Cn(A, { dir: "ttb", focused: a, setFocused: i, itemCount: E.length, onSpace() {
1201
1206
  if (r) {
1202
- const A = E[a];
1203
- if (Tt(A.name, Ct(r))) return s.selectMention(A), !0;
1207
+ const O = E[a];
1208
+ if (Tt(O.name, Ct(r))) return s.selectMention(O), !0;
1204
1209
  }
1205
1210
  return !1;
1206
1211
  }, onConfirm() {
1207
- const A = E[a];
1208
- s.selectMention(A);
1212
+ const O = E[a];
1213
+ s.selectMention(O);
1209
1214
  } })), () => {
1210
1215
  s.listenKeydown("mention", void 0);
1211
1216
  };
1212
- }, [s, a, E, r]), je(() => s.closeSuggester(), ".t-mention-suggest-list", E.length > 0), E.length === 0 ? null : u(es, { className: "t-mention-suggest-list", ...T, anchorSelector: ".ProseMirror-suggestion", children: E.map((_, A) => u(ns, { user: _, isFocused: A === a, onSelect: () => s.selectMention(_), ...I(A) }, _.id)) });
1217
+ }, [s, a, E, r]), Fe(() => s.closeSuggester(), ".t-mention-suggest-list", E.length > 0), E.length === 0 ? null : u(es, { className: "t-mention-suggest-list", ..._, anchorSelector: ".ProseMirror-suggestion", children: E.map((A, O) => u(ns, { user: A, isFocused: O === a, onSelect: () => s.selectMention(A), ...S(O) }, A.id)) });
1213
1218
  }
1214
1219
  const ns = oe.memo(function(e) {
1215
1220
  const { user: t, isFocused: n, onSelect: a, ...i } = e;
1216
1221
  return u("button", { className: n ? "focused" : "", onClick: () => a(t.id), ...i, children: t.name });
1217
1222
  });
1218
1223
  function Ct(e) {
1219
- return k(e[0] === "@"), e.substring(1);
1224
+ return M(e[0] === "@"), e.substring(1);
1220
1225
  }
1221
1226
  function Re(e) {
1222
- const { popoverComponent: t, popoverProps: n, children: a, type: i = "popover", ...s } = e, [r, o] = y(void 0), [E, l] = y(!1);
1223
- let c, T, I;
1224
- return i === "menu" ? (c = Pe.Root, T = Pe.Trigger, I = Pe.Content) : (c = xe.Root, T = xe.Trigger, I = xe.Content), u(la.Provider, { value: { closePopover: () => l(!1) }, children: x(c, { modal: !0, open: E, onOpenChange: l, children: [u(T, { asChild: !0, children: u("button", { ...s, ref: (_) => ((A) => {
1227
+ const { popoverComponent: t, popoverProps: n, children: a, type: i = "popover", ...s } = e, [r, o] = b(void 0), [E, l] = b(!1);
1228
+ let c, _, S;
1229
+ return i === "menu" ? (c = Pe.Root, _ = Pe.Trigger, S = Pe.Content) : (c = Xe.Root, _ = Xe.Trigger, S = Xe.Content), u(la.Provider, { value: { closePopover: () => l(!1) }, children: x(c, { modal: !1, open: E, onOpenChange: l, children: [u(_, { asChild: !0, children: u("button", { ...s, ref: (A) => ((O) => {
1225
1230
  var N;
1226
- const d = (N = A == null ? void 0 : A.closest("[t-menu-boundary]")) != null ? N : void 0;
1231
+ const d = (N = O == null ? void 0 : O.closest("[t-menu-boundary]")) != null ? N : void 0;
1227
1232
  o(d);
1228
- })(_), children: a }) }), u(I, { hideWhenDetached: !0, collisionBoundary: r, style: { zIndex: 1e3 }, onWheel: (_) => _.stopPropagation(), onTouchMove: (_) => _.stopPropagation(), children: u(t, { ...n }) })] }) });
1233
+ })(A), children: a }) }), u(S, { hideWhenDetached: !0, collisionBoundary: r, style: { zIndex: 1e3 }, onWheel: (A) => A.stopPropagation(), onTouchMove: (A) => A.stopPropagation(), children: u(t, { ...n }) })] }) });
1229
1234
  }
1230
1235
  function ie(e) {
1231
1236
  return u(Pe.Item, { ...e });
@@ -1251,32 +1256,32 @@ function fn({ latitude: e, longitude: t }) {
1251
1256
  return { imageUrl: `https://maps.googleapis.com/maps/api/staticmap?center=${n}&zoom=15&size=300x200&scale=2&maptype=roadmap&markers=${n}&key=${Na}`, linkUrl: `https://maps.google.com/maps?q=${n}&z=15` };
1252
1257
  }
1253
1258
  function is(e, t) {
1254
- const [n, a] = y({ long: "", short: "" });
1259
+ const [n, a] = b({ long: "", short: "" });
1255
1260
  return Ae(() => {
1256
1261
  let i, s = !0;
1257
1262
  const r = () => {
1258
- const E = Date.now(), l = function(c, T, I) {
1259
- const _ = c - T;
1260
- let A, d, N;
1261
- const m = new Date(T), R = { month: "short", day: "numeric" };
1262
- if (_ < gt) return { changeTimeout: 5e3, short: I.JUST_NOW, long: I.JUST_NOW };
1263
- if (_ < vt) A = gt, d = "MINUTES", N = I.MINUTES;
1264
- else if (_ < ft) A = vt, d = "HOURS", N = I.HOURS;
1263
+ const E = Date.now(), l = function(c, _, S) {
1264
+ const A = c - _;
1265
+ let O, d, N;
1266
+ const m = new Date(_), R = { month: "short", day: "numeric" };
1267
+ if (A < gt) return { changeTimeout: 5e3, short: S.JUST_NOW, long: S.JUST_NOW };
1268
+ if (A < vt) O = gt, d = "MINUTES", N = S.MINUTES;
1269
+ else if (A < ft) O = vt, d = "HOURS", N = S.HOURS;
1265
1270
  else {
1266
- if (!(_ < os)) {
1271
+ if (!(A < os)) {
1267
1272
  if (m.getFullYear() === new Date(c).getFullYear()) {
1268
- const p = m.toLocaleDateString(I.locale, R);
1273
+ const p = m.toLocaleDateString(S.locale, R);
1269
1274
  return { changeTimeout: void 0, short: p, long: p };
1270
1275
  }
1271
1276
  {
1272
- const p = m.toLocaleDateString(I.locale, { ...R, year: "numeric" });
1277
+ const p = m.toLocaleDateString(S.locale, { ...R, year: "numeric" });
1273
1278
  return { changeTimeout: void 0, short: p, long: p };
1274
1279
  }
1275
1280
  }
1276
- A = ft, d = "DAYS", N = I.DAYS;
1281
+ O = ft, d = "DAYS", N = S.DAYS;
1277
1282
  }
1278
- const L = Math.floor(_ / A);
1279
- return { changeTimeout: A, short: L + N, long: Es(L, d.toLowerCase(), I.locale) };
1283
+ const L = Math.floor(A / O);
1284
+ return { changeTimeout: O, short: L + N, long: Es(L, d.toLowerCase(), S.locale) };
1280
1285
  }(E, e > E ? E - 2e3 : e, t);
1281
1286
  return a(l), l;
1282
1287
  }, o = () => {
@@ -1307,34 +1312,34 @@ function rs(e, t) {
1307
1312
  const r = { weekday: "long" }, o = new Date(e);
1308
1313
  if (a < 7) return o.toLocaleDateString(t.locale, r);
1309
1314
  const E = new Date(n);
1310
- return function(c, T) {
1311
- return Math.floor((T - c) / 31536e6);
1315
+ return function(c, _) {
1316
+ return Math.floor((_ - c) / 31536e6);
1312
1317
  }(E.setFullYear(E.getFullYear() - 1), e) === 0 ? o.toLocaleDateString(t.locale, { ...r, month: "long", day: "numeric" }) : o.toLocaleDateString(t.locale, { ...r, year: "numeric", month: "long", day: "numeric" });
1313
1318
  }
1314
1319
  const gt = 6e4, vt = 36e5, ft = 864e5, os = 6048e5;
1315
1320
  function Es(e, t, n) {
1316
1321
  return new Intl.RelativeTimeFormat(n).format(-e, t);
1317
1322
  }
1318
- function S(e, ...t) {
1323
+ function I(e, ...t) {
1319
1324
  const n = xn.bind(oe.createElement)(e, ...t);
1320
1325
  return Array.isArray(n) ? oe.createElement(oe.Fragment, {}, ...n) : n;
1321
1326
  }
1322
1327
  function ls(e) {
1323
1328
  const { common: t } = e;
1324
- return t.conversation.subject ? S`
1329
+ return t.conversation.subject ? I`
1325
1330
  <div className="t-title">${t.conversation.subject}</div>
1326
1331
  <div className="t-subtitle">
1327
1332
  <${kt} ...${e} />
1328
1333
  </div>
1329
- ` : S`<div className="t-title">
1334
+ ` : I`<div className="t-title">
1330
1335
  <${kt} ...${e} />
1331
1336
  </div>`;
1332
1337
  }
1333
1338
  function kt({ common: e, isUserConnected: t, permissions: n }) {
1334
1339
  const { participants: a } = e, i = a.filter(({ user: r }) => r.id !== e.currentUser.id), s = i.length === 0 ? a : i;
1335
- return n.showOnlineStatus ? S`
1340
+ return n.showOnlineStatus ? I`
1336
1341
  <span className="t-participants">
1337
- ${s.map(({ user: r }) => S`
1342
+ ${s.map(({ user: r }) => I`
1338
1343
  <span className="t-participant" key=${r.id}>
1339
1344
  <span>${r.name}</span>
1340
1345
  <span
@@ -1344,11 +1349,11 @@ function kt({ common: e, isUserConnected: t, permissions: n }) {
1344
1349
  </span>
1345
1350
  `)}
1346
1351
  </span>
1347
- ` : S`<span className="t-participants">${s.map(({ user: r }) => r.name).join(", ")}</span>`;
1352
+ ` : I`<span className="t-participants">${s.map(({ user: r }) => r.name).join(", ")}</span>`;
1348
1353
  }
1349
1354
  function cs({ messageStatus: e, common: t }) {
1350
1355
  const { Icon: n } = t.theme;
1351
- return e === "sending" ? S`
1356
+ return e === "sending" ? I`
1352
1357
  <span className="t-status-icon">
1353
1358
  <${n}
1354
1359
  type="spinner"
@@ -1356,10 +1361,10 @@ function cs({ messageStatus: e, common: t }) {
1356
1361
  common=${t}
1357
1362
  />
1358
1363
  </span>
1359
- ` : e === "sent" ? S`<span className="t-status-icon">✓</span>` : e === "everyoneRead" ? S`<span className="t-status-icon">✓✓</span>` : null;
1364
+ ` : e === "sent" ? I`<span className="t-status-icon">✓</span>` : e === "everyoneRead" ? I`<span className="t-status-icon">✓✓</span>` : null;
1360
1365
  }
1361
1366
  const _s = { attach: function({ className: e }) {
1362
- return S`
1367
+ return I`
1363
1368
  <svg
1364
1369
  className=${e}
1365
1370
  xmlns="http://www.w3.org/2000/svg"
@@ -1379,7 +1384,7 @@ const _s = { attach: function({ className: e }) {
1379
1384
  </svg>
1380
1385
  `;
1381
1386
  }, chevronLeft: Mt, left: Mt, chevronRight: Pt, right: Pt, chevronUp: Ht, up: Ht, chevronDown: Ut, down: Ut, close: function({ className: e }) {
1382
- return S`
1387
+ return I`
1383
1388
  <svg
1384
1389
  className=${e}
1385
1390
  xmlns="http://www.w3.org/2000/svg"
@@ -1397,7 +1402,7 @@ const _s = { attach: function({ className: e }) {
1397
1402
  </svg>
1398
1403
  `;
1399
1404
  }, emoji: function({ className: e }) {
1400
- return S`
1405
+ return I`
1401
1406
  <svg
1402
1407
  className=${e}
1403
1408
  xmlns="http://www.w3.org/2000/svg"
@@ -1415,7 +1420,7 @@ const _s = { attach: function({ className: e }) {
1415
1420
  </svg>
1416
1421
  `;
1417
1422
  }, locationPin: function({ className: e }) {
1418
- return S`
1423
+ return I`
1419
1424
  <svg
1420
1425
  className=${e}
1421
1426
  xmlns="http://www.w3.org/2000/svg"
@@ -1436,7 +1441,7 @@ const _s = { attach: function({ className: e }) {
1436
1441
  </svg>
1437
1442
  `;
1438
1443
  }, more: function({ className: e }) {
1439
- return S`
1444
+ return I`
1440
1445
  <svg
1441
1446
  className=${e}
1442
1447
  xmlns="http://www.w3.org/2000/svg"
@@ -1456,7 +1461,7 @@ const _s = { attach: function({ className: e }) {
1456
1461
  </svg>
1457
1462
  `;
1458
1463
  }, plus: function({ className: e }) {
1459
- return S`
1464
+ return I`
1460
1465
  <svg
1461
1466
  className=${e}
1462
1467
  xmlns="http://www.w3.org/2000/svg"
@@ -1474,7 +1479,7 @@ const _s = { attach: function({ className: e }) {
1474
1479
  </svg>
1475
1480
  `;
1476
1481
  }, search: function({ className: e }) {
1477
- return S`
1482
+ return I`
1478
1483
  <svg
1479
1484
  className=${e}
1480
1485
  xmlns="http://www.w3.org/2000/svg"
@@ -1494,7 +1499,7 @@ const _s = { attach: function({ className: e }) {
1494
1499
  </svg>
1495
1500
  `;
1496
1501
  }, send: function({ className: e }) {
1497
- return S`
1502
+ return I`
1498
1503
  <svg
1499
1504
  className=${e}
1500
1505
  xmlns="http://www.w3.org/2000/svg"
@@ -1514,7 +1519,7 @@ const _s = { attach: function({ className: e }) {
1514
1519
  </svg>
1515
1520
  `;
1516
1521
  }, spinner: function({ className: e }) {
1517
- return S`
1522
+ return I`
1518
1523
  <svg
1519
1524
  className=${e}
1520
1525
  xmlns="http://www.w3.org/2000/svg"
@@ -1534,7 +1539,7 @@ const _s = { attach: function({ className: e }) {
1534
1539
  </svg>
1535
1540
  `;
1536
1541
  }, play: function({ className: e }) {
1537
- return S`
1542
+ return I`
1538
1543
  <svg
1539
1544
  className=${e}
1540
1545
  xmlns="http://www.w3.org/2000/svg"
@@ -1551,7 +1556,7 @@ const _s = { attach: function({ className: e }) {
1551
1556
  </svg>
1552
1557
  `;
1553
1558
  }, pause: function({ className: e }) {
1554
- return S`
1559
+ return I`
1555
1560
  <svg
1556
1561
  className=${e}
1557
1562
  xmlns="http://www.w3.org/2000/svg"
@@ -1569,7 +1574,7 @@ const _s = { attach: function({ className: e }) {
1569
1574
  </svg>
1570
1575
  `;
1571
1576
  }, updown: function({ className: e }) {
1572
- return S`
1577
+ return I`
1573
1578
  <svg
1574
1579
  className=${e}
1575
1580
  xmlns="http://www.w3.org/2000/svg"
@@ -1593,7 +1598,7 @@ const _s = { attach: function({ className: e }) {
1593
1598
  </svg>
1594
1599
  `;
1595
1600
  }, addEmoji: function({ className: e }) {
1596
- return S`
1601
+ return I`
1597
1602
  <svg
1598
1603
  className=${e}
1599
1604
  xmlns="http://www.w3.org/2000/svg"
@@ -1630,7 +1635,7 @@ const _s = { attach: function({ className: e }) {
1630
1635
  </svg>
1631
1636
  `;
1632
1637
  }, microphone: function({ className: e }) {
1633
- return S`
1638
+ return I`
1634
1639
  <svg
1635
1640
  className=${e}
1636
1641
  xmlns="http://www.w3.org/2000/svg"
@@ -1692,7 +1697,7 @@ const _s = { attach: function({ className: e }) {
1692
1697
  </svg>
1693
1698
  `;
1694
1699
  }, mic: function({ className: e }) {
1695
- return S`
1700
+ return I`
1696
1701
  <svg
1697
1702
  className=${e}
1698
1703
  xmlns="http://www.w3.org/2000/svg"
@@ -1754,7 +1759,7 @@ const _s = { attach: function({ className: e }) {
1754
1759
  </svg>
1755
1760
  `;
1756
1761
  }, stop: function({ className: e }) {
1757
- return S`
1762
+ return I`
1758
1763
  <svg
1759
1764
  className=${e}
1760
1765
  xmlns="http://www.w3.org/2000/svg"
@@ -1778,7 +1783,7 @@ const _s = { attach: function({ className: e }) {
1778
1783
  </svg>
1779
1784
  `;
1780
1785
  }, download: function({ className: e }) {
1781
- return S`
1786
+ return I`
1782
1787
  <svg
1783
1788
  className=${e}
1784
1789
  xmlns="http://www.w3.org/2000/svg"
@@ -1806,7 +1811,7 @@ const _s = { attach: function({ className: e }) {
1806
1811
  </svg>
1807
1812
  `;
1808
1813
  }, location: function({ className: e }) {
1809
- return S`
1814
+ return I`
1810
1815
  <svg
1811
1816
  className=${e}
1812
1817
  xmlns="http://www.w3.org/2000/svg"
@@ -1827,7 +1832,7 @@ const _s = { attach: function({ className: e }) {
1827
1832
  </svg>
1828
1833
  `;
1829
1834
  }, email: function({ className: e }) {
1830
- return S`
1835
+ return I`
1831
1836
  <svg
1832
1837
  className=${e}
1833
1838
  xmlns="http://www.w3.org/2000/svg"
@@ -1850,7 +1855,7 @@ const _s = { attach: function({ className: e }) {
1850
1855
  </svg>
1851
1856
  `;
1852
1857
  }, movie: function({ className: e }) {
1853
- return S`
1858
+ return I`
1854
1859
  <svg
1855
1860
  className=${e}
1856
1861
  xmlns="http://www.w3.org/2000/svg"
@@ -1868,7 +1873,7 @@ const _s = { attach: function({ className: e }) {
1868
1873
  </svg>
1869
1874
  `;
1870
1875
  }, image: function({ className: e }) {
1871
- return S`
1876
+ return I`
1872
1877
  <svg
1873
1878
  className=${e}
1874
1879
  xmlns="http://www.w3.org/2000/svg"
@@ -1887,7 +1892,7 @@ const _s = { attach: function({ className: e }) {
1887
1892
  </svg>
1888
1893
  `;
1889
1894
  }, attachment: function({ className: e }) {
1890
- return S`
1895
+ return I`
1891
1896
  <svg
1892
1897
  className=${e}
1893
1898
  xmlns="http://www.w3.org/2000/svg"
@@ -1907,7 +1912,7 @@ const _s = { attach: function({ className: e }) {
1907
1912
  </svg>
1908
1913
  `;
1909
1914
  }, horizontalDots: function({ className: e }) {
1910
- return S`
1915
+ return I`
1911
1916
  <svg
1912
1917
  className=${e}
1913
1918
  xmlns="http://www.w3.org/2000/svg"
@@ -1926,7 +1931,7 @@ const _s = { attach: function({ className: e }) {
1926
1931
  </svg>
1927
1932
  `;
1928
1933
  }, verticalDots: function({ className: e }) {
1929
- return S`
1934
+ return I`
1930
1935
  <svg
1931
1936
  className=${e}
1932
1937
  xmlns="http://www.w3.org/2000/svg"
@@ -1945,7 +1950,7 @@ const _s = { attach: function({ className: e }) {
1945
1950
  </svg>
1946
1951
  `;
1947
1952
  }, reply: function({ className: e }) {
1948
- return S`
1953
+ return I`
1949
1954
  <svg
1950
1955
  className=${e}
1951
1956
  xmlns="http://www.w3.org/2000/svg"
@@ -1975,7 +1980,7 @@ const _s = { attach: function({ className: e }) {
1975
1980
  </svg>
1976
1981
  `;
1977
1982
  }, back: function({ className: e }) {
1978
- return S`
1983
+ return I`
1979
1984
  <svg
1980
1985
  className=${e}
1981
1986
  xmlns="http://www.w3.org/2000/svg"
@@ -1994,7 +1999,7 @@ const _s = { attach: function({ className: e }) {
1994
1999
  `;
1995
2000
  } };
1996
2001
  function Mt({ className: e }) {
1997
- return S`
2002
+ return I`
1998
2003
  <svg
1999
2004
  className=${e}
2000
2005
  xmlns="http://www.w3.org/2000/svg"
@@ -2011,7 +2016,7 @@ function Mt({ className: e }) {
2011
2016
  `;
2012
2017
  }
2013
2018
  function Pt({ className: e }) {
2014
- return S`
2019
+ return I`
2015
2020
  <svg
2016
2021
  className=${e}
2017
2022
  xmlns="http://www.w3.org/2000/svg"
@@ -2028,7 +2033,7 @@ function Pt({ className: e }) {
2028
2033
  `;
2029
2034
  }
2030
2035
  function Ht({ className: e }) {
2031
- return S`
2036
+ return I`
2032
2037
  <svg
2033
2038
  className=${e}
2034
2039
  xmlns="http://www.w3.org/2000/svg"
@@ -2046,7 +2051,7 @@ function Ht({ className: e }) {
2046
2051
  `;
2047
2052
  }
2048
2053
  function Ut({ className: e }) {
2049
- return S`
2054
+ return I`
2050
2055
  <svg
2051
2056
  className=${e}
2052
2057
  xmlns="http://www.w3.org/2000/svg"
@@ -2066,26 +2071,26 @@ function Ut({ className: e }) {
2066
2071
  function As({ message: e, common: t }) {
2067
2072
  var r;
2068
2073
  const n = e.content[0], { theme: a, t: i } = t, { Icon: s } = a;
2069
- if (n.type === "text") return S`<${pn} block=${n} nonInteractive />`;
2070
- if (n.type === "location") return S`<${s} type="location" common=${t} /> ${i.LOCATION}`;
2074
+ if (n.type === "text") return I`<${pn} block=${n} nonInteractive />`;
2075
+ if (n.type === "location") return I`<${s} type="location" common=${t} /> ${i.LOCATION}`;
2071
2076
  if (n.type === "file") {
2072
- if (n.subtype === "image") return S`
2077
+ if (n.subtype === "image") return I`
2073
2078
  <${s} type="image" common=${t} />
2074
2079
  ${n.filename}
2075
2080
  `;
2076
- if (n.subtype === "video") return S`
2081
+ if (n.subtype === "video") return I`
2077
2082
  <${s} type="movie" common=${t} />
2078
2083
  ${n.filename}
2079
2084
  `;
2080
- if (n.subtype === "audio") return S`
2085
+ if (n.subtype === "audio") return I`
2081
2086
  <${s} type="attachment" common=${t} />
2082
2087
  ${n.filename}
2083
2088
  `;
2084
- if (n.subtype === "voice") return S`
2089
+ if (n.subtype === "voice") return I`
2085
2090
  <${s} type="microphone" common=${t} />
2086
2091
  ${i.VOICE_MESSAGE} (${kn((r = n.duration) != null ? r : 0)})
2087
2092
  `;
2088
- if (n.subtype === void 0) return S`
2093
+ if (n.subtype === void 0) return I`
2089
2094
  <${s} type="attachment" common=${t} />
2090
2095
  ${n.filename}
2091
2096
  `;
@@ -2094,11 +2099,11 @@ function As({ message: e, common: t }) {
2094
2099
  }
2095
2100
  function Os({ conversation: e }) {
2096
2101
  const { isUnread: t, unreadMessageCount: n } = e;
2097
- return t ? n === 0 ? S`<div className="t-unread-generic-dot" />` : n > 999 ? S`
2102
+ return t ? n === 0 ? I`<div className="t-unread-generic-dot" />` : n > 999 ? I`
2098
2103
  <div className="t-unread-dot">
2099
2104
  <span>999+</span>
2100
2105
  </div>
2101
- ` : S`
2106
+ ` : I`
2102
2107
  <div className="t-unread-dot">
2103
2108
  <span>${n}</span>
2104
2109
  </div>
@@ -2106,7 +2111,7 @@ function Os({ conversation: e }) {
2106
2111
  }
2107
2112
  const Et = Object.freeze(Object.defineProperty({ __proto__: null, AudioBlock: function({ block: e, downloadUrl: t, common: n }) {
2108
2113
  const { Icon: a } = n.theme;
2109
- return S`
2114
+ return I`
2110
2115
  <div className="t-theme-audio-block">
2111
2116
  <${et} src=${e.url} filename=${e.filename} />
2112
2117
 
@@ -2122,7 +2127,7 @@ const Et = Object.freeze(Object.defineProperty({ __proto__: null, AudioBlock: fu
2122
2127
  </div>
2123
2128
  `;
2124
2129
  }, Avatar: function({ photoUrl: e }) {
2125
- return S`
2130
+ return I`
2126
2131
  <div
2127
2132
  className="t-theme-avatar"
2128
2133
  style=${{ backgroundImage: `url(${e})` }}
@@ -2130,7 +2135,7 @@ const Et = Object.freeze(Object.defineProperty({ __proto__: null, AudioBlock: fu
2130
2135
  `;
2131
2136
  }, ChatHeader: function(e) {
2132
2137
  const { conversation: t, participants: n, theme: a } = e.common, { ConversationImage: i } = a;
2133
- return S`
2138
+ return I`
2134
2139
  <div className="t-theme-chat-header">
2135
2140
  <div className="t-inner">
2136
2141
  <div className="t-content">
@@ -2150,29 +2155,29 @@ const Et = Object.freeze(Object.defineProperty({ __proto__: null, AudioBlock: fu
2150
2155
  </div>
2151
2156
  `;
2152
2157
  }, CompactMessageContent: function(e) {
2153
- return S`
2158
+ return I`
2154
2159
  <span className="t-theme-compact-message-content">
2155
2160
  <${As} ...${e} />
2156
2161
  </span>
2157
2162
  `;
2158
2163
  }, ConversationImage: function({ common: e, conversation: t, participants: n }) {
2159
2164
  const { currentUser: a, theme: i } = e, { Avatar: s, GroupChatImage: r } = i;
2160
- return t.photoUrl ? S`<${s}
2165
+ return t.photoUrl ? I`<${s}
2161
2166
  photoUrl=${t.photoUrl}
2162
2167
  common=${e}
2163
- />` : n.length === 0 ? null : n.length === 1 ? S`<${s}
2168
+ />` : n.length === 0 ? null : n.length === 1 ? I`<${s}
2164
2169
  photoUrl=${se(a)}
2165
2170
  common=${e}
2166
- />` : n.length === 2 ? S`<${s}
2171
+ />` : n.length === 2 ? I`<${s}
2167
2172
  photoUrl=${se(n[0].user.id === a.id ? n[1].user : n[0].user)}
2168
2173
  common=${e}
2169
- />` : S`
2174
+ />` : I`
2170
2175
  <${r} participants=${n} common=${e} />
2171
2176
  `;
2172
2177
  }, ConversationListItem: function(e) {
2173
2178
  var R, L, p;
2174
- const { common: t, conversation: n, participants: a, isSelected: i } = e, { currentUser: s, theme: r, conversationList: o } = t, { TimeAgo: E, ConversationImage: l, CompactMessageContent: c } = r, { lastMessage: T } = n, I = a.length >= 3, _ = (R = T == null ? void 0 : T.sender) == null ? void 0 : R.name, A = (L = T == null ? void 0 : T.editedAt) != null ? L : T == null ? void 0 : T.createdAt, d = a.filter((C) => C.user.id !== s.id), N = d.length ? d : a, m = (p = n.subject) != null ? p : N.map((C) => C.user.name).join(", ");
2175
- return S`
2179
+ const { common: t, conversation: n, participants: a, isSelected: i } = e, { currentUser: s, theme: r, conversationList: o } = t, { TimeAgo: E, ConversationImage: l, CompactMessageContent: c } = r, { lastMessage: _ } = n, S = a.length >= 3, A = (R = _ == null ? void 0 : _.sender) == null ? void 0 : R.name, O = (L = _ == null ? void 0 : _.editedAt) != null ? L : _ == null ? void 0 : _.createdAt, d = a.filter((C) => C.user.id !== s.id), N = d.length ? d : a, m = (p = n.subject) != null ? p : N.map((C) => C.user.name).join(", ");
2180
+ return I`
2176
2181
  <div
2177
2182
  className="t-theme-conversation-list-item"
2178
2183
  t-unread=${n.unreadMessageCount ? "" : void 0}
@@ -2189,20 +2194,20 @@ const Et = Object.freeze(Object.defineProperty({ __proto__: null, AudioBlock: fu
2189
2194
  <div className="t-header">
2190
2195
  <div className="t-conversation-name">${m}</div>
2191
2196
 
2192
- ${A && S`
2197
+ ${O && I`
2193
2198
  <span className="t-timestamp">
2194
- <${E} timestamp=${A} common=${t} />
2199
+ <${E} timestamp=${O} common=${t} />
2195
2200
  </span>
2196
2201
  `}
2197
2202
  </div>
2198
2203
 
2199
2204
  <div className="t-body">
2200
- ${T && S`
2205
+ ${_ && I`
2201
2206
  <div className="t-message">
2202
- ${I && _ && S`<span className="t-message-sender">${_}:</span>`}
2207
+ ${S && A && I`<span className="t-message-sender">${A}:</span>`}
2203
2208
 
2204
2209
  <${c}
2205
- message=${T}
2210
+ message=${_}
2206
2211
  common=${t}
2207
2212
  />
2208
2213
  </div>
@@ -2215,7 +2220,7 @@ const Et = Object.freeze(Object.defineProperty({ __proto__: null, AudioBlock: fu
2215
2220
  `;
2216
2221
  }, FileBlock: function({ block: e, downloadUrl: t, common: n }) {
2217
2222
  const { Icon: a } = n.theme;
2218
- return S`
2223
+ return I`
2219
2224
  <div className="t-theme-file-block">
2220
2225
  <a className="t-body-text" href=${t}>
2221
2226
  <${a}
@@ -2229,7 +2234,7 @@ const Et = Object.freeze(Object.defineProperty({ __proto__: null, AudioBlock: fu
2229
2234
  </div>
2230
2235
  `;
2231
2236
  }, GroupChatImage: function({ participants: e }) {
2232
- return S`
2237
+ return I`
2233
2238
  <div className="t-theme-group-chat-image">
2234
2239
  <div
2235
2240
  className="t-mini-avatar"
@@ -2239,7 +2244,7 @@ const Et = Object.freeze(Object.defineProperty({ __proto__: null, AudioBlock: fu
2239
2244
  className="t-mini-avatar"
2240
2245
  style=${{ backgroundImage: `url("${se(e[1].user)}")` }}
2241
2246
  ></div>
2242
- ${e.length > 2 && S`<svg
2247
+ ${e.length > 2 && I`<svg
2243
2248
  className="t-counter"
2244
2249
  viewBox="0 0 22 22"
2245
2250
  xmlns="http://www.w3.org/2000/svg"
@@ -2279,10 +2284,10 @@ const Et = Object.freeze(Object.defineProperty({ __proto__: null, AudioBlock: fu
2279
2284
  </div>
2280
2285
  `;
2281
2286
  }, Icon: function({ className: e = "", type: t }) {
2282
- return S`<${_s[t]} className=${`t-theme-icon ${e}`} />`;
2287
+ return I`<${_s[t]} className=${`t-theme-icon ${e}`} />`;
2283
2288
  }, ImageBlock: function({ block: e, downloadUrl: t, common: n }) {
2284
2289
  const { Icon: a } = n.theme, i = { "--img-w": e.width || 1, "--img-h": e.height || 1 };
2285
- return S`
2290
+ return I`
2286
2291
  <div className="t-theme-image-block">
2287
2292
  <a
2288
2293
  href=${e.url}
@@ -2304,7 +2309,7 @@ const Et = Object.freeze(Object.defineProperty({ __proto__: null, AudioBlock: fu
2304
2309
  `;
2305
2310
  }, LocationBlock: function({ block: e }) {
2306
2311
  const { imageUrl: t, linkUrl: n } = fn(e);
2307
- return S`
2312
+ return I`
2308
2313
  <div className="t-theme-location-block">
2309
2314
  <a
2310
2315
  href=${n}
@@ -2321,29 +2326,29 @@ const Et = Object.freeze(Object.defineProperty({ __proto__: null, AudioBlock: fu
2321
2326
  </div>
2322
2327
  `;
2323
2328
  }, Message: function(e) {
2324
- const { message: t, messageStatus: n, permissions: a, common: i } = e, { currentUser: s, theme: r, participants: o, chatbox: E, t: l } = i, { Avatar: c, Icon: T, ReferencedMessage: I, TimeAgo: _, MessageActionMenu: A } = r, d = o.length >= 3, N = t.sender, m = (N == null ? void 0 : N.id) !== s.id && d, R = t.referencedMessage, L = n !== "sending" && (a.canReplyToMessage || a.canDeleteMessage);
2329
+ const { message: t, messageStatus: n, permissions: a, common: i } = e, { currentUser: s, theme: r, participants: o, chatbox: E, t: l } = i, { Avatar: c, Icon: _, ReferencedMessage: S, TimeAgo: A, MessageActionMenu: O } = r, d = o.length >= 3, N = t.sender, m = (N == null ? void 0 : N.id) !== s.id && d, R = t.referencedMessage, L = n !== "sending" && (a.canReplyToMessage || a.canDeleteMessage);
2325
2330
  let p;
2326
- return p = N ? N.id === s.id ? "currentUser" : "other" : "system", S`
2331
+ return p = N ? N.id === s.id ? "currentUser" : "other" : "system", I`
2327
2332
  <div
2328
2333
  className="t-theme-message"
2329
2334
  t-sender=${p}
2330
2335
  t-message-id=${t.id}
2331
2336
  >
2332
2337
  <div className="t-message-row">
2333
- ${N && S`<${c}
2338
+ ${N && I`<${c}
2334
2339
  photoUrl=${se(N)}
2335
2340
  common=${i}
2336
2341
  />`}
2337
2342
 
2338
2343
  <div className="t-message-body">
2339
2344
  <!-- in group chats, show the message sender name in a random color -->
2340
- ${N && m && S`<div
2345
+ ${N && m && I`<div
2341
2346
  className="t-message-sender-name"
2342
2347
  style=${{ color: as(N.id) }}
2343
2348
  >
2344
2349
  ${N.name}
2345
2350
  </div>`}
2346
- ${R && S`<${I}
2351
+ ${R && I`<${S}
2347
2352
  referencedMessage=${R}
2348
2353
  common=${i}
2349
2354
  />`}
@@ -2355,39 +2360,39 @@ const Et = Object.freeze(Object.defineProperty({ __proto__: null, AudioBlock: fu
2355
2360
  />
2356
2361
 
2357
2362
  <div className="t-message-status">
2358
- <${_} timestamp=${t.createdAt} common=${i} />
2359
- ${p == "currentUser" && S`<${cs} ...${e} />`}
2363
+ <${A} timestamp=${t.createdAt} common=${i} />
2364
+ ${p == "currentUser" && I`<${cs} ...${e} />`}
2360
2365
  </div>
2361
2366
  </div>
2362
2367
 
2363
- ${L && S`
2368
+ ${L && I`
2364
2369
  <${Re}
2365
2370
  type="menu"
2366
- popoverComponent=${A}
2371
+ popoverComponent=${O}
2367
2372
  popoverProps=${{ message: t, permissions: a, common: i }}
2368
2373
  className="t-message-action-menu-button"
2369
2374
  aria-label="Message actions"
2370
2375
  >
2371
- <${T} className="t-action-menu-icon" type="horizontalDots" />
2376
+ <${_} className="t-action-menu-icon" type="horizontalDots" />
2372
2377
  </${Re}>
2373
2378
  `}
2374
- ${a.canAddReaction && S`
2379
+ ${a.canAddReaction && I`
2375
2380
  <${Re}
2376
2381
  className="t-add-reaction-button"
2377
2382
  popoverComponent=${Wi}
2378
2383
  popoverProps=${{ messageId: t.id, colorScheme: "light", className: "t-reaction-picker" }}
2379
2384
  aria-label="Add reaction"
2380
2385
  >
2381
- <${T} type="addEmoji" />
2386
+ <${_} type="addEmoji" />
2382
2387
  </${Re}>
2383
2388
  `}
2384
2389
  </div>
2385
2390
 
2386
- ${t.reactions.length > 0 && S`
2391
+ ${t.reactions.length > 0 && I`
2387
2392
  <div className="t-emoji-reactions">
2388
2393
  ${t.reactions.map((C) => {
2389
2394
  const D = C.currentUserReacted ? "remove your reaction" : "add reaction", h = C.count === 1 ? "person" : "people";
2390
- return S`
2395
+ return I`
2391
2396
  <button
2392
2397
  className="t-reaction-button"
2393
2398
  t-active=${C.currentUserReacted ? "true" : void 0}
@@ -2408,18 +2413,18 @@ const Et = Object.freeze(Object.defineProperty({ __proto__: null, AudioBlock: fu
2408
2413
  `;
2409
2414
  }, MessageActionMenu: function(e) {
2410
2415
  const { message: t, permissions: n, common: a } = e, { chatbox: i, t: s } = a;
2411
- return S` <div className="t-theme-message-action-menu">
2412
- ${n.canReplyToMessage && S`
2416
+ return I` <div className="t-theme-message-action-menu">
2417
+ ${n.canReplyToMessage && I`
2413
2418
  <${ie} className="t-menu-item" onSelect=${() => i.setReferencedMessage(t.id)}>
2414
2419
  ${s.REPLY_TO_MESSAGE}
2415
2420
  </${ie}>
2416
2421
  `}
2417
- ${n.canEditMessage && S`
2422
+ ${n.canEditMessage && I`
2418
2423
  <${ie} className="t-menu-item" onSelect=${() => i.setEditing(t.id)}>
2419
2424
  ${s.EDIT_MESSAGE}
2420
2425
  </${ie}>
2421
2426
  `}
2422
- ${n.canDeleteMessage && S`
2427
+ ${n.canDeleteMessage && I`
2423
2428
  <${ie} className="t-menu-item t-danger" onSelect=${() => i.deleteMessage(t.id)}>
2424
2429
  ${s.DELETE_MESSAGE}
2425
2430
  </${ie}>
@@ -2427,27 +2432,27 @@ const Et = Object.freeze(Object.defineProperty({ __proto__: null, AudioBlock: fu
2427
2432
  </div>`;
2428
2433
  }, MessageDivider: function(e) {
2429
2434
  const { timestamp: t, isReadMarker: n, isDayMarker: a, common: i } = e, { t: s } = i;
2430
- return S`
2435
+ return I`
2431
2436
  <div className="t-message-divider">
2432
2437
  <div className="t-line" t-side="left">
2433
2438
  <div className="t-line-segment" />
2434
2439
  </div>
2435
- ${a && S`
2440
+ ${a && I`
2436
2441
  <span className="t-day-marker">${rs(t, s)}</span>
2437
2442
  `}
2438
2443
  <div className="t-line" t-side="right">
2439
2444
  <div className="t-line-segment" />
2440
- ${n && S`
2445
+ ${n && I`
2441
2446
  <span className="t-unread-marker">${s.MESSAGELIST_NEW_MARKER}</span>
2442
2447
  `}
2443
2448
  </div>
2444
2449
  </div>
2445
2450
  `;
2446
2451
  }, MessageField: function(e) {
2447
- const { common: t, referencedMessage: n, editor: a, permissions: i, editMessageId: s } = e, { chatbox: r, device: o, conversation: E, t: l, theme: c } = t, { ReplyBar: T, Icon: I } = c, _ = s ? "edit" : "send", A = _ === "edit" && !a.atTextLimit && a.characterCount > 0, d = _ === "send" && a.isEmpty && i.canShareLocation, N = _ === "send" && a.isEmpty && i.canShareFile, m = _ === "send" && o.supportsEmojiPicker && !o.isMobile;
2448
- return S`
2449
- <div className="t-theme-message-field" t-mode=${_}>
2450
- ${a.showEmojiPicker && S`
2452
+ const { common: t, referencedMessage: n, editor: a, permissions: i, editMessageId: s } = e, { chatbox: r, device: o, conversation: E, t: l, theme: c } = t, { ReplyBar: _, Icon: S } = c, A = s ? "edit" : "send", O = A === "edit" && !a.atTextLimit && a.characterCount > 0, d = A === "send" && a.isEmpty && i.canShareLocation, N = A === "send" && a.isEmpty && i.canShareFile, m = A === "send" && o.supportsEmojiPicker && !o.isMobile;
2453
+ return I`
2454
+ <div className="t-theme-message-field" t-mode=${A}>
2455
+ ${a.showEmojiPicker && I`
2451
2456
  <div className="t-emoji-picker-wrapper">
2452
2457
  <${Dn} colorScheme="light" />
2453
2458
  </div>
@@ -2455,49 +2460,49 @@ const Et = Object.freeze(Object.defineProperty({ __proto__: null, AudioBlock: fu
2455
2460
  <${Ji} />
2456
2461
  <${ts} />
2457
2462
 
2458
- ${n && S`<${T}
2463
+ ${n && I`<${_}
2459
2464
  common=${t}
2460
2465
  referencedMessage=${n}
2461
2466
  />`}
2462
2467
 
2463
2468
  <div className="t-wrapper">
2464
2469
  <div className="t-text-form">
2465
- ${E.access === "Read" && S`
2470
+ ${E.access === "Read" && I`
2466
2471
  <div className="t-readonly">
2467
2472
  ${l.ENTRYBOX_PLACEHOLDER_CHAT_READONLY}
2468
2473
  </div>
2469
2474
  `}
2470
- ${E.access === "ReadWrite" && S`
2475
+ ${E.access === "ReadWrite" && I`
2471
2476
  <div className="t-textbox-column">
2472
2477
  <${Pi} placeholder=${l.ENTRYBOX_PLACEHOLDER} />
2473
2478
 
2474
2479
  <div className="t-button-overlay">
2475
- ${d && S`<button
2480
+ ${d && I`<button
2476
2481
  className="t-location-button"
2477
2482
  t-kind="icon-button"
2478
2483
  aria-label=${l.UPLOAD_SHARE_LOCATION}
2479
2484
  title=${l.UPLOAD_SHARE_LOCATION}
2480
2485
  onClick=${() => a.shareLocation()}
2481
2486
  >
2482
- <${I} type="locationPin" common=${t} />
2487
+ <${S} type="locationPin" common=${t} />
2483
2488
  </button>`}
2484
- ${N && S`<button
2489
+ ${N && I`<button
2485
2490
  className="t-attachment-button"
2486
2491
  t-kind="icon-button"
2487
2492
  aria-label=${l.UPLOAD_SEND_FILE}
2488
2493
  title=${l.UPLOAD_SEND_FILE}
2489
2494
  onClick=${() => a.attachFile()}
2490
2495
  >
2491
- <${I} type="attach" common=${t} />
2496
+ <${S} type="attach" common=${t} />
2492
2497
  </button>`}
2493
- ${m && S`<button
2498
+ ${m && I`<button
2494
2499
  className="t-emoji-button"
2495
2500
  t-kind="icon-button"
2496
2501
  aria-label="Insert an emoji"
2497
2502
  title="Insert an emoji"
2498
2503
  onClick=${() => a.toggleEmojiPicker()}
2499
2504
  >
2500
- <${I}
2505
+ <${S}
2501
2506
  type=${a.showEmojiPicker ? "close" : "emoji"}
2502
2507
  common=${t}
2503
2508
  />
@@ -2505,7 +2510,7 @@ const Et = Object.freeze(Object.defineProperty({ __proto__: null, AudioBlock: fu
2505
2510
  </div>
2506
2511
  </div>
2507
2512
  `}
2508
- ${_ === "send" && S`
2513
+ ${A === "send" && I`
2509
2514
  <div className="t-send-column">
2510
2515
  <button
2511
2516
  className="t-send-button"
@@ -2514,11 +2519,11 @@ const Et = Object.freeze(Object.defineProperty({ __proto__: null, AudioBlock: fu
2514
2519
  title=${l.SEND_BUTTON_TEXT}
2515
2520
  onClick=${() => a.send()}
2516
2521
  >
2517
- <${I} type="send" common=${t} />
2522
+ <${S} type="send" common=${t} />
2518
2523
  </button>
2519
2524
  </div>
2520
2525
  `}
2521
- ${_ === "edit" && S`
2526
+ ${A === "edit" && I`
2522
2527
  <div className="t-edit-row">
2523
2528
  <button
2524
2529
  t-action="cancel"
@@ -2529,7 +2534,7 @@ const Et = Object.freeze(Object.defineProperty({ __proto__: null, AudioBlock: fu
2529
2534
  <button
2530
2535
  t-action="save"
2531
2536
  onClick=${() => a.send()}
2532
- disabled=${!A}
2537
+ disabled=${!O}
2533
2538
  >
2534
2539
  ${l.SAVE}
2535
2540
  </button>
@@ -2542,12 +2547,12 @@ const Et = Object.freeze(Object.defineProperty({ __proto__: null, AudioBlock: fu
2542
2547
  }, MessageListFooter: function({ common: e }) {
2543
2548
  const { typing: t, theme: n } = e, { Avatar: a } = n, { users: i, many: s } = t;
2544
2549
  if (!s && i.length === 0) return null;
2545
- const r = s ? S`<div className="t-theme-avatar">5+</div>` : i.slice(0, 2).map((o) => S`<${a}
2550
+ const r = s ? I`<div className="t-theme-avatar">5+</div>` : i.slice(0, 2).map((o) => I`<${a}
2546
2551
  key=${o.id}
2547
2552
  photoUrl=${se(o)}
2548
2553
  common=${e}
2549
2554
  />`);
2550
- return S`
2555
+ return I`
2551
2556
  <div
2552
2557
  className="t-theme-message-list-footer"
2553
2558
  t-many=${String(s)}
@@ -2557,7 +2562,7 @@ const Et = Object.freeze(Object.defineProperty({ __proto__: null, AudioBlock: fu
2557
2562
  >
2558
2563
  <div className="t-typing-avatars" aria-hidden="true">
2559
2564
  ${r}
2560
- ${!s && i.length > 2 && S`<div className="t-theme-avatar">+${i.length - 2}</div>`}
2565
+ ${!s && i.length > 2 && I`<div className="t-theme-avatar">+${i.length - 2}</div>`}
2561
2566
  </div>
2562
2567
  <div className="t-typing-bubble">
2563
2568
  <div className="t-typing-animation">
@@ -2570,7 +2575,7 @@ const Et = Object.freeze(Object.defineProperty({ __proto__: null, AudioBlock: fu
2570
2575
  `;
2571
2576
  }, ReferencedMessage: function({ referencedMessage: e, common: t }) {
2572
2577
  const { theme: n } = t, { CompactMessageContent: a } = n;
2573
- return S`
2578
+ return I`
2574
2579
  <div className="t-theme-referenced-message">
2575
2580
  <div className="t-sender-name">${e.sender.name}</div>
2576
2581
  <div className="t-content">
@@ -2583,7 +2588,7 @@ const Et = Object.freeze(Object.defineProperty({ __proto__: null, AudioBlock: fu
2583
2588
  `;
2584
2589
  }, ReplyBar: function(e) {
2585
2590
  const { common: t, referencedMessage: n } = e, { chatbox: a, t: i, theme: s } = t, { Icon: r, CompactMessageContent: o } = s;
2586
- return S`
2591
+ return I`
2587
2592
  <div className="t-theme-reply-bar">
2588
2593
  <${r} className="t-reply-icon" type="reply" common=${t} />
2589
2594
 
@@ -2608,14 +2613,14 @@ const Et = Object.freeze(Object.defineProperty({ __proto__: null, AudioBlock: fu
2608
2613
  </div>
2609
2614
  `;
2610
2615
  }, TextBlock: function({ block: e }) {
2611
- return S`
2616
+ return I`
2612
2617
  <div className="t-theme-text-block">
2613
2618
  <${pn} block=${e} />
2614
2619
  </div>
2615
2620
  `;
2616
2621
  }, TimeAgo: function({ timestamp: e, common: t }) {
2617
2622
  const { t: n } = t, a = new Date(e).toLocaleString(n.locale, { weekday: "short", year: "numeric", month: "long", day: "numeric", hour: "numeric", minute: "numeric", second: "numeric" }), i = is(e, n);
2618
- return S`
2623
+ return I`
2619
2624
  <span className="t-theme-time-ago">
2620
2625
  <span
2621
2626
  role="time"
@@ -2628,7 +2633,7 @@ const Et = Object.freeze(Object.defineProperty({ __proto__: null, AudioBlock: fu
2628
2633
  `;
2629
2634
  }, VideoBlock: function({ block: e, downloadUrl: t, common: n }) {
2630
2635
  const { Icon: a } = n.theme;
2631
- return S`
2636
+ return I`
2632
2637
  <div className="t-theme-video-block">
2633
2638
  <div className="t-video-wrapper">
2634
2639
  <div className="t-root" style=${{ "--video-w": e.width || 1, "--video-h": e.height || 1 }}>
@@ -2652,7 +2657,7 @@ const Et = Object.freeze(Object.defineProperty({ __proto__: null, AudioBlock: fu
2652
2657
  </div>
2653
2658
  `;
2654
2659
  }, VoiceBlock: function({ block: e }) {
2655
- return S`<${et}
2660
+ return I`<${et}
2656
2661
  className="t-theme-voice-block"
2657
2662
  src=${e.url}
2658
2663
  filename=${e.filename}
@@ -2730,7 +2735,7 @@ const yt = (e, t) => (n) => {
2730
2735
  }, Ts = /(^|\s)(:[^:\s]+:?)$/, us = /(^|\s)(@[^@]*)$/;
2731
2736
  class Mn {
2732
2737
  constructor(t, n, a) {
2733
- this.state$ = t, this.device$ = n, this.userPermissions$ = a, this.currentDoc = ye.EMPTY, this.maxLength = 1e3, this.markAsTyping = /* @__PURE__ */ function(i, s) {
2738
+ this.state$ = t, this.device$ = n, this.userPermissions$ = a, this.currentDoc = Be.EMPTY, this.maxLength = 1e3, this.markAsTyping = /* @__PURE__ */ function(i, s) {
2734
2739
  let r = !1;
2735
2740
  return (...o) => {
2736
2741
  if (!r) return r = !0, setTimeout(() => {
@@ -2749,21 +2754,21 @@ class Mn {
2749
2754
  this.editorView = t;
2750
2755
  }
2751
2756
  emojiSuggesterPlugin() {
2752
- if (this.device$.peek().supportsEmojiPicker) return mt({ debug: !1, matcher: yt(Ts, B), onEnter: (t) => this.suggestEmoji(t.text, t.range), onChange: (t) => this.suggestEmoji(t.text, t.range), onExit: () => this.onExitSuggester(), onKeyDown: ({ event: t }) => {
2757
+ if (this.device$.peek().supportsEmojiPicker) return mt({ debug: !1, matcher: yt(Ts, w), onEnter: (t) => this.suggestEmoji(t.text, t.range), onChange: (t) => this.suggestEmoji(t.text, t.range), onExit: () => this.onExitSuggester(), onKeyDown: ({ event: t }) => {
2753
2758
  var n, a, i;
2754
2759
  return (i = (a = (n = this._suggesterKeydownHandlers).emoji) == null ? void 0 : a.call(n, t.key)) != null ? i : !1;
2755
2760
  } });
2756
2761
  }
2757
2762
  mentionsPlugin() {
2758
2763
  const t = this.userPermissions$.peek();
2759
- if (k.defined(t), t.canMention) return mt({ debug: !1, matcher: yt(us, B), onEnter: (n) => this.suggestMention(n.text, n.range), onChange: (n) => this.suggestMention(n.text, n.range), onExit: () => this.onExitSuggester(), onKeyDown: ({ event: n }) => {
2764
+ if (M.defined(t), t.canMention) return mt({ debug: !1, matcher: yt(us, w), onEnter: (n) => this.suggestMention(n.text, n.range), onChange: (n) => this.suggestMention(n.text, n.range), onExit: () => this.onExitSuggester(), onKeyDown: ({ event: n }) => {
2760
2765
  var a, i, s;
2761
2766
  return (s = (i = (a = this._suggesterKeydownHandlers).mention) == null ? void 0 : i.call(a, n.key)) != null ? s : !1;
2762
2767
  } });
2763
2768
  }
2764
2769
  closeSuggester() {
2765
- k.defined(this._suggestionRange), function(t, n) {
2766
- const { from: a, to: i } = n, s = t.state.tr.addMark(a, i, B.marks.literal.create());
2770
+ M.defined(this._suggestionRange), function(t, n) {
2771
+ const { from: a, to: i } = n, s = t.state.tr.addMark(a, i, w.marks.literal.create());
2767
2772
  t.dispatch(s);
2768
2773
  }(this.editorView, this._suggestionRange);
2769
2774
  }
@@ -2780,7 +2785,7 @@ class Mn {
2780
2785
  t.length < 1 || (this._suggestionRange = n, this.state$.suggestMentionQuery.set(t));
2781
2786
  }
2782
2787
  onPasteImage(t) {
2783
- k.defined(this.uploadFile), this.uploadFile(t);
2788
+ M.defined(this.uploadFile), this.uploadFile(t);
2784
2789
  }
2785
2790
  onChange(t) {
2786
2791
  this.currentDoc = t;
@@ -2790,17 +2795,17 @@ class Mn {
2790
2795
  setMaxLength(t) {
2791
2796
  this.maxLength = t;
2792
2797
  }
2793
- focus() {
2794
- var t;
2795
- (t = this.editorView) == null || t.dom.focus();
2798
+ focus({ skipProseMirrorStuff: t } = { skipProseMirrorStuff: !1 }) {
2799
+ var n, a;
2800
+ t ? (n = this.editorView) == null || n.dom.focus() : (a = this.editorView) == null || a.focus();
2796
2801
  }
2797
2802
  setText(t) {
2798
2803
  this.editorView && function(n, a) {
2799
2804
  const i = n.state.doc.content.size, s = a.split(/(<!!(?:mention|customemoji):.*?>)/g).filter((o) => o || o.length).map((o) => {
2800
2805
  const [E, l, c] = o.match(/<!!mention:(.*)\|(.*)>/) || [null];
2801
2806
  if (E && l && c) return ht(l, c);
2802
- const [T, I] = o.match(/<!!customemoji:(.*?)>/) || [null];
2803
- return T && I ? pt(I) : B.text(o);
2807
+ const [_, S] = o.match(/<!!customemoji:(.*?)>/) || [null];
2808
+ return _ && S ? pt(S) : w.text(o);
2804
2809
  }), r = n.state.tr.replaceWith(0, i, s);
2805
2810
  n.dispatch(r);
2806
2811
  }(this.editorView, t);
@@ -2821,7 +2826,7 @@ class Mn {
2821
2826
  }(this.editorView);
2822
2827
  }
2823
2828
  selectEmoji(t) {
2824
- k.defined(this.editorView), function(n, a, i) {
2829
+ M.defined(this.editorView), function(n, a, i) {
2825
2830
  const s = pt(a);
2826
2831
  let r;
2827
2832
  if (i) {
@@ -2832,7 +2837,7 @@ class Mn {
2832
2837
  }(this.editorView, t, this._suggestionRange), this.focus();
2833
2838
  }
2834
2839
  selectMention(t) {
2835
- k.defined(this.editorView), function(n, a, i) {
2840
+ M.defined(this.editorView), function(n, a, i) {
2836
2841
  const s = ht(a.id, a.name);
2837
2842
  let r = n.state.tr;
2838
2843
  if (i) {
@@ -2844,7 +2849,7 @@ class Mn {
2844
2849
  }
2845
2850
  }
2846
2851
  function Pn(e) {
2847
- const t = G(), n = M(), a = Te(), i = f(n.referencedMessage$), s = f(n.state$.userPermissions), r = ge(), { sendMessage: o } = ca(), E = f(r.state$);
2852
+ const t = G(), n = k(), a = Te(), i = f(n.referencedMessage$), s = f(n.state$.userPermissions), r = ge(), { sendMessage: o } = ca(), E = f(r.state$);
2848
2853
  let l;
2849
2854
  return l = e.editMessageId === void 0 ? new bt(E, o, e.attachFile, e.shareLocation, r.toggleEmojiPicker) : new bt(E, e.onEditMessage, () => {
2850
2855
  }, () => {
@@ -2852,7 +2857,7 @@ function Pn(e) {
2852
2857
  }), u(Gt.Provider, { value: { onClose: () => r.toggleEmojiPicker(!1), onEmojiSelected: (c) => r.selectEmoji(c) }, children: u(t.MessageField, { common: a, referencedMessage: i, permissions: s, editor: l, editMessageId: e.editMessageId }) });
2853
2858
  }
2854
2859
  function ds({ message: e }) {
2855
- const t = M(), n = Oe(), a = f(t.state$.editingMessageId), i = Y(() => z(e.content[0].children), [e]), s = ee({ isEmpty: i.length === 0, isTyping: !1, atTextLimit: !1, characterCount: i.length, showEmojiPicker: !1, suggestEmojiQuery: void 0, suggestMentionQuery: void 0 }), r = Y(() => new Mn(s, t.device$, t.state$.userPermissions), [s, t]), o = U(async () => {
2860
+ const t = k(), n = Oe(), a = f(t.state$.editingMessageId), i = U(() => z(e.content[0].children), [e]), s = ee({ isEmpty: i.length === 0, isTyping: !1, atTextLimit: !1, characterCount: i.length, showEmojiPicker: !1, suggestEmojiQuery: void 0, suggestMentionQuery: void 0 }), r = U(() => new Mn(s, t.device$, t.state$.userPermissions), [s, t]), o = y(async () => {
2856
2861
  const E = r.state$;
2857
2862
  if (E.isEmpty.peek() || E.atTextLimit.peek()) return;
2858
2863
  const l = r.getText();
@@ -2873,7 +2878,7 @@ function Is(e) {
2873
2878
  return u(t.MessageDivider, { common: n, ...e });
2874
2879
  }
2875
2880
  function Ns({ message: e }) {
2876
- const t = G(), n = M(), a = Te(), [i, s] = y("sent");
2881
+ const t = G(), n = k(), a = Te(), [i, s] = b("sent");
2877
2882
  return ce((r) => {
2878
2883
  if (e.id.startsWith("ephemeral-")) return s("sending");
2879
2884
  const o = n.state$.currentConversation.everyoneReadUntil.get();
@@ -2881,40 +2886,52 @@ function Ns({ message: e }) {
2881
2886
  }), u(t.Message, { common: a, message: e, messageStatus: i, permissions: n.messagePermissions$(e).get() });
2882
2887
  }
2883
2888
  function Rs({ extConversationId: e }) {
2884
- const t = Ce(), n = M(), a = Oe(), i = b(!0), s = b(null);
2889
+ const t = Ce(), n = k(), a = Oe(), i = B(!0), s = B(null);
2885
2890
  Ae(() => {
2886
2891
  i.current = s.current.scrollTop > -30;
2887
2892
  }), v(() => {
2888
2893
  i.current && (s.current.scrollTop = 0);
2889
2894
  }), v(() => {
2890
- const E = new IntersectionObserver((l) => n.state$.visibility.isInView.set(l[0].isIntersecting), { threshold: 0.9 });
2891
- return E.observe(s.current), () => E.disconnect();
2895
+ const c = new IntersectionObserver((_) => n.state$.visibility.isInView.set(_[0].isIntersecting), { threshold: 0.9 });
2896
+ return c.observe(s.current), () => c.disconnect();
2892
2897
  }, [n]), v(() => {
2893
- const E = () => n.state$.visibility.tabFocused.set(!document.hidden);
2894
- return document.addEventListener("visibilitychange", E), () => document.removeEventListener("visibilitychange", E);
2895
- }, [n]), ce((E) => {
2898
+ const c = () => n.state$.visibility.tabFocused.set(!document.hidden);
2899
+ return document.addEventListener("visibilitychange", c), () => document.removeEventListener("visibilitychange", c);
2900
+ }, [n]);
2901
+ const [r, o] = b(!1);
2902
+ v(() => {
2903
+ o(!1);
2904
+ const c = n.state$.currentConversation.peek();
2905
+ (c == null ? void 0 : c.isUnread) === !0 && t.conversation(e).markAsRead().catch((_) => {
2906
+ be.warn("Could not mark conversation as read", _);
2907
+ });
2908
+ }, [e, t, n]), ce((c) => {
2896
2909
  if (!s.current) return;
2897
- const l = n.state$.visibility.tabFocused.get(), c = n.state$.visibility.isInView.get(), T = function(_) {
2898
- if (_.checkVisibility) return _.checkVisibility({ contentVisibilityAuto: !0, opacityProperty: !0, visibilityProperty: !0, checkOpacity: !0, checkVisibilityCSS: !0 });
2910
+ const _ = n.state$.currentConversation.get(), S = !(!_ || !_.isUnread), A = _ == null ? void 0 : _.unreadMessageCount;
2911
+ if (S && A === 0) return void o(!0);
2912
+ if (S && r) return;
2913
+ if (!S) return void o(!1);
2914
+ const O = n.state$.visibility.tabFocused.get(), d = n.state$.visibility.isInView.get(), N = function(m) {
2915
+ if (m.checkVisibility) return m.checkVisibility({ contentVisibilityAuto: !0, opacityProperty: !0, visibilityProperty: !0, checkOpacity: !0, checkVisibilityCSS: !0 });
2899
2916
  {
2900
- const A = window.getComputedStyle(_), d = A.visibility, N = A.opacity;
2901
- return !(_.getClientRects().length === 0 || d === "hidden" || N === "0");
2917
+ const R = window.getComputedStyle(m), L = R.visibility, p = R.opacity;
2918
+ return !(m.getClientRects().length === 0 || L === "hidden" || p === "0");
2902
2919
  }
2903
- }(s.current), I = n.state$.currentConversation.get();
2904
- return I && I.isUnread && l && c && T ? t.conversation(I.id).markAsRead() : void 0;
2920
+ }(s.current);
2921
+ return O && d && N ? t.conversation(_.id).markAsRead() : void 0;
2905
2922
  });
2906
- const r = U((E) => {
2907
- const l = E.currentTarget;
2908
- l.scrollHeight - l.clientHeight + l.scrollTop < 90 && n.messageSubscription && n.messageSubscription.loadMore(10);
2909
- }, [n.messageSubscription]), o = f(n.state$.typing.child(e));
2910
- return x("div", { className: "t-message-list", ref: s, "t-menu-boundary": "", onScroll: r, children: [o && u(Ss, {}), u(Je, { each: n.chatItems$, children: (E) => u("div", { className: "t-message-group", children: u(Je, { each: E, item: Ls, itemProps: { controller: a, extConversationId: e } }) }) })] });
2923
+ const E = y((c) => {
2924
+ const _ = c.currentTarget;
2925
+ _.scrollHeight - _.clientHeight + _.scrollTop < 90 && n.messageSubscription && n.messageSubscription.loadMore(10);
2926
+ }, [n.messageSubscription]), l = f(n.state$.typing.child(e));
2927
+ return x("div", { className: "t-message-list", ref: s, "t-menu-boundary": "", onScroll: E, children: [l && u(Ss, {}), u(Ze, { each: n.chatItems$, children: (c) => u("div", { className: "t-message-group", children: u(Ze, { each: c, item: Ls, itemProps: { controller: a, extConversationId: e } }) }) })] });
2911
2928
  }
2912
2929
  function Ls({ item$: e }) {
2913
- const t = M(), n = f(e), a = f(t.state$.editingMessageId);
2930
+ const t = k(), n = f(e), a = f(t.state$.editingMessageId);
2914
2931
  return n instanceof Qe ? u(Is, { timestamp: n.timestamp, isReadMarker: n.isReadMarker, isDayMarker: n.isDayMarker }) : a === n.id ? u(ds, { message: n }) : u(Ns, { message: n });
2915
2932
  }
2916
2933
  const ms = /* @__PURE__ */ new Set(["ByV39eoc", "B1FxElnd", "aW4c49tW", "qGfuGtx", "SbERe5ee", "ilaVEa15", "FOlWOSaH", "dao5gGmT", "DLUgAhzL", "fqXFumr6", "FtiWHMYT", "66iWOyWt", "1375amYi", "mWbJgzpt", "jO7GqAvL", "SkFIKxo5", "2z4ILc3y", "aDr8oPL1", "Hku1c4Pt"]);
2917
- function Fe({ appId: e, chatboxState: t }) {
2934
+ function Ve({ appId: e, chatboxState: t }) {
2918
2935
  const n = e.charAt(0) === "t" || ms.has(e);
2919
2936
  return v(() => {
2920
2937
  switch (t.type) {
@@ -2933,19 +2950,19 @@ function Fe({ appId: e, chatboxState: t }) {
2933
2950
  case "server-error":
2934
2951
  break;
2935
2952
  default:
2936
- k.never(t);
2953
+ M.never(t);
2937
2954
  }
2938
2955
  }, [t]), x("div", { className: "t-panel t-error-panel", children: [u("span", { className: "t-heading", children: "Something went wrong." }), u("p", { children: "Please reload the page and try again." }), n ? x("p", { style: { fontStyle: "italic" }, children: ["Developer note: check your browser's developer tools console for messages that may help solve the problem.", u("br", {}), u("small", { children: "This message only shows up in test mode." })] }) : u("p", { children: "If things keep not working, do not hesitate to get in touch with us." })] });
2939
2956
  }
2940
2957
  function ps() {
2941
- const e = M(), t = f(e.t$);
2958
+ const e = k(), t = f(e.t$);
2942
2959
  return u("div", { className: "t-panel t-error-panel", children: u("span", { className: "t-heading", style: { fontStyle: "italic" }, children: t.CHAT_NOT_FOUND }) });
2943
2960
  }
2944
2961
  function Hn() {
2945
2962
  return u("div", { className: "t-panel t-loading-panel", children: u(rt, {}) });
2946
2963
  }
2947
2964
  function Un() {
2948
- const e = M(), t = f(e.t$);
2965
+ const e = k(), t = f(e.t$);
2949
2966
  return x("div", { className: "t-panel t-error-panel", children: [u("span", { className: "t-heading", style: { fontStyle: "italic" }, children: t.AUTH_EXPIRED_OVERLAY_TITLE }), u("p", { children: t.AUTH_EXPIRED_OVERLAY_DESCRIPTION })] });
2950
2967
  }
2951
2968
  const hs = () => !0;
@@ -2953,8 +2970,8 @@ async function lt(e, t, { initialDelay: n, maxDelay: a, log: i, shouldRetry: s =
2953
2970
  return t().catch(async (r) => {
2954
2971
  if (i && i(`[TalkJS] Retries left: ${e}. Error: ${JSON.stringify(r)}.`), e === 0 || !await s(r)) throw r;
2955
2972
  const o = 1e3 * n * 1.2, E = a ? Math.min(1e3 * a, o) : o, l = E * (1 - (c = 0.05) + 2 * Math.random() * c);
2956
- var c, T;
2957
- return (T = l, T <= 0 ? Promise.resolve() : new Promise((I) => setTimeout(I, T))).then(() => lt(e - 1, t, { initialDelay: l / 1e3, maxDelay: a, log: i, shouldRetry: s }));
2973
+ var c, _;
2974
+ return (_ = l, _ <= 0 ? Promise.resolve() : new Promise((S) => setTimeout(S, _))).then(() => lt(e - 1, t, { initialDelay: l / 1e3, maxDelay: a, log: i, shouldRetry: s }));
2958
2975
  });
2959
2976
  }
2960
2977
  function he() {
@@ -2965,16 +2982,16 @@ function he() {
2965
2982
  }
2966
2983
  function Ds(e, t, n) {
2967
2984
  const { beforeBrowserPermissionPrompt: a, onMissingBrowserPermissionCallback: i } = Gn(Kt);
2968
- return U(async () => {
2985
+ return y(async () => {
2969
2986
  function s(c) {
2970
2987
  c === "denied" && i({ type: e });
2971
2988
  }
2972
2989
  if (!a || !await async function(c) {
2973
2990
  if (!("permissions" in navigator)) return !1;
2974
- const T = c;
2991
+ const _ = c;
2975
2992
  try {
2976
- return (await navigator.permissions.query({ name: T })).state === "prompt";
2977
- } catch (I) {
2993
+ return (await navigator.permissions.query({ name: _ })).state === "prompt";
2994
+ } catch (S) {
2978
2995
  return !1;
2979
2996
  }
2980
2997
  }(e)) return t((c) => {
@@ -2995,23 +3012,23 @@ function Ds(e, t, n) {
2995
3012
  }, [a, i, e, t, ...n]);
2996
3013
  }
2997
3014
  function Cs({ onClose: e }) {
2998
- const t = M(), n = Oe(), a = Ce(), [i, s] = y(null);
2999
- return { attachFile: U(async (o) => {
3015
+ const t = k(), n = Oe(), a = Ce(), [i, s] = b(null);
3016
+ return { attachFile: y(async (o) => {
3000
3017
  try {
3001
- if (o || (o = (await new Promise((A) => {
3018
+ if (o || (o = (await new Promise((O) => {
3002
3019
  const d = document.createElement("input");
3003
3020
  d.type = "file", d.multiple = !1, d.addEventListener("change", () => {
3004
- A([...d.files]);
3021
+ O([...d.files]);
3005
3022
  }), d.addEventListener("cancel", () => {
3006
- A([]);
3023
+ O([]);
3007
3024
  }), d.click();
3008
3025
  }))[0]), !o) return;
3009
- const { uploadPromise: E, upload: l } = await async function(A, d) {
3010
- const N = A.name;
3026
+ const { uploadPromise: E, upload: l } = await async function(O, d) {
3027
+ const N = O.name;
3011
3028
  if (function(p) {
3012
3029
  return /\.(mp4|ts|mov|webm|ogv)$/i.test(p);
3013
- }(A.name)) {
3014
- const p = await We("video", A, (h) => ({ width: h.videoWidth, height: h.videoHeight, duration: h.duration, filename: N })), C = d.uploadVideo(A, p), D = function(h) {
3030
+ }(O.name)) {
3031
+ const p = await qe("video", O, (h) => ({ width: h.videoWidth, height: h.videoHeight, duration: h.duration, filename: N })), C = d.uploadVideo(O, p), D = function(h) {
3015
3032
  switch (h.name.split(".").pop()) {
3016
3033
  case "ts":
3017
3034
  return "video/MP2T";
@@ -3024,36 +3041,36 @@ function Cs({ onClose: e }) {
3024
3041
  default:
3025
3042
  return "video/mp4";
3026
3043
  }
3027
- }(A);
3028
- return { uploadPromise: C, upload: { type: "video", file: A, metadata: p, temporaryBlobUrl: URL.createObjectURL(new Blob([A], { type: D })) } };
3044
+ }(O);
3045
+ return { uploadPromise: C, upload: { type: "video", file: O, metadata: p, temporaryBlobUrl: URL.createObjectURL(new Blob([O], { type: D })) } };
3029
3046
  }
3030
3047
  if (function(p) {
3031
3048
  return /\.(mp3|m4a|ogg|oga|opus|flac|wav)$/i.test(p);
3032
- }(A.name)) {
3033
- const p = await We("audio", A, (C) => ({ duration: C.duration, filename: N }));
3034
- return { uploadPromise: d.uploadAudio(A, p), upload: { type: "audio", file: A, metadata: p, temporaryBlobUrl: URL.createObjectURL(new Blob([A])) } };
3049
+ }(O.name)) {
3050
+ const p = await qe("audio", O, (C) => ({ duration: C.duration, filename: N }));
3051
+ return { uploadPromise: d.uploadAudio(O, p), upload: { type: "audio", file: O, metadata: p, temporaryBlobUrl: URL.createObjectURL(new Blob([O])) } };
3035
3052
  }
3036
3053
  if (function(p) {
3037
3054
  return /(gif|png|jpg|jpeg|svg|bmp|webp)$/i.test(p);
3038
- }(A.name)) {
3039
- const p = await We("img", A, (C) => ({ width: C.naturalWidth, height: C.naturalHeight, filename: N }));
3040
- return { uploadPromise: d.uploadImage(A, p), upload: { type: "image", file: A, metadata: p, temporaryBlobUrl: URL.createObjectURL(new Blob([A])) } };
3055
+ }(O.name)) {
3056
+ const p = await qe("img", O, (C) => ({ width: C.naturalWidth, height: C.naturalHeight, filename: N }));
3057
+ return { uploadPromise: d.uploadImage(O, p), upload: { type: "image", file: O, metadata: p, temporaryBlobUrl: URL.createObjectURL(new Blob([O])) } };
3041
3058
  }
3042
- const m = { filename: N }, R = d.uploadFile(A, m), L = URL.createObjectURL(new Blob([A]));
3043
- return { uploadPromise: R, upload: { type: "file", file: A, metadata: m, temporaryBlobUrl: L } };
3059
+ const m = { filename: N }, R = d.uploadFile(O, m), L = URL.createObjectURL(new Blob([O]));
3060
+ return { uploadPromise: R, upload: { type: "file", file: O, metadata: m, temporaryBlobUrl: L } };
3044
3061
  }(o, a), c = l.file.size + "," + l.file.name;
3045
3062
  t.state$.localFileBlobUrls.child(t.state$.extCurrentConversationId.peek()).child(c).set({ url: l.temporaryBlobUrl, fetching: !1 }), t.latestFileUpload = l;
3046
- const T = he(), I = { upload: l, closePreview: T.resolve, uploaded: !1 };
3047
- let _;
3048
- s(I);
3063
+ const _ = he(), S = { upload: l, closePreview: _.resolve, uploaded: !1 };
3064
+ let A;
3065
+ s(S);
3049
3066
  try {
3050
- _ = await Bt(E, T.promise), s({ ...I, uploaded: !0 });
3051
- } catch (A) {
3052
- if (A === it) return;
3053
- s((d) => ({ ...d, error: A.toString() }));
3067
+ A = await Bt(E, _.promise), s({ ...S, uploaded: !0 });
3068
+ } catch (O) {
3069
+ if (O === it) return;
3070
+ s((d) => ({ ...d, error: O.toString() }));
3054
3071
  }
3055
- if (await T.promise === "cancel") return;
3056
- k.defined(_), n.sendFileMessage({ fileToken: _ });
3072
+ if (await _.promise === "cancel") return;
3073
+ M.defined(A), n.sendFileMessage({ fileToken: A });
3057
3074
  } finally {
3058
3075
  e(), s(null);
3059
3076
  }
@@ -3061,16 +3078,16 @@ function Cs({ onClose: e }) {
3061
3078
  try {
3062
3079
  const E = he(), l = { upload: { type: "location", location: void 0 }, uploaded: !1, closePreview: E.resolve };
3063
3080
  s(l);
3064
- const { permissionResult: c, location: T } = await Bt(new Promise((I) => {
3065
- navigator.geolocation.getCurrentPosition((_) => {
3066
- const A = { latitude: _.coords.latitude, longitude: _.coords.longitude };
3067
- I({ permissionResult: "granted", location: A });
3068
- }, (_) => {
3069
- _.code === 1 ? I({ permissionResult: "denied" }) : I({ permissionResult: "granted" });
3081
+ const { permissionResult: c, location: _ } = await Bt(new Promise((S) => {
3082
+ navigator.geolocation.getCurrentPosition((A) => {
3083
+ const O = { latitude: A.coords.latitude, longitude: A.coords.longitude };
3084
+ S({ permissionResult: "granted", location: O });
3085
+ }, (A) => {
3086
+ A.code === 1 ? S({ permissionResult: "denied" }) : S({ permissionResult: "granted" });
3070
3087
  });
3071
3088
  }), E.promise);
3072
- if (o(c), !T || (s({ ...l, upload: { type: "location", location: T }, uploaded: !0 }), await E.promise === "cancel")) return;
3073
- n.sendLocationMessage({ location: T });
3089
+ if (o(c), !_ || (s({ ...l, upload: { type: "location", location: _ }, uploaded: !0 }), await E.promise === "cancel")) return;
3090
+ n.sendLocationMessage({ location: _ });
3074
3091
  } catch (E) {
3075
3092
  if (E === it) return;
3076
3093
  throw E;
@@ -3083,7 +3100,7 @@ const it = Symbol("cancelled");
3083
3100
  function Bt(e, t) {
3084
3101
  return Promise.race([e, t.then(() => Promise.reject(it))]);
3085
3102
  }
3086
- async function We(e, t, n) {
3103
+ async function qe(e, t, n) {
3087
3104
  const a = document.createElement(e);
3088
3105
  try {
3089
3106
  return a.src = URL.createObjectURL(t), await new Promise((i, s) => {
@@ -3105,16 +3122,16 @@ function bn({ children: e, className: t, ...n }) {
3105
3122
  }
3106
3123
  function gs({ uploadState: e }) {
3107
3124
  const t = e.error, n = e.uploaded;
3108
- je(() => e.closePreview("cancel"), ".t-upload-preview");
3109
- const a = b(null);
3125
+ Fe(() => e.closePreview("cancel"), ".t-upload-preview");
3126
+ const a = B(null);
3110
3127
  v(() => {
3111
3128
  n && a.current.focus();
3112
3129
  }, [n]);
3113
- const i = M(), s = f(i.t$);
3130
+ const i = k(), s = f(i.t$);
3114
3131
  return u(bn, { className: "t-upload-preview", children: x("div", { className: "t-preview", children: [u(vs, { upload: e.upload, uploaded: n }), t !== void 0 && u("div", { className: "t-error-row", children: t }), x("div", { className: "t-send-row", children: [u("button", { className: "t-cancel", onClick: () => e.closePreview("cancel"), children: s.CANCEL }), t === void 0 && n && u("button", { className: "t-confirm-send test__confirm-upload-button", onClick: () => e.closePreview("send"), ref: a, children: s.SEND_BUTTON_TEXT })] })] }) });
3115
3132
  }
3116
3133
  function vs({ upload: e, uploaded: t }) {
3117
- const n = M(), a = f(n.t$);
3134
+ const n = k(), a = f(n.t$);
3118
3135
  return e.type !== "location" ? x(me, { children: [u(ks, { upload: e }), u(Ms, { upload: e, uploaded: t, t: a })] }) : t ? u(fs, { location: e.location }) : u("div", { className: "t-loading", children: u(rt, {}) });
3119
3136
  }
3120
3137
  function fs({ location: e }) {
@@ -3146,17 +3163,17 @@ function Ps(e) {
3146
3163
  return u("video", { ...n });
3147
3164
  }
3148
3165
  function Hs() {
3149
- const e = G(), t = M(), n = Te(), a = f(t.state$.isUserConnected), i = f(t.state$.userPermissions);
3166
+ const e = G(), t = k(), n = Te(), a = f(t.state$.isUserConnected), i = f(t.state$.userPermissions);
3150
3167
  return u(e.ChatHeader, { common: n, isUserConnected: a, permissions: i });
3151
3168
  }
3152
3169
  function Us({ appId: e, chatHeaderVisible: t, messageFieldVisible: n }) {
3153
3170
  const a = ge(), i = function() {
3154
- const _ = M(), A = ee(() => {
3155
- const m = _.extUserId$.get(), R = _.errors$.get(), L = _.authTokenState$.get(), p = m && _.currentUser$.get(), C = _.state$.currentConversation.get(), D = _.state$.extCurrentConversationId.get(), h = D && _.state$.participants.child(D).get(), P = _.app$.get();
3156
- return _.device$.get(), R.serverError ? "server-error" : R.wrongAppId ? "wrong-app-id" : L === "loading" || L === "idle" ? "loading-token" : L === "invalid" ? "invalid-token" : L === "expired" ? "expired-token" : L === "valid" ? R.unknownUser ? "unknown-user" : R.unknownConversation ? "loading-conv-failed" : p && C && h && P ? "loaded" : "loading-data" : void k.unreachable();
3171
+ const A = k(), O = ee(() => {
3172
+ const m = A.extUserId$.get(), R = A.errors$.get(), L = A.authTokenState$.get(), p = m && A.currentUser$.get(), C = A.state$.currentConversation.get(), D = A.state$.extCurrentConversationId.get(), h = D && A.state$.participants.child(D).get(), P = A.app$.get();
3173
+ return A.device$.get(), R.serverError ? "server-error" : R.wrongAppId ? "wrong-app-id" : L === "loading" || L === "idle" ? "loading-token" : L === "invalid" ? "invalid-token" : L === "expired" ? "expired-token" : L === "valid" ? R.unknownUser ? "unknown-user" : R.unknownConversation ? "loading-conv-failed" : p && C && h && P ? "loaded" : "loading-data" : void M.unreachable();
3157
3174
  }), d = ee({ type: "loading" });
3158
3175
  ce((m) => {
3159
- const R = A.get(), L = _.state$.extCurrentConversationId.peek(), p = _.extUserId$.peek(), C = _.appId$.peek();
3176
+ const R = O.get(), L = A.state$.extCurrentConversationId.peek(), p = A.extUserId$.peek(), C = A.appId$.peek();
3160
3177
  function D(h) {
3161
3178
  d.set({ type: "loading" });
3162
3179
  const P = setTimeout(() => {
@@ -3191,7 +3208,7 @@ function Us({ appId: e, chatHeaderVisible: t, messageFieldVisible: n }) {
3191
3208
  m.onCleanup = D({ type: "unknown-user", userId: p });
3192
3209
  break;
3193
3210
  default:
3194
- k.never(R);
3211
+ M.never(R);
3195
3212
  }
3196
3213
  });
3197
3214
  const N = ee({ type: "loading" });
@@ -3210,14 +3227,14 @@ function Us({ appId: e, chatHeaderVisible: t, messageFieldVisible: n }) {
3210
3227
  v(() => {
3211
3228
  a.uploadFile = s;
3212
3229
  }, [a, s]);
3213
- const [E, l] = y(!1), c = U((_) => {
3214
- s(_.dataTransfer.files[0]), _.preventDefault(), l(!1);
3215
- }, [s]), T = U((_) => {
3216
- _.preventDefault(), l(!0);
3217
- }, []), I = U((_) => {
3218
- _.preventDefault(), l(!1);
3230
+ const [E, l] = b(!1), c = y((A) => {
3231
+ s(A.dataTransfer.files[0]), A.preventDefault(), l(!1);
3232
+ }, [s]), _ = y((A) => {
3233
+ A.preventDefault(), l(!0);
3234
+ }, []), S = y((A) => {
3235
+ A.preventDefault(), l(!1);
3219
3236
  }, []);
3220
- return i.type === "invisible-loading" ? u(me, {}) : i.type === "loading" ? u(Hn, {}) : i.type === "inaccessible-conversation" ? u(ps, {}) : i.type === "unknown-user" || i.type === "auth-failed" || i.type === "wrong-app-id" || i.type === "server-error" || i.type === "unexpected-error" ? u(Fe, { appId: e, chatboxState: i }) : i.type == "expired-token" ? u(Un, {}) : i.type === "loaded" ? x("div", { className: "t-chatbox-content", onDragOver: T, onDragLeave: I, onDrop: c, children: [t && u(Hs, {}), u(Rs, { extConversationId: i.conversationId }), n && u(Pn, { attachFile: s, shareLocation: r }), o && u(gs, { uploadState: o }), E && u(bn, { className: "t-drop-overlay", children: u(be, { type: "attach" }) })] }) : u(me, {});
3237
+ return i.type === "invisible-loading" ? u(me, {}) : i.type === "loading" ? u(Hn, {}) : i.type === "inaccessible-conversation" ? u(ps, {}) : i.type === "unknown-user" || i.type === "auth-failed" || i.type === "wrong-app-id" || i.type === "server-error" || i.type === "unexpected-error" ? u(Ve, { appId: e, chatboxState: i }) : i.type == "expired-token" ? u(Un, {}) : i.type === "loaded" ? x("div", { className: "t-chatbox-content", onDragOver: _, onDragLeave: S, onDrop: c, children: [t && u(Hs, {}), u(Rs, { extConversationId: i.conversationId }), n && u(Pn, { attachFile: s, shareLocation: r }), o && u(gs, { uploadState: o }), E && u(bn, { className: "t-drop-overlay", children: u(ye, { type: "attach" }) })] }) : u(me, {});
3221
3238
  }
3222
3239
  function bs(e, t) {
3223
3240
  return e.map((a) => function(i, s) {
@@ -3299,15 +3316,15 @@ class ys {
3299
3316
  await this.talkSession.conversation(a).message(t).edit(n);
3300
3317
  }
3301
3318
  setReferencedMessage(t) {
3302
- this.store.state$.referencedMessageId.set(t);
3319
+ this.store.state$.referencedMessageId.set(t), setTimeout(() => this.editorInternals.focus({ skipProseMirrorStuff: !0 }), 100);
3303
3320
  }
3304
3321
  async sendMessage(t) {
3305
3322
  const n = this.store.state$.extCurrentConversationId.peek(), a = await async function(r, o) {
3306
3323
  var d, N, m, R, L;
3307
- const E = r.state$.extCurrentConversationId.peek(), l = r.state$.messages.child(E), c = typeof o.referencedMessage == "string" ? l.lookup.child(o.referencedMessage).peek() : await ((N = (d = o.referencedMessage) == null ? void 0 : d.get()) != null ? N : null), T = c && { ...c, type: "UserMessage", sender: c.sender, referencedMessageId: (R = (m = c.referencedMessage) == null ? void 0 : m.id) != null ? R : null };
3308
- T && delete T.referencedMessage;
3309
- const I = r.latestFileUpload, _ = "content" in o ? [wt(I, o.content[0])] : [Bs(o.text)], A = "text" in o ? o.text : bs(o.content.map((p) => wt(I, p)), {});
3310
- return { id: "ephemeral-" + yn(), type: "UserMessage", sender: r.currentUser$.peek(), createdAt: Date.now(), editedAt: null, custom: (L = o.custom) != null ? L : {}, origin: "web", referencedMessage: T, reactions: [], content: _, plaintext: A };
3324
+ const E = r.state$.extCurrentConversationId.peek(), l = r.state$.messages.child(E), c = typeof o.referencedMessage == "string" ? l.lookup.child(o.referencedMessage).peek() : await ((N = (d = o.referencedMessage) == null ? void 0 : d.get()) != null ? N : null), _ = c && { ...c, type: "UserMessage", sender: c.sender, referencedMessageId: (R = (m = c.referencedMessage) == null ? void 0 : m.id) != null ? R : null };
3325
+ _ && delete _.referencedMessage;
3326
+ const S = r.latestFileUpload, A = "content" in o ? [wt(S, o.content[0])] : [Bs(o.text)], O = "text" in o ? o.text : bs(o.content.map((p) => wt(S, p)), {});
3327
+ return { id: "ephemeral-" + yn(), type: "UserMessage", sender: r.currentUser$.peek(), createdAt: Date.now(), editedAt: null, custom: (L = o.custom) != null ? L : {}, origin: "web", referencedMessage: _, reactions: [], content: A, plaintext: O };
3311
3328
  }(this.store, t);
3312
3329
  this.store.state$.ephemeralMessages.child(n).child(a.id).set(a);
3313
3330
  const i = he();
@@ -3363,7 +3380,7 @@ function wt(e, t) {
3363
3380
  function Yt(e) {
3364
3381
  return Object.keys(e);
3365
3382
  }
3366
- class qe extends Error {
3383
+ class Je extends Error {
3367
3384
  constructor(t, n) {
3368
3385
  const a = function(i) {
3369
3386
  if (typeof i == "string") return i;
@@ -3423,14 +3440,14 @@ class ws {
3423
3440
  }
3424
3441
  async handleResponse(t, n) {
3425
3442
  if (t.status >= 300) {
3426
- if (t.status === 404) throw Ze.error(`[${this.appId}][BackendRestClient] Couldn't find resource.`), new qe("Could not find app.", `Could not find given appId: "${this.appId}". You can find your appId on https://talkjs.com/dashboard.`);
3443
+ if (t.status === 404) throw be.error(`[${this.appId}][BackendRestClient] Couldn't find resource.`), new Je("Could not find app.", `Could not find given appId: "${this.appId}". You can find your appId on https://talkjs.com/dashboard.`);
3427
3444
  if (t.status === 401) {
3428
3445
  const a = await this.authProvider.getToken();
3429
- throw Ze.error(`[${this.appId}][BackendRestClient] Couldn't authenticate ${n} with token ${a}.`), new qe("User not authenticated.", "Could not authenticate user. Check if your signature is calculated correctly.");
3446
+ throw be.error(`[${this.appId}][BackendRestClient] Couldn't authenticate ${n} with token ${a}.`), new Je("User not authenticated.", "Could not authenticate user. Check if your signature is calculated correctly.");
3430
3447
  }
3431
3448
  if (t.status >= 300 && t.status < 500) {
3432
3449
  const { error: a } = await t.json();
3433
- throw new qe(a);
3450
+ throw new Je(a);
3434
3451
  }
3435
3452
  {
3436
3453
  const a = await t.text();
@@ -3529,10 +3546,10 @@ class re {
3529
3546
  t = ((a = window.top) != null ? a : window).location.host;
3530
3547
  }
3531
3548
  if (t.endsWith("talkjs.com")) {
3532
- const i = t.match(/\w+-(\w+)\.talkjs\.com/);
3549
+ const i = t.match(/^(?:\w+-)?([^.]+)\.talkjs\.com$/);
3533
3550
  if (i) {
3534
3551
  const s = i[1];
3535
- return new re(`wss://realtime-${s}.talkjs.com/v1`, `https://app-${s}.talkjs.com/api/v0`, `https://api-${s}.talkjs.com/v1`);
3552
+ return ["app", "cdn", "api", "realtime"].includes(s) ? n : new re(`wss://realtime-${s}.talkjs.com/v1`, `https://app-${s}.talkjs.com/api/v0`, `https://api-${s}.talkjs.com/v1`);
3536
3553
  }
3537
3554
  return n;
3538
3555
  }
@@ -3540,23 +3557,23 @@ class re {
3540
3557
  }
3541
3558
  }
3542
3559
  function wn(e, t) {
3543
- const n = t.appId, a = t.userId, i = "conversationId" in t ? t.conversationId : void 0, s = Y(() => re.fromHost(t.host), [t.host]), r = b(void 0), o = Y(() => {
3544
- const T = r.current, I = typeof T != typeof t.tokenFetcher ? t.tokenFetcher : T;
3545
- return r.current = I, I;
3560
+ const n = t.appId, a = t.userId, i = "conversationId" in t ? t.conversationId : void 0, s = U(() => re.fromHost(t.host), [t.host]), r = B(void 0), o = U(() => {
3561
+ const _ = r.current, S = typeof _ != typeof t.tokenFetcher ? t.tokenFetcher : _;
3562
+ return r.current = S, S;
3546
3563
  }, [t.tokenFetcher]);
3547
3564
  Ae(() => {
3548
3565
  e.updateThemeCustom(t.themeCustom);
3549
3566
  }, [e, t.themeCustom]);
3550
- const E = Y(() => yn(), [t.appId, t.userId, t.token, o]), l = Ta({ apiUrls: s, appId: n, userId: a, token: t.token, tokenFetcher: o });
3567
+ const E = U(() => yn(), [t.appId, t.userId, t.token, o]), l = Ta({ apiUrls: s, appId: n, userId: a, token: t.token, tokenFetcher: o });
3551
3568
  v(() => e.listenForErrors(l, i), [l, e, i]);
3552
- const c = Y(() => new Ys(s, n, E, l._authProvider), [n, E, l, s]);
3569
+ const c = U(() => new Ys(s, n, E, l._authProvider), [n, E, l, s]);
3553
3570
  return v(() => e.listenForAuthChanges(l, o), [l, e, o]), v(() => e.listenForUserAndAppChanges(l, c), [e, c, l]), { session: l, restApi: c };
3554
3571
  }
3555
3572
  function Ue(e, t, n) {
3556
- const a = b(e), i = b(n);
3573
+ const a = B(e), i = B(n);
3557
3574
  return Ae(() => {
3558
3575
  a.current = e, i.current = n;
3559
- }), U((s) => {
3576
+ }), y((s) => {
3560
3577
  a.current && a.current(s), (t == null ? void 0 : t.tagName) !== "T-CHATBOX" && (t == null ? void 0 : t.tagName) !== "T-CONVERSATION-LIST" || function(r, o, E) {
3561
3578
  for (const l of E) {
3562
3579
  const c = new Event(l);
@@ -3567,68 +3584,67 @@ function Ue(e, t, n) {
3567
3584
  }
3568
3585
  function Yn(e) {
3569
3586
  v(() => {
3570
- if (window.cordova) {
3571
- const t = e.current;
3572
- k.defined(t);
3573
- const n = (a) => {
3574
- a.target instanceof HTMLAnchorElement && (a.preventDefault(), function(i) {
3575
- const s = window;
3576
- s.cordova.InAppBrowser ? s.cordova.InAppBrowser.open(i, "_system") : window.open(i, "_system", "location=yes");
3577
- }(a.target.href));
3587
+ const t = window, n = e.current;
3588
+ if (t.cordova && n) {
3589
+ const a = (i) => {
3590
+ i.target instanceof HTMLAnchorElement && (i.preventDefault(), function(s) {
3591
+ const r = window;
3592
+ r.cordova.InAppBrowser ? r.cordova.InAppBrowser.open(s, "_system") : window.open(s, "_system", "location=yes");
3593
+ }(i.target.href));
3578
3594
  };
3579
- return t.addEventListener("click", n), () => t.removeEventListener("click", n);
3595
+ return n.addEventListener("click", a), () => n.removeEventListener("click", a);
3580
3596
  }
3581
3597
  }, [e]);
3582
3598
  }
3583
3599
  function $n() {
3584
- const [e, t] = y(!0);
3600
+ const [e, t] = b(!0);
3585
3601
  return v(() => {
3586
3602
  t(!1);
3587
3603
  }, []), e;
3588
3604
  }
3589
- da(), ot(), sa({ observableFunctions: { child: (e, t) => (k(typeof t == "string" || typeof t == "number", "Key should be a string or a number"), ra.getProxy(e, t.toString())) } }), q.registerHandler(({ level: e, data: t }) => {
3605
+ da(), ot(), sa({ observableFunctions: { child: (e, t) => (M(typeof t == "string" || typeof t == "number", "Key should be a string or a number"), ra.getProxy(e, t.toString())) } }), q.registerHandler(({ level: e, data: t }) => {
3590
3606
  console[e]("[TalkJS]", ...t);
3591
3607
  });
3592
- const js = Ye(function(e, t) {
3608
+ const js = $e(function(e, t) {
3593
3609
  var C, D;
3594
3610
  const { onSendMessage: n, onDeleteMessage: a, beforeBrowserPermissionPrompt: i, onMissingBrowserPermission: s, messageFieldPlaceholder: r, messageFieldSpellcheck: o, __hostElement: E } = e;
3595
3611
  v(() => {
3596
3612
  var h;
3597
3613
  (h = e.__internalOnLoaded) == null || h.call(e);
3598
3614
  }, []);
3599
- const l = $n(), c = b(null);
3615
+ const l = $n(), c = B(E != null ? E : null);
3600
3616
  Yn(c);
3601
- const T = Ue(a, E, ["deleteMessage", "delete-message", "deletemessage", "DeleteMessage"]), I = Ue(n, E, ["sendMessage", "send-message", "sendmessage", "SendMessage"]), _ = { beforeBrowserPermissionPrompt: i, onMissingBrowserPermissionCallback: Ue(s, E, ["browserPermissionDenied", "browser-permission-denied", "browserpermissiondenied", "BrowserPermissionDenied"]) }, { store: A, controller: d, editorInternals: N, session: m } = function(h, P, F) {
3602
- const $ = h.conversationId, g = Y(() => new ln(h.appId, h.userId), []), { session: w, restApi: ue } = wn(g, h), ne = Y(() => new Mn(g.state$.editor, g.device$, g.state$.userPermissions), [g]), de = Y(() => new ys(g, w, ne, P, F), [w, g, ne, P, F]);
3617
+ const _ = Ue(a, E, ["deleteMessage", "delete-message", "deletemessage", "DeleteMessage"]), S = Ue(n, E, ["sendMessage", "send-message", "sendmessage", "SendMessage"]), A = { beforeBrowserPermissionPrompt: i, onMissingBrowserPermissionCallback: Ue(s, E, ["browserPermissionDenied", "browser-permission-denied", "browserpermissiondenied", "BrowserPermissionDenied"]) }, { store: O, controller: d, editorInternals: N, session: m } = function(h, P, F) {
3618
+ const $ = h.conversationId, g = U(() => new ln(h.appId, h.userId), []), { session: Y, restApi: ue } = wn(g, h), ne = U(() => new Mn(g.state$.editor, g.device$, g.state$.userPermissions), [g]), de = U(() => new ys(g, Y, ne, P, F), [Y, g, ne, P, F]);
3603
3619
  return ne.controller = de, v(() => {
3604
3620
  let X, K = !0;
3605
- const ve = w.currentUser.subscribe(async (Z) => {
3621
+ const ve = Y.currentUser.subscribe(async (Z) => {
3606
3622
  if (K && (g.errors$.unknownUser.set(!Z), Z && (g.currentUser$.set(Z), Z.role !== X))) {
3607
3623
  X = Z.role;
3608
- const Ve = await ue.getApp(Z.role);
3624
+ const xe = await ue.getApp(Z.role);
3609
3625
  if (!K) return;
3610
- g.app$.set(Ve);
3626
+ g.app$.set(xe);
3611
3627
  }
3612
3628
  });
3613
3629
  return () => {
3614
3630
  K = !1, ve.unsubscribe();
3615
3631
  };
3616
- }, [ue, w, g]), v(() => {
3632
+ }, [ue, Y, g]), v(() => {
3617
3633
  let X = !0;
3618
3634
  le(() => {
3619
3635
  g.state$.extCurrentConversationId.set($), g.state$.currentConversation.set(null), g.state$.referencedMessageId.set(null);
3620
3636
  });
3621
- const K = w.conversation($).subscribeMessages(async (j, Se) => {
3637
+ const K = Y.conversation($).subscribeMessages(async (j, Se) => {
3622
3638
  X && j && (await g.readyForNewMessagesPromise, g.storeMessages($, j, Se));
3623
3639
  });
3624
3640
  g.messageSubscription = K;
3625
- const ve = w.conversation($).subscribeParticipants((j) => {
3641
+ const ve = Y.conversation($).subscribeParticipants((j) => {
3626
3642
  X && j && g.state$.participants.child($).set(j);
3627
3643
  });
3628
3644
  g.participantSubscription = ve;
3629
- const Z = w.conversation($).subscribe(async (j) => {
3645
+ const Z = Y.conversation($).subscribe(async (j) => {
3630
3646
  X && j && g.state$.currentConversation.set(j);
3631
- }), Ve = w.conversation($).subscribeTyping((j) => {
3647
+ }), xe = Y.conversation($).subscribeTyping((j) => {
3632
3648
  X && j && g.storeTyping($, j);
3633
3649
  }), Vn = g.state$.participants.child($).onChange(({ value: j }) => {
3634
3650
  if (!j) return;
@@ -3638,22 +3654,22 @@ const js = Ye(function(e, t) {
3638
3654
  var W;
3639
3655
  for (const ae of Yt(g.onlineSubscriptions)) Se.has(ae) || ((W = g.onlineSubscriptions[ae]) == null || W.unsubscribe(), delete g.onlineSubscriptions[ae], g.state$.isUserConnected.child(ae).set(!1));
3640
3656
  });
3641
- for (const W of Se) g.onlineSubscriptions[W] || (g.onlineSubscriptions[W] = w.user(W).subscribeOnline((ae) => {
3657
+ for (const W of Se) g.onlineSubscriptions[W] || (g.onlineSubscriptions[W] = Y.user(W).subscribeOnline((ae) => {
3642
3658
  ae && g.state$.isUserConnected.child(W).set(ae.isConnected);
3643
3659
  }));
3644
3660
  }, { initial: !0 });
3645
3661
  return () => {
3646
- X = !1, ve.unsubscribe(), Z.unsubscribe(), K.unsubscribe(), Ve.unsubscribe(), g.messageSubscription = null, g.participantSubscription = null, Vn();
3662
+ X = !1, ve.unsubscribe(), Z.unsubscribe(), K.unsubscribe(), xe.unsubscribe(), g.messageSubscription = null, g.participantSubscription = null, Vn();
3647
3663
  for (const j of Yt(g.onlineSubscriptions)) g.onlineSubscriptions[j].unsubscribe();
3648
3664
  g.onlineSubscriptions = {}, g.state$.isUserConnected.set({});
3649
3665
  };
3650
- }, [g, $, w]), { store: g, controller: de, editorInternals: ne, session: w };
3651
- }(e, I, T), R = U(async () => {
3666
+ }, [g, $, Y]), { store: g, controller: de, editorInternals: ne, session: Y };
3667
+ }(e, S, _), R = y(async () => {
3652
3668
  const h = N.state$;
3653
3669
  if (h.isEmpty.peek() || h.atTextLimit.peek()) return;
3654
- const P = N.getText(), F = A.state$.referencedMessageId.peek();
3655
- F && d.setReferencedMessage(null), N.clearText(), A.state$.editor.showEmojiPicker.set(!1), await d.sendMessage({ text: P, referencedMessage: F != null ? F : void 0 });
3656
- }, [d, N, A]);
3670
+ const P = N.getText(), F = O.state$.referencedMessageId.peek();
3671
+ F && d.setReferencedMessage(null), N.clearText(), O.state$.editor.showEmojiPicker.set(!1), await d.sendMessage({ text: P, referencedMessage: F != null ? F : void 0 });
3672
+ }, [d, N, O]);
3657
3673
  v(() => {
3658
3674
  var P;
3659
3675
  const h = (P = e.enterSendsMessage) != null ? P : !0;
@@ -3663,11 +3679,15 @@ const js = Ye(function(e, t) {
3663
3679
  }, [N, o]), v(() => {
3664
3680
  N.placeholder$.set(r);
3665
3681
  }, [N, r]), jt(t, () => ({ deleteMessage: (h) => d.deleteMessage(h), setEditing: (h) => d.setEditing(h), editMessage: (h, P) => d.editMessage(h, P), sendMessage: (h) => d.sendMessage(h), sendFileMessage: (h) => d.sendFileMessage(h), sendLocationMessage: (h) => d.sendLocationMessage(h), setReferencedMessage: (h) => d.setReferencedMessage(h), getMessageFieldText: () => N.getText(), setMessageFieldText: (h) => N.setText(h) }));
3666
- const L = U(({ error: h }) => u(Fe, { appId: e.appId, chatboxState: { type: "unexpected-error", error: h } }), [e.appId]), p = "t-chatbox" + (e.className ? ` ${e.className}` : "");
3667
- return u("div", l ? { className: p, style: e.style, ref: c } : { className: p, style: e.style, ref: c, children: u(Qt, { fallbackRender: L, children: u(zt.Provider, { value: N, children: u(Wt.Provider, { value: A, children: u(qt.Provider, { value: e.theme, children: u(Kt.Provider, { value: _, children: u(Jt.Provider, { value: d, children: u(Zt.Provider, { value: m, children: u(_a.Provider, { value: { sendMessage: R }, children: u(Us, { appId: e.appId, chatHeaderVisible: (C = e.chatHeaderVisible) != null ? C : !0, messageFieldVisible: (D = e.messageFieldVisible) != null ? D : !0 }) }) }) }) }) }) }) }) }) });
3682
+ const L = y(({ error: h }) => u(Ve, { appId: e.appId, chatboxState: { type: "unexpected-error", error: h } }), [e.appId]), p = l ? null : u(Qt, { fallbackRender: L, children: u(zt.Provider, { value: N, children: u(Wt.Provider, { value: O, children: u(qt.Provider, { value: e.theme, children: u(Kt.Provider, { value: A, children: u(Jt.Provider, { value: d, children: u(Zt.Provider, { value: m, children: u(_a.Provider, { value: { sendMessage: R }, children: u(Us, { appId: e.appId, chatHeaderVisible: (C = e.chatHeaderVisible) != null ? C : !0, messageFieldVisible: (D = e.messageFieldVisible) != null ? D : !0 }) }) }) }) }) }) }) }) });
3683
+ if (E) return p;
3684
+ {
3685
+ const h = "t-chatbox" + (e.className ? ` ${e.className}` : "");
3686
+ return u("div", { className: h, style: e.style, ref: c, children: p });
3687
+ }
3668
3688
  });
3669
3689
  function Fs({ conversation: e }) {
3670
- const t = M(), n = Ce(), a = G(), i = tn(), s = f(t.extCurrentConversationId$), [r, o] = y([]);
3690
+ const t = k(), n = Ce(), a = G(), i = tn(), s = f(t.extCurrentConversationId$), [r, o] = b([]);
3671
3691
  return v(() => {
3672
3692
  const E = n.conversation(e.id).subscribeParticipants(async (l) => {
3673
3693
  l && o(l);
@@ -3676,7 +3696,7 @@ function Fs({ conversation: e }) {
3676
3696
  }, [n, e.id]), r ? u(a.ConversationListItem, { common: i, conversation: e, participants: r, isSelected: s === e.id }) : null;
3677
3697
  }
3678
3698
  function Vs() {
3679
- const e = M(), t = b(null);
3699
+ const e = k(), t = B(null);
3680
3700
  v(() => {
3681
3701
  let a = !0;
3682
3702
  const i = t.current;
@@ -3688,18 +3708,18 @@ function Vs() {
3688
3708
  a = !1;
3689
3709
  };
3690
3710
  }, [e]);
3691
- const n = U((a) => {
3711
+ const n = y((a) => {
3692
3712
  const i = a.currentTarget;
3693
3713
  i.scrollHeight - i.clientHeight - i.scrollTop < 15 && e.conversationListSubscription && e.conversationListSubscription.loadMore(20);
3694
3714
  }, [e]);
3695
- return u("div", { className: "t-conversation-list-scrollable", ref: t, "t-menu-boundary": "", onScroll: n, children: u(Je, { each: e.conversationsArray$, children: (a) => u(Fs, { conversation: a.get() }) }) });
3715
+ return u("div", { className: "t-conversation-list-scrollable", ref: t, "t-menu-boundary": "", onScroll: n, children: u(Ze, { each: e.conversationsArray$, children: (a) => u(Fs, { conversation: a.get() }) }) });
3696
3716
  }
3697
3717
  function xs({ appId: e }) {
3698
- M();
3718
+ k();
3699
3719
  const t = function() {
3700
- const n = M(), a = ee(() => {
3720
+ const n = k(), a = ee(() => {
3701
3721
  const r = n.currentUser$.get(), o = n.app$.get(), E = n.errors$.get(), l = n.authTokenState$.get();
3702
- return E.serverError ? "server-error" : E.wrongAppId ? "wrong-app-id" : l === "loading" || l === "idle" ? "loading-token" : l === "invalid" ? "invalid-token" : l === "expired" ? "expired-token" : l === "valid" ? E.unknownUser ? "unknown-user" : r && o ? "loaded" : "loading-data" : void k.unreachable();
3722
+ return E.serverError ? "server-error" : E.wrongAppId ? "wrong-app-id" : l === "loading" || l === "idle" ? "loading-token" : l === "invalid" ? "invalid-token" : l === "expired" ? "expired-token" : l === "valid" ? E.unknownUser ? "unknown-user" : r && o ? "loaded" : "loading-data" : void M.unreachable();
3703
3723
  }), i = ee({ type: "loading" });
3704
3724
  ce((r) => {
3705
3725
  const o = a.get(), E = n.extUserId$.peek(), l = n.appId$.peek();
@@ -3726,14 +3746,14 @@ function xs({ appId: e }) {
3726
3746
  case "unknown-user":
3727
3747
  r.onCleanup = function(c) {
3728
3748
  i.set({ type: "loading" });
3729
- const T = setTimeout(() => {
3749
+ const _ = setTimeout(() => {
3730
3750
  i.set(c);
3731
3751
  }, 5e3);
3732
- return () => clearTimeout(T);
3752
+ return () => clearTimeout(_);
3733
3753
  }({ type: "unknown-user", userId: E });
3734
3754
  break;
3735
3755
  default:
3736
- k.never(o);
3756
+ M.never(o);
3737
3757
  }
3738
3758
  });
3739
3759
  const s = ee({ type: "loading" });
@@ -3749,7 +3769,7 @@ function xs({ appId: e }) {
3749
3769
  } else s.set(i.get());
3750
3770
  }), f(s);
3751
3771
  }();
3752
- return t.type === "invisible-loading" ? u(me, {}) : t.type === "loading" ? u(Hn, {}) : t.type === "unknown-user" || t.type === "auth-failed" || t.type === "wrong-app-id" || t.type === "server-error" || t.type === "unexpected-error" ? u(Fe, { appId: e, chatboxState: t }) : t.type == "expired-token" ? u(Un, {}) : t.type === "loaded" ? u(Vs, {}) : u(me, {});
3772
+ return t.type === "invisible-loading" ? u(me, {}) : t.type === "loading" ? u(Hn, {}) : t.type === "unknown-user" || t.type === "auth-failed" || t.type === "wrong-app-id" || t.type === "server-error" || t.type === "unexpected-error" ? u(Ve, { appId: e, chatboxState: t }) : t.type == "expired-token" ? u(Un, {}) : t.type === "loaded" ? u(Vs, {}) : u(me, {});
3753
3773
  }
3754
3774
  class Xs {
3755
3775
  constructor(t, n) {
@@ -3762,81 +3782,92 @@ class Xs {
3762
3782
  this.onSelectConversation(n);
3763
3783
  }
3764
3784
  }
3765
- const Gs = Ye(function(e, t) {
3785
+ const Gs = $e(function(e, t) {
3786
+ const { __hostElement: n, onSelectConversation: a } = e;
3766
3787
  v(() => {
3767
- var c;
3768
- (c = e.__internalOnLoaded) == null || c.call(e);
3788
+ var S;
3789
+ (S = e.__internalOnLoaded) == null || S.call(e);
3769
3790
  }, []);
3770
- const n = $n(), a = b(null);
3771
- Yn(a);
3772
- const i = Ue(e.onSelectConversation, e.__hostElement, ["selectConversation", "select-conversation", "selectconversation", "SelectConversation"]), s = Y(() => new mn(e.appId, e.userId), []);
3791
+ const i = $n(), s = B(n != null ? n : null);
3792
+ Yn(s);
3793
+ const r = Ue(a, n, ["selectConversation", "select-conversation", "selectconversation", "SelectConversation"]), o = U(() => new mn(e.appId, e.userId), []);
3773
3794
  v(() => {
3774
3795
  le(() => {
3775
- s.extUserId$.set(e.userId), s.appId$.set(e.appId);
3796
+ o.extUserId$.set(e.userId), o.appId$.set(e.appId);
3776
3797
  });
3777
- }, [s, e.appId, e.userId]);
3778
- const { session: r } = wn(s, e), o = Y(() => new Xs(s, i), [s, i]);
3779
- v(() => s.listenForConversations(r), [s, r]), v(() => {
3780
- e.selectedConversationId !== void 0 && s.extCurrentConversationId$.set(e.selectedConversationId);
3781
- }, [s, e.selectedConversationId]), jt(t, () => ({ selectConversation: (c) => o.selectConversation(c) }));
3782
- const E = U(({ error: c }) => u(Fe, { appId: e.appId, chatboxState: { type: "unexpected-error", error: c } }), [e.appId]), l = "t-conversation-list" + (e.className ? ` ${e.className}` : "");
3783
- return u("div", n ? { className: l, style: e.style, ref: a } : { className: l, style: e.style, ref: a, children: u(Qt, { fallbackRender: E, children: u(Wt.Provider, { value: s, children: u(qt.Provider, { value: e.theme, children: u(Jt.Provider, { value: o, children: u(Zt.Provider, { value: r, children: u(xs, { appId: e.appId }) }) }) }) }) }) });
3798
+ }, [o, e.appId, e.userId]);
3799
+ const { session: E } = wn(o, e), l = U(() => new Xs(o, r), [o, r]);
3800
+ v(() => o.listenForConversations(E), [o, E]), v(() => {
3801
+ e.selectedConversationId !== void 0 && o.extCurrentConversationId$.set(e.selectedConversationId);
3802
+ }, [o, e.selectedConversationId]), v(() => {
3803
+ const S = e.__hostElement;
3804
+ if (S)
3805
+ return o.extCurrentConversationId$.onChange(({ value: A }) => {
3806
+ S.selectedConversationId = A;
3807
+ });
3808
+ }, [o, e.__hostElement]), jt(t, () => ({ selectConversation: (S) => l.selectConversation(S) }));
3809
+ const c = y(({ error: S }) => u(Ve, { appId: e.appId, chatboxState: { type: "unexpected-error", error: S } }), [e.appId]), _ = i ? null : u(Qt, { fallbackRender: c, children: u(Wt.Provider, { value: o, children: u(qt.Provider, { value: e.theme, children: u(Jt.Provider, { value: l, children: u(Zt.Provider, { value: E, children: u(xs, { appId: e.appId }) }) }) }) }) });
3810
+ if (n) return _;
3811
+ {
3812
+ const S = "t-conversation-list" + (e.className ? ` ${e.className}` : "");
3813
+ return u("div", { className: S, style: e.style, ref: s, children: _ });
3814
+ }
3784
3815
  }), zs = new Promise((e) => {
3785
3816
  typeof document != "undefined" && document.readyState === "loading" ? document.addEventListener("DOMContentLoaded", e, { once: !0 }) : e(void 0);
3786
3817
  });
3787
3818
  function jn(e, t, n, a) {
3788
3819
  const i = /* @__PURE__ */ new Map(), s = [], r = [];
3789
- for (const [I, _] of (E = n, Object.entries(E))) {
3790
- const A = [I, I.toLowerCase(), (o = I, o.replace(/[A-Z]+(?![a-z])|[A-Z]/g, (d, N) => (N ? "-" : "") + d.toLowerCase()))];
3791
- for (const d of A) i.set(d, I);
3792
- ["string", "boolean", "number"].includes(_.type) && s.push(...A), _.required !== !1 && r.push(I);
3820
+ for (const [S, A] of (E = n, Object.entries(E))) {
3821
+ const O = [S, S.toLowerCase(), (o = S, o.replace(/[A-Z]+(?![a-z])|[A-Z]/g, (d, N) => (N ? "-" : "") + d.toLowerCase()))];
3822
+ for (const d of O) i.set(d, S);
3823
+ ["string", "boolean", "number"].includes(A.type) && s.push(...O), A.required !== !1 && r.push(S);
3793
3824
  }
3794
3825
  var o, E;
3795
- const T = class T extends HTMLElement {
3826
+ const _ = class _ extends HTMLElement {
3796
3827
  constructor() {
3797
3828
  super(), this._renderRequested = !1, this._props = {}, this._renderRoot = null, this._ref = { current: null };
3798
- for (const [_, A] of i) {
3799
- if (Object.hasOwnProperty.call(this, _)) {
3800
- const d = this[_];
3801
- this.updateProp(A, d), delete this[_];
3829
+ for (const [A, O] of i) {
3830
+ if (Object.hasOwnProperty.call(this, A)) {
3831
+ const d = this[A];
3832
+ this.updateProp(O, d), delete this[A];
3802
3833
  }
3803
- this.hasAttribute(_) && this.syncAttributeToProp(_);
3834
+ this.hasAttribute(A) && this.syncAttributeToProp(A);
3804
3835
  }
3805
3836
  }
3806
- updateProp(_, A) {
3807
- const { type: d } = n[_];
3808
- if (d === "boolean" && typeof A == "string" ? A = A !== "false" : d === "number" && typeof A == "string" && (A = Number(A)), A == null) {
3809
- const N = _ in this._props;
3810
- return delete this._props[_], N;
3837
+ updateProp(A, O) {
3838
+ const { type: d } = n[A];
3839
+ if (d === "boolean" && typeof O == "string" ? O = O !== "false" : d === "number" && typeof O == "string" && (O = Number(O)), O == null) {
3840
+ const N = A in this._props;
3841
+ return delete this._props[A], N;
3811
3842
  }
3812
3843
  {
3813
- const N = this._props[_] !== A;
3814
- return this._props[_] = A, N;
3844
+ const N = this._props[A] !== O;
3845
+ return this._props[A] = O, N;
3815
3846
  }
3816
3847
  }
3817
- syncAttributeToProp(_) {
3818
- const A = i.get(_);
3819
- k(A, `Attribute "${_}" should have matching prop`);
3820
- const d = this.getAttribute(_);
3821
- return this.updateProp(A, d);
3848
+ syncAttributeToProp(A) {
3849
+ const O = i.get(A);
3850
+ M(O, `Attribute "${A}" should have matching prop`);
3851
+ const d = this.getAttribute(A);
3852
+ return this.updateProp(O, d);
3822
3853
  }
3823
3854
  async requestRender() {
3824
3855
  this._renderRequested || (this._renderRequested = !0, this._renderRequested = await !1, this.render());
3825
3856
  }
3826
3857
  render() {
3827
3858
  this._renderRoot || (this._renderRoot = Sa(this));
3828
- const _ = r.filter((m) => !(m in this._props));
3829
- if (_.length > 0) return a(_), void this._renderRoot.render(null);
3830
- const A = Object.assign({}, this._props), d = (m) => {
3859
+ const A = r.filter((m) => !(m in this._props));
3860
+ if (A.length > 0) return a(A), void this._renderRoot.render(null);
3861
+ const O = Object.assign({}, this._props), d = (m) => {
3831
3862
  for (const [R, L] of Object.entries(m.current)) typeof L == "function" && (this[R] = (...p) => m.current[R](...p));
3832
3863
  }, N = e;
3833
- this._renderRoot.render(u(N, { ...A, ref: this._ref, __hostElement: this, __internalOnLoaded: () => {
3864
+ this._renderRoot.render(u(N, { ...O, ref: this._ref, __hostElement: this, __internalOnLoaded: () => {
3834
3865
  d(this._ref);
3835
3866
  } }));
3836
3867
  }
3837
3868
  async connectedCallback() {
3838
3869
  await zs;
3839
- for (const _ of s) this.hasAttribute(_) && this.syncAttributeToProp(_);
3870
+ for (const A of s) this.hasAttribute(A) && this.syncAttributeToProp(A);
3840
3871
  this.requestRender();
3841
3872
  }
3842
3873
  disconnectedCallback() {
@@ -3844,18 +3875,18 @@ function jn(e, t, n, a) {
3844
3875
  this._renderRoot && (this._renderRoot.unmount(), this._renderRoot = null);
3845
3876
  });
3846
3877
  }
3847
- attributeChangedCallback(_, A, d) {
3848
- A !== d && this.syncAttributeToProp(_) && this.requestRender();
3878
+ attributeChangedCallback(A, O, d) {
3879
+ O !== d && this.syncAttributeToProp(A) && this.requestRender();
3849
3880
  }
3850
3881
  };
3851
- T.observedAttributes = s;
3852
- let l = T;
3882
+ _.observedAttributes = s;
3883
+ let l = _;
3853
3884
  const c = {};
3854
- for (const [I, _] of i) c[I] = { set(A) {
3855
- this.updateProp(_, A) && this.requestRender();
3885
+ for (const [S, A] of i) c[S] = { set(O) {
3886
+ this.updateProp(A, O) && this.requestRender();
3856
3887
  }, get() {
3857
- var A;
3858
- return (A = this._props[_]) != null ? A : null;
3888
+ var O;
3889
+ return (O = this._props[A]) != null ? O : null;
3859
3890
  } };
3860
3891
  return Object.defineProperties(l.prototype, c), Object.defineProperty(l, "name", { value: t }), l;
3861
3892
  }
@@ -3865,19 +3896,22 @@ function Fn(e, t) {
3865
3896
  }
3866
3897
  const Ks = function(e) {
3867
3898
  const t = function(n) {
3868
- return Ye(function(a, i) {
3869
- var r, o;
3870
- const s = `${(r = a.key) != null ? r : ""}|${a.userId}|${a.appId}`;
3871
- return te(js, { ...a, key: s, theme: (o = a.theme) != null ? o : n, ref: i });
3899
+ return $e(function(a, i) {
3900
+ var o;
3901
+ const s = U(() => {
3902
+ var E;
3903
+ return { ...n, ...(E = a.theme) != null ? E : {} };
3904
+ }, [a.theme]), r = `${(o = a.key) != null ? o : ""}|${a.userId}|${a.appId}`;
3905
+ return te(js, { ...a, key: r, theme: s, ref: i });
3872
3906
  });
3873
3907
  }(e);
3874
3908
  return jn(t, "ChatboxHTMLElement", { __internalOnLoaded: { type: "function", required: !1 }, appId: { type: "string" }, userId: { type: "string" }, conversationId: { type: "string" }, theme: { type: "object", required: !1 }, token: { type: "string", required: !1 }, tokenFetcher: { type: "function", required: !1 }, host: { type: "string", required: !1 }, enterSendsMessage: { type: "boolean", required: !1 }, chatHeaderVisible: { type: "boolean", required: !1 }, messageFieldVisible: { type: "boolean", required: !1 }, messageFieldSpellcheck: { type: "boolean", required: !1 }, messageFieldPlaceholder: { type: "string", required: !1 }, onSendMessage: { type: "function", required: !1 }, onDeleteMessage: { type: "function", required: !1 }, beforeBrowserPermissionPrompt: { type: "function", required: !1 }, onMissingBrowserPermission: { type: "function", required: !1 }, themeCustom: { type: "object", required: !1 } }, (n) => Fn("<t-chatbox>", n));
3875
3909
  }(Et), Ws = function(e) {
3876
3910
  const t = function(n) {
3877
- return Ye(function(a, i) {
3878
- var r, o;
3879
- const s = `${(r = a.key) != null ? r : ""}|${a.userId}|${a.appId}`;
3880
- return te(Gs, { ...a, key: s, theme: (o = a.theme) != null ? o : n, ref: i });
3911
+ return $e(function(a, i) {
3912
+ var o;
3913
+ const s = `${(o = a.key) != null ? o : ""}|${a.userId}|${a.appId}`, r = U(() => a.theme ? { ...n, ...a.theme } : n, [a.theme]);
3914
+ return te(Gs, { ...a, key: s, theme: r, ref: i });
3881
3915
  });
3882
3916
  }(e);
3883
3917
  return jn(t, "ConversationListHTMLElement", { __internalOnLoaded: { type: "function", required: !1 }, appId: { type: "string" }, userId: { type: "string" }, selectedConversationId: { type: "string", required: !1 }, theme: { type: "object", required: !1 }, token: { type: "string", required: !1 }, tokenFetcher: { type: "function", required: !1 }, host: { type: "string", required: !1 }, themeCustom: { type: "object", required: !1 } }, (n) => Fn("<t-conversation-list>", n));