Merge branch 'develop' into feature/login-nextjs

This commit is contained in:
Timofey Boyko 2024-03-29 12:46:18 +03:00
commit 55d3dfb3b4
179 changed files with 1025 additions and 692 deletions

View File

@ -12,7 +12,13 @@
manifest.json provides metadata used when your web app is added to the
homescreen on Android. See https://developers.google.com/web/fundamentals/engage-and-retain/web-app-manifest/
-->
<link id="favicon" rel="shortcut icon" sizes="any" href="favicon.ico" />
<link
id="favicon"
rel="shortcut icon"
sizes="any"
href="/storage/whitelabel/root/favicon.png"
onerror="this.onerror=null;this.href='favicon.ico';"
/>
<link
id="favicon-icon"
rel="icon"

View File

@ -1,11 +1,10 @@
{
{
"AddManually": "أضف يدوياً",
"AddManuallyDescriptionAccounts": "قم بدعوة المستخدمين الجدد إلى DocSpace شخصيًا عبر البريد الإلكتروني",
"AddManuallyDescriptionRoom": "أضف مستخدمي DocSpace الحاليين إلى الغرفة باستخدام الأسماء أو قم بدعوة مستخدمين جدد شخصيًا عبر البريد الإلكتروني",
"EmailErrorMessage": "عنوان البريد الإلكتروني غير صالح. يمكنك تحرير البريد الإلكتروني بالضغط عليه.",
"InvitationLanguage": "لغة الدعوة",
"InviteAccountSearchPlaceholder": "ادعُ الناس بالبريد الإلكتروني",
"Invited": "مدعو",
"InviteRoomSearchPlaceholder": "ادعُ الناس بالاسم أو بالبريد الإلكتروني",
"InviteViaLink": "دعوة عبر الرابط",
"InviteViaLinkDescriptionAccounts": "قم بإنشاء ارتباط عالمي للمصادقة الذاتية في DocSpace",
@ -13,4 +12,4 @@
"LinkCopySuccess": "تم نسخ الرابط",
"ResetChange": "استعادة التغيير ",
"SendInvitation": "إرسال دعوة"
}
}

View File

@ -1,4 +1,4 @@
{
{
"AccentColor": "لهجة",
"AccessRightsAccessToProduct": "تم منح حق الوصول إلى الوحدة النمطية {{product}} إلى",
"AccessRightsAllUsers": " جميع {{users}} ",
@ -76,7 +76,6 @@
"DeleteTheme": "حذف الموضوع",
"DeleteThemeForever": "هل تريد حذف المظهر نهائيًا؟",
"DeleteThemeNotice": "سيتم حذف الموضوع بشكل دائم. لن تتمكن من التراجع عن هذا الإجراء.",
"Disabled": "تعطيل",
"DNSSettings": "إعدادات نظام أسماء النطاقات",
"DNSSettingsDescription": "إعدادات نظام أسماء النطاقات هي طريقة لتعيين عنوان موقع ويب بديل لإستضافتك.",
"DNSSettingsMobile": "أرسل طلبك إلى فريق الدعم لدينا ، وسيساعدك المتخصصون لدينا في الإعدادات.",
@ -213,4 +212,4 @@
"WhiteLabelTooltip": "يتم عرض الأحجام لشاشات ريتينا. بالنسبة لشاشات العرض ذات الدقة القياسية ، سيتم تغيير حجم عرض الشعار وارتفاعه وفقًا لذلك عند التحميل.",
"YouHaveUnsavedChanges": "لقد قمت بعدم حفظ التغييرات",
"YourCurrentDomain": "النطاق الحالي الخاص بك"
}
}

View File

@ -1,11 +1,10 @@
{
{
"AddManually": "Əl ilə əlavə edin",
"AddManuallyDescriptionAccounts": "Yeni istifadəçiləri e-poçt vasitəsilə şəxsən DocSpace-ə dəvət edin",
"AddManuallyDescriptionRoom": "Mövcud DocSpace istifadəçilərini adlardan istifadə edərək otağa əlavə edin və ya yeni istifadəçiləri e-poçt vasitəsilə şəxsən dəvət edin",
"EmailErrorMessage": "E-poçt ünvanı etibarlı deyil. Siz e-poçtu klikləməklə redaktə edə bilərsiniz.",
"InvitationLanguage": "Dəvət dili",
"InviteAccountSearchPlaceholder": "İnsanları e-məktubla dəvət edin",
"Invited": "Dəvət edildi",
"InviteRoomSearchPlaceholder": "İnsanları ad və ya e-məktubla dəvət edin",
"InviteViaLink": "Keçidlə dəvət edin",
"InviteViaLinkDescriptionAccounts": "DocSpace-də avtorizasiya üçün universal keçid yaradın",
@ -13,4 +12,4 @@
"LinkCopySuccess": "Link köçürüldü",
"ResetChange": "Dəyişikliyi sıfırlayın",
"SendInvitation": "Dəvət göndərin"
}
}

View File

@ -1,4 +1,4 @@
{
{
"AccentColor": "Vurğu",
"AccessRightsAccessToProduct": "{{product}} moduluna giriş hüququ verilmişdir",
"AccessRightsAllUsers": "Bütün {{users}}",
@ -76,7 +76,6 @@
"DeleteTheme": "Temanı silin",
"DeleteThemeForever": "Tema həmişəlik silinsin?",
"DeleteThemeNotice": "Tema həmişəlik silinəcək. Bu əməliyyatı geri qaytara bilməzsiniz.",
"Disabled": "Deaktiv edildi",
"DNSSettings": "DNS Parametrləri",
"DNSSettingsDescription": "DNS Parametrləri domeniniz üçün alternativ URL ",
"DNSSettingsMobile": "Sorğunuzu dəstək komandamıza göndərin və mütəxəssislərimiz sizə parametrlərdə kömək edəcəklər.",
@ -213,4 +212,4 @@
"WhiteLabelTooltip": "Retina displeylər üçün göstərilən ölçülər. Standart ekranlar üçün loqonun eni və hündürlüyü yükləmə zamanı müvafiq olaraq dəyişdiriləcək.",
"YouHaveUnsavedChanges": "Yadda saxlanmayan dəyişiklikləriniz var",
"YourCurrentDomain": "Cari domen adınız"
}
}

View File

@ -1,11 +1,10 @@
{
{
"AddManually": "Добавете ръчно",
"AddManuallyDescriptionAccounts": "Поканете нови потребители в DocSpace лично чрез имейл",
"AddManuallyDescriptionRoom": "Добавете съществуващи DocSpace потребители към стаята, като използвате имената или поканете нови потребители лично чрез имейл",
"EmailErrorMessage": "Невалиден имейл адрес. Можете да редактирате имейла, като щракнете върху него.",
"InvitationLanguage": "Език на поканата",
"InviteAccountSearchPlaceholder": "Поканете хора по имейл",
"Invited": "Поканени",
"InviteRoomSearchPlaceholder": "Поканете хора по име или имейл",
"InviteViaLink": "Поканете чрез линк",
"InviteViaLinkDescriptionAccounts": "Създайте универсален линк за самоупълномощаване в DocSpace",
@ -13,4 +12,4 @@
"LinkCopySuccess": "Връзката беше копирана",
"ResetChange": "Нулирай промяна",
"SendInvitation": "Изпращане на покана"
}
}

View File

@ -1,4 +1,4 @@
{
{
"AccentColor": "Акцент",
"AccessRightsAccessToProduct": "Достъпът до {{product}} модула е даден на",
"AccessRightsAllUsers": "Всички {{users}}",
@ -76,7 +76,6 @@
"DeleteTheme": "Изтриване на тема",
"DeleteThemeForever": "Изтриване на темата завинаги?",
"DeleteThemeNotice": "Темата ще бъде перманентно изтрита. Няма да можете да отмените това действие.",
"Disabled": "Деактивиран",
"DNSSettings": "DNS настройки",
"DNSSettingsDescription": "DNS настройките са начин да зададете алтернативен URL за вашето пространство.",
"DNSSettingsMobile": "Изпратете заявката си до нашия екип за обслужване на клиенти и специалистите ни ще Ви помогнат с настройките.",
@ -213,4 +212,4 @@
"WhiteLabelTooltip": "Показаните размери са за Retina дисплеи. За дисплеите със стандартни разделителни способности ширината и височината на логото ще бъдат съответно преоразмерени при качване.",
"YouHaveUnsavedChanges": "Имате незапазени промени",
"YourCurrentDomain": "Вашият текущ домейн"
}
}

View File

@ -1,11 +1,10 @@
{
{
"AddManually": "Přidat ručně",
"AddManuallyDescriptionAccounts": "Pozvěte osobně nové uživatele do DocSpace prostřednictvím e-mailu",
"AddManuallyDescriptionRoom": "Přidat stávající uživatele DocSpace do místnosti pomocí jmen nebo osobní pozvání nových uživatelů prostřednictvím e-mailu",
"EmailErrorMessage": "E-mailová adresa není platná. E-mailovou adresu můžete upravit kliknutím na tuto adresu.",
"InvitationLanguage": "Jazyk pozvánky",
"InviteAccountSearchPlaceholder": "Pozvat lidi e-mailem",
"Invited": "Pozvánka na",
"InviteRoomSearchPlaceholder": "Pozvat lidi podle jména nebo e-mailu",
"InviteViaLink": "Pozvání prostřednictvím odkazu",
"InviteViaLinkDescriptionAccounts": "Vytvoření univerzálního odkazu pro samoautorizaci v DocSpace",
@ -13,4 +12,4 @@
"LinkCopySuccess": "Odkaz byl zkopírován",
"ResetChange": "Obnovit změnu",
"SendInvitation": "Odeslat pozvánku"
}
}

View File

@ -1,4 +1,4 @@
{
{
"AccentColor": "Akcent",
"AccessRightsAccessToProduct": "Přístup k modulu {{product}} je udělen",
"AccessRightsAllUsers": "Všichni {{users}}",
@ -76,7 +76,6 @@
"DeleteTheme": "Odstranit téma",
"DeleteThemeForever": "Smazat téma navždy?",
"DeleteThemeNotice": "Téma bude trvale odstraněno. Tuto akci nebude možné vrátit zpět.",
"Disabled": "Deaktivováno",
"DNSSettings": "Nastavení DNS",
"DNSSettingsDescription": "Nastavení DNS umožňuje nastavit alternativní adresu URL pro váš prostor.",
"DNSSettingsMobile": "Pošlete svůj požadavek našemu týmu podpory a naši specialisté vám pomohou s nastavením.",
@ -213,4 +212,4 @@
"WhiteLabelTooltip": "Velikosti jsou uvedeny pro displeje Retina. U displejů se standardním rozlišením se šířka a výška loga při nahrávání odpovídajícím způsobem změní.",
"YouHaveUnsavedChanges": "Máte neuložené změny",
"YourCurrentDomain": "Vaše aktuální doména"
}
}

View File

@ -1,11 +1,10 @@
{
{
"AddManually": "Manuell einfügen",
"AddManuallyDescriptionAccounts": "Laden Sie neue Benutzer persönlich per E-Mail zu DocSpace ein",
"AddManuallyDescriptionRoom": "Fügen Sie bestehende DocSpace-Benutzer anhand der Namen zum Raum hinzu oder laden Sie neue Benutzer persönlich per E-Mail ein",
"EmailErrorMessage": "Die E-Mail-Adresse ist nicht gültig. Sie können die E-Mail bearbeiten, indem Sie sie anklicken.",
"InvitationLanguage": "Sprache der Einladung",
"InviteAccountSearchPlaceholder": "Personen per E-Mail einladen",
"Invited": "Eingeladen",
"InviteRoomSearchPlaceholder": "Personen per Name oder E-Mail einladen",
"InviteViaLink": "Über Link einladen",
"InviteViaLinkDescriptionAccounts": "Erstellen Sie einen allgemeinen Link für die Selbstautorisierung in DocSpace",
@ -13,4 +12,4 @@
"LinkCopySuccess": "Link wurde kopiert",
"ResetChange": "Änderung zurücksetzen",
"SendInvitation": "Einladung versenden"
}
}

View File

@ -1,4 +1,4 @@
{
{
"AccentColor": "Akzent",
"AccessRightsAccessToProduct": "Das Modul {{product}} ist zugreifbar für",
"AccessRightsAllUsers": "Alle Mitglieder mit dem Status {{users}}",
@ -76,7 +76,6 @@
"DeleteTheme": "Thema löschen",
"DeleteThemeForever": "Thema für immer löschen?",
"DeleteThemeNotice": "Das Thema wird endgültig gelöscht. Sie können diese Aktion nicht rückgängig machen.",
"Disabled": "Deaktiviert",
"DNSSettings": "DNS-Einstellungen",
"DNSSettingsDescription": "Mit DNS-Einstellungen können Sie eine alternative URL für Ihren Bereich festlegen.",
"DNSSettingsMobile": "Senden Sie Ihre Anfrage an unser Support-Team, und unsere Spezialisten werden Ihnen bei den Einstellungen helfen.",
@ -213,4 +212,4 @@
"WhiteLabelTooltip": "Die Größen sind für Retina-Displays angegeben. Für Displays mit Standardauflösungen werden die Breite und Höhe des Logos beim Hochladen entsprechend angepasst.",
"YouHaveUnsavedChanges": "Sie haben nicht gespeicherte Änderungen.",
"YourCurrentDomain": "Ihre aktuelle Domain"
}
}

View File

@ -1,11 +1,10 @@
{
{
"AddManually": "Προσθήκη με μη αυτόματο τρόπο",
"AddManuallyDescriptionAccounts": "Προσκαλέστε νέους χρήστες στο DocSpace προσωπικά μέσω email",
"AddManuallyDescriptionRoom": "Προσθέστε υπάρχοντες χρήστες του DocSpace στο δωμάτιο χρησιμοποιώντας τα ονόματα ή προσκαλέστε νέους χρήστες προσωπικά μέσω email",
"EmailErrorMessage": "Η διεύθυνση email δεν είναι έγκυρη. Μπορείτε να επεξεργαστείτε το email κάνοντας κλικ πάνω του.",
"InvitationLanguage": "Γλώσσα πρόσκλησης",
"InviteAccountSearchPlaceholder": "Πρόσκληση ατόμων μέσω email",
"Invited": "Προσκλήθηκε",
"InviteRoomSearchPlaceholder": "Πρόσκληση ατόμων με όνομα ή email",
"InviteViaLink": "Πρόσκληση μέσω συνδέσμου",
"InviteViaLinkDescriptionAccounts": "Δημιουργήστε μια καθολική σύνδεση για αυτοεξουσιοδότηση στο DocSpace",
@ -13,4 +12,4 @@
"LinkCopySuccess": "Ο σύνδεσμος έχει αντιγραφεί",
"ResetChange": "Επαναφορά αλλαγής",
"SendInvitation": "Αποστολή πρόσκλησης"
}
}

View File

@ -1,4 +1,4 @@
{
{
"AccentColor": "Προφορά",
"AccessRightsAccessToProduct": "Η πρόσβαση στην ενότητα του {{product}} δίνεται σε",
"AccessRightsAllUsers": "Όλοι οι {{users}}",
@ -76,7 +76,6 @@
"DeleteTheme": "Διαγραφή θέματος",
"DeleteThemeForever": "Διαγραφή θέματος για πάντα;",
"DeleteThemeNotice": "Το θέμα θα διαγραφεί οριστικά. Δεν θα μπορείτε να αναιρέσετε αυτήν την ενέργεια.",
"Disabled": "Απενεργοποιημένο",
"DNSSettings": "Ρυθμίσεις DNS",
"DNSSettingsDescription": "Οι ρυθμίσεις DNS είναι ένας τρόπος για να ορίσετε μια εναλλακτική διεύθυνση URL για τον χώρο σας.",
"DNSSettingsMobile": "Στείλτε το αίτημά σας στην ομάδα υποστήριξής μας και οι ειδικοί μας θα σας βοηθήσουν με τις ρυθμίσεις.",
@ -213,4 +212,4 @@
"WhiteLabelTooltip": "Τα μεγέθη εμφανίζονται για τις οθόνες Retina. Για τις οθόνες με τυπικές αναλύσεις, το πλάτος και το ύψος του λογότυπου θα αλλάξουν ανάλογα το μέγεθος κατά τη μεταφόρτωση.",
"YouHaveUnsavedChanges": "Έχετε μη αποθηκευμένες αλλαγές",
"YourCurrentDomain": "Το τρέχον όνομα τομέα σας"
}
}

View File

@ -1,4 +1,4 @@
{
{
"AddManually": "Add manually",
"AddManuallyDescriptionAccounts": "Invite new users to DocSpace personally via email",
"AddManuallyDescriptionRoom": "Add existing DocSpace users to the room using the names or invite new users personally via email",
@ -6,7 +6,6 @@
"GroupMaxAvailableRoleWarning": "Groups have the maximum available role - “{{role}}”. You can issue an increase in rights after adding a group to the room.",
"InvitationLanguage": "Invitation language",
"InviteAccountSearchPlaceholder": "Invite people by email",
"Invited": "Invited",
"InviteRoomSearchPlaceholder": "Invite people by name or email",
"InviteViaLink": "Invite via link",
"InviteViaLinkDescriptionAccounts": "Create a universal link for self-authorization in DocSpace",
@ -15,4 +14,4 @@
"ResetChange": "Reset change",
"SendInvitation": "Send invitation",
"UsersAlreadyAdded": "Some users have already been added"
}
}

View File

@ -24,6 +24,8 @@
"CSPHelp": "This setting is a security mechanism that can be used to protect against content injection attacks. The CSP describes secure resource download sources. Downloading from resources not included in the `white list` is blocked. Specify the domains (together with the protocol) with which it will work.",
"CSPInputPlaceholder": "Enter URL like this: https://example.com",
"CSPUrlHelp": "Enter the DocSpace domain name without URL paths or additional characters.",
"CSPInfoBarHeader": "HTTPS required",
"CSPInfoBarDescription": "Please enable the HTTPS protocol for your DocSpace to ensure the correct setup work.",
"CustomDescription": "Manually configure the parameters for embedding your DocSpace.",
"CustomizingDisplay": "Customizing the display",
"DataDisplay": "Data display settings",

View File

@ -1,4 +1,4 @@
{
{
"AboutDataImport": "Data import includes several steps: data upload, parcing, import configuration, and import. Your backup file will be stored in ONLYOFFICE DocSpace servers for 24 hours, and then it will be automatically deleted.",
"AccentColor": "Accent",
"AccessRightsAccessToProduct": "Access to {{product}} module is given to",
@ -96,7 +96,6 @@
"DeleteTheme": "Delete theme",
"DeleteThemeForever": "Delete theme forever?",
"DeleteThemeNotice": "The theme will be deleted permanently. You will not be able to undo this action.",
"Disabled": "Disabled",
"DiskSpaceUsed": "Disk space used",
"DNSSettings": "DNS Settings",
"DNSSettingsDescription": "Set an alternative URL address for your space. Send your request to our support team to get help with the settings.",
@ -305,4 +304,4 @@
"WithoutEmailHint": "You dont have users without emails. Please proceed to the next step.",
"YouHaveUnsavedChanges": "You have unsaved changes",
"YourCurrentDomain": "Your current domain"
}
}

View File

@ -1,11 +1,10 @@
{
{
"AddManually": "Añadir manualmente",
"AddManuallyDescriptionAccounts": "Invite a nuevos usuarios a DocSpace personalmente por correo electrónico",
"AddManuallyDescriptionRoom": "Añada usuarios existentes de DocSpace a la sala utilizando sus nombres o invite a nuevos usuarios personalmente por correo electrónico.",
"EmailErrorMessage": "La dirección de correo electrónico no es válida. Puede editar el correo electrónico haciendo clic en él.",
"InvitationLanguage": "Idioma de la invitación ",
"InviteAccountSearchPlaceholder": "Invitar por correo electrónico",
"Invited": "Invitado",
"InviteRoomSearchPlaceholder": "Invitar por nombre o correo electrónico",
"InviteViaLink": "Invitar mediante enlace",
"InviteViaLinkDescriptionAccounts": "Cree un enlace universal para la autorización en DocSpace",
@ -13,4 +12,4 @@
"LinkCopySuccess": "El enlace se ha copiado",
"ResetChange": "Restablecer cambio ",
"SendInvitation": "Enviar invitación"
}
}

View File

@ -1,4 +1,4 @@
{
{
"AccentColor": "Acento",
"AccessRightsAccessToProduct": "El acceso al módulo {{product}} se otorga a",
"AccessRightsAllUsers": "Todos {{users}}",
@ -76,7 +76,6 @@
"DeleteTheme": "Eliminar tema",
"DeleteThemeForever": "¿Eliminar el tema para siempre?",
"DeleteThemeNotice": "El tema se eliminará definitivamente. No podrá deshacer esta acción.",
"Disabled": "Deshabilitado",
"DNSSettings": "Configuración DNS",
"DNSSettingsDescription": "La configuración DNS permite establecer una URL alternativa para su espacio.",
"DNSSettingsMobile": "Envíe su solicitud a nuestro equipo de soporte y nuestros especialistas le ayudarán con la configuración.",
@ -213,4 +212,4 @@
"WhiteLabelTooltip": "Los tamaños se muestran para las pantallas Retina. Para las pantallas con resoluciones estándar, la anchura y la altura del logotipo se redimensionarán en consecuencia al cargarlo.",
"YouHaveUnsavedChanges": "Tiene cambios no guardados",
"YourCurrentDomain": "Su dominio actual"
}
}

View File

@ -1,11 +1,10 @@
{
{
"AddManually": "Lisää manuaalisesti",
"AddManuallyDescriptionAccounts": "Kutsu uusia käyttäjiä DocSpaceen henkilökohtaisesti sähköpostilla",
"AddManuallyDescriptionRoom": "Lisää olemassa olevat DocSpace-käyttäjät huoneeseen käyttämällä nimiä tai kutsu uudet käyttäjät henkilökohtaisesti sähköpostin kautta",
"EmailErrorMessage": "Sähköpostiosoite ei ole olemassa. Voit muokata sähköpostia klikkaamalla sitä.",
"InvitationLanguage": "Kutsukieli",
"InviteAccountSearchPlaceholder": "Kutsu ihmisiä sähköpostilla",
"Invited": "Kutsuttu",
"InviteRoomSearchPlaceholder": "Kutsu ihmisiä nimellä tai sähköpostilla",
"InviteViaLink": "Kutsu linkin kautta",
"InviteViaLinkDescriptionAccounts": "Luo yleinen linkki DocSpaceen itsevaltuutusta varten",
@ -13,4 +12,4 @@
"LinkCopySuccess": "Linkki on kopioitu",
"ResetChange": "Nollaa muutos",
"SendInvitation": "Lähetä kutsu"
}
}

View File

@ -1,4 +1,4 @@
{
{
"AccentColor": "Aksentti",
"AccessRightsAccessToProduct": "Pääsy moduuliin {{product}} on myönnetty",
"AccessRightsAllUsers": "Kaikki {{users}}",
@ -76,7 +76,6 @@
"DeleteTheme": "Poista teema",
"DeleteThemeForever": "Poista teema lopullisesti?",
"DeleteThemeNotice": "Teema poistetaan lopullisesti. Et voi kumota tätä toimintoa.",
"Disabled": "Poistettu käytöstä",
"DNSSettings": "DNS-asetukset",
"DNSSettingsDescription": "DNS-asetukset on tapa asettaa vaihtoehtoinen URL tilallesi.",
"DNSSettingsMobile": "Lähetä pyyntösi tukitiimillemme ja asiantuntijamme auttavat sinua asetusten kanssa.",
@ -213,4 +212,4 @@
"WhiteLabelTooltip": "Koot näytetään Retinanäytöille. Logon leveys ja korkeus vakioresoluution näytöille muutetaan vastaavasti latauksen yhteydessä.",
"YouHaveUnsavedChanges": "Sinulla on tallentamattomia muutoksia",
"YourCurrentDomain": "Nykyinen verkkotunnuksesi"
}
}

View File

@ -1,11 +1,10 @@
{
{
"AddManually": "Ajouter manuellement",
"AddManuallyDescriptionAccounts": "Invitez personnellement de nouveaux utilisateurs à DocSpace par e-mail",
"AddManuallyDescriptionRoom": "Ajoutez des utilisateurs existants de DocSpace à la salle en utilisant les noms ou invitez de nouveaux utilisateurs personnellement par e-mail",
"EmailErrorMessage": "Ladresse e-mail nest pas valide. Vous pouvez modifier le-mail en cliquant dessus.",
"InvitationLanguage": "Langue de l'invitation",
"InviteAccountSearchPlaceholder": "Inviter des personnes par e-mail",
"Invited": "Invité",
"InviteRoomSearchPlaceholder": "Inviter des personnes par leur nom ou leur e-mail",
"InviteViaLink": "Inviter via le lien",
"InviteViaLinkDescriptionAccounts": "Créez un lien universel pour lauto-autorisation dans DocSpace",
@ -13,4 +12,4 @@
"LinkCopySuccess": "Le lien a été copié",
"ResetChange": "Réinitialiser le changement",
"SendInvitation": "Envoyer une invitation"
}
}

View File

@ -1,4 +1,4 @@
{
{
"AccentColor": "Accent",
"AccessRightsAccessToProduct": "Accès au module {{product}} est accordé à",
"AccessRightsAllUsers": "Tous {{users}}",
@ -76,7 +76,6 @@
"DeleteTheme": "Supprimer le thème",
"DeleteThemeForever": "Supprimer le thème définitivement ?",
"DeleteThemeNotice": "Le thème sera définitivement supprimé. Vous ne pourrez pas annuler cette action.",
"Disabled": "Désactivé",
"DNSSettings": "Paramètres DNS",
"DNSSettingsDescription": "Les paramètres DNS permettent de définir une URL alternative pour votre espace.",
"DNSSettingsMobile": "Envoyez votre demande à notre équipe de support et nos spécialistes vous aideront à définir les paramètres.",
@ -213,4 +212,4 @@
"WhiteLabelTooltip": "Les tailles sont indiquées pour les écrans Retina. Pour les écrans de résolution standard, la largeur et la hauteur du logo seront redimensionnées en conséquence lors du téléchargement.",
"YouHaveUnsavedChanges": "Vous avec des modifications non-sauvegardées",
"YourCurrentDomain": "Votre domaine actuel"
}
}

View File

@ -1,11 +1,10 @@
{
{
"AddManually": "Ավելացնել ձեռքով",
"AddManuallyDescriptionAccounts": "Հրավիրեք նոր օգտվողներին DocSpace անձամբ էլփոստի միջոցով",
"AddManuallyDescriptionRoom": "Ավելացրեք DocSpace-ի առկա օգտատերերին սենյակին՝ օգտագործելով անունները կամ անձամբ հրավիրեք նոր օգտատերերի էլփոստի միջոցով",
"EmailErrorMessage": "Էլփոստի հասցեն վավեր չէ: Դուք կարող եք խմբագրել էլփոստը՝ սեղմելով դրա վրա:",
"InvitationLanguage": "Հրավերների լեզու",
"InviteAccountSearchPlaceholder": "Հրավիրեք մարդկանց էլ փոստով",
"Invited": "Հրավիրված",
"InviteRoomSearchPlaceholder": "Հրավիրեք մարդկանց անունով կամ էլ փոստով",
"InviteViaLink": "Հրավիրեք հղման միջոցով",
"InviteViaLinkDescriptionAccounts": "Ստեղծեք ունիվերսալ հղում DocSpace-ում ինքնալիազորման համար",
@ -13,4 +12,4 @@
"LinkCopySuccess": "Հղումը պատճենվել է",
"ResetChange": "Վերականգնել փոփոխությունը",
"SendInvitation": "Ուղարկել հրավոր"
}
}

View File

@ -1,4 +1,4 @@
{
{
"AccentColor": "Շեշտ",
"AccessRightsAccessToProduct": "Մատչում դեպի {{product}} մոդուլը տրվում է",
"AccessRightsAllUsers": "Բոլոր {{users}}",
@ -76,7 +76,6 @@
"DeleteTheme": "Ջնջել ոճը",
"DeleteThemeForever": "Ջնջե՞լ ոճը ընդմիշտ:",
"DeleteThemeNotice": "Թեման ընդմիշտ կջնջվի: Դուք չեք կարողանա հետարկել այս գործողությունը:",
"Disabled": "Անջատված է",
"DNSSettings": "DNS կարգավորումներ",
"DNSSettingsDescription": "DNS-ի կարգավորումները ձեր տարածքի համար այլընտրանքային URL սահմանելու միջոց է:",
"DNSSettingsMobile": "Ուղարկեք ձեր հարցումը մեր աջակցման թիմին, և մեր մասնագետները կօգնեն ձեզ կարգավորումներում:",
@ -213,4 +212,4 @@
"WhiteLabelTooltip": "Չափերը ցուցադրվում են Retina էկրանների համար: Ստանդարտ լուծումներ ունեցող էկրանների համար պատկերանշանի լայնությունը և բարձրությունը համապատասխանաբար կչափափոխվեն վերբեռնումից հետո:",
"YouHaveUnsavedChanges": "Դուք չպահված փոփոխություններ ունեք",
"YourCurrentDomain": "Ձեր ընթացիկ տիրույթը"
}
}

View File

@ -1,11 +1,10 @@
{
{
"AddManually": "Aggiungi manualmente",
"AddManuallyDescriptionAccounts": "Invita nuovi utenti a DocSpace personalmente tramite e-mail",
"AddManuallyDescriptionRoom": "Aggiungi utenti esistenti di DocSpace alla stanza utilizzando i nomi o invita nuovi utenti personalmente tramite e-mail",
"EmailErrorMessage": "Indirizzo email non valido. Puoi modificare lemail facendo clic su di essa.",
"InvitationLanguage": "Lingua dell'invito",
"InviteAccountSearchPlaceholder": "Invita persone via e-mail",
"Invited": "Invitato",
"InviteRoomSearchPlaceholder": "Invita persone per nome o e-mail",
"InviteViaLink": "Invita tramite link",
"InviteViaLinkDescriptionAccounts": "Crea un link universale per lauto-autorizzazione in DocSpace",
@ -13,4 +12,4 @@
"LinkCopySuccess": "Il link di collegamento è stato copiato",
"ResetChange": "Reimposta il cambiamento",
"SendInvitation": "Invia invito"
}
}

View File

@ -1,4 +1,4 @@
{
{
"AccentColor": "Accento",
"AccessRightsAccessToProduct": "Viene concesso l'accesso al modulo {{product}}",
"AccessRightsAllUsers": "Tutti {{users}}",
@ -76,7 +76,6 @@
"DeleteTheme": "Elimina tema",
"DeleteThemeForever": "Eliminare il tema per sempre?",
"DeleteThemeNotice": "Il tema verrà eliminato definitivamente. Non potrai annullare questa azione.",
"Disabled": "Disattivata",
"DNSSettings": "Impostazioni DNS",
"DNSSettingsDescription": "Impostazioni DNS è un modo per impostare un URL alternativo per il tuo spazio.",
"DNSSettingsMobile": "Invia la tua richiesta al nostro team di supporto e i nostri specialisti ti aiuteranno con le impostazioni.",
@ -213,4 +212,4 @@
"WhiteLabelTooltip": "Le dimensioni sono mostrate per i display Retina. Per i display con risoluzioni standard, la larghezza e laltezza del logo verranno ridimensionate di conseguenza al momento del caricamento.",
"YouHaveUnsavedChanges": "Hai delle modifiche non salvate",
"YourCurrentDomain": "Il tuo dominio attuale"
}
}

View File

@ -1,11 +1,10 @@
{
{
"AddManually": "手動で追加する",
"AddManuallyDescriptionAccounts": "新規ユーザーをメールでDocSpaceに招待する",
"AddManuallyDescriptionRoom": "既存のDocSpaceユーザーを名前を使ってルームに追加したり、新しいユーザーをメールアドレスで招待することができます",
"EmailErrorMessage": "メールアドレスが有効ではありません。メールアドレスをクリックすると編集できます。",
"InvitationLanguage": "招待の言語",
"InviteAccountSearchPlaceholder": "メールで招待する",
"Invited": "招待済み",
"InviteRoomSearchPlaceholder": "名前またはメールで招待する",
"InviteViaLink": "リンクで招待する",
"InviteViaLinkDescriptionAccounts": "DocSpaceで自己認証のためのユニバーサルリンクを作成する",
@ -13,4 +12,4 @@
"LinkCopySuccess": "リンクがコピーされました",
"ResetChange": "変更をリセット",
"SendInvitation": "招待を送信する"
}
}

View File

@ -1,4 +1,4 @@
{
{
"AccentColor": "アクセント",
"AccessRightsAccessToProduct": "{{product}} モジュールへのアクセス権は",
"AccessRightsAllUsers": "すべて {{users}}",
@ -76,7 +76,6 @@
"DeleteTheme": "テーマを解除する",
"DeleteThemeForever": "このテーマを永遠に解除しますか?",
"DeleteThemeNotice": "このテーマは永久に削除されます。このアクションを元に戻すことはできません。",
"Disabled": "無効",
"DNSSettings": "DNS設定",
"DNSSettingsDescription": "DNS設定は、自分のスペースの代替URLを設定する方法です。",
"DNSSettingsMobile": "弊社サポートチームまでご連絡いただければ、専門スタッフが設定をお手伝いさせていただきます。",
@ -213,4 +212,4 @@
"WhiteLabelTooltip": "サイズはRetinaディスプレイ用に表示されています。標準的な解像度のディスプレイの場合、ロゴの幅と高さはアップロード時に適宜リサイズされます。",
"YouHaveUnsavedChanges": "未保存変更はあります。",
"YourCurrentDomain": "現在お使いのドメイン"
}
}

View File

@ -1,11 +1,10 @@
{
{
"AddManually": "수동으로 추가",
"AddManuallyDescriptionAccounts": "이메일을 통해 개인적으로 DocSpace에 새 사용자 초대",
"AddManuallyDescriptionRoom": "이름으로 기존 DocSpace 사용자를 방에 추가하거나 이메일을 통해 개인적으로 새 사용자를 초대하세요",
"EmailErrorMessage": "이메일 주소가 유효하지 않습니다. 이메일을 클릭하면 편집할 수 있습니다.",
"InvitationLanguage": "초대 언어",
"InviteAccountSearchPlaceholder": "이메일로 사람들 초대",
"Invited": "초대 완료",
"InviteRoomSearchPlaceholder": "이름 또는 이메일로 사람들 초대",
"InviteViaLink": "링크를 통해 초대",
"InviteViaLinkDescriptionAccounts": "DocSpace에서 자체 인증을 위한 범용 링크 생성",
@ -13,4 +12,4 @@
"LinkCopySuccess": "링크가 복사되었습니다",
"ResetChange": "변경 사항 재설정",
"SendInvitation": "초대장 전송"
}
}

View File

@ -1,4 +1,4 @@
{
{
"AccentColor": "강조 ",
"AccessRightsAccessToProduct": "{{product}} 모듈에 대한 액세스 부여:",
"AccessRightsAllUsers": "전체 {{users}}",
@ -76,7 +76,6 @@
"DeleteTheme": "테마 삭제",
"DeleteThemeForever": "테마를 영구히 삭제하시겠습니까?",
"DeleteThemeNotice": "테마가 영구적으로 삭제됩니다. 그리고 이 작업은 취소할 수 없습니다.",
"Disabled": "비활성화",
"DNSSettings": "DNS 설정",
"DNSSettingsDescription": "DNS 설정은 스페이스에 대한 대체 URL을 설정하는 방법입니다.",
"DNSSettingsMobile": "지원팀에 요청을 보내면 저희측 전문가가 설정을 도와드릴 것입니다.",
@ -213,4 +212,4 @@
"WhiteLabelTooltip": "크기는 Retina 디스플레이용으로 표시됩니다. 표준 해상도를 사용하는 디스플레이의 경우 로고 너비와 높이는 업로드 시 그에 따라 크기가 조정됩니다.",
"YouHaveUnsavedChanges": "저장하지 않은 변경 사항이 있습니다",
"YourCurrentDomain": "내 현재 도메인"
}
}

View File

@ -1,11 +1,10 @@
{
{
"AddManually": "ເພີ່ມດ້ວຍຕົນເອງ",
"AddManuallyDescriptionAccounts": "ເຊີນຜູ້ໃຊ້ໃໝ່ເຂົ້າມາ DocSpace ສ່ວນຕົວຜ່ານທາງອີເມວ",
"AddManuallyDescriptionRoom": "ເພີ່ມ ຜູ້ໃຊ້ DocSpace ທີ່ມີຢູ່ແລ້ວ ໃສ່ຫ້ອງໂດຍໃຊ້ຊື່ ຫຼືເຊີນຜູ້ໃຊ້ໃໝ່ດ້ວຍຕົນເອງຜ່ານອີເມວ",
"EmailErrorMessage": "ທີ່ຢູ່ອີເມວບໍ່ຖືກຕ້ອງ. ທ່ານສາມາດແກ້ໄຂອີເມວໂດຍການຄລິກໃສ່ມັນ.",
"InvitationLanguage": "ພາສາເຊີນ",
"InviteAccountSearchPlaceholder": "ເຊີນຄົນທາງອີເມວ",
"Invited": "ເຊີນ",
"InviteRoomSearchPlaceholder": "ເຊີນຄົນດ້ວຍຊື່ ຫຼືອີເມລ໌",
"InviteViaLink": "ເຊີນຜ່ານລິ້ງ",
"InviteViaLinkDescriptionAccounts": "ສ້າງການເຊື່ອມຕໍ່ທົ່ວໄປສໍາລັບການອະນຸຍາດຕົນເອງໃນ DocSpace",
@ -13,4 +12,4 @@
"LinkCopySuccess": "ລິ້ງຖືກຄັດລອກແລ້ວ",
"ResetChange": "ຣີເຊັດການປ່ຽນແປງ",
"SendInvitation": "ສົ່ງຄຳເຊີນ"
}
}

View File

@ -1,4 +1,4 @@
{
{
"AccentColor": "ສຳນຽງ",
"AccessRightsAccessToProduct": "ການເຂົ້າເຖິງໂມດູນ {{product}} ທີ່ມອບໃຫ້",
"AccessRightsAllUsers": "{{users}} ທັງຫມົດ",
@ -65,7 +65,6 @@
"DeleteTheme": "ລຶບຮູບແບບສີສັນ",
"DeleteThemeForever": "ລຶບຮູບແບບສີສັນຖາວອນບໍ?",
"DeleteThemeNotice": "Το θέμα θα διαγραφεί οριστικά. Δεν θα μπορείτε να αναιρέσετε αυτήν την ενέργεια.",
"Disabled": "ປິດສິດ",
"DNSSettings": "ການຕັ້ງຄ່າ DNS",
"DNSSettingsDescription": "ການຕັ້ງຄ່າ DNS ແມ່ນວິທີທີ່ຈະຕັ້ງ URL ທາງເລືອກສໍາລັບພື້ນທີ່ຂອງທ່ານ.",
"DNSSettingsMobile": "ສົ່ງຄໍາຮ້ອງຂໍຂອງທ່ານໄປຫາທີມງານສະຫນັບສະຫນູນຂອງພວກເຮົາ, ແລະຜູ້ຊ່ຽວຊານຂອງພວກເຮົາຈະຊ່ວຍທ່ານໃນການຕັ້ງຄ່າ.",
@ -168,4 +167,4 @@
"WhiteLabelTooltip": "ຂະຫນາດແມ່ນສະແດງໃຫ້ເຫັນສໍາລັບຈໍສະແດງຜົນ Retina. ສໍາລັບຈໍສະແດງຜົນທີ່ມີຄວາມລະອຽດມາດຕະຖານ, ຄວາມກວ້າງແລະຄວາມສູງຂອງໂລໂກ້ຈະຖືກປັບຂະຫນາດຕາມການອັບໂຫລດ.",
"YouHaveUnsavedChanges": "ທ່ານມີການປ່ຽນແປງທີ່ຍັງບໍ່ໄດ້ບັນທຶກ",
"YourCurrentDomain": "ໂດເມນປັດຈຸບັນຂອງທ່ານ"
}
}

View File

@ -1,11 +1,10 @@
{
{
"AddManually": "Pievienot manuāli",
"AddManuallyDescriptionAccounts": "Uzaicināt jaunus lietotājus uz DocSpace personīgi pa e-pastu",
"AddManuallyDescriptionRoom": "Pievienot telpā esošos DocSpace lietotājus, izmantojot vārdus, vai uzaicināt jaunus lietotājus personīgi pa e-pastu",
"EmailErrorMessage": "E- pasta adrese ir nederīga. Jūs varat rediģēt e-pastu, noklikšķinot uz tā.",
"InvitationLanguage": "Uzaicinājuma valoda",
"InviteAccountSearchPlaceholder": "Uzaicināt personas pa e-pastu",
"Invited": "Uzaicināts",
"InviteRoomSearchPlaceholder": "Uzaicināt personas pēc vārda vai e-pasta adreses",
"InviteViaLink": "Uzaicināt, izmantojot saiti",
"InviteViaLinkDescriptionAccounts": "Izveidot universālu saiti pašautorizācijai DocSpace",
@ -13,4 +12,4 @@
"LinkCopySuccess": "Saite ir nokopēta",
"ResetChange": "Atiestatīt izmaiņas",
"SendInvitation": "Sūtīt ielūgumu"
}
}

View File

@ -1,4 +1,4 @@
{
{
"AccentColor": "Akcents",
"AccessRightsAccessToProduct": "{{product}} piekļuves tiesību modulis ir piešķirts",
"AccessRightsAllUsers": "Visi {{users}}",
@ -76,7 +76,6 @@
"DeleteTheme": "Izdzēst tēmu",
"DeleteThemeForever": "Vai izdzēst dizainu uz visiem laikiem?",
"DeleteThemeNotice": "Tēma tiks neatgriezeniski izdzēsta. Šo darbību nevarēs atsaukt.",
"Disabled": "Atspējots",
"DNSSettings": "DNS iestatījumi",
"DNSSettingsDescription": "DNS iestatījumi ir veids, kā iestatīt alternatīvu vietrādi URL jūsu telpai.",
"DNSSettingsMobile": "Nosūtiet savu pieprasījumu mūsu atbalsta komandai, un mūsu speciālisti palīdzēs jums ar iestatījumiem.",
@ -213,4 +212,4 @@
"WhiteLabelTooltip": "Izmēri ir parādīti Retina displejiem. Logotipa platuma un augstuma izmēri standarta izšķirtspējas displejiem pēc augšupielādes tiks atbilstoši mainīti.",
"YouHaveUnsavedChanges": "Jums ir nesaglabātas izmaiņas",
"YourCurrentDomain": "Jūsu pašreizējais domēns"
}
}

View File

@ -1,11 +1,10 @@
{
{
"AddManually": "Handmatig toevoegen",
"AddManuallyDescriptionAccounts": "Nodig nieuwe gebruikers persoonlijk per e-mail uit voor DocSpace",
"AddManuallyDescriptionRoom": "Bestaande DocSpace gebruikers toevoegen aan de kamer met behulp van de namen of nieuwe gebruikers persoonlijk uitnodigen per e-mail",
"EmailErrorMessage": "E-mailadres niet geldig. U kunt de e-mail bewerken door erop te klikken.",
"InvitationLanguage": "Taal van de uitnodiging",
"InviteAccountSearchPlaceholder": "Mensen per e-mail uitnodigen",
"Invited": "Uitgenodigd",
"InviteRoomSearchPlaceholder": "Mensen per e-mail uitnodigen",
"InviteViaLink": "Uitnodigen via link",
"InviteViaLinkDescriptionAccounts": "Maak een universele link voor zelfautorisatie in DocSpace",
@ -13,4 +12,4 @@
"LinkCopySuccess": "Link is gekopieerd",
"ResetChange": "Wijziging resetten",
"SendInvitation": "Stuur uitnodiging"
}
}

View File

@ -1,4 +1,4 @@
{
{
"AccentColor": "Accent",
"AccessRightsAccessToProduct": "Toegang tot {{product}} module wordt gegeven aan",
"AccessRightsAllUsers": "Alle {{users}}",
@ -76,7 +76,6 @@
"DeleteTheme": "Thema verwijderen",
"DeleteThemeForever": "Thema voorgoed verwijderen?",
"DeleteThemeNotice": "Het thema wordt definitief verwijderd. U kunt deze actie niet ongedaan maken.",
"Disabled": "Uitgeschakeld",
"DNSSettings": "DNS instellingen",
"DNSSettingsDescription": "DNS Instellingen is een manier om een alternatieve URL voor uw ruimte in te stellen.",
"DNSSettingsMobile": "Stuur uw verzoek naar ons ondersteuningsteam, en onze specialisten zullen u helpen met de instellingen.",
@ -213,4 +212,4 @@
"WhiteLabelTooltip": "De afmetingen zijn weergegeven voor de Retina schermen. Voor beeldschermen met standaardresoluties worden de breedte en hoogte van het logo bij het uploaden dienovereenkomstig aangepast.",
"YouHaveUnsavedChanges": "U hebt niet opgeslagen wijzigingen",
"YourCurrentDomain": "Uw huidige domein"
}
}

View File

@ -1,11 +1,10 @@
{
{
"AddManually": "Dodaj ręcznie",
"AddManuallyDescriptionAccounts": "Zaproś nowych użytkowników do DocSpace osobiście poprzez wiadomość e-mail",
"AddManuallyDescriptionRoom": "Dodaj istniejących użytkowników DocSpace do pokoju za pomocą nazw lub zaproś nowych użytkowników osobiście za pośrednictwem poczty elektronicznej",
"EmailErrorMessage": "Niepoprawny adres e-mail Możesz poprawić adres e-mail klikając go.",
"InvitationLanguage": "Język zaproszenia",
"InviteAccountSearchPlaceholder": "Zaproś ludzi poprzez e-mail",
"Invited": "Zaproszono",
"InviteRoomSearchPlaceholder": "Zaproś ludzi po imieniu lub poprzez adres e-mail",
"InviteViaLink": "Zaproś poprzez link",
"InviteViaLinkDescriptionAccounts": "Utwórz uniwersalny link do samodzielnej autoryzacji w DocSpace",
@ -13,4 +12,4 @@
"LinkCopySuccess": "Link został skopiowany",
"ResetChange": "Zresetuj zmianę",
"SendInvitation": "Wyślij zaproszenie"
}
}

View File

@ -1,4 +1,4 @@
{
{
"AccentColor": "Akcent",
"AccessRightsAccessToProduct": "Dostęp do modułu {{product}} został udzielony",
"AccessRightsAllUsers": "Wszyscy {{users}}",
@ -76,7 +76,6 @@
"DeleteTheme": "Usuń motyw",
"DeleteThemeForever": "Usunąć motyw na zawsze?",
"DeleteThemeNotice": "Motyw zostanie trwale usunięty. Nie będziesz w stanie cofnąć tego działania.",
"Disabled": "Wyłączono",
"DNSSettings": "Ustawienia DNS",
"DNSSettingsDescription": "Ustawienia DNS to sposób, by skonfigurować alternatywny URL dla Twojego obszaru roboczego.",
"DNSSettingsMobile": "Wyślij prośbę do naszego zespołu obsługi klienta, a nasi specjaliści pomogą Ci w konfiguracji.",
@ -213,4 +212,4 @@
"WhiteLabelTooltip": "Rozmiary są wyświetlane dla wyświetlaczy Retina W przypadku wyświetlaczy o standardowych rozdzielczościach szerokość i wysokość logo zostaną dostosowane po wgraniu.",
"YouHaveUnsavedChanges": "Masz niezapisane zmiany",
"YourCurrentDomain": "Twoja obecna domena"
}
}

View File

@ -1,11 +1,10 @@
{
{
"AddManually": "Adicionar manualmente",
"AddManuallyDescriptionAccounts": "Convide novos usuários para o DocSpace pessoalmente por e-mail",
"AddManuallyDescriptionRoom": "Adicione usuários existentes do DocSpace à sala usando os nomes ou convide novos usuários pessoalmente por e-mail",
"EmailErrorMessage": "Endereço de email inválido. Você pode editar o e-mail clicando nele.",
"InvitationLanguage": "Idioma do convite",
"InviteAccountSearchPlaceholder": "Convidar pessoas por e-mail",
"Invited": "Convidado",
"InviteRoomSearchPlaceholder": "Convidar pessoas por nome ou e-mail",
"InviteViaLink": "Convidar pelo link",
"InviteViaLinkDescriptionAccounts": "Crie um link universal para autoautorização no DocSpace",
@ -13,4 +12,4 @@
"LinkCopySuccess": "O link foi copiado",
"ResetChange": "Redefinir alteração",
"SendInvitation": "Enviar convite"
}
}

View File

@ -1,4 +1,4 @@
{
{
"AccentColor": "Acento",
"AccessRightsAccessToProduct": "O acesso ao módulo {{product}} é dado a",
"AccessRightsAllUsers": "Todos {{users}}",
@ -76,7 +76,6 @@
"DeleteTheme": "Excluir tema",
"DeleteThemeForever": "Excluir tema para sempre?",
"DeleteThemeNotice": "O tema será excluído permanentemente. Você não poderá desfazer esta ação.",
"Disabled": "Desabilitado",
"DNSSettings": "Configurações de DNS",
"DNSSettingsDescription": "As configurações de DNS são uma maneira de definir uma URL alternativa para o seu espaço.",
"DNSSettingsMobile": "Envie sua solicitação para nossa equipe de suporte e nossos especialistas o ajudarão com as configurações.",
@ -213,4 +212,4 @@
"WhiteLabelTooltip": "Os tamanhos são mostrados para as telas Retina. Para os monitores com resoluções padrão, a largura e a altura do logotipo serão redimensionadas de acordo com o upload.",
"YouHaveUnsavedChanges": "Você tem mudanças não salvas",
"YourCurrentDomain": "Seu domínio atual"
}
}

View File

@ -1,11 +1,10 @@
{
{
"AddManually": "Adicionar manualmente",
"AddManuallyDescriptionAccounts": "Convide novos utilizadores para o DocSpace pessoalmente através do email",
"AddManuallyDescriptionRoom": "Adicionar utilizadores do DocSpace à sala utilizando os nomes ou convidando novos utilizadores via email",
"EmailErrorMessage": "O Endereço de email não é válido. Pode editar o email ao clicar nele.",
"InvitationLanguage": "Idioma do convite",
"InviteAccountSearchPlaceholder": "Convidar pessoas por email",
"Invited": "Convidados",
"InviteRoomSearchPlaceholder": "Convidar pessoas pelo nome ou pelo email",
"InviteViaLink": "Convidar através de uma hiperligação",
"InviteViaLinkDescriptionAccounts": "Crie uma hiperligação universal para permitir a auto autorização no DocSpace",
@ -13,4 +12,4 @@
"LinkCopySuccess": "A ligação foi copiada",
"ResetChange": "Redefinir alteração",
"SendInvitation": "Enviar convite"
}
}

View File

@ -1,4 +1,4 @@
{
{
"AccentColor": "Destacar",
"AccessRightsAccessToProduct": "Acesso ao módulo {{product}} dado a",
"AccessRightsAllUsers": "Todos {{users}}",
@ -76,7 +76,6 @@
"DeleteTheme": "Eliminar tema",
"DeleteThemeForever": "Pretende eliminar o tema permanentemente?",
"DeleteThemeNotice": "O tema será eliminado permanentemente. Não será possível desfazer esta ação.",
"Disabled": "Desativado",
"DNSSettings": "Configurações de DNS",
"DNSSettingsDescription": "As configurações de DNS são uma forma de definir um URL alternativo para o seu espaço na internet.",
"DNSSettingsMobile": "Envie o seu pedido para a nossa equipa de apoio ao cliente, e os nossos especialistas vão ajudá-lo(a) com as configurações.",
@ -213,4 +212,4 @@
"WhiteLabelTooltip": "Os tamanhos são mostrados para os mostradores da Retina. Para os ecrãs com resoluções padrão, a largura e altura do logótipo serão redimensionadas em conformidade no momento do carregamento do ficheiro.",
"YouHaveUnsavedChanges": "Tem alterações que não foram guardadas",
"YourCurrentDomain": "O seu domínio atual"
}
}

View File

@ -1,11 +1,10 @@
{
{
"AddManually": "Adăugați manual",
"AddManuallyDescriptionAccounts": "Invitaţi utilizatori noi la DocSpace personal prin email",
"AddManuallyDescriptionRoom": "Adăugaţi utilizatorii existenți ai DocSpace în sala folosind numele sau invitaţi utilizatorii personal prin e-mail",
"EmailErrorMessage": "Adresa de email nu este valabilă Puteţi modifica adresa de email făcând clic dreapta pe aceasta.",
"InvitationLanguage": "Invitația în limba",
"InviteAccountSearchPlaceholder": "Invitaţi persoane după email",
"Invited": "Invitat",
"InviteRoomSearchPlaceholder": "Invitaţi persoane după nume sau email",
"InviteViaLink": "Invitaţi prin link",
"InviteViaLinkDescriptionAccounts": "Creaţi un link universal de auto-autentificare în DocSpace",
@ -13,4 +12,4 @@
"LinkCopySuccess": "Link-ul a fost copiat",
"ResetChange": "Resetarea modificării",
"SendInvitation": "Trimitere invitaţie"
}
}

View File

@ -1,4 +1,4 @@
{
{
"AccentColor": "Accent",
"AccessRightsAccessToProduct": "Accesul la modul {{product}} este acordat lui",
"AccessRightsAllUsers": "Toți {{users}}",
@ -76,7 +76,6 @@
"DeleteTheme": "Ștergere temă",
"DeleteThemeForever": "Doriţi să ştergeţi tema pentru totdeauna?",
"DeleteThemeNotice": "Tema va fi ştearsă definitiv. Această acţiune nu poate fi anulată.",
"Disabled": "Dezactivat",
"DNSSettings": "Setări DNS",
"DNSSettingsDescription": "Setări DNS este o modalitate de setare a adresei URL alternative pentru spaţiul dvs.",
"DNSSettingsMobile": "Trimiteţi solicitarea către echipa noastră de asistenţă, care este gata să vă ajute cu setarea.",
@ -213,4 +212,4 @@
"WhiteLabelTooltip": "Dimensiunile sunt specificate pentru ecranele Retina. Pentru rezoluţie de ecran standard, lăţimea şi înălţimea siglei se scalează corespunzător la încărcare.",
"YouHaveUnsavedChanges": "Nu ați salvat modificările efectuate de dvs",
"YourCurrentDomain": "Domeniul dvs. actual"
}
}

View File

@ -1,11 +1,10 @@
{
{
"AddManually": "Добавить вручную",
"AddManuallyDescriptionAccounts": "Приглашайте новых пользователей в DocSpace лично по электронной почте",
"AddManuallyDescriptionRoom": "Добавьте существующих пользователей DocSpace в комнату, используя имена, или лично пригласите новых пользователей по электронной почте",
"EmailErrorMessage": "Адрес электронной почты недействителен. Вы можете отредактировать адрес, нажав на него.",
"InvitationLanguage": "Язык приглашения",
"InviteAccountSearchPlaceholder": "Пригласить людей по электронной почте",
"Invited": "Приглашен",
"InviteRoomSearchPlaceholder": "Приглашайте людей по имени или электронной почте",
"InviteViaLink": "Пригласить по ссылке",
"InviteViaLinkDescriptionAccounts": "Создать универсальную ссылку для самостоятельной авторизации в DocSpace",
@ -13,4 +12,4 @@
"LinkCopySuccess": "Ссылка скопирована",
"ResetChange": "Сбросить изменения",
"SendInvitation": "Выслать приглашение"
}
}

View File

@ -1,4 +1,4 @@
{
{
"AboutDataImport": "Импорт данных включает в себя несколько шагов: загрузка данных, парсинг, настройка импорта и импорт. Ваш файл резервной копии будет храниться на серверах ONLYOFFICE DocSpace в течение 24 часов, а затем будет автоматически удален.",
"AccentColor": "Акцент",
"AccessRightsAccessToProduct": "Доступ к модулю {{product}} предоставлен для",
@ -92,7 +92,6 @@
"DeleteTheme": "Удалить тему",
"DeleteThemeForever": "Удалить тему навсегда?",
"DeleteThemeNotice": "Тема будет удалена навсегда. Вы не сможете отменить это действие.",
"Disabled": "Отключено",
"DiskSpaceUsed": "Используемое дисковое пространство",
"DNSSettings": "Настройки DNS",
"DNSSettingsDescription": "Настройки DNS - это способ задать альтернативный URL-адрес для вашего портала.",
@ -280,4 +279,4 @@
"WhiteLabelTooltip": "Размеры указаны для дисплеев Retina. Для дисплеев со стандартным разрешением ширина и высота логотипа будут соответственно изменены при загрузке.",
"YouHaveUnsavedChanges": "Имеются несохраненные изменения",
"YourCurrentDomain": "Ваш текущий домен"
}
}

View File

@ -44,6 +44,7 @@
"RoleUserDescription": "Пользователи могут получить доступ только к тем комнатам, в которые их пригласили администраторы. Они не могут создавать собственные комнаты, папки или файлы.",
"RoleViewer": "Зритель",
"RoleViewerDescription": "Просмотр файлов",
"SearchByHeadOfGroup": "Искать по главе группы",
"SearchByOwner": "Поиск по владельцам",
"Spreadsheets": "Таблицы",
"SubNewForm": "Пустая",

View File

@ -1,13 +1,12 @@
{
{
"AddManually": "අතින් යොදන්න",
"AddManuallyDescriptionAccounts": "වි-තැපෑලෙන් පෞද්ගලිකව DocSpace වෙත නව පරිශ්‍රීලකයින්ට ආරාධනා කරන්න",
"AddManuallyDescriptionRoom": "දැනට සිටින DocSpace පරිශ්‍රීලකයින්ගේ නම් භාවිතයෙන් කාමරයකට එක් කරන්න හෝ වෙනත් අයට වි-තැපෑලකින් පෞද්ගලිකව ආරාධනා කරන්න",
"EmailErrorMessage": "වි-තැපැල් ලිපිනය වලංගු නොවේ. ඔබට එය මත එබීමෙන් සංශෝධනය කිරීමට හැකිය.",
"Invited": "ආරාධනා කළා",
"InviteRoomSearchPlaceholder": "නමින් හෝ වි-තැපෑලෙන් ආරාධනා කරන්න",
"InviteViaLink": "සබැඳියකින් ආරාධනය",
"InviteViaLinkDescriptionAccounts": "DocSpace වෙත ඉබේම පිවිසීමට විශ්ව සබැඳියක් සාදන්න",
"InviteViaLinkDescriptionRoom": "කාමරය වෙත ඉබේම පිවිසීමට විශ්ව සබැඳියක් සාදන්න",
"LinkCopySuccess": "සබැඳිය පිටපත් විය",
"SendInvitation": "ආරාධනය යවන්න"
}
}

View File

@ -1,4 +1,4 @@
{
{
"AccentColor": "උදාත්තය",
"AccessRightsAccessToProduct": "{{product}} ඒකකයට ප්‍රවේශය ලැබී ඇත",
"AccessRightsAllUsers": "සියළුම {{users}}",
@ -66,7 +66,6 @@
"DeleteTheme": "තේමාව මකන්න",
"DeleteThemeForever": "තේමාව සදහටම මකන්නද?",
"DeleteThemeNotice": "තේමාව සදහටම මැකෙනු ඇත. මෙම ක්‍රියාමාර්ගය අප්‍රතිවර්ත්‍යයි.",
"Disabled": "අබලයි",
"DNSSettings": "ව.නා.ප. සැකසුම්",
"DNSSettingsMobile": "ඔබගේ ඉල්ලීම අපගේ සහාය කණ්ඩායමට එවන්න. ඔවුන් මෙය සැකසීමට උපකාර කරනු ඇත.",
"DNSSettingsNavDescription": "ව.නා.ප. සැකසුම් මගින් ඔබගේ අවකාශයට විකල්ප ඒ.ස.නි. සැකසීමට හැකිය.",
@ -177,4 +176,4 @@
"WhiteLabelTooltip": "රෙටීනා සංදර්ශක සඳහා ප්‍රමාණ පෙන්වයි. සම්මත විභේදන සහිත සංදර්ශක සඳහා උඩුගත කිරීමේදී ලාංඡනයේ පළල සහ උස ඊට අනුරූපව යළි ප්‍රමාණනය කෙරේ.",
"YouHaveUnsavedChanges": "ඔබ සතුව නොසුරැකි වෙනස්කම් ඇත",
"YourCurrentDomain": "ඔබගේ වත්මන් වසම"
}
}

View File

@ -1,11 +1,10 @@
{
{
"AddManually": "Pridať ručne",
"AddManuallyDescriptionAccounts": "Pozvite nových používateľov do DocSpace osobne prostredníctvom e-mailu",
"AddManuallyDescriptionRoom": "Pridajte existujúcich používateľov DocSpace do miestnosti tak, že použijete ich mena alebo osobne pozvite nových používateľov prostredníctvom e-mailu",
"EmailErrorMessage": "Emailová adresa nie je platná. E-mail môžete upraviť kliknutím naň.",
"InvitationLanguage": "Jazyk pozvánky",
"InviteAccountSearchPlaceholder": "Pozvať ľudí e-mailom",
"Invited": "Pozvaný",
"InviteRoomSearchPlaceholder": "Pozvať ľudí podľa mena alebo e-mailu",
"InviteViaLink": "Pozvať cez odkaz",
"InviteViaLinkDescriptionAccounts": "Vytvorte univerzálny odkaz na autorizáciu v DocSpace",
@ -13,4 +12,4 @@
"LinkCopySuccess": "Odkaz bol skopírovaný",
"ResetChange": "Zrušiť zmenu",
"SendInvitation": "Poslať pozvánku"
}
}

View File

@ -1,4 +1,4 @@
{
{
"AccentColor": "Akcent",
"AccessRightsAccessToProduct": "Prístup do modulu {{product}} má",
"AccessRightsAllUsers": "Všetci {{users}}",
@ -76,7 +76,6 @@
"DeleteTheme": "Vymazať tému",
"DeleteThemeForever": "Chcete natrvalo vymazať tému?",
"DeleteThemeNotice": "Téma bude natrvalo vymazaná. Túto akciu nebudete môcť vrátiť späť.",
"Disabled": "Vypnuté",
"DNSSettings": "Nastavenia DNS",
"DNSSettingsDescription": "Nastavenia DNS predstavujú spôsob, ako nastaviť alternatívnu adresu URL pre váš priestor.",
"DNSSettingsMobile": "Pošlite svoju požiadavku nášmu tímu podpory a naši špecialisti vám pomôžu s nastavením.",
@ -213,4 +212,4 @@
"WhiteLabelTooltip": "Rozmery sú pre Retina obrazovky. Pri obrazovkách so štandardným rozlíšením sa šírka a výška loga prispôsobí pri načítaní.",
"YouHaveUnsavedChanges": "Máte neuložené zmeny",
"YourCurrentDomain": "Vaša aktuálna doména"
}
}

View File

@ -1,11 +1,10 @@
{
{
"AddManually": "Dodaj ročno",
"AddManuallyDescriptionAccounts": "Po e-mailu osebno povabite nove uporabnike v DocSpace",
"AddManuallyDescriptionRoom": "Dodaj obstoječe DocSpace uporabnike v sobo z uporabo imena ali povabite nove uporabnike osebno po e-mailu",
"EmailErrorMessage": "E-mail naslov ni veljaven. E-mail sporočilo lahko uredite tako, da nanj kliknete.",
"InvitationLanguage": "Jezik povabila",
"InviteAccountSearchPlaceholder": "Povabite ljudi po e-mailu",
"Invited": "Povabljeni",
"InviteRoomSearchPlaceholder": "Povabite ljudi po imenu ali e-mailu",
"InviteViaLink": "Povabite s povezavo",
"InviteViaLinkDescriptionAccounts": "Ustvari univerzalno povezavo za samodejno avtorizacijo v DocSpace",
@ -13,4 +12,4 @@
"LinkCopySuccess": "Povezava je bila kopirana",
"ResetChange": "Ponastavi spremembe",
"SendInvitation": "Pošlji povabilo"
}
}

View File

@ -1,4 +1,4 @@
{
{
"AccentColor": "Naglas",
"AccessRightsAccessToProduct": "Dostop do {{product}} modula je omogočen za",
"AccessRightsAllUsers": "Vsi {{users}}",
@ -76,7 +76,6 @@
"DeleteTheme": "Izbriši temo",
"DeleteThemeForever": "Trajen izbris teme?",
"DeleteThemeNotice": "Tema bo trajno izbrisana. Tega dejanja ne boste mogli razveljaviti.",
"Disabled": "Onemogočeno",
"DNSSettings": "DNS nastavitve",
"DNSSettingsDescription": "Nastavitve DNS so način za nastavitev alternativnega URL za vaš prostor.",
"DNSSettingsMobile": "Pošlji zahtevo naši skupini za podporo in strokovnjaki bodo pomagali pri nastavitvah.",
@ -213,4 +212,4 @@
"WhiteLabelTooltip": "Velikosti so prikazane za zaslone Retina. Pri zaslonih s standardno ločljivostjo bosta širina in višina logotipa ustrezno spremenjeni ob nalaganju.",
"YouHaveUnsavedChanges": "Imate neshranjene spremembe",
"YourCurrentDomain": "Vaša trenutna domena"
}
}

View File

@ -1,11 +1,10 @@
{
{
"AddManually": "Manuel olarak ekle",
"AddManuallyDescriptionAccounts": "DocSpace'e yeni kullanıcıları kişisel olarak e-posta yoluyla davet et",
"AddManuallyDescriptionRoom": "Adları kullanarak mevcut DocSpace kullanıcılarını odaya ekleyin veya e-mail yoluyla kişisel olarak yeni kullanıcılar davet edin",
"EmailErrorMessage": "E-posta adresi geçerli değil. E-postayı tıklayarak düzenleyebilirsiniz.",
"InvitationLanguage": "Davet dili",
"InviteAccountSearchPlaceholder": "İnsanları e-posta ile davet et",
"Invited": "Davet edildi",
"InviteRoomSearchPlaceholder": "Kişileri ada veya e-postaya göre davet et",
"InviteViaLink": "Bağlantı yoluyla davet et",
"InviteViaLinkDescriptionAccounts": "DocSpace'te kendi kendine yetkilendirme için evrensel bir bağlantı oluştur",
@ -13,4 +12,4 @@
"LinkCopySuccess": "Bağlantı kopyalandı",
"ResetChange": "Değişikliği sıfırla",
"SendInvitation": "Davetiye gönder"
}
}

View File

@ -1,4 +1,4 @@
{
{
"AccentColor": "Ara değer",
"AccessRightsAccessToProduct": "{{product}} modülüne erişim şu kişilere verildi:",
"AccessRightsAllUsers": "Tüm {{users}}",
@ -76,7 +76,6 @@
"DeleteTheme": "Temayı sil",
"DeleteThemeForever": "Tema sonsuza kadar silinsin mi?",
"DeleteThemeNotice": "Tema kalıcı olarak silinecek. Bu işlemi geri alamazsınız.",
"Disabled": "Devre dışı bırakıldı",
"DNSSettings": "DNS Ayarlar",
"DNSSettingsDescription": "DNS Ayarları, alanınız için alternatif bir URL belirlemenin bir yoludur.",
"DNSSettingsMobile": "İsteğinizi destek ekibimize gönderin, uzmanlarımız ayarlar konusunda size yardımcı olacaktır.",
@ -213,4 +212,4 @@
"WhiteLabelTooltip": "Boyutlar Retina ekranlar için gösterilmiştir. Standart çözünürlüğe sahip ekranlar için logo genişliği ve yüksekliği yükleme sırasında uygun şekilde yeniden boyutlandırılacaktır.",
"YouHaveUnsavedChanges": "Kaydedilmemiş değişiklikleriniz var",
"YourCurrentDomain": "Mevcut alanınız"
}
}

View File

@ -1,11 +1,10 @@
{
{
"AddManually": "Додати вручну",
"AddManuallyDescriptionAccounts": "Запрошуйте нових користувачів до DocSpace особисто за допомогою електронної пошти",
"AddManuallyDescriptionRoom": "Додайте наявних користувачів DocSpace до кімнати, використовуючи імена, або запросіть нових користувачів особисто електронною поштою",
"EmailErrorMessage": "Адреса електронної пошти недійсна. Щоб редагувати адресу електронної пошти, натисніть на неї.",
"InvitationLanguage": "Мова запрошення",
"InviteAccountSearchPlaceholder": "Запрошуйте людей за адресою електронної пошти",
"Invited": "Запрошено",
"InviteRoomSearchPlaceholder": "Запрошуйте людей за іменем або адресою електронної пошти",
"InviteViaLink": "Запросити за допомогою посилання",
"InviteViaLinkDescriptionAccounts": "Створити універсальне посилання для самоавторизації в DocSpace",
@ -13,4 +12,4 @@
"LinkCopySuccess": "Посилання скопійовано",
"ResetChange": "Скинути зміни",
"SendInvitation": "Надіслати запрошення"
}
}

View File

@ -1,4 +1,4 @@
{
{
"AccentColor": "Акцентний колір",
"AccessRightsAccessToProduct": "Доступ до модуля {{product}} надано",
"AccessRightsAllUsers": "Усі {{users}}",
@ -76,7 +76,6 @@
"DeleteTheme": "Видалити тему",
"DeleteThemeForever": "Видалити тему назавжди?",
"DeleteThemeNotice": "Тему буде видалено назавжди. Ви не зможете скасувати цю дію.",
"Disabled": "Вимкнено",
"DNSSettings": "Параметри DNS",
"DNSSettingsDescription": "Параметри DNS — це спосіб установити альтернативну URL-адресу для вашого простору.",
"DNSSettingsMobile": "Надішліть запит до нашої служби підтримки, і наші спеціалісти допоможуть вам із параметрами.",
@ -213,4 +212,4 @@
"WhiteLabelTooltip": "Розміри вказані для дисплеїв Retina. Для дисплеїв зі стандартною роздільною здатністю ширина та висота логотипа будуть відповідно змінені після передавання.",
"YouHaveUnsavedChanges": "У вас є незбережені зміни",
"YourCurrentDomain": "Ваш поточний домен"
}
}

View File

@ -1,11 +1,10 @@
{
{
"AddManually": "Thêm vào một cách thủ công",
"AddManuallyDescriptionAccounts": "Mời người dùng mới vào DocSpace cá nhân qua email",
"AddManuallyDescriptionRoom": "Thêm người dùng DocSpace hiện có vào phòng bằng cách sử dụng tên hoặc mời người dùng mới qua email",
"EmailErrorMessage": "Địa chỉ Email không hợp lệ. Bạn có thể chỉnh sửa email bằng cách nhấp vào nó.",
"InvitationLanguage": "Ngôn ngữ mời",
"InviteAccountSearchPlaceholder": "Mời người dùng qua email",
"Invited": "Đã mời",
"InviteRoomSearchPlaceholder": "Mời người dùng theo tên hoặc email",
"InviteViaLink": "Mời qua liên kết",
"InviteViaLinkDescriptionAccounts": "Tạo một liên kết universal link để tự ủy quyền trong DocSpace",
@ -13,4 +12,4 @@
"LinkCopySuccess": "Liên kết đã được sao chép",
"ResetChange": "Đặt lại thay đổi",
"SendInvitation": "Gửi lời mời"
}
}

View File

@ -1,4 +1,4 @@
{
{
"AccentColor": "Nhấn mạnh",
"AccessRightsAccessToProduct": "Quyền truy cập vào mô-đun {{product}} được cấp cho",
"AccessRightsAllUsers": "Tất cả {{users}}",
@ -76,7 +76,6 @@
"DeleteTheme": "Xóa theme",
"DeleteThemeForever": "Xóa theme vĩnh viễn?",
"DeleteThemeNotice": "Theme sẽ bị xóa vĩnh viễn. Bạn sẽ không thể hoàn tác thao tác này.",
"Disabled": "Đã vô hiệu hóa",
"DNSSettings": "Thiết lập DNS",
"DNSSettingsDescription": "Thiết lập DNS là một cách để thiết lập một URL thay thế cho không gian của bạn.",
"DNSSettingsMobile": "Gửi yêu cầu của bạn đến nhóm hỗ trợ của chúng tôi và các chuyên gia của chúng tôi sẽ giúp bạn cài đặt.",
@ -213,4 +212,4 @@
"WhiteLabelTooltip": "Các kích thước được hiển thị cho màn hình Retina. Đối với màn hình có độ phân giải tiêu chuẩn, chiều rộng và chiều cao logo sẽ được thay đổi kích thước tương ứng khi tải lên.",
"YouHaveUnsavedChanges": "Bạn có các thay đổi chưa được lưu",
"YourCurrentDomain": "Tên miền hiện tại của bạn"
}
}

View File

@ -1,11 +1,10 @@
{
{
"AddManually": "手动添加",
"AddManuallyDescriptionAccounts": "通过邮件亲自邀请新用户加入协作空间",
"AddManuallyDescriptionRoom": "通过姓名向房间中添加现有协作空间用户,或通过邮件亲自邀请新用户",
"EmailErrorMessage": "邮件地址无效。您可点击邮件以进行编辑。",
"InvitationLanguage": "邀请语言",
"InviteAccountSearchPlaceholder": "通过邮件进行邀请",
"Invited": "已邀请",
"InviteRoomSearchPlaceholder": "根据姓名或邮件邀请用户",
"InviteViaLink": "通过链接进行邀请",
"InviteViaLinkDescriptionAccounts": "在协作空间中创建自我授权通用链接",
@ -13,4 +12,4 @@
"LinkCopySuccess": "链接已复制",
"ResetChange": "重置更改",
"SendInvitation": "发送邀请"
}
}

View File

@ -1,4 +1,4 @@
{
{
"AccentColor": "强调",
"AccessRightsAccessToProduct": "对于{{product}}的访问权限已授予",
"AccessRightsAllUsers": "所有{{users}}",
@ -76,7 +76,6 @@
"DeleteTheme": "删除主题",
"DeleteThemeForever": "永久性删除主题?",
"DeleteThemeNotice": "主题将被永久删除。您将无法撤销此操作。",
"Disabled": "已禁用",
"DNSSettings": "DNS 设置",
"DNSSettingsDescription": "DNS 设置是一种为空间设置替代 URL 的方式。",
"DNSSettingsMobile": "您可向我们的支持团队发送请求,我们将有专员帮助您进行设置。",
@ -213,4 +212,4 @@
"WhiteLabelTooltip": "该尺寸将针对 Retina 屏幕进行显示。对于标准分辨率的显示器,徽标宽度和高度将在上传时相应调整。",
"YouHaveUnsavedChanges": "您有未保存的变更",
"YourCurrentDomain": "您当前的域"
}
}

View File

@ -227,7 +227,7 @@ export default function withFileActions(WrappedFileItem) {
// setRoomType(item.roomType);
}
openFileAction(item, t);
openFileAction(item, t, e);
};
onSelectTag = (tag) => {

View File

@ -49,6 +49,7 @@ export default function withContent(WrappedContent) {
const { mobilePhone, email, role, displayName, avatar } = item;
const onContentRowSelect = (checked, user) => {
setBufferSelection(null);
checked ? selectUser(user) : deselectUser(user);
};

View File

@ -34,9 +34,12 @@ import { getCatalogIconUrlByType } from "@docspace/shared/utils/catalogIconHelpe
import { ArticleItem } from "@docspace/shared/components/article-item";
const PureAccountsItem = ({ showText, isActive, onClick, t }) => {
const onClickAction = React.useCallback(() => {
onClick && onClick("accounts");
}, [onClick]);
const onClickAction = React.useCallback(
(e, id) => {
onClick && onClick(e, "accounts");
},
[onClick],
);
const icon = getCatalogIconUrlByType(PageType.account);

View File

@ -32,6 +32,7 @@ import { ArticleItem } from "@docspace/shared/components/article-item";
import { combineUrl } from "@docspace/shared/utils/combineUrl";
import { useNavigate } from "react-router-dom";
import GiftReactSvgUrl from "PUBLIC_DIR/images/gift.react.svg?url";
import { openingNewTab } from "@docspace/shared/utils/openingNewTab";
const PROXY_BASE_URL = combineUrl(
window.DocSpaceConfig?.proxy?.url,
@ -44,7 +45,9 @@ const BonusItem = ({ showText, toggleArticleOpen }) => {
const navigate = useNavigate();
const onClick = React.useCallback(() => {
const onClick = React.useCallback((e) => {
if (openingNewTab(bonusUrl, e)) return;
navigate(bonusUrl);
toggleArticleOpen();
}, []);

View File

@ -128,11 +128,13 @@ const Item = ({
}, []);
const onClickAction = React.useCallback(
(folderId) => {
(e, folderId) => {
setBufferSelection(null);
onClick &&
onClick(
e,
folderId,
item.title,
item.rootFolderType,

View File

@ -43,6 +43,8 @@ import { getCategoryUrl } from "SRC_DIR/helpers/utils";
import { CategoryType } from "SRC_DIR/helpers/constants";
import { ArticleFolderLoader } from "@docspace/shared/skeletons/article";
import { MEDIA_VIEW_URL } from "@docspace/shared/constants";
import { combineUrl } from "@docspace/shared/utils/combineUrl";
import { openingNewTab } from "@docspace/shared/utils/openingNewTab";
const ArticleBodyContent = (props) => {
const {
@ -82,7 +84,7 @@ const ArticleBodyContent = (props) => {
const isAccounts = location.pathname.includes("accounts/filter");
const onClick = React.useCallback(
(folderId, title, rootFolderType, canCreate) => {
(e, folderId, title, rootFolderType, canCreate) => {
const { toggleArticleOpen } = props;
let params = null;
@ -98,8 +100,6 @@ const ArticleBodyContent = (props) => {
let withTimer = !!selectedFolderId;
setSelection && setSelection([]);
switch (folderId) {
case myFolderId:
const myFilter = FilesFilter.getDefault();
@ -132,7 +132,6 @@ const ArticleBodyContent = (props) => {
return;
break;
case "accounts":
clearFiles();
const accountsFilter = AccountsFilter.getDefault();
params = accountsFilter.toUrlParams();
path = getCategoryUrl(CategoryType.Accounts);
@ -142,8 +141,6 @@ const ArticleBodyContent = (props) => {
break;
case "settings":
clearFiles();
path = getCategoryUrl(CategoryType.Settings);
navigate(path);
@ -162,9 +159,15 @@ const ArticleBodyContent = (props) => {
break;
}
setIsLoading(true, withTimer);
path += `?${params}`;
if (openingNewTab(path, e)) return;
if (folderId === "accounts" || folderId === "settings") clearFiles();
setSelection && setSelection([]);
setIsLoading(true, withTimer);
navigate(path, { state });
if (currentDeviceType === DeviceType.mobile) {

View File

@ -141,6 +141,7 @@ const Dialog = ({
displayType={"modal"}
scale={true}
onClose={onCloseAction}
zIndex={405}
>
<ModalDialog.Header>{title}</ModalDialog.Header>
<ModalDialog.Body>

View File

@ -52,10 +52,6 @@ import {
StyledSelectedOwner,
} from "./StyledDialog";
const filter = new Filter();
filter.employeeStatus = 1;
const ChangePortalOwnerDialog = ({
t,
visible,
@ -140,7 +136,6 @@ const ChangePortalOwnerDialog = ({
withCancelButton
cancelButtonLabel=""
onCancel={onBackClick}
filter={filter}
excludeItems={[id]}
submitButtonLabel={t("Common:SelectAction")}
onSubmit={onAccept}
@ -152,6 +147,7 @@ const ChangePortalOwnerDialog = ({
headerLabel: "",
}}
currentUserId={id}
disableDisabledUsers
/>
</ModalDialog.Container>
)}

View File

@ -47,7 +47,7 @@ const SelectGroupManagerPanel = ({
const accessOptions = getAccessOptions(t);
const onSelectGroupManager = (newGroupManager: object[]) => {
setGroupManager(...newGroupManager);
setGroupManager(newGroupManager[0]);
};
return (
@ -63,6 +63,8 @@ const SelectGroupManagerPanel = ({
defaultAccess={ShareAccessRights.FullAccess}
withoutBackground
withBlur={false}
isMultiSelect={false}
disableDisabledUsers
/>
}
/>

View File

@ -24,10 +24,13 @@
// content are licensed under the terms of the Creative Commons Attribution-ShareAlike 4.0
// International. See the License terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
import React from "react";
import { useTranslation } from "react-i18next";
import { ShareAccessRights } from "@docspace/shared/enums";
import { toastr } from "@docspace/shared/components/toast";
import { Portal } from "@docspace/shared/components/portal";
import { TUser } from "@docspace/shared/api/people/types";
import { TSelectorItem } from "@docspace/shared/components/selector";
import AddUsersPanel from "../../../../panels/AddUsersPanel";
import { getAccessOptions } from "../../../../panels/InvitePanel/utils";
@ -35,24 +38,24 @@ interface SelectGroupMembersPanelProps {
isVisible: boolean;
onClose: () => void;
onParentPanelClose: () => void;
groupManager: object | null;
groupMembers: object[];
setGroupMembers: (groupMembers: object[]) => void;
groupMembers: TUser[];
setGroupMembers: (groupMembers: (TUser | TSelectorItem)[]) => void;
}
const SelectGroupMembersPanel = ({
isVisible,
onClose,
onParentPanelClose,
groupManager,
groupMembers,
setGroupMembers,
}: SelectGroupMembersPanelProps) => {
const { t } = useTranslation(["InviteDialog"]);
const accessOptions = getAccessOptions(t, 5, false, true);
const onAddGroupMembers = (newGroupMembers: object[]) => {
const resultGroupMembers = [...groupMembers];
const onAddGroupMembers = (newGroupMembers: TSelectorItem[]) => {
const resultGroupMembers: (TUser | TSelectorItem)[] = [...groupMembers];
let showErrorWasSelected = false;
newGroupMembers.forEach((groupMember) => {
@ -70,6 +73,11 @@ const SelectGroupMembersPanel = ({
setGroupMembers(resultGroupMembers);
};
const invitedUsers = React.useMemo(
() => groupMembers.map((g) => g.id),
[groupMembers],
);
return (
<Portal
element={
@ -78,7 +86,6 @@ const SelectGroupMembersPanel = ({
onClose={onClose}
onParentPanelClose={onParentPanelClose}
isMultiSelect
tempDataItems={[]}
setDataItems={onAddGroupMembers}
accessOptions={accessOptions}
withAccessRights={false}
@ -86,6 +93,8 @@ const SelectGroupMembersPanel = ({
defaultAccess={ShareAccessRights.FullAccess}
withoutBackground
withBlur={false}
invitedUsers={invitedUsers}
disableDisabledUsers
/>
}
/>

View File

@ -227,7 +227,8 @@ const DataReassignmentDialog = ({
}}
onBackClick={onTogglePeopleSelector}
withAbilityCreateRoomUsers
withHeader={true}
withHeader
disableDisabledUsers
/>
</ModalDialog.Container>
</StyledModalDialog>

View File

@ -49,16 +49,27 @@ import useLoadingWithTimeout from "@docspace/shared/hooks/useLoadingWithTimeout"
import { getUserRole } from "@docspace/shared/utils/common";
import Filter from "@docspace/shared/api/people/filter";
import { getMembersList, getUserList } from "@docspace/shared/api/people";
import { AccountsSearchArea, ShareAccessRights } from "@docspace/shared/enums";
import {
AccountsSearchArea,
EmployeeStatus,
ShareAccessRights,
} from "@docspace/shared/enums";
import { RowLoader, SearchLoader } from "@docspace/shared/skeletons/selector";
import { TUser } from "@docspace/shared/api/people/types";
import { TGroup } from "@docspace/shared/api/groups/types";
import { MIN_LOADER_TIMER } from "@docspace/shared/selectors/Files/FilesSelector.constants";
import { TTranslation } from "@docspace/shared/types";
const PEOPLE_TAB_ID = "0";
const GROUP_TAB_ID = "1";
const toListItem = (item: TUser | TGroup) => {
const toListItem = (
item: TUser | TGroup,
t: TTranslation,
invitedUsers?: string[],
disableDisabledUsers?: boolean,
isRoom: boolean,
) => {
if ("displayName" in item) {
const {
id,
@ -72,12 +83,24 @@ const toListItem = (item: TUser | TGroup) => {
isVisitor,
isCollaborator,
isRoomAdmin,
status,
shared,
} = item;
const role = getUserRole(item);
const userAvatar = hasAvatar ? avatar : DefaultUserPhoto;
const isInvited = invitedUsers?.includes(id) || (isRoom && shared);
const isDisabled =
disableDisabledUsers && status === EmployeeStatus.Disabled;
const disabledText = isDisabled
? t("Common:Disabled")
: isInvited
? t("Common:Invited")
: "";
return {
id,
email,
@ -89,6 +112,8 @@ const toListItem = (item: TUser | TGroup) => {
isVisitor,
isCollaborator,
isRoomAdmin,
isDisabled: isInvited || isDisabled,
disabledText,
} as TSelectorItem;
}
@ -127,7 +152,10 @@ type AddUsersPanelProps = {
withoutBackground: boolean;
withBlur: boolean;
roomId: string | number;
invitedUsers?: string[];
disableDisabledUsers?: boolean;
roomId?: string | number;
withGroups?: boolean;
};
@ -150,6 +178,9 @@ const AddUsersPanel = ({
roomId,
withGroups,
invitedUsers,
disableDisabledUsers,
}: AddUsersPanelProps) => {
const theme = useTheme();
const { t } = useTranslation([
@ -169,10 +200,6 @@ const AddUsersPanel = ({
(isEncrypted ? ShareAccessRights.FullAccess : ShareAccessRights.ReadOnly);
const onBackClick = () => onClose();
const getFilterWithOutDisabledUser = useCallback(
() => Filter.getFilterWithOutDisabledUser(),
[],
);
const onKeyPress = (e: KeyboardEvent) => {
if (e.key === "Esc" || e.key === "Escape") onClose();
@ -289,12 +316,13 @@ const AddUsersPanel = ({
setIsNextPageLoading(true);
const currentFilter = getFilterWithOutDisabledUser();
const currentFilter = Filter.getDefault();
currentFilter.page = startIndex / pageCount;
currentFilter.pageCount = pageCount;
// @ts-expect-error think its ok
currentFilter.excludeShared = true;
// show all users, but disabled invited
// currentFilter.excludeShared = true;
currentFilter.search = searchValue || "";
const response = !roomId
@ -303,7 +331,9 @@ const AddUsersPanel = ({
const totalDifferent = startIndex ? response.total - totalRef.current : 0;
let items = response.items.map((item) => toListItem(item));
const items = response.items.map((item) =>
toListItem(item, t, invitedUsers, disableDisabledUsers, !!roomId),
);
const newTotal = response.total - totalDifferent;
if (isFirstLoad.current) {
@ -338,10 +368,12 @@ const AddUsersPanel = ({
},
[
activeTabId,
getFilterWithOutDisabledUser,
disableDisabledUsers,
invitedUsers,
roomId,
searchValue,
setIsLoading,
t,
withGroups,
],
);

View File

@ -117,12 +117,7 @@ const ChangeRoomOwner = (props) => {
const asideComponent = (
<StyledChangeRoomOwner showBackButton={showBackButton}>
<Backdrop
onClick={onClose}
visible={visible}
zIndex={320}
isAside={true}
/>
<Backdrop onClick={onClose} visible={visible} zIndex={320} isAside />
<Aside
currentDeviceType={currentDeviceType}
className="header_aside-panel"
@ -154,6 +149,7 @@ const ChangeRoomOwner = (props) => {
withOutCurrentAuthorizedUser
filterUserId={roomOwnerId}
currentUserId={userId}
disableDisabledUsers
/>
</Aside>
</StyledChangeRoomOwner>

View File

@ -27,7 +27,7 @@
import debounce from "lodash.debounce";
import { inject, observer } from "mobx-react";
import { withTranslation } from "react-i18next";
import { useState, useCallback, useEffect, useRef } from "react";
import { useMemo, useState, useCallback, useEffect, useRef } from "react";
import { Avatar } from "@docspace/shared/components/avatar";
import { Text } from "@docspace/shared/components/text";
@ -284,7 +284,7 @@ const InviteInput = ({
</SearchItemText>
<SearchItemText>{email}</SearchItemText>
</div>
{shared && <SearchItemText info>{t("Invited")}</SearchItemText>}
{shared && <SearchItemText info>{t("Common:Invited")}</SearchItemText>}
</DropDownItem>
);
};
@ -408,6 +408,11 @@ const InviteInput = ({
isBeta: isBetaLanguage(item.key),
}));
const invitedUsers = useMemo(
() => inviteItems.map((item) => item.id),
[inviteItems],
);
return (
<>
<StyledSubHeader>
@ -540,6 +545,8 @@ const InviteInput = ({
roomId={roomId}
withGroups={!isPublicRoomType}
withAccessRights
invitedUsers={invitedUsers}
disableDisabledUsers
/>
)}
</StyledInviteInputContainer>
@ -568,4 +575,10 @@ export default inject(({ settingsStore, dialogsStore, userStore }) => {
defaultAccess: invitePanelOptions.defaultAccess,
isOwner,
};
})(withCultureNames(withTranslation(["InviteDialog"])(observer(InviteInput))));
})(
withCultureNames(
withTranslation(["InviteDialog", "Common", "Translations"])(
observer(InviteInput),
),
),
);

View File

@ -114,6 +114,9 @@ export const RegisterContainer = styled.div`
margin-bottom: 24px;
}
.email-container{
${(props) => props.registrationForm && "display:none"};
}
@media ${tablet} {
width: 100%;
}

View File

@ -24,7 +24,7 @@
// content are licensed under the terms of the Creative Commons Attribution-ShareAlike 4.0
// International. See the License terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
import React from "react";
import React, { useEffect } from "react";
import PropTypes from "prop-types";
import { Loader } from "@docspace/shared/components/loader";
import Section from "@docspace/shared/components/section";
@ -33,56 +33,54 @@ import tryRedirectTo from "@docspace/shared/utils/tryRedirectTo";
import { inject, observer } from "mobx-react";
import { EmployeeActivationStatus } from "@docspace/shared/enums";
import SectionWrapper from "SRC_DIR/components/Section";
class ActivateEmail extends React.PureComponent {
componentDidMount() {
const { logout, updateEmailActivationStatus, linkData } = this.props;
const [email, uid, key] = [
linkData.email,
linkData.uid,
linkData.confirmHeader,
];
logout().then(() =>
updateEmailActivationStatus(EmployeeActivationStatus.Activated, uid, key)
.then((res) => {
tryRedirectTo(
combineUrl(
window.DocSpaceConfig?.proxy?.url,
`/login?confirmedEmail=${email}`,
),
);
})
.catch((error) => {
// console.log('activate email error', e);
let errorMessage = "";
if (typeof error === "object") {
errorMessage =
error?.response?.data?.error?.message ||
error?.statusText ||
error?.message ||
"";
} else {
errorMessage = error;
}
tryRedirectTo(
combineUrl(
window.DocSpaceConfig?.proxy?.url,
`/login/error?message=${errorMessage}`,
),
);
}),
);
}
const ActivateEmail = ({ updateEmailActivationStatus, linkData }) => {
const [email, uid, key] = [
linkData.email,
linkData.uid,
linkData.confirmHeader,
];
render() {
// console.log('Activate email render');
return <Loader className="pageLoader" type="rombs" size="40px" />;
}
}
useEffect(() => {
updateEmailActivationStatus(EmployeeActivationStatus.Activated, uid, key)
.then((res) => {
tryRedirectTo(
combineUrl(
window.DocSpaceConfig?.proxy?.url,
`/login?confirmedEmail=${email}`,
),
);
})
.catch((error) => {
// console.log('activate email error', e);
let errorMessage = "";
if (typeof error === "object") {
errorMessage =
error?.response?.data?.error?.message ||
error?.statusText ||
error?.message ||
"";
} else {
errorMessage = error;
}
tryRedirectTo(
combineUrl(
window.DocSpaceConfig?.proxy?.url,
`/login/error?message=${errorMessage}`,
),
);
});
}, [email, key, updateEmailActivationStatus, uid]);
// console.log('Activate email render');
return <Loader className="pageLoader" type="rombs" size="40px" />;
};
ActivateEmail.propTypes = {
location: PropTypes.object.isRequired,
};
const ActivateEmailForm = (props) => (
<SectionWrapper>
<Section.SectionBody>
@ -91,10 +89,9 @@ const ActivateEmailForm = (props) => (
</SectionWrapper>
);
export default inject(({ authStore, userStore }) => {
const { logout } = authStore;
export default inject(({ userStore }) => {
const { updateEmailActivationStatus } = userStore;
return {
logout,
updateEmailActivationStatus: userStore.updateEmailActivationStatus,
updateEmailActivationStatus,
};
})(observer(ActivateEmailForm));

View File

@ -513,55 +513,53 @@ const CreateUserForm = (props) => {
</GreetingContainer>
<FormWrapper>
<RegisterContainer>
<RegisterContainer registrationForm={registrationForm}>
<form className="auth-form-container">
<div className="auth-form-fields">
{!registrationForm && (
<>
<FieldContainer
className="form-field"
isVertical={true}
labelVisible={false}
<div className="email-container">
<FieldContainer
className="form-field"
isVertical={true}
labelVisible={false}
hasError={isEmailErrorShow && !emailValid}
errorMessage={
emailErrorText
? t(`Common:${emailErrorText}`)
: t("Common:RequiredField")
}
>
<EmailInput
id="login"
name="login"
type="email"
hasError={isEmailErrorShow && !emailValid}
errorMessage={
emailErrorText
? t(`Common:${emailErrorText}`)
: t("Common:RequiredField")
}
>
<EmailInput
id="login"
name="login"
type="email"
hasError={isEmailErrorShow && !emailValid}
value={email}
placeholder={t("Common:Email")}
size="large"
scale={true}
isAutoFocussed={true}
tabIndex={1}
isDisabled={isLoading || !!emailFromLink}
autoComplete="username"
onChange={onChangeEmail}
onBlur={onBlurEmail}
onValidateInput={onValidateEmail}
forwardedRef={inputRef}
onKeyDown={onKeyPress}
/>
</FieldContainer>
<Button
className="login-button"
primary
size="medium"
value={email}
placeholder={t("Common:Email")}
size="large"
scale={true}
label={t("Common:ContinueButton")}
isAutoFocussed={true}
tabIndex={1}
isDisabled={isLoading}
isLoading={isLoading}
onClick={onContinue}
isDisabled={isLoading || !!emailFromLink}
autoComplete="username"
onChange={onChangeEmail}
onBlur={onBlurEmail}
onValidateInput={onValidateEmail}
forwardedRef={inputRef}
onKeyDown={onKeyPress}
/>
</>
)}
</FieldContainer>
<Button
className="login-button"
primary
size="medium"
scale={true}
label={t("Common:ContinueButton")}
tabIndex={1}
isDisabled={isLoading}
isLoading={isLoading}
onClick={onContinue}
/>
</div>
{registrationForm && (
<div>

View File

@ -55,17 +55,18 @@ const GroupsRow = ({
const onRowClick = (e) => {
if (e.target?.tagName === "SPAN" || e.target?.tagName === "A") return;
setBufferSelection(item);
if (selection.length === 1 && selection[0].id === item.id) {
setBufferSelection(null);
setSelection([]);
return;
}
setBufferSelection(item);
setSelection([item]);
};
const onSelect = (e) => {
setBufferSelection(null);
if (!isChecked) setSelection([...selection, item]);
else setSelection(selection.filter((g) => g.id !== item.id));
};

View File

@ -58,6 +58,7 @@ const GroupsTableItem = ({
const isActive = bufferSelection?.id === item.id;
const onChange = (e) => {
setBufferSelection(null);
if (!isChecked) setSelection([...selection, item]);
else setSelection(selection.filter((g) => g.id !== item.id));
};
@ -82,13 +83,13 @@ const GroupsTableItem = ({
)
return;
setBufferSelection(item);
if (selection.length === 1 && selection[0].id === item.id) {
setBufferSelection(null);
setSelection([]);
return;
}
setBufferSelection(item);
setSelection([item]);
};

View File

@ -148,6 +148,7 @@ const Table = ({
groupAccountsInsideGroupColumnIsEnabled,
emailAccountsInsideGroupColumnIsEnabled,
insideGroupIsLoading,
fetchMoreInsideGroupUsers,
insideGroupFilterTotal,
hasMoreInsideGroupUsers,
@ -168,7 +169,9 @@ const Table = ({
const columnStorageName = `${COLUMNS_SIZE}=${userId}`;
const columnInfoPanelStorageName = `${INFO_PANEL_COLUMNS_SIZE}=${userId}`;
return !!peopleList?.length ? (
console.log(peopleList);
return (
<StyledTableContainer useReactWindow={!withPaging} forwardedRef={ref}>
<TableHeader
columnStorageName={columnStorageName}
@ -217,8 +220,6 @@ const Table = ({
))}
</TableBody>
</StyledTableContainer>
) : (
<EmptyScreen />
);
};
@ -252,6 +253,7 @@ export default inject(
} = tableStore;
const {
insideGroupIsLoading,
openGroupAction,
insideGroupFilterTotal,
hasMoreInsideGroupUsers,
@ -276,6 +278,7 @@ export default inject(
groupAccountsInsideGroupColumnIsEnabled,
emailAccountsInsideGroupColumnIsEnabled,
insideGroupIsLoading,
fetchMoreInsideGroupUsers,
insideGroupFilterTotal,
hasMoreInsideGroupUsers,

View File

@ -191,7 +191,6 @@ const Table = ({
}, [isRooms]);
const filesListNode = useMemo(() => {
console.log("TableContainer isRooms", isRooms);
return filesList.map((item, index) => (
<TableRow
id={`${item?.isFolder ? "folder" : "file"}_${item.id}`}
@ -226,6 +225,8 @@ const Table = ({
isTrashFolder,
]);
console.log("Table log TableContainer columnStorageName", columnStorageName);
return (
<StyledTableContainer useReactWindow={!withPaging} forwardedRef={ref}>
<TableHeader

View File

@ -563,7 +563,7 @@ class FilesTableHeader extends React.Component {
const sortBy = isRooms ? roomsFilter.sortBy : filter.sortBy;
const sortOrder = isRooms ? roomsFilter.sortOrder : filter.sortOrder;
console.log("TableHeader isRooms", isRooms);
console.log("Table log TableHeader columnStorageName", columnStorageName);
return (
<TableHeader

View File

@ -75,8 +75,6 @@ const FilesTableRow = (props) => {
} = props;
const { acceptBackground, background } = theme.dragAndDrop;
console.log("TableRow isRooms", isRooms);
const element = (
<ItemIcon
id={item.id}

View File

@ -33,6 +33,7 @@ import { DeviceType } from "@docspace/shared/enums";
import { getCatalogIconUrlByType } from "@docspace/shared/utils/catalogIconHelper";
import { isArrayEqual } from "@docspace/shared/utils";
import { openingNewTab } from "@docspace/shared/utils/openingNewTab";
import withLoading from "SRC_DIR/HOCs/withLoading";
@ -168,22 +169,23 @@ const ArticleBodyContent = (props) => {
selectedKeys,
]);
const onSelect = (value) => {
const onSelect = (value, e) => {
if (isArrayEqual([value], selectedKeys)) {
return;
}
// setSelectedKeys([value + "-0"]);
if (currentDeviceType === DeviceType.mobile) {
toggleArticleOpen();
}
const settingsPath = `/portal-settings${getSelectedLinkByKey(
value + "-0",
settingsTree,
)}`;
if (openingNewTab(settingsPath, e)) return;
// setSelectedKeys([value + "-0"]);
if (currentDeviceType === DeviceType.mobile) {
toggleArticleOpen();
}
if (settingsPath === location.pathname) return;
navigate(`${settingsPath}`);
@ -298,7 +300,7 @@ const ArticleBodyContent = (props) => {
text={mapKeys(item.tKey)}
value={item.link}
isActive={item.key === selectedKeys[0][0]}
onClick={() => onSelect(item.key)}
onClick={(e) => onSelect(item.key, e)}
folderId={item.id}
style={{
marginTop: `${item.key.includes(9) ? "16px" : "0"}`,

View File

@ -87,7 +87,6 @@ const DNSSettings = (props) => {
isDefaultDNS,
dnsSettingsUrl,
currentDeviceType,
portalName,
} = props;
const [hasScroll, setHasScroll] = useState(false);
const isLoadedSetting = isLoaded && tReady;
@ -159,15 +158,13 @@ const DNSSettings = (props) => {
setErrorText("");
const { value } = e.target;
const dns =
portalName && !isDefaultDNS ? value.slice(portalName.length + 1) : value;
const isValidDomain = parseDomain(dns || "", setErrorText, t);
const isValidDomain = parseDomain(value || "", setErrorText, t);
if (!isValidDomain) {
setIsError(true);
}
setDNSName(dns);
setDNSName(value);
};
const checkInnerWidth = useCallback(() => {
if (!isMobile()) {
@ -188,7 +185,7 @@ const DNSSettings = (props) => {
}
}, [isMobile, setIsCustomizationView]);
const domainExampleText = " team.ourcompany.com";
const domainExampleText = " ourcompany.com";
const settingsBlock = (
<div className="settings-block">
@ -205,11 +202,7 @@ const DNSSettings = (props) => {
<TextInput
{...textInputProps}
isDisabled={isLoading || !enable}
value={
portalName && !isDefaultDNS
? `${portalName}.${dnsName?.trim()}`
: dnsName?.trim()
}
value={dnsName?.trim()}
onChange={onChangeTextInput}
hasError={isError}
/>
@ -265,7 +258,7 @@ const DNSSettings = (props) => {
size={currentDeviceType === DeviceType.desktop ? "small" : "normal"}
label={t("Common:SaveButton")}
onClick={onSaveSettings}
isDisabled={isLoading || isDefaultDNS || isError}
isDisabled={isLoading || isDefaultDNS || isError || !dnsName}
isLoading={isLoading}
/>
) : (
@ -339,7 +332,6 @@ export default inject(({ settingsStore, common, currentQuotaStore }) => {
setDNSName,
saveDNSSettings,
isDefaultDNS,
portalName,
} = common;
const { isBrandingAndCustomizationAvailable } = currentQuotaStore;
@ -363,6 +355,5 @@ export default inject(({ settingsStore, common, currentQuotaStore }) => {
saveDNSSettings,
dnsSettingsUrl,
currentDeviceType,
portalName,
};
})(withLoading(withTranslation(["Settings", "Common"])(observer(DNSSettings))));

View File

@ -59,12 +59,12 @@ import ColumnsUrl from "PUBLIC_DIR/images/sdk-presets_columns.react.svg?url";
import ActionButtonUrl from "PUBLIC_DIR/images/sdk-presets_action-button.react.svg?url";
import SearchUrl from "PUBLIC_DIR/images/sdk-presets_search.react.svg?url";
import HeaderUrl from "PUBLIC_DIR/images/sdk-presets_header.react.svg?url";
import LeftMenuDarkUrl from "PUBLIC_DIR/images/sdk-presets_left-menu_dark.react.svg?url";
import TitleDarkUrl from "PUBLIC_DIR/images/sdk-presets_title_dark.react.svg?url";
import ColumnsDarkUrl from "PUBLIC_DIR/images/sdk-presets_columns_dark.react.svg?url";
import ActionButtonDarkUrl from "PUBLIC_DIR/images/sdk-presets_action-button_dark.react.svg?url";
import SearchDarkUrl from "PUBLIC_DIR/images/sdk-presets_search_dark.react.svg?url";
import HeaderDarkUrl from "PUBLIC_DIR/images/sdk-presets_header_dark.react.svg?url";
import LeftMenuDarkUrl from "PUBLIC_DIR/images/sdk-presets_left-menu_dark.png?url";
import TitleDarkUrl from "PUBLIC_DIR/images/sdk-presets_title_dark.png?url";
import ColumnsDarkUrl from "PUBLIC_DIR/images/sdk-presets_columns_dark.png?url";
import ActionButtonDarkUrl from "PUBLIC_DIR/images/sdk-presets_action-button_dark.png?url";
import SearchDarkUrl from "PUBLIC_DIR/images/sdk-presets_search_dark.png?url";
import HeaderDarkUrl from "PUBLIC_DIR/images/sdk-presets_header_dark.png?url";
const showPreviewThreshold = 720;
@ -851,7 +851,7 @@ const Manager = (props) => {
<TooltipContent
title={t("Menu")}
description={t("MenuDescription")}
img={LeftMenuUrl}
img={theme.isBase ? LeftMenuUrl : LeftMenuDarkUrl}
/>
}
/>
@ -872,7 +872,7 @@ const Manager = (props) => {
<TooltipContent
title={t("Common:Title")}
description={t("ManagerTitleDescription")}
img={TitleUrl}
img={theme.isBase ? TitleUrl : TitleDarkUrl}
/>
}
/>
@ -892,7 +892,7 @@ const Manager = (props) => {
<TooltipContent
title={t("SettingUpColumns")}
description={t("SettingUpColumnsDescription")}
img={ColumnsUrl}
img={theme.isBase ? ColumnsUrl : ColumnsDarkUrl}
/>
}
/>
@ -912,7 +912,7 @@ const Manager = (props) => {
<TooltipContent
title={t("ActionButton")}
description={t("ActionButtonDescription")}
img={ActionButtonUrl}
img={theme.isBase ? ActionButtonUrl : ActionButtonDarkUrl}
/>
}
/>
@ -932,7 +932,7 @@ const Manager = (props) => {
<TooltipContent
title={t("SearchBlock")}
description={t("ManagerSearchBlockDescription")}
img={SearchUrl}
img={theme.isBase ? SearchUrl : SearchDarkUrl}
/>
}
/>
@ -953,7 +953,7 @@ const Manager = (props) => {
<TooltipContent
title={t("Header")}
description={t("HeaderDescription")}
img={HeaderUrl}
img={theme.isBase ? HeaderUrl : HeaderDarkUrl}
/>
}
/>

View File

@ -59,8 +59,8 @@ import { RoomsType } from "@docspace/shared/enums";
import TitleUrl from "PUBLIC_DIR/images/sdk-presets_title.react.svg?url";
import SearchUrl from "PUBLIC_DIR/images/sdk-presets_search.react.svg?url";
import TitleDarkUrl from "PUBLIC_DIR/images/sdk-presets_title_dark.react.svg?url";
import SearchDarkUrl from "PUBLIC_DIR/images/sdk-presets_search_dark.react.svg?url";
import TitleDarkUrl from "PUBLIC_DIR/images/sdk-presets_title_dark.png?url";
import SearchDarkUrl from "PUBLIC_DIR/images/sdk-presets_search_dark.png?url";
const showPreviewThreshold = 720;

View File

@ -55,6 +55,10 @@ const HeaderContainer = styled.header`
const ImgWrapper = styled.div`
margin-top: 16px;
img {
width: 100%;
}
`;
export const TooltipContent = ({ title, description, img }) => {

View File

@ -25,12 +25,16 @@
// International. See the License terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
import React, { useEffect, useState } from "react";
import { ReactSVG } from "react-svg";
import { inject, observer } from "mobx-react";
import styled from "styled-components";
import InfoIcon from "PUBLIC_DIR/images/info.outline.react.svg?url";
import { TextInput } from "@docspace/shared/components/text-input";
import { HelpButton } from "@docspace/shared/components/help-button";
import { Text } from "@docspace/shared/components/text";
import { Link } from "@docspace/shared/components/link";
import { SelectorAddButton } from "@docspace/shared/components/selector-add-button";
import { SelectedItem } from "@docspace/shared/components/selected-item";
import { tablet } from "@docspace/shared/utils";
@ -81,12 +85,62 @@ const ChipsContainer = styled.div`
flex-wrap: wrap;
`;
const CSP = ({ t, cspDomains, getCSPSettings, setCSPSettings }) => {
const InfoBar = styled.div`
display: flex;
background-color: ${(props) => props.theme.infoBar.background};
color: #333;
font-size: ${(props) => props.theme.getCorrectFontSize("12px")};
padding: 12px 16px;
border-radius: 6px;
margin-bottom: 10px;
margin: -4px 0px 20px;
.text-container {
width: 100%;
display: flex;
flex-direction: column;
}
.header-body {
display: flex;
height: fit-content;
width: 100%;
gap: 8px;
font-weight: 600;
.header-icon {
svg {
path {
fill: #ed7309;
}
}
}
&__title {
color: ${(props) => props.theme.infoBar.title};
}
}
.body-container {
color: ${(props) => props.theme.infoBar.description};
font-weight: 400;
}
`;
const CSP = ({
cspDomains,
currentColorScheme,
getCSPSettings,
installationGuidesUrl,
setCSPSettings,
standalone,
t,
}) => {
useEffect(() => {
getCSPSettings();
}, []);
const [domain, changeDomain] = useState("");
const [error, setError] = useState(null);
const onKeyPress = (e) => {
if (e.key === "Enter" && !!domain.length) {
@ -117,10 +171,12 @@ const CSP = ({ t, cspDomains, getCSPSettings, setCSPSettings }) => {
const deleteDomain = (value) => {
const domains = cspDomains.filter((item) => item !== value);
if (error) setError(null);
setCSPSettings({ domains, setDefaultIfEmpty: true });
};
const addDomain = () => {
const addDomain = async () => {
const domainsSetting = [...cspDomains];
const trimmedDomain = domain.trim();
const domains = trimmedDomain.split(" ");
@ -131,11 +187,17 @@ const CSP = ({ t, cspDomains, getCSPSettings, setCSPSettings }) => {
domainsSetting.push(domain);
});
setCSPSettings({ domains: domainsSetting });
changeDomain("");
try {
await setCSPSettings({ domains: domainsSetting });
} catch (error) {
setError(error?.response?.data?.error?.message);
} finally {
changeDomain("");
}
};
const onChangeDomain = (e) => {
if (error) setError(null);
changeDomain(e.target.value);
};
@ -151,17 +213,50 @@ const CSP = ({ t, cspDomains, getCSPSettings, setCSPSettings }) => {
tooltipContent={<Text fontSize="12px">{t("CSPHelp")}</Text>}
/>
</Container>
{standalone && window.location.protocol !== "https:" && (
<InfoBar>
<div className="text-container">
<div className="header-body">
<div className="header-icon">
<ReactSVG src={InfoIcon} />
</div>
<Text
className="header-body__title"
fontSize="12px"
fontWeight={600}
>
{t("CSPInfoBarHeader")}
</Text>
</div>
<div className="body-container">
{t("CSPInfoBarDescription")}{" "}
<Link
color={currentColorScheme?.main?.accent}
fontSize="13px"
fontWeight="400"
onClick={() => window.open(installationGuidesUrl, "_blank")}
>
{t("Common:LearnMore")}
</Link>
</div>
</div>
</InfoBar>
)}
<Container className="input-holder">
<TextInput
onChange={onChangeDomain}
value={domain}
placeholder={t("CSPInputPlaceholder")}
tabIndex={1}
hasError={error}
/>
<SelectorAddButton isDisabled={!domain.trim()} onClick={addDomain} />
</Container>
<Text lineHeight="20px" color="#A3A9AE">
{t("CSPUrlHelp")}
<Text
lineHeight="20px"
color={error ? theme?.input.focusErrorBorderColor : "#A3A9AE"}
>
{error ? error : t("CSPUrlHelp")}
</Text>
<ChipsContainer>{getChips(cspDomains)}</ChipsContainer>
</>
@ -169,6 +264,20 @@ const CSP = ({ t, cspDomains, getCSPSettings, setCSPSettings }) => {
};
export default inject(({ settingsStore }) => {
const { cspDomains, getCSPSettings, setCSPSettings } = settingsStore;
return { cspDomains, getCSPSettings, setCSPSettings };
const {
cspDomains,
currentColorScheme,
getCSPSettings,
installationGuidesUrl,
setCSPSettings,
standalone,
} = settingsStore;
return {
cspDomains,
currentColorScheme,
getCSPSettings,
installationGuidesUrl,
setCSPSettings,
standalone,
};
})(observer(CSP));

View File

@ -179,7 +179,7 @@ const AdminMessage = (props) => {
options={[
{
id: "admin-message-disabled",
label: t("Disabled"),
label: t("Common:Disabled"),
value: "disabled",
},
{

View File

@ -240,7 +240,7 @@ const IpSecurity = (props) => {
options={[
{
id: "ip-security-disabled",
label: t("Disabled"),
label: t("Common:Disabled"),
value: "disabled",
},
{

View File

@ -244,7 +244,7 @@ const SessionLifetime = (props) => {
options={[
{
id: "session-lifetime-disabled",
label: t("Disabled"),
label: t("Common:Disabled"),
value: "disabled",
},
{

View File

@ -181,7 +181,7 @@ const TwoFactorAuth = (props) => {
options={[
{
id: "tfa-disabled",
label: t("Disabled"),
label: t("Common:Disabled"),
value: "none",
},
//TODO: hide while 2fa by sms is not working

View File

@ -218,7 +218,7 @@ const TrustedMail = (props) => {
options={[
{
id: "trusted-mail-disabled",
label: t("Disabled"),
label: t("Common:Disabled"),
value: "0",
},
{

View File

@ -137,7 +137,7 @@ const confirmRoutes = [
{
path: "PasswordChange",
element: (
<ConfirmRoute doAuthenticated={AuthenticatedAction.Logout}>
<ConfirmRoute>
<ChangePasswordForm />
</ConfirmRoute>
),

View File

@ -162,7 +162,7 @@ class CommonStore {
};
getWhiteLabelLogoText = async () => {
const res = await api.settings.getLogoText();
const res = await api.settings.getLogoText(isManagement());
this.setLogoText(res);
this.defaultLogoTextWhiteLabel = res;
return res;
@ -178,7 +178,7 @@ class CommonStore {
};
getIsDefaultWhiteLabel = async () => {
const res = await api.settings.getIsDefaultWhiteLabel();
const res = await api.settings.getIsDefaultWhiteLabel(isManagement());
const enableRestoreButton = res.map((item) => item.default).includes(false);
this.enableRestoreButton = enableRestoreButton;
};

View File

@ -86,6 +86,7 @@ import {
getCategoryUrl,
} from "SRC_DIR/helpers/utils";
import { MEDIA_VIEW_URL } from "@docspace/shared/constants";
import { openingNewTab } from "@docspace/shared/utils/openingNewTab";
class FilesActionStore {
settingsStore;
@ -2279,7 +2280,7 @@ class FilesActionStore {
onMarkAsRead = (item) => this.markAsRead([], [`${item.id}`], item);
openFileAction = (item, t) => {
openFileAction = (item, t, e) => {
const { openDocEditor, isPrivacyFolder, setSelection } = this.filesStore;
const { currentDeviceType } = this.settingsStore;
const { fileItemsList } = this.pluginStore;
@ -2324,8 +2325,6 @@ class FilesActionStore {
if (isFolder) {
const { isRoom, rootFolderType, title, roomType: itemRoomType } = item;
setIsLoading(true);
const path = getCategoryUrl(
getCategoryTypeByFolderType(rootFolderType, id),
id,
@ -2334,6 +2333,12 @@ class FilesActionStore {
const filter = FilesFilter.getDefault();
filter.folder = id;
const url = `${path}?${filter.toUrlParams()}`;
if (openingNewTab(url, e)) return;
setIsLoading(true);
const state = {
title,
isRoot: false,
@ -2345,7 +2350,7 @@ class FilesActionStore {
setSelection([]);
window.DocSpace.navigate(`${path}?${filter.toUrlParams()}`, { state });
window.DocSpace.navigate(url, { state });
} else {
if (canConvert) {
setConvertItem({ ...item, isOpen: true });

View File

@ -61,6 +61,8 @@ class GroupsStore {
groupsIsIsLoading = false;
insideGroupIsLoading = false;
currentGroup: TGroup | null = null;
insideGroupFilter = InsideGroupFilter.getDefault();
@ -295,6 +297,7 @@ class GroupsStore {
filterData.total = filteredMembersRes.total;
group && this.setCurrentGroup(group);
this.peopleStore.usersStore.setUsers(filteredMembersRes.items);
if (updateFilter) {
@ -311,8 +314,8 @@ class GroupsStore {
}
fetchMoreInsideGroupUsers = async () => {
if (!this.hasMoreInsideGroupUsers || this.groupsIsIsLoading) return;
this.groupsIsIsLoading = true;
if (!this.hasMoreInsideGroupUsers || this.insideGroupIsLoading) return;
this.insideGroupIsLoading = true;
const newFilter = this.insideGroupFilter.clone();
newFilter.page += 1;
@ -326,7 +329,7 @@ class GroupsStore {
...res.items,
]);
this.insideGroupFilter = newFilter;
this.groupsIsIsLoading = false;
this.insideGroupIsLoading = false;
});
};

View File

@ -245,8 +245,8 @@ class MediaViewerDataStore {
if (filesList.length > 0) {
filesList.forEach((file) => {
const canOpenPlayer =
file.viewAccessibility.ImageView ||
file.viewAccessibility.MediaView ||
file.viewAccessibility?.ImageView ||
file.viewAccessibility?.MediaView ||
(file.fileExst === ".pdf" && window.DocSpaceConfig.pdfViewer);
if (canOpenPlayer) {
@ -266,7 +266,7 @@ class MediaViewerDataStore {
file.thumbnailStatus === thumbnailStatuses.WAITING;
const isVideoOrImage =
file.viewAccessibility.ImageView || isVideo(file.fileExst);
file.viewAccessibility?.ImageView || isVideo(file.fileExst);
if (thumbnailIsNotCreated && isVideoOrImage)
itemsWithoutThumb.push(file);

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