diff --git a/i18next/client.babel b/i18next/client.babel index d9db8a8af7..60f7893cef 100644 --- a/i18next/client.babel +++ b/i18next/client.babel @@ -12089,6 +12089,138 @@ + + TermsAndConditions + + + + + + ar-SA + false + + + az-Latn-AZ + false + + + bg-BG + false + + + cs-CZ + false + + + de-DE + false + + + el-GR + false + + + en-US + false + + + es-ES + false + + + fi-FI + false + + + fr-FR + false + + + hy-AM + false + + + it-IT + false + + + ja-JP + false + + + ko-KR + false + + + lo-LA + false + + + lv-LV + false + + + nl-NL + false + + + pl-PL + false + + + pt-BR + false + + + pt-PT + false + + + ro-RO + false + + + ru-RU + false + + + si-SI + false + + + sk-SK + false + + + sl-SI + false + + + sr-Cyrl-RS + false + + + sr-Latn-RS + false + + + tr-TR + false + + + uk-UA + false + + + vi-VN + false + + + zh-CN + false + + + diff --git a/i18next/common.babel b/i18next/common.babel index beac5421ed..392e59f5be 100644 --- a/i18next/common.babel +++ b/i18next/common.babel @@ -5434,6 +5434,138 @@ + + ChangeUserPermissions + + + + + + ar-SA + false + + + az-Latn-AZ + false + + + bg-BG + false + + + cs-CZ + false + + + de-DE + false + + + el-GR + false + + + en-US + false + + + es-ES + false + + + fi-FI + false + + + fr-FR + false + + + hy-AM + false + + + it-IT + false + + + ja-JP + false + + + ko-KR + false + + + lo-LA + false + + + lv-LV + false + + + nl-NL + false + + + pl-PL + false + + + pt-BR + false + + + pt-PT + false + + + ro-RO + false + + + ru-RU + false + + + si-SI + false + + + sk-SK + false + + + sl-SI + false + + + sr-Cyrl-RS + false + + + sr-Latn-RS + false + + + tr-TR + false + + + uk-UA + false + + + vi-VN + false + + + zh-CN + false + + + ChooseFromTemplates @@ -6886,6 +7018,138 @@ + + Commercial + + + + + + ar-SA + false + + + az-Latn-AZ + false + + + bg-BG + false + + + cs-CZ + false + + + de-DE + false + + + el-GR + false + + + en-US + false + + + es-ES + false + + + fi-FI + false + + + fr-FR + false + + + hy-AM + false + + + it-IT + false + + + ja-JP + false + + + ko-KR + false + + + lo-LA + false + + + lv-LV + false + + + nl-NL + false + + + pl-PL + false + + + pt-BR + false + + + pt-PT + false + + + ro-RO + false + + + ru-RU + false + + + si-SI + false + + + sk-SK + false + + + sl-SI + false + + + sr-Cyrl-RS + false + + + sr-Latn-RS + false + + + tr-TR + false + + + uk-UA + false + + + vi-VN + false + + + zh-CN + false + + + Common @@ -7414,6 +7678,138 @@ + + ConfirmationText + + + + + + ar-SA + false + + + az-Latn-AZ + false + + + bg-BG + false + + + cs-CZ + false + + + de-DE + false + + + el-GR + false + + + en-US + false + + + es-ES + false + + + fi-FI + false + + + fr-FR + false + + + hy-AM + false + + + it-IT + false + + + ja-JP + false + + + ko-KR + false + + + lo-LA + false + + + lv-LV + false + + + nl-NL + false + + + pl-PL + false + + + pt-BR + false + + + pt-PT + false + + + ro-RO + false + + + ru-RU + false + + + si-SI + false + + + sk-SK + false + + + sl-SI + false + + + sr-Cyrl-RS + false + + + sr-Latn-RS + false + + + tr-TR + false + + + uk-UA + false + + + vi-VN + false + + + zh-CN + false + + + ConflictResolveSelectAction @@ -18502,6 +18898,270 @@ + + DownloadOperationDescription + + + + + + ar-SA + false + + + az-Latn-AZ + false + + + bg-BG + false + + + cs-CZ + false + + + de-DE + false + + + el-GR + false + + + en-US + false + + + es-ES + false + + + fi-FI + false + + + fr-FR + false + + + hy-AM + false + + + it-IT + false + + + ja-JP + false + + + ko-KR + false + + + lo-LA + false + + + lv-LV + false + + + nl-NL + false + + + pl-PL + false + + + pt-BR + false + + + pt-PT + false + + + ro-RO + false + + + ru-RU + false + + + si-SI + false + + + sk-SK + false + + + sl-SI + false + + + sr-Cyrl-RS + false + + + sr-Latn-RS + false + + + tr-TR + false + + + uk-UA + false + + + vi-VN + false + + + zh-CN + false + + + + + DownloadOperationTitle + + + + + + ar-SA + false + + + az-Latn-AZ + false + + + bg-BG + false + + + cs-CZ + false + + + de-DE + false + + + el-GR + false + + + en-US + false + + + es-ES + false + + + fi-FI + false + + + fr-FR + false + + + hy-AM + false + + + it-IT + false + + + ja-JP + false + + + ko-KR + false + + + lo-LA + false + + + lv-LV + false + + + nl-NL + false + + + pl-PL + false + + + pt-BR + false + + + pt-PT + false + + + ro-RO + false + + + ru-RU + false + + + si-SI + false + + + sk-SK + false + + + sl-SI + false + + + sr-Cyrl-RS + false + + + sr-Latn-RS + false + + + tr-TR + false + + + uk-UA + false + + + vi-VN + false + + + zh-CN + false + + + DropzoneTitleExsts @@ -20878,6 +21538,138 @@ + + EnableThirdPartyIntegration + + + + + + ar-SA + false + + + az-Latn-AZ + false + + + bg-BG + false + + + cs-CZ + false + + + de-DE + false + + + el-GR + false + + + en-US + false + + + es-ES + false + + + fi-FI + false + + + fr-FR + false + + + hy-AM + false + + + it-IT + false + + + ja-JP + false + + + ko-KR + false + + + lo-LA + false + + + lv-LV + false + + + nl-NL + false + + + pl-PL + false + + + pt-BR + false + + + pt-PT + false + + + ro-RO + false + + + ru-RU + false + + + si-SI + false + + + sk-SK + false + + + sl-SI + false + + + sr-Cyrl-RS + false + + + sr-Latn-RS + false + + + tr-TR + false + + + uk-UA + false + + + vi-VN + false + + + zh-CN + false + + + EncryptingFile @@ -42394,6 +43186,138 @@ + + PaidUsersExceedsLimit + + + + + + ar-SA + false + + + az-Latn-AZ + false + + + bg-BG + false + + + cs-CZ + false + + + de-DE + false + + + el-GR + false + + + en-US + false + + + es-ES + false + + + fi-FI + false + + + fr-FR + false + + + hy-AM + false + + + it-IT + false + + + ja-JP + false + + + ko-KR + false + + + lo-LA + false + + + lv-LV + false + + + nl-NL + false + + + pl-PL + false + + + pt-BR + false + + + pt-PT + false + + + ro-RO + false + + + ru-RU + false + + + si-SI + false + + + sk-SK + false + + + sl-SI + false + + + sr-Cyrl-RS + false + + + sr-Latn-RS + false + + + tr-TR + false + + + uk-UA + false + + + vi-VN + false + + + zh-CN + false + + + Password diff --git a/i18next/editor.babel b/i18next/editor.babel index 13063a6852..ea0532bbdb 100644 --- a/i18next/editor.babel +++ b/i18next/editor.babel @@ -1743,6 +1743,138 @@ + + RememberChoice + + + + + + ar-SA + false + + + az-Latn-AZ + false + + + bg-BG + false + + + cs-CZ + false + + + de-DE + false + + + el-GR + false + + + en-US + false + + + es-ES + false + + + fi-FI + false + + + fr-FR + false + + + hy-AM + false + + + it-IT + false + + + ja-JP + false + + + ko-KR + false + + + lo-LA + false + + + lv-LV + false + + + nl-NL + false + + + pl-PL + false + + + pt-BR + false + + + pt-PT + false + + + ro-RO + false + + + ru-RU + false + + + si-SI + false + + + sk-SK + false + + + sl-SI + false + + + sr-Cyrl-RS + false + + + sr-Latn-RS + false + + + tr-TR + false + + + uk-UA + false + + + vi-VN + false + + + zh-CN + false + + + StayInBrowser diff --git a/packages/client/package.json b/packages/client/package.json index cedf6bdafc..7e7d8561d5 100644 --- a/packages/client/package.json +++ b/packages/client/package.json @@ -75,6 +75,7 @@ "@babel/preset-typescript": "^7.21.0", "@svgr/webpack": "^5.5.0", "@types/crypto-js": "^4.2.1", + "@types/element-resize-detector": "^1.1.6", "@types/eslint": "^8.44.7", "@types/he": "^1.2.3", "@typescript-eslint/eslint-plugin": "^6.12.0", diff --git a/packages/client/public/locales/ar-SA/Files.json b/packages/client/public/locales/ar-SA/Files.json index f201239deb..d608259137 100644 --- a/packages/client/public/locales/ar-SA/Files.json +++ b/packages/client/public/locales/ar-SA/Files.json @@ -117,6 +117,7 @@ "OpenLocation": "افتح الموقع", "PasswordAccess": "إمكانية الوصول لكلمة المرور", "PasswordLink": "إضافة كلمة مرور لحماية الرابط الخاص بك", + "PasswordProtectedFiles": "الرجاء <0>أدخل كلمة مرور للملفات المحمية للمتابعة ", "PasswordSuccessfullyCopied": "تم نسخ كلمة المرور بنجاح", "Pin": "تثبيت", "PinToTop": "تثبيت في أعلى الصفحة", diff --git a/packages/client/public/locales/ar-SA/InviteDialog.json b/packages/client/public/locales/ar-SA/InviteDialog.json index e6fe7bd9ac..158698e63b 100644 --- a/packages/client/public/locales/ar-SA/InviteDialog.json +++ b/packages/client/public/locales/ar-SA/InviteDialog.json @@ -2,7 +2,7 @@ "AddManually": "أضف يدوياً", "AddManuallyDescriptionAccounts": "قم بدعوة المستخدمين الجدد إلى {{productName}} شخصيًا عبر البريد الإلكتروني", "AddManuallyDescriptionRoom": "أضف مستخدمي {{productName}} الحاليين إلى الغرفة باستخدام الأسماء أو قم بدعوة مستخدمين جدد شخصيًا عبر البريد الإلكتروني", - "EmailErrorMessage": "عنوان البريد الإلكتروني غير صالح. يمكنك تحرير البريد الإلكتروني بالضغط عليه.", + "EmailErrorMessage": "عنوان البريد الإلكتروني غير صالح. بإمكانك تعديل البريد الإلكتروني بالنقر المزدوج عليه.", "GroupMaxAvailableRoleWarning": "يمكن إضافة المجموعات إلى غرفة مع وظيفة {{roleName}} كحد أقصى. ومع ذلك، يمكنك تغيير وظائف المستخدمين الفرديين في المجموعة بعد إضافتها بنجاح.", "InvitationLanguage": "لغة الدعوة", "InviteAccountSearchPlaceholder": "ادعُ الناس بالبريد الإلكتروني", diff --git a/packages/client/public/locales/ar-SA/Ldap.json b/packages/client/public/locales/ar-SA/Ldap.json index 0437550e55..8f03b81424 100644 --- a/packages/client/public/locales/ar-SA/Ldap.json +++ b/packages/client/public/locales/ar-SA/Ldap.json @@ -36,6 +36,7 @@ "LdapPortNumber": "رقم البوابة", "LdapPortNumberTooltip": "أدخل رقم البوابة لدليل خادم LDAP/Active.", "LdapQuota": "حصة المستخدم", + "LdapQuotaInfo": "لتتمكن من استخدام هذه الخاصية، قم بتمكين حصة للمستخدم في <0>إعدادات إدارة مساحة التخزين", "LdapSecondName": "الاسم الثاني", "LdapSendWelcomeLetter": "إرسال رسالة ترحيب", "LdapSendWelcomeLetterTooltip": "إذا تم تحديده، فسيتلقى جميع المستخدمين الجدد خطاب ترحيب. يتوفر فقط عند تعيين ميزة البريد إلى LDAP.", @@ -66,6 +67,7 @@ "LdapUserDNTooltip": "أدخل الاسم المميز في الدليل الذي يحتوي على المستخدمين الذين تريد إضافتهم.", "LdapUserFilter": "تصفية المستخدم", "LdapUserFilterTooltip": "استخدم تصفية البحث LDAP لتحديد المستخدمين الذين يجب استيرادهم.", + "LdapUserQuotaTooltip": "لتعيين حصة تخزين للمستخدم، أضف خاصية في دليل LDAP (على سبيل المثال، UsersQuotaLimit) وأدخل قيمة عددية لهذه الخاصية. سيتم عرض قيمة الحصة بالبايتات. هنا، حدد اسم الخاصية فقط. سيتم تطبيق هذه الخاصية فقط أثناء الإعداد الأول ويمكن تغييرها لاحقًا يدويًا في قسم الحسابات.", "LdapUsersType": "نوع المستخدمين", "LdapUsersTypeInfo": "يمكن للمستخدمين الوصول فقط إلى الغرف التي تمت دعوتهم إليها بواسطة المسؤولين، ولا يمكنهم إنشاء غرف أو مجلدات أو ملفات خاصة بهم. حدد نوعًا آخر أدناه لتوفير المزيد من الأذونات. بخلاف ذلك، يمكنك تغيير النوع يدويًا في قسم الحسابات.", "LdapUserTypeTooltip": "سيتم إضافة كافة المستخدمين إلى {{productName}} بالنوع المحدد." diff --git a/packages/client/public/locales/ar-SA/MainBar.json b/packages/client/public/locales/ar-SA/MainBar.json index ce753f8398..815373a2a2 100644 --- a/packages/client/public/locales/ar-SA/MainBar.json +++ b/packages/client/public/locales/ar-SA/MainBar.json @@ -1,12 +1,31 @@ { + "ArchivedRoomsOrContact": "يمكنك أرشفة الغرف غير الضرورية أو الاتصال بمسؤول {{productName}} لترقية خطة التعريف.", + "ClickToUpgradeTariff": "<1>انقر هنا لترقية خطة التعريف الخاصة بك.", "ConfirmEmailDescription": "استخدم الرابط الموجود في البريد الإلكتروني للتفعيل. لم تستلم بريدًا إلكترونيًا يحتوي على رابط التفعيل؟", "ConfirmEmailHeader": "يرجى تنشيط بريدك الإلكتروني ({{email}}) للوصول إلى ميزات {{productName}}", + "ContactToUpgradeTariff": "اتصل بمسؤول {{productName}} لترقية خطة التعريف.", + "PersonalQuotaHeader": "لقد تجاوزت حصة التخزين الشخصية الخاصة بك", + "PersonalQuotaHeaderForAdmins": "تم تجاوز حصة التخزين لكل مستخدم", "PersonalUserQuotaAdminsDescription": "لتحميل وإنشاء ملفات ومجلدات جديدة ، يرجى تحرير مساحة على القرص، أو إدارة الحصة النسبية لكل مستخدم في <1>إعدادات إدارة التخزين.", - "PersonalUserQuotaDescription": "لتحميل وإنشاء ملفات ومجلدات جديدة، يرجى تحرير مساحة على القرص أو الاتصال بالمسؤول لزيادة حصة التخزين.", + "PersonalUserQuotaDescription": "لتحميل وإنشاء ملفات ومجلدات جديدة، يرجى تحرير مساحة على القرص أو الاتصال بالمسؤول {{productName}} لزيادة حصة التخزين.", + "RemoveFilesOrClickToUpgrade": "قم بإزالة الملفات غير الضرورية أو <1>انقر هنا لترقية خطة التعريف الخاصة بك.", + "RemoveFilesOrContactToUpgrade": "قم بإزالة الملفات غير الضرورية أو اتصل بمسؤول {{productName}} لترقية خطة التعريف.", + "RemoveFilesOrContactToUpgradeQuota": "قم بإزالة الملفات غير الضرورية أو اتصل بمسؤول {{productName}} لزيادة حصة التخزين.", "RequestActivation": "اطلب التفعيل مرة أخرى", + "RoomQuotaDescription": "يمكنك أرشفة الغرف غير الضرورية أو <1>انقر هنا للعثور على خطة تسعير أكثر ملاءمة لـ {{productName}}.", "RoomQuotaHeader": "عدد الغرف على وشك أن يتجاوز: {{currentValue}} / {{maxValue}}", + "RoomQuotaHeaderLimit": "تم الوصول إلى الحد الأقصى لعدد الغرف: {{currentValue}} / {{maxValue}}", + "StorageAndRoomHeader": "تم تجاوز الحد الأقصى لمساحة التخزين وعدد الغرف", + "StorageAndRoomLimitHeader": "تم الوصول إلى الحد الأقصى لمساحة التخزين وعدد الغرف", "StorageAndUserHeader": "حدود مساحة التخزين والمشرفين / المستخدمين المتميزين على وشك أن يتم تجاوزها.", + "StorageAndUserTariffLimitHeader": "تم الوصول إلى الحد الأقصى لمساحة التخزين وعدد المسؤولين/المستخدمين المميزين", + "StorageLimitHeader": "تم الوصول إلى الحد الأقصى لمساحة التخزين: {{currentValue}} / {{maxValue}}", "StorageQuotaHeader": "حجم مساحة التخزين على وشك أن يتم تجاوزها: {{currentValue}} / {{maxValue}}", "TenantCustomQuotaDescription": "يمكنك إزالة الملفات غير الضرورية أو تغيير الحصة النسبية في <1> إعدادات إدارة التخزين.", - "UserQuotaHeader": "عدد المشرفين المستخدمين المتميزين على وشك أن يتم تجاوزه: {{currentValue}} / {{maxValue}}" + "UserQuotaHeader": "عدد المشرفين المستخدمين المتميزين على وشك أن يتم تجاوزه: {{currentValue}} / {{maxValue}}", + "UserTariffAlmostReached": "بمجرد الوصول إلى الحد الأقصى، سيتم إضافة جميع المستخدمين الذين لديهم أذونات المستخدم فقط. لتتمكن من إضافة المزيد من المسؤولين/المستخدمين المميزين، اتصل بمسؤول{{productName}} لترقية خطة التعريف.", + "UserTariffAlmostReachedForAdmins": "بمجرد الوصول إلى الحد الأقصى، سيتم إضافة جميع المستخدمين الذين لديهم أذونات المستخدم فقط. لتتمكن من إضافة المزيد من المسؤولين/المستخدمين ذوي الصلاحيات، <1>انقر هنا لترقية خطة التعريف الخاصة بك.", + "UserTariffLimitHeader": "تم الوصول إلى الحد الأقصى لعدد المسؤولين/المستخدمين ذوي الصلاحيات: {{currentValue}} / {{maxValue}}", + "UserTariffReached": "سيتم إضافة جميع المستخدمين الذين لديهم أذونات المستخدم فقط. لتتمكن من إضافة المزيد من المسؤولين/المستخدمين ذوي الصلاحيات، اتصل بمسؤول {{productName}} لترقية خطة التعريف.", + "UserTariffReachedForAdmins": "سيتم إضافة جميع المستخدمين الذين لديهم أذونات المستخدم فقط. لتتمكن من إضافة المزيد من المسؤولين/المستخدمين ذوي الصلاحيات، <1>انقر هنا لترقية خطة التعريف الخاصة بك." } diff --git a/packages/client/public/locales/ar-SA/PDFFormDialog.json b/packages/client/public/locales/ar-SA/PDFFormDialog.json index 935b077a73..c426e83209 100644 --- a/packages/client/public/locales/ar-SA/PDFFormDialog.json +++ b/packages/client/public/locales/ar-SA/PDFFormDialog.json @@ -1,4 +1,5 @@ { + "PDFform": "نموذج PDF", "PDFFormEditDialogDescription": "هل تريد التبديل إلى وضع تحرير النموذج؟ يرجى ملاحظة أن النموذج لن يكون متاحًا لتعبئته بعد الآن وستحتاج إلى النقر على بدء التعبئة مرة أخرى بعد التحرير لتعبئته.", "PDFFormEditDialogTitle": "تحرير النموذج", "PDFFormIsReadyToast": "نموذج PDF <1>{{filename}} جاهز للتعبئة.", diff --git a/packages/client/public/locales/ar-SA/Payments.json b/packages/client/public/locales/ar-SA/Payments.json index 05652b317b..30612ba090 100644 --- a/packages/client/public/locales/ar-SA/Payments.json +++ b/packages/client/public/locales/ar-SA/Payments.json @@ -9,6 +9,9 @@ "BusinessSuggestion": "قم بتخصيص خطة {{planName}} الخاصة بك", "BusinessTitle": "أنت تستخدم خطة {{planName}}", "BusinessUpdated": "تم تحديث خطة {{planName}}", + "CannotCreateNewRoom": "لا يمكن إنشاء الغرفة", + "CannotCreatePaidUsers": "لا يمكن إضافة المستخدمين المدفوعين", + "CannotRestoreRoom": "لا يمكن استعادة الغرفة", "ChooseNewPayer": "اختر طريقة دفع جديدة", "ChooseNewPlan": "هل ترغب في اختيار خطة تسعير جديدة؟", "ContactUs": "لأسئلة المبيعات، اتصل بنا على", @@ -22,12 +25,18 @@ "InvalidEmailWithoutActiveSubscription": "نوصي باختيار دافع جديد يمكنه الوصول إلى إعدادات الاشتراك في {{productName}}.", "InvalidEmailWithoutActiveSubscriptionByAdmin": "نوصي بالاتصال بمالك {{productName}} لاختيار دافع جديد.", "ManagerTypesDescription": "أنواع حسابات المشرفين وامتيازاتهم", + "NewRoomWillExceedLimit": "إنشاء هذه الغرفة غير ممكن نظرًا لبلوغ الحد الأقصى لعدد الغرف المضمنة في خطتك الحالية.", + "NewUsersWillExceedMembersLimit": "لا يمكن إضافة مستخدمين مدفوعين جدد نظرًا لبلوغ الحد الأقصى لعدد المسؤولين الموجودين في خطتك الحالية.", + "NotPossibleRoomRestoring": "لا يمكن استعادة هذه الغرفة نظرًا لبلوغ الحد الأقصى لعدد الغرف الموجودة في خطتك الحالية.", + "NumberOfRoomsAccordingToTariff": "عدد الغرف وفقًا لخطة التعريف الخاصة بك: {{currentValue}}/{{maxValue}}", + "NumberOfUsersAccordingToTariff": "عدد المشرفين/المستخدمين المميزين وفقًا لخطة التعريف الخاصة بك: {{currentValue}}/{{maxValue}}", "Pay": "ادفع", "Payer": "طريقة الدفع", "PayerDescription": "هذا المستخدم لديه حق الوصول إلى تفاصيل الدفع وهو المستخدم الوحيد الذي يمكنه تعديل الحصة وإجراء المدفوعات. يمكن لمالك {{productName}} ، بالإضافة إلى مدير الدفع نفسه ، إعادة تعيين دور مدير الدفع باستخدام بوابة عملاء سترب.", "PriceCalculation": "احسب سعرك", "RenewSubscription": "تجديد الاشتراك في خطة {{planName}}", "RoomManagerDescription": "إدارة الغرف والأرشفة ودعوة المستخدم وإدارتها. يمكن تعيين عدة مدراء للغرفة.", + "RoomsQuotaAlmostExhausted": "تم استنفاد حصة الغرف تقريبًا.", "StartupSuggestion": "احصل على المزيد مع خطة {{planName}}", "StartupTitle": "أنت تستخدم خطة {{planName}} المجانية", "StripeCustomerPortal": "انتقل إلى بوابة عملاء سترب", @@ -36,5 +45,6 @@ "UpgradePlan": "قم بالترقية إلى خطة جديدة", "UserNotFound": "المستخدم <1> {{email}} غير موجود.", "UserNotFoundMatchingEmail": "لم نتمكن من العثور على المستخدم الذي يحمل نفس بريد سترب المطابق.", + "UsersQuotaAlmostExhausted": "تم استنفاد حصة المستخدمين المدفوعين تقريبًا.", "YourPrice": "سعرك" } diff --git a/packages/client/public/locales/az/Files.json b/packages/client/public/locales/az/Files.json index 2ea2fdb70d..659097fd33 100644 --- a/packages/client/public/locales/az/Files.json +++ b/packages/client/public/locales/az/Files.json @@ -117,6 +117,7 @@ "OpenLocation": "Qovluğu açmaq", "PasswordAccess": "Şifrə girişi", "PasswordLink": "Keçidinizi qorumaq üçün şifrə əlavə edin.", + "PasswordProtectedFiles": "Qorunan faylları saxlamaq üçün <0>şifrə daxil edin", "PasswordSuccessfullyCopied": "Şifrə uğurla nüsxələndi", "Pin": "Sabitləyin", "PinToTop": "Yuxarıya sabitləyin", diff --git a/packages/client/public/locales/az/InviteDialog.json b/packages/client/public/locales/az/InviteDialog.json index afa85a21b9..31c445ee62 100644 --- a/packages/client/public/locales/az/InviteDialog.json +++ b/packages/client/public/locales/az/InviteDialog.json @@ -2,7 +2,7 @@ "AddManually": "Əl ilə əlavə edin", "AddManuallyDescriptionAccounts": "Yeni istifadəçiləri e-poçt vasitəsilə şəxsən {{productName}}-ə dəvət edin", "AddManuallyDescriptionRoom": "Mövcud {{productName}} 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.", + "EmailErrorMessage": "E-poçt ünvanı etibarlı deyil. Siz e-poçtun üzərinə iki dəfə klikləməklə redaktə edə bilərsiniz.", "GroupMaxAvailableRoleWarning": "Qruplar maksimum {{roleName}} rolu olan otağa əlavə edilə bilər. Bununla belə, qrup uğurla əlavə edildikdən sonra qrupdakı fərdi istifadəçilərin rolunu dəyişə bilərsiniz.", "InvitationLanguage": "Dəvət dili", "InviteAccountSearchPlaceholder": "İnsanları e-məktubla dəvət edin", diff --git a/packages/client/public/locales/az/Ldap.json b/packages/client/public/locales/az/Ldap.json index 689adf6a2e..9f2137c7f8 100644 --- a/packages/client/public/locales/az/Ldap.json +++ b/packages/client/public/locales/az/Ldap.json @@ -36,6 +36,7 @@ "LdapPortNumber": "Port Nömrəsi", "LdapPortNumberTooltip": "LDAP serverinizin/Aktiv Direktiv port nömrəsini daxil edin.", "LdapQuota": "İstifadəçi kvotası", + "LdapQuotaInfo": "Bu funksiyadan istifadə etmək üçün <0>Yaddaş idarəetmə ayarlarında istifadəçi kvotasını aktiv edin", "LdapSecondName": "Soyad", "LdapSendWelcomeLetter": "Xoş gəlmisiniz məktubu göndərin", "LdapSendWelcomeLetterTooltip": "İşarələndikdə bütün yeni istifadəçilərə xoş gəlmisiniz məktubu göndəriləcək. Yalnız Mail Xüsusiyyəti LDAP-a uyğunlaşdırıldıqda əlçatandır.", @@ -66,6 +67,7 @@ "LdapUserDNTooltip": "Əlavə etmək istədiyiniz istifadəçilərin olduğu qovluğa seçilən adı daxil edin.", "LdapUserFilter": "İstifadəçi Filtri", "LdapUserFilterTooltip": "İdxal edilməli olan istifadəçiləri seçmək üçün LDAP axtarış filtrindən istifadə edin.", + "LdapUserQuotaTooltip": "İstifadəçi üçün yaddaş kvotası təyin etmək üçün LDAP qovluğuna atribut əlavə edin (məsələn, UsersQuotaLimit) və bu atribut üçün tam dəyər daxil edin. O, kvota dəyərini baytla göstərəcək. Burada yalnız atribut adını göstərin. Bu funksiya yalnız ilkin quraşdırma zamanı həyata keçiriləcək və daha sonra Hesablar bölməsində əl ilə dəyişdirilə bilər.", "LdapUsersType": "İstifadəçi növü", "LdapUsersTypeInfo": "İstifadəçilər yalnız administratorlar tərəfindən dəvət olunduqları otaqlara daxil ola bilər və öz otaqları, qovluqları və ya fayllarını yarada bilməzlər. Daha çox icazə təmin etmək üçün aşağıda başqa növ seçin. Əks halda, Hesablar bölməsində növü əl ilə dəyişə bilərsiniz.", "LdapUserTypeTooltip": "Bütün istifadəçilər seçilmiş növlə {{productName}} –a əlavə olunacaq." diff --git a/packages/client/public/locales/az/MainBar.json b/packages/client/public/locales/az/MainBar.json index 9169a638d9..7895ebba98 100644 --- a/packages/client/public/locales/az/MainBar.json +++ b/packages/client/public/locales/az/MainBar.json @@ -1,12 +1,31 @@ { + "ArchivedRoomsOrContact": "Tarif planını təkmilləşdirmək üçün lazımsız otaqları arxivləşdirə və ya {{productName}} administratoru ilə əlaqə saxlaya bilərsiniz.", + "ClickToUpgradeTariff": "Tarif planınızı təkmilləşdirmək üçün <1>buraya klikləyin.", "ConfirmEmailDescription": "Aktivləşdirmə e-məktubunda göndərilən keçiddən istifadə edin. Aktivləşdirmə linki olan e-məktub almamısınız?", "ConfirmEmailHeader": "Lütfən, {{productName}} xüsusiyyətlərinə daxil olmaq üçün e-poçtunuzu ({{ email }}) aktiv edin.", + "ContactToUpgradeTariff": "Tarif planını təkmilləşdirmək üçün {{productName}} administratoru ilə əlaqə saxlayın.", + "PersonalQuotaHeader": "Şəxsi yaddaş kvotanız limiti keçib", + "PersonalQuotaHeaderForAdmins": "İstifadəçiyə düşən yaddaş kvotasını keçib", "PersonalUserQuotaAdminsDescription": "Yeni fayl və qovluqları yükləmək və yaratmaq üçün zəhmət olmasa, diskdə yer boşaldın və ya <1>Yaddaş idarəetmə parametrlərində hər istifadəçi kvotasını idarə edin.", - "PersonalUserQuotaDescription": "Yeni fayl və qovluqları yükləmək və yaratmaq üçün diskdə yer boşaldın və ya yaddaş kvotasını artırmaq üçün administratorla əlaqə saxlayın.", + "PersonalUserQuotaDescription": "Yeni fayl və qovluqları yükləmək və yaratmaq üçün diskdə yer boşaldın və ya yaddaş kvotasını artırmaq üçün {{productName}} administratorla əlaqə saxlayın.", + "RemoveFilesOrClickToUpgrade": "Tarif planınızı təkmilləşdirmək üçün lazımsız faylları silin və ya <1>buraya klikləyin.", + "RemoveFilesOrContactToUpgrade": "Tarif planını təkmilləşdirmək üçün lazımsız faylları silin və ya {{productName}} administratoru ilə əlaqə saxlayın.", + "RemoveFilesOrContactToUpgradeQuota": "Lazımsız faylları silin və ya yaddaş kvotasını artırmaq üçün {{productName}} administratoru ilə əlaqə saxlayın.", "RequestActivation": "Yenidən aktivləşdirmə tələb edin", + "RoomQuotaDescription": "{{productName}} üçün daha uyğun qiymət planı tapmaq üçün lazımsız otaqları arxiv edə və ya <1>buraya klikləyə bilərsiniz.", "RoomQuotaHeader": "Otaqlar keçmək üzrədir: {{currentValue}} / {{maxValue}}", + "RoomQuotaHeaderLimit": "Otaq sayı limitinə çatıldı: {{currentValue}} / {{maxValue}}", + "StorageAndRoomHeader": "Yaddaş sahəsi və otaq sayı limiti keçmək üzrədir", + "StorageAndRoomLimitHeader": "Yaddaş sahəsi və otaq sayı limitinə çatıldı", "StorageAndUserHeader": "Yaddaş və administratorlar/ekspert istifadəçilər limitləri aşmaq üzrədir.", + "StorageAndUserTariffLimitHeader": "Yaddaş sahəsi və administrator/güc istifadəçilərinin sayı limitinə çatıldı", + "StorageLimitHeader": "Yaddaş limitinə çatıldı: {{currentValue}} / {{maxValue}}", "StorageQuotaHeader": "Yaddaş sahəsinin həcmi keçmək üzrədir : {{currentValue}} / {{maxValue}}", "TenantCustomQuotaDescription": "<1>Yaddaş idarəetmə parametrlərində lazımsız faylları silə və ya kvotanı dəyişə bilərsiniz.", - "UserQuotaHeader": "Admin/ekspert istifadəçilərin sayı keçmək üzrədir: {{currentValue}} / {{maxValue}}." + "UserQuotaHeader": "Admin/ekspert istifadəçilərin sayı keçmək üzrədir: {{currentValue}} / {{maxValue}}.", + "UserTariffAlmostReached": "Limitə çatdıqdan sonra bütün istifadəçilər yalnız İstifadəçi icazələri ilə əlavə olunacaq. Daha çox idarəçi/güc istifadəçisi əlavə etmək üçün tarif planını təkmilləşdirmək üçün {{productName}} administratoru ilə əlaqə saxlayın.", + "UserTariffAlmostReachedForAdmins": "Limitə çatdıqdan sonra bütün istifadəçilər yalnız İstifadəçi icazələri ilə əlavə olunacaq. Daha çox administrator/güc istifadəçisi əlavə etmək üçün <1>buraya klikləyin ilə tarif planınızı təkmilləşdirin.", + "UserTariffLimitHeader": "Administrator/ekspert istifadəçi limitinə çatıldı: {{currentValue}} / {{maxValue}}", + "UserTariffReached": "Bütün istifadəçilər yalnız İstifadəçi icazələri ilə əlavə olunacaq. Daha çox idarəçi/güc istifadəçisi əlavə etmək üçün tarif planını təkmilləşdirmək üçün {{productName}} administratoru ilə əlaqə saxlayın.", + "UserTariffReachedForAdmins": "Bütün istifadəçilər yalnız İstifadəçi icazələri ilə əlavə olunacaq. Daha çox administrator/güc istifadəçisi əlavə etmək üçün <1>buraya klikləyin ilə tarif planınızı təkmilləşdirin." } diff --git a/packages/client/public/locales/az/PDFFormDialog.json b/packages/client/public/locales/az/PDFFormDialog.json index 1608bf4540..0c351e78cb 100644 --- a/packages/client/public/locales/az/PDFFormDialog.json +++ b/packages/client/public/locales/az/PDFFormDialog.json @@ -1,4 +1,5 @@ { + "PDFform": "PDF forması", "PDFFormEditDialogDescription": "Forma redaktə rejiminə keçmək istəyirsiniz? F Nəzərə alın ki, formanı artıq doldurmaq mümkün deyil və formanı doldurmaq üçün redaktə etdikdən sonra yenidən Doldurmağa başla düyməsini sıxmalısınız.", "PDFFormEditDialogTitle": "Forma redaktə etmə", "PDFFormIsReadyToast": "<1>{{filename}} PDF forması doldurulmağa hazırdır.", diff --git a/packages/client/public/locales/az/Payments.json b/packages/client/public/locales/az/Payments.json index c2e37b7ec4..4986843756 100644 --- a/packages/client/public/locales/az/Payments.json +++ b/packages/client/public/locales/az/Payments.json @@ -9,6 +9,9 @@ "BusinessSuggestion": "{{planName}} planınızı fərdiləşdirin", "BusinessTitle": "Siz {{planName}} planından istifadə edirsiniz", "BusinessUpdated": "{{planName}} plan yeniləndi", + "CannotCreateNewRoom": "Otaq yaratmaq mümkün deyil", + "CannotCreatePaidUsers": "Ödənişli istifadəçilər əlavə edilə bilməz", + "CannotRestoreRoom": "Otağı bərpa etmək mümkün deyil", "ChooseNewPayer": "Yeni Ödəyici seçin", "ChooseNewPlan": "Yeni qiymət planı seçmək istəyirsiniz?", "ContactUs": "Satış sualları üçün bizimlə əlaqə saxlayın:", @@ -22,12 +25,18 @@ "InvalidEmailWithoutActiveSubscription": "{{productName}}-də abunəlik parametrlərinə çıxışı olan yeni Ödəyici seçməyi tövsiyə edirik.", "InvalidEmailWithoutActiveSubscriptionByAdmin": "Yeni Ödəyici seçmək üçün {{productName}} sahibi ilə əlaqə saxlamağı tövsiyə edirik.", "ManagerTypesDescription": "Admin hesabı növləri və imtiyazları", + "NewRoomWillExceedLimit": "Bu otağı yaratmaq mümkün deyil, çünki cari planınıza daxil edilmiş otaqların sayı limitə çatıb.", + "NewUsersWillExceedMembersLimit": "Yeni ödənişli istifadəçiləri əlavə etmək mümkün deyil, çünki cari planınıza daxil edilmiş idarəçilərin sayı limitə çatıb.", + "NotPossibleRoomRestoring": "Bu otağı bərpa etmək mümkün deyil, çünki cari planınıza daxil edilmiş otaqların sayı limitə çatıb.", + "NumberOfRoomsAccordingToTariff": "Tarif planınıza uyğun otaqların sayı: {{currentValue}}/{{maxValue}}", + "NumberOfUsersAccordingToTariff": "Tarif planınıza uyğun olaraq administrator/güc istifadəçilərinin sayı: {{currentValue}}/{{maxValue}}", "Pay": "Ödəyin", "Payer": "Ödəyici", "PayerDescription": "Bu istifadəçi ödəniş təfərrüatlarına daxil ola bilər və kvota təyin edib ödəniş edə bilən yeganə istifadəçidir. {{productName}} sahibi və ödəniş meneceri özləri Stripe müştəri portalından istifadə edərək ödəniş meneceri rolunu yenidən təyin edə bilərlər.", "PriceCalculation": "Qiymətinizi hesablayın", "RenewSubscription": "{{planName}} Plan abunəliyini yeniləyin", "RoomManagerDescription": "Otağın idarə edilməsi və arxivləşdirilməsi, istifadəçi dəvəti və idarə edilməsi. Otağa bir neçə admin təyin edilə bilər.", + "RoomsQuotaAlmostExhausted": "Otaq kvotası dolmaq üzrədir.", "StartupSuggestion": "{{planName}} planı ilə daha çox şey edin", "StartupTitle": "Pulsuz {{planName}} planından istifadə edirsiniz", "StripeCustomerPortal": "Stripe müştəri portalına keçin", @@ -36,5 +45,6 @@ "UpgradePlan": "Planı yeniləyin", "UserNotFound": "İstifadəçi <1>{{email}} tapılmadı.", "UserNotFoundMatchingEmail": "Uyğun Stripe e-poçtu olan istifadəçini tapa bilmədik.", + "UsersQuotaAlmostExhausted": "Ödənişli istifadəçi kvotası dolmaq üzrədir.", "YourPrice": "Qiymətiniz" } diff --git a/packages/client/public/locales/bg/Files.json b/packages/client/public/locales/bg/Files.json index b4d82e8e29..b48460d160 100644 --- a/packages/client/public/locales/bg/Files.json +++ b/packages/client/public/locales/bg/Files.json @@ -117,6 +117,7 @@ "OpenLocation": "Отвори локация", "PasswordAccess": "Достъп до парола", "PasswordLink": "Добавете парола, за да предпазите линка си.", + "PasswordProtectedFiles": "Моля, <0>въведете парола за защитените файлове, за да продължите", "PasswordSuccessfullyCopied": "Паролата е копирана успешно", "Pin": "ПИН", "PinToTop": "Закачете най-отгоре", diff --git a/packages/client/public/locales/bg/InviteDialog.json b/packages/client/public/locales/bg/InviteDialog.json index a958c4fd17..8cb17ed3cb 100644 --- a/packages/client/public/locales/bg/InviteDialog.json +++ b/packages/client/public/locales/bg/InviteDialog.json @@ -2,7 +2,7 @@ "AddManually": "Добавете ръчно", "AddManuallyDescriptionAccounts": "Поканете нови потребители в {{productName}} лично чрез имейл", "AddManuallyDescriptionRoom": "Добавете съществуващи {{productName}} потребители към стаята, като използвате имената или поканете нови потребители лично чрез имейл", - "EmailErrorMessage": "Невалиден имейл адрес. Можете да редактирате имейла, като щракнете върху него.", + "EmailErrorMessage": "Невалиден имейл адрес. Можете да редактирате имейла, като щракнете двукратно върху него.", "GroupMaxAvailableRoleWarning": "Групи могат да се добавят към стая с роля {{roleName}} като максимум. Въпреки това, можете да промените ролята на отделните потребители в групата, след като бъде добавена успешно.", "InvitationLanguage": "Език на поканата", "InviteAccountSearchPlaceholder": "Поканете хора по имейл", diff --git a/packages/client/public/locales/bg/Ldap.json b/packages/client/public/locales/bg/Ldap.json index 76447ccb41..1488adcc55 100644 --- a/packages/client/public/locales/bg/Ldap.json +++ b/packages/client/public/locales/bg/Ldap.json @@ -36,6 +36,7 @@ "LdapPortNumber": "Номер на порта", "LdapPortNumberTooltip": "Въведете номера на порта за вашия LDAP сървър/Активна Директория.", "LdapQuota": "Потребителска квота", + "LdapQuotaInfo": "За да можете да използвате този атрибут, активирайте потребителската квота в <0>Настройки за управление на хранилището", "LdapSecondName": "Второ име", "LdapSendWelcomeLetter": "Изпратете приветстващо писмо", "LdapSendWelcomeLetterTooltip": "Ако е отметнато, всички нови потребители ще получат приветстващо писмо. Налично само когато атрибутът на пощата е съпоставен с LDAP.", @@ -66,6 +67,7 @@ "LdapUserDNTooltip": "Въведете отличителното име в директорията, съдържаща потребители, които искате да добавите.", "LdapUserFilter": "Филтър за потребители", "LdapUserFilterTooltip": "Използвайте LDAP филтъра за търсене, за да изберете потребителите, които трябва да бъдат импортирани.", + "LdapUserQuotaTooltip": "За да зададете потребителска квота за съхранение, добавете атрибут в LDAP директорията (например UsersQuotaLimit) и въведете цяло число за този атрибут. Той ще покаже стойността на квотата в байтове. Тук посочете само името на атрибута. Този атрибут ще бъде приложен само по време на първата настройка и по-късно може да бъде променен ръчно в раздел Профили.", "LdapUsersType": "Вид потребители", "LdapUsersTypeInfo": "Потребителите имат достъп само до стаите, в които са поканени от администраторите, и не могат да създават собствени стаи, папки или файлове. Изберете друг тип по-долу, за да предоставите повече разрешения. В противен случай можете да промените вода ръчно в раздел Профили.", "LdapUserTypeTooltip": "Всички потребители ще бъдат добавени към {{productName}} с избрания вид." diff --git a/packages/client/public/locales/bg/MainBar.json b/packages/client/public/locales/bg/MainBar.json index aef5fe57f0..6fca6a721e 100644 --- a/packages/client/public/locales/bg/MainBar.json +++ b/packages/client/public/locales/bg/MainBar.json @@ -1,12 +1,31 @@ { + "ArchivedRoomsOrContact": "Можете да архивирате ненужните стаи или да се свържете с администратора на {{productName}}, за да надстроите тарифния план.", + "ClickToUpgradeTariff": "<1>Натиснете тук, за да надстроите своя тарифен план.", "ConfirmEmailDescription": "Използвайте линка, предоставен в имейла за активиране. Не сте получили имейл с линк за активиране?", "ConfirmEmailHeader": "Моля, активирайте своя имейл ({{ email }}), за да получите достъп до функциите на {{productName}}.", + "ContactToUpgradeTariff": "Свържете се с администратора на {{productName}}, за да надстроите тарифния план.", + "PersonalQuotaHeader": "Вашата лична квота за съхранение е надвишена", + "PersonalQuotaHeaderForAdmins": "Квотата за съхранение за потребител е надвишена", "PersonalUserQuotaAdminsDescription": "За да качите и създадете нови файлове и папки, моля, освободете място на диска или управлявайте квотата за потребител в <1>Настройки за управление на хранилището.", - "PersonalUserQuotaDescription": "За да качите и създадете нови файлове и папки, моля, освободете място на диска или се свържете с администратора, който да увеличи квотата за съхранение.", + "PersonalUserQuotaDescription": "За да качите и създадете нови файлове и папки, моля, освободете място на диска или се свържете с администратора {{productName}}, който да увеличи квотата за съхранение.", + "RemoveFilesOrClickToUpgrade": "Премахнете ненужните файлове или <1>натиснете тук, за да надстроите своя тарифен план.", + "RemoveFilesOrContactToUpgrade": "Премахнете ненужните файлове или се свържете с администратора на {{productName}}, за да надстроите тарифния план.", + "RemoveFilesOrContactToUpgradeQuota": "Премахнете ненужните файлове или се свържете с администратора на {{productName}}, за да увеличите квотата за съхранение.", "RequestActivation": "Отново заявете активиране", + "RoomQuotaDescription": "Можете да архивирате ненужните стаи или да <1>натиснете тук, за да намерите по-подходящ ценови план за вашия {{productName}}.", "RoomQuotaHeader": "Стаите са на път да бъдат надвишени: {{currentValue}} / {{maxValue}}", + "RoomQuotaHeaderLimit": "Достигнали сте лимита за броя стаи: {{currentValue}} / {{maxValue}}", + "StorageAndRoomHeader": "Лимитът за място за съхранение и брой стаи е на път да бъде надвишен", + "StorageAndRoomLimitHeader": "Лимитът е достигнат за място за съхранение и брой стаи", "StorageAndUserHeader": "На път сте да превишите ограниченията за съхранение и администратори/опитни потребители.", + "StorageAndUserTariffLimitHeader": "Лимитът за място за съхранение и брой администратори/опитни потребители е достигнат", + "StorageLimitHeader": "Лимитът за място за съхранение е достигнат: {{currentValue}} / {{maxValue}}", "StorageQuotaHeader": "Размерът на пространството за съхранение е на път да бъде надвишен: {{currentValue}} / {{maxValue}}", "TenantCustomQuotaDescription": "Можете да премахнете ненужните файлове или да промените квотата от <1>Настройки за управление на хранилището.", - "UserQuotaHeader": "На път сте да превишите броят на администраторите/опитните потребители: {{currentValue}} / {{maxValue}}." + "UserQuotaHeader": "На път сте да превишите броят на администраторите/опитните потребители: {{currentValue}} / {{maxValue}}.", + "UserTariffAlmostReached": "След като лимитът се достигне, всички потребители ще бъдат добавени само с потребителски разрешения. За да може да добавите още администратори/опитни потребители, свържете се с администратора на {{productName}} за надстройване на тарифния план.", + "UserTariffAlmostReachedForAdmins": "След като лимитът се достигне, всички потребители ще бъдат добавени само с потребителски разрешения. За да можете да добавяте още администратори/опитни потребители, <1>натиснете тук за надстройване на тарифния ви план.", + "UserTariffLimitHeader": "Достигнат е лимитът за броя администратори/опитни потребители: {{currentValue}} / {{maxValue}}", + "UserTariffReached": "Всички потребители ще бъдат добавени само с Потребителски права. За да може да добавите допълнителни администратори/опитни потребители, свържете се с администратора на {{productName}} за надстройване на тарифния план.", + "UserTariffReachedForAdmins": "Всички потребители ще бъдат добавени само с Потребителски права. За да може да добавяте още администратори/опитни потребители, <1>натиснете тук за надстройване на тарифния ви план." } diff --git a/packages/client/public/locales/bg/PDFFormDialog.json b/packages/client/public/locales/bg/PDFFormDialog.json index 114a588432..c0a3084371 100644 --- a/packages/client/public/locales/bg/PDFFormDialog.json +++ b/packages/client/public/locales/bg/PDFFormDialog.json @@ -1,4 +1,5 @@ { + "PDFform": "PDF формуляр", "PDFFormEditDialogDescription": "Искате ли да превключите на режим редактиране на формуляр? Молим да имате предвид, че формулярът вече няма да бъде достъпен за попълване и ще трябва да щракнете върху бутона Започни попълване отново след редактиране, за да го попълните.", "PDFFormEditDialogTitle": "Редактиране на формуляр", "PDFFormIsReadyToast": "PDF формуляр <1>{{filename}} е готов за попълване.", diff --git a/packages/client/public/locales/bg/Payments.json b/packages/client/public/locales/bg/Payments.json index 832f66ef71..8d3fd7a61a 100644 --- a/packages/client/public/locales/bg/Payments.json +++ b/packages/client/public/locales/bg/Payments.json @@ -9,6 +9,9 @@ "BusinessSuggestion": "Персонализирайте плана си {{planName}}", "BusinessTitle": "Използвате план {{planName}}", "BusinessUpdated": "Планът {{planName}} е актуализиран", + "CannotCreateNewRoom": "Стаята не може да бъде създадена", + "CannotCreatePaidUsers": "Платени потребители не могат да бъдат добавени", + "CannotRestoreRoom": "Стаята не може да бъде възстановена", "ChooseNewPayer": "Изберете нов платец", "ChooseNewPlan": "Искате ли да изберете нов ценови план?", "ContactUs": "За въпроси относно продажбите се свържете с нас на", @@ -22,12 +25,18 @@ "InvalidEmailWithoutActiveSubscription": "Препоръчваме да изберете нов платец, който ще разполага с достъп до настройките за абонамент в {{productName}}.", "InvalidEmailWithoutActiveSubscriptionByAdmin": "Препоръчваме да се свържете със собственика на {{productName}}, за да изберете нов платец.", "ManagerTypesDescription": "Типове администраторски акаунти и техните привилегии", + "NewRoomWillExceedLimit": "Създаването на тази стая не е възможно, тъй като лимитът за броя стаи, включени в текущия ви план, е достигнат.", + "NewUsersWillExceedMembersLimit": "Добавянето на нови платени потребители не е възможно, тъй като лимитът за броя на администраторите, включени в текущия ви план, е достигнат.", + "NotPossibleRoomRestoring": "Възстановяването на тази стая не е възможно, тъй като лимитът за броя стаи, включени в текущия ви план, е достигнат.", + "NumberOfRoomsAccordingToTariff": "Брой стаи според тарифния ви план: {{currentValue}}/{{maxValue}}", + "NumberOfUsersAccordingToTariff": "Брой администратори/опитни потребители според тарифния ви план: {{currentValue}}/{{maxValue}}", "Pay": "Плащане", "Payer": "Платец", "PayerDescription": "Този потребител има достъп до подробности за плащането и е единственият потребител, който може да коригира квотата и да извършва плащания. Собственикът на {{productName}}, както и самият управител на плащанията, могат да преназначат ролята на управител на плащанията с помощта на портала за клиенти на Stripe.", "PriceCalculation": "Изчислете цената си", "RenewSubscription": "Подновете абонамента за плана {{planName}}", "RoomManagerDescription": "Администриране и архивиране на стаи, покана и управление на потребители. За стаята могат да бъдат назначени няколко администратора.", + "RoomsQuotaAlmostExhausted": "Квотата от стаи е почти изчерпана.", "StartupSuggestion": "Правете повече с плана {{planName}}", "StartupTitle": "Използвате безплатен план {{planName}}", "StripeCustomerPortal": "отидете на Stripe портала за клиенти", @@ -36,5 +45,6 @@ "UpgradePlan": "Надграждане на абонамента", "UserNotFound": "Потребителят <1>{{email}} не е намерен.", "UserNotFoundMatchingEmail": "Не можахме да намерим потребителя със съответстващия Stripe имейл.", + "UsersQuotaAlmostExhausted": "Квотата за платени потребители е почти изчерпана.", "YourPrice": "Вашата цена" } diff --git a/packages/client/public/locales/cs/Files.json b/packages/client/public/locales/cs/Files.json index 0cb62fcd7c..b84fcb6c5a 100644 --- a/packages/client/public/locales/cs/Files.json +++ b/packages/client/public/locales/cs/Files.json @@ -117,6 +117,7 @@ "OpenLocation": "Otevřít umístění", "PasswordAccess": "Přístup pomocí hesla", "PasswordLink": "Přidejte heslo pro ochranu odkazu.", + "PasswordProtectedFiles": "Chcete-li pokračovat, zadejte prosím <0>heslo pro chráněné soubory.", "PasswordSuccessfullyCopied": "Heslo bylo úspěšně zkopírováno", "Pin": "Pin", "PinToTop": "Připnout na začátek", diff --git a/packages/client/public/locales/cs/InviteDialog.json b/packages/client/public/locales/cs/InviteDialog.json index ce41dc7f6c..be5b8bb9fe 100644 --- a/packages/client/public/locales/cs/InviteDialog.json +++ b/packages/client/public/locales/cs/InviteDialog.json @@ -2,7 +2,7 @@ "AddManually": "Přidat ručně", "AddManuallyDescriptionAccounts": "Pozvěte osobně nové uživatele do {{productName}} prostřednictvím e-mailu", "AddManuallyDescriptionRoom": "Přidat stávající uživatele {{productName}} 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.", + "EmailErrorMessage": "E-mailová adresa není platná. E-mailovou adresu můžete upravit že na něj dvakrát kliknete.", "GroupMaxAvailableRoleWarning": "Skupiny lze do místnosti přidat maximálně s rolí {{roleName}}. Role jednotlivých uživatelů ve skupině však můžete změnit až po jejím úspěšném přidání.", "InvitationLanguage": "Jazyk pozvánky", "InviteAccountSearchPlaceholder": "Pozvat lidi e-mailem", diff --git a/packages/client/public/locales/cs/Ldap.json b/packages/client/public/locales/cs/Ldap.json index e332cf8717..9493165511 100644 --- a/packages/client/public/locales/cs/Ldap.json +++ b/packages/client/public/locales/cs/Ldap.json @@ -36,6 +36,7 @@ "LdapPortNumber": "Číslo portu", "LdapPortNumberTooltip": "Zadejte číslo portu pro server LDAP/Active Directory.", "LdapQuota": "Uživatelská kvóta", + "LdapQuotaInfo": "Abyste mohli tento atribut používat, povolte kvóty uživatelů v <0>Nastavení správy úložiště", "LdapSecondName": "Druhé jméno", "LdapSendWelcomeLetter": "Odeslání uvítacího dopisu", "LdapSendWelcomeLetterTooltip": "Pokud je zaškrtnuto, všichni noví uživatelé obdrží uvítací dopis. K dispozici pouze v případě, že je atribut Mail namapován na LDAP.", @@ -66,6 +67,7 @@ "LdapUserDNTooltip": "Zadejte rozlišující název adresáře obsahujícího uživatele, které chcete přidat.", "LdapUserFilter": "Uživatelský filtr", "LdapUserFilterTooltip": "Pomocí vyhledávacího filtru LDAP vyberte uživatele, kteří musí být importováni.", + "LdapUserQuotaTooltip": "Chcete-li nastavit kvótu úložiště pro uživatele, přidejte atribut v adresáři LDAP (například UsersQuotaLimit) a zadejte pro tento atribut celočíselnou hodnotu. Zobrazí se hodnota kvóty v bytech. Zde zadejte pouze název atributu. Tento atribut bude použit pouze při prvním nastavení a později jej lze ručně změnit v sekci Účty.", "LdapUsersType": "Typ uživatele", "LdapUsersTypeInfo": "Uživatelé mají přístup pouze do místností, do kterých je pozvali správci, a nemohou vytvářet vlastní místnosti, složky ani soubory. Chcete-li poskytnout další oprávnění, vyberte níže jiný typ. Jinak můžete typ změnit ručně v části Účty.", "LdapUserTypeTooltip": "Všichni uživatelé budou přidáni do {{productName}} s vybraným typem." diff --git a/packages/client/public/locales/cs/MainBar.json b/packages/client/public/locales/cs/MainBar.json index 488175fc54..a85075a848 100644 --- a/packages/client/public/locales/cs/MainBar.json +++ b/packages/client/public/locales/cs/MainBar.json @@ -1,12 +1,31 @@ { + "ArchivedRoomsOrContact": "Nepotřebné místnosti můžete archivovat nebo se obrátit na administrátora {{productName}}, aby tarifní plán aktualizoval.", + "ClickToUpgradeTariff": "<1>Klikněte zde pro upgrade tarifního plánu.", "ConfirmEmailDescription": "Použijte odkaz uvedený v aktivačním e-mailu. Neobdrželi jste e-mail s aktivačním odkazem?", "ConfirmEmailHeader": "Pro získání přístupu k funkcím {{productName}} aktivujte svůj e-mail ({{ email }}).", + "ContactToUpgradeTariff": "Pro upgrade tarifního plánu kontaktujte administrátora {{productName}}.", + "PersonalQuotaHeader": "Překročena kvóta vašeho osobního úložiště", + "PersonalQuotaHeaderForAdmins": "Překročena kvóta úložiště na uživatele", "PersonalUserQuotaAdminsDescription": "Chcete-li nahrávat a vytvářet nové soubory a složky, uvolněte místo na disku nebo spravujte kvótu pro uživatele v nastavení <1>Správa úložiště.", - "PersonalUserQuotaDescription": "Chcete-li nahrávat a vytvářet nové soubory a složky, uvolněte místo na disku nebo se obraťte na správce, aby zvýšil kvótu úložiště.", + "PersonalUserQuotaDescription": "Chcete-li nahrávat a vytvářet nové soubory a složky, uvolněte místo na disku nebo se obraťte na správce {{productName}}, aby zvýšil kvótu úložiště.", + "RemoveFilesOrClickToUpgrade": "Odstraňte nepotřebné soubory nebo <1>klikněte sem pro upgrade tarifního plánu.", + "RemoveFilesOrContactToUpgrade": "Odstraňte nepotřebné soubory nebo kontaktujte administrátora {{productName}} pro upgrade tarifního plánu.", + "RemoveFilesOrContactToUpgradeQuota": "Odstraňte nepotřebné soubory nebo kontaktujte administrátora {{productName}} a zvyšte úložnou kvótu.", "RequestActivation": "Znovu požádat o o aktivaci", + "RoomQuotaDescription": "Nepotřebné místnosti můžete archivovat nebo <1>klikněte sem a vyhledejte vhodnější tarifní plán pro váš {{productName}}.", "RoomQuotaHeader": "Počet místností bude brzy překročen: {{currentValue}} / {{maxValue}}", + "RoomQuotaHeaderLimit": "Byl dosažen limit pro počet místností: {{currentValue}} / {{maxValue}}", + "StorageAndRoomHeader": "Limit pro úložný prostor a počet místností bude překročen", + "StorageAndRoomLimitHeader": "Limit pro úložný prostor a počet místností je dosažen", "StorageAndUserHeader": "Limity pro úložiště a správce/oprávněné uživatele budou brzy překročeny.", + "StorageAndUserTariffLimitHeader": "Je dosažen limit pro úložný prostor a počet administrátorů/pokročilých uživatelů", + "StorageLimitHeader": "Je dosažen limit pro úložný prostor: {{currentValue}} / {{maxValue}}", "StorageQuotaHeader": "Množství úložného prostoru bude brzy překročeno: {{currentValue}} / {{maxValue}}.", "TenantCustomQuotaDescription": "Nepotřebné soubory můžete odstranit nebo změnit kvótu v <1>Nastavení správy úložiště.", - "UserQuotaHeader": "Počet administrátorů/přístupných uživatelů bude brzy překročen: {{currentValue}} / {{maxValue}}." + "UserQuotaHeader": "Počet administrátorů/přístupných uživatelů bude brzy překročen: {{currentValue}} / {{maxValue}}.", + "UserTariffAlmostReached": "Po dosažení limitu budou všichni uživatelé přidáni pouze s oprávněním User (Uživatel). Chcete-li mít možnost přidávat další administrátory/správce uživatelů, kontaktujte administrátora {{productName}}, který provede upgrade tarifního plánu.", + "UserTariffAlmostReachedForAdmins": "Po dosažení limitu budou všichni uživatelé přidáni pouze s oprávněním Uživatel. Chcete-li mít možnost přidávat další administrátory/pokročilé uživatele, <1>klikněte zde a aktualizujte svůj tarifní plán.", + "UserTariffLimitHeader": "Je překročen limit pro počet administrátorů/pokročilých uživatelů: {{currentValue}} / {{maxValue}}", + "UserTariffReached": "Všichni uživatelé budou přidáni pouze s oprávněním Uživatel. Chcete-li mít možnost přidávat další administrátory/pokročilé uživatele, kontaktujte administrátora {{productName}} a upgradujte tarifní plán.", + "UserTariffReachedForAdmins": "Všichni uživatelé budou přidáni pouze s oprávněním Uživatel. Abyste mohli přidávat další administrátory/pokročilé uživatele, <1>klikněte zde a upgradujte tarifní plán." } diff --git a/packages/client/public/locales/cs/PDFFormDialog.json b/packages/client/public/locales/cs/PDFFormDialog.json index 956ca29a88..43cf682158 100644 --- a/packages/client/public/locales/cs/PDFFormDialog.json +++ b/packages/client/public/locales/cs/PDFFormDialog.json @@ -1,4 +1,5 @@ { + "PDFform": "PDF formulář", "PDFFormEditDialogDescription": "Chcete přepnout do režimu úprav formuláře? Vezměte prosím na vědomí, že formulář již nebude k dispozici pro vyplnění a po úpravě bude nutné znovu kliknout na tlačítko Začít vyplňovat, abyste jej mohli vyplnit.", "PDFFormEditDialogTitle": "Úprava formuláře", "PDFFormIsReadyToast": "PDF formulář <1>{{filename}} je připraven k vyplnění.", diff --git a/packages/client/public/locales/cs/Payments.json b/packages/client/public/locales/cs/Payments.json index 853fcabaf7..18e473f193 100644 --- a/packages/client/public/locales/cs/Payments.json +++ b/packages/client/public/locales/cs/Payments.json @@ -9,6 +9,9 @@ "BusinessSuggestion": "Přizpůsobte si svůj tarif {{planName}}", "BusinessTitle": "Používáte tarif {{planName}}", "BusinessUpdated": "Tarif {{planName}} aktualizován", + "CannotCreateNewRoom": "Místnost nelze vytvořit", + "CannotCreatePaidUsers": "Nelze přidávat placené uživatele", + "CannotRestoreRoom": "Místnost nelze obnovit", "ChooseNewPayer": "Vyberte si nového plátce", "ChooseNewPlan": "Chcete si vybrat nový cenový tarif?", "ContactUs": "V případě dotazů týkajících se prodeje nás kontaktujte na adrese", @@ -22,12 +25,18 @@ "InvalidEmailWithoutActiveSubscription": "Doporučujeme zvolit nového plátce, který získá přístup k nastavení předplatného v {{productName}}.", "InvalidEmailWithoutActiveSubscriptionByAdmin": "Doporučujeme kontaktovat vlastníka služby {{productName}} a zvolit nového Plátce.", "ManagerTypesDescription": "Typy účtů správce a jejich oprávnění", + "NewRoomWillExceedLimit": "Vytvoření této místnosti není možné, protože byl dosažen limit počtu místností zahrnutých do vašeho aktuálního tarifu.", + "NewUsersWillExceedMembersLimit": "Přidání nových placených uživatelů není možné, protože je dosažen limit pro počet administrátorů zahrnutých ve vašem aktuálním tarifu.", + "NotPossibleRoomRestoring": "Obnovení této místnosti není možné, protože je dosažen limit pro počet místností zahrnutých ve vašem aktuálním plánu.", + "NumberOfRoomsAccordingToTariff": "Počet místností podle vašeho tarifního plánu: {{currentValue}}/{{maxValue}}", + "NumberOfUsersAccordingToTariff": "Počet administrátorů/pokročilých uživatelů podle vašeho tarifního plánu: {{currentValue}}/{{maxValue}}", "Pay": "Platit", "Payer": "Plátce", "PayerDescription": "Tento uživatel má přístup k platebním údajům a je jediným uživatelem, který může upravovat kvóty a provádět platby. Vlastník {{productName}}, stejně jako samotný správce platby, může roli správce platby přeřadit pomocí zákaznického prostoru Stripe.", "PriceCalculation": "Vypočítejte si cenu", "RenewSubscription": "Obnovit předplatné tarifu {{planName}}", "RoomManagerDescription": "Správa a archivace místností, pozvání a správa uživatelů. K místnosti lze přiřadit několik správců.", + "RoomsQuotaAlmostExhausted": "Kvóta počtu místností je téměř vyčerpána.", "StartupSuggestion": "Udělejte více díky tarifu {{planName}}", "StartupTitle": "Používáte bezplatný tarif {{planName}}", "StripeCustomerPortal": "přejít na zákaznický portál společnosti Stripe", @@ -36,5 +45,6 @@ "UpgradePlan": "Plán aktualizace", "UserNotFound": "Uživatel <1>{{email}} nebyl nalezen.", "UserNotFoundMatchingEmail": "Nepodařilo se nám najít uživatele s odpovídajícím e-mailem Stripe.", + "UsersQuotaAlmostExhausted": "Kvóta placených uživatelů je téměř vyčerpána.", "YourPrice": "Vaše cena" } diff --git a/packages/client/public/locales/de/Files.json b/packages/client/public/locales/de/Files.json index c6a7f75f9f..51bd87f036 100644 --- a/packages/client/public/locales/de/Files.json +++ b/packages/client/public/locales/de/Files.json @@ -117,6 +117,7 @@ "OpenLocation": "Ordner öffnen", "PasswordAccess": "Zugang mit Passwort", "PasswordLink": "Fügen Sie ein Passwort hinzu, um Ihren Link zu schützen.", + "PasswordProtectedFiles": "Bitte <0>geben Sie ein Passwort ein für die geschützten Dateien, um fortzufahren", "PasswordSuccessfullyCopied": "Passwort erfolgreich kopiert", "Pin": "Anstecken", "PinToTop": "Oben anstecken", diff --git a/packages/client/public/locales/de/InviteDialog.json b/packages/client/public/locales/de/InviteDialog.json index 8860edc7c3..98691792df 100644 --- a/packages/client/public/locales/de/InviteDialog.json +++ b/packages/client/public/locales/de/InviteDialog.json @@ -2,7 +2,7 @@ "AddManually": "Manuell einfügen", "AddManuallyDescriptionAccounts": "Laden Sie neue Benutzer persönlich per E-Mail zu {{productName}} ein", "AddManuallyDescriptionRoom": "Fügen Sie bestehende {{productName}}-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.", + "EmailErrorMessage": "Die E-Mail-Adresse ist nicht gültig. Sie können die E-Mail bearbeiten, indem Sie darauf doppelklicken.", "GroupMaxAvailableRoleWarning": "Gruppen können maximal mit der Rolle {{roleName}} zum Raum hinzugefügt werden. Sie können jedoch die Rolle der einzelnen Benutzer in der Gruppe ändern, nachdem sie erfolgreich hinzugefügt wurde.", "InvitationLanguage": "Sprache der Einladung", "InviteAccountSearchPlaceholder": "Personen per E-Mail einladen", diff --git a/packages/client/public/locales/de/Ldap.json b/packages/client/public/locales/de/Ldap.json index 13c44fee2f..c8fcaa4f88 100644 --- a/packages/client/public/locales/de/Ldap.json +++ b/packages/client/public/locales/de/Ldap.json @@ -36,6 +36,7 @@ "LdapPortNumber": "Portnummer", "LdapPortNumberTooltip": "Geben Sie die Portnummer für Ihren LDAP-Server/Active Directory ein.", "LdapQuota": "Benutzerquote", + "LdapQuotaInfo": "Um dieses Attribut nutzen zu können, aktivieren Sie die Quote per Benutzer in den <0>Speicherverwaltungseinstellungen", "LdapSecondName": "Nachname", "LdapSendWelcomeLetter": "Willkommens-E-Mail senden", "LdapSendWelcomeLetterTooltip": "Wenn diese Option aktiviert ist, erhalten alle neuen Benutzer eine Willkommens-E-Mail. Nur verfügbar, wenn das Mail-Attribut auf LDAP abgebildet ist.", @@ -66,6 +67,7 @@ "LdapUserDNTooltip": "Geben Sie den Namen des Verzeichnisses mit den Benutzern ein, die Sie hinzufügen möchten.", "LdapUserFilter": "Benutzerfilter", "LdapUserFilterTooltip": "Verwenden Sie den LDAP-Suchfilter, um die Benutzer auszuwählen, die importiert werden sollen.", + "LdapUserQuotaTooltip": "Um die Quo­te für Benutzer festzulegen, fügen Sie ein Attribut im LDAP-Verzeichnis hinzu (z.B. UsersQuotaLimit) und geben Sie einen ganzzahligen Wert für dieses Attribut ein. Der Quo­tewert wird in Bytes angezeigt. Geben Sie hier nur den Attributnamen an. Dieses Attribut wird nur während der ersten Einrichtung angewendet und kann später manuell im Abschnitt \"Konten\" geändert werden.", "LdapUsersType": "Benutzertyp", "LdapUsersTypeInfo": "Benutzer können nur auf die Räume zugreifen, zu denen sie von Administratoren eingeladen wurden, und können keine eigenen Räume, Ordner oder Dateien erstellen. Wählen Sie unten einen anderen Typ, um mehr Berechtigungen zu vergeben. Andernfalls können Sie den Typ manuell im Abschnitt Konten ändern.", "LdapUserTypeTooltip": "Alle Benutzer werden zu {{productName}} mit dem ausgewählten Typ hinzugefügt." diff --git a/packages/client/public/locales/de/MainBar.json b/packages/client/public/locales/de/MainBar.json index d876c7c8c1..97c8aff7c6 100644 --- a/packages/client/public/locales/de/MainBar.json +++ b/packages/client/public/locales/de/MainBar.json @@ -1,12 +1,30 @@ { + "ArchivedRoomsOrContact": "Sie können die nicht benötigten Räume archivieren oder den Administrator von {{productName}} kontaktieren, um den Tarifplan zu aktualisieren.", + "ClickToUpgradeTariff": "<1>Klicken Sie hier, um Ihren Tarifplan zu aktualisieren.", "ConfirmEmailDescription": "Verwenden Sie den in der Aktivierungs-E-Mail angegebenen Link. Haben Sie keine E-Mail mit dem Aktivierungslink erhalten?", "ConfirmEmailHeader": "Bitte aktivieren Sie Ihre E-Mail ({{ email }}), um Zugang zu den {{productName}}-Funktionen zu erhalten.", + "ContactToUpgradeTariff": "Wenden Sie sich an den Administrator von {{productName}}, um den Tarifplan zu aktualisieren.", + "PersonalQuotaHeader": "Ihre persönliche Speicherquo­te wurde überschritten", + "PersonalQuotaHeaderForAdmins": "Speicherquo­te pro Benutzer überschritten", "PersonalUserQuotaAdminsDescription": "Um neue Dateien und Ordner hochzuladen und zu erstellen, geben Sie bitte Speicherplatz frei oder verwalten Sie die Quote pro Benutzer in den <1>Speicherverwaltungseinstellungen", - "PersonalUserQuotaDescription": "Um neue Dateien und Ordner hochzuladen und zu erstellen, geben Sie bitte Speicherplatz frei oder wenden Sie sich an den Administrator, um die Speicherquote zu erhöhen.", + "PersonalUserQuotaDescription": "Um neue Dateien und Ordner hochzuladen und zu erstellen, geben Sie bitte Speicherplatz frei oder wenden Sie sich an den {{productName}}-Administrator, um die Speicherquote zu erhöhen.", + "RemoveFilesOrClickToUpgrade": "Entfernen Sie die überflüssigen Dateien oder <1>klicken Sie hier, um Ihren Tarifplan zu aktualisieren.", + "RemoveFilesOrContactToUpgrade": "Entfernen Sie die nicht benötigten Dateien oder wenden Sie sich an den {{productName}}-Administrator, um den Tarifplan zu aktualisieren.", + "RemoveFilesOrContactToUpgradeQuota": "Entfernen Sie die nicht benötigten Dateien oder wenden Sie sich an den Administrator von {{productName}}, um die Speicherquo­te zu erhöhen.", "RequestActivation": "Erneute Aktivierung anfordern", + "RoomQuotaDescription": " Sie können die nicht benötigten Räume archivieren oder <1>hier klicken, um einen passenderen Preisplan für Ihr {{productName}} zu finden.", "RoomQuotaHeader": "Die Anzahl von Räumen wird bald überschritten sein: {{currentValue}} / {{maxValue}}", + "RoomQuotaHeaderLimit": "Das Limit für die Anzahl der Räume ist erreicht: {{currentValue}} / {{maxValue}}", + "StorageAndRoomHeader": "Das Limit für Speicherplatz und Anzahl der Räume wird bald überschritten", + "StorageAndRoomLimitHeader": "Das Limit für Speicherplatz und Anzahl der Räume ist erreicht", "StorageAndUserHeader": "Limits für Speicherplatz und Admins/Power-User werden bald überschritten sein.", + "StorageAndUserTariffLimitHeader": "Das Limit für Speicherplatz und Anzahl der Administratoren/Power-User ist erreicht", "StorageQuotaHeader": "Das Speicherplatzlimit wird bald überschritten: {{currentValue}} / {{maxValue}}", "TenantCustomQuotaDescription": "Sie können unnötige Dateien entfernen oder die Quote in den <1>Speicherverwaltungseinstellungen ändern", - "UserQuotaHeader": "Die Anzahl der Admins/Power-User wird bald überschritten sein: {{currentValue}} / {{maxValue}}." + "UserQuotaHeader": "Die Anzahl der Admins/Power-User wird bald überschritten sein: {{currentValue}} / {{maxValue}}.", + "UserTariffAlmostReached": "Sobald das Limit erreicht ist, werden alle Benutzer nur mit Benutzerberechtigungen hinzugefügt. Um weitere Administratoren/Power-User hinzufügen zu können, wenden Sie sich an den Administrator von {{productName}}, um den Tarifplan zu aktualisieren.", + "UserTariffAlmostReachedForAdmins": "Sobald das Limit erreicht ist, werden alle Benutzer nur mit Benutzerberechtigungen hinzugefügt. Um weitere Administratoren/Power-User hinzufügen zu können, <1>klicken Sie hier, um Ihren Tarifplan zu aktualisieren.", + "UserTariffLimitHeader": "Das Limit für die Anzahl der Administratoren/Power-User ist erreicht: {{currentValue}} / {{maxValue}}", + "UserTariffReached": "Alle Benutzer werden nur mit Benutzerberechtigungen hinzugefügt. Um weitere Admins/Power-User hinzufügen zu können, kontaktieren Sie den Administrator von {{productName}}, um den Tarifplan zu aktualisieren.", + "UserTariffReachedForAdmins": "Alle Benutzer werden nur mit Benutzerberechtigungen hinzugefügt. Um weitere Administratoren/Power-User hinzufügen zu können, <1>klicken Sie hier, um Ihren Tarifplan zu aktualisieren." } diff --git a/packages/client/public/locales/de/PDFFormDialog.json b/packages/client/public/locales/de/PDFFormDialog.json index e7de52429c..1e26af5ec3 100644 --- a/packages/client/public/locales/de/PDFFormDialog.json +++ b/packages/client/public/locales/de/PDFFormDialog.json @@ -1,4 +1,5 @@ { + "PDFform": "PDF-Formular", "PDFFormEditDialogDescription": "Möchten Sie in den Modus der Formularbearbeitung wechseln? Bitte beachten Sie, dass das Formular dann nicht mehr zum Ausfüllen zur Verfügung steht und Sie nach der Bearbeitung erneut auf die Schaltfläche Ausfüllen beginnen klicken müssen, um es auszufüllen.", "PDFFormEditDialogTitle": "Formularbearbeitung", "PDFFormIsReadyToast": "Das PDF-Formular <1>{{filename}} ist bereit zum Ausfüllen.", diff --git a/packages/client/public/locales/de/Payments.json b/packages/client/public/locales/de/Payments.json index 66f8db0b31..27c22f42cb 100644 --- a/packages/client/public/locales/de/Payments.json +++ b/packages/client/public/locales/de/Payments.json @@ -9,6 +9,9 @@ "BusinessSuggestion": "Passen Sie Ihren {{planName}}-Plan an", "BusinessTitle": "Sie verwenden den {{planName}}-Plan", "BusinessUpdated": "{{planName}}-Plan aktualisiert", + "CannotCreateNewRoom": "Raum kann nicht erstellt werden", + "CannotCreatePaidUsers": "Bezahlte Benutzer können nicht hinzugefügt werden", + "CannotRestoreRoom": "Raum kann nicht wiederhergestellt werden", "ChooseNewPayer": "Wählen Sie einen neuen Zahler", "ChooseNewPlan": "Möchten Sie einen neuen Preisplan wählen?", "ContactUs": "Beim Fragen zum Verkauf kontaktieren Sie uns unter", @@ -22,12 +25,18 @@ "InvalidEmailWithoutActiveSubscription": "Wir empfehlen, einen neuen Payer zu wählen, der Zugriff auf die Abonnementeinstellungen in {{productName}} erhält.", "InvalidEmailWithoutActiveSubscriptionByAdmin": "Wir empfehlen, den {{productName}}-Eigentümer zu kontaktieren, um einen neuen Zahler zu wählen.", "ManagerTypesDescription": "Administratorkontotypen und ihre Berechtigungen", + "NewRoomWillExceedLimit": "Das Erstellen dieses Raums ist nicht möglich, da das Limit für die Anzahl der in Ihrem aktuellen Plan enthaltenen Räume erreicht ist.", + "NewUsersWillExceedMembersLimit": "Das Hinzufügen neuer bezahlter Benutzer ist nicht möglich, da das Limit für die Anzahl der Administratoren in Ihrem aktuellen Plan erreicht ist.", + "NotPossibleRoomRestoring": "Es ist nicht möglich, diesen Raum wiederherzustellen, da das Limit für die Anzahl der in Ihrem aktuellen Plan enthaltenen Räume erreicht ist.", + "NumberOfRoomsAccordingToTariff": "Anzahl der Räume gemäß Ihrem Tarifplan: {{currentValue}}/{{maxValue}}", + "NumberOfUsersAccordingToTariff": "Anzahl Administratoren /Power-Usergemäß Ihrem Tarifplan: {{currentValue}}/{{maxValue}}", "Pay": "Bezahlen", "Payer": "Zahler", "PayerDescription": "Dieser Benutzer hat Zugriff auf die Zahlungsdetails und ist der einzige Benutzer, der die Quote anpassen und Zahlungen vornehmen kann. Der {{productName}}-Besitzer sowie der zahlende Manager selbst können die Rolle des zahlenden Managers über das Stripe-Kundenportal neu zuweisen.", "PriceCalculation": "Berechnen Sie Ihren Preis", "RenewSubscription": "Abonnement des {{planName}}-Plans erneuern", "RoomManagerDescription": "Raumverwaltung und Archivierung, Benutzereinladung und -verwaltung. Dem Raum können mehrere Administratoren zugewiesen werden.", + "RoomsQuotaAlmostExhausted": "Die Raumquote ist fast erschöpft.", "StartupSuggestion": "Mehr Möglichkeiten mit {{planName}}Plan", "StartupTitle": "Sie verwenden einen kostenlosen {{planName}}-Plan", "StripeCustomerPortal": "gehen Sie zum Stripe-Kundenportal", @@ -36,5 +45,6 @@ "UpgradePlan": "Plan upgraden", "UserNotFound": "Benutzer <1>{{email}} ist nicht gefunden.", "UserNotFoundMatchingEmail": "Wir konnten den Benutzer mit der passenden Stripe-E-Mail nicht finden.", + "UsersQuotaAlmostExhausted": "Die Quote für bezahlte Benutzer ist fast erschöpft.", "YourPrice": "Ihr Preis" } diff --git a/packages/client/public/locales/el-GR/Files.json b/packages/client/public/locales/el-GR/Files.json index e0e13c6d2c..cffad15b30 100644 --- a/packages/client/public/locales/el-GR/Files.json +++ b/packages/client/public/locales/el-GR/Files.json @@ -117,6 +117,7 @@ "OpenLocation": "Ανοιχτή τοποθεσία", "PasswordAccess": "Πρόσβαση με κωδικό πρόσβασης", "PasswordLink": "Προσθέστε έναν κωδικό πρόσβασης για την προστασία του συνδέσμου σας.", + "PasswordProtectedFiles": "<0>Εισαγάγετε έναν κωδικό πρόσβασης για τα προστατευμένα αρχεία για να συνεχίσετε", "PasswordSuccessfullyCopied": "Ο κωδικός πρόσβασης αντιγράφηκε επιτυχώς", "Pin": "Καρφίτσωμα", "PinToTop": "Καρφίτσωμα στην κορυφή", diff --git a/packages/client/public/locales/el-GR/InviteDialog.json b/packages/client/public/locales/el-GR/InviteDialog.json index e8949ff7cc..6c1d0bd417 100644 --- a/packages/client/public/locales/el-GR/InviteDialog.json +++ b/packages/client/public/locales/el-GR/InviteDialog.json @@ -2,7 +2,7 @@ "AddManually": "Προσθήκη με μη αυτόματο τρόπο", "AddManuallyDescriptionAccounts": "Προσκαλέστε νέους χρήστες στο {{productName}} προσωπικά μέσω email", "AddManuallyDescriptionRoom": "Προσθέστε υπάρχοντες χρήστες του {{productName}} στο δωμάτιο χρησιμοποιώντας τα ονόματα ή προσκαλέστε νέους χρήστες προσωπικά μέσω email", - "EmailErrorMessage": "Η διεύθυνση email δεν είναι έγκυρη. Μπορείτε να επεξεργαστείτε το email κάνοντας κλικ πάνω του.", + "EmailErrorMessage": "Η διεύθυνση email δεν είναι έγκυρη. Μπορείτε να επεξεργαστείτε το email κάνοντας διπλό κλικ πάνω του.", "GroupMaxAvailableRoleWarning": "Μπορούν να προστεθούν ομάδες σε ένα δωμάτιο με τον ρόλο {{roleName}} ως μέγιστο. Ωστόσο, μπορείτε να αλλάξετε τον ρόλο μεμονωμένων χρηστών στην ομάδα μετά την επιτυχή προσθήκη της.", "InvitationLanguage": "Γλώσσα πρόσκλησης", "InviteAccountSearchPlaceholder": "Πρόσκληση ατόμων μέσω email", diff --git a/packages/client/public/locales/el-GR/Ldap.json b/packages/client/public/locales/el-GR/Ldap.json index 8674d686e8..6f4a96b451 100644 --- a/packages/client/public/locales/el-GR/Ldap.json +++ b/packages/client/public/locales/el-GR/Ldap.json @@ -36,6 +36,7 @@ "LdapPortNumber": "Αριθμός θύρας", "LdapPortNumberTooltip": "Εισαγάγετε τον αριθμό θύρας για τον διακομιστή LDAP/Ενεργού Καταλόγου.", "LdapQuota": "Ποσοστό χρήστη", + "LdapQuotaInfo": "Για να μπορέσετε να χρησιμοποιήσετε αυτό το χαρακτηριστικό, ενεργοποιήστε την ποσόστωση χρηστών στις <0>Ρυθμίσεις διαχείρισης αποθηκευτικού χώρου", "LdapSecondName": "Δεύτερο όνομα", "LdapSendWelcomeLetter": "Αποστολή επιστολής καλωσορίσματος", "LdapSendWelcomeLetterTooltip": "Εάν είναι επιλεγμένο, όλοι οι νέοι χρήστες θα λάβουν επιστολή καλωσορίσματος. Διαθέσιμο μόνο όταν το Χαρακτηριστικό Αλληλογραφίας έχει αντιστοιχιστεί στο LDAP.", @@ -66,6 +67,7 @@ "LdapUserDNTooltip": "Εισαγάγετε το διακριτικό όνομα στον κατάλογο που περιέχει τους χρήστες που θέλετε να προσθέσετε.", "LdapUserFilter": "Φίλτρο Χρήστη", "LdapUserFilterTooltip": "Χρησιμοποιήστε το φίλτρο αναζήτησης LDAP για να επιλέξετε τους χρήστες που πρέπει να εισαχθούν.", + "LdapUserQuotaTooltip": "Για να ορίσετε μια ποσόστωση αποθήκευσης για τον χρήστη, προσθέστε ένα χαρακτηριστικό στον κατάλογο LDAP (για παράδειγμα, UsersQuotaLimit) και εισαγάγετε μια ακέραια τιμή για αυτό το χαρακτηριστικό. Θα εμφανιστεί η τιμή της ποσόστωσης σε bytes. Εδώ, καθορίστε μόνο το όνομα του χαρακτηριστικού. Αυτό το χαρακτηριστικό θα εφαρμοστεί μόνο κατά την πρώτη ρύθμιση και μπορεί να αλλάξει αργότερα μη αυτόματα στην ενότητα «Λογαριασμοί».", "LdapUsersType": "Τύπος χρηστών", "LdapUsersTypeInfo": "Οι χρήστες μπορούν να έχουν πρόσβαση μόνο στα δωμάτια στα οποία έχουν προσκληθεί από τους διαχειριστές και δεν μπορούν να δημιουργήσουν δικά τους δωμάτια, φακέλους ή αρχεία. Επιλέξτε έναν άλλο τύπο παρακάτω για να παρέχετε περισσότερα δικαιώματα. Διαφορετικά, μπορείτε να αλλάξετε τον τύπο μη αυτόματα στην ενότητα Λογαριασμοί.", "LdapUserTypeTooltip": "Όλοι οι χρήστες θα προστεθούν στο {{productName}} με τον επιλεγμένο τύπο." diff --git a/packages/client/public/locales/el-GR/MainBar.json b/packages/client/public/locales/el-GR/MainBar.json index 5002732c64..0a5f5e19db 100644 --- a/packages/client/public/locales/el-GR/MainBar.json +++ b/packages/client/public/locales/el-GR/MainBar.json @@ -1,12 +1,31 @@ { + "ArchivedRoomsOrContact": "Μπορείτε να αρχειοθετήσετε τα περιττά δωμάτια ή να επικοινωνήσετε με τον διαχειριστή του {{productName}} για να αναβαθμίσετε το τιμολογιακό πρόγραμμα.", + "ClickToUpgradeTariff": "<1>Κάντε κλικ εδώ για να αναβαθμίσετε το τιμολογιακό σας πρόγραμμα.", "ConfirmEmailDescription": "Χρησιμοποιήστε τον σύνδεσμο που παρέχεται στο email ενεργοποίησης. Δεν έχετε λάβει email με τον σύνδεσμο ενεργοποίησης;", "ConfirmEmailHeader": "Ενεργοποιήστε το email ({{ email }}) σας για να αποκτήσετε πρόσβαση στις λειτουργίες του {{productName}}.", + "ContactToUpgradeTariff": "Επικοινωνήστε με τον διαχειριστή του {{productName}} για να αναβαθμίσετε το τιμολογιακό πρόγραμμα.", + "PersonalQuotaHeader": "Υπερβήκατε την προσωπική σας ποσόστωση αποθήκευσης", + "PersonalQuotaHeaderForAdmins": "Έγινε υπέρβαση ποσόστωσης αποθήκευσης ανά χρήστη", "PersonalUserQuotaAdminsDescription": "Για να μεταφορτώσετε και να δημιουργήσετε νέα αρχεία και φακέλους, ελευθερώστε χώρο στον δίσκο ή διαχειριστείτε την ποσόστωση ανά χρήστη στις <1>Ρυθμίσεις διαχείρισης αποθ. χώρου.", - "PersonalUserQuotaDescription": "Για να ανεβάσετε και να δημιουργήσετε νέα αρχεία και φακέλους, ελευθερώστε χώρο στον δίσκο ή επικοινωνήστε με τον διαχειριστή για να αυξήσετε την ποσόστωση αποθ. χώρου.", + "PersonalUserQuotaDescription": "Για να ανεβάσετε και να δημιουργήσετε νέα αρχεία και φακέλους, ελευθερώστε χώρο στον δίσκο ή επικοινωνήστε με τον διαχειριστή {{productName}} για να αυξήσετε την ποσόστωση αποθ χώρου.", + "RemoveFilesOrClickToUpgrade": "Αφαιρέστε τα περιττά αρχεία ή <1>κάντε κλικ εδώ για να αναβαθμίσετε το τιμολογιακό σας πρόγραμμα.", + "RemoveFilesOrContactToUpgrade": "Αφαιρέστε τα περιττά αρχεία ή επικοινωνήστε με τον διαχειριστή του {{productName}} για να αναβαθμίσετε το τιμολογιακό πρόγραμμα.", + "RemoveFilesOrContactToUpgradeQuota": "Αφαιρέστε τα περιττά αρχεία ή επικοινωνήστε με τον διαχειριστή του {{productName}} για να αυξήσετε την ποσόστωση αποθήκευσης.", "RequestActivation": "Ζητήστε εκ νέου ενεργοποίηση", + "RoomQuotaDescription": "Μπορείτε να αρχειοθετήσετε τα περιττά δωμάτια ή <1>να κάνετε κλικ εδώ για να βρείτε ένα πιο κατάλληλο τιμολογιακό πρόγραμμα για το {{productName}} σας.", "RoomQuotaHeader": "Πρόκειται να γίνει υπέρβαση ορίου για τα δωμάτια: {{currentValue}} / {{maxValue}}", + "RoomQuotaHeaderLimit": "Το όριο για τον αριθμό των δωματίων έχει επιτευχθεί: {{currentValue}} / {{maxValue}}", + "StorageAndRoomHeader": "Το όριο για τον αποθηκευτικό χώρο και τον αριθμό των δωματίων πρόκειται να ξεπεραστεί", + "StorageAndRoomLimitHeader": "Το όριο για τον αποθηκευτικό χώρο και τον αριθμό των δωματίων έχει επιτευχθεί", "StorageAndUserHeader": "Τα όρια αποθηκευτικού χώρου και διαχειριστών/χρηστών ισχύος πρόκειται να ξεπεραστούν.", + "StorageAndUserTariffLimitHeader": "Το όριο για τον αποθηκευτικό χώρο και τον αριθμό των διαχειριστών/εξουσιοδοτημένων χρηστών έχει επιτευχθεί", + "StorageLimitHeader": "Το όριο για τον αποθηκευτικό χώρο έχει επιτευχθεί: {{currentValue}} / {{maxValue}}", "StorageQuotaHeader": "Το ποσό του χώρου αποθήκευσης πρόκειται να ξεπεραστεί: {{currentValue}} / {{maxValue}}", "TenantCustomQuotaDescription": "Μπορείτε να αφαιρέσετε τα περιττά αρχεία ή να αλλάξετε την ποσόστωση στις <1>Ρυθμίσεις διαχείρισης αποθ. χώρου.", - "UserQuotaHeader": "Ο αριθμός των διαχειριστών/χρηστών ισχύος πρόκειται να ξεπεραστεί: {{currentValue}} / {{maxValue}}." + "UserQuotaHeader": "Ο αριθμός των διαχειριστών/χρηστών ισχύος πρόκειται να ξεπεραστεί: {{currentValue}} / {{maxValue}}.", + "UserTariffAlmostReached": "Μόλις επιτευχθεί το όριο, όλοι οι χρήστες θα προστεθούν μόνο με δικαιώματα χρήστη. Για να μπορέσετε να προσθέσετε περαιτέρω διαχειριστές/χρήστες ισχύος, επικοινωνήστε με τον διαχειριστή του {{productName}} για να αναβαθμίσετε το τιμολογιακό σας πρόγραμμα.", + "UserTariffAlmostReachedForAdmins": "Μόλις επιτευχθεί το όριο, όλοι οι χρήστες θα προστεθούν μόνο με δικαιώματα χρήστη. Για να μπορέσετε να προσθέσετε περαιτέρω διαχειριστές/εξουσιοδοτημένους χρήστες, <1>κάντε κλικ εδώ για να αναβαθμίσετε το τιμολογιακό σας πρόγραμμα.", + "UserTariffLimitHeader": "Το όριο για τον αριθμό των διαχειριστών/εξουσιοδοτημένων χρηστών έχει επιτευχθεί: {{currentValue}} / {{maxValue}}", + "UserTariffReached": "Όλοι οι χρήστες θα προστεθούν μόνο με δικαιώματα χρήστη. Για να μπορέσετε να προσθέσετε περαιτέρω διαχειριστές/εξουσιοδοτημένες χρήστες, επικοινωνήστε με τον διαχειριστή του {{productName}} για να αναβαθμίσετε το τιμολογιακό σχέδιο.", + "UserTariffReachedForAdmins": "Όλοι οι χρήστες θα προστεθούν μόνο με δικαιώματα χρήστη. Για να μπορέσετε να προσθέσετε περισσότερους διαχειριστές/εξουσιοδοτημένους χρήστες, <1>κάντε κλικ εδώ για να αναβαθμίσετε το τιμολογιακό σας πρόγραμμα." } diff --git a/packages/client/public/locales/el-GR/PDFFormDialog.json b/packages/client/public/locales/el-GR/PDFFormDialog.json index 1fb7601a1d..6db2b9ba30 100644 --- a/packages/client/public/locales/el-GR/PDFFormDialog.json +++ b/packages/client/public/locales/el-GR/PDFFormDialog.json @@ -1,4 +1,5 @@ { + "PDFform": "Φόρμα PDF", "PDFFormEditDialogDescription": "Θέλετε να μεταβείτε στη λειτουργία επεξεργασίας φόρμας; Λάβετε υπόψη ότι η φόρμα δεν θα είναι πλέον διαθέσιμη για συμπλήρωση και θα πρέπει να κάνετε ξανά κλικ στο κουμπί Έναρξη συμπλήρωσης μετά την επεξεργασία για να τη συμπληρώσετε.", "PDFFormEditDialogTitle": "Επεξεργασία φόρμας", "PDFFormIsReadyToast": "Η φόρμα PDF <1>{{filename}} είναι έτοιμη να συμπληρωθεί.", diff --git a/packages/client/public/locales/el-GR/Payments.json b/packages/client/public/locales/el-GR/Payments.json index 3c41103267..e01bbac901 100644 --- a/packages/client/public/locales/el-GR/Payments.json +++ b/packages/client/public/locales/el-GR/Payments.json @@ -9,6 +9,9 @@ "BusinessSuggestion": "Προσαρμογή του προγράμματός σας {{planName}}", "BusinessTitle": "Χρησιμοποιείτε το πρόγραμμα {{planName}}", "BusinessUpdated": "Το πλάνο {{planName}} ενημερώθηκε", + "CannotCreateNewRoom": "Αδυναμία δημιουργίας δωματίου", + "CannotCreatePaidUsers": "Αδυναμία προσθήκης χρηστών επί πληρωμή", + "CannotRestoreRoom": "Αδυναμία επαναφοράς δωματίου", "ChooseNewPayer": "Επιλέξτε έναν νέο Πληρωτή", "ChooseNewPlan": "Θα θέλατε να επιλέξετε ένα νέο πρόγραμμα τιμολόγησης;", "ContactUs": "Για ερωτήσεις σχετικά με τις πωλήσεις, επικοινωνήστε μαζί μας στο", @@ -22,12 +25,18 @@ "InvalidEmailWithoutActiveSubscription": "Συνιστούμε να επιλέξετε έναν νέο Πληρωτή που αποκτά πρόσβαση στις ρυθμίσεις συνδρομής στο {{productName}}.", "InvalidEmailWithoutActiveSubscriptionByAdmin": "Συνιστούμε να επικοινωνήσετε με τον ιδιοκτήτη του {{productName}} για να επιλέξετε έναν νέο Πληρωτή.", "ManagerTypesDescription": "Τύποι λογαριασμών διαχειριστών και τα προνόμιά τους", + "NewRoomWillExceedLimit": "Η δημιουργία αυτού του δωματίου δεν είναι δυνατή, καθώς έχει επιτευχθεί το όριο για τον αριθμό των δωματίων που περιλαμβάνονται στο τρέχον πρόγραμμά σας.", + "NewUsersWillExceedMembersLimit": "Η προσθήκη νέων χρηστών επί πληρωμή δεν είναι δυνατή, καθώς έχει επιτευχθεί το όριο για τον αριθμό των διαχειριστών που περιλαμβάνονται στο τρέχον πρόγραμμά σας.", + "NotPossibleRoomRestoring": "Η επαναφορά αυτού του δωματίου δεν είναι δυνατή, καθώς έχει επιτευχθεί το όριο για τον αριθμό των δωματίων που περιλαμβάνονται στο τρέχον πρόγραμμά σας.", + "NumberOfRoomsAccordingToTariff": "Αριθμός δωματίων σύμφωνα με το τιμολογιακό σας πρόγραμμα: {{currentValue}}/{{maxValue}}", + "NumberOfUsersAccordingToTariff": "Αριθμός διαχειριστών/εξουσιοδοτημένων χρηστών σύμφωνα με το τιμολογιακό σας πρόγραμμα: {{currentValue}}/{{maxValue}}", "Pay": "Πληρωμή", "Payer": "Πληρωτής", "PayerDescription": "Αυτός ο χρήστης έχει πρόσβαση στα στοιχεία πληρωμής και είναι ο μόνος χρήστης που μπορεί να προσαρμόσει την ποσόστωση και να πραγματοποιήσει πληρωμές. Ο ιδιοκτήτης του {{productName}}, καθώς και ο ίδιος ο διαχειριστής πληρωμών, μπορούν να αναθέσουν εκ νέου το ρόλο του διαχειριστή πληρωμών χρησιμοποιώντας την πύλη πελατών της Stripe.", "PriceCalculation": "Υπολογίστε την τιμή σας", "RenewSubscription": "Ανανεώστε τη συνδρομή στο πρόγραμμα {{planName}}", "RoomManagerDescription": "Διαχείριση και αρχειοθέτηση δωματίων, πρόσκληση και διαχείριση χρηστών. Στο δωμάτιο μπορούν να οριστούν διάφοροι διαχειριστές.", + "RoomsQuotaAlmostExhausted": "Η ποσόστωση των δωματίων έχει σχεδόν εξαντληθεί.", "StartupSuggestion": "Κάντε περισσότερα με το πρόγραμμα {{planName}}", "StartupTitle": "Χρησιμοποιείτε το δωρεάν πρόγραμμα {{planName}}", "StripeCustomerPortal": "μεταβείτε στην πύλη πελατών της Stripe", @@ -36,5 +45,6 @@ "UpgradePlan": "Αναβάθμιση προγράμματος", "UserNotFound": "Ο χρήστης <1>{{email}} δεν βρέθηκε.", "UserNotFoundMatchingEmail": "Δεν μπορέσαμε να βρούμε τον χρήστη με το αντίστοιχο e-mail της Stripe.", + "UsersQuotaAlmostExhausted": "Η ποσόστωση των χρηστών επί πληρωμή έχει σχεδόν εξαντληθεί.", "YourPrice": "Η τιμή σας" } diff --git a/packages/client/public/locales/en/Confirm.json b/packages/client/public/locales/en/Confirm.json index b91c4a4925..68f06c0ae5 100644 --- a/packages/client/public/locales/en/Confirm.json +++ b/packages/client/public/locales/en/Confirm.json @@ -30,5 +30,6 @@ "SignUp": "Sign up", "SuccessDeactivate": "Your account has been successfully deactivated. In 10 seconds you will be redirected to the <1>site.", "SuccessReactivate": "Your account has been successfully reactivated. In 10 seconds you will be redirected to the <1>portal.", - "SuccessRemoved": "Your account has been successfully removed. In 10 seconds you will be redirected to the <1>site." + "SuccessRemoved": "Your account has been successfully removed. In 10 seconds you will be redirected to the <1>site.", + "TermsAndConditions": "By continuing, you understand and agree to our <1>Terms and conditions and <2>Privacy statement." } diff --git a/packages/client/public/locales/en/EmptyView.json b/packages/client/public/locales/en/EmptyView.json index dcf83b7f69..bedc6ae2e3 100644 --- a/packages/client/public/locales/en/EmptyView.json +++ b/packages/client/public/locales/en/EmptyView.json @@ -1,18 +1,44 @@ { + "CollaborationRoomEmptyTitle": "Welcome to the Collaboration room", "CollaboratorEmptyTitle": "The room is empty.", + "CreateDocument": "Create a new document", + "CreateDocumentDescription": "Take advantage of vast word processing functionality.", + "CreateForm": "Create a new PDF form", + "CreateFormDescription": "Collect votes, get opinions and store data using PDF forms", "CreateNewFileDescription": "Start working in the room by creating files or folders", "CreateNewFileTitle": "Create a new file", + "CreatePresentation": "Create a new presentation", + "CreatePresentationDescription": "Impress your audience with stunning slides.", + "CreateRoomDescriotionOption": "Start the portal by creating a room", + "CreateRoomTitleOption": "Create a new room", + "CreateSpreadsheet": "Create a new spreadsheet", + "CreateSpreadsheetDescription": "Carry out precise calculations with minimal effort.", "CustomRoomEmptyTitle": "Welcome to the Custom room", + "DefaultFolderDescription": "Drop files here or create new ones.", "EmptyDescription": "Get started with quick actions:", + "EmptyGroupAddedUserOptionDescription": "Add group members and assign the head", + "EmptyGroupDeleteOptionDescription": "If you don't need this group anymore", + "EmptyGroupsCreateGroupOptionDescription": "Create a group to add them to the room", + "EmptyRecentDescription": "Your last viewed or edited docs will be displayed in this section.", + "EmptyRootRoomUserDescription": "The shared room will appear here.", + "EmptyRootRoomUserTitle": "There are no rooms here yet", "FormFolderDefaultDescription": "Drop PDF forms here or upload from {{productName}} or device.", "FormFolderDefaultTitle": "No forms here yet", "FormFolderDefaultUserDescription": "The forms uploaded by the administrators will be appeared here.", "FormFolderDefaultUserTitle": "No forms in this folder yet", "FormRoomEmptyTitle": "Welcome to the Form filling room", + "InviteNewUsers": "Invite new users", + "InviteRootRoomDescription": "Send an invitation to add new members to your {{productName}}", + "InviteUsersCollaborationOptionDescription": "Add members for joint editing in the room.", "InviteUsersOptionDescription": "Add portal members for joint editing in the room", "InviteUsersOptionTitle": "Inviting Attendees", + "MigrationDataDescription": "Import data to your {{productName}} from ONLYOFFICE Workspace, Google Workspace, or Nextcloud.", + "MigrationDataTitle": "Migration Data", + "PublicRoomEmptyTitle": "Welcome to the Public room", "ShareOptionDescription": "Copy a public access link or invite other users to the room to start the form filling process.", "ShareOptionTitle": "Share a room", + "SharePublicRoomOptionDescription": "Enable external link access to other users.", + "SharePublicRoomOptionTitle": "Share the room with all users", "UploadDeviceOptionDescription": "Upload any type files from your personal device", "UploadDeviceOptionTitle": "Upload from your Device", "UploadDevicePDFFormOptionDescription": "Upload a ready PDF form to the room from your device.", diff --git a/packages/client/public/locales/en/Files.json b/packages/client/public/locales/en/Files.json index 3d8601db58..01a7c36620 100644 --- a/packages/client/public/locales/en/Files.json +++ b/packages/client/public/locales/en/Files.json @@ -84,6 +84,7 @@ "GoToPersonal": "Go to Documents", "Images": "Images", "InviteUsersInRoom": "Invite users in room", + "LastActivity": "Last activity", "LeaveRoomDescription": "You are the owner of this room. Before you leave the room, you must transfer the owner's role to another user.", "LeaveTheRoom": "Leave the room", "LeftAndAppointNewOwner": "You have left the room and appointed a new owner", diff --git a/packages/client/public/locales/en/InviteDialog.json b/packages/client/public/locales/en/InviteDialog.json index 5874d94ca0..cfe716db99 100644 --- a/packages/client/public/locales/en/InviteDialog.json +++ b/packages/client/public/locales/en/InviteDialog.json @@ -2,7 +2,7 @@ "AddManually": "Add manually", "AddManuallyDescriptionAccounts": "Invite new users to {{productName}} personally via email", "AddManuallyDescriptionRoom": "Add existing {{productName}} users to the room using the names or invite new users personally via email", - "EmailErrorMessage": "Email address is not valid. You can edit the email by clicking on it.", + "EmailErrorMessage": "Email address not valid. You can edit the email by double-clicking on it.", "GroupMaxAvailableRoleWarning": "Groups can be added to a room with the {{roleName}} role as maximum. However, you can change the role of individual users in the group after it has been successfully added.", "InvitationLanguage": "Invitation language", "InviteAccountSearchPlaceholder": "Invite people by email", diff --git a/packages/client/public/locales/en/MainBar.json b/packages/client/public/locales/en/MainBar.json index 8c76a500aa..29630ba3cd 100644 --- a/packages/client/public/locales/en/MainBar.json +++ b/packages/client/public/locales/en/MainBar.json @@ -1,5 +1,5 @@ { - "ArchivedRoomsOrContact": "You can archived the unnecessary rooms or contact the {{productName}} administrator to upgrade the tariff plan.", + "ArchivedRoomsOrContact": "You can archive the unnecessary rooms or contact the {{productName}} administrator to upgrade the tariff plan.", "ClickToUpgradeTariff": "<1>Click here to upgrade your tariff plan.", "ConfirmEmailDescription": "Use the link provided in the activation email. Haven't received an email with the activation link?", "ConfirmEmailHeader": "Please activate your email ({{ email }}) to get access to the {{productName}} features.", diff --git a/packages/client/public/locales/es/Files.json b/packages/client/public/locales/es/Files.json index 2e787101c0..77dc35fd35 100644 --- a/packages/client/public/locales/es/Files.json +++ b/packages/client/public/locales/es/Files.json @@ -117,6 +117,7 @@ "OpenLocation": "Abrir ubicación", "PasswordAccess": "Acceso con contraseña", "PasswordLink": "Añada una contraseña para proteger su enlace.", + "PasswordProtectedFiles": "Por favor <0>introduzca una contraseña para los archivos protegidos para continuar", "PasswordSuccessfullyCopied": "La contraseña se ha copiado correctamente", "Pin": "Anclar", "PinToTop": "Anclar al principio", diff --git a/packages/client/public/locales/es/InviteDialog.json b/packages/client/public/locales/es/InviteDialog.json index 3d3f44fd54..6b009a0dde 100644 --- a/packages/client/public/locales/es/InviteDialog.json +++ b/packages/client/public/locales/es/InviteDialog.json @@ -2,7 +2,7 @@ "AddManually": "Añadir manualmente", "AddManuallyDescriptionAccounts": "Invite a nuevos usuarios a {{productName}} personalmente por correo electrónico", "AddManuallyDescriptionRoom": "Añada usuarios existentes de {{productName}} 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.", + "EmailErrorMessage": "La dirección de correo electrónico no es válida. Puede editar el correo electrónico haciendo doble clic en él.", "GroupMaxAvailableRoleWarning": "Se pueden añadir grupos a una sala con el rol {{roleName}} como máximo. Sin embargo, puede cambiar el rol de los usuarios individuales en el grupo una vez que se haya añadido correctamente.", "InvitationLanguage": "Idioma de la invitación ", "InviteAccountSearchPlaceholder": "Invitar por correo electrónico", diff --git a/packages/client/public/locales/es/Ldap.json b/packages/client/public/locales/es/Ldap.json index 59b5911f5e..757af29c7a 100644 --- a/packages/client/public/locales/es/Ldap.json +++ b/packages/client/public/locales/es/Ldap.json @@ -36,6 +36,7 @@ "LdapPortNumber": "Número de puerto", "LdapPortNumberTooltip": "Introduzca el número de puerto de su servidor LDAP/Active Directory.", "LdapQuota": "Cuota de usuarios", + "LdapQuotaInfo": "Para poder utilizar este atributo, active la cuota de usuarios en <0>Configuración de la gestión de almacenamiento.", "LdapSecondName": "Segundo nombre", "LdapSendWelcomeLetter": "Enviar carta de bienvenida", "LdapSendWelcomeLetterTooltip": "Si se marca, todos los usuarios nuevos recibirán una carta de bienvenida. Disponible sólo cuando el atributo de correo está asignado a LDAP.", @@ -66,6 +67,7 @@ "LdapUserDNTooltip": "Introduzca el nombre distinguido del directorio que contiene los usuarios que desea añadir.", "LdapUserFilter": "Filtro de usuario", "LdapUserFilterTooltip": "Utilice el filtro LDAP de búsqueda para seleccionar los usuarios que deben importarse.", + "LdapUserQuotaTooltip": "Para establecer una cuota de almacenamiento para el usuario, añada un atributo en el directorio LDAP (por ejemplo, UsersQuotaLimit) e introduzca un valor entero para este atributo. Se mostrará el valor de la cuota en bytes. Aquí especifique solo el nombre del atributo. Este atributo se aplicará únicamente durante la primera configuración y podrá modificarse posteriormente de forma manual en la sección Cuentas.", "LdapUsersType": "Tipo de usuario", "LdapUsersTypeInfo": "Los usuarios sólo pueden acceder a las salas a las que son invitados por los administradores, y no pueden crear sus propias salas, carpetas o archivos. Seleccione otro tipo a continuación para proporcionar más permisos. Si no, puede cambiar el tipo manualmente en la sección Cuentas.", "LdapUserTypeTooltip": "Todos los usuarios se añadirán a {{productName}} con el tipo seleccionado." diff --git a/packages/client/public/locales/es/MainBar.json b/packages/client/public/locales/es/MainBar.json index 58b9e6b755..e14b22b0c9 100644 --- a/packages/client/public/locales/es/MainBar.json +++ b/packages/client/public/locales/es/MainBar.json @@ -1,12 +1,31 @@ { + "ArchivedRoomsOrContact": "Puede archivar las salas innecesarias o ponerse en contacto con el administrador de {{productName}} para actualizar el plan de tarifas.", + "ClickToUpgradeTariff": "<1>Haga clic aquí para actualizar su plan de tarifas.", "ConfirmEmailDescription": "Utilice el enlace proporcionado en el correo electrónico de activación. ¿No ha recibido el correo electrónico con el enlace de activación?", "ConfirmEmailHeader": "Por favor, active su correo electrónico ({{ email }}) para obtener acceso a las características de {{productName}}.", + "ContactToUpgradeTariff": "Póngase en contacto con el administrador de {{productName}} para actualizar el plan de tarifas.", + "PersonalQuotaHeader": "Se ha superado su cuota de almacenamiento personal", + "PersonalQuotaHeaderForAdmins": "Se ha superado la cuota de almacenamiento por usuario", "PersonalUserQuotaAdminsDescription": "Para cargar y crear nuevos archivos y carpetas, libere espacio en el disco o administre la cuota por usuario en la <1>Configuración de administración de almacenamiento.", - "PersonalUserQuotaDescription": "Para cargar y crear nuevos archivos y carpetas, libere espacio en el disco o contacte con el administrador para aumentar la cuota de almacenamiento.", + "PersonalUserQuotaDescription": "Para cargar y crear nuevos archivos y carpetas, libere espacio en el disco o contacte con el administrador de {{productName}} para aumentar la cuota de almacenamiento.", + "RemoveFilesOrClickToUpgrade": "Elimine los archivos innecesarios o <1>haga clic aquí para actualizar su plan de tarifas.", + "RemoveFilesOrContactToUpgrade": "Elimine los archivos innecesarios o póngase en contacto con el administrador de {{productName}} para actualizar el plan de tarifas.", + "RemoveFilesOrContactToUpgradeQuota": "Elimine los archivos innecesarios o póngase en contacto con el administrador de {{productName}} para aumentar la cuota de almacenamiento.", "RequestActivation": "Volver a solicitar la activación", + "RoomQuotaDescription": "Puede archivar las salas innecesarias o <1>hacer clic aquí para encontrar un plan de tarifas más adecuado para su {{productName}}.", "RoomQuotaHeader": "Las salas están a punto de excederse: {{currentValue}} / {{maxValue}}", + "RoomQuotaHeaderLimit": "Se ha alcanzado el límite para el número de salas: {{currentValue}} / {{maxValue}}", + "StorageAndRoomHeader": "El límite de espacio de almacenamiento y el número de salas están a punto de superarse", + "StorageAndRoomLimitHeader": "Se ha alcanzado el límite de espacio de almacenamiento y el número de salas", "StorageAndUserHeader": "Los límites de almacenamiento y de administradores/usuarios avanzados están a punto de excederse.", + "StorageAndUserTariffLimitHeader": "Se ha alcanzado el límite de espacio de almacenamiento y el número de administradores/usuarios avanzados.", + "StorageLimitHeader": "Se ha alcanzado el límite de espacio de almacenamiento: {{currentValue}} / {{maxValue}}", "StorageQuotaHeader": "La cantidad de espacio de almacenamiento está a punto de excederse: {{currentValue}} / {{maxValue}}", "TenantCustomQuotaDescription": "Puede eliminar los archivos innecesarios o cambiar la cuota en la <1>Configuración de administración de almacenamiento.", - "UserQuotaHeader": "El número de administradores/usuarios avanzados está a punto de excederse: {{currentValue}} / {{maxValue}}." + "UserQuotaHeader": "El número de administradores/usuarios avanzados está a punto de excederse: {{currentValue}} / {{maxValue}}.", + "UserTariffAlmostReached": "Una vez alcanzado el límite, todos los usuarios se añadirán solo con permisos de usuario. Para poder añadir más administradores/usuarios avanzados, póngase en contacto con el administrador de {{productName}} para actualizar el plan de tarifas.", + "UserTariffAlmostReachedForAdmins": "Una vez alcanzado el límite, todos los usuarios se añadirán solo con permisos de usuario. Para poder añadir más administradores/usuarios avanzados, <1>haga clic aquí para actualizar su plan de tarifas.", + "UserTariffLimitHeader": "Se ha alcanzado el límite para el número de administradores/usuarios avanzados: {{currentValue}} / {{maxValue}}", + "UserTariffReached": "Todos los usuarios se añadirán solo con permisos de usuario. Para poder añadir más administradores/usuarios avanzados, póngase en contacto con el administrador de {{productName}} para actualizar el plan de tarifas.", + "UserTariffReachedForAdmins": "Todos los usuarios se añadirán solo con permisos de usuario. Para poder añadir más administradores/usuarios avanzados, <1>haga clic aquí para actualizar su plan de tarifas." } diff --git a/packages/client/public/locales/es/PDFFormDialog.json b/packages/client/public/locales/es/PDFFormDialog.json index c4e3653bf5..1bd77696cd 100644 --- a/packages/client/public/locales/es/PDFFormDialog.json +++ b/packages/client/public/locales/es/PDFFormDialog.json @@ -1,4 +1,5 @@ { + "PDFform": "Formulario PDF", "PDFFormEditDialogDescription": "¿Desea cambiar al modo de edición de formularios? Por favor, tenga en cuenta que el formulario ya no estará disponible para rellenarlo y tendrá que volver a hacer clic en el botón Empezar a rellenar después de editarlo para rellenarlo.", "PDFFormEditDialogTitle": "Edición del formulario", "PDFFormIsReadyToast": "El formulario PDF <1>{{filename}} está listo para ser rellenado.", diff --git a/packages/client/public/locales/es/Payments.json b/packages/client/public/locales/es/Payments.json index d134259af5..9a5955538f 100644 --- a/packages/client/public/locales/es/Payments.json +++ b/packages/client/public/locales/es/Payments.json @@ -9,6 +9,9 @@ "BusinessSuggestion": "Personalice su plan {{planName}}", "BusinessTitle": "Está utilizando el plan {{planName}}", "BusinessUpdated": "El plan {{planName}} se ha actualizado", + "CannotCreateNewRoom": "No se puede crear la sala", + "CannotCreatePaidUsers": "No se pueden añadir usuarios de pago", + "CannotRestoreRoom": "No se puede restaurar la sala", "ChooseNewPayer": "Elija un nuevo pagador", "ChooseNewPlan": "¿Desea elegir un nuevo plan de precios?", "ContactUs": "Si tiene preguntas sobre ventas, póngase en contacto con nosotros a través de", @@ -22,12 +25,18 @@ "InvalidEmailWithoutActiveSubscription": "Recomendamos elegir un nuevo Pagador que tenga acceso a la configuración de la suscripción en {{productName}}.", "InvalidEmailWithoutActiveSubscriptionByAdmin": "Recomendamos ponerse en contacto con el propietario de {{productName}} para elegir un nuevo Pagador.", "ManagerTypesDescription": "Tipos de cuentas de administrador y sus privilegios", + "NewRoomWillExceedLimit": "No es posible crear esta sala ya que se ha alcanzado el límite del número de salas que permite su plan actual.", + "NewUsersWillExceedMembersLimit": "No es posible añadir nuevos usuarios de pago ya que se ha alcanzado el límite del número de administradores que permite su plan actual.", + "NotPossibleRoomRestoring": "No es posible restaurar esta sala ya que se ha alcanzado el límite para el número de salas que incluye su plan actual.", + "NumberOfRoomsAccordingToTariff": "Número de salas según su plan de tarifas: {{currentValue}}/{{maxValue}}", + "NumberOfUsersAccordingToTariff": "Número de administradores/usuarios avanzados según su plan de tarifas: {{currentValue}}/{{maxValue}}", "Pay": "Pagar", "Payer": "Pagador", "PayerDescription": "Este usuario tiene acceso a los detalles de pago y es el único que puede ajustar la cuota y realizar pagos. El propietario de {{productName}}, así como el propio gestor de pagos, pueden reasignar el rol de gestor de pagos mediante el portal de cliente de Stripe.", "PriceCalculation": "Calcule su precio", "RenewSubscription": "Renovar suscripción al plan {{planName}}", "RoomManagerDescription": "Administración y archivado de salas, invitación y gestión de usuarios. Se pueden asignar varios administradores a la sala.", + "RoomsQuotaAlmostExhausted": "La cuota de salas casi se ha agotado.", "StartupSuggestion": "Puede hacer más con el plan {{planName}}", "StartupTitle": "Está utilizando el plan gratuito {{planName}}", "StripeCustomerPortal": "vaya al portal de cliente de Stripe", @@ -36,5 +45,6 @@ "UpgradePlan": "Actualizar plan", "UserNotFound": "No se ha encontrado el usuario <1>{{email}}.", "UserNotFoundMatchingEmail": "No hemos podido encontrar al usuario con el correo electrónico de Stripe correspondiente.", + "UsersQuotaAlmostExhausted": "La cuota de usuarios de pago casi se ha agotado.", "YourPrice": "Su precio" } diff --git a/packages/client/public/locales/fi/Files.json b/packages/client/public/locales/fi/Files.json index 0ad607e65d..c9e8b294a2 100644 --- a/packages/client/public/locales/fi/Files.json +++ b/packages/client/public/locales/fi/Files.json @@ -117,6 +117,7 @@ "OpenLocation": "Avaa sijainti", "PasswordAccess": "Salasanapääsy", "PasswordLink": "Lisää salasana suojataksesi linkkiäsi.", + "PasswordProtectedFiles": "<0>Syötä salasana<0> suojatuille tiedostoille jatkaaksesi", "PasswordSuccessfullyCopied": "Salasana onnistuneesti kopioitu ", "Pin": "Kiinnitä", "PinToTop": "Kiinnitä yläreunaan", diff --git a/packages/client/public/locales/fi/InviteDialog.json b/packages/client/public/locales/fi/InviteDialog.json index 6f3fee422d..fc703982b0 100644 --- a/packages/client/public/locales/fi/InviteDialog.json +++ b/packages/client/public/locales/fi/InviteDialog.json @@ -2,7 +2,7 @@ "AddManually": "Lisää manuaalisesti", "AddManuallyDescriptionAccounts": "Kutsu uusia käyttäjiä {{productName}}:n henkilökohtaisesti sähköpostilla", "AddManuallyDescriptionRoom": "Lisää olemassa olevat {{productName}}-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ä.", + "EmailErrorMessage": "Sähköpostiosoite ei ole olemassa. Voit muokata sähköpostia kaksoisnapsauttamalla sitä.", "GroupMaxAvailableRoleWarning": "Maksimimäärän ryhmiä voi nyt lisätä huoneeseen {{roleName}}-roolissa. Voit kuitenkin muuttaa yksittäisten käyttäjien rooleja ryhmässä sen jälkeen, kun se on lisätty.", "InvitationLanguage": "Kutsukieli", "InviteAccountSearchPlaceholder": "Kutsu ihmisiä sähköpostilla", diff --git a/packages/client/public/locales/fi/Ldap.json b/packages/client/public/locales/fi/Ldap.json index 77ff49b9d7..56bee2adba 100644 --- a/packages/client/public/locales/fi/Ldap.json +++ b/packages/client/public/locales/fi/Ldap.json @@ -36,6 +36,7 @@ "LdapPortNumber": "Porttinumero", "LdapPortNumberTooltip": "Syötä LDAP-palvelimen/Aktiivisen hakemiston porttinumero.", "LdapQuota": "Käyttäjäkiintiö", + "LdapQuotaInfo": "Voidaksesi käyttää tätä attribuuttia, ota käyttöön käyttäjäkiintiö <0>Muistin hallinta-asetuksissa<0>", "LdapSecondName": "Toinen nimi", "LdapSendWelcomeLetter": "Lähetä tervetulokirje", "LdapSendWelcomeLetterTooltip": "Jos valittu, kaikki käyttäjät saavat tervetulokirjeen. Mahdollinen ainoastaan, kun Postiattribuutti on kartoitettu LDAP:hen.", @@ -66,6 +67,7 @@ "LdapUserDNTooltip": "Syötä hakemistoon erottuvat nimi, joka sisältää käyttäjät, jotka haluat lisätä.", "LdapUserFilter": "Käyttäjäsuodatin", "LdapUserFilterTooltip": "Käytä haussa LDAP-suodatinta valitaksesi käyttäjät, jotka tuodaan.", + "LdapUserQuotaTooltip": "Asettaaksesi käyttäjälle muistikiintiön, lisää attribuutti LDAP-hakemistossa (esimerkiksi, KäyttäjienKiintiöraja) ja syötä kokonaislukuarvo tälle attribuutille. Se näyttää kiintiöarvon bitteinä. Määrittele tähän vain attribuutin nimi. Tämä attribuutti annetaan vain ensimmäisten asetusten aikana ja voidaan muuttaa myöhemmin manuaalisesti Tilit-osiossa.", "LdapUsersType": "Käyttäjät-tyyppi", "LdapUsersTypeInfo": "Käyttäjillä on pääsy huoneisiin vain, jos pääkäyttäjät ovat kutsuneet heidät, ja he eivät voi luoda omia huoneita, kansioita tai tiedostoja. Valitse alta toinen tyyppi antaaksesi enemmän oikeuksia. Muutoin, voit muuttaa tyyppiä manuaalisesti Tilit-osiossa.", "LdapUserTypeTooltip": "Kaikki käyttäjät lisätään {{productName}}:iin valitun tyypin mukaisesti." diff --git a/packages/client/public/locales/fi/MainBar.json b/packages/client/public/locales/fi/MainBar.json index c27eba1263..c23224d86d 100644 --- a/packages/client/public/locales/fi/MainBar.json +++ b/packages/client/public/locales/fi/MainBar.json @@ -1,12 +1,31 @@ { + "ArchivedRoomsOrContact": "Voit arkistoida tarpeettomat huoneet tai ottaa yhteyttä {{productName}} pääkäyttäjään päivittääksesi tilauksen.", + "ClickToUpgradeTariff": "<1>Klikkaa tästä päivittääksesi tilauksesi.", "ConfirmEmailDescription": "Käytä aktivointisähköpostissa annettua linkkiä. Etkö ole saanut aktivointilinkkiä sähköpostilla?", "ConfirmEmailHeader": "Ole hyvä ja aktivoi sähköpostisi ({{ email }}) saadaksesi {{productName}}:n ominaisuudet käyttöön.", + "ContactToUpgradeTariff": "Ota yhteyttä {{productName}} pääkäyttäjään päivittääksesi tilauksen.", + "PersonalQuotaHeader": "Henkilökohtainen muistikiintiösi on ylitetty", + "PersonalQuotaHeaderForAdmins": "Muistikiintiö per käyttäjä ylitetty", "PersonalUserQuotaAdminsDescription": "Ole hyvä ja vapauta levytilaa ladataksesi ja luodaksesi uusia tiedostoja ja kansioita, tai hallitaksesi kiintiötä per käyttäjä <1>Muistinhallinta-asetuksissa. ", - "PersonalUserQuotaDescription": "Ole hyvä ja vapauta levytilaa ladataksesi ja luodaksesi tiedostoja ja kansioita tai ota yhteyttä järjestelmänvalvojaan lisätäksesi muistin kiintiötä.", + "PersonalUserQuotaDescription": "Ole hyvä ja vapauta levytilaa ladataksesi ja luodaksesi tiedostoja ja kansioita tai ota yhteyttä {{productName}}-järjestelmänvalvojaan lisätäksesi muistin kiintiötä.", + "RemoveFilesOrClickToUpgrade": "Poista tarpeettomat tiedostot tai <1>klikkaa tästä päivittääksesi tilauksesi.", + "RemoveFilesOrContactToUpgrade": "Poista tarpeettomat tiedostot tai ota yhteyttä {{productName}} pääkäyttäjään päivittääksesi tilauksesi.", + "RemoveFilesOrContactToUpgradeQuota": "Poista tarpeettomat tiedostot tai ota yhteyttä {{productName}} lisätäksesi muistikiintiötä.", "RequestActivation": "Pyydä aktivointia vielä kerran", + "RoomQuotaDescription": "Voit arkistoida tarpeettomat huoneet tai <1>klikkaa tästälöytääksesi sopivampi tilaus {{productName}}.", "RoomQuotaHeader": "Huoneet täyttyvät pian {{currentValue}} / {{maxValue}}", + "RoomQuotaHeaderLimit": "Huoneiden määrän raja on saavutettu: {{currentValue}} / {{maxValue}}", + "StorageAndRoomHeader": "Muistin tilan raja ja huoneiden määrä on täyttymässä", + "StorageAndRoomLimitHeader": "Muistin tilan ja huoneiden määrän raja on saavutettu", "StorageAndUserHeader": "Muisti ja ylläpitäjien/tehokäyttäjien määrän raja on ylittymässä.", + "StorageAndUserTariffLimitHeader": "Muistin tilan ja pääkäyttäjien/tehokäyttäjien määrän raja on saavutettu", + "StorageLimitHeader": "Muistin tilan raja on saavutettu:{{currentValue}} / {{maxValue}}", "StorageQuotaHeader": "Tallennustilan määrä on ylittymässä: {{currentValue}} / {{maxValue}}", "TenantCustomQuotaDescription": "Voit poistaa tarpeettomat tiedostot tai muuttaa kiintiötä <1>Muistinhallinta-asetuksissa.", - "UserQuotaHeader": "Ylläpitäjien/tehokäyttäjien määrän raja on ylittymässä: {{currentValue}} / {{maxValue}}" + "UserQuotaHeader": "Ylläpitäjien/tehokäyttäjien määrän raja on ylittymässä: {{currentValue}} / {{maxValue}}", + "UserTariffAlmostReached": "Kaikille käyttäjille lisätään vain Käyttäjäoikeudet, kun raja on saavutettu. Voidaksesi lisätä pääkäyttäjiä/tehokäyttäjiä, ota yhteyttä {{productName}}:n pääkäyttäjään päivittääksesi tilauksesi.", + "UserTariffAlmostReachedForAdmins": "Kun raja on saavutettu, kaikille käyttäjille lisätään ainoastaan Käyttäjäoikeudet. Voidaksesi lisätä pääkäyttäjiä/tehokäyttäjiä, <1>klikkaa tästäpäivittääksesi tilauksesi.", + "UserTariffLimitHeader": "Pääkäyttäjien/tehokäyttäjien määrän raja on saavutettu: {{currentValue}} / {{maxValue}}", + "UserTariffReached": "Kaikille käyttäjille lisätään ainoastaan Käyttäjäoikeude. Voidaksesi lisätä pääkäyttäjiä/tehokäyttäjiä, ota yhteyttä {{productName}} pääkäyttäjään päivittääksesi tilauksesi.", + "UserTariffReachedForAdmins": "Kaikille käyttäjille lisätään ainoastaan Käyttäjäoikeudet. Voidaksesi lisätä pääkäyttäjiä/tehokäyttäjiä, <1>klikkaa tästäpäivittääksesi tilauksesi." } diff --git a/packages/client/public/locales/fi/PDFFormDialog.json b/packages/client/public/locales/fi/PDFFormDialog.json index 77a3880373..f868d44d61 100644 --- a/packages/client/public/locales/fi/PDFFormDialog.json +++ b/packages/client/public/locales/fi/PDFFormDialog.json @@ -1,4 +1,5 @@ { + "PDFform": "PDF-lomake", "PDFFormEditDialogDescription": "Haluatko vaihtaa lomakkeen muokkaustilaan? Huomioithan, että lomake ei ole enää täytettävissä ja sinun tulee klikata Aloita täyttäminen-painiketta jälleen muokkauksen jälkeen alkaessasi täyttää sitä.", "PDFFormEditDialogTitle": "Lomakkeen muokkaus", "PDFFormIsReadyToast": "PDF-lomake <1>{{filename}} on valmiina täytettäväksi.", diff --git a/packages/client/public/locales/fi/Payments.json b/packages/client/public/locales/fi/Payments.json index dc870d12f7..28c82eb910 100644 --- a/packages/client/public/locales/fi/Payments.json +++ b/packages/client/public/locales/fi/Payments.json @@ -9,6 +9,9 @@ "BusinessSuggestion": "Mukauta {{planName}} ohjelmaa", "BusinessTitle": "Käytät {{planName}}-ohjelmaa", "BusinessUpdated": "{{planName}} ohjelma päivitetty", + "CannotCreateNewRoom": "Huonetta ei voi luoda", + "CannotCreatePaidUsers": "Maksettuja käyttäjiä ei voi lisätä", + "CannotRestoreRoom": "Huonetta ei voi palauttaa", "ChooseNewPayer": "Valitse uusi Maksaja", "ChooseNewPlan": "Haluaisitko valita uuden hinnoitteluohjelman?", "ContactUs": "Myyntiin liittyviin kysymyksiin liittyen, ota meihin yhteyttä osoitteessa", @@ -22,12 +25,18 @@ "InvalidEmailWithoutActiveSubscription": "Suosittelemme valitsemaan uuden Maksajan, joka saa pääsyn tilauksen asetuksiin {{productName}}-ssa.", "InvalidEmailWithoutActiveSubscriptionByAdmin": "Suosittelemme ottamaan yhteyttä {{productName}}-n omistajaan valitaksesi uuden Maksajan.", "ManagerTypesDescription": "Järjestelmänvalvojan tilityypit ja niiden etuoikeudet", + "NewRoomWillExceedLimit": "Tämän huoneen luominen ei ole mahdollista, koska huoneiden määrän raja, joka kuuluu tilaukseesi, on saavutettu.", + "NewUsersWillExceedMembersLimit": "Uusien maksettujen käyttäjien lisääminen ei ole mahdollista, koska tilaukseesi kuuluvien pääkäyttäjien määrän raja on saavutettu.", + "NotPossibleRoomRestoring": "Tämän huoneen palauttaminen ei ole mahdollista, koska tilaukseesi kuuluvien huoneiden määrän raja on saavutettu.", + "NumberOfRoomsAccordingToTariff": "Huoneiden määrä tilauksesi mukaan: {{currentValue}}/{{maxValue}}", + "NumberOfUsersAccordingToTariff": "Pääkäyttäjien/tehokäyttäjien määrä tilauksesi mukaan: {{currentValue}}/{{maxValue}}", "Pay": "Maksa", "Payer": "Maksaja", "PayerDescription": "Tällä käyttäjällä on pääsy maksutietoihin ja on ainoa käyttäjä, joka voi muokata kiintiötä ja suorittaa maksuja. {{productName}}-n omistaja ja maksava johtaja voivat määrätä uudelleen maksavan johtajan rooliin käyttäen Stripe-asiakasportaalia.", "PriceCalculation": "Laske hintasi", "RenewSubscription": "Uusi tilaus {{planName}} ohjelmaan", "RoomManagerDescription": "Huoneen hallinto ja arkistointi, käyttäjien kutsuminen ja hallinta. Useita järjestelmänvalvojia voi olla määrättynä huoneeseen.", + "RoomsQuotaAlmostExhausted": "Huoneiden määrän kiintiö on melkein täysi.", "StartupSuggestion": "Tee enemmän {{planName}} ohjelmalla", "StartupTitle": "Käytät ilmaista {{planName}}-ohjelmaa", "StripeCustomerPortal": "Mene Stripe-asiakasportaaliin", @@ -36,5 +45,6 @@ "UpgradePlan": "Päivitä ohjelma", "UserNotFound": "Käyttäjän <1>{{email}} ei löydy.", "UserNotFoundMatchingEmail": "Käyttäjää vastaavalla Stripe-sähköpostilla ei löytynyt.", + "UsersQuotaAlmostExhausted": "Maksettujen käyttäjien määrän kiintiö on melkein täysi.", "YourPrice": "Hintasi" } diff --git a/packages/client/public/locales/fr/Files.json b/packages/client/public/locales/fr/Files.json index aa2a8671cb..136c6aa8ca 100644 --- a/packages/client/public/locales/fr/Files.json +++ b/packages/client/public/locales/fr/Files.json @@ -117,6 +117,7 @@ "OpenLocation": "Ouvrir un emplacement ", "PasswordAccess": "Accès par mot de passe", "PasswordLink": "Ajoutez un mot de passe pour protéger votre lien.", + "PasswordProtectedFiles": "Veuillez <0>entrer un mot de passe pour les fichiers protégés pour continuer", "PasswordSuccessfullyCopied": "Le mot de passe a été copié avec succès", "Pin": "Épingler", "PinToTop": "Épingler en haut de page", diff --git a/packages/client/public/locales/fr/InviteDialog.json b/packages/client/public/locales/fr/InviteDialog.json index 8adc820410..984d322f9d 100644 --- a/packages/client/public/locales/fr/InviteDialog.json +++ b/packages/client/public/locales/fr/InviteDialog.json @@ -2,7 +2,7 @@ "AddManually": "Ajouter manuellement", "AddManuallyDescriptionAccounts": "Invitez personnellement de nouveaux utilisateurs à {{productName}} par e-mail", "AddManuallyDescriptionRoom": "Ajoutez des utilisateurs existants de {{productName}} à la salle en utilisant les noms ou invitez de nouveaux utilisateurs personnellement par e-mail", - "EmailErrorMessage": "L’adresse e-mail n’est pas valide. Vous pouvez modifier l’e-mail en cliquant dessus.", + "EmailErrorMessage": "L’adresse e-mail n’est pas valide. Vous pouvez modifier l’e-mail en double-cliquant dessus.", "GroupMaxAvailableRoleWarning": "Les groupes peuvent être ajoutés à une salle avec le rôle {{roleName}} comme maximum. Cependant, vous pouvez modifier le rôle des utilisateurs individuels du groupe une fois que celui-ci a été ajouté avec succès.", "InvitationLanguage": "Langue de l'invitation", "InviteAccountSearchPlaceholder": "Inviter des personnes par e-mail", diff --git a/packages/client/public/locales/fr/Ldap.json b/packages/client/public/locales/fr/Ldap.json index 0c790b55ea..22e7a0511e 100644 --- a/packages/client/public/locales/fr/Ldap.json +++ b/packages/client/public/locales/fr/Ldap.json @@ -36,6 +36,7 @@ "LdapPortNumber": "Numéro de port", "LdapPortNumberTooltip": "Saisissez le numéro de port de votre serveur LDAP/Active Directory.", "LdapQuota": "Quota d'utilisateurs", + "LdapQuotaInfo": "Pour pouvoir utiliser cet attribut, activez le quota d'utilisateurs dans les <0>Paramètres de gestion du stockage.", "LdapSecondName": "Nom", "LdapSendWelcomeLetter": "Envoyer une lettre de bienvenue", "LdapSendWelcomeLetterTooltip": "Si cette option est cochée, tous les nouveaux utilisateurs recevront une lettre de bienvenue. Cette option n'est disponible que lorsque l'attribut Mail est associé à LDAP.", @@ -66,6 +67,7 @@ "LdapUserDNTooltip": "Saisissez le nom distinctif du répertoire contenant les utilisateurs que vous souhaitez ajouter.", "LdapUserFilter": "Filtre d'utilisateurs", "LdapUserFilterTooltip": "Utilisez le filtre LDAP de recherche pour sélectionner les utilisateurs qui doivent être importés.", + "LdapUserQuotaTooltip": "Pour définir un quota de stockage pour un utilisateur, ajoutez un attribut dans le répertoire LDAP (par exemple, UsersQuotaLimit) et entrez une valeur entière pour cet attribut. La valeur du quota sera affichée en octets. Indiquez ici uniquement le nom de l'attribut. Cet attribut ne sera appliqué que lors de la première configuration et pourra être modifié ultérieurement manuellement dans la section Comptes.", "LdapUsersType": "Type d'utilisateur", "LdapUsersTypeInfo": "Les utilisateurs ne peuvent accéder qu'aux salles auxquelles ils sont invités par les administrateurs et ne peuvent pas créer leurs propres salles, dossiers ou fichiers. Sélectionnez un autre type ci-dessous pour obtenir davantage d'autorisations. Sinon, vous pouvez modifier le type manuellement dans la section Comptes.", "LdapUserTypeTooltip": "Tous les utilisateurs seront ajoutés à {{productName}} avec le type sélectionné." diff --git a/packages/client/public/locales/fr/MainBar.json b/packages/client/public/locales/fr/MainBar.json index 7aec9a4979..158541c52d 100644 --- a/packages/client/public/locales/fr/MainBar.json +++ b/packages/client/public/locales/fr/MainBar.json @@ -1,12 +1,31 @@ { + "ArchivedRoomsOrContact": "Vous pouvez archiver les salles inutiles ou contacter l'administrateur de {{productName}} pour mettre à niveau le plan tarifaire.", + "ClickToUpgradeTariff": "<1>Cliquez ici pour augmenter votre plan tarifaire.", "ConfirmEmailDescription": "Utilisez le lien fourni dans l’e-mail d’activation. Vous n’avez pas reçu d’e-mail contenant le lien d’activation ?", "ConfirmEmailHeader": "Veuillez activer votre adresse e-mail ({{ email }}) pour accéder aux fonctionnalités de {{productName}}.", + "ContactToUpgradeTariff": "Contactez l'administrateur de {{productName}} pour augmenter le plan tarifaire.", + "PersonalQuotaHeader": "Votre quota de stockage personnel a été dépassé", + "PersonalQuotaHeaderForAdmins": "Quota de stockage par utilisateur dépassé", "PersonalUserQuotaAdminsDescription": "Pour télécharger et créer de nouveaux fichiers et dossiers, veuillez libérer l'espace de stockage ou gérez des quotas d'utilisateurs à partir de la section <1>Paramètres de gestion du stockage.", - "PersonalUserQuotaDescription": "Pour télécharger et créer de nouveaux fichiers et dossiers, veuillez libérer l'espace de stockage ou contactez l'administrateur pour augmenter le quota de stockage.", + "PersonalUserQuotaDescription": "Pour télécharger et créer de nouveaux fichiers et dossiers, veuillez libérer l'espace de stockage ou contactez l'administrateur de {{productName}} pour augmenter le quota de stockage.", + "RemoveFilesOrClickToUpgrade": "Supprimez les fichiers inutiles ou <1>cliquez ici pour augmenter votre plan tarifaire.", + "RemoveFilesOrContactToUpgrade": "Supprimez les fichiers inutiles ou contactez l'administrateur de {{productName}} pour mettre à niveau le plan tarifaire.", + "RemoveFilesOrContactToUpgradeQuota": "Supprimez les fichiers inutiles ou contactez l'administrateur de {{productName}} pour augmenter le quota de stockage.", "RequestActivation": "Demander à nouveau l’activation", + "RoomQuotaDescription": "Vous pouvez archiver les salles inutiles ou <1>cliquer ici pour trouver un plan tarifaire plus adapté à votre {{productName}}.", "RoomQuotaHeader": "Salles est sur le point d’être dépassée : {{currentValue}} / {{maxValue}}", + "RoomQuotaHeaderLimit": "La limite est atteinte pour le nombre de salles : {{currentValue}} / {{maxValue}}", + "StorageAndRoomHeader": "La limite de l'espace de stockage et du nombre de salles est sur le point d'être dépassée", + "StorageAndRoomLimitHeader": "La limite de l'espace de stockage et du nombre de salles est atteinte", "StorageAndUserHeader": "Les limites de stockage et d'administrateurs/utilisateurs avancés sont sur le point d'être dépassées.", + "StorageAndUserTariffLimitHeader": "La limite de l'espace de stockage et du nombre d'administrateurs/utilisateurs avancés est atteinte", + "StorageLimitHeader": "La limite de l'espace de stockage est atteinte : {{currentValue}} / {{maxValue}}", "StorageQuotaHeader": "L’espace de stockage est sur le point d’être dépassé : {{currentValue}} / {{maxValue}}", "TenantCustomQuotaDescription": "Vous pouvez supprimer les fichiers inutiles ou modifier le quota dans la section <1>Paramètres de gestion du stockage.", - "UserQuotaHeader": "Le nombre d'administrateurs/utilisateurs avancés est sur le point d'être dépassé : {{currentValue}} / {{maxValue}}." + "UserQuotaHeader": "Le nombre d'administrateurs/utilisateurs avancés est sur le point d'être dépassé : {{currentValue}} / {{maxValue}}.", + "UserTariffAlmostReached": "Une fois la limite atteinte, tous les utilisateurs seront ajoutés avec des autorisations d'utilisateur uniquement. Pour pouvoir ajouter d'autres administrateurs/utilisateurs avancés, contactez l'administrateur de {{productName}} pour mettre à niveau le plan tarifaire.", + "UserTariffAlmostReachedForAdmins": "Une fois la limite atteinte, tous les utilisateurs seront ajoutés avec des autorisations d'utilisateur uniquement. Pour pouvoir ajouter d'autres administrateurs/utilisateurs avancés, <1>cliquez ici pour mettre à niveau votre plan tarifaire.", + "UserTariffLimitHeader": "La limite est atteinte pour le nombre d'administrateurs/utilisateurs avancés: {{currentValue}} / {{maxValue}}", + "UserTariffReached": "Tous les utilisateurs seront ajoutés avec des autorisations d'utilisateur uniquement. Pour pouvoir ajouter d'autres administrateurs/utilisateurs avancés, contactez l'administrateur de {{productName}} pour mettre à niveau le plan tarifaire.", + "UserTariffReachedForAdmins": "Tous les utilisateurs seront ajoutés avec des autorisations d'utilisateur uniquement. Pour pouvoir ajouter d'autres administrateurs/utilisateurs avancées, <1>cliquez ici pour mettre à niveau votre plan tarifaire." } diff --git a/packages/client/public/locales/fr/PDFFormDialog.json b/packages/client/public/locales/fr/PDFFormDialog.json index 343cd5bd31..69f49fa55f 100644 --- a/packages/client/public/locales/fr/PDFFormDialog.json +++ b/packages/client/public/locales/fr/PDFFormDialog.json @@ -1,4 +1,5 @@ { + "PDFform": "Formulaire PDF", "PDFFormEditDialogDescription": "Souhaitez-vous passer au mode d'édition du formulaire ? Veuillez noter que le formulaire ne sera plus disponible pour être rempli et que vous devrez cliquer à nouveau sur le bouton Commencer à remplir après l'édition pour le remplir.", "PDFFormEditDialogTitle": "Édition de formulaires", "PDFFormIsReadyToast": "Le formulaire PDF <1>{{filename}} est prêt à être rempli.", diff --git a/packages/client/public/locales/fr/Payments.json b/packages/client/public/locales/fr/Payments.json index 83df6c471a..5d9a599cf8 100644 --- a/packages/client/public/locales/fr/Payments.json +++ b/packages/client/public/locales/fr/Payments.json @@ -9,6 +9,9 @@ "BusinessSuggestion": "Personnalisez votre plan tarifaire {{planName}}", "BusinessTitle": "Vous utilisez le plan tarifaire {{planName}}", "BusinessUpdated": "Le plan tarifaire {{planName}} a été mis à jour", + "CannotCreateNewRoom": "Impossible de créer une salle", + "CannotCreatePaidUsers": "Impossible d'ajouter des utilisateurs payants", + "CannotRestoreRoom": "Impossible de restaurer la salle", "ChooseNewPayer": "Choisir un nouveau payeur", "ChooseNewPlan": "Vous souhaitez choisir un nouveau plan tarifaire ?", "ContactUs": "Pour toute question relative aux ventes, contactez-nous à", @@ -22,12 +25,18 @@ "InvalidEmailWithoutActiveSubscription": "Nous recommandons de choisir un nouveau payeur qui aura accès aux paramètres d’abonnement dans {{productName}}.", "InvalidEmailWithoutActiveSubscriptionByAdmin": "Nous recommandons de contacter le propriétaire de {{productName}} pour choisir un nouveau payeur.", "ManagerTypesDescription": "Types de comptes administrateurs et leurs privilèges", + "NewRoomWillExceedLimit": "La création de cette salle n'est pas possible car la limite du nombre de salles incluses dans votre plan actuel est atteinte.", + "NewUsersWillExceedMembersLimit": "L'ajout de nouveaux utilisateurs payants n'est pas possible car la limite est atteinte pour le nombre d'administrateurs inclus dans votre plan actuel.", + "NotPossibleRoomRestoring": "La restauration de cette salle n'est pas possible car la limite du nombre de salles incluses dans votre plan actuel est atteinte.", + "NumberOfRoomsAccordingToTariff": "Nombre de salles selon votre plan tarifaire : {{currentValue}}/{{maxValue}}", + "NumberOfUsersAccordingToTariff": "Nombre d'administrateurs/utilisateurs avancées selon votre plan tarifaire : {{currentValue}}/{{maxValue}}", "Pay": "Payer", "Payer": "Payeur", "PayerDescription": "Cet utilisateur a accès aux détails des paiements et est le seul à pouvoir ajuster le quota et effectuer des paiements. Le propriétaire de {{productName}}, ainsi que le gestionnaire de paiement lui-même, peuvent réattribuer le rôle de gestionnaire de paiement en utilisant le portail client Stripe.", "PriceCalculation": "Calculez votre prix", "RenewSubscription": "Renouveler l’abonnement au plan tarifaire {{planName}}", "RoomManagerDescription": "Administration et archivage des salles, invitation et gestion des utilisateurs. Plusieurs administrateurs peuvent être affectés à la salle.", + "RoomsQuotaAlmostExhausted": "Le quota de salles est presque épuisé.", "StartupSuggestion": "Faites plus avec le plan tarifaire {{planName}}", "StartupTitle": "Vous utilisez le plan gratuit {{planName}}", "StripeCustomerPortal": "aller sur le portail client Stripe", @@ -36,5 +45,6 @@ "UpgradePlan": "Mettre à jour le plan tarifaire", "UserNotFound": "L’utilisateur <1>{{email}} est introuvable.", "UserNotFoundMatchingEmail": "Nous n’avons pas trouvé l’utilisateur avec l’e-mail Stripe correspondant.", + "UsersQuotaAlmostExhausted": "Le quota d'utilisateurs payants est presque épuisé.", "YourPrice": "Votre prix" } diff --git a/packages/client/public/locales/hy-AM/Files.json b/packages/client/public/locales/hy-AM/Files.json index 744dc085a7..9770169120 100644 --- a/packages/client/public/locales/hy-AM/Files.json +++ b/packages/client/public/locales/hy-AM/Files.json @@ -117,6 +117,7 @@ "OpenLocation": "Բացել տեղադրությունը", "PasswordAccess": "Գաղտնաբառի հասանելիություն", "PasswordLink": "Ձեր հղումը պաշտպանելու համար գաղտնաբառ ավելացրեք:", + "PasswordProtectedFiles": "Խնդրում ենք <0>մուտքագրել գաղտնաբառ, որպեսզի պաշտպանված ֆայլերը շարունակվեն", "PasswordSuccessfullyCopied": "Գաղտնաբառը հաջողությամբ պատճենվեց", "Pin": "Ամրացնել", "PinToTop": "Ամրացնել վերին մասում", diff --git a/packages/client/public/locales/hy-AM/InviteDialog.json b/packages/client/public/locales/hy-AM/InviteDialog.json index 3271b9b911..7b6738516f 100644 --- a/packages/client/public/locales/hy-AM/InviteDialog.json +++ b/packages/client/public/locales/hy-AM/InviteDialog.json @@ -2,7 +2,7 @@ "AddManually": "Ավելացնել ձեռքով", "AddManuallyDescriptionAccounts": "Հրավիրեք նոր օգտվողներին {{productName}} անձամբ էլփոստի միջոցով", "AddManuallyDescriptionRoom": "Ավելացրեք {{productName}}-ի առկա օգտատերերին սենյակին՝ օգտագործելով անունները կամ անձամբ հրավիրեք նոր օգտատերերի էլփոստի միջոցով", - "EmailErrorMessage": "Էլփոստի հասցեն վավեր չէ: Դուք կարող եք խմբագրել էլփոստը՝ սեղմելով դրա վրա:", + "EmailErrorMessage": "Էլփոստի հասցեն վավեր չէ: Դուք կարող եք խմբագրել նամակը՝ կրկնակի սեղմելով դրա վրա:", "GroupMaxAvailableRoleWarning": "Խմբերը կարող են ավելացվել սենյակում, որտեղ առավելագույնը {{roleName}} դերն է: Այնուամենայնիվ, դուք կարող եք փոխել առանձին օգտատերերի դերը խմբում այն ​​հաջողությամբ ավելացնելուց հետո:", "InvitationLanguage": "Հրավերների լեզու", "InviteAccountSearchPlaceholder": "Հրավիրեք մարդկանց էլ փոստով", diff --git a/packages/client/public/locales/hy-AM/Ldap.json b/packages/client/public/locales/hy-AM/Ldap.json index 42613b353e..74cdbd2a9e 100644 --- a/packages/client/public/locales/hy-AM/Ldap.json +++ b/packages/client/public/locales/hy-AM/Ldap.json @@ -36,6 +36,7 @@ "LdapPortNumber": "Պորտի համարը", "LdapPortNumberTooltip": "Մուտքագրել ձեր LDAP սերվերի/ Active Directory-ի պորտի համարը:", "LdapQuota": "Օգտագործողի քվոտա", + "LdapQuotaInfo": "Որպեսզի կարողանաք օգտագործել այս հատկանիշը, միացրեք օգտվողի քվոտան <0>Պահպանման կառավարման կարգավորումներում", "LdapSecondName": "Ազգանուն", "LdapSendWelcomeLetter": "Ուղարկել ողջույնի նամակ", "LdapSendWelcomeLetterTooltip": "Եթե ​​նշված է, բոլոր նոր օգտվողները կստանան ողջույնի նամակ: Հասանելի է միայն այն դեպքում, երբ Փոստի հատկանիշը քարտեզագրված է LDAP-ին:", @@ -66,6 +67,7 @@ "LdapUserDNTooltip": "Մուտքագրեք տարբերվող անունը գրացուցակում, պարունակող այն օգտվողներին, որոնց ցանկանում եք ավելացնել:", "LdapUserFilter": "Օգտատիրոջ զտիչ", "LdapUserFilterTooltip": "Օգտագործեք որոնման LDAP զտիչը՝ ընտրելու այն օգտատերերին, ովքեր պետք է ներմուծվեն:", + "LdapUserQuotaTooltip": "Օգտատիրոջ համար պահեստավորման քվոտա սահմանելու համար ավելացրեք հատկանիշ LDAP գրացուցակում (օրինակ՝ ՕգտատերերՔվոտաԼիմիտ) և մուտքագրեք ամբողջ արժեք այս հատկանիշի համար: Այն կցուցադրի քվոտայի արժեքը բայթերով: Այստեղ նշեք միայն հատկանիշի անունը: Այս հատկանիշը կկիրառվի միայն առաջին կարգաբերման ժամանակ և կարող է հետագայում ձեռքով փոխվել «Հաշիվներ» բաժնում:", "LdapUsersType": "Օգտատիրոջ տեսակ", "LdapUsersTypeInfo": "Օգտատերերը կարող են մուտք գործել միայն այն սենյակները, որտեղ հրավիրված են ադմինիստրատորների կողմից և չեն կարող ստեղծել իրենց սեփական սենյակները, թղթապանակները կամ ֆայլերը: Ավելի շատ թույլտվություններ տրամադրելու համար ստորև ընտրեք մեկ այլ տեսակ: Հակառակ դեպքում, դուք կարող եք ձեռքով փոխել տեսակը «Հաշիվներ» բաժնում:", "LdapUserTypeTooltip": "Բոլոր օգտվողները կավելացվեն {{productName}}-ում ընտրված տեսակով:" diff --git a/packages/client/public/locales/hy-AM/MainBar.json b/packages/client/public/locales/hy-AM/MainBar.json index 06a2b162d7..d50887145a 100644 --- a/packages/client/public/locales/hy-AM/MainBar.json +++ b/packages/client/public/locales/hy-AM/MainBar.json @@ -1,12 +1,31 @@ { + "ArchivedRoomsOrContact": "Դուք կարող եք արխիվացնել ավելորդ սենյակները կամ կապվել {{productName}} ադմինիստրատորի հետ՝ սակագնային պլանը թարմացնելու համար:", + "ClickToUpgradeTariff": "<1>Սեղմեք այստեղ ձեր սակագնային պլանը թարմացնելու համար:", "ConfirmEmailDescription": "Օգտագործեք ակտիվացման նամակում նշված հղումը: Ակտիվացման հղումով նամակ չե՞ք ստացել:", "ConfirmEmailHeader": "Խնդրում ենք ակտիվացնել ձեր էլ ({{ email }})․ հասցեն՝ {{productName}}-ի գործառույթներին հասանելիություն ստանալու համար։", + "ContactToUpgradeTariff": "Սակագնային պլանը թարմացնելու համար կապվեք {{ productName}} ադմինիստրատորի հետ:", + "PersonalQuotaHeader": "Ձեր անձնական պահեստի սահմանաչափը գերազանցվել է", + "PersonalQuotaHeaderForAdmins": "Մեկ օգտատիրոջ համար պահեստի չափը գերազանցվել է", "PersonalUserQuotaAdminsDescription": "Նոր ֆայլեր և պանակներ վերբեռնելու և ստեղծելու համար խնդրում ենք ազատեք սկավառակի տարածքը կամ կառավարեք յուրաքանչյուր օգտատիրոջ չափաբաժինը <1>Storage management settings.", - "PersonalUserQuotaDescription": "Նոր ֆայլեր և թղթապանակներ վերբեռնելու և ստեղծելու համար խնդրում ենք ազատեք սկավառակի տարածքը կամ կապվեք ադմինիստրատորի հետ՝ պահեստավորման քվոտան մեծացնելու համար:", + "PersonalUserQuotaDescription": "Նոր ֆայլեր և թղթապանակներ վերբեռնելու և ստեղծելու համար խնդրում ենք ազատեք սկավառակի տարածքը կամ կապվեք {{productName}} ադմինիստրատորի հետ՝ պահեստավորման քվոտան մեծացնելու համար:", + "RemoveFilesOrClickToUpgrade": "Հեռացրեք ավելորդ ֆայլերը կամ <1>սեղմեք այստեղ՝ ձեր սակագնային պլանը թարմացնելու համար:", + "RemoveFilesOrContactToUpgrade": "Հեռացրեք ավելորդ ֆայլերը կամ կապվեք {{productName}} ադմինիստրատորի հետ՝ սակագնային պլանը թարմացնելու համար:", + "RemoveFilesOrContactToUpgradeQuota": "Հեռացրեք ավելորդ ֆայլերը կամ կապվեք {{productName}} ադմինիստրատորի հետ՝ պահեստավորման քվոտան մեծացնելու համար:", "RequestActivation": "Խնդրեք ակտիվացում ևս մեկ անգամ", + "RoomQuotaDescription": "Դուք կարող եք արխիվացնել ավելորդ սենյակները կամ <1>սեղմեք այստեղ՝ ձեր {{productName}}-ի համար ավելի հարմար սակագնային պլան գտնելու համար:", "RoomQuotaHeader": "Սենյակները շուտով գերազանցելու են՝ {{currentValue}} / {{maxValue}}", + "RoomQuotaHeaderLimit": "Սենյակների քանակի սահմանաչափը սպառված է՝ {{currentValue}} / {{maxValue}}", + "StorageAndRoomHeader": "Պահեստային տարածքի և սենյակների քանակի սահմանաչափը շուտով կգերազանցի", + "StorageAndRoomLimitHeader": "Պահեստային տարածքի և սենյակների քանակի սահմանաչափը սպառվել է", "StorageAndUserHeader": "Պահպանման և ադմինիստրատորների/հզոր օգտագործողների սահմանաչափերը շուտով կգերազանցվեն:", + "StorageAndUserTariffLimitHeader": "Սահմանափակված է պահեստային տարածքի և ադմինիստրատորների/հզոր օգտատերերի քանակի համար", + "StorageLimitHeader": "Պահեստային տարածքի սահմանաչափը սպառվել է՝ {{currentValue}} / {{maxValue}}", "StorageQuotaHeader": "Պահեստային տարածքի քանակը քիչ է մնում գերազանցվի՝ {{currentValue}} / {{maxValue}}", "TenantCustomQuotaDescription": "Դուք կարող եք հեռացնել ավելորդ ֆայլերը կամ փոխել սահմանաչափը <1>Պահպանման կառավարման կարգավորումներ:", - "UserQuotaHeader": "Ադմինիստրատորների/հզոր օգտատերերի թիվը պատրաստվում է գերազանցել՝ {{currentValue}} / {{maxValue}}:" + "UserQuotaHeader": "Ադմինիստրատորների/հզոր օգտատերերի թիվը պատրաստվում է գերազանցել՝ {{currentValue}} / {{maxValue}}:", + "UserTariffAlmostReached": "Սահմանաչափը սպառվելուց հետո բոլոր օգտատերերը կավելացվեն միայն Օգտատիրոջ թույլտվություններով: Այլ ադմիններ/հզոր օգտատերեր ավելացնելու համար կապվեք {{productName}} ադմինիստրատորի հետ՝ սակագնային պլանը թարմացնելու համար:", + "UserTariffAlmostReachedForAdmins": "Սահմանաչափը սպառվելուց հետո բոլոր օգտատերերը կավելացվեն միայն Օգտատիրոջ թույլտվություններով: Այլ ադմիններ/հզոր օգտատերեր ավելացնելու համար <1>սեղմեք այստեղ՝ ձեր սակագնային պլանը թարմացնելու համար:", + "UserTariffLimitHeader": "Ադմինիստրատորների/հզոր օգտատերերի քանակի սահմանաչափը սպառվել է՝ {{currentValue}} / {{maxValue}}", + "UserTariffReached": "Բոլոր օգտատերերը կավելացվեն միայն Օգտատիրոջ թույլտվություններով: Այլ ադմիններ/հզոր օգտվողներ ավելացնելու համար կապվեք {{productName}} ադմինիստրատորի հետ՝ սակագնային պլանը թարմացնելու համար:", + "UserTariffReachedForAdmins": "Բոլոր օգտատերերը կավելացվեն միայն Օգտատիրոջ թույլտվություններով: Այլ ադմիններ/հզոր օգտատերեր ավելացնելու համար <1>սեղմեք այստեղ՝ ձեր սակագնային պլանը թարմացնելու համար:" } diff --git a/packages/client/public/locales/hy-AM/PDFFormDialog.json b/packages/client/public/locales/hy-AM/PDFFormDialog.json index f22950ae71..f892cb921d 100644 --- a/packages/client/public/locales/hy-AM/PDFFormDialog.json +++ b/packages/client/public/locales/hy-AM/PDFFormDialog.json @@ -1,4 +1,5 @@ { + "PDFform": "PDF ձև", "PDFFormEditDialogDescription": "Ցանկանու՞մ եք անցնել ձևի խմբագրման ռեժիմին: Խնդրում ենք նկատի ունենալ, որ ձևն այլևս հասանելի չի լինի լրացնելու համար, և այն լրացնելու համար անհրաժեշտ է խմբագրելուց հետո նորից սեղմել Սկսել լրացնել կոճակը:", "PDFFormEditDialogTitle": "Ձևի խմբագրում", "PDFFormIsReadyToast": "PDF ձև <1>{{filename}} պատրաստ է լրացման։", diff --git a/packages/client/public/locales/hy-AM/Payments.json b/packages/client/public/locales/hy-AM/Payments.json index 5c06cc36e1..ceef849701 100644 --- a/packages/client/public/locales/hy-AM/Payments.json +++ b/packages/client/public/locales/hy-AM/Payments.json @@ -9,6 +9,9 @@ "BusinessSuggestion": "Հարմարեցրեք ձեր {{planName}} պլանը", "BusinessTitle": "Դուք օգտագործում եք {{planName}} պլանը", "BusinessUpdated": "{{planName}} ծրագիրը թարմացվել է", + "CannotCreateNewRoom": "Սենյակը հնարավոր չէ ստեղծել", + "CannotCreatePaidUsers": "Վճարովի օգտատերերը չեն կարող ավելացվել", + "CannotRestoreRoom": "Սենյակը հնարավոր չէ վերականգնել", "ChooseNewPayer": "Ընտրեք նոր վճարող", "ChooseNewPlan": "Ցանկանու՞մ եք ընտրել նոր գնային պլան:", "ContactUs": "Վաճառքի հարցերի համար կապվեք մեզ հետ", @@ -22,12 +25,18 @@ "InvalidEmailWithoutActiveSubscription": "Խորհուրդ ենք տալիս ընտրել նոր վճարող, ով հասանելի է դառնում {{productName}}-ում բաժանորդագրության կարգավորումներին:", "InvalidEmailWithoutActiveSubscriptionByAdmin": "Խորհուրդ ենք տալիս կապվել {{productName}}-ի սեփականատիրոջ հետ՝ նոր վճարող ընտրելու համար:", "ManagerTypesDescription": "Ադմինիստրատորի հաշվի տեսակները և դրանց արտոնությունները", + "NewRoomWillExceedLimit": "Այս սենյակի ստեղծումը հնարավոր չէ, քանի որ ձեր ընթացիկ պլանում ներառված սենյակների քանակի սահմանաչափը սպառվել է:", + "NewUsersWillExceedMembersLimit": "Նոր վճարովի օգտատերերի ավելացումը հնարավոր չէ, քանի որ ձեր ընթացիկ պլանում ընդգրկված ադմինիստրատորների քանակի սահմանաչափը սպառվել է:", + "NotPossibleRoomRestoring": "Այս սենյակի վերականգնումը հնարավոր չէ, քանի որ ձեր ընթացիկ պլանում ներառված սենյակների քանակի սահմանաչափը սպառվել է:", + "NumberOfRoomsAccordingToTariff": "Սենյակների քանակն ըստ ձեր սակագնային պլանի՝ {{currentValue}}/{{maxValue}}", + "NumberOfUsersAccordingToTariff": "Ադմինիստրատորների/հզոր օգտատերերի թիվը՝ ըստ ձեր սակագնային պլանի՝ {{currentValue}}/{{maxValue}}", "Pay": "Վճարել", "Payer": "Վճարող", "PayerDescription": "Այս օգտվողին հասանելի են վճարման մանրամասները և միակ օգտվողն է, ով կարող է կարգավորել քվոտան և կատարել վճարումներ: {{productName}}-ի սեփականատերը, ինչպես նաև իրենք՝ վճարող կառավարիչը, կարող են վերահանձնել վճարող մենեջերի դերը՝ օգտագործելով Stripe հաճախորդների պորտալը:", "PriceCalculation": "Հաշվարկեք ձեր արժեքը", "RenewSubscription": "Թարմացրեք {{planName}} պլանի բաժանորդագրությունը", "RoomManagerDescription": "Սենյակի կառավարում և արխիվացում, օգտատերերի հրավեր և կառավարում: Սենյակում կարող են նշանակվել մի քանի ադմիններ:", + "RoomsQuotaAlmostExhausted": "Սենյակների քվոտան գրեթե սպառվել է։", "StartupSuggestion": "Կատարեք ավելին {{planName}} պլանի հետ", "StartupTitle": "Դուք օգտագործում եք անվճար {{planName}} պլանը", "StripeCustomerPortal": "գնալ Stripe հաճախորդների պորտալ", @@ -36,5 +45,6 @@ "UpgradePlan": "Թարմացման պլան", "UserNotFound": "<1>{{email}} օգտվողը չի գտնվել:", "UserNotFoundMatchingEmail": "Մենք չկարողացանք գտնել համապատասխան Stripe էլ․ հասցեով օգտվողին:", + "UsersQuotaAlmostExhausted": "Վճարովի օգտատերերի քվոտան գրեթե սպառվել է։", "YourPrice": "Ձեր գինը" } diff --git a/packages/client/public/locales/it/Files.json b/packages/client/public/locales/it/Files.json index c84ae7ebcf..b08c467ea5 100644 --- a/packages/client/public/locales/it/Files.json +++ b/packages/client/public/locales/it/Files.json @@ -117,6 +117,7 @@ "OpenLocation": "Apri posizione", "PasswordAccess": "Accesso tramite password", "PasswordLink": "Aggiungi una password per proteggere il tuo link.", + "PasswordProtectedFiles": "Sei pregato di <0>inserire la password dei file protetti per continuare", "PasswordSuccessfullyCopied": "Password copiata con successo", "Pin": "Fissa", "PinToTop": "Fissa in alto", diff --git a/packages/client/public/locales/it/InviteDialog.json b/packages/client/public/locales/it/InviteDialog.json index 048813aad1..f9e721c0ab 100644 --- a/packages/client/public/locales/it/InviteDialog.json +++ b/packages/client/public/locales/it/InviteDialog.json @@ -2,7 +2,7 @@ "AddManually": "Aggiungi manualmente", "AddManuallyDescriptionAccounts": "Invita nuovi utenti a {{productName}} personalmente tramite e-mail", "AddManuallyDescriptionRoom": "Aggiungi utenti esistenti di {{productName}} alla stanza utilizzando i nomi o invita nuovi utenti personalmente tramite e-mail", - "EmailErrorMessage": "Indirizzo email non valido. Puoi modificare l’email facendo clic su di essa.", + "EmailErrorMessage": "Indirizzo email non valido. Puoi modificare l'email facendo doppio clic su di essa.", "GroupMaxAvailableRoleWarning": "I gruppi possono essere aggiunti a una stanza con al massimo il ruolo {{roleName}}. Tuttavia, puoi modificare il ruolo dei singoli utenti nel gruppo dopo che è stato aggiunto con successo.", "InvitationLanguage": "Lingua dell'invito", "InviteAccountSearchPlaceholder": "Invita persone via e-mail", diff --git a/packages/client/public/locales/it/Ldap.json b/packages/client/public/locales/it/Ldap.json index 22b6352ac1..33e971b202 100644 --- a/packages/client/public/locales/it/Ldap.json +++ b/packages/client/public/locales/it/Ldap.json @@ -36,6 +36,7 @@ "LdapPortNumber": "Numero di porta", "LdapPortNumberTooltip": "Inserisci il numero di porta per il tuo server LDAP/Active Directory.", "LdapQuota": "Quota utenti", + "LdapQuotaInfo": "Per poter utilizzare questo attributo, abilita la quota utente nelle <0>Impostazioni di gestione dello storage", "LdapSecondName": "Secondo nome", "LdapSendWelcomeLetter": "Invia una lettera di benvenuto", "LdapSendWelcomeLetterTooltip": "Se selezionato, tutti i nuovi utenti riceveranno una lettera di benvenuto. Disponibile solo quando l'attributo di posta è associato a LDAP.", @@ -66,6 +67,7 @@ "LdapUserDNTooltip": "Inserisci il nome distinto nella directory contenente gli utenti che desideri aggiungere.", "LdapUserFilter": "Filtro utente", "LdapUserFilterTooltip": "Utilizza il filtro di ricerca LDAP per selezionare gli utenti che devono essere importati.", + "LdapUserQuotaTooltip": "Per impostare una quota di archiviazione per l'utente, aggiungi un attributo nella directory LDAP (ad esempio, UsersQuotaLimit) e inserisci un valore intero per questo attributo. Verrà visualizzato il valore della quota in byte. Specifica solo il nome dell'attributo. Questo attributo sarà applicato solo durante la prima configurazione e potrà essere modificato manualmente in seguito nella sezione Account.", "LdapUsersType": "Tipo di utenti", "LdapUsersTypeInfo": "Gli utenti possono accedere solo alle stanze cui sono stati invitati dagli amministratori e non possono creare stanze, cartelle o file propri. Di seguito seleziona un altro tipo per fornire più autorizzazioni. Altrimenti puoi modificare manualmente la tipologia nella sezione Account.", "LdapUserTypeTooltip": "Tutti gli utenti verranno aggiunti a {{productName}} con il tipo selezionato." diff --git a/packages/client/public/locales/it/MainBar.json b/packages/client/public/locales/it/MainBar.json index deb6118bff..850d5dbd83 100644 --- a/packages/client/public/locales/it/MainBar.json +++ b/packages/client/public/locales/it/MainBar.json @@ -1,12 +1,31 @@ { + "ArchivedRoomsOrContact": "Puoi archiviare le stanze non necessarie o contatta l'amministratore di {{productName}} per aggiornare il piano tariffario.", + "ClickToUpgradeTariff": "<1>Clicca qui per fare l’upgrade del tuo piano tariffario.", "ConfirmEmailDescription": "Utilizza il collegamento fornito nell’e-mail di attivazione. Non hai ricevuto un’e-mail con il link di attivazione?", "ConfirmEmailHeader": "Ti preghiamo di attivare la tua e-mail ({{ email }}) per accedere alle funzionalità di {{productName}}.", + "ContactToUpgradeTariff": "Contatta l'amministratore del {{productName}} per effettuare l'upgrade del piano tariffario.", + "PersonalQuotaHeader": "Quota di memoria personale superata", + "PersonalQuotaHeaderForAdmins": "Quota di memoria per utente superata", "PersonalUserQuotaAdminsDescription": "Per caricare e creare nuovi file e cartelle, libera spazio su disco o gestisci la quota per utente nelle <1>Impostazioni di gestione dello spazio di archiviazione.", - "PersonalUserQuotaDescription": "Per caricare e creare nuovi file e cartelle, libera spazio su disco o contatta l'amministratore per aumentare la quota di archiviazione.", + "PersonalUserQuotaDescription": "Per caricare e creare nuovi file e cartelle, libera spazio su disco o contatta l'amministratore di {{productName}} per aumentare la quota di archiviazione.", + "RemoveFilesOrClickToUpgrade": "Rimuovi i file non necessari o <1>clicca qui per effettuare l'upgrade del tuo piano tariffario.", + "RemoveFilesOrContactToUpgrade": "Rimuovi i file non necessari o contatta l'amministratore di {{productName}} per effettuare l'upgrade del piano tariffario.", + "RemoveFilesOrContactToUpgradeQuota": "Rimuovi i file non necessari o contatta l'amministratore di {{productName}} per aumentare la quota di memoria.", "RequestActivation": "Richiedi l’attivazione ancora una volta", + "RoomQuotaDescription": "Puoi archiviare le stanze non necessarie o <1>clicca qui per trovare un piano tariffario più adatto al tuo {{productName}}.", "RoomQuotaHeader": "Sta per essere superato il limite di stanze: {{currentValue}} / {{maxValue}}", + "RoomQuotaHeaderLimit": "Il limite per il numero di stanze è stato raggiunto: {{currentValue}} / {{maxValue}}", + "StorageAndRoomHeader": "Il limite dello spazio di archiviazione e del numero di stanze sta per essere superato", + "StorageAndRoomLimitHeader": "È stato raggiunto il limite per lo spazio di archiviazione e il numero di stanze", "StorageAndUserHeader": "I limiti di spazio di archiviazione e amministratori/utenti esperti stanno per essere superati.", + "StorageAndUserTariffLimitHeader": "È stato raggiunto il limite per lo spazio di archiviazione e il numero di amministratori/power user", + "StorageLimitHeader": "Il limite per lo spazio di archiviazione è stato raggiunto: {{currentValue}} / {{maxValue}}", "StorageQuotaHeader": "Lo spazio di archiviazione sta per essere esaurito: {{currentValue}} / {{maxValue}}", "TenantCustomQuotaDescription": "Puoi rimuovere i file non necessari o modificare la quota nelle <1>mpostazioni di gestione dello spazio di archiviazione.", - "UserQuotaHeader": "Il numero di amministratori/utenti esperti sta per essere superato: {{currentValue}} / {{maxValue}}." + "UserQuotaHeader": "Il numero di amministratori/utenti esperti sta per essere superato: {{currentValue}} / {{maxValue}}.", + "UserTariffAlmostReached": "Una volta raggiunto il limite, tutti gli utenti verranno aggiunti con i soli permessi Utente. Per poter aggiungere altri amministratori/utenti, contatta l'amministratore di {{productName}} per effettuare l'upgrade del piano tariffario.", + "UserTariffAlmostReachedForAdmins": "Una volta raggiunto il limite, tutti gli utenti verranno aggiunti con i soli permessi Utente. Per poter aggiungere altri amministratori/utenti, <1>clicca qui per effettuare l'upgrade del tuo piano tariffario.", + "UserTariffLimitHeader": "Il numero massimo di amministratori/power user è stato raggiunto: {{currentValue}} / {{maxValue}}", + "UserTariffReached": "Tutti gli utenti verranno aggiunti con i soli permessi Utente. Per poter aggiungere altri amministratori/power user, contatta l'amministratore di {{productName}} per effettuare l'upgrade del piano tariffario.", + "UserTariffReachedForAdmins": "Tutti gli utenti verranno aggiunti con i soli permessi Utente. Per poter aggiungere altri amministratori/power user, <1>clicca qui per effettuare l'upgrade del piano tariffario." } diff --git a/packages/client/public/locales/it/PDFFormDialog.json b/packages/client/public/locales/it/PDFFormDialog.json index 86923ea167..8437d9657e 100644 --- a/packages/client/public/locales/it/PDFFormDialog.json +++ b/packages/client/public/locales/it/PDFFormDialog.json @@ -1,4 +1,5 @@ { + "PDFform": "Modulo PDF", "PDFFormEditDialogDescription": "Vuoi passare alla modalità di modifica del modulo? Tieni presente che il modulo non sarà più disponibile per la compilazione e dovrai fare nuovamente clic sul pulsante Inizia compilazione dopo la modifica per compilarlo.", "PDFFormEditDialogTitle": "Modifica del modulo", "PDFFormIsReadyToast": "Il modulo PDF <1>{{filename}} è pronto per essere compilato.", diff --git a/packages/client/public/locales/it/Payments.json b/packages/client/public/locales/it/Payments.json index 662f01d08b..2dcb7e564c 100644 --- a/packages/client/public/locales/it/Payments.json +++ b/packages/client/public/locales/it/Payments.json @@ -9,6 +9,9 @@ "BusinessSuggestion": "Personalizza il tuo piano {{planName}}", "BusinessTitle": "Stai utilizzando il piano {{planName}}", "BusinessUpdated": "Il piano {{planName}} è stato aggiornato", + "CannotCreateNewRoom": "La stanza non può essere creata", + "CannotCreatePaidUsers": "Non è possibile aggiungere utenti a pagamento", + "CannotRestoreRoom": "La stanza non può essere ripristinata", "ChooseNewPayer": "Scegli un nuovo Pagatore", "ChooseNewPlan": "Vuoi scegliere un nuovo piano tariffario?", "ContactUs": "Per questioni d’acquisto, contattaci all’indirizzo", @@ -22,12 +25,18 @@ "InvalidEmailWithoutActiveSubscription": "Ti consigliamo di scegliere un nuovo Pagatore che abbia accesso alle impostazioni di abbonamento in {{productName}}.", "InvalidEmailWithoutActiveSubscriptionByAdmin": "Ti consigliamo di contattare il proprietario di {{productName}} per scegliere un nuovo Pagatore.", "ManagerTypesDescription": "Tipi di account amministratore e relativi privilegi", + "NewRoomWillExceedLimit": "Non è possibile creare questa stanza perché è stato raggiunto il limite del numero di stanze incluse nel piano attuale.", + "NewUsersWillExceedMembersLimit": "Non è possibile aggiungere nuovi utenti a pagamento poiché è stato raggiunto il limite del numero di amministratori previsto dal piano attuale.", + "NotPossibleRoomRestoring": "Non è possibile ripristinare la stanza poiché è stato raggiunto il limite del numero di stanze incluse nel piano attuale.", + "NumberOfRoomsAccordingToTariff": "Numero di stanze in base al tuo piano tariffario: {{currentValue}}/{{maxValue}}", + "NumberOfUsersAccordingToTariff": "Numero di amministratori/power user in base al tuo piano tariffario: {{currentValue}}/{{maxValue}}", "Pay": "Paga", "Payer": "Pagatore", "PayerDescription": "Questo utente ha accesso ai dettagli di pagamento ed è l’unico utente che può modificare la quota ed effettuare pagamenti. Il proprietario di {{productName}}, così come lo stesso gestore dei pagamenti, può riassegnare il ruolo di responsabile dei pagamenti utilizzando il portale clienti Stripe.", "PriceCalculation": "Calcola il tuo prezzo", "RenewSubscription": "Rinnova la sottoscrizione al piano {{planName}}", "RoomManagerDescription": "Amministrazione e archiviazione delle stanze, invito e gestione degli utenti. È possibile assegnare più amministratori alla stanza.", + "RoomsQuotaAlmostExhausted": "La quota di stanze è quasi esaurita.", "StartupSuggestion": "Fai di più con il piano {{planName}}", "StartupTitle": "Stai utilizzando il piano {{planName}} gratuito", "StripeCustomerPortal": "vai al portale clienti Stripe", @@ -36,5 +45,6 @@ "UpgradePlan": "Aggiorna il piano", "UserNotFound": "L’utente <1>{{email}} non è stato trovato.", "UserNotFoundMatchingEmail": "Non siamo riusciti a trovare l'utente con l'e-mail Stripe corrispondente.", + "UsersQuotaAlmostExhausted": "La quota di utenti a pagamento è quasi esaurita.", "YourPrice": "Il tuo prezzo" } diff --git a/packages/client/public/locales/ja-JP/EmbeddingPanel.json b/packages/client/public/locales/ja-JP/EmbeddingPanel.json index a76182c7cc..823d35d560 100644 --- a/packages/client/public/locales/ja-JP/EmbeddingPanel.json +++ b/packages/client/public/locales/ja-JP/EmbeddingPanel.json @@ -1,11 +1,11 @@ { "CodeSuccessfullyCopied": "挿入するコードが正常にクリップボードにコピーされました", - "ContentRestricted": " コンテンツのコピー、ファイルのダウンロード、印刷が制限されています。", + "ContentRestricted": "コンテンツのコピー、ファイルのダウンロード、印刷が制限されています。", "DisplaySettings": "表示設定", "EmbeddingBarAllowList": "<1>許可リストに埋め込み用のウェブサイトURLを追加してください。", - "EmbeddingBarDescription": " 埋め込みは、JavaScript SDKの設定で{{productName}}管理者が指定したURLに対してのみ機能します。", + "EmbeddingBarDescription": "埋め込みは、JavaScript SDKの設定で{{productName}}管理者が指定したURLに対してのみ機能します。", "Height": "高さ", - "Link": " リンク", - "LinkProtectedWithPassword": " リンクはパスワードで保護されています。", + "Link": "リンク", + "LinkProtectedWithPassword": "リンクはパスワードで保護されています。", "Width": "幅" } diff --git a/packages/client/public/locales/ja-JP/EmptyView.json b/packages/client/public/locales/ja-JP/EmptyView.json index f2b29c67b8..f06ca0e537 100644 --- a/packages/client/public/locales/ja-JP/EmptyView.json +++ b/packages/client/public/locales/ja-JP/EmptyView.json @@ -1,22 +1,22 @@ { - "CollaboratorEmptyTitle": " ルームは空です。", - "CreateNewFileDescription": " ファイルやフォルダを作成して、ルームで作業を開始する", - "CreateNewFileTitle": " 新しいファイルを作成", - "CustomRoomEmptyTitle": " カスタムルームへようこそ", - "EmptyDescription": " クイックアクションで始めましょう:", - "FormFolderDefaultDescription": " PDF フォームをここにドロップするか、{{productName}} またはデバイスからアップロードしてください。", - "FormFolderDefaultTitle": " フォームはまだありません", - "FormFolderDefaultUserDescription": " 管理者がアップロードしたフォームは、ここに表示されます。", + "CollaboratorEmptyTitle": "ルームは空です。", + "CreateNewFileDescription": "ファイルやフォルダを作成して、ルームで作業を開始する", + "CreateNewFileTitle": "新しいファイルを作成", + "CustomRoomEmptyTitle": "カスタムルームへようこそ", + "EmptyDescription": "クイックアクションで始めましょう:", + "FormFolderDefaultDescription": "PDF フォームをここにドロップするか、{{productName}} またはデバイスからアップロードしてください。", + "FormFolderDefaultTitle": "フォームはまだありません", + "FormFolderDefaultUserDescription": "管理者がアップロードしたフォームは、ここに表示されます。", "FormFolderDefaultUserTitle": "このフォルダにはまだフォームはありません", "FormRoomEmptyTitle": "フォーム記入ルームへようこそ", - "InviteUsersOptionDescription": " ルームで共同編集するためのポータルメンバーの追加", - "InviteUsersOptionTitle": " 参加者の招待", - "ShareOptionDescription": " フォーム記入プロセスを開始するために、公開アクセスリンクをコピーするか、他のユーザーをルームに招待する。", - "ShareOptionTitle": " ルームの共有", - "UploadDeviceOptionDescription": " 個人デバイスからのファイルアップロード", - "UploadDeviceOptionTitle": " デバイスからのアップロード", + "InviteUsersOptionDescription": "ルームで共同編集するためのポータルメンバーの追加", + "InviteUsersOptionTitle": "参加者の招待", + "ShareOptionDescription": "フォーム記入プロセスを開始するために、公開アクセスリンクをコピーするか、他のユーザーをルームに招待する。", + "ShareOptionTitle": "ルームの共有", + "UploadDeviceOptionDescription": "個人デバイスからのファイルアップロード", + "UploadDeviceOptionTitle": "デバイスからのアップロード", "UploadDevicePDFFormOptionDescription": "お使いのデバイスからルームにPDFフォームをアップロードする。", - "UploadDevicePDFFormOptionTitle": " デバイスからのアップロード", + "UploadDevicePDFFormOptionTitle": "デバイスからのアップロード", "UploadFromPortalDescription": "ドキュメントまたはルームから任意のファイルをアップロード", "UploadFromPortalTitle": "{{productName}}からアップロード", "UploadPDFFormOptionDescription": "{{productName}}で利用可能なPDFフォームを選択し、ルームにアップロードする。", diff --git a/packages/client/public/locales/ja-JP/Files.json b/packages/client/public/locales/ja-JP/Files.json index 6eb423cbd2..2b7690aacf 100644 --- a/packages/client/public/locales/ja-JP/Files.json +++ b/packages/client/public/locales/ja-JP/Files.json @@ -48,7 +48,7 @@ "EditLink": "リンクの変更", "EditRoom": "ルームを編集する", "EditSharedLink": "共有リンクの編集", - "Embed": " 埋め込み", + "Embed": "埋め込み", "EmbeddingSettings": "埋め込み設定", "EmptyFile": "空きファイル", "EmptyFilterSubheadingText": "このフィルターで表示されるファイルはありません。", @@ -117,6 +117,7 @@ "OpenLocation": "オープンロケーション", "PasswordAccess": "パスワードアクセス", "PasswordLink": "リンクを保護するためにパスワードを追加します。", + "PasswordProtectedFiles": "保護されたファイルのパスワードを<0>入力してください", "PasswordSuccessfullyCopied": "パスワードのコピーに成功", "Pin": "固定", "PinToTop": "上部に固定", @@ -176,7 +177,7 @@ "VersionHistory": "バージョン履歴", "ViewList": "リスト", "ViewTiles": "タイル", - "WaitOperation": " 現在の操作が完了するまで少々お待ちください", + "WaitOperation": "現在の操作が完了するまで少々お待ちください", "WantLeaveRoom": "このまま退室の手続きしてもよろしいですか?ルーム管理者による新たな招待で再び参加することができます。", "WantToRestoreTheRoom": "このルームの全ての外部リンクは有効になり、その内容はリンクを持つ全ての人が利用できるようになります。このルームを復元しますか?", "WantToRestoreTheRooms": "復元されたルームの共有リンクは全て有効になり、ルームのリンクを持つ全員がその内容を利用できるようになります。ルームを復元しますか?", diff --git a/packages/client/public/locales/ja-JP/InfoPanel.json b/packages/client/public/locales/ja-JP/InfoPanel.json index 8d133b7f58..a5af196980 100644 --- a/packages/client/public/locales/ja-JP/InfoPanel.json +++ b/packages/client/public/locales/ja-JP/InfoPanel.json @@ -13,8 +13,8 @@ "FeedLocationLabelFrom": "「{{folderTitle}}」から", "FeedLocationRoomLabel": "「{{folderTitle}}」ルーム", "FeedLocationSectionLabel": "«{{folderTitle}}» セクション", - "FileConverted": " ファイルが変換されました。", - "FileCopied": " ファイルがコピーされました。", + "FileConverted": "ファイルが変換されました。", + "FileCopied": "ファイルがコピーされました。", "FileCopiedTo": "ファイルが「{{folderTitle}}」にコピーされました", "FileCreated": "ファイルが作成されました。", "FileDeleted": "ファイルが削除されました。", diff --git a/packages/client/public/locales/ja-JP/InviteDialog.json b/packages/client/public/locales/ja-JP/InviteDialog.json index 77ac105a48..ada171fd74 100644 --- a/packages/client/public/locales/ja-JP/InviteDialog.json +++ b/packages/client/public/locales/ja-JP/InviteDialog.json @@ -2,7 +2,7 @@ "AddManually": "手動で追加する", "AddManuallyDescriptionAccounts": "新規ユーザーをメールで{{productName}}に招待する", "AddManuallyDescriptionRoom": "既存の{{productName}}ユーザーを名前を使ってルームに追加したり、新しいユーザーをメールアドレスで招待することができます", - "EmailErrorMessage": "メールアドレスが有効ではありません。メールアドレスをクリックすると編集できます。", + "EmailErrorMessage": "メールアドレスが有効ではありません。メールアドレスをダブルクリックすると編集できます。", "GroupMaxAvailableRoleWarning": "グループは{{roleName}}役割を最大として、ルームに追加することができます。ただし、グループの追加に成功した後、グループ内の個々のユーザの役割を変更することができます。", "InvitationLanguage": "招待の言語", "InviteAccountSearchPlaceholder": "メールで招待する", diff --git a/packages/client/public/locales/ja-JP/Ldap.json b/packages/client/public/locales/ja-JP/Ldap.json index 91e4283678..1049bebb0c 100644 --- a/packages/client/public/locales/ja-JP/Ldap.json +++ b/packages/client/public/locales/ja-JP/Ldap.json @@ -1,6 +1,6 @@ { "LdapAddCertificateToStoreConfirmation": "この証明書を証明書ストアに追加して、ユーザーのインポートを続行しますか?", - "LdapAdvancedSettings": " 詳細設定", + "LdapAdvancedSettings": "詳細設定", "LdapAdvancedSettingsTooltip": "LDAPサーバーと同期するユーザー属性を選択してください。", "LdapAttributeMapping": "属性のマッピング", "LdapAuthenticationTooltip": "現在の Windows ユーザーに LDAP サーバー/Active Directory からの読み取り権限がない場合は、このオプションを有効にし、読み取り権限を持つ別のユーザーの資格情報を入力してください。", @@ -9,7 +9,7 @@ "LdapAvatar": "プロフィール写真", "LdapCertificateConfirm": "証明書の確認", "LdapDisclaimer": "ポータルユーザのメールアドレスは「メール属性」設定から取得されます。メール属性がない場合は、「ログイン属性 + @ + LDAPドメイン」で作成されます。このようなメールが存在しない場合、ユーザはポータル通知を受け取りません。", - "LdapEnableSSL": " SSLの有効化", + "LdapEnableSSL": "SSLの有効化", "LdapEnableSSLTooltip": "セキュア・ソケット・レイヤー(SSL)を使用することで、LDAPトラフィックの機密性と安全性を高めることができます。", "LdapEnableStartTls": "StartTLS を有効にする", "LdapEnableStartTlsTooltip": "StartTLSは、暗号化通信用に別のポートを使用する代わりに、プレーンテキスト接続を暗号化(TLSまたはSSL)接続にアップグレードする方法を提供します。", @@ -28,7 +28,7 @@ "LdapLoginAttribute": "ログイン属性", "LdapLoginAttributeTooltip": "ユーザーログインに対応するオブジェクト属性を入力してください。", "LdapLoginTooltip": "LDAPサーバー/Active Directoryの読み取り権限を持つログインユーザーを指定してください。", - "LdapMail": " メール", + "LdapMail": "メール", "LdapMobileSettingsDescription": "このオプションを使用して、ユーザーにオンブランドのエクスペリエンスを提供します。これらの設定はすべてのポータルに有効です。", "LdapMobileSyncDescription": "会社情報、外部リソースへのリンクの追加、オンラインオフィスのインターフェイス内に表示されるメールアドレスを指定します。", "LdapNextSync": "次の同期", @@ -36,6 +36,7 @@ "LdapPortNumber": "ポート番号", "LdapPortNumberTooltip": "LDAPサーバー/Active Directoryのポート番号を入力してください。", "LdapQuota": "ユーザーのストレージ容量", + "LdapQuotaInfo": "この属性を使用するには、<0>ストレージ管理設定でユーザー容量制限を有効にします。", "LdapSecondName": "姓", "LdapSendWelcomeLetter": "ウェルカムレターの送信", "LdapSendWelcomeLetterTooltip": "チェックした場合、すべての新規ユーザにウェルカムレターが送信されます。メール属性がLDAPにマッピングされている場合のみ有効です。", @@ -48,7 +49,7 @@ "LdapSettingsCertMalformed": "不正な証明書", "LdapSettingsCertUnrecognizedError": "認識できないエラー", "LdapSettingsCertUntrustedCa": "証明書を発行した認証局が信頼されていません", - "LdapSettingsCertUntrustedRoot": " 証明書を発行したルート認証局が信頼されていません", + "LdapSettingsCertUntrustedRoot": "証明書を発行したルート認証局が信頼されていません", "LdapSettingsIssuerName": "発行者名", "LdapSettingsSerialNumber": "シリアル番号", "LdapSettingsSubjectName": "サブジェクト名", @@ -66,6 +67,7 @@ "LdapUserDNTooltip": "追加するユーザを含むディレクトリの識別名を入力してください。", "LdapUserFilter": "ユーザーフィルタ", "LdapUserFilterTooltip": "検索LDAPフィルタを使用して、インポートするユーザーを選択してください。", + "LdapUserQuotaTooltip": "ユーザーのストレージ容量制限を設定するには、LDAPディレクトリに属性(例:UsersQuotaLimit)を追加し、この属性に整数値を入力します。これにより、容量制限の値がバイト単位で表示されます。ここでは、属性名のみを指定します。この属性は最初のセットアップ時にのみ適用され、後で「アカウント」セクションで手動で変更することができます。", "LdapUsersType": "ユーザータイプ", "LdapUsersTypeInfo": "ユーザーは管理者から招待されたルームにのみアクセスすることができ、独自のルーム、フォルダ、ファイルを作成することはできません。より多くの権限を与えるには、下の他のタイプを選択します。そうでなければ、アカウントセクションで手動でタイプを変更することができます。", "LdapUserTypeTooltip": "全てのユーザーは選択したタイプで{{productName}}に追加されます。" diff --git a/packages/client/public/locales/ja-JP/MainBar.json b/packages/client/public/locales/ja-JP/MainBar.json index 76d84473d2..3f97ebc3b1 100644 --- a/packages/client/public/locales/ja-JP/MainBar.json +++ b/packages/client/public/locales/ja-JP/MainBar.json @@ -1,12 +1,31 @@ { + "ArchivedRoomsOrContact": "不要なルームをアーカイブするか、{{productName}}の管理者に連絡して料金プランをアップグレードしてください。", + "ClickToUpgradeTariff": "<1>こちらをクリックすると、料金プランをアップグレードできます。", "ConfirmEmailDescription": "アクティベーションメールに記載されているリンクを使用してください。アクティベーション用リンクが記載されたメールが届いていませんか?", "ConfirmEmailHeader": "{{productName}}の機能を利用するために、メール({{ email }})を有効にしてください。", + "ContactToUpgradeTariff": "料金プランのアップグレードについては、{{productName}}の管理者にお問い合わせください。", + "PersonalQuotaHeader": "個人ストレージ容量制限を超過しました", + "PersonalQuotaHeaderForAdmins": "ユーザーごとのストレージ容量制限を超過しました", "PersonalUserQuotaAdminsDescription": "新しいファイルやフォルダをアップロードしたり作成したりするには、<1>ストレージ管理設定でディスク領域を解放するか、ユーザーごとに容量制限を管理してください。", - "PersonalUserQuotaDescription": "新しいファイルやフォルダをアップロードしたり作成したりするには、ディスクの空き容量を確保するか、管理者に連絡してストレージの容量制限を増やしてください。", + "PersonalUserQuotaDescription": "新しいファイルやフォルダをアップロードしたり作成したりするには、ディスクの空き容量を確保するか、{{productName}}の管理者に連絡してストレージの容量制限を増やしてください。", + "RemoveFilesOrClickToUpgrade": "不要なファイルを削除するか、または<1>こちらをクリックして料金プランをアップグレードしてください。", + "RemoveFilesOrContactToUpgrade": "不要なファイルを削除するか、{{productName}}の管理者に連絡して料金プランをアップグレードしてください。", + "RemoveFilesOrContactToUpgradeQuota": "不要なファイルを削除するか、ストレージ容量制限の増量を希望する場合は、{{productName}}の管理者までご連絡ください。", "RequestActivation": "もう一度アクティベーションを要求する", + "RoomQuotaDescription": "不要な部屋をアーカイブするか、<1>こちらをクリックして、お客様の{{productName}}に最適な価格プランを見つけることができます。", "RoomQuotaHeader": "このルームは、もうすぐ制限を超えます:{{currentValue}} / {{maxValue}}", + "RoomQuotaHeaderLimit": "ルームの数の上限に達しています:{{currentValue}} / {{maxValue}}", + "StorageAndRoomHeader": "ストレージ容量とルーム数の制限がもうすぐ超えそうです。", + "StorageAndRoomLimitHeader": "ストレージ容量とルーム数の上限に達しています。", "StorageAndUserHeader": "ストレージと管理者/パワーユーザーの制限を超えそうです。", + "StorageAndUserTariffLimitHeader": "ストレージ容量と管理者/パワーユーザーの人数が上限に達しています。", + "StorageLimitHeader": "ストレージ容量の上限に達しています:{{currentValue}} / {{maxValue}}", "StorageQuotaHeader": "ストレージのスペースは、もうすぐサイズ上限を超えます:{{currentValue}} / {{maxValue}}", "TenantCustomQuotaDescription": "不要ファイルを削除するか、<1>ストレージ管理設定で容量制限の変更ができます。", - "UserQuotaHeader": "管理者/パワーユーザー数を超えそうです:{{currentValue}} / {{maxValue}}" + "UserQuotaHeader": "管理者/パワーユーザー数を超えそうです:{{currentValue}} / {{maxValue}}", + "UserTariffAlmostReached": "上限に達すると、すべてのユーザーはユーザー権限のみで追加されます。管理者/パワーユーザーをさらに追加するには、{{productName}}管理者に連絡して料金プランをアップグレードしてください。", + "UserTariffAlmostReachedForAdmins": "上限に達すると、すべてのユーザーはユーザー権限のみで追加されます。管理者/パワーユーザーをさらに追加するには、料金プランをアップグレードする必要があります。アップグレードするには、<1>こちらをクリックしてください。", + "UserTariffLimitHeader": "管理者/パワーユーザーの人数の上限に達しています:{{currentValue}} / {{maxValue}}", + "UserTariffReached": "すべてのユーザーはユーザー権限のみで追加されます。管理者/パワーユーザーを追加するには、{{productName}}の管理者に連絡して料金プランをアップグレードしてください。", + "UserTariffReachedForAdmins": "すべてのユーザーはユーザー権限のみで追加されます。管理者/パワーユーザーを追加できるようにするには、料金プランをアップグレードするために、<1>こちらをクリックしてください。" } diff --git a/packages/client/public/locales/ja-JP/PDFFormDialog.json b/packages/client/public/locales/ja-JP/PDFFormDialog.json index 51f6231422..85abae3cfb 100644 --- a/packages/client/public/locales/ja-JP/PDFFormDialog.json +++ b/packages/client/public/locales/ja-JP/PDFFormDialog.json @@ -1,4 +1,5 @@ { + "PDFform": "PDFフォーム", "PDFFormEditDialogDescription": "フォーム編集モードに切り替えますか?この場合、フォームの入力はできなくなり、編集後に再度「記入開始」ボタンをクリックして入力する必要がありますのでご注意ください。", "PDFFormEditDialogTitle": "フォーム編集", "PDFFormIsReadyToast": "PDFフォーム<1>{{filename}}の記入準備が整いました。", diff --git a/packages/client/public/locales/ja-JP/Payments.json b/packages/client/public/locales/ja-JP/Payments.json index a8cad0d2f3..9c3d12479c 100644 --- a/packages/client/public/locales/ja-JP/Payments.json +++ b/packages/client/public/locales/ja-JP/Payments.json @@ -9,6 +9,9 @@ "BusinessSuggestion": "{{planName}}のプランをカスタマイズする", "BusinessTitle": "{{planName}}プランをご利用いただいています。", "BusinessUpdated": "{{planName}} プランがアップデートされました", + "CannotCreateNewRoom": "ルームを作成できません", + "CannotCreatePaidUsers": "有料ユーザーを追加できません", + "CannotRestoreRoom": "ルームを復元できません", "ChooseNewPayer": "新しい支払人を選択してください", "ChooseNewPlan": " 新しい料金プランの選択を希望されますか?", "ContactUs": "販売に関するご質問は、次のメールアドレスまでお問い合わせください:", @@ -22,12 +25,18 @@ "InvalidEmailWithoutActiveSubscription": "{{productName}}の購読設定にアクセスできる新しい支払人を選択することをお勧めします。", "InvalidEmailWithoutActiveSubscriptionByAdmin": "新しい支払人を選択するために、{{productName}}の所有者に連絡することをお勧めします。", "ManagerTypesDescription": "管理者アカウントの種類とその権限", + "NewRoomWillExceedLimit": "現在のプランではルームの数の上限に達しているため、このルームを作成できません。", + "NewUsersWillExceedMembersLimit": "現在のプランでは管理者の数の上限に達しているため、新しい有料ユーザーを追加できません。", + "NotPossibleRoomRestoring": "現在のプランではルームの数の上限に達しているため、このルームを復元できません。", + "NumberOfRoomsAccordingToTariff": "ご利用の料金プランのルーム数:{{currentValue}}/{{maxValue}}", + "NumberOfUsersAccordingToTariff": "ご利用の 料金プランの管理者/パワーユーザーの人数:{{currentValue}}/{{maxValue}}", "Pay": "支払", "Payer": "支払人", "PayerDescription": "このユーザーは、支払いの詳細へのアクセス権を持ち、クォータの調整と支払いを行うことができる唯一のユーザーです。{{productName}}の所有者だけでなく、支払いマネージャー自身も、Stripeカスタマーポータルを使用してペイイングマネージャーの役割を再割り当てすることができます。", "PriceCalculation": "価格を計算する", "RenewSubscription": "{{planName}}プランの契約を更新する", "RoomManagerDescription": "ルームの管理・アーカイブ、ユーザーの招待・管理。ルームに複数の管理者を割り当てることができます。", + "RoomsQuotaAlmostExhausted": "ルームのストレージ容量が残りわずかです。", "StartupSuggestion": "{{planName}}プランの詳細 ", "StartupTitle": "無料の {{planName}}プランをご利用いただいています。", "StripeCustomerPortal": "Stripeカスタマーポータルにアクセスする", @@ -36,5 +45,6 @@ "UpgradePlan": "プランのアップグレード", "UserNotFound": "<1>{{email}}ユーザーが見つかりません。", "UserNotFoundMatchingEmail": "我们无法找到与Stripe电子邮件匹配的用户。", + "UsersQuotaAlmostExhausted": "有料ユーザーのストレージ容量が残りわずかです。", "YourPrice": "価格" } diff --git a/packages/client/public/locales/ko-KR/Files.json b/packages/client/public/locales/ko-KR/Files.json index 4b195e1d20..58da6cacef 100644 --- a/packages/client/public/locales/ko-KR/Files.json +++ b/packages/client/public/locales/ko-KR/Files.json @@ -117,6 +117,7 @@ "OpenLocation": "위치 열기", "PasswordAccess": "비밀번호 액세스", "PasswordLink": "링크를 보호하려면 비밀번호를 추가하세요.", + "PasswordProtectedFiles": "계속하려면 보호된 파일의 <0>비밀번호를 입력하세요.", "PasswordSuccessfullyCopied": "비밀번호가 성공적으로 복사되었습니다", "Pin": "고정", "PinToTop": "상단에 고정", diff --git a/packages/client/public/locales/ko-KR/InviteDialog.json b/packages/client/public/locales/ko-KR/InviteDialog.json index a32b555c0d..4da2f82ab0 100644 --- a/packages/client/public/locales/ko-KR/InviteDialog.json +++ b/packages/client/public/locales/ko-KR/InviteDialog.json @@ -2,7 +2,7 @@ "AddManually": "수동으로 추가", "AddManuallyDescriptionAccounts": "이메일을 통해 개인적으로 {{productName}}에 새 사용자 초대", "AddManuallyDescriptionRoom": "이름으로 기존 {{productName}} 사용자를 방에 추가하거나 이메일을 통해 개인적으로 새 사용자를 초대하세요", - "EmailErrorMessage": "이메일 주소가 유효하지 않습니다. 이메일을 클릭하면 편집할 수 있습니다.", + "EmailErrorMessage": "이메일 주소가 유효하지 않습니다. 이메일을 더블클릭하여 편집할 수 있습니다.", "GroupMaxAvailableRoleWarning": "최대 {{roleName}} 역할로 룸에 그룹을 추가할 수 있습니다. 그러나 추가된 후에 그룹에 포함된 개별 사용자의 역할을 변경할 수 있습니다. ", "InvitationLanguage": "초대 언어", "InviteAccountSearchPlaceholder": "이메일로 사람들 초대", diff --git a/packages/client/public/locales/ko-KR/Ldap.json b/packages/client/public/locales/ko-KR/Ldap.json index 1147dff5ff..76f38e7018 100644 --- a/packages/client/public/locales/ko-KR/Ldap.json +++ b/packages/client/public/locales/ko-KR/Ldap.json @@ -36,6 +36,7 @@ "LdapPortNumber": "포트 번호", "LdapPortNumberTooltip": "LDAP 서버/Active Directory의 포트 번호를 입력하세요.", "LdapQuota": "사용자 할당량", + "LdapQuotaInfo": "이 속성을 사용하려면 <0>스토리지 관리 설정에서 사용자 할당량을 활성화하세요", "LdapSecondName": "두 번째 이름", "LdapSendWelcomeLetter": "웰컴 메일 전송", "LdapSendWelcomeLetterTooltip": "선택하면 모든 신규 사용자가 웰컴 메일을 받게 됩니다. 메일 속성이 LDAP에 매핑된 경우에만 이용할 수 있습니다.", @@ -66,6 +67,7 @@ "LdapUserDNTooltip": "추가하려는 사용자가 포함된 디렉토리의 고유 이름을 입력하세요.", "LdapUserFilter": "사용자 필터", "LdapUserFilterTooltip": "검색 LDAP 필터를 사용하여 가져오기 해야 하는 사용자를 선택하세요.", + "LdapUserQuotaTooltip": "사용자에 대한 스토리지 할당량을 설정하려면 LDAP 디렉토리에 속성을 추가하고(예: UsersQuotaLimit) 이 속성에 정수 값을 입력하세요. 할당량 값이 바이트로 표시됩니다. 이제 속성 이름을 지정하세요. 이 속성은 첫 번째 설정 중에만 적용되며 향후 계정 섹션에서 수동으로 변경할 수 있습니다.", "LdapUsersType": "사용자 유형", "LdapUsersTypeInfo": "사용자는 관리자가 초대한 룸에만 액세스할 수 있으며, 자체 룸, 폴더, 파일을 생성할 수 없습니다. 아래에서 다른 유형을 선택하여 더 많은 권한을 제공하세요. 아니면 계정 섹션에서 유형을 수동으로 변경할 수도 있습니다.", "LdapUserTypeTooltip": "모든 사용자가 선택한 유형으로 {{productName}}에 추가됩니다." diff --git a/packages/client/public/locales/ko-KR/MainBar.json b/packages/client/public/locales/ko-KR/MainBar.json index 94d84e2c16..9911501552 100644 --- a/packages/client/public/locales/ko-KR/MainBar.json +++ b/packages/client/public/locales/ko-KR/MainBar.json @@ -1,12 +1,31 @@ { + "ArchivedRoomsOrContact": "불필요한 룸을 아카이브하거나 {{productName}} 관리자에게 연락하여 요금제를 업그레이드하세요.", + "ClickToUpgradeTariff": "<1>여기를 클릭하여 요금제를 업그레이드하세요.", "ConfirmEmailDescription": "활성화 이메일에 첨부된 링크를 사용하세요. 활성화 링크가 첨부된 이메일을 받지 못하셨나요?", "ConfirmEmailHeader": "{{productName}} 기능에 액세스하려면 ({{ email }})이메일을 활성화하세요.", + "ContactToUpgradeTariff": "{{productName}} 관리자에게 연락하여 요금제를 업그레이드하세요.", + "PersonalQuotaHeader": "개인 스토리지 할당량을 초과했습니다", + "PersonalQuotaHeaderForAdmins": "사용자당 스토리지 할당량을 초과했습니다", "PersonalUserQuotaAdminsDescription": "새 파일 및 폴더를 업로드하거나 생성하려면 디스크 공간을 확보하거나 <1>스토리지 관리 설정에서 사용자당 할당량을 관리하세요.", - "PersonalUserQuotaDescription": "새 파일 및 폴더를 업로드하거나 생성하려면 디스크 공간을 확보하거나 스토리지 할당량을 늘리세요.", + "PersonalUserQuotaDescription": "새 파일 및 폴더를 업로드하거나 생성하려면 디스크 공간을 확보하거나 {{productName}} 스토리지 할당량을 늘리세요.", + "RemoveFilesOrClickToUpgrade": "불필요한 파일을 삭제하거나 <1>여기를 클릭하여 요금제를 업그레이드하세요.", + "RemoveFilesOrContactToUpgrade": "불필요한 파일을 삭제하거나 {{productName}} 관리자에게 연락하여 요금제를 업그레이드하세요.", + "RemoveFilesOrContactToUpgradeQuota": "불필요한 파일을 삭제하거나 {{productName}} 관리자에게 연락하여 스토리지 할당량을 늘리세요. ", "RequestActivation": "다시 한 번 활성화 요청", + "RoomQuotaDescription": "불필요한 룸을 아카이브하거나 <1>여기를 클릭하여 {{productName}}에 더 적합한 요금제를 찾아보세요.", "RoomQuotaHeader": "방이 곧 초과될 예정입니다: {{currentValue}} / {{maxValue}}", + "RoomQuotaHeaderLimit": "룸 수가 한도에 도달했습니다: {{currentValue}} / {{maxValue}}", + "StorageAndRoomHeader": "스토리지 공간 및 룸 수가 한도를 초과하려고 합니다", + "StorageAndRoomLimitHeader": "스토리지 공간 및 룸 수가 한도에 도달했습니다", "StorageAndUserHeader": "곧 저장 용량 및 관리자/고급 사용자 수 한도를 초과하게 됩니다.", + "StorageAndUserTariffLimitHeader": "스토리지 공간 및 관리자/파워 유저 수가 한도에 도달했습니다", + "StorageLimitHeader": "스토리지 공간이 한도에 도달했습니다: {{currentValue}} / {{maxValue}}", "StorageQuotaHeader": "저장 공간 용량이 곧 초과될 예정입니다: {{currentValue}} / {{maxValue}}", "TenantCustomQuotaDescription": "<1>스토리지 관리 설정에서 할당량을 변경하거나 불필요한 파일을 삭제하세요.", - "UserQuotaHeader": "곧 관리자/고급 사용자 수 한도를 초과하게 됩니다: {{currentValue}} / {{maxValue}}." + "UserQuotaHeader": "곧 관리자/고급 사용자 수 한도를 초과하게 됩니다: {{currentValue}} / {{maxValue}}.", + "UserTariffAlmostReached": "한도에 도달하면 모든 사용자가 사용자 권한으로만 추가됩니다. 관리자/파워 유저를 더 추가하려면 {{productName}} 관리자에게 연락하여 요금제를 업그레이드하세요.", + "UserTariffAlmostReachedForAdmins": "한도에 도달하면 모든 사용자가 사용자 권한으로만 추가됩니다. 관리자/파워 유저를 더 추가하려면 <1>여기를 클릭하여 요금제를 업그레이드하세요.", + "UserTariffLimitHeader": "관리자/파워 유저 수가 한도에 도달했습니다: {{currentValue}} / {{maxValue}}", + "UserTariffReached": "모든 사용자가 사용자 권한으로만 추가됩니다. 관리자/파워 유저를 더 추가하려면 {{productName}} 관리자에게 연락하여 요금제를 업그레이드하세요.", + "UserTariffReachedForAdmins": "모든 사용자가 사용자 권한으로만 추가됩니다. 관리자/파워 유저를 더 추가하려면 <1>여기를 클릭하여 요금제를 업그레이드하세요." } diff --git a/packages/client/public/locales/ko-KR/PDFFormDialog.json b/packages/client/public/locales/ko-KR/PDFFormDialog.json index 49c1b8e2cc..a58ff85176 100644 --- a/packages/client/public/locales/ko-KR/PDFFormDialog.json +++ b/packages/client/public/locales/ko-KR/PDFFormDialog.json @@ -1,4 +1,5 @@ { + "PDFform": "PDF 양식", "PDFFormEditDialogDescription": "양식 편집 모드로 전환하시겠습니까? 해당 양식은 더 이상 작성할 수 없으며 양식을 작성하려면 편집 후 작성 시작 버튼을 다시 클릭해야 한다는 점을 참고하세요.", "PDFFormEditDialogTitle": "양식 편집", "PDFFormIsReadyToast": "<1>{{filename}} PDF 양식을 작성할 준비가 되었습니다.", diff --git a/packages/client/public/locales/ko-KR/Payments.json b/packages/client/public/locales/ko-KR/Payments.json index e7ce3db788..693ee6b160 100644 --- a/packages/client/public/locales/ko-KR/Payments.json +++ b/packages/client/public/locales/ko-KR/Payments.json @@ -9,6 +9,9 @@ "BusinessSuggestion": "{{planName}} 요금제를 사용자 지정하세요", "BusinessTitle": "{{planName}} 요금제를 사용 중입니다", "BusinessUpdated": "{{planName}} 요금제가 업데이트되었습니다", + "CannotCreateNewRoom": "룸을 생성할 수 없습니다", + "CannotCreatePaidUsers": "유료 사용자를 추가할 수 없습니다", + "CannotRestoreRoom": "룸을 복원할 수 없습니다", "ChooseNewPayer": "새 지불자 선택", "ChooseNewPlan": "새로운 요금제를 선택하시겠습니까?", "ContactUs": "판매 관련 질문은 다음 주소로 문의하세요:", @@ -22,12 +25,18 @@ "InvalidEmailWithoutActiveSubscription": "{{productName}}에서 구독 설정에 액세스할 새로운 지불자를 선택할 것을 추천드립니다.", "InvalidEmailWithoutActiveSubscriptionByAdmin": "{{productName}} 소유자에게 연락하여 새로운 지불자를 선택할 것을 추천드립니다.", "ManagerTypesDescription": "주소 관리자 계정 유형 및 특권", + "NewRoomWillExceedLimit": "현재 사용 중인 요금제에 포함된 룸 수가 한도에 도달했기 때문에 이 룸을 생성할 수 없습니다.", + "NewUsersWillExceedMembersLimit": "현재 사용 중인 요금제에 포함된 관리자 수가 한도에 도달했기 때문에 새로운 유로 사용자를 추가할 수 없습니다.", + "NotPossibleRoomRestoring": "현재 사용 중인 요금제에 포함된 룸 수가 한도에 도달했기 때문에 이 룸을 복원할 수 없습니다.", + "NumberOfRoomsAccordingToTariff": "요금제에 따른 룸 수: {{currentValue}}/{{maxValue}}", + "NumberOfUsersAccordingToTariff": "요금제에 따른 관리자/파워 유저 수: {{currentValue}}/{{maxValue}}", "Pay": "지불", "Payer": "지불자", "PayerDescription": "이 사용자는 결제 세부 정보에 액세스할 수 있으며 할당량을 조정하고 결제할 수 있는 유일한 사용자입니다. {{productName}} 소유자와 결제 관리자는 Stripe 고객 포털을 사용하여 결제 관리자 역할을 재할당할 수 있습니다.", "PriceCalculation": "요금 계산", "RenewSubscription": "{{planName}} 요금제 구독 갱신", "RoomManagerDescription": "방 관리 및 아카이브, 사용자 초대 및 관리. 여러 관리자를 방에 할당할 수 있습니다.", + "RoomsQuotaAlmostExhausted": "룸 할당량이 거의 소진되었습니다.", "StartupSuggestion": "{{planName}} 요금제로 더 많은 기능을 이용하세요", "StartupTitle": "무료 {{planName}} 요금제를 사용 중입니다", "StripeCustomerPortal": "Stripe 고객 포털로 이동", @@ -36,5 +45,6 @@ "UpgradePlan": "요금제 업그레이드", "UserNotFound": "<1>{{email}} 사용자를 찾지 못했습니다.", "UserNotFoundMatchingEmail": "Stripe 이메일이 일치하는 사용자를 찾을 수 없습니다.", + "UsersQuotaAlmostExhausted": "유료 사용자 할당량이 거의 소진되었습니다.", "YourPrice": "내 요금" } diff --git a/packages/client/public/locales/lo-LA/InviteDialog.json b/packages/client/public/locales/lo-LA/InviteDialog.json index 62c737c718..ba90fbeb3d 100644 --- a/packages/client/public/locales/lo-LA/InviteDialog.json +++ b/packages/client/public/locales/lo-LA/InviteDialog.json @@ -2,7 +2,7 @@ "AddManually": "ເພີ່ມດ້ວຍຕົນເອງ", "AddManuallyDescriptionAccounts": "ເຊີນຜູ້ໃຊ້ໃໝ່ເຂົ້າມາ {{productName}} ສ່ວນຕົວຜ່ານທາງອີເມວ", "AddManuallyDescriptionRoom": "ເພີ່ມ ຜູ້ໃຊ້ {{productName}} ທີ່ມີຢູ່ແລ້ວ ໃສ່ຫ້ອງໂດຍໃຊ້ຊື່ ຫຼືເຊີນຜູ້ໃຊ້ໃໝ່ດ້ວຍຕົນເອງຜ່ານອີເມວ", - "EmailErrorMessage": "ທີ່ຢູ່ອີເມວບໍ່ຖືກຕ້ອງ. ທ່ານສາມາດແກ້ໄຂອີເມວໂດຍການຄລິກໃສ່ມັນ.", + "EmailErrorMessage": "ທີ່ຢູ່ອີເມວບໍ່ຖືກຕ້ອງ. ທ່ານສາມາດແກ້ໄຂອີເມວໂດຍການຄລິກສອງຄັ້ງໃສ່ມັນ.", "InvitationLanguage": "ພາສາເຊີນ", "InviteAccountSearchPlaceholder": "ເຊີນຄົນທາງອີເມວ", "InviteRoomSearchPlaceholder": "ເຊີນຄົນດ້ວຍຊື່ ຫຼືອີເມລ໌", diff --git a/packages/client/public/locales/lo-LA/MainBar.json b/packages/client/public/locales/lo-LA/MainBar.json index b86af07e3c..40f0f37d95 100644 --- a/packages/client/public/locales/lo-LA/MainBar.json +++ b/packages/client/public/locales/lo-LA/MainBar.json @@ -2,7 +2,7 @@ "ConfirmEmailDescription": "ໃຊ້ລິ້ງທີ່ລະບຸໄວ້ໃນອີເມວການເປີດໃຊ້ງານ. ຍັງບໍ່ໄດ້ຮັບອີເມວທີ່ມີລິ້ງເປີດໃຊ້ງານບໍ?", "ConfirmEmailHeader": "ກະລຸນາເປີດໃຊ້ອີເມວ ({{ email }}) ຂອງທ່ານເພື່ອເຂົ້າເຖິງ ຄຸນສົມບັດ {{productName}}.", "PersonalUserQuotaAdminsDescription": "ເພື່ອອັບໂຫລດ ແລະສ້າງໄຟລ໌ ແລະໂຟນເດີໃໝ່, ກະລຸນາສ້າງພື້ນທີ່ຫວ່າງໃນດິສກ໌ ຫຼືຈັດການໂຄຕ້າຕໍ່ຜູ້ໃຊ້ໃນ <1>ການຕັ້ງຄ່າການຈັດການບ່ອນເກັບຂໍ້ມູນ.", - "PersonalUserQuotaDescription": "ເພື່ອອັບໂຫຼດ ແລະສ້າງໄຟລ໌ ແລະໂຟນເດີ້ໃໝ່, ກະລຸນາສ້າງພື້ນທີ່ຫວ່າງໃນດິສກ໌ ຫຼືຕິດຕໍ່ຜູ້ເບິ່ງແຍງລະບົບເພື່ອເພີ່ມໂຄຕ້າບ່ອນຈັດເກັບຂໍ້ມູນ.", + "PersonalUserQuotaDescription": "ເພື່ອອັບໂຫຼດ ແລະສ້າງໄຟລ໌ ແລະໂຟນເດີ້ໃໝ່, ກະລຸນາສ້າງພື້ນທີ່ຫວ່າງໃນດິສກ໌ ຫຼືຕິດຕໍ່ຜູ້ເບິ່ງແຍງລະບົບ {{productName}} ເພື່ອເພີ່ມໂຄຕ້າບ່ອນຈັດເກັບຂໍ້ມູນ", "RequestActivation": "ຮ້ອງຂໍການເປີດໃຊ້ອີກເທື່ອຫນຶ່ງ", "RoomQuotaHeader": "ຫ້ອງກຳລັງຈະເກີນ: {{ currentValue }} / {{ maxValue }}", "StorageAndUserHeader": "ບ່ອນຈັດເກັບຂໍ້ມູນ ແລະ ຜູ້ເບິ່ງແຍງລະບົບ/ຜູ້ໃຊ້ກຳລັງຈະເກີນຂີດຈຳກັດ.", diff --git a/packages/client/public/locales/lv/Files.json b/packages/client/public/locales/lv/Files.json index 19b9d50cc2..3aebd818db 100644 --- a/packages/client/public/locales/lv/Files.json +++ b/packages/client/public/locales/lv/Files.json @@ -117,6 +117,7 @@ "OpenLocation": "Atvērt atrašanās vietu", "PasswordAccess": "Piekļuve parolei", "PasswordLink": "Pievienojiet paroli, lai aizsargātu savu saiti.", + "PasswordProtectedFiles": "Lai faili turpinātu būt aizsargāti, <0>ievadiet paroli", "PasswordSuccessfullyCopied": "Parole veiksmīgi nokopēta", "Pin": "Piespraust", "PinToTop": "Piespraust augšā", diff --git a/packages/client/public/locales/lv/InviteDialog.json b/packages/client/public/locales/lv/InviteDialog.json index f724fbcb58..c8da7856dc 100644 --- a/packages/client/public/locales/lv/InviteDialog.json +++ b/packages/client/public/locales/lv/InviteDialog.json @@ -2,7 +2,7 @@ "AddManually": "Pievienot manuāli", "AddManuallyDescriptionAccounts": "Uzaicināt jaunus lietotājus uz {{productName}} personīgi pa e-pastu", "AddManuallyDescriptionRoom": "Pievienot telpā esošos {{productName}} 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ā.", + "EmailErrorMessage": "E- pasta adrese ir nederīga. Jūs varat rediģēt e-pastu, veicot dubultklikšķi uz tā.", "GroupMaxAvailableRoleWarning": "Grupas var pievienot telpai ar maksimālo {{roleName}} lomu. Tomēr jūs varat mainīt atsevišķu lietotāju lomu grupā pēc tam, kad tā ir veiksmīgi pievienota.", "InvitationLanguage": "Uzaicinājuma valoda", "InviteAccountSearchPlaceholder": "Uzaicināt personas pa e-pastu", diff --git a/packages/client/public/locales/lv/Ldap.json b/packages/client/public/locales/lv/Ldap.json index d704d2e559..020c4911b8 100644 --- a/packages/client/public/locales/lv/Ldap.json +++ b/packages/client/public/locales/lv/Ldap.json @@ -36,6 +36,7 @@ "LdapPortNumber": "Porta numurs:", "LdapPortNumberTooltip": "Ievadiet sava LDAP servera/Active Directory porta numuru.", "LdapQuota": "Lietotāju kvota", + "LdapQuotaInfo": "Lai varētu izmantot šo atribūtu, sadaļā <0>Krātuves pārvaldības iestatījumi iespējojiet lietotāja kvotu", "LdapSecondName": "Uzvārds", "LdapSendWelcomeLetter": "Sūtīt sveiciena vēstuli", "LdapSendWelcomeLetterTooltip": "Ja atzīmēts, visi jaunie lietotāji saņems sveiciena vēstuli. Pieejams tikai tad, ja pasta atribūts ir kartēts LDAP.", @@ -66,6 +67,7 @@ "LdapUserDNTooltip": "Ievadiet atšķirīgo nosaukumu direktorijā, kurā ir lietotāji, kurus vēlaties pievienot.", "LdapUserFilter": "Lietotāju filtrs", "LdapUserFilterTooltip": "Izmantojiet meklēšanas LDAP filtru, lai atlasītu importējamos lietotājus.", + "LdapUserQuotaTooltip": "Lai iestatītu lietotāja krātuves kvotu, pievienojiet atribūtu LDAP direktorijā (piemēram, UsersQuotaLimit) un ievadiet šim atribūtam veselu skaitļa vērtību. Tas parādīs kvotas vērtību baitos. Šeit norādiet tikai atribūta nosaukumu. Šis atribūts tiks lietots tikai pirmās iestatīšanas laikā, un vēlāk to varēs mainīt manuāli sadaļā Konti.", "LdapUsersType": "Lietotāju veids", "LdapUsersTypeInfo": "Lietotāji var piekļūt tikai tām telpām, uz kurām viņus uzaicina administratori, un nevar izveidot savas telpas, mapes vai failus. Atlasiet citu veidu zemāk, lai nodrošinātu vairāk atļauju. Pretējā gadījumā veidu varat mainīt manuāli sadaļā Konti.", "LdapUserTypeTooltip": "Visi lietotāji tiks pievienoti {{productName}} ar atlasīto tipu." diff --git a/packages/client/public/locales/lv/MainBar.json b/packages/client/public/locales/lv/MainBar.json index fcfbd557db..33b828a992 100644 --- a/packages/client/public/locales/lv/MainBar.json +++ b/packages/client/public/locales/lv/MainBar.json @@ -1,12 +1,31 @@ { + "ArchivedRoomsOrContact": "Varat arhivēt nevajadzīgās telpas vai sazināties ar {{productName}} administratoru, lai jauninātu tarifu plānu.", + "ClickToUpgradeTariff": "<1>Noklikšķiniet šeit, lai jauninātu savu tarifu plānu.", "ConfirmEmailDescription": "Izmantojiet aktivizēšanas e-pasta ziņojumā norādīto saiti. Vai neesat saņēmis e-pasta ziņojumu ar aktivizēšanas saiti?", "ConfirmEmailHeader": "Lūdzu, aktivizējiet savu e-pastu ({{ email }}), lai piekļūtu {{productName}} funkcijām.", + "ContactToUpgradeTariff": "Sazinieties ar {{productName}} administratoru, lai jauninātu tarifu plānu.", + "PersonalQuotaHeader": "Ir pārsniegta jūsu personīgās krātuves kvota", + "PersonalQuotaHeaderForAdmins": "Ir pārsniegta krātuves kvota vienam lietotājam", "PersonalUserQuotaAdminsDescription": "Lai augšupielādētu un izveidotu jaunus failus un mapes, atbrīvojiet vietu diskā vai pārvaldiet kvotu katram lietotājam <1>Krātuves pārvaldības iestatījumos.", - "PersonalUserQuotaDescription": "Lai augšupielādētu un izveidotu jaunus failus un mapes, atbrīvojiet vietu diskā vai sazinieties ar administratoru, lai palielinātu krātuves kvotu.", + "PersonalUserQuotaDescription": "Lai augšupielādētu un izveidotu jaunus failus un mapes, atbrīvojiet vietu diskā vai sazinieties ar administratoru {{productName}}, lai palielinātu krātuves kvotu.", + "RemoveFilesOrClickToUpgrade": "Noņemiet nevajadzīgos failus vai <1>noklikšķiniet šeit, lai jauninātu tarifu plānu.", + "RemoveFilesOrContactToUpgrade": "Noņemiet nevajadzīgos failus vai sazinieties ar {{productName}} administratoru, lai jauninātu tarifu plānu.", + "RemoveFilesOrContactToUpgradeQuota": "Noņemiet nevajadzīgos failus vai sazinieties ar {{productName}} administratoru, lai palielinātu krātuves kvotu.", "RequestActivation": "Vēreiz pieprasīt aktivizāciju", + "RoomQuotaDescription": "Varat arhivēt nevajadzīgās telpas vai <1>noklikšķināt šeit, lai atrastu piemērotāku cenu plānu savam {{productName}}.", "RoomQuotaHeader": "Tūlīt tiks pārsniegtas telpas: {{currentValue}} / {{maxValue}}", + "RoomQuotaHeaderLimit": "Ir sasniegts telpu skaita ierobežojums: {{currentValue}}/{{maxValue}}", + "StorageAndRoomHeader": "Uzglabāšanas vietu un telpu skaita ierobežojums drīzumā tiks pārsniegts", + "StorageAndRoomLimitHeader": "Ir sasniegts uzglabāšanas vietas un telpu skaita ierobežojums", "StorageAndUserHeader": "Tūlīt tiks pārsniegti krātuves un administratoru/prasmīgo lietotāju ierobežojumi.", + "StorageAndUserTariffLimitHeader": "Ir sasniegts krātuves vietas un administratoru/prasmīgo lietotāju skaita ierobežojums", + "StorageLimitHeader": "Ir sasniegts krātuves vietas ierobežojums: {{currentValue}}/{{maxValue}}", "StorageQuotaHeader": "Tūlīt tiks pārsniegts krātuves vietas apjoms: {{currentValue}} / {{maxValue}}", "TenantCustomQuotaDescription": "Jūs varat noņemt nevajadzīgos failus vai mainīt kvotu <1>Krātuves pārvaldības iestatījumos.", - "UserQuotaHeader": "Tūlīt tiks pārsniegts administratoru/prasmīgo lietotāju skaits:{{currentValue}}/{{maxValue}}." + "UserQuotaHeader": "Tūlīt tiks pārsniegts administratoru/prasmīgo lietotāju skaits:{{currentValue}}/{{maxValue}}.", + "UserTariffAlmostReached": "Kad limits ir sasniegts, visi lietotāji tiks pievienoti tikai ar lietotāja atļaujām. Lai varētu pievienot citus administratorus/prasmīgos lietotājus, sazinieties ar {{productName}} administratoru, lai jauninātu tarifu plānu.", + "UserTariffAlmostReachedForAdmins": "Kad limits ir sasniegts, visi lietotāji tiks pievienoti tikai ar lietotāja atļaujām. Lai varētu pievienot citus administratorus/prasmīgos lietotājus, <1>noklikšķiniet šeit, lai jauninātu savu tarifu plānu.", + "UserTariffLimitHeader": "Ir sasniegts administratoru/prasmīgo lietotāju skaita ierobežojums: {{currentValue}}/{{maxValue}}", + "UserTariffReached": "Visi lietotāji tiks pievienoti tikai ar lietotāja atļaujām. Lai varētu pievienot citus administratorus/prasmīgos lietotājus, sazinieties ar {{productName}} administratoru, lai jauninātu tarifu plānu.", + "UserTariffReachedForAdmins": "Visi lietotāji tiks pievienoti tikai ar lietotāja atļaujām. Lai varētu pievienot citus administratorus/prasmīgos lietotājus, <1>noklikšķiniet šeit, lai jauninātu savu tarifu plānu." } diff --git a/packages/client/public/locales/lv/PDFFormDialog.json b/packages/client/public/locales/lv/PDFFormDialog.json index 2aa21ecae7..e9a73176bc 100644 --- a/packages/client/public/locales/lv/PDFFormDialog.json +++ b/packages/client/public/locales/lv/PDFFormDialog.json @@ -1,4 +1,5 @@ { + "PDFform": "PDF veidlapa", "PDFFormEditDialogDescription": "Vai vēlaties pārslēgties uz veidlapas rediģēšanas režīmu? Ņemiet vērā, ka veidlapa vairs nebūs pieejama aizpildīšanai, un pēc rediģēšanas jums būs vēlreiz jānoklikšķina uz pogas Sākt aizpildīšanu, lai to aizpildītu.", "PDFFormEditDialogTitle": "Veidlapas rediģēšana", "PDFFormIsReadyToast": "PDF veidlapa <1>{{filename}} ir gatava aizpildīšanai.", diff --git a/packages/client/public/locales/lv/Payments.json b/packages/client/public/locales/lv/Payments.json index 5bc40a8189..cf69e08c89 100644 --- a/packages/client/public/locales/lv/Payments.json +++ b/packages/client/public/locales/lv/Payments.json @@ -9,6 +9,9 @@ "BusinessSuggestion": "Pielāgot savu {{planName}} plānu", "BusinessTitle": "Jūs izmantojat {{planName}} plānu", "BusinessUpdated": "{{planName}} plāns atjaunināts", + "CannotCreateNewRoom": "Telpu nevar izveidot", + "CannotCreatePaidUsers": "Maksas lietotājus nevar pievienot", + "CannotRestoreRoom": "Telpu nevar atjaunot", "ChooseNewPayer": "Izvēlieties jaunu maksātāju", "ChooseNewPlan": "Vai vēlaties izvēlēties jaunu cenu plānu?", "ContactUs": "Ja ir jautājumi par pārdošanu, sazinieties ar mums pa", @@ -22,12 +25,18 @@ "InvalidEmailWithoutActiveSubscription": "Mēs iesakām izvēlēties jaunu maksātāju, kurš saņem piekļuvi abonēšanas iestatījumiem {{productName}}.", "InvalidEmailWithoutActiveSubscriptionByAdmin": "Mēs iesakām sazināties ar {{productName}} īpašnieku, lai izvēlētos jaunu maksātāju.", "ManagerTypesDescription": "Administratora kontu veidi un to privilēģijas", + "NewRoomWillExceedLimit": "Šīs telpas izveide nav iespējama, jo ir sasniegts jūsu pašreizējā plānā iekļauto telpu skaita ierobežojums.", + "NewUsersWillExceedMembersLimit": "Nav iespējams pievienot jaunus maksas lietotājus, jo ir sasniegts jūsu pašreizējā plānā iekļauto administratoru skaita ierobežojums.", + "NotPossibleRoomRestoring": "Nav iespējams atjaunot šo telpu, jo ir sasniegts jūsu pašreizējā plānā iekļauto telpu skaita ierobežojums.", + "NumberOfRoomsAccordingToTariff": "Telpu skaits saskaņā ar jūsu tarifu plānu: {{currentValue}}/{{maxValue}}", + "NumberOfUsersAccordingToTariff": "Administratoru/prasmīgo lietotāju skaits saskaņā ar jūsu tarifu plānu: {{currentValue}}/{{maxValue}}", "Pay": "Maksāt", "Payer": "Maksātājs", "PayerDescription": "Šim lietotājam ir piekļuve maksājuma informācijai, un tas ir vienīgais lietotājs, kas var pielāgot kvotu un veikt maksājumus. {{productName}} īpašnieks, kā arī pats maksājumu pārvaldnieks var atkārtoti piešķirt maksājumu pārvaldnieka lomu, izmantojot Stripe klientu portālu.", "PriceCalculation": "Aprēķināt cenu", "RenewSubscription": "Atjaunot {{planName}} plāna abonementu", "RoomManagerDescription": "Telpu administrēšana un arhivēšana, lietotāju uzaicināšana un pārvaldība. Telpai var piešķirt vairākus administratorus.", + "RoomsQuotaAlmostExhausted": "Telpu kvota ir gandrīz izsmelta.", "StartupSuggestion": "Paveiciet vairāk ar {{planName}} plānu", "StartupTitle": "Jūs izmantojat bezmaksas {{planName}} plānu", "StripeCustomerPortal": "doties uz Stripe klientu portālu", @@ -36,5 +45,6 @@ "UpgradePlan": "Jaunināt plānu", "UserNotFound": "Lietotājs <1>{{email}} nav atrasts.", "UserNotFoundMatchingEmail": "Nevarēja atrast lietotāju ar atbilstošo Stripe e-pastu.", + "UsersQuotaAlmostExhausted": "Maksas lietotāju kvota ir gandrīz izsmelta.", "YourPrice": "Jūsu cena" } diff --git a/packages/client/public/locales/nl/Files.json b/packages/client/public/locales/nl/Files.json index 70fbe50941..bfd4e2feb8 100644 --- a/packages/client/public/locales/nl/Files.json +++ b/packages/client/public/locales/nl/Files.json @@ -117,6 +117,7 @@ "OpenLocation": "Open locatie", "PasswordAccess": "Wachtwoord toegang", "PasswordLink": "Voeg een wachtwoord toe om uw link te beschermen.", + "PasswordProtectedFiles": "Voer <0>een wachtwoord in voor de beveiligde bestanden om verder te gaan", "PasswordSuccessfullyCopied": "Wachtwoord succesvol gekopieerd", "Pin": "Pinnen", "PinToTop": "Bovenaan pinnen", diff --git a/packages/client/public/locales/nl/InviteDialog.json b/packages/client/public/locales/nl/InviteDialog.json index ee17be12e4..ee333e8ff0 100644 --- a/packages/client/public/locales/nl/InviteDialog.json +++ b/packages/client/public/locales/nl/InviteDialog.json @@ -2,7 +2,7 @@ "AddManually": "Handmatig toevoegen", "AddManuallyDescriptionAccounts": "Nodig nieuwe gebruikers persoonlijk per e-mail uit voor {{productName}}", "AddManuallyDescriptionRoom": "Bestaande {{productName}} 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.", + "EmailErrorMessage": "E-mailadres niet geldig. U kunt de e-mail bewerken door erop te dubbelklikken.", "GroupMaxAvailableRoleWarning": "Groepen kunnen aan een kamer worden toegevoegd met de {{roleName}} rol als maximum. U kunt echter de rol van individuele gebruikers in de groep wijzigen nadat deze met succes is toegevoegd.", "InvitationLanguage": "Taal van de uitnodiging", "InviteAccountSearchPlaceholder": "Mensen per e-mail uitnodigen", diff --git a/packages/client/public/locales/nl/Ldap.json b/packages/client/public/locales/nl/Ldap.json index beee971cce..8d3b2b2b53 100644 --- a/packages/client/public/locales/nl/Ldap.json +++ b/packages/client/public/locales/nl/Ldap.json @@ -36,6 +36,7 @@ "LdapPortNumber": "Poortnummer", "LdapPortNumberTooltip": "Voer het poortnummer voor uw LDAP server/Active Directory in.", "LdapQuota": "Gebruikersquota", + "LdapQuotaInfo": "Om dit attribuut te kunnen gebruiken, moet u gebruikersquota inschakelen in de <0>Instellingen voor opslagbeheer", "LdapSecondName": "Tweede naam", "LdapSendWelcomeLetter": "Stuur welkomstbrief", "LdapSendWelcomeLetterTooltip": "Als u deze optie aanvinkt, ontvangen alle nieuwe gebruikers een welkomstbrief. Alleen beschikbaar wanneer Mail Attribute is gekoppeld aan LDAP.", @@ -66,6 +67,7 @@ "LdapUserDNTooltip": "Voer de onderscheidende naam in van de map met gebruikers die u wilt toevoegen.", "LdapUserFilter": "Gebruikersfilter", "LdapUserFilterTooltip": "Gebruik Zoek LDAP filter om gebruikers te selecteren die zullen worden geïmporteerd.", + "LdapUserQuotaTooltip": "Om een opslagquota voor gebruikers in te stellen, voegt u een attribuut toe in de LDAP-directory (bijvoorbeeld UsersQuotaLimit) en voert u een gehele waarde voor dit attribuut in. De quotumwaarde wordt in bytes weergegeven. Geef hier alleen de naam van het attribuut op. Dit attribuut wordt alleen toegepast tijdens de eerste installatie en kan later handmatig worden gewijzigd in de Accounts sectie.", "LdapUsersType": "Type gebruiker", "LdapUsersTypeInfo": "Gebruikers hebben alleen toegang tot de kamers waarvoor ze door beheerders zijn uitgenodigd en kunnen geen eigen kamers, mappen of bestanden aanmaken. Selecteer hieronder een ander type om meer rechten te geven. Anders kunt u het type handmatig wijzigen in de Accounts sectie", "LdapUserTypeTooltip": "Alle gebruikers worden toegevoegd aan {{productName}} met het geselecteerde type." diff --git a/packages/client/public/locales/nl/MainBar.json b/packages/client/public/locales/nl/MainBar.json index cee3806d68..ea40688ee2 100644 --- a/packages/client/public/locales/nl/MainBar.json +++ b/packages/client/public/locales/nl/MainBar.json @@ -1,12 +1,31 @@ { + "ArchivedRoomsOrContact": "U kunt de overbodige kamers archiveren of contact opnemen met de {{productName}} beheerder om het tariefplan te upgraden.", + "ClickToUpgradeTariff": "<1>Klik hier om uw tariefplan te upgraden.", "ConfirmEmailDescription": "Gebruik de link in de activeringsmail. Hebt u geen e-mail ontvangen met de activeringslink?", "ConfirmEmailHeader": "Activeer uw e-mail ({{ email }}) om toegang te krijgen tot de {{productName}} functies.", + "ContactToUpgradeTariff": "Neem contact op met de {{productName}} beheerder om het tariefplan te upgraden.", + "PersonalQuotaHeader": "Uw persoonlijke opslagquota is overschreden", + "PersonalQuotaHeaderForAdmins": "Opslagquota per gebruiker overschreden", "PersonalUserQuotaAdminsDescription": "Om nieuwe bestanden en mappen te uploaden en aan te maken, moet u schijfruimte vrijmaken of quota per gebruiker beheren in de <1>Instellingen voor opslagbeheer.", - "PersonalUserQuotaDescription": "Om nieuwe bestanden en mappen te uploaden en aan te maken, moet u schijfruimte vrijmaken of contact opnemen met de beheerder om de opslagquota te verhogen.", + "PersonalUserQuotaDescription": "Om nieuwe bestanden en mappen te uploaden en aan te maken, moet u schijfruimte vrijmaken of contact opnemen met de beheerder van {{productName}} om de opslagquota te verhogen.", + "RemoveFilesOrClickToUpgrade": "Verwijder de onnodige bestanden of <1>klik hier om uw tariefplan te upgraden.", + "RemoveFilesOrContactToUpgrade": "Verwijder de overbodige bestanden of neem contact op met de {{productName}} beheerder om het tariefplan te upgraden.", + "RemoveFilesOrContactToUpgradeQuota": "Verwijder de onnodige bestanden of neem contact op met de {{productName}} beheerder om de opslagquota te verhogen.", "RequestActivation": "Activatie opnieuw aanvragen", + "RoomQuotaDescription": "U kunt de overbodige kamers archiveren of <1>click here om een meer geschikt prijsplan voor uw {{productName}}. te vinden.", "RoomQuotaHeader": "Kamers staat op het punt overschreden te worden: {{currentValue}} / {{maxValue}}", + "RoomQuotaHeaderLimit": "De limiet is bereikt voor het aantal kamers: {{currentValue}} / {{maxValue}}", + "StorageAndRoomHeader": "De limiet voor opslagruimte en het aantal kamers wordt bijna overschreden", + "StorageAndRoomLimitHeader": "De limiet voor opslagruimte en het aantal kamers is bereikt", "StorageAndUserHeader": "De beperkingen voor opslag en beheerders/power users worden binnenkort overschreden.", + "StorageAndUserTariffLimitHeader": "De limiet is bereikt voor opslagruimte en het aantal beheerders/power users", + "StorageLimitHeader": "De limiet voor opslagruimte is bereikt: {{currentValue}} / {{maxValue}}", "StorageQuotaHeader": "De hoeveelheid opslagruimte staat op het punt overschreden te worden: {{currentValue}} / {{maxValue}}", "TenantCustomQuotaDescription": "U kunt de onnodige bestanden verwijderen of de quota wijzigen in de <1>Instellingen voor opslagbeheer.", - "UserQuotaHeader": "Het aantal beheerders/power users staan op het punt overschreden te worden: {{currentValue}} / {{maxValue}}." + "UserQuotaHeader": "Het aantal beheerders/power users staan op het punt overschreden te worden: {{currentValue}} / {{maxValue}}.", + "UserTariffAlmostReached": "Zodra de limiet is bereikt, worden alle gebruikers uitsluitend met gebruikersrechten toegevoegd. Om meer admins/power users toe te kunnen voegen, neemt u contact op met de {{productName}} beheerder om het tariefplan te upgraden.", + "UserTariffAlmostReachedForAdmins": "Zodra de limiet is bereikt, worden alle gebruikers uitsluitend met gebruikersrechten toegevoegd. Om meer beheerders/power users toe te kunnen voegen, <1>klik hier om uw tariefplan te upgraden.", + "UserTariffLimitHeader": "De limiet voor het aantal beheerders/power users is bereikt: {{currentValue}} / {{maxValue}}", + "UserTariffReached": "Alle gebruikers worden uitsluitend met gebruikersrechten toegevoegd. Om meer admins/power users toe te kunnen voegen, neemt u contact op met de {{productName}} beheerder om het tariefplan te upgraden.", + "UserTariffReachedForAdmins": "Alle gebruikers worden uitsluitend met gebruikersrechten toegevoegd. Om meer beheerders/power users toe te kunnen voegen, <1>klik hier om uw tariefplan te upgraden." } diff --git a/packages/client/public/locales/nl/PDFFormDialog.json b/packages/client/public/locales/nl/PDFFormDialog.json index c9ca56f4b7..bddb74c3a3 100644 --- a/packages/client/public/locales/nl/PDFFormDialog.json +++ b/packages/client/public/locales/nl/PDFFormDialog.json @@ -1,4 +1,5 @@ { + "PDFform": "PDF formulier", "PDFFormEditDialogDescription": "Wilt u overschakelen naar de bewerkingsmodus voor formulieren? Houd er rekening mee dat het formulier niet langer beschikbaar is om in te vullen en dat u na het bewerken opnieuw op de knop Start vullen moet klikken om het in te vullen.", "PDFFormEditDialogTitle": "Formulier bewerken", "PDFFormIsReadyToast": "PDF formulier <1>{{filename}} is klaar om ingevuld te worden.", diff --git a/packages/client/public/locales/nl/Payments.json b/packages/client/public/locales/nl/Payments.json index b773622774..fe32930d96 100644 --- a/packages/client/public/locales/nl/Payments.json +++ b/packages/client/public/locales/nl/Payments.json @@ -9,6 +9,9 @@ "BusinessSuggestion": "Pas uw {{planName}} plan aan", "BusinessTitle": "U gebruikt {{planName}} plan", "BusinessUpdated": "{{planName}} plan bijgewerkt", + "CannotCreateNewRoom": "Kamer kan niet worden aangemaakt", + "CannotCreatePaidUsers": "Betaalde gebruikers kunnen niet worden toegevoegd", + "CannotRestoreRoom": "Kamer kan niet worden hersteld", "ChooseNewPayer": "Kies een nieuwe Betaler", "ChooseNewPlan": "Wilt u een nieuw prijsplan kiezen?", "ContactUs": "Voor verkoopvragen kunt u contact opnemen met", @@ -22,12 +25,18 @@ "InvalidEmailWithoutActiveSubscription": "Wij raden aan een nieuwe Betaler te kiezen die toegang krijgt tot de abonnementsinstellingen in {{productName}}.", "InvalidEmailWithoutActiveSubscriptionByAdmin": "Wij raden u aan contact op te nemen met de {{productName}} eigenaar om een nieuwe Betaler te kiezen.", "ManagerTypesDescription": "Beheerder accounts en hun rechten", + "NewRoomWillExceedLimit": "Deze kamer kan niet worden aangemaakt omdat de limiet is bereikt voor het aantal kamers in uw huidige plan.", + "NewUsersWillExceedMembersLimit": "Nieuwe betaalde gebruikers toevoegen is niet mogelijk omdat de limiet is bereikt voor het aantal beheerders in uw huidige plan.", + "NotPossibleRoomRestoring": "Het is niet mogelijk om deze kamer te herstellen omdat de limiet is bereikt voor het aantal kamers in uw huidige plan.", + "NumberOfRoomsAccordingToTariff": "Aantal kamers volgens uw tariefplan: {{currentValue}}/{{maxValue}}", + "NumberOfUsersAccordingToTariff": "Aantal beheerders/power users volgens uw tariefplan: {{currentValue}}/{{maxValue}}", "Pay": "Betaal", "Payer": "Betaler", "PayerDescription": "Deze gebruiker heeft toegang tot de betalingsgegevens en is de enige gebruiker die de quota kan aanpassen en betalingen kan verrichten. De {{productName}}-eigenaar, evenals de betalende beheerder zelf, kan de rol van betalende beheerder opnieuw toewijzen via het Stripe klantenportaal.", "PriceCalculation": "Bereken uw prijs", "RenewSubscription": "Verleng abonnement op {{planName}} plan", "RoomManagerDescription": "Ruimtebeheer en archivering, uitnodiging en beheer van gebruikers. Er kunnen meerdere beheerders aan de kamer worden toegewezen.", + "RoomsQuotaAlmostExhausted": "Het aantal kamers is bijna opgebruikt.", "StartupSuggestion": "Doe meer met {{planName}} plan", "StartupTitle": "U gebruikt het gratis {{planName}} plan", "StripeCustomerPortal": "ga naar het Stripe klantenportaal", @@ -36,5 +45,6 @@ "UpgradePlan": "Upgrade plan", "UserNotFound": "Gebruiker <1>{{email}} is niet gevonden.", "UserNotFoundMatchingEmail": "We konden de gebruiker met de overeenkomende Stripe e-mail niet vinden.", + "UsersQuotaAlmostExhausted": "Het aantal betaalde gebruikers is bijna opgebruikt.", "YourPrice": "Uw prijs" } diff --git a/packages/client/public/locales/pl/Files.json b/packages/client/public/locales/pl/Files.json index 199a721f14..935711432b 100644 --- a/packages/client/public/locales/pl/Files.json +++ b/packages/client/public/locales/pl/Files.json @@ -117,6 +117,7 @@ "OpenLocation": "Otwórz lokalizację", "PasswordAccess": "Dostęp chroniony hasłem", "PasswordLink": "Dodaj hasło, aby chronić swój link.", + "PasswordProtectedFiles": "<0>Wpisz hasło do plików chronionych, aby kontynuować", "PasswordSuccessfullyCopied": "Hasło zostało pomyślnie skopiowane", "Pin": "Przypnij", "PinToTop": "Przypnij u góry", diff --git a/packages/client/public/locales/pl/InviteDialog.json b/packages/client/public/locales/pl/InviteDialog.json index afa07b5fdb..c6a59e4cc0 100644 --- a/packages/client/public/locales/pl/InviteDialog.json +++ b/packages/client/public/locales/pl/InviteDialog.json @@ -2,7 +2,7 @@ "AddManually": "Dodaj ręcznie", "AddManuallyDescriptionAccounts": "Zaproś nowych użytkowników do {{productName}} osobiście poprzez wiadomość e-mail", "AddManuallyDescriptionRoom": "Dodaj istniejących użytkowników {{productName}} 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.", + "EmailErrorMessage": "Niepoprawny adres e-mail. Możesz poprawić adres e-mail klikając go dwukrotnie.", "GroupMaxAvailableRoleWarning": "Grupy mogą zostać dodane do pokoju z maksymalną rolą {{roleName}}. Możesz jednak zmienić role poszczególnych użytkowników w grupie po jej pomyślnym dodaniu.", "InvitationLanguage": "Język zaproszenia", "InviteAccountSearchPlaceholder": "Zaproś ludzi poprzez e-mail", diff --git a/packages/client/public/locales/pl/Ldap.json b/packages/client/public/locales/pl/Ldap.json index 3ccf946f5b..e8125cd3e2 100644 --- a/packages/client/public/locales/pl/Ldap.json +++ b/packages/client/public/locales/pl/Ldap.json @@ -36,6 +36,7 @@ "LdapPortNumber": "Numer portu", "LdapPortNumberTooltip": "Wprowadź numer portu dla serwera LDAP/Active Directory.", "LdapQuota": "Limit użytkowników", + "LdapQuotaInfo": "Aby móc korzystać z tego atrybutu, włącz limit użytkowników w sekcji <0>Ustawienia zarządzania pamięcią", "LdapSecondName": "Nazwisko", "LdapSendWelcomeLetter": "Wysyłaj wiadomość powitalną", "LdapSendWelcomeLetterTooltip": "Jeśli opcja jest zaznaczona, wszyscy nowi użytkownicy otrzymają wiadomość powitalną. Dostępna wyłącznie, jeśli Atrybut poczty jest mapowany do LDAP.", @@ -66,6 +67,7 @@ "LdapUserDNTooltip": "Wprowadź nazwę wyróżniającą do katalogu zawierającego użytkowników, których chcesz dodać.", "LdapUserFilter": "Filtr użytkowników", "LdapUserFilterTooltip": "Użyj filtru wyszukiwania LDAP, aby wybrać użytkowników, którzy mają zostać zaimportowani.", + "LdapUserQuotaTooltip": "Aby skonfigurować limit pamięci dla użytkownika, dodaj atrybut w katalogu LDAP (np. UsersQuotaLimit) i wpisz wartość całkowitą dla danego atrybutu. Wartość limitu zostanie wyświetlona w bajtach. Tutaj określ wyłącznie nazwę atrybutu. Dany atrybut zostanie zastosowany tylko podczas pierwszej konfiguracji i może później zostać zmieniony ręcznie w ustawieniach konta.", "LdapUsersType": "Typ użytkowników", "LdapUsersTypeInfo": "Użytkownicy mają dostęp wyłącznie do pokoi, do których zostali zaproszeni przez administratorów i nie mogą tworzyć własnych pokoi, katalogów ani plików. Wybierz inny typ poniżej, aby zapewnić więcej uprawnień. W przeciwnym razie możesz zmienić typ ręcznie w sekcji Konta.", "LdapUserTypeTooltip": "Wszyscy użytkownicy zostaną dodani do {{productName}} z wybranym typem." diff --git a/packages/client/public/locales/pl/MainBar.json b/packages/client/public/locales/pl/MainBar.json index 618f55de2d..5ec4715881 100644 --- a/packages/client/public/locales/pl/MainBar.json +++ b/packages/client/public/locales/pl/MainBar.json @@ -1,12 +1,31 @@ { + "ArchivedRoomsOrContact": "Możesz zarchiwizować niepotrzebne pokoje lub skontaktować się z administratorem {{productName}}, aby uaktualnić plan cenowy.", + "ClickToUpgradeTariff": "<1>Kliknij tutaj, aby uaktualnić swój plan cenowy.", "ConfirmEmailDescription": "Użyj linku otrzymanego w e-mailu aktywacyjnym. E-mail z linkiem aktywacyjnym nie dotarł?", "ConfirmEmailHeader": "Aktywuj swój adres e-mail ({{ email }}), aby uzyskać dostęp do funkcji {{productName}}.", + "ContactToUpgradeTariff": "Skontaktuj się z administratorem {{productName}}, aby uaktualnić plan cenowy.", + "PersonalQuotaHeader": "Twój osobisty limit pamięci przekroczył", + "PersonalQuotaHeaderForAdmins": "Limit pamięci na użytkownika przekroczył", "PersonalUserQuotaAdminsDescription": "Aby móc przesyłać i tworzyć nowe pliki oraz katalogi, zwolnij miejsce na dysku lub zmień limit pamięci na użytkownika w <1>ustawieniach zarządzania pamięcią.", - "PersonalUserQuotaDescription": "Aby móc przesyłać i tworzyć nowe pliki oraz katalogi, zwolnij miejsce na dysku lub skontaktuj się z administratorem, aby zwiększyć limit pamięci.", + "PersonalUserQuotaDescription": "Aby móc przesyłać i tworzyć nowe pliki oraz katalogi, zwolnij miejsce na dysku lub skontaktuj się z administratorem {{productName}}, aby zwiększyć limit pamięci.", + "RemoveFilesOrClickToUpgrade": "Usuń niepotrzebne pliki lub <1>kliknij tutaj, aby uaktualnić swój plan cenowy.", + "RemoveFilesOrContactToUpgrade": "Usuń niepotrzebne pliki lub skontaktuj się z administratorem {{productName}}, aby uaktualnić plan cenowy.", + "RemoveFilesOrContactToUpgradeQuota": "Usuń niepotrzebne pliki lub skontaktuj się z administratorem {{productName}}, aby zwiększyć limit pamięci.", "RequestActivation": "Poproś o aktywację jeszcze raz", + "RoomQuotaDescription": "Możesz zarchiwizować niepotrzebne pokoje lub <1>kliknąć tutaj, aby znaleźć bardziej odpowiedni plan cenowy dla swojego produktu {{productName}}.", "RoomQuotaHeader": "Liczba pokoi zostanie niedługo przekroczona: {{currentValue}} / {{maxValue}}", + "RoomQuotaHeaderLimit": "Osiągnięto limit liczby pokoi: {{currentValue}} / {{maxValue}}", + "StorageAndRoomHeader": "Limit pamięci oraz liczby pokoi zostanie wkrótce przekroczony", + "StorageAndRoomLimitHeader": "Osiągnięto limit pamięci i liczby pokoi", "StorageAndUserHeader": "Limity pamięci/użytkowników z większą liczbą uprawnień zostaną wkrótce przekroczone.", + "StorageAndUserTariffLimitHeader": "Osiągnięto limit pamięci oraz liczby administratorów/użytkowników z większą liczbą uprawnień", + "StorageLimitHeader": "Osiągnięto limit pamięci: {{currentValue}} / {{maxValue}}", "StorageQuotaHeader": "Ilość miejsca w pamięci zostanie wkrótce przekroczona: {{currentValue}} / {{maxValue}}", "TenantCustomQuotaDescription": "Możesz usunąć niepotrzebne pliki lub zmienić limit w <1>ustawieniach zarządzania pamięcią.", - "UserQuotaHeader": "Liczba administratorów/użytkowników z większą liczbą uprawnień zostanie wkrótce przekroczona: {{currentValue}} / {{maxValue}}." + "UserQuotaHeader": "Liczba administratorów/użytkowników z większą liczbą uprawnień zostanie wkrótce przekroczona: {{currentValue}} / {{maxValue}}.", + "UserTariffAlmostReached": "Po osiągnięciu limitu wszyscy użytkownicy będą dodawani tylko z uprawnieniami użytkownika. Aby móc dodać kolejnych administratorów/użytkowników z większą liczbą uprawnień, skontaktuj się z administratorem {{productName}} w celu uaktualnienia planu cenowego.", + "UserTariffAlmostReachedForAdmins": "Po osiągnięciu limitu wszyscy użytkownicy będą dodawani tylko z uprawnieniami użytkownika. Aby móc dodać kolejnych administratorów/użytkowników z większą liczbą uprawnień, <1>kliknij tutaj i uaktualnij swój plan cenowy.", + "UserTariffLimitHeader": "Osiągnięto limit liczby administratorów/użytkowników z większą liczbą uprawnień: {{currentValue}} / {{maxValue}}", + "UserTariffReached": "Wszyscy użytkownicy będą dodawani wyłącznie z uprawnieniami użytkownika. Aby móc dodać kolejnych administratorów/użytkowników z większą liczbą uprawnień, skontaktuj się z administratorem {{productName}} w celu uaktualnienia planu cenowego.", + "UserTariffReachedForAdmins": "Wszyscy użytkownicy będą dodawani wyłącznie z uprawnieniami użytkownika. Aby móc dodać kolejnych administratorów/użytkowników z większą liczbą uprawnień, <1>kliknij tutaj i uaktualnij swój plan cenowy." } diff --git a/packages/client/public/locales/pl/PDFFormDialog.json b/packages/client/public/locales/pl/PDFFormDialog.json index 360afda09c..609bbd4e0d 100644 --- a/packages/client/public/locales/pl/PDFFormDialog.json +++ b/packages/client/public/locales/pl/PDFFormDialog.json @@ -1,4 +1,5 @@ { + "PDFform": "Formularz PDF", "PDFFormEditDialogDescription": "Czy chcesz przejść do trybu edycji formularza? Należy pamiętać, że formularz przestanie być dostępny do wypełnienia i po jego edycji trzeba będzie ponownie kliknąć przycisk Rozpocznij wypełnianie, aby go uzupełnić.", "PDFFormEditDialogTitle": "Edycja formularza", "PDFFormIsReadyToast": "Formularz PDF <1>{{filename}} jest gotowy do wypełnienia.", diff --git a/packages/client/public/locales/pl/Payments.json b/packages/client/public/locales/pl/Payments.json index 622636afd3..f8ad7a8ba2 100644 --- a/packages/client/public/locales/pl/Payments.json +++ b/packages/client/public/locales/pl/Payments.json @@ -9,6 +9,9 @@ "BusinessSuggestion": "Dostosuj swój plan {{planName}}", "BusinessTitle": "Korzystasz z planu {{planName}}", "BusinessUpdated": "Zaktualizowano plan {{planName}}", + "CannotCreateNewRoom": "Nie można utworzyć pokoju", + "CannotCreatePaidUsers": "Nie można dodać płatnych użytkowników", + "CannotRestoreRoom": "Nie można przywrócić pokoju", "ChooseNewPayer": "Wybierz nowego Płatnika", "ChooseNewPlan": "Czy chcesz wybrać nowy plan cenowy?", "ContactUs": "W przypadku pytań dotyczących sprzedaży skontaktuj się z nami pod adresem", @@ -22,12 +25,18 @@ "InvalidEmailWithoutActiveSubscription": "Zalecamy wybrać nowego Płatnika, który będzie miał dostęp do ustawień subskrypcji w {{productName}}.", "InvalidEmailWithoutActiveSubscriptionByAdmin": "Zalecamy skontaktować się z właścicielem {{productName}}, aby wybrać nowego Płatnika.", "ManagerTypesDescription": "Rodzaje kont administratora i ich uprawnienia", + "NewRoomWillExceedLimit": "Utworzenie tego pokoju jest niemożliwe, ponieważ osiągnięto limit liczby pokoi w bieżącym planie.", + "NewUsersWillExceedMembersLimit": "Dodanie nowych płatnych użytkowników jest niemożliwe, ponieważ osiągnięto limit liczby administratorów w bieżącym planie.", + "NotPossibleRoomRestoring": "Przywrócenie tego pokoju jest niemożliwe, ponieważ osiągnięto limit liczby pokoi w bieżącym planie.", + "NumberOfRoomsAccordingToTariff": "Liczba pokoi w Twoim planie cenowym: {{currentValue}}/{{maxValue}}", + "NumberOfUsersAccordingToTariff": "Liczba administratorów/użytkowników większą liczbą uprawnień w Twoim planie cenowym: {{currentValue}}/{{maxValue}}", "Pay": "Zapłać", "Payer": "Płatnik", "PayerDescription": "Dany użytkownik ma dostęp do szczegółów płatności i jest jedynym użytkownikiem, który może dostosować limit oraz dokonać płatności. Właściciel {{productName}} i sam płacący menedżer mogą przypisać lub przekazać rolę płacącego menedżera za pomocą portalu klienta Stripe.", "PriceCalculation": "Oblicz swoją cenę", "RenewSubscription": "Odnów subskrypcję planu {{planName}}", "RoomManagerDescription": "Administracja i archiwizowanie pokoi, zapraszanie i zarządzanie użytkownikami. Do pokoju można przypisać kilku administratorów.", + "RoomsQuotaAlmostExhausted": "Limit pokoi jest prawie wyczerpany.", "StartupSuggestion": "Osiągnij więcej z planem {{planName}}", "StartupTitle": "Korzystasz z darmowego planu {{planName}}", "StripeCustomerPortal": "przejdź do portalu klienta Stripe", @@ -36,5 +45,6 @@ "UpgradePlan": "Uaktualnij plan", "UserNotFound": "Nie znaleziono użytkownika <1>{{email}}.", "UserNotFoundMatchingEmail": "Nie udało się znaleźć użytkownika z pasującym adresem e-mail Stripe.", + "UsersQuotaAlmostExhausted": "Limit płatnych użytkowników jest prawie wyczerpany.", "YourPrice": "Twoja cena" } diff --git a/packages/client/public/locales/pt-BR/Files.json b/packages/client/public/locales/pt-BR/Files.json index 97f4d45a20..90dc77b270 100644 --- a/packages/client/public/locales/pt-BR/Files.json +++ b/packages/client/public/locales/pt-BR/Files.json @@ -117,6 +117,7 @@ "OpenLocation": "Abrir a localização", "PasswordAccess": "Acesso por senha", "PasswordLink": "Adicione uma senha para proteger seu link.", + "PasswordProtectedFiles": "Por favor, <0>digite uma senha para que os arquivos protegidos continuem", "PasswordSuccessfullyCopied": "Senha copiada com sucesso", "Pin": "Fixar", "PinToTop": "Fixar no topo", diff --git a/packages/client/public/locales/pt-BR/InviteDialog.json b/packages/client/public/locales/pt-BR/InviteDialog.json index 4c25dc6a59..8656a0352a 100644 --- a/packages/client/public/locales/pt-BR/InviteDialog.json +++ b/packages/client/public/locales/pt-BR/InviteDialog.json @@ -2,7 +2,7 @@ "AddManually": "Adicionar manualmente", "AddManuallyDescriptionAccounts": "Convide novos usuários para o {{productName}} pessoalmente por e-mail", "AddManuallyDescriptionRoom": "Adicione usuários existentes do {{productName}} à 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.", + "EmailErrorMessage": "Endereço de email inválido. Você pode editar o e-mail clicando duas vezes nele.", "GroupMaxAvailableRoleWarning": "Grupos podem ser adicionados a uma sala com a função {{roleName}} no máximo. No entanto, você pode alterar a função de usuários individuais no grupo após ele ter sido adicionado com êxito.", "InvitationLanguage": "Idioma do convite", "InviteAccountSearchPlaceholder": "Convidar pessoas por e-mail", diff --git a/packages/client/public/locales/pt-BR/Ldap.json b/packages/client/public/locales/pt-BR/Ldap.json index 802df26ec6..a311762418 100644 --- a/packages/client/public/locales/pt-BR/Ldap.json +++ b/packages/client/public/locales/pt-BR/Ldap.json @@ -36,6 +36,7 @@ "LdapPortNumber": "Número da porta", "LdapPortNumberTooltip": "Insira o número da porta do seu servidor LDAP/Active Directory.", "LdapQuota": "Cota de usuário", + "LdapQuotaInfo": "Para poder usar este atributo, habilite a cota de usuário nas <0>Configurações de gerenciamento de armazenamento", "LdapSecondName": "Segundo nome", "LdapSendWelcomeLetter": "Enviar carta de boas-vindas", "LdapSendWelcomeLetterTooltip": "Se marcado, todos os novos usuários receberão uma carta de boas-vindas. Disponível somente quando o Atributo de Correio estiver mapeado para LDAP.", @@ -66,6 +67,7 @@ "LdapUserDNTooltip": "Insira o nome distinto do diretório que contém os usuários que você deseja adicionar.", "LdapUserFilter": "Filtro de usuário", "LdapUserFilterTooltip": "Utilize o filtro LDAP de pesquisa para selecionar os usuários que devem ser importados.", + "LdapUserQuotaTooltip": "Para definir uma cota de armazenamento para o usuário, adicione um atributo no diretório LDAP (por exemplo, UsersQuotaLimit) e insira um valor inteiro para esse atributo. Ele exibirá o valor da cota em bytes. Aqui, especifique apenas o nome do atributo. Esse atributo será aplicado apenas durante a primeira configuração e pode ser alterado manualmente na seção Contas.", "LdapUsersType": "Tipo de usuário", "LdapUsersTypeInfo": "Os usuários só podem acessar as salas para as quais foram convidados pelos administradores e não podem criar salas, pastas ou arquivos próprios. Selecione outro tipo abaixo para fornecer mais permissões. Caso contrário, você pode alterar o tipo manualmente na seção Contas.", "LdapUserTypeTooltip": "Todos os usuários serão adicionados ao {{productName}} com o tipo selecionado." diff --git a/packages/client/public/locales/pt-BR/MainBar.json b/packages/client/public/locales/pt-BR/MainBar.json index 558a9e854d..bb978f716c 100644 --- a/packages/client/public/locales/pt-BR/MainBar.json +++ b/packages/client/public/locales/pt-BR/MainBar.json @@ -1,12 +1,31 @@ { + "ArchivedRoomsOrContact": "Você pode arquivar as salas desnecessárias ou entrar em contato com o administrador do {{productName}} para atualizar o plano tarifário.", + "ClickToUpgradeTariff": "<1>Clique aqui para atualizar seu plano tarifário.", "ConfirmEmailDescription": "Use o link fornecido no e-mail de ativação. Não recebeu um e-mail com o link de ativação?", "ConfirmEmailHeader": "Favor ativar seu e-mail ({{ email }}) para ter acesso às características do {{productName}}.", + "ContactToUpgradeTariff": "Entre em contato com o administrador do {{productName}} para atualizar o plano tarifário.", + "PersonalQuotaHeader": "Sua cota de armazenamento pessoal excedida", + "PersonalQuotaHeaderForAdmins": "Cota de armazenamento por usuário excedida", "PersonalUserQuotaAdminsDescription": "Para fazer upload e criar novos arquivos e pastas, libere espaço em disco ou gerencie a cota por usuário nas <1>Configurações de gerenciamento de armazenamento.", - "PersonalUserQuotaDescription": "Para fazer upload e criar novos arquivos e pastas, libere espaço em disco ou entre em contato com o administrador para aumentar a cota de armazenamento.", + "PersonalUserQuotaDescription": "Para fazer upload e criar novos arquivos e pastas, libere espaço em disco ou entre em contato com o administrador do {{productName}} para aumentar a cota de armazenamento.", + "RemoveFilesOrClickToUpgrade": "Remova os arquivos desnecessários ou <1>clique aqui para atualizar seu plano tarifário.", + "RemoveFilesOrContactToUpgrade": "Remova os arquivos desnecessários ou entre em contato com o administrador do {{productName}} para atualizar o plano tarifário.", + "RemoveFilesOrContactToUpgradeQuota": "Remova os arquivos desnecessários ou entre em contato com o administrador do {{productName}} para aumentar a cota de armazenamento.", "RequestActivation": "Solicitar ativação mais uma vez", + "RoomQuotaDescription": "Você pode arquivar as salas desnecessárias ou <1>clique aqui para encontrar um plano de preços mais adequado para seu {{productName}}.", "RoomQuotaHeader": "As salas estão prestes a ser excedidos: {{currentValue}} / {{maxValue}}", + "RoomQuotaHeaderLimit": "O limite foi atingido para o número de salas: {{currentValue}} / {{maxValue}}", + "StorageAndRoomHeader": "O limite de espaço de armazenamento e o número de salas está prestes a ser excedido", + "StorageAndRoomLimitHeader": "O limite foi atingido para o espaço de armazenamento e o número de salas", "StorageAndUserHeader": "Os limites de armazenamento e administradores/usuários avançados estão prestes a ser excedidos.", + "StorageAndUserTariffLimitHeader": "O limite foi atingido para o espaço de armazenamento e o número de administradores/usuários avançados", + "StorageLimitHeader": "O limite foi atingido para o espaço de armazenamento: {{currentValue}} / {{maxValue}}", "StorageQuotaHeader": "A quantidade de espaço de armazenamento está prestes a ser excedida: {{currentValue}} / {{maxValue}}", "TenantCustomQuotaDescription": "Você pode remover os arquivos desnecessários ou alterar a cota nas <1>Configurações de gerenciamento de armazenamento.", - "UserQuotaHeader": "O número de administradores/usuários avançados está prestes a ser excedido: {{currentValue}} / {{maxValue}}." + "UserQuotaHeader": "O número de administradores/usuários avançados está prestes a ser excedido: {{currentValue}} / {{maxValue}}.", + "UserTariffAlmostReached": "Quando o limite for atingido, todos os usuários serão adicionados somente com permissões de Usuário. Para poder adicionar mais administradores/usuários avançados, entre em contato com o administrador do {{productName}} para atualizar o plano tarifário.", + "UserTariffAlmostReachedForAdmins": "Quando o limite for atingido, todos os usuários serão adicionados somente com permissões de Usuário. Para poder adicionar mais administradores/usuários avançados, <1>clique aqui para atualizar seu plano tarifário.", + "UserTariffLimitHeader": "O limite é atingido para o número de administradores/usuários avançados: {{currentValue}} / {{maxValue}}", + "UserTariffReached": "Todos os usuários serão adicionados somente com permissões de Usuário. Para poder adicionar mais administradores/usuários avançados, entre em contato com o administrador do {{productName}} para atualizar o plano tarifário.", + "UserTariffReachedForAdmins": "Todos os usuários serão adicionados somente com permissões de Usuário. Para poder adicionar mais administradores/usuários avançados, <1>clique aqui para atualizar seu plano tarifário." } diff --git a/packages/client/public/locales/pt-BR/PDFFormDialog.json b/packages/client/public/locales/pt-BR/PDFFormDialog.json index aea4355758..5a73c9f23b 100644 --- a/packages/client/public/locales/pt-BR/PDFFormDialog.json +++ b/packages/client/public/locales/pt-BR/PDFFormDialog.json @@ -1,4 +1,5 @@ { + "PDFform": "Formulário PDF", "PDFFormEditDialogDescription": "Deseja mudar para o modo de edição de formulário? Observe que o formulário não estará mais disponível para preenchimento e você precisará clicar novamente no botão Iniciar preenchimento após a edição para preenchê-lo.", "PDFFormEditDialogTitle": "Edição de formulário", "PDFFormIsReadyToast": "O formulário PDF <1>{{filename}} está pronto para ser preenchido.", diff --git a/packages/client/public/locales/pt-BR/Payments.json b/packages/client/public/locales/pt-BR/Payments.json index 5764b2afe3..31194ea58a 100644 --- a/packages/client/public/locales/pt-BR/Payments.json +++ b/packages/client/public/locales/pt-BR/Payments.json @@ -9,6 +9,9 @@ "BusinessSuggestion": "Personalize seu plano {{planName}}", "BusinessTitle": "Você está usando o plano {{planName}}", "BusinessUpdated": "{{planName}} plano atualizado", + "CannotCreateNewRoom": "A sala não pode ser criada", + "CannotCreatePaidUsers": "Usuários pagos não podem ser adicionados", + "CannotRestoreRoom": "A sala não pode ser restaurada", "ChooseNewPayer": "Escolha um novo Pagador", "ChooseNewPlan": "Gostaria de escolher um novo plano de preços?", "ContactUs": "Para perguntas sobre vendas, entre em contato conosco em", @@ -22,12 +25,18 @@ "InvalidEmailWithoutActiveSubscription": "Recomendamos escolher um novo Pagador que tenha acesso às configurações de assinatura no {{productName}}.", "InvalidEmailWithoutActiveSubscriptionByAdmin": "Recomendamos entrar em contato com o proprietário do {{productName}} para escolher um novo Pagador.", "ManagerTypesDescription": "Tipos de conta de administrador e seus privilégios", + "NewRoomWillExceedLimit": "Não é possível criar esta sala, pois o limite foi atingido para o número de salas incluídas em seu plano atual.", + "NewUsersWillExceedMembersLimit": "Não é possível adicionar novos usuários pagos, pois o limite foi atingido para o número de administradores incluídos em seu plano atual.", + "NotPossibleRoomRestoring": "Não é possível restaurar esta sala, pois o limite foi atingido para o número de salas incluídas no seu plano atual.", + "NumberOfRoomsAccordingToTariff": "Número de salas de acordo com seu plano tarifário: {{currentValue}}/{{maxValue}}", + "NumberOfUsersAccordingToTariff": "Número de administradores/usuários avançados de acordo com seu plano tarifário: {{currentValue}}/{{maxValue}}", "Pay": "Pagar", "Payer": "Pagador", "PayerDescription": "Este usuário tem acesso aos detalhes de pagamento e é o único usuário que pode ajustar a cota e efetuar pagamentos. O proprietário do {{productName}}, bem como o próprio gerente pagador, pode reatribuir a função de gerente pagador usando o portal do cliente Stripe.", "PriceCalculation": "Calcule seu preço", "RenewSubscription": "Renove a assinatura do plano {{planName}}", "RoomManagerDescription": "Administração e arquivo de salas, convite e gestão de utilizadores. Vários administradores podem ser atribuídos à sala.", + "RoomsQuotaAlmostExhausted": "A cota de salas está quase esgotada.", "StartupSuggestion": "Faça mais com o plano {{planName}}", "StartupTitle": "Você está usando o plano gratuito {{planName}}", "StripeCustomerPortal": "vá para o portal do cliente Stripe", @@ -36,5 +45,6 @@ "UpgradePlan": "Plano de atualização", "UserNotFound": "O usuário <1>{{email}} não foi encontrado.", "UserNotFoundMatchingEmail": "Não foi possível encontrar o usuário com o e-mail Stripe correspondente.", + "UsersQuotaAlmostExhausted": "A cota de usuários pagos está quase esgotada.", "YourPrice": "Seu preço" } diff --git a/packages/client/public/locales/pt/Files.json b/packages/client/public/locales/pt/Files.json index 838e167767..98b7ba5e07 100644 --- a/packages/client/public/locales/pt/Files.json +++ b/packages/client/public/locales/pt/Files.json @@ -117,6 +117,7 @@ "OpenLocation": "Abrir a localização", "PasswordAccess": "Acesso por senha", "PasswordLink": "Adicione uma senha para proteger seu link.", + "PasswordProtectedFiles": "Para continuar, <0>introduza uma palavra-passe para os ficheiros protegidos", "PasswordSuccessfullyCopied": "Senha copiada com sucesso", "Pin": "Afixar", "PinToTop": "Afixar em cima", diff --git a/packages/client/public/locales/pt/InviteDialog.json b/packages/client/public/locales/pt/InviteDialog.json index 9260e09ceb..eb83c174f1 100644 --- a/packages/client/public/locales/pt/InviteDialog.json +++ b/packages/client/public/locales/pt/InviteDialog.json @@ -2,7 +2,7 @@ "AddManually": "Adicionar manualmente", "AddManuallyDescriptionAccounts": "Convide novos utilizadores para o {{productName}} pessoalmente através do email", "AddManuallyDescriptionRoom": "Adicionar utilizadores do {{productName}} à 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.", + "EmailErrorMessage": "O Endereço de email não é válido. Pode editar o email ao clicar duas vezes sobre ele.", "GroupMaxAvailableRoleWarning": "Grupos podem ser adicionados a uma sala com a função {{roleName}} no máximo. No entanto, você pode alterar a função de usuários individuais no grupo após ele ter sido adicionado com êxito.", "InvitationLanguage": "Idioma do convite", "InviteAccountSearchPlaceholder": "Convidar pessoas por email", diff --git a/packages/client/public/locales/pt/Ldap.json b/packages/client/public/locales/pt/Ldap.json index 802df26ec6..fb3e496296 100644 --- a/packages/client/public/locales/pt/Ldap.json +++ b/packages/client/public/locales/pt/Ldap.json @@ -36,6 +36,7 @@ "LdapPortNumber": "Número da porta", "LdapPortNumberTooltip": "Insira o número da porta do seu servidor LDAP/Active Directory.", "LdapQuota": "Cota de usuário", + "LdapQuotaInfo": "Para poder utilizar este atributo, active a quota do utilizador nas <0>configurações de gestão de armazenamento", "LdapSecondName": "Segundo nome", "LdapSendWelcomeLetter": "Enviar carta de boas-vindas", "LdapSendWelcomeLetterTooltip": "Se marcado, todos os novos usuários receberão uma carta de boas-vindas. Disponível somente quando o Atributo de Correio estiver mapeado para LDAP.", @@ -66,6 +67,7 @@ "LdapUserDNTooltip": "Insira o nome distinto do diretório que contém os usuários que você deseja adicionar.", "LdapUserFilter": "Filtro de usuário", "LdapUserFilterTooltip": "Utilize o filtro LDAP de pesquisa para selecionar os usuários que devem ser importados.", + "LdapUserQuotaTooltip": "Para definir uma quota de armazenamento para o utilizador, adicione um atributo no diretório LDAP (por exemplo, UsersQuotaLimit) e introduza um valor inteiro para este atributo. O valor da quota será apresentado em bytes. Aqui, especifique apenas o nome do atributo. Este atributo será aplicado apenas durante a primeira configuração e pode ser posteriormente alterado manualmente na secção Contas.", "LdapUsersType": "Tipo de usuário", "LdapUsersTypeInfo": "Os usuários só podem acessar as salas para as quais foram convidados pelos administradores e não podem criar salas, pastas ou arquivos próprios. Selecione outro tipo abaixo para fornecer mais permissões. Caso contrário, você pode alterar o tipo manualmente na seção Contas.", "LdapUserTypeTooltip": "Todos os usuários serão adicionados ao {{productName}} com o tipo selecionado." diff --git a/packages/client/public/locales/pt/MainBar.json b/packages/client/public/locales/pt/MainBar.json index a7337a647c..7e6a0b1842 100644 --- a/packages/client/public/locales/pt/MainBar.json +++ b/packages/client/public/locales/pt/MainBar.json @@ -1,12 +1,31 @@ { + "ArchivedRoomsOrContact": "Pode arquivar as salas desnecessárias ou contactar o administrador {{productName}} para atualizar o plano tarifário.", + "ClickToUpgradeTariff": "<1>Clique aqui para atualizar o seu plano tarifário.", "ConfirmEmailDescription": "Utilizar a ligação fornecida no e-mail de ativação. Ainda não recebeu um e-mail com o link de ativação?", "ConfirmEmailHeader": "Por favor, confirme o seu email ({{ email }}) para ter acesso às funcionalidades do {{productName}}.", + "ContactToUpgradeTariff": "Contacte o administrador {{productName}} para atualizar o plano tarifário.", + "PersonalQuotaHeader": "A sua quota de armazenamento pessoal foi excedida", + "PersonalQuotaHeaderForAdmins": "Quota de armazenamento por utilizador excedida", "PersonalUserQuotaAdminsDescription": "Para fazer upload e criar novos arquivos e pastas, libere espaço em disco ou gerencie a cota por usuário nas <1>Configurações de gerenciamento de armazenamento.", - "PersonalUserQuotaDescription": "Para fazer upload e criar novos arquivos e pastas, libere espaço em disco ou entre em contato com o administrador para aumentar a cota de armazenamento.", + "PersonalUserQuotaDescription": "Para fazer upload e criar novos arquivos e pastas, libere espaço em disco ou entre em contato com o administrador do {{productName}} para aumentar a cota de armazenamento.", + "RemoveFilesOrClickToUpgrade": "Remova os ficheiros desnecessários ou <1>clique aqui para atualizar o seu plano tarifário.", + "RemoveFilesOrContactToUpgrade": "Remova os ficheiros desnecessários ou contacte o administrador {{productName}} para atualizar o plano tarifário.", + "RemoveFilesOrContactToUpgradeQuota": "Remova os ficheiros desnecessários ou contacte o administrador {{productName}} para aumentar a quota de armazenamento.", "RequestActivation": "Solicitar a ativação novamente", + "RoomQuotaDescription": "Pode arquivar as divisões desnecessárias ou <1>clique aqui para encontrar um plano de preços mais adequado para o seu {{productName}}.", "RoomQuotaHeader": "Salas que estão prestes a ser excedidas: {{currentValue}} / {{maxValue}}", + "RoomQuotaHeaderLimit": "O limite foi atingido para o número de quartos: {{currentValue}} / {{maxValue}}", + "StorageAndRoomHeader": "O limite de espaço de armazenamento e o número de divisões estão prestes a ser ultrapassados", + "StorageAndRoomLimitHeader": "É atingido o limite do espaço de armazenamento e do número de divisões", "StorageAndUserHeader": "Os limites para o armazenamento e para o número de administradores/utilizadores com poder estão prestes a ser excedidos.", + "StorageAndUserTariffLimitHeader": "É atingido o limite de espaço de armazenamento e o número de administradores/utilizadores avançados", + "StorageLimitHeader": "O limite de espaço de armazenamento foi atingido: {{currentValue}} / {{maxValue}}", "StorageQuotaHeader": "A capacidade de armazenamento do espaço está prestes a ser excedida: {{currentValue}} / {{maxValue}}", "TenantCustomQuotaDescription": "Você pode remover os arquivos desnecessários ou alterar a cota nas <1>Configurações de gerenciamento de armazenamento.", - "UserQuotaHeader": "O número de administradores/utilizadores com poder está prestes a ser excedido: {{currentValue}} / {{maxValue}}." + "UserQuotaHeader": "O número de administradores/utilizadores com poder está prestes a ser excedido: {{currentValue}} / {{maxValue}}.", + "UserTariffAlmostReached": "Quando o limite for atingido, todos os utilizadores serão adicionados apenas com permissões de Utilizador. Para poder adicionar mais administradores/utilizadores, contacte o administrador {{productName}} para atualizar o plano tarifário.", + "UserTariffAlmostReachedForAdmins": "Quando o limite for atingido, todos os utilizadores serão adicionados apenas com permissões de utilizador. Para poder adicionar mais administradores/utilizadores, <1>clique aqui para atualizar o seu plano tarifário.", + "UserTariffLimitHeader": "Foi atingido o limite para o número de administradores/utilizadores avançados: {{currentValue}} / {{maxValue}}", + "UserTariffReached": "Todos os utilizadores serão adicionados apenas com permissões de Utilizador. Para poder adicionar mais administradores/utilizadores, contacte o administrador {{productName}} para atualizar o plano tarifário.", + "UserTariffReachedForAdmins": "Todos os utilizadores serão adicionados apenas com permissões de utilizador. Para poder adicionar mais administradores/utilizadores, <1>clique aqui para atualizar o seu plano tarifário." } diff --git a/packages/client/public/locales/pt/PDFFormDialog.json b/packages/client/public/locales/pt/PDFFormDialog.json index aea4355758..5a73c9f23b 100644 --- a/packages/client/public/locales/pt/PDFFormDialog.json +++ b/packages/client/public/locales/pt/PDFFormDialog.json @@ -1,4 +1,5 @@ { + "PDFform": "Formulário PDF", "PDFFormEditDialogDescription": "Deseja mudar para o modo de edição de formulário? Observe que o formulário não estará mais disponível para preenchimento e você precisará clicar novamente no botão Iniciar preenchimento após a edição para preenchê-lo.", "PDFFormEditDialogTitle": "Edição de formulário", "PDFFormIsReadyToast": "O formulário PDF <1>{{filename}} está pronto para ser preenchido.", diff --git a/packages/client/public/locales/pt/Payments.json b/packages/client/public/locales/pt/Payments.json index d5f0616463..c658829780 100644 --- a/packages/client/public/locales/pt/Payments.json +++ b/packages/client/public/locales/pt/Payments.json @@ -9,6 +9,9 @@ "BusinessSuggestion": "Personalize o plano {{planName}}", "BusinessTitle": "Está a utilizar o plano {{planName}}", "BusinessUpdated": "{{planName}} plano atualizado", + "CannotCreateNewRoom": "A sala não pode ser criada", + "CannotCreatePaidUsers": "Os utilizadores pagos não podem ser adicionados", + "CannotRestoreRoom": "O quarto não pode ser restaurado", "ChooseNewPayer": "Selecionar um novo Pagador", "ChooseNewPlan": "Gostaria de escolher outro plano de preços?", "ContactUs": "Para questões relacionadas com vendas, contacte-nos em", @@ -22,12 +25,18 @@ "InvalidEmailWithoutActiveSubscription": "Recomendamos escolher um novo Pagador que tenha acesso às configurações relativas à subscrição no {{productName}}.", "InvalidEmailWithoutActiveSubscriptionByAdmin": "A sua subscrição continua ativa, mas recomendamos contactar o proprietário do {{productName}} e escolher um novo Pagador.", "ManagerTypesDescription": "Tipos de contas de administradores e os seus privilégios", + "NewRoomWillExceedLimit": "Não é possível criar este quarto porque o limite do número de quartos incluídos no seu plano atual foi atingido.", + "NewUsersWillExceedMembersLimit": "Não é possível adicionar novos utilizadores pagos, uma vez que foi atingido o limite do número de administradores incluídos no seu plano atual.", + "NotPossibleRoomRestoring": "Não é possível restaurar este quarto, uma vez que foi atingido o limite do número de quartos incluídos no seu plano atual.", + "NumberOfRoomsAccordingToTariff": "Número de quartos de acordo com o seu plano tarifário: {{currentValue}}/{{maxValue}}", + "NumberOfUsersAccordingToTariff": "Número de administradores/utilizadores de energia de acordo com o seu plano tarifário: {{currentValue}}/{{{maxValue}}", "Pay": "Pagar", "Payer": "Pagador", "PayerDescription": "Este utilizador tem acesso aos detalhes de pagamento e é o único utilizador que pode ajustar a quota e fazer pagamentos. O proprietário do {{productName}}, bem como o próprio gestor de pagamentos, pode reatribuir o papel de gestor de pagamentos utilizando o portal de clientes Stripe.", "PriceCalculation": "Calcule o seu preço", "RenewSubscription": "Renovar subscrição para o plano {{planName}}", "RoomManagerDescription": "Administração e arquivação de salas, convite e gestão de utilizadores. Vários administradores podem ser designados para a sala.", + "RoomsQuotaAlmostExhausted": "A quota de quartos está quase esgotada.", "StartupSuggestion": "Faça mais com o plano {{planName}}", "StartupTitle": "Está a utilizar o plano gratuito {{planName}}", "StripeCustomerPortal": "vá para o portal do cliente Stripe", @@ -36,5 +45,6 @@ "UpgradePlan": "Aumentar o plano", "UserNotFound": "O <1>{{email}} do utilizador não foi encontrado.", "UserNotFoundMatchingEmail": "Não foi possível encontrar o utilizador com o email de Stripe correspondente.", + "UsersQuotaAlmostExhausted": "A quota de utilizadores pagos está quase esgotada.", "YourPrice": "O seu preço" } diff --git a/packages/client/public/locales/ro/Files.json b/packages/client/public/locales/ro/Files.json index 06a283ecf3..84c6307648 100644 --- a/packages/client/public/locales/ro/Files.json +++ b/packages/client/public/locales/ro/Files.json @@ -117,6 +117,7 @@ "OpenLocation": "Accesează locația", "PasswordAccess": "Acces prin parolă", "PasswordLink": "Adăugați o parolă pentru a proteja link-ul dvs.", + "PasswordProtectedFiles": "Introduceți <0>parola pentru fișiere protejate pentru a continua", "PasswordSuccessfullyCopied": "Parola a fost copiată cu succes", "Pin": "Fixare", "PinToTop": "Fixare sus", diff --git a/packages/client/public/locales/ro/InviteDialog.json b/packages/client/public/locales/ro/InviteDialog.json index fc73388cae..6b45ec1734 100644 --- a/packages/client/public/locales/ro/InviteDialog.json +++ b/packages/client/public/locales/ro/InviteDialog.json @@ -2,7 +2,7 @@ "AddManually": "Adăugați manual", "AddManuallyDescriptionAccounts": "Invitaţi utilizatori noi la {{productName}} personal prin email", "AddManuallyDescriptionRoom": "Adăugaţi utilizatorii existenți ai {{productName}} î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.", + "EmailErrorMessage": "Adresa de email nu este valabilă. Puteţi modifica adresa de email făcând dublu clic pe acesta.", "GroupMaxAvailableRoleWarning": "Grupuri pot fi adăugate la o sală cu un rol maxim {{roleName}}. Cu toate acestea, puteți modifica rolul pentru utilizatori din grup în mod individual odată ce grupul a fost adăugat cu succes.", "InvitationLanguage": "Invitația în limba", "InviteAccountSearchPlaceholder": "Invitaţi persoane după email", diff --git a/packages/client/public/locales/ro/Ldap.json b/packages/client/public/locales/ro/Ldap.json index e9d4250c19..ad908d035f 100644 --- a/packages/client/public/locales/ro/Ldap.json +++ b/packages/client/public/locales/ro/Ldap.json @@ -36,6 +36,7 @@ "LdapPortNumber": "Număr port", "LdapPortNumberTooltip": "Introduceți numărul de port pentru serverul dvs LDAP/Active Directory.", "LdapQuota": "Cotă de utilizatori ", + "LdapQuotaInfo": "Pentru a putea folosi acest atribut, activați cotă de stocare pentru utilizatori în secțiunea <0>Setările de gestionare a spațiului de stocare", "LdapSecondName": "Al doilea nume", "LdapSendWelcomeLetter": "Trimite scrisoarea de bun venit", "LdapSendWelcomeLetterTooltip": "Dacă opțiunea este bifată, toți utilizatorii noi vor primi o scrisoare de bun venit. Această opțiune este disponibilă numai dacă Atributul Mail este mapat la LDAP.", @@ -66,6 +67,7 @@ "LdapUserDNTooltip": "Introduceți un nume distinct în repertoarul care conține utilizatorii pe care le doriți să adăugați.", "LdapUserFilter": "Filtru de utilizator", "LdapUserFilterTooltip": "Folosiți filtru de căutare LDAP pentru a selecta utilizatorii pentru importul.", + "LdapUserQuotaTooltip": "Pentru stabilirea cotei de stocare pentru acest utilizator, adăugați atributul în repertoarul LDAP (de exemplu, UsersQuotaLimit) și introduceți o valoare întreagă pentru acest atribut. Cota va fi afișată în octeți. Aici, indicați numai numele atributului. Acest atribut va fi aplicat numai la prima configurare și poate fi modificat manual mai târziu în secțiunea Conturi.", "LdapUsersType": "Tip utilizator", "LdapUsersTypeInfo": "Utilizatorii pot accesa doar sălile în care sunt invitaţi de către administratori și nu pot crea săli proprii, foldere sau fișiere. Selecționați un alt tip de mai jos pentru a oferi mai multe permisiuni. De asemenea, puteți schimba tipul de utilizator manual în secțiunea Conturi.", "LdapUserTypeTooltip": "Toți utilizatorii vor fi adăugate în {{productName}} cu tipul selectat." diff --git a/packages/client/public/locales/ro/MainBar.json b/packages/client/public/locales/ro/MainBar.json index 864bcfd44f..680762b3ff 100644 --- a/packages/client/public/locales/ro/MainBar.json +++ b/packages/client/public/locales/ro/MainBar.json @@ -1,12 +1,31 @@ { + "ArchivedRoomsOrContact": "Puteți arhiva sălile inutile sau contactați administratorul {{productName}} pentru a selecta un alt plan tarifar.", + "ClickToUpgradeTariff": "<1>Apăsați aici pentru a schimba planul dvs tarifar.", "ConfirmEmailDescription": "Utilizaţi linkul de activare din email. Nu aţi primit un email cu link-ul de activare?", "ConfirmEmailHeader": "Activați adresa de email ({{ email }}) pentru a avea acces la funcţiile {{productName}}.", + "ContactToUpgradeTariff": "Contactați administratorul {{productName}} pentru schimbarea planului tarifar.", + "PersonalQuotaHeader": "Cota dvs de stocare personală a depășit limita permisă", + "PersonalQuotaHeaderForAdmins": "Cota spațiului de stocare per utilizator a depășit limita permisă", "PersonalUserQuotaAdminsDescription": "Pentru a încărca și a crea fișiere și dosare noi, eliberați spațiu de stocare sau gestionați cota de stocare pentru fiecare utilizator din secțiunea <1>Setările de gestionare a spațiului de stocare..", - "PersonalUserQuotaDescription": "Pentru a încărca și a crea fișiere și dosare noi, eliberați spațiu de stocare sau contactați administratorul pentru a majora capacităţile de stocare.", + "PersonalUserQuotaDescription": "Pentru a încărca și a crea fișiere și dosare noi, eliberați spațiu de stocare sau contactați administratorul {{productName}} pentru a majora capacităţile de stocare.", + "RemoveFilesOrClickToUpgrade": "Eliminați fișierele inutile sau <1>apăsați aici pentru a schimba planul dvs tarifar.", + "RemoveFilesOrContactToUpgrade": "Eliminați fișierele inutile sau contactați administratorul {{productName}} pentru a selecta un alt plan tarifar.", + "RemoveFilesOrContactToUpgradeQuota": "Eliminați fișierele inutile sau contactați administratorul {{productName}} pentru a crește cota spațiului de stocare.", "RequestActivation": "Solicitaţi activarea din nou", + "RoomQuotaDescription": "Puteţi arhiva sălile inutile sau <1>apăsați aici pentru a găsi un abonament mai potrivit pentru {{productName}} .", "RoomQuotaHeader": "Cota sălilor este pe punctul de a fi depăşită: {{currentValue}} / {{maxValue}}", + "RoomQuotaHeaderLimit": "Limita maximă permisă de săli a fost atinsă: {{currentValue}} / {{maxValue}}", + "StorageAndRoomHeader": "Limita maximă permisă de stocare și de săli este pe punctul de a fi depăşit", + "StorageAndRoomLimitHeader": "Limita maximă permisă de stocare și de săli a fost atinsă", "StorageAndUserHeader": "Limite de stocare pentru administratori/utilizatori avansați sunt pe punctul de a fi depăşiti.", + "StorageAndUserTariffLimitHeader": "Limita maximă permisă de stocare și de administratori/utilizatori avansați a fost atinsă", + "StorageLimitHeader": "Limita permisă de stocare a fost atinsă: {{currentValue}} / {{maxValue}}", "StorageQuotaHeader": "Cota spaţiului de stocare este pe punctul de a fi depăşită: {{currentValue}} / {{maxValue}}", "TenantCustomQuotaDescription": "Puteţi elimina fişierele inutile sau modifica cotă de stocare din secțiunea <1>Setările de gestionare a spațiului de stocare..", - "UserQuotaHeader": "Numărul maxim de administratori/utilizatori avansați este pe punctul de a fi depăşit. {{currentValue}} / {{maxValue}}." + "UserQuotaHeader": "Numărul maxim de administratori/utilizatori avansați este pe punctul de a fi depăşit. {{currentValue}} / {{maxValue}}.", + "UserTariffAlmostReached": "Odată ce limita a fost atinsă, toți utilizatorii vor fi adăugați numai cu permisiunea de Utilizator. Pentru a adăuga administratori/utilizatori avansați în continuare, contactați administratorul {{productName}} pentru a schimba planul tarifar.", + "UserTariffAlmostReachedForAdmins": "Odată ce limita a fost atinsă, toți utilizatorii vor fi adăugați numai cu permisiunea de Utilizator. Pentru a adăuga administratori/utilizatori avansați în continuare, <1>apăsați aici pentru a schimba planul tarifar.", + "UserTariffLimitHeader": "Limita maximă permisă de administratori/utilizatori avansaţi a fost atinsă: {{currentValue}} / {{maxValue}}", + "UserTariffReached": "Toți utilizatorii vor fi adăugați numai cu permisiunea de Utilizator. Pentru a adăuga administratori/utilizatori avansați în continuare, contactați administratorul {{productName}} pentru a schimba planul tarifar.", + "UserTariffReachedForAdmins": "Toți utilizatorii vor fi adăugați numai cu permisiunea de Utilizator. Pentru a adăuga administratori/utilizatori avansați în continuare, <1>apăsați aici pentru a schimba planul tarifar." } diff --git a/packages/client/public/locales/ro/PDFFormDialog.json b/packages/client/public/locales/ro/PDFFormDialog.json index c03610bb29..f6aab5d646 100644 --- a/packages/client/public/locales/ro/PDFFormDialog.json +++ b/packages/client/public/locales/ro/PDFFormDialog.json @@ -1,4 +1,5 @@ { + "PDFform": "Formular PDF", "PDFFormEditDialogDescription": "Doriți să comutați la modul de editare a formularului? Vă rugăm să rețineți că formularul nu va mai fi disponibil pentru completare și odată ce formularul este editat, trebuie să faceți din nou un clic pe Începe completarea pentru a-l completa.", "PDFFormEditDialogTitle": "Editare formular", "PDFFormIsReadyToast": "Formularul PDF <1>{{filename}} este gata să fie completat.", diff --git a/packages/client/public/locales/ro/Payments.json b/packages/client/public/locales/ro/Payments.json index b7c64ba1ee..ddc1e18b16 100644 --- a/packages/client/public/locales/ro/Payments.json +++ b/packages/client/public/locales/ro/Payments.json @@ -9,6 +9,9 @@ "BusinessSuggestion": "Gestionați abonamentul dvs {{planName}}", "BusinessTitle": "Utilizaţi abonamentul {{planName}}", "BusinessUpdated": "Planul {{planName}} a fost actualizat", + "CannotCreateNewRoom": "Imposibil de creat sala", + "CannotCreatePaidUsers": "Imposibil de adăugat utilizatori cu plată", + "CannotRestoreRoom": "Imposibil de restaurat sala", "ChooseNewPayer": "Alegeți un plătitor nou", "ChooseNewPlan": "Doriţi să alegeţi un abonament nou?", "ContactUs": "Contactaţi-ne pentru întrebări despre vânzări pe", @@ -22,12 +25,18 @@ "InvalidEmailWithoutActiveSubscription": "Vă recomandăm să alegeți un Plătitor nou, care va avea acces la setările de abonament în spațiul {{productName}}.", "InvalidEmailWithoutActiveSubscriptionByAdmin": "Vă recomandăm să contactați proprietarul {{productName}} pentru a alege un Plătitor nou.", "ManagerTypesDescription": "Tipurile de cont administrator şi privilegiile aferente", + "NewRoomWillExceedLimit": "Imposibil de creat această sală deoarece limita maximă de săli permisă de planul dvs. actual a fost atinsă.", + "NewUsersWillExceedMembersLimit": "Imposibil de adăugat utilizatori cu plată noi deoarece limita maximă de administratori permisă de planul dvs. actual a fost atinsă.", + "NotPossibleRoomRestoring": "Imposibil de restaurat această sală deoarece limita maximă de săli permisă de planul dvs. actual a fost atinsă.", + "NumberOfRoomsAccordingToTariff": "Limita de săli permisă conform planului dvs tarifar: {{currentValue}}/{{maxValue}}", + "NumberOfUsersAccordingToTariff": "Limita de administratori/utilizatori avansați permisă conform planului dvs tarifar: {{currentValue}}/{{maxValue}}", "Pay": "Plată", "Payer": "Plătitor", "PayerDescription": "Acest utilizator are acces la detalii de plată şi este singurul utilizator care poate seta cota şi efectua plăţi. Proprietarul {{productName}}, precum şi mesagerul plătitor, pot reatribui rolul de manager plătitor folosind portalul de client Stripe.", "PriceCalculation": "Calculaţi preţul", "RenewSubscription": "Reînnoiți abonamentul {{planName}}", "RoomManagerDescription": "Administrarea şi arhivarea sălii, invitaţia şi gestionarea utilizatorilor. Mai mulţi administratori pot fi desemnaţi pentru o sală.", + "RoomsQuotaAlmostExhausted": "Cota spațiului de stocare aproape epuizată. ", "StartupSuggestion": "Faceţi mai mult cu abonamentul {{planName}}", "StartupTitle": "Utilizaţi abonamentul gratuit {{planName}}", "StripeCustomerPortal": "salt la portalul de client Stripe", @@ -36,5 +45,6 @@ "UpgradePlan": "Actualizare abonament", "UserNotFound": "Utilizatorul <1>{{email}} nu a fost găsit.", "UserNotFoundMatchingEmail": "Nu s-a găsit utilizatorul cu un e-mail Stripe potrivit.", + "UsersQuotaAlmostExhausted": "Cota spațiului de stocare pentru utilizatorii cu plată aproape epuizată.", "YourPrice": "Preţul dvs." } diff --git a/packages/client/public/locales/ru/Files.json b/packages/client/public/locales/ru/Files.json index c123dcf60d..edf3147bce 100644 --- a/packages/client/public/locales/ru/Files.json +++ b/packages/client/public/locales/ru/Files.json @@ -117,6 +117,7 @@ "OpenLocation": "Открыть папку", "PasswordAccess": "Доступ по паролю", "PasswordLink": "Добавить пароль для защиты ссылки.", + "PasswordProtectedFiles": "Чтобы продолжить, пожалуйста, <0>введите пароль для защищенных файлов", "PasswordSuccessfullyCopied": "Пароль успешно скопирован", "Pin": "Закрепить", "PinToTop": "Закрепить наверху", diff --git a/packages/client/public/locales/ru/InviteDialog.json b/packages/client/public/locales/ru/InviteDialog.json index c3bec6c488..9375be1a2f 100644 --- a/packages/client/public/locales/ru/InviteDialog.json +++ b/packages/client/public/locales/ru/InviteDialog.json @@ -2,7 +2,7 @@ "AddManually": "Добавить вручную", "AddManuallyDescriptionAccounts": "Приглашайте новых пользователей в {{productName}} лично по электронной почте", "AddManuallyDescriptionRoom": "Добавьте существующих пользователей {{productName}} в комнату, используя имена, или лично пригласите новых пользователей по электронной почте", - "EmailErrorMessage": "Адрес электронной почты недействителен. Вы можете отредактировать адрес, нажав на него.", + "EmailErrorMessage": "Адрес электронной почты недействителен. Вы можете отредактировать адрес, дважды щелкнув по нему.", "GroupMaxAvailableRoleWarning": "Группы можно добавлять в комнату с максимальной ролью {{roleName}}. Однако вы можете изменить роли отдельных пользователей в группе после ее успешного добавления.", "InvitationLanguage": "Язык приглашения", "InviteAccountSearchPlaceholder": "Пригласить людей по электронной почте", diff --git a/packages/client/public/locales/ru/Ldap.json b/packages/client/public/locales/ru/Ldap.json index a3a755ceb7..37158be5b9 100644 --- a/packages/client/public/locales/ru/Ldap.json +++ b/packages/client/public/locales/ru/Ldap.json @@ -36,6 +36,7 @@ "LdapPortNumber": "Номер порта", "LdapPortNumberTooltip": "Введите номер порта для вашего сервера LDAP/Active Directory.", "LdapQuota": "Пользовательская квота", + "LdapQuotaInfo": "Чтобы использовать этот атрибут, включите квоту пользователя в <0>Настройках управления хранилищем.", "LdapSecondName": "Фамилия", "LdapSendWelcomeLetter": "Отправить приветственное письмо", "LdapSendWelcomeLetterTooltip": "Если флажок установлен, все новые пользователи будут получать приветственное письмо. Доступно только в том случае, если Атрибут почты сопоставлен с LDAP.", @@ -66,6 +67,7 @@ "LdapUserDNTooltip": "Введите отличительное имя (DN) для каталога, содержащего пользователей, которых вы хотите добавить.", "LdapUserFilter": "Фильтр пользователей", "LdapUserFilterTooltip": "Используйте фильтр поиска LDAP, чтобы выбрать пользователей, которых необходимо импортировать.", + "LdapUserQuotaTooltip": "Чтобы установить квоту хранилища для пользователя, добавьте атрибут в каталог LDAP (например, UsersQuotaLimit) и введите целое значение для этого атрибута. Значение квоты отобразится в байтах. Здесь укажите только имя атрибута. Этот атрибут будет применен только во время первой настройки и может быть позже изменен вручную в разделе Учетные записи.", "LdapUsersType": "Тип пользователей", "LdapUsersTypeInfo": "Пользователи могут получить доступ только к тем комнатам, в которые их пригласили администраторы, и не могут создавать собственные комнаты, папки или файлы. Выберите другой тип ниже, чтобы предоставить больше прав. В противном случае вы можете изменить тип вручную в разделе Учетные записи.", "LdapUserTypeTooltip": "Все пользователи будут добавлены в {{productName}} с выбранным типом." diff --git a/packages/client/public/locales/ru/MainBar.json b/packages/client/public/locales/ru/MainBar.json index 1b1e52899b..a388d3a5f1 100644 --- a/packages/client/public/locales/ru/MainBar.json +++ b/packages/client/public/locales/ru/MainBar.json @@ -1,12 +1,31 @@ { + "ArchivedRoomsOrContact": "Вы можете заархивировать ненужные комнаты или обратиться к администратору {{productName}} для обновления тарифного плана.", + "ClickToUpgradeTariff": "<1>Нажмите здесь, чтобы обновить тарифный план.", "ConfirmEmailDescription": "Используйте ссылку, указанную в письме активации. Не получили письмо со ссылкой для активации?", "ConfirmEmailHeader": "Пожалуйста, активируйте свою электронную почту ({{ email }}), чтобы получить доступ ко всем функциям {{productName}}.", + "ContactToUpgradeTariff": "Обратитесь к администратору {{productName}} для обновления тарифного плана.", + "PersonalQuotaHeader": "Превышена ваша личная квота хранилища", + "PersonalQuotaHeaderForAdmins": "Превышена квота хранилища на пользователя", "PersonalUserQuotaAdminsDescription": "Чтобы загружать и создавать новые файлы и папки, освободите место на диске или измените квоту для каждого пользователя в <1>Настройках управления хранилищем.", - "PersonalUserQuotaDescription": "Чтобы загружать и создавать новые файлы и папки, освободите место на диске или обратитесь к администратору для увеличения квоты хранилища.", + "PersonalUserQuotaDescription": "Чтобы загружать и создавать новые файлы и папки, освободите место на диске или обратитесь к администратору {{productName}} для увеличения квоты хранилища.", + "RemoveFilesOrClickToUpgrade": "Удалите ненужные файлы или <1>нажмите здесь, чтобы обновить тарифный план.", + "RemoveFilesOrContactToUpgrade": "Удалите ненужные файлы или обратитесь к администратору {{productName}} для обновления тарифного плана.", + "RemoveFilesOrContactToUpgradeQuota": "Удалите ненужные файлы или обратитесь к администратору {{productName}}, чтобы увеличить квоту хранилища.", "RequestActivation": "Запросить активацию еще раз", + "RoomQuotaDescription": "Вы можете заархивировать ненужные комнаты или <1>нажать здесь, чтобы найти более подходящий тарифный план для вашего {{productName}}.", "RoomQuotaHeader": "Количество комнат скоро будет превышено: {{currentValue}} / {{maxValue}}", + "RoomQuotaHeaderLimit": "Достигнут лимит количества комнат: {{currentValue}} / {{maxValue}}", + "StorageAndRoomHeader": "Лимит объема хранилища и количества комнат скоро будет превышен", + "StorageAndRoomLimitHeader": "Достигнут лимит объема хранилища и количества комнат", "StorageAndUserHeader": "Объем дискового пространства и количество администраторов/опытных пользователей скоро будут превышены. ", + "StorageAndUserTariffLimitHeader": "Достигнут лимит объема хранилища и количества администраторов/опытных пользователей", + "StorageLimitHeader": "Достигнут лимит объема хранилища: {{currentValue}} / {{maxValue}}", "StorageQuotaHeader": "Объем дискового пространства скоро будет превышен: {{currentValue}} / {{maxValue}}", "TenantCustomQuotaDescription": "Удалить ненужные файлы или изменить квоту можно в <1>Настройках управления хранилищем.", - "UserQuotaHeader": "Количество администраторов/опытных пользователей скоро будет превышено: {{currentValue}} / {{maxValue}}." + "UserQuotaHeader": "Количество администраторов/опытных пользователей скоро будет превышено: {{currentValue}} / {{maxValue}}.", + "UserTariffAlmostReached": "После достижения лимита все пользователи будут добавляться только с правами доступа пользователя. Чтобы получить возможность добавлять администраторов/опытных пользователей, свяжитесь с администратором {{productName}} для обновления тарифного плана.", + "UserTariffAlmostReachedForAdmins": "После достижения лимита все пользователи будут добавляться только с правами доступа пользователя. Чтобы получить возможность добавлять администраторов/опытных пользователей, <1>нажмите здесь, чтобы обновить тарифный план.", + "UserTariffLimitHeader": "Достигнут лимит количества администраторов/опытных пользователей: {{currentValue}} / {{maxValue}}", + "UserTariffReached": "Все пользователи будут добавляться только с правами доступа пользователя. Чтобы получить возможность добавлять администраторов/опытных пользователей, свяжитесь с администратором {{productName}} для обновления тарифного плана.", + "UserTariffReachedForAdmins": "Все пользователи будут добавляться только с правами доступа пользователя. Чтобы получить возможность добавлять администраторов/опытных пользователей, <1>нажмите здесь, чтобы обновить тарифный план." } diff --git a/packages/client/public/locales/ru/PDFFormDialog.json b/packages/client/public/locales/ru/PDFFormDialog.json index 07d6e172b1..c96102834a 100644 --- a/packages/client/public/locales/ru/PDFFormDialog.json +++ b/packages/client/public/locales/ru/PDFFormDialog.json @@ -1,4 +1,5 @@ { + "PDFform": "PDF-форма", "PDFFormEditDialogDescription": "Хотите переключиться в режим редактирования формы? Обратите внимание, что форма больше не будет доступна для заполнения и вам нужно будет снова нажать кнопку Начать заполнение после редактирования, чтобы заполнить ее.", "PDFFormEditDialogTitle": "Редактирование формы", "PDFFormIsReadyToast": "PDF-форма <1>{{filename}} готова к заполнению.", diff --git a/packages/client/public/locales/ru/Payments.json b/packages/client/public/locales/ru/Payments.json index bd1f24d757..33785694da 100644 --- a/packages/client/public/locales/ru/Payments.json +++ b/packages/client/public/locales/ru/Payments.json @@ -9,6 +9,9 @@ "BusinessSuggestion": "Настройте свой {{planName}} план", "BusinessTitle": "Вы используете {{planName}} план", "BusinessUpdated": "{{planName}} тариф обновлён", + "CannotCreateNewRoom": "Невозможно создать комнату", + "CannotCreatePaidUsers": "Невозможно добавить платных пользователей", + "CannotRestoreRoom": "Невозможно восстановить комнату", "ChooseNewPayer": "Выбрать нового плательщика", "ChooseNewPlan": "Хотите выбрать новый тарифный план?", "ContactUs": "По вопросам продаж обращайтесь к нам по адресу:", @@ -22,12 +25,18 @@ "InvalidEmailWithoutActiveSubscription": "Мы рекомендуем выбрать нового плательщика, который получит доступ к настройкам подписки в {{productName}}.", "InvalidEmailWithoutActiveSubscriptionByAdmin": "Мы рекомендуем связаться с владельцем {{productName}} для выбора нового плательщика.", "ManagerTypesDescription": "Типы учетных записей администратора и их привилегии", + "NewRoomWillExceedLimit": "Невозможно создать данную комнату, поскольку достигнут лимит количества комнат, включенных в ваш текущий тарифный план.", + "NewUsersWillExceedMembersLimit": "Невозможно добавить платных пользователей, поскольку достигнут лимит количества администраторов, включенных в ваш текущий тарифный план.", + "NotPossibleRoomRestoring": "Невозможно восстановить данную комнату, так как достигнут лимит количества комнат, включенных в ваш текущий тарифный план.", + "NumberOfRoomsAccordingToTariff": "Количество комнат в соответствии с вашим тарифным планом: {{currentValue}}/{{maxValue}}", + "NumberOfUsersAccordingToTariff": "Количество администраторов/опытных пользователей в соответствии с вашим тарифным планом: {{currentValue}}/{{maxValue}}", "Pay": "Оплатить", "Payer": "Плательщик", "PayerDescription": "Данный пользователь осуществляет оплату за тарифный план. Никто, кроме него, не может настраивать и оплачивать квоту. Сменить плательщика может владелец {{productName}}, а также сам плательщик через клиентский портал Stripe.", "PriceCalculation": "Рассчитайте свою цену", "RenewSubscription": "Продлить подписку на {{planName}} тариф", "RoomManagerDescription": "Администрирование и архивирование комнат, приглашение пользователей и управление ими. В комнату могут быть назначены несколько администраторов.", + "RoomsQuotaAlmostExhausted": "Квота комнат почти исчерпана.", "StartupSuggestion": "Делайте больше с помощью {{planName}} тарифа", "StartupTitle": "Вы используете бесплатный {{planName}} тариф", "StripeCustomerPortal": "перейти на клиентский портал Stripe", @@ -36,5 +45,6 @@ "UpgradePlan": "Обновить план", "UserNotFound": "Пользователь <1>{{email}} не найден.", "UserNotFoundMatchingEmail": "Мы не смогли найти пользователя с соответствующим адресом электронной почты Stripe.", + "UsersQuotaAlmostExhausted": "Квота платных пользователей почти исчерпана.", "YourPrice": "Ваша стоимость" } diff --git a/packages/client/public/locales/si/InviteDialog.json b/packages/client/public/locales/si/InviteDialog.json index 3bee693926..b0936c04f4 100644 --- a/packages/client/public/locales/si/InviteDialog.json +++ b/packages/client/public/locales/si/InviteDialog.json @@ -2,7 +2,7 @@ "AddManually": "අතින් යොදන්න", "AddManuallyDescriptionAccounts": "වි-තැපෑලෙන් පෞද්ගලිකව {{productName}} වෙත නව පරිශ්‍රීලකයින්ට ආරාධනා කරන්න", "AddManuallyDescriptionRoom": "දැනට සිටින {{productName}} පරිශ්‍රීලකයින්ගේ නම් භාවිතයෙන් කාමරයකට එක් කරන්න හෝ වෙනත් අයට වි-තැපෑලකින් පෞද්ගලිකව ආරාධනා කරන්න", - "EmailErrorMessage": "වි-තැපැල් ලිපිනය වලංගු නොවේ. ඔබට එය මත එබීමෙන් සංශෝධනය කිරීමට හැකිය.", + "EmailErrorMessage": "වි-තැපැල් ලිපිනය වලංගු නොවේ. ඔබට එය මත දෙවරක් ක්ලික් කිරීමෙන් ඊමේල් සංස්කරණය කළ හැකිය.", "InvitationLanguage": "ආරාධන භාෂාව", "InviteAccountSearchPlaceholder": "වි-තැපෑලෙන් ආරාධනය", "InviteRoomSearchPlaceholder": "නමින් හෝ වි-තැපෑලෙන් ආරාධනා කරන්න", diff --git a/packages/client/public/locales/si/MainBar.json b/packages/client/public/locales/si/MainBar.json index 76d04de6e0..ec4d8cdec7 100644 --- a/packages/client/public/locales/si/MainBar.json +++ b/packages/client/public/locales/si/MainBar.json @@ -2,7 +2,7 @@ "ConfirmEmailDescription": "සක්‍රියන වි-තැපෑලෙහි දී ඇති සබැඳිය භාවිතා කරන්න. සක්‍රියන සබැඳියක් සහිත වි-තැපෑලක් ලැබුණේ නැද්ද?", "ConfirmEmailHeader": "{{productName}} විශේෂාංග වෙත ප්‍රවේශය ලැබීමට ඔබගේ ({{ email }}) වි-තැපෑල සක්‍රිය කරගන්න.", "PersonalUserQuotaAdminsDescription": "නව ගොනු සහ බහාලුම් උඩුගත කිරීමට සහ සෑදීමට කරුණාකර තැටියේ ඉඩක් ලබා ගන්න හෝ <1>ආචයන කළමනාකරණ සැකසුම් මගින් එක් අයෙකුට වෙන්වන සලාකය කළමනාකරණය කරන්න.", - "PersonalUserQuotaDescription": "නව ගොනු සහ බහාලුම් උඩුගත කිරීමට සහ සෑදීමට කරුණාකර තැටියේ ඉඩක් ලබා ගන්න හෝ ආචයක සලාකය වැඩි කර ගැනීමට පරිපාලක අමතන්න.", + "PersonalUserQuotaDescription": "නව ගොනු සහ බහාලුම් උඩුගත කිරීමට සහ සෑදීමට කරුණාකර තැටියේ ඉඩක් ලබා ගන්න හෝ ආචයක සලාකය වැඩි කර ගැනීමට {{productName}} පරිපාලක අමතන්න.", "RequestActivation": "නැවත වරක් සක්‍රියනය ඉල්ලන්න", "RoomQuotaHeader": "කාමර ගණන ඉක්මවීමට ආසන්නයි: {{currentValue}} / {{maxValue}}", "StorageAndUserHeader": "ආචයනය සහ පරිපාලකයින්/බලවත් පරිශ්‍රීලකයින්ගේ සීමා ඉක්මවා යාමට ආසන්නයි.", diff --git a/packages/client/public/locales/sk/Files.json b/packages/client/public/locales/sk/Files.json index ffeb261b6b..aeea51d02a 100644 --- a/packages/client/public/locales/sk/Files.json +++ b/packages/client/public/locales/sk/Files.json @@ -117,6 +117,7 @@ "OpenLocation": "Otvoriť umiestnenie", "PasswordAccess": "Prístup je chránený heslom", "PasswordLink": "Pridajte heslo na ochranu vášho odkazu.", + "PasswordProtectedFiles": "Prosím <0>zadajte heslo pre chránené súbory, aby ste mohli pokračovať", "PasswordSuccessfullyCopied": "Heslo úspešne skopírované", "Pin": "Pripnúť", "PinToTop": "Pripnúť hore", diff --git a/packages/client/public/locales/sk/InviteDialog.json b/packages/client/public/locales/sk/InviteDialog.json index 04a59bbf1b..2536cc195a 100644 --- a/packages/client/public/locales/sk/InviteDialog.json +++ b/packages/client/public/locales/sk/InviteDialog.json @@ -2,7 +2,7 @@ "AddManually": "Pridať ručne", "AddManuallyDescriptionAccounts": "Pozvite nových používateľov do {{productName}} osobne prostredníctvom e-mailu", "AddManuallyDescriptionRoom": "Pridajte existujúcich používateľov {{productName}} 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ň.", + "EmailErrorMessage": "Emailová adresa nie je platná. E-mail môžete upraviť dvojitým kliknutím naň.", "GroupMaxAvailableRoleWarning": "Skupiny je možné pridať do miestnosti s maximálnou rolou {{roleName}}. Po úspešnom pridaní skupiny však môžete zmeniť rolu jednotlivých používateľov v skupine.", "InvitationLanguage": "Jazyk pozvánky", "InviteAccountSearchPlaceholder": "Pozvať ľudí e-mailom", diff --git a/packages/client/public/locales/sk/Ldap.json b/packages/client/public/locales/sk/Ldap.json index 9196a3e405..f1513c198b 100644 --- a/packages/client/public/locales/sk/Ldap.json +++ b/packages/client/public/locales/sk/Ldap.json @@ -36,6 +36,7 @@ "LdapPortNumber": "Číslo portu", "LdapPortNumberTooltip": "Zadajte číslo portu pre server LDAP/Active Directory.", "LdapQuota": "Kvóta používateľa", + "LdapQuotaInfo": "Aby ste mohli používať tento atribút, povoľte kvóty používateľov v <0>nastaveniach úložísk.", "LdapSecondName": "Druhé meno", "LdapSendWelcomeLetter": "Poslať uvítací list", "LdapSendWelcomeLetterTooltip": "Ak je táto možnosť zapnutá, všetci noví používatelia dostanú uvítací list. Táto možnosť je dostupná len vtedy, keď je atribút Pošta namapovaný na LDAP.", @@ -66,6 +67,7 @@ "LdapUserDNTooltip": "Zadajte rozlišujúci názov priečinka, ktorý obsahuje používateľov, ktorých chcete pridať.", "LdapUserFilter": "Filter používateľov", "LdapUserFilterTooltip": "Pomocou filtra na vyhľadávanie LDAP vyberte používateľov, ktorí musia byť importovaní.", + "LdapUserQuotaTooltip": "Ak chcete nastaviť kvótu úložiska pre používateľa, pridajte atribút v priečinku LDAP (napríklad UsersQuotaLimit) a zadajte celočíselnú hodnotu tohto atribútu. Zobrazí sa hodnota kvóty v bajtoch. Tu zadajte iba názov atribútu. Tento atribút sa použije len počas prvého nastavenia a neskôr ho môžete zmeniť ručne v časti Účty.", "LdapUsersType": "Typ používateľov", "LdapUsersTypeInfo": "Používatelia majú prístup len do miestností, do ktorých ich pozvali administrátori, a nemôžu vytvárať vlastné miestnosti, priečinky alebo súbory. Vyberte iný typ nižšie, ak chcete poskytnúť viac oprávnení. V opačnom prípade môžete typ zmeniť ručne v časti Účty.", "LdapUserTypeTooltip": "Všetci používatelia budú pridaní do {{productName}} so zvoleným typom." diff --git a/packages/client/public/locales/sk/MainBar.json b/packages/client/public/locales/sk/MainBar.json index 8ba46e5a08..c916db35e1 100644 --- a/packages/client/public/locales/sk/MainBar.json +++ b/packages/client/public/locales/sk/MainBar.json @@ -1,12 +1,31 @@ { + "ArchivedRoomsOrContact": "Nepotrebné miestnosti môžete archivovať alebo sa obrátiť na administrátora {{productName}}, aby vám zvýšil tarifný plán.", + "ClickToUpgradeTariff": "<1>Kliknite sem a aktualizujte svoj tarifný plán.", "ConfirmEmailDescription": "Použite odkaz uvedený v aktivačnom liste. Nedostali ste e-mail s aktivačným odkazom?", "ConfirmEmailHeader": "Ak chcete získať prístup k funkciám {{productName}}, aktivujte svoj e-mail ({{ email }}).", + "ContactToUpgradeTariff": "Pre aktualizáciu tarifného plánu kontaktujte administrátora {{productName}}.", + "PersonalQuotaHeader": "Vaša osobná kvóta úložiska prekročená", + "PersonalQuotaHeaderForAdmins": "Kvóta úložiska na používateľa prekročená", "PersonalUserQuotaAdminsDescription": "Ak chcete nahrávať a vytvárať nové súbory a priečinky, uvoľnite miesto na disku alebo spravujte používateľské kvóty v <1> Nastaveniach spravovania úložiska.", - "PersonalUserQuotaDescription": "Ak chcete nahrávať a vytvárať nové súbory a priečinky, uvoľnite miesto na disku alebo kontaktujte administrátora, aby zvýšil kvótu úložiska.", + "PersonalUserQuotaDescription": "Ak chcete nahrávať a vytvárať nové súbory a priečinky, uvoľnite miesto na disku alebo kontaktujte administrátora {{productName}}, aby zvýšil kvótu úložiska.", + "RemoveFilesOrClickToUpgrade": "Odstráňte nepotrebné súbory alebo <1>kliknite sem a aktualizujte svoj tarifný plán.", + "RemoveFilesOrContactToUpgrade": "Odstráňte nepotrebné súbory alebo kontaktujte administrátora {{productName}} na aktualizáciu tarifného plánu.", + "RemoveFilesOrContactToUpgradeQuota": "Odstráňte nepotrebné súbory alebo kontaktujte administrátora {{productName}} na zvýšenie kvóty úložiska.", "RequestActivation": "Požiadať o aktiváciu ešte raz", + "RoomQuotaDescription": "Nepotrebné miestnosti môžete archivovať alebo <1>kliknúť sem a nájsť vhodnejší tarifný plán pre váš {{productName}}.", "RoomQuotaHeader": "Počet miestností bude čoskoro prekročený: {{currentValue}} / {{maxValue}}", + "RoomQuotaHeaderLimit": "Limit počtu miestností je dosiahnutý: {{currentValue}} / {{maxValue}}", + "StorageAndRoomHeader": "Limit pre úložný priestor a počet miestností bude prekročený", + "StorageAndRoomLimitHeader": "Limit pre úložný priestor a počet miestností je dosiahnutý", "StorageAndUserHeader": "Objem úložísk a maximálny počet administrátorov/pokročilých používateľov budú čoskoro prekročené.", + "StorageAndUserTariffLimitHeader": "Limit pre úložný priestor a počet administrátorov/oprávnených používateľov je dosiahnutý", + "StorageLimitHeader": "Limit pre úložný priestor je dosiahnutý: {{currentValue}} / {{maxValue}}", "StorageQuotaHeader": "Veľkosť úložného priestoru bude čoskoro prekročená: {{currentValue}} / {{maxValue}}", "TenantCustomQuotaDescription": "Nepotrebné súbory môžete odstrániť alebo zmeniť kvótu v <1> Nastaveniach spravovania úložísk.", - "UserQuotaHeader": "Maximálny počet administrátorov/pokročilých používateľov bude čoskoro prekročený: {{currentValue}} / {{maxValue}}." + "UserQuotaHeader": "Maximálny počet administrátorov/pokročilých používateľov bude čoskoro prekročený: {{currentValue}} / {{maxValue}}.", + "UserTariffAlmostReached": "Po dosiahnutí limitu budú všetci používatelia pridávaní len s povolením používateľa. Ak chcete mať možnosť pridávať ďalších administrátorov/oprávnených používateľov, obráťte sa na administrátora {{productName}}, aby vám zvýšil tarifný plán.", + "UserTariffAlmostReachedForAdmins": "Po dosiahnutí limitu budú všetci používatelia pridávaní len s povolením používateľa. Ak chcete mať možnosť pridávať ďalších administrátorov/oprávnených používateľov, <1>kliknite sem a aktualizujte svoj tarifný plán.", + "UserTariffLimitHeader": "Limit počtu administrátorov/oprávnených používateľov je dosiahnutý: {{currentValue}} / {{maxValue}}", + "UserTariffReached": "Všetci používatelia budú pridávaní len s povolením používateľa. Ak chcete mať možnosť pridávať ďalších administrátorov/oprávnených používateľov, obráťte sa na administrátora {{productName}}, aby vám zvýšil tarifný plán.", + "UserTariffReachedForAdmins": "Všetci používatelia budú pridávaní len s povolením používateľa. Ak chcete mať možnosť pridávať ďalších administrátorov/oprávnených používateľov, <1>kliknite sem a aktualizujte svoj tarifný plán." } diff --git a/packages/client/public/locales/sk/PDFFormDialog.json b/packages/client/public/locales/sk/PDFFormDialog.json index 413ca676df..e9a996b80b 100644 --- a/packages/client/public/locales/sk/PDFFormDialog.json +++ b/packages/client/public/locales/sk/PDFFormDialog.json @@ -1,4 +1,5 @@ { + "PDFform": "Formulár PDF", "PDFFormEditDialogDescription": "Chcete sa prepnúť do režimu úpravy formulára? Upozorňujeme, že formulár už nebude k dispozícii na vyplnenie a po úprave budete musieť znova kliknúť na tlačidlo Spustiť vyplnenie, aby ste ho mohli vyplniť.", "PDFFormEditDialogTitle": "Úprava formulára", "PDFFormIsReadyToast": "PDF formulár <1>{{filename}} je pripravený na vyplnenie.", diff --git a/packages/client/public/locales/sk/Payments.json b/packages/client/public/locales/sk/Payments.json index d9187cff4c..05feb132d0 100644 --- a/packages/client/public/locales/sk/Payments.json +++ b/packages/client/public/locales/sk/Payments.json @@ -9,6 +9,9 @@ "BusinessSuggestion": "Prispôsobte si svoj plán {{planName}}", "BusinessTitle": "Používate plán {{planName}}", "BusinessUpdated": "Plán {{planName}} bol aktualizovaný", + "CannotCreateNewRoom": "Nie je možné vytvoriť miestnosť", + "CannotCreatePaidUsers": "Nie je možné pridať platených používateľov", + "CannotRestoreRoom": "Nie je možné obnoviť miestnosť", "ChooseNewPayer": "Vyberte si nového platiteľa", "ChooseNewPlan": "Chcete si vybrať nový tarifný program?", "ContactUs": "V prípade otázok týkajúcich sa predaja nás kontaktujte na", @@ -22,12 +25,18 @@ "InvalidEmailWithoutActiveSubscription": "Odporúčame vybrať nového platiteľa, ktorý bude mať prístup k nastaveniam predplatného v {{productName}}.", "InvalidEmailWithoutActiveSubscriptionByAdmin": "Odporúčame vám kontaktovať vlastníka {{productName}} pred výberom nového platiteľa.", "ManagerTypesDescription": "Typy účtov administrátorov a ich oprávnenia", + "NewRoomWillExceedLimit": "Nie je možné vytvoriť túto miestnosť, pretože je dosiahnutý limit počtu miestností vo vašom aktuálnom tarifnom pláne.", + "NewUsersWillExceedMembersLimit": "Nie je možné pridávať nových platených používateľov, pretože je dosiahnutý limit počtu administrátorov vo vašom aktuálnom tarifnom pláne.", + "NotPossibleRoomRestoring": "Nie je možné vrátiť túto miestnosť, pretože je dosiahnutý limit počtu miestností vo vašom aktuálnom tarifnom pláne.", + "NumberOfRoomsAccordingToTariff": "Počet miestností podľa vášho tarifného plánu: {{currentValue}}/{{maxValue}}", + "NumberOfUsersAccordingToTariff": "Počet administrátorov/oprávnených používateľov podľa vášho tarifného plánu: {{currentValue}}/{{maxValue}}", "Pay": "Zaplatiť", "Payer": "Platiteľ", "PayerDescription": "Tento používateľ má prístup k detailom platby a je jediným používateľom, ktorý môže nastaviť kvótu a vykonávať platby. Vlastník {{productName}}, ako aj samotný správca platieb, môže rolu správcu platieb zmeniť pomocou zákazníckeho portálu Stripe.", "PriceCalculation": "Vypočítajte svoju cenu", "RenewSubscription": "Obnovte predplatné plánu {{planName}}", "RoomManagerDescription": "Administrácia a archivácia miestností, pozývanie a správa užívateľov. K miestnosti je možné priradiť niekoľko administrátorov.", + "RoomsQuotaAlmostExhausted": "Kvóta miestností je takmer vyčerpaná.", "StartupSuggestion": "Urobte viac s plánom {{planName}}", "StartupTitle": "Používate bezplatný plán {{planName}}", "StripeCustomerPortal": "prejdite na zákaznícky portál Stripe", @@ -36,5 +45,6 @@ "UpgradePlan": "Aktualizovať plán", "UserNotFound": "Používateľ <1>{{email}} sa nenašiel.", "UserNotFoundMatchingEmail": "Nepodarilo sa nám nájsť používateľa so zodpovedajúcou e-mailovou adresou Stripe.", + "UsersQuotaAlmostExhausted": "Kvóta platených používateľov je takmer vyčerpaná.", "YourPrice": "Vaša cena" } diff --git a/packages/client/public/locales/sl/Files.json b/packages/client/public/locales/sl/Files.json index 3839bee38a..6717af862f 100644 --- a/packages/client/public/locales/sl/Files.json +++ b/packages/client/public/locales/sl/Files.json @@ -117,6 +117,7 @@ "OpenLocation": "Odpri lokacijo", "PasswordAccess": "Dostop z geslom", "PasswordLink": "Dodajte geslo, da zaščitite svojo povezavo.", + "PasswordProtectedFiles": "Za nadaljevanje <0>vnesite geslo za zaščitene datoteke", "PasswordSuccessfullyCopied": "Geslo uspešno kopirano", "Pin": "Pripni", "PinToTop": "Pripni na vrh", diff --git a/packages/client/public/locales/sl/InviteDialog.json b/packages/client/public/locales/sl/InviteDialog.json index a553d73266..b6e49ad597 100644 --- a/packages/client/public/locales/sl/InviteDialog.json +++ b/packages/client/public/locales/sl/InviteDialog.json @@ -2,7 +2,7 @@ "AddManually": "Dodaj ročno", "AddManuallyDescriptionAccounts": "Po e-mailu osebno povabite nove uporabnike v {{productName}}", "AddManuallyDescriptionRoom": "Dodaj obstoječe {{productName}} 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.", + "EmailErrorMessage": "E-mail naslov ni veljaven. E-mail sporočilo lahko uredite tako, da dvokliknete nanj.", "GroupMaxAvailableRoleWarning": "Skupine se lahko dodaja v sobo z najvišjo vlogo {{roleName}}. Vlogo posameznih uporabnikov v skupini lahko spremenite, ko je bil uspešno dodan.", "InvitationLanguage": "Jezik povabila", "InviteAccountSearchPlaceholder": "Povabite ljudi po e-mailu", diff --git a/packages/client/public/locales/sl/Ldap.json b/packages/client/public/locales/sl/Ldap.json index fb60a24db3..f8e050436d 100644 --- a/packages/client/public/locales/sl/Ldap.json +++ b/packages/client/public/locales/sl/Ldap.json @@ -36,6 +36,7 @@ "LdapPortNumber": "Številka vrat", "LdapPortNumberTooltip": "Vnesi številko vrat za vaš strežnik LDAP/Active Directory.", "LdapQuota": "Uporabniška kvota", + "LdapQuotaInfo": "Če želite uporabiti ta atribut, omogočite uporabniško kvoto v <0>nastavitvah upravljanja shrambe", "LdapSecondName": "Drugo ime", "LdapSendWelcomeLetter": "Pošlji pozdravno pismo", "LdapSendWelcomeLetterTooltip": "Če je označeno, bodo vsi novi uporabniki prejeli pozdravno pismo. Na voljo samo, če je poštni atribut preslikan v LDAP.", @@ -66,6 +67,7 @@ "LdapUserDNTooltip": "Vnesi enoznačno ime v imenik z uporabniki, ki jih želiš dodati.", "LdapUserFilter": "Uporabniški Filter", "LdapUserFilterTooltip": "Uporabi iskalni filter LDAP, da izbereš uporabnike, ki jih je potrebno uvoziti.", + "LdapUserQuotaTooltip": "Če želite nastaviti kvoto prostora za shranjevanje za uporabnika, dodajte atribut v imenik LDAP (na primer UsersQuotaLimit) in vnesite celoštevilčno vrednost za ta atribut. Prikazala bo vrednost kvote v bajtih. Tukaj navedite samo ime atributa. Ta atribut bo uporabljen samo med prvo nastavitvijo in ga je mogoče pozneje spremeniti ročno v razdelku Računi.", "LdapUsersType": "Uporabniški tip", "LdapUsersTypeInfo": "Uporabniki lahko dostopajo samo do sob, v katere jih povabijo skrbniki, in ne morejo ustvariti lastnih sob, map ali datotek. Spodaj izberi drug tip, da omogočiš več dovoljenj. V nasprotnem primeru lahko vrsto spremeniš ročno v razdelku Računi.", "LdapUserTypeTooltip": "Vsi uporabniki bodo dodani v {{productName}} z izbranim tipom." diff --git a/packages/client/public/locales/sl/MainBar.json b/packages/client/public/locales/sl/MainBar.json index 6e971e5252..03f3924fc2 100644 --- a/packages/client/public/locales/sl/MainBar.json +++ b/packages/client/public/locales/sl/MainBar.json @@ -1,12 +1,31 @@ { + "ArchivedRoomsOrContact": "Nepotrebne sobe lahko arhivirate ali se za nadgradnjo tarifnega načrta obrnete na skrbnika {{productName}}.", + "ClickToUpgradeTariff": "<1>Kliknite tukaj, če želite nadgraditi svoj tarifni načrt.", "ConfirmEmailDescription": "Uporabite povezavo v aktivacijskem e-mail sporočilu. Niste prejeli e-maila z aktivacijsko povezavo?", "ConfirmEmailHeader": "Aktiviraj svoj e-mail ({{ email }}) naslov za dostop do funkcij {{productName}}.", + "ContactToUpgradeTariff": "Obrnite se na skrbnika {{productName}} za nadgradnjo tarifnega načrta.", + "PersonalQuotaHeader": "Vaša osebna kvota za shranjevanje je presežen", + "PersonalQuotaHeaderForAdmins": "Kvota prostora za shranjevanje za uporabnika je presežena", "PersonalUserQuotaAdminsDescription": "Če želite naložiti in ustvariti nove datoteke in mape, sprostite prostor na disku ali upravljajte s kvoto na uporabnika v <1>nastavitvah upravljanja shrambe.", - "PersonalUserQuotaDescription": "Če želite naložiti in ustvariti nove datoteke in mape, sprostite prostor na disku ali se obrnite na skrbnika, da poveča kvoto za shranjevanje.", + "PersonalUserQuotaDescription": "Če želite naložiti in ustvariti nove datoteke in mape, sprostite prostor na disku ali se obrnite na skrbnika {{productName}}, da poveča kvoto za shranjevanje.", + "RemoveFilesOrClickToUpgrade": "Odstranite nepotrebne datoteke ali <1>kliknite tukaj, da nadgradite svoj tarifni načrt.", + "RemoveFilesOrContactToUpgrade": "Odstranite nepotrebne datoteke ali se obrnite na skrbnika {{productName}} za nadgradnjo tarifnega načrta.", + "RemoveFilesOrContactToUpgradeQuota": "Odstranite nepotrebne datoteke ali se obrnite na skrbnika {{productName}}, da poveča kvoto prostora za shranjevanje.", "RequestActivation": "Ponovno zahtevaj aktivacijo", + "RoomQuotaDescription": "Nepotrebne sobe lahko arhivirate ali <1>kliknete tukaj, da poiščete ustreznejši tarifni načrt za vaš {{productName}}.", "RoomQuotaHeader": "Sobe bodo kmalu presežene: {{currentValue}} / {{maxValue}}", + "RoomQuotaHeaderLimit": "Dosežena je omejitev za število sob: {{currentValue}} / {{maxValue}}", + "StorageAndRoomHeader": "Omejitev prostora za shranjevanje in števila sob bo kmalu presežena", + "StorageAndRoomLimitHeader": "Dosežena je omejitev prostora za shranjevanje in števila sob", "StorageAndUserHeader": "Omejitve prostora za shranjevanje in število skrbnikov/naprednih uporabnikov bodo kmalu presežene.", + "StorageAndUserTariffLimitHeader": "Dosežena je omejitev prostora za shranjevanje in števila skrbnikov/naprednih uporabnikov", + "StorageLimitHeader": "Dosežena je omejitev prostora za shranjevanje: {{currentValue}} / {{maxValue}}", "StorageQuotaHeader": "Dovoljen prostor za shranjevanje bo kmalu presežen: {{currentValue}} / {{maxValue}}", "TenantCustomQuotaDescription": "Nepotrebne datoteke lahko odstranite ali spremenite kvoto v <1>Nastavitvah upravljanja shrambe.", - "UserQuotaHeader": "Število skrbnikov/naprednih uporabnikov bo kmalu preseženo: {{currentValue}} / {{maxValue}}." + "UserQuotaHeader": "Število skrbnikov/naprednih uporabnikov bo kmalu preseženo: {{currentValue}} / {{maxValue}}.", + "UserTariffAlmostReached": "Ko bo omejitev dosežena, bodo uporabniki dodani samo z uporabniškimi dovoljenji. Če želite dodati nadaljnje skrbnike/izkušene uporabnike, se za nadgradnjo tarifnega načrta obrnite na skrbnika {{productName}}.", + "UserTariffAlmostReachedForAdmins": "Ko je omejitev dosežena, bodo uporabniki dodani samo z uporabniškimi dovoljenji. Če želite dodati nadaljnje skrbnike/izkušene uporabnike, <1>kliknite tukaj, da nadgradite svoj tarifni načrt.", + "UserTariffLimitHeader": "Dosežena je omejitev za število skrbnikov/izkušenih uporabnikov: {{currentValue}} / {{maxValue}}", + "UserTariffReached": "Uporabniki bodo dodani samo z uporabniškimi dovoljenji. Če želite dodati nadaljnje skrbnike/izkušene uporabnike, se za nadgradnjo tarifnega načrta obrnite na skrbnika {{productName}}.", + "UserTariffReachedForAdmins": "Uporabniki bodo dodani samo z uporabniškimi dovoljenji. Če želite dodati nadaljnje skrbnike/izkušene uporabnike, <1>kliknite tukaj, da nadgradite svoj tarifni načrt." } diff --git a/packages/client/public/locales/sl/PDFFormDialog.json b/packages/client/public/locales/sl/PDFFormDialog.json index 6e977377a0..4c7123570e 100644 --- a/packages/client/public/locales/sl/PDFFormDialog.json +++ b/packages/client/public/locales/sl/PDFFormDialog.json @@ -1,4 +1,5 @@ { + "PDFform": "PDF obrazec", "PDFFormEditDialogDescription": "Ali želiš preklopiti v način za urejanje obrazcev? Obrazec ne bo več na voljo za izpolnjevanje in bo potrebno po urejanju znova klikniti gumb Začni izpolnjevati.", "PDFFormEditDialogTitle": "Urejanje obrazca", "PDFFormIsReadyToast": "PDF obrazec <1>{{filename}} je pripravljen za izpolnjevanje.", diff --git a/packages/client/public/locales/sl/Payments.json b/packages/client/public/locales/sl/Payments.json index c6eda80c80..c0918c35c9 100644 --- a/packages/client/public/locales/sl/Payments.json +++ b/packages/client/public/locales/sl/Payments.json @@ -9,6 +9,9 @@ "BusinessSuggestion": "Prilagodi svoj {{planName}} paket", "BusinessTitle": "Uporabljate paket {{planName}}", "BusinessUpdated": "{{planName}} naročniški paket posodobljen", + "CannotCreateNewRoom": "Sobe ni mogoče ustvariti", + "CannotCreatePaidUsers": "Plačljivih uporabnikov ni mogoče dodati", + "CannotRestoreRoom": "Sobe ni mogoče obnoviti", "ChooseNewPayer": "Izberite novega plačnika", "ChooseNewPlan": "Ali želite izbrati nov cenovni paket?", "ContactUs": "Za prodajna vprašanja nas kontaktirajte na", @@ -22,12 +25,18 @@ "InvalidEmailWithoutActiveSubscription": "Priporočamo, da izberete novega plačnika, ki bo dobil dostop do naročniških nastavitev v {{productName}}.", "InvalidEmailWithoutActiveSubscriptionByAdmin": "Priporočamo, da se za izbiro novega plačnika obrnete na lastnika {{productName}}.", "ManagerTypesDescription": "Vrste skrbniških računov in njihove pravice", + "NewRoomWillExceedLimit": "Ustvarjanje te sobe ni mogoče, ker je dosežena omejitev števila sob, ki je določena za vaš trenutni tarifni načrt.", + "NewUsersWillExceedMembersLimit": "Dodajanje novih plačljivih uporabnikov ni mogoče, ker je dosežena omejitev števila skrbnikov, ki je določena za vaš trenutni tarifni načrt.", + "NotPossibleRoomRestoring": "Obnovitev te sobe ni mogoča, ker je dosežena omejitev števila sob, ki je določena za vaš trenutni tarifni načrt.", + "NumberOfRoomsAccordingToTariff": "Število sob, določeno z vašim tarifnim načrtom: {{currentValue}}/{{maxValue}}", + "NumberOfUsersAccordingToTariff": "Število skrbnikov/izkušenih uporabnikov, ki je določeno z vašim trenutnim tarifnim načrtom: {{currentValue}}/{{maxValue}}", "Pay": "Plačaj", "Payer": "Plačnik", "PayerDescription": "Ta uporabnik ima dostop do podrobnosti plačila in je edini uporabnik, ki lahko prilagaja račun in izvaja plačila. Lastnik {{productName}} in sam upravitelj plačevanja lahko prerazporedita vlogo upravitelja plačevanja prek portala za stranke Stripe.", "PriceCalculation": "Izračunajte vašo ceno", "RenewSubscription": "Obnovi naročnino na {{planName}} paket", "RoomManagerDescription": "Administracija in arhiviranje sobe, vabljenje in vodenje uporabnikov. Sobi je mogoče dodeliti več skrbnikov.", + "RoomsQuotaAlmostExhausted": "Kvota sob je skoraj dosežena.", "StartupSuggestion": "Naredite več z paketom {{planName}}", "StartupTitle": "Uporabljate brezplačen paket {{planName}}", "StripeCustomerPortal": "pojdite na portal za stranke Stripe", @@ -36,5 +45,6 @@ "UpgradePlan": "Načrt nadgradnje", "UserNotFound": "Uporabnik <1>{{email}} ni najden.", "UserNotFoundMatchingEmail": "Nismo našli uporabnika z ujemajočim se Stripe e-mail naslovom.", + "UsersQuotaAlmostExhausted": "Kvota plačljivih uporabnikov je skoraj dosežena.", "YourPrice": "Vaša cena" } diff --git a/packages/client/public/locales/sr-Cyrl-RS/Files.json b/packages/client/public/locales/sr-Cyrl-RS/Files.json index 5cca11cf2f..71193fa8cf 100644 --- a/packages/client/public/locales/sr-Cyrl-RS/Files.json +++ b/packages/client/public/locales/sr-Cyrl-RS/Files.json @@ -117,6 +117,7 @@ "OpenLocation": "Отвори локацију", "PasswordAccess": "Приступ лозинки", "PasswordLink": "Додај лозинку да заштитиш свој линк.", + "PasswordProtectedFiles": "Молимо <0> унесите лозинку за заштићене датотеке да бисте наставили", "PasswordSuccessfullyCopied": "Лозинка успешно копирана", "Pin": "Закачи", "PinToTop": "Закачи на врх", diff --git a/packages/client/public/locales/sr-Cyrl-RS/InviteDialog.json b/packages/client/public/locales/sr-Cyrl-RS/InviteDialog.json index 03bc969489..4d6cfbee6b 100644 --- a/packages/client/public/locales/sr-Cyrl-RS/InviteDialog.json +++ b/packages/client/public/locales/sr-Cyrl-RS/InviteDialog.json @@ -2,7 +2,7 @@ "AddManually": "Додај ручно", "AddManuallyDescriptionAccounts": "Позови нове кориснике на {{productName}} лично путем емаил-а.", "AddManuallyDescriptionRoom": "Додајте постојеће кориснике {{productName}}-а у собу користећи њихова имена или позовите нове кориснике лично путем емаил-а.", - "EmailErrorMessage": "Емаил адреса није важећа. Можете уредити емаил кликом на њега.", + "EmailErrorMessage": "Емаил адреса није важећа. Можете уредити емаил двоструким кликом на њега.", "GroupMaxAvailableRoleWarning": "Групе се могу додати у просторију са {{roleName}} улогом као максимум. Међутим , можете променити улогу појединачних корисника у групи након успешног додавања.", "InvitationLanguage": "Језик позивнице", "InviteAccountSearchPlaceholder": "Позови људе преко емаил-а", diff --git a/packages/client/public/locales/sr-Cyrl-RS/Ldap.json b/packages/client/public/locales/sr-Cyrl-RS/Ldap.json index 6320b18ccd..336071f0eb 100644 --- a/packages/client/public/locales/sr-Cyrl-RS/Ldap.json +++ b/packages/client/public/locales/sr-Cyrl-RS/Ldap.json @@ -36,6 +36,7 @@ "LdapPortNumber": "Број порта", "LdapPortNumberTooltip": "Унесите име порта за ваш LDAP сервер/Активни Директоријум.", "LdapQuota": "Корисничка квота", + "LdapQuotaInfo": "Да бисте могли да користите овај атрибут, омогућите корисничку квоту у <0>Подешавања управљања складиштем ", "LdapSecondName": "Друго име", "LdapSendWelcomeLetter": "Пошаљи добродошло писмо", "LdapSendWelcomeLetterTooltip": "Ако је означено, сви нови корисници ц́е добити писмо добродошлице. Доступно само када је Мејл Атрибут мапиран на LDAP.", @@ -66,6 +67,7 @@ "LdapUserDNTooltip": "Унесите препознатљиво име у директоријум који садржи кориснике које желите да додате.", "LdapUserFilter": "Кориснички Филтер", "LdapUserFilterTooltip": "Користите LDAP филтер за претрагу да бисте изабрали кориснике који морају бити увезени.", + "LdapUserQuotaTooltip": "Да бисте поставили складишну квоту за корисника, додајте атрибут у LDAP директоријум (на пример, UsersQuotaLimit) и унесите целобројну вредност за овај атрибут. Квота ће се приказивати у бајтовима. Овде наведите само назив атрибута. Овај атрибут ће бити примењен само током првог подешавања и касније се може променити ручно у одељку Рачуни.", "LdapUsersType": "Тип корисника", "LdapUsersTypeInfo": "Корисници могу приступити само просторијама у које су позвани од стране администратора и не могу креирати своје просторије, фолдере или датотеке. Изаберите другу врсту испод да бисте обезбедили више дозвола. У супротном, можете променити тип ручно у одељку Налози.", "LdapUserTypeTooltip": "Сви корисници ће бити додати на {{productName}} са одабраним типом." diff --git a/packages/client/public/locales/sr-Cyrl-RS/MainBar.json b/packages/client/public/locales/sr-Cyrl-RS/MainBar.json index ba469d6b69..79124bf0ce 100644 --- a/packages/client/public/locales/sr-Cyrl-RS/MainBar.json +++ b/packages/client/public/locales/sr-Cyrl-RS/MainBar.json @@ -1,12 +1,31 @@ { + "ArchivedRoomsOrContact": "Можете архивирати непотребне просторије или контактирати {{productName}} администратора да бисте надоградили тарифни план.", + "ClickToUpgradeTariff": "<1>Кликните овде да бисте надоградили ваш тарифни план.", "ConfirmEmailDescription": "Користите везу дату у емаил-у за активацију. Нисте добили емаил са линком за активацију?", "ConfirmEmailHeader": "Активирајте своју емаил ({{ email }}) да бисте добили приступ функцијама {{productName}}-а.", + "ContactToUpgradeTariff": "Контактирајте {{productName}} администратора да бисте надоградили тарифни план.", + "PersonalQuotaHeader": "Ваша лична складишна квота је прекорачена", + "PersonalQuotaHeaderForAdmins": "Складишна квота по кориснику прекорачена", "PersonalUserQuotaAdminsDescription": "Да бисте отпремили и креирали нове датотеке и фолдере, ослободите простор на диску или управљајте квотом по кориснику у <1>Storage management settings.", - "PersonalUserQuotaDescription": "Да бисте отпремили и креирали нове датотеке и фасцикле, ослободите простор на диску или контактирајте администратора да повец́а квоту за складиштење.", + "PersonalUserQuotaDescription": "Да бисте отпремили и креирали нове датотеке и фасцикле, ослободите простор на диску или контактирајте администратора {{productName}} да повец́а квоту за складиштење.", + "RemoveFilesOrClickToUpgrade": "Уклоните непотребне датотеке или <1> кликните овде да бисте надоградили ваш тарифни план.", + "RemoveFilesOrContactToUpgrade": "Уклоните непотребне датотеке или контактирајте {{productName}} администратора да бисте надоградили тарифни план.", + "RemoveFilesOrContactToUpgradeQuota": "Уклоните непотребне датотеке или контактирајте {{productName}} администратора да бисте повећали складишну квоту.", "RequestActivation": "Затражи активацију још једном", + "RoomQuotaDescription": "Можете архивирати непотребне просторије или <1>кликните овде да пронађете прикладнији ценовни план за ваш {{productName}}.", "RoomQuotaHeader": "Број соба ц́е ускоро бити прекорачен: {{currentValue}} / {{maxValue}}", + "RoomQuotaHeaderLimit": "Достигнут је лимит за број просторија: {{currentValue}} / {{maxValue}}", + "StorageAndRoomHeader": "Лимит за складишни простор и број просторија ће ускоро бити прекорачен", + "StorageAndRoomLimitHeader": "Достигнут је лимит за складишни простор и број просторија", "StorageAndUserHeader": "Ограничења складишта и администратора/напредних корисника ће ускоро бити прекорачена.", + "StorageAndUserTariffLimitHeader": "Достигнут је лимит за складишни простор и број админа/напредних корисника", + "StorageLimitHeader": "Достигнут је лимит за складишни простор: {{currentValue}} / {{maxValue}}", "StorageQuotaHeader": "Количина меморијског простора ц́е ускоро бити прекорачена: {{currentValue}} / {{maxValue}}", "TenantCustomQuotaDescription": "Можете уклонити непотребне датотеке или променити квоту у <1>Storage management settings.", - "UserQuotaHeader": "Број администратора/напредних корисника ће ускоро бити прекорачен: {{currentValue}} / {{maxValue}}." + "UserQuotaHeader": "Број администратора/напредних корисника ће ускоро бити прекорачен: {{currentValue}} / {{maxValue}}.", + "UserTariffAlmostReached": "Када се достигне лимит, сви корисници ће бити додати са само Корисничким дозволама. Да бисте могли даље да додајете админе/напредне кориснике, контактирајте {{productName}} администратора да бисте надоградили тарифни план.", + "UserTariffAlmostReachedForAdmins": "Када се достигне лимит, сви корисници ће бити додати са само Корисничким дозволама. Да бисте могли даље да додајете админе/напредне кориснике, <1> кликните овде да бисте надоградили ваш тарифни план.", + "UserTariffLimitHeader": "Достигнут је лимит за број админа/напредних корисника: {{currentValue}} / {{maxValue}}", + "UserTariffReached": "Сви корисници ће бити додати са само Корисничким дозволама. Да бисте могли даље да додајете админе/напредне кориснике, контактирајте {{productName}} администратора да бисте надоградили тарифни план.", + "UserTariffReachedForAdmins": "Сви корисници ће бити додати са само Корисничким дозволама. Да бисте могли даље да додајете админе/напредне кориснике, <1>кликните овде да бисте надоградили ваш тарифни план." } diff --git a/packages/client/public/locales/sr-Cyrl-RS/PDFFormDialog.json b/packages/client/public/locales/sr-Cyrl-RS/PDFFormDialog.json index f8ac65277e..63e83f07ba 100644 --- a/packages/client/public/locales/sr-Cyrl-RS/PDFFormDialog.json +++ b/packages/client/public/locales/sr-Cyrl-RS/PDFFormDialog.json @@ -1,4 +1,5 @@ { + "PDFform": "PDF образац", "PDFFormEditDialogDescription": "Да ли желите да пређете на режим за уређивање обрасца? Имајте на уму да образац више нец́е бити доступан за попуњавање и да ц́ете морати поново да кликнете на дугме Започни попуњавање након уређивања да бисте га попунили.", "PDFFormEditDialogTitle": "Уређивање формулара", "PDFFormIsReadyToast": "PDF формулар <1>{{filename}} је спреман да буде попуњен.", diff --git a/packages/client/public/locales/sr-Cyrl-RS/Payments.json b/packages/client/public/locales/sr-Cyrl-RS/Payments.json index c0cddfaa1a..8cfa8d35af 100644 --- a/packages/client/public/locales/sr-Cyrl-RS/Payments.json +++ b/packages/client/public/locales/sr-Cyrl-RS/Payments.json @@ -9,6 +9,9 @@ "BusinessSuggestion": "Прилагоди свој {{planName}} план", "BusinessTitle": "Користи {{planName}} план", "BusinessUpdated": "{{planName}} план ажуриран", + "CannotCreateNewRoom": "Просторија не може бити креирана", + "CannotCreatePaidUsers": "Плаћени корисници не могу бити додати", + "CannotRestoreRoom": "Просторија не може бити обновљена", "ChooseNewPayer": "Изабери новог Платиоца", "ChooseNewPlan": "Да ли бисте желели да изаберете нови ценовни план?", "ContactUs": "За питања продаје, контактирајте нас на", @@ -22,12 +25,18 @@ "InvalidEmailWithoutActiveSubscription": "Препоручујемо да изаберете новог Платиоца који добија приступ подешавањима претплате у {{productName}}-у.", "InvalidEmailWithoutActiveSubscriptionByAdmin": "Препоручујемо да контактирате власника {{productName}}-а да бисте изабрали новог Платиоца.", "ManagerTypesDescription": "Типови администраторских налога и њихове привилегије", + "NewRoomWillExceedLimit": "Креирање ове просторије није могуће јер је достигнут лимит за број просторија укључених у ваш тренутни план.", + "NewUsersWillExceedMembersLimit": "Додавање нових плаћених корисника није могуће јер је достигнут лимит за број админа укључених у ваш тренутни план.", + "NotPossibleRoomRestoring": "Обнављање ове просторије није могуће јер је достигнут лимит за број просторија укључених у ваш тренутни план.", + "NumberOfRoomsAccordingToTariff": "Број просторија према вашем тарифном плану: {{currentValue}}/{{maxValue}}", + "NumberOfUsersAccordingToTariff": "Број админа/напредних корисника према вашем тарифном плану: {{currentValue}}/{{maxValue}}", "Pay": "Плати", "Payer": "Платилац", "PayerDescription": "Овај корисник има приступ детаљима плац́ања и једини је корисник који може да прилагоди квоту и изврши плац́ања. Власник {{productName}}-а, као и сам менаџер плац́ања, могу да поново доделе улогу менаџера плац́ања користец́и портал за кориснике Stripe.", "PriceCalculation": "Израчунај своју цену", "RenewSubscription": "Обновите претплату на план {{planName}}", "RoomManagerDescription": "Администрација и архивирање просторија, позивање корисника и управљање. Неколико администратора може бити додељено соби.", + "RoomsQuotaAlmostExhausted": "Квота просторија је скоро исцрпљена.", "StartupSuggestion": "Урадите више са {{planName}} планом", "StartupTitle": "Користите бесплатни {{planName}} план", "StripeCustomerPortal": "идите на Stripe портал за купце", @@ -36,5 +45,6 @@ "UpgradePlan": "План надоградње", "UserNotFound": "Корисник <1>{{email}} није пронађен.", "UserNotFoundMatchingEmail": "Нисмо могли да пронађемо корисника са поклапајућим Stripe емаил-ом.", + "UsersQuotaAlmostExhausted": "Квота плаћених корисника је скоро исцрпљена.", "YourPrice": "Ваша цена" } diff --git a/packages/client/public/locales/sr-Latn-RS/Files.json b/packages/client/public/locales/sr-Latn-RS/Files.json index ca32abc7c5..a36ed2b1b2 100644 --- a/packages/client/public/locales/sr-Latn-RS/Files.json +++ b/packages/client/public/locales/sr-Latn-RS/Files.json @@ -117,6 +117,7 @@ "OpenLocation": "Otvori lokaciju", "PasswordAccess": "Pristup lozinki", "PasswordLink": "Dodaj lozinku da zaštitiš svoj link.", + "PasswordProtectedFiles": "Molimo <0>unesite lozinku za zaštićene datoteke da biste nastavili", "PasswordSuccessfullyCopied": "Lozinka uspešno kopirana", "Pin": "Zakači", "PinToTop": "Zakači na vrh", diff --git a/packages/client/public/locales/sr-Latn-RS/InviteDialog.json b/packages/client/public/locales/sr-Latn-RS/InviteDialog.json index 7f7a7c9600..755a693694 100644 --- a/packages/client/public/locales/sr-Latn-RS/InviteDialog.json +++ b/packages/client/public/locales/sr-Latn-RS/InviteDialog.json @@ -2,7 +2,7 @@ "AddManually": "Dodaj ručno", "AddManuallyDescriptionAccounts": "Pozovi nove korisnike na {{productName}} lično putem email-a.", "AddManuallyDescriptionRoom": "Dodajte postojeće korisnike {{productName}}-a u sobu koristeći njihova imena ili pozovite nove korisnike lično putem email-a.", - "EmailErrorMessage": "Email adresa nije važeća. Možete urediti email klikom na njega.", + "EmailErrorMessage": "Email adresa nije važeća. Možete urediti email dvostrukim klikom na njega.", "GroupMaxAvailableRoleWarning": "Grupe se mogu dodati u prostoriju sa {{roleName}} ulogom kao maksimum. Međutim, možete promeniti ulogu pojedinačnih korisnika u grupi nakon uspešnog dodavanja. ", "InvitationLanguage": "Jezik pozivnice", "InviteAccountSearchPlaceholder": "Pozovi ljude preko email-a", diff --git a/packages/client/public/locales/sr-Latn-RS/Ldap.json b/packages/client/public/locales/sr-Latn-RS/Ldap.json index 734543c896..460b49a2f0 100644 --- a/packages/client/public/locales/sr-Latn-RS/Ldap.json +++ b/packages/client/public/locales/sr-Latn-RS/Ldap.json @@ -36,6 +36,7 @@ "LdapPortNumber": "Broj Porta", "LdapPortNumberTooltip": "Unesite ime porta za vaš LDAP server/Aktivni Direktorijum.", "LdapQuota": "Korisnička kvota", + "LdapQuotaInfo": "Da biste mogli da koristite ovaj atribut, omogućite korisničku kvotu u <0>Podešavanja upravljanja skladištem", "LdapSecondName": "Drugo ime", "LdapSendWelcomeLetter": "Pošalji dobrodošlo pismo", "LdapSendWelcomeLetterTooltip": "Ako je označeno, svi novi korisnici će dobiti pismo dobrodošlice. Dostupno samo kada je Mejl Atribut mapiran na LDAP.", @@ -66,6 +67,7 @@ "LdapUserDNTooltip": "Unesite prepoznatljivo ime u direktorijum koji sadrži korisnike koje želite da dodate.", "LdapUserFilter": "Korisnički Filter", "LdapUserFilterTooltip": "Koristite LDAP filter za pretragu da biste izabrali korisnike koji moraju biti uvezeni.", + "LdapUserQuotaTooltip": "Da biste postavili skladišnu kvotu za korisnika, dodajte atribut u LDAP direktorijum (na primer, UsersQuotaLimit) i unesite celobrojnu vrednost za ovaj atribut. Kvota će se prikazivati u bajtovima. Ovde navedite samo naziv atributa. Ovaj atribut će biti primenjen samo tokom prvog podešavanja i kasnije se može promeniti ručno u odeljku Računi.", "LdapUsersType": "Tip korisnika", "LdapUsersTypeInfo": "Korisnici mogu pristupiti samo prostorijama u koje su pozvani od strane administratora i ne mogu kreirati svoje prostorije, foldere ili datoteke. Izaberite drugu vrstu ispod da biste obezbedili više dozvola. U suprotnom, možete promeniti tip ručno u odeljku Nalozi.", "LdapUserTypeTooltip": "Svi korisnici će biti dodati na {{productName}} sa odabranim tipom." diff --git a/packages/client/public/locales/sr-Latn-RS/MainBar.json b/packages/client/public/locales/sr-Latn-RS/MainBar.json index 496d9d8101..6444dd954c 100644 --- a/packages/client/public/locales/sr-Latn-RS/MainBar.json +++ b/packages/client/public/locales/sr-Latn-RS/MainBar.json @@ -1,12 +1,31 @@ { + "ArchivedRoomsOrContact": "Možete arhivirati nepotrebne prostorije ili kontaktirati {{productName}} administratora da biste nadogradili tarifni plan.", + "ClickToUpgradeTariff": "<1>Kliknite ovde da biste nadogradili vaš tarifni plan.", "ConfirmEmailDescription": "Koristite vezu datu u email-u za aktivaciju. Niste dobili email sa linkom za aktivaciju?", "ConfirmEmailHeader": "Aktivirajte svoju email ({{ email }}) da biste dobili pristup funkcijama {{productName}}-a.", + "ContactToUpgradeTariff": "Kontaktirajte {{productName}} administratora da biste nadogradili tarifni plan.", + "PersonalQuotaHeader": "Vaša lična skladišna kvota je prekoračena", + "PersonalQuotaHeaderForAdmins": "Skladišna kvota po korisniku prekoračena", "PersonalUserQuotaAdminsDescription": "Da biste otpremili i kreirali nove datoteke i foldere, oslobodite prostor na disku ili upravljajte kvotom po korisniku u <1>Storage management settings", - "PersonalUserQuotaDescription": "Da biste otpremili i kreirali nove datoteke i fascikle, oslobodite prostor na disku ili kontaktirajte administratora da poveća kvotu za skladištenje.", + "PersonalUserQuotaDescription": "Da biste otpremili i kreirali nove datoteke i fascikle, oslobodite prostor na disku ili kontaktirajte administratora {{productName}} da poveća kvotu za skladištenje.", + "RemoveFilesOrClickToUpgrade": "Uklonite nepotrebne datoteke ili <1>kliknite ovde da biste nadogradili vaš tarifni plan.", + "RemoveFilesOrContactToUpgrade": "Uklonite nepotrebne datoteke ili kontaktirajte {{productName}} administratora da biste nadogradili tarifni plan.", + "RemoveFilesOrContactToUpgradeQuota": "Uklonite nepotrebne datoteke ili kontaktirajte {{productName}} administratora da biste povećali skladišnu kvotu.", "RequestActivation": "Zatraži aktivaciju još jednom", + "RoomQuotaDescription": "Možete arhivirati nepotrebne prostorije ili <1>kliknite ovde da pronađete prikladniji cenovni plan za vaš {{productName}}.", "RoomQuotaHeader": "Broj soba će uskoro biti prekoračen: {{currentValue}} / {{maxValue}}", + "RoomQuotaHeaderLimit": "Dostignut je limit za broj prostorija: {{currentValue}} / {{maxValue}}", + "StorageAndRoomHeader": "Limit za skladišni prostor i broj prostorija će uskoro biti prekoračen", + "StorageAndRoomLimitHeader": "Dostignut je limit za skladišni prostor i broj prostorija", "StorageAndUserHeader": "Ograničenja skladišta i administratora/naprednih korisnika će uskoro biti prekoračena.", + "StorageAndUserTariffLimitHeader": "Dostignut je limit za skladišni prostor i broj admina/naprednih korisnika", + "StorageLimitHeader": "Dostignut je limit za skladišni prostor: {{currentValue}} / {{maxValue}}", "StorageQuotaHeader": "Količina memorijskog prostora će uskoro biti prekoračena: {{currentValue}} / {{maxValue}}", "TenantCustomQuotaDescription": "Možete ukloniti nepotrebne datoteke ili promeniti kvotu u <1>Storage management settings.", - "UserQuotaHeader": "Broj administratora/naprednih korisnika će uskoro biti prekoračen: {{currentValue}} / {{maxValue}}." + "UserQuotaHeader": "Broj administratora/naprednih korisnika će uskoro biti prekoračen: {{currentValue}} / {{maxValue}}.", + "UserTariffAlmostReached": "Kada se dostigne limit, svi korisnici će biti dodati sa samo Korisničkim dozvolama. Da biste mogli dalje da dodajete admine/napredne korisnike, kontaktirajte {{productName}} administratora da biste nadogradili tarifni plan.", + "UserTariffAlmostReachedForAdmins": "Kada se dostigne limit, svi korisnici će biti dodati sa samo Korisničkim dozvolama. Da biste mogli dalje da dodajete admine/napredne korisnike, <1>kliknite ovde da biste nadogradili vaš tarifni plan.", + "UserTariffLimitHeader": "Dostignut je limit za broj admina/naprednih korisnika: {{currentValue}} / {{maxValue}}", + "UserTariffReached": "Svi korisnici će biti dodati sa samo Korisničkim dozvolama. Da biste mogli dalje da dodajete admine/napredne korisnike, kontaktirajte {{productName}} administratora da biste nadogradili tarifni plan.", + "UserTariffReachedForAdmins": "Svi korisnici će biti dodati sa samo Korisničkim dozvolama. Da biste mogli dalje da dodajete admine/napredne korisnike, <1>kliknite ovde da biste nadogradili vaš tarifni plan." } diff --git a/packages/client/public/locales/sr-Latn-RS/PDFFormDialog.json b/packages/client/public/locales/sr-Latn-RS/PDFFormDialog.json index 9221c5ca6c..85fd1a64fa 100644 --- a/packages/client/public/locales/sr-Latn-RS/PDFFormDialog.json +++ b/packages/client/public/locales/sr-Latn-RS/PDFFormDialog.json @@ -1,4 +1,5 @@ { + "PDFform": "PDF obrazac", "PDFFormEditDialogDescription": "Da li želite da pređete na režim za uređivanje obrasca? Imajte na umu da obrazac više neće biti dostupan za popunjavanje i da ćete morati ponovo da kliknete na dugme Započni popunjavanje nakon uređivanja da biste ga popunili.", "PDFFormEditDialogTitle": "Uređivanje Formulara", "PDFFormIsReadyToast": "PDF formular <1>{{filename}} je spreman da bude popunjen.", diff --git a/packages/client/public/locales/sr-Latn-RS/Payments.json b/packages/client/public/locales/sr-Latn-RS/Payments.json index d5dd3f0faf..73e861c8c3 100644 --- a/packages/client/public/locales/sr-Latn-RS/Payments.json +++ b/packages/client/public/locales/sr-Latn-RS/Payments.json @@ -9,6 +9,9 @@ "BusinessSuggestion": "Prilagodi svoj {{planName}} plan", "BusinessTitle": "Koristi {{planName}} plan", "BusinessUpdated": "{{planName}} plan ažuriran", + "CannotCreateNewRoom": "Prostorija ne može biti kreirana", + "CannotCreatePaidUsers": "Plaćeni korisnici ne mogu biti dodati", + "CannotRestoreRoom": "Prostorija ne može biti obnovljena", "ChooseNewPayer": "Izaberi novog Platioca", "ChooseNewPlan": "Da li biste želeli da izaberete novi cenovni plan?", "ContactUs": "Za pitanja prodaje, kontaktirajte nas na", @@ -22,12 +25,18 @@ "InvalidEmailWithoutActiveSubscription": "Preporučujemo da izaberete novog Platioca koji dobija pristup podešavanjima pretplate u {{productName}}-u.", "InvalidEmailWithoutActiveSubscriptionByAdmin": "Preporučujemo da kontaktirate vlasnika {{productName}}-a da biste izabrali novog Platioca.", "ManagerTypesDescription": "Tipovi administratorskih naloga i njihove privilegije", + "NewRoomWillExceedLimit": "Kreiranje ove prostorije nije moguće jer je dostignut limit za broj prostorija uključenih u vaš trenutni plan.", + "NewUsersWillExceedMembersLimit": "Dodavanje novih plaćenih korisnika nije moguće jer je dostignut limit za broj admina uključenih u vaš trenutni plan.", + "NotPossibleRoomRestoring": "Obnavljanje ove prostorije nije moguće jer je dostignut limit za broj prostorija uključenih u vaš trenutni plan.", + "NumberOfRoomsAccordingToTariff": "Broj prostorija prema vašem tarifnom planu: {{currentValue}}/{{maxValue}}", + "NumberOfUsersAccordingToTariff": "Broj admina/naprednih korisnika prema vašem tarifnom planu: {{currentValue}}/{{maxValue}}", "Pay": "Plati", "Payer": "Platilac", "PayerDescription": "Ovaj korisnik ima pristup detaljima plaćanja i jedini je korisnik koji može da prilagodi kvotu i izvrši plaćanja. Vlasnik {{productName}}-a, kao i sam menadžer plaćanja, mogu da ponovo dodele ulogu menadžera plaćanja koristeći portal za korisnike Stripe.", "PriceCalculation": "Izračunaj svoju cenu", "RenewSubscription": "Obnovite pretplatu na plan {{planName}}", "RoomManagerDescription": "Administracija i arhiviranje prostorija, pozivanje korisnika i upravljanje. Nekoliko administratora može biti dodeljeno sobi.", + "RoomsQuotaAlmostExhausted": "Kvota prostorija je skoro iscrpljena.", "StartupSuggestion": "Uradite više sa {{planName}} planom", "StartupTitle": "Koristite besplatni {{planName}} plan", "StripeCustomerPortal": "idite na Stripe portal za kupce", @@ -36,5 +45,6 @@ "UpgradePlan": "Plan nadogradnje", "UserNotFound": "Korisnik <1>{{email}} nije pronađen.", "UserNotFoundMatchingEmail": "Nismo mogli da pronađemo korisnika sa poklapajućim Stripe email-om.", + "UsersQuotaAlmostExhausted": "Kvota plaćenih korisnika je skoro iscrpljena.", "YourPrice": "Vaša cena" } diff --git a/packages/client/public/locales/tr/Files.json b/packages/client/public/locales/tr/Files.json index dd50810e4b..4dde0d1c70 100644 --- a/packages/client/public/locales/tr/Files.json +++ b/packages/client/public/locales/tr/Files.json @@ -117,6 +117,7 @@ "OpenLocation": "Konumu aç", "PasswordAccess": "Şifre erişimi", "PasswordLink": "Bağlantınızı korumak için bir şifre ekleyin.", + "PasswordProtectedFiles": "Devam etmek için lütfen korunan dosyalar için <0>bir şifre girin", "PasswordSuccessfullyCopied": "Şifre başarıyla kopyalandı", "Pin": "Sabitle", "PinToTop": "En üste sabitle", diff --git a/packages/client/public/locales/tr/InviteDialog.json b/packages/client/public/locales/tr/InviteDialog.json index 461d2913d4..e680080432 100644 --- a/packages/client/public/locales/tr/InviteDialog.json +++ b/packages/client/public/locales/tr/InviteDialog.json @@ -2,7 +2,7 @@ "AddManually": "Manuel olarak ekle", "AddManuallyDescriptionAccounts": "{{productName}}'e yeni kullanıcıları kişisel olarak e-posta yoluyla davet et", "AddManuallyDescriptionRoom": "Adları kullanarak mevcut {{productName}} 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.", + "EmailErrorMessage": "E-posta adresi geçerli değil. E-postayı çift tıklayarak düzenleyebilirsiniz.", "GroupMaxAvailableRoleWarning": "Gruplar bir odaya en fazla {{roleName}} rolü ile eklenebilir. Fakat başarılı bir şekilde eklendikten sonra gruptaki bireysel kullanıcıların rolünü değiştirebilirsiniz.", "InvitationLanguage": "Davet dili", "InviteAccountSearchPlaceholder": "İnsanları e-posta ile davet et", diff --git a/packages/client/public/locales/tr/Ldap.json b/packages/client/public/locales/tr/Ldap.json index 66e776f863..79d476bbd8 100644 --- a/packages/client/public/locales/tr/Ldap.json +++ b/packages/client/public/locales/tr/Ldap.json @@ -36,6 +36,7 @@ "LdapPortNumber": "Port Numarası", "LdapPortNumberTooltip": "LDAP sunucunuz/Aktif Dizin için bağlantı noktası numarasını girin.", "LdapQuota": "Kullanıcı kotası", + "LdapQuotaInfo": "Bu özelliği kullanabilmek için <0>Depolama yönetimi ayarlarında kullanıcı kotasını etkinleştirin", "LdapSecondName": "İkinci isim", "LdapSendWelcomeLetter": "Hoş geldiniz yazısı gönderin", "LdapSendWelcomeLetterTooltip": "İşaretlenirse tüm yeni kullanıcılar hoş geldiniz yazısı alır. Yalnızca Posta Özelliği LDAP ile eşleştirildiğinde kullanılabilir.", @@ -66,6 +67,7 @@ "LdapUserDNTooltip": "Eklemek istediğiniz kullanıcıları içeren dizinin ayırt edici adını girin.", "LdapUserFilter": "Kullanıcı Filtresi", "LdapUserFilterTooltip": "İçe aktarılması gereken kullanıcıları seçmek için arama LDAP filtresini kullanın.", + "LdapUserQuotaTooltip": "Kullanıcı için bir depolama kotası ayarlamak için, LDAP dizinine bir özellik ekleyin (örneğin, UsersQuotaLimit) ve bu özellik için bir tamsayı değeri girin. Kota değerini bayt cinsinden gösterecektir. Burada sadece özellik adını belirtin. Bu özellik yalnızca ilk kurulum sırasında uygulanacaktır, daha sonra Hesaplar bölümünde manuel olarak değiştirilebilir.", "LdapUsersType": "Kullanıcı tipi", "LdapUsersTypeInfo": "Kullanıcılar yalnızca yöneticiler tarafından davet edildikleri odalara erişebilir ve kendi odalarını, klasörlerini veya dosyalarını oluşturamazlar. Daha fazla izin sağlamak için aşağıdan başka bir tür seçin. Aksi halde, türü Hesaplar bölümünden manuel olarak değiştirebilirsiniz.", "LdapUserTypeTooltip": "Tüm kullanıcılar {{productName}} içerisine seçilen türle eklenecektir." diff --git a/packages/client/public/locales/tr/MainBar.json b/packages/client/public/locales/tr/MainBar.json index 2d5ab3f9cf..85ea71a170 100644 --- a/packages/client/public/locales/tr/MainBar.json +++ b/packages/client/public/locales/tr/MainBar.json @@ -1,12 +1,31 @@ { + "ArchivedRoomsOrContact": "Gereksiz odaları arşivleyebilir veya tarife planını yükseltmek için {{productName}} yöneticisiyle iletişime geçebilirsiniz.", + "ClickToUpgradeTariff": "<1>Tarife planınızı yükseltmek için buraya tıklayın.", "ConfirmEmailDescription": "Aktivasyon e-postasında verilen bağlantıyı kullanın. Etkinleştirme bağlantısını içeren bir e-posta almadınız mı?", "ConfirmEmailHeader": "{{productName}} özelliklerine erişmek için lütfen e-postanızı ({{ email }}) etkinleştirin.", + "ContactToUpgradeTariff": "Tarife planını yükseltmek için {{productName}} yöneticisiyle iletişime geçin.", + "PersonalQuotaHeader": "Kişisel depolama kotanız aşıldı", + "PersonalQuotaHeaderForAdmins": "Kullanıcı başına depolama kotası aşıldı", "PersonalUserQuotaAdminsDescription": "Yeni dosya ve klasörler yüklemek ve oluşturmak için lütfen disk alanını boşaltın veya <1>Depolama yönetimi ayarlarında kullanıcı başına kotayı yönetin.", - "PersonalUserQuotaDescription": "Yeni dosya ve klasörler yüklemek ve oluşturmak için lütfen disk alanını boşaltın veya depolama kotasını artırmak için yöneticiyle iletişime geçin.", + "PersonalUserQuotaDescription": "Yeni dosya ve klasörler yüklemek ve oluşturmak için lütfen disk alanını boşaltın veya depolama kotasını artırmak için {{productName}} yöneticiyle iletişime geçin.", + "RemoveFilesOrClickToUpgrade": "Gereksiz dosyaları kaldırın veya tarife planınızı yükseltmek için <1>buraya tıklayın.", + "RemoveFilesOrContactToUpgrade": "Gereksiz dosyaları kaldırın veya tarife planını yükseltmek için {{productName}} yöneticisiyle iletişime geçin.", + "RemoveFilesOrContactToUpgradeQuota": "Gereksiz dosyaları kaldırın veya depolama kotasını artırmak için {{productName}} yöneticisiyle iletişime geçin.", "RequestActivation": "Tekrar aktivasyon iste", + "RoomQuotaDescription": "Gereksiz odaları arşivleyebilirsiniz veya {{productName}} için daha uygun bir fiyatlandırma planı bulmak için <1>buraya tıklayın.", "RoomQuotaHeader": "Odalar aşılmak üzere: {{currentValue}} / {{maxValue}}", + "RoomQuotaHeaderLimit": "Oda sayısı için sınıra ulaşıldı: {{currentValue}} / {{maxValue}}", + "StorageAndRoomHeader": "Depolama alanı ve oda sayısı sınırı aşılmak üzere", + "StorageAndRoomLimitHeader": "Depolama alanı ve oda sayısı için sınıra ulaşıldı", "StorageAndUserHeader": "Depolama ve yöneticiler/uzman kullanıcılar limitleri aşılmak üzere.", + "StorageAndUserTariffLimitHeader": "Depolama alanı ve yönetici/uzman kullanıcı sayısı için sınıra ulaşıldı", + "StorageLimitHeader": "Depolama alanı için sınıra ulaşıldı: {{currentValue}} / {{maxValue}}", "StorageQuotaHeader": "Depolama alanı miktarı aşılmak üzere: {{currentValue}} / {{maxValue}}", "TenantCustomQuotaDescription": "Gereksiz dosyaları kaldırabilir veya <1>Depolama yönetimi ayarlarından kotayı değiştirebilirsiniz.", - "UserQuotaHeader": "Yönetici/uzman kullanıcı sayısı aşılmak üzere: {{currentValue}} / {{maxValue}}." + "UserQuotaHeader": "Yönetici/uzman kullanıcı sayısı aşılmak üzere: {{currentValue}} / {{maxValue}}.", + "UserTariffAlmostReached": "Sınıra ulaşıldığında, tüm kullanıcılar sadece Kullanıcı izinleriyle eklenecektir. Daha fazla yönetici/uzman kullanıcı ekleyebilmek için tarife planını yükseltmek üzere {{productName}} yöneticisiyle iletişime geçin.", + "UserTariffAlmostReachedForAdmins": "Sınıra ulaşıldığında, tüm kullanıcılar sadece Kullanıcı izinleriyle eklenecektir. Daha fazla yönetici/uzman kullanıcı ekleyebilmek için <1>tarife planınızı yükseltmek üzere buraya tıklayın.", + "UserTariffLimitHeader": "Yönetici/uzman kullanıcısı sayısı için sınıra ulaşıldı: {{currentValue}} / {{maxValue}}", + "UserTariffReached": "Tüm kullanıcılar sadece Kullanıcı izinleriyle eklenecektir. Daha fazla yönetici/uzman kullanıcı ekleyebilmek için tarife planını yükseltmek üzere {{productName}} yöneticisiyle iletişime geçin.", + "UserTariffReachedForAdmins": "Tüm kullanıcılar sadece Kullanıcı izinleriyle eklenecektir. Daha fazla yönetici/uzman kullanıcı ekleyebilmek için <1>tarife planınızı yükseltmek üzere buraya tıklayın." } diff --git a/packages/client/public/locales/tr/PDFFormDialog.json b/packages/client/public/locales/tr/PDFFormDialog.json index c86c8c8f72..73b089343c 100644 --- a/packages/client/public/locales/tr/PDFFormDialog.json +++ b/packages/client/public/locales/tr/PDFFormDialog.json @@ -1,4 +1,5 @@ { + "PDFform": "PDF formu", "PDFFormEditDialogDescription": "Form düzenleme moduna geçmek istiyor musunuz? Lütfen formun artık doldurulamayacağını ve doldurmak için düzenledikten sonra Doldurmaya başla düğmesine tekrar tıklamanız gerekeceğini unutmayın.", "PDFFormEditDialogTitle": "Form düzenleme", "PDFFormIsReadyToast": "PDF formu <1>{{filename}} doldurulmaya hazır.", diff --git a/packages/client/public/locales/tr/Payments.json b/packages/client/public/locales/tr/Payments.json index b91e8010ce..9823f2ef33 100644 --- a/packages/client/public/locales/tr/Payments.json +++ b/packages/client/public/locales/tr/Payments.json @@ -9,6 +9,9 @@ "BusinessSuggestion": "{{planName}} planınızı özelleştirin", "BusinessTitle": "{{planName}} planını kullanıyorsunuz", "BusinessUpdated": "{{planName}} planı güncellendi", + "CannotCreateNewRoom": "Oda oluşturulamıyor", + "CannotCreatePaidUsers": "Ücretli kullanıcılar eklenemez", + "CannotRestoreRoom": "Oda geri yüklenemez", "ChooseNewPayer": "Yeni bir Ödeme Yapan seçin", "ChooseNewPlan": "Yeni bir fiyatlandırma planı seçmek ister misiniz?", "ContactUs": "Satışla ilgili sorular için şu adresten bize ulaşın", @@ -22,12 +25,18 @@ "InvalidEmailWithoutActiveSubscription": "{{productName}}'te abonelik ayarlarına erişimi olan yeni bir Ödeme Yapan seçmenizi öneririz.", "InvalidEmailWithoutActiveSubscriptionByAdmin": "Yeni bir Ödeme Yapan seçmek için {{productName}} sahibiyle iletişime geçmenizi öneririz.", "ManagerTypesDescription": "Yönetici hesabı türleri ve ayrıcalıkları", + "NewRoomWillExceedLimit": "Mevcut planınıza dahil olan oda sayısı sınırına ulaşıldığı için bu odayı oluşturmak mümkün değil.", + "NewUsersWillExceedMembersLimit": "Mevcut planınıza dahil olan yönetici sayısı sınırına ulaşıldığı için yeni ücretli kullanıcılar eklemek mümkün değil.", + "NotPossibleRoomRestoring": "Mevcut planınıza dahil olan oda sayısı sınırına ulaşıldığı için bu odayı geri yüklemek mümkün değil.", + "NumberOfRoomsAccordingToTariff": "Tarife planınıza göre oda sayısı: {{currentValue}}/{{maxValue}}", + "NumberOfUsersAccordingToTariff": "Tarife planınıza göre yönetici/uzman kullanıcısı sayısı: {{currentValue}}/{{maxValue}}", "Pay": "Öde", "Payer": "Ödeyen", "PayerDescription": "Bu kullanıcının ödeme detaylarına erişimi vardır ve kotayı ayarlayıp ödeme yapabilen tek kullanıcıdır. {{productName}} sahibi ve ödeme yöneticisinin kendisi, Stripe müşteri portalını kullanarak ödeme yöneticisi rolünü yeniden atayabilir.", "PriceCalculation": "Fiyatını hesapla", "RenewSubscription": "{{planName}} planı aboneliğini yenile", "RoomManagerDescription": "Oda yönetimi ve arşivleme, kullanıcı daveti ve yönetimi. Odaya birkaç yönetici atanabilir.", + "RoomsQuotaAlmostExhausted": "Oda kotası neredeyse doldu.", "StartupSuggestion": "{{planName}} planıyla daha fazlasını yapın", "StartupTitle": "Ücretsiz {{planName}} planı kullanıyorsunuz", "StripeCustomerPortal": "Stripe müşteri portalına gidin", @@ -36,5 +45,6 @@ "UpgradePlan": "Yükseltme planı", "UserNotFound": "<1>{{email}} kullanıcısı bulunamad.", "UserNotFoundMatchingEmail": "Eşleşen Stripe e-postasına sahip kullanıcıyı bulamadık.", + "UsersQuotaAlmostExhausted": "Ücretli kullanıcı kotası neredeyse doldu.", "YourPrice": "Ücret" } diff --git a/packages/client/public/locales/uk-UA/Files.json b/packages/client/public/locales/uk-UA/Files.json index 9754f2d56b..f056e40875 100644 --- a/packages/client/public/locales/uk-UA/Files.json +++ b/packages/client/public/locales/uk-UA/Files.json @@ -117,6 +117,7 @@ "OpenLocation": "Відкрити місцерозташування", "PasswordAccess": "Доступ за паролем", "PasswordLink": "Додайте пароль, щоб захистити своє посилання.", + "PasswordProtectedFiles": "Щоб продовжити, <0>введіть пароль для захищених файлів", "PasswordSuccessfullyCopied": "Пароль успішно скопійовано", "Pin": "Закріпити", "PinToTop": "Закріпити вгорі", diff --git a/packages/client/public/locales/uk-UA/InviteDialog.json b/packages/client/public/locales/uk-UA/InviteDialog.json index 07d3c8f2f7..b85798c072 100644 --- a/packages/client/public/locales/uk-UA/InviteDialog.json +++ b/packages/client/public/locales/uk-UA/InviteDialog.json @@ -2,7 +2,7 @@ "AddManually": "Додати вручну", "AddManuallyDescriptionAccounts": "Запрошуйте нових користувачів до {{productName}} особисто за допомогою електронної пошти", "AddManuallyDescriptionRoom": "Додайте наявних користувачів {{productName}} до кімнати, використовуючи імена, або запросіть нових користувачів особисто електронною поштою", - "EmailErrorMessage": "Адреса електронної пошти недійсна. Щоб редагувати адресу електронної пошти, натисніть на неї.", + "EmailErrorMessage": "Адреса електронної пошти недійсна. Щоб редагувати адресу електронної пошти, двічі натисніть на неї.", "GroupMaxAvailableRoleWarning": "Групи можна додавати до кімнати з максимальною роллю {{roleName}}. Однак ви можете змінити роль окремих користувачів у групі після її успішного додавання.", "InvitationLanguage": "Мова запрошення", "InviteAccountSearchPlaceholder": "Запрошуйте людей за адресою електронної пошти", diff --git a/packages/client/public/locales/uk-UA/Ldap.json b/packages/client/public/locales/uk-UA/Ldap.json index 6c79c2ec8f..28ae483633 100644 --- a/packages/client/public/locales/uk-UA/Ldap.json +++ b/packages/client/public/locales/uk-UA/Ldap.json @@ -36,6 +36,7 @@ "LdapPortNumber": "Номер порту", "LdapPortNumberTooltip": "Введіть номер порту для вашого сервера LDAP/Active Directory.", "LdapQuota": "Квота користувача", + "LdapQuotaInfo": "Щоб мати можливість використовувати цей атрибут, увімкніть квоту користувача в розділі <0>Параметри керування сховищем", "LdapSecondName": "Друге ім’я", "LdapSendWelcomeLetter": "Відправити вітальний лист", "LdapSendWelcomeLetterTooltip": "Якщо позначено, усі нові користувачі отримають вітальний лист. Доступно, лише коли атрибут пошти зіставляється з LDAP.", @@ -66,6 +67,7 @@ "LdapUserDNTooltip": "Введіть унікальне ім'я каталогу, який містить користувачів що ви хочете додати.", "LdapUserFilter": "Фільтр користувачів", "LdapUserFilterTooltip": "Використайте фільтр пошуку LDAP, щоб обрати користувачів для імпорту.", + "LdapUserQuotaTooltip": "Щоб установити квоту пам'яті для користувача, додайте атрибут в каталозі LDAP (наприклад, UsersQuotaLimit) та введіть ціле значення для цього атрибута. Буде показано значення квоти в байтах. Тут вкажіть лиши ім'я атрибута. Цей атрибут буде застосовано лише під час першого налаштування та може бути пізніше змінено вручну в розділі «Облікові записи».", "LdapUsersType": "Тип користувачів", "LdapUsersTypeInfo": "Користувачі мають доступ лише до кімнат, до яких їх запросили адміністратори. Вони не можуть створювати власні кімнати, папки та файли. Виберіть інший тип нижче, щоб надати більше дозволів. Або ви можете змінити тип уручну в розділі «Облікові записи».", "LdapUserTypeTooltip": "Усіх користувачів буде додано до {{productName}} з вибраним типом." diff --git a/packages/client/public/locales/uk-UA/MainBar.json b/packages/client/public/locales/uk-UA/MainBar.json index 648835a380..836b36b4a1 100644 --- a/packages/client/public/locales/uk-UA/MainBar.json +++ b/packages/client/public/locales/uk-UA/MainBar.json @@ -1,12 +1,31 @@ { + "ArchivedRoomsOrContact": "Ви можете архівувати непотрібні кімнати або звернутися до адміністратора {{productName}}, щоб підвищити тарифний план.", + "ClickToUpgradeTariff": "<1>Натисніть тут, щоб підвищити тарифний план.", "ConfirmEmailDescription": "Скористайтеся посиланням, наданим в активувальному листі. Не отримали листа з посиланням для активації?", "ConfirmEmailHeader": "Активуйте свою адресу електронної пошти ({{ email }}), щоб отримати доступ до функцій {{productName}}.", + "ContactToUpgradeTariff": "Зверніться до адміністратора {{productName}}, щоб підвищити тарифний план.", + "PersonalQuotaHeader": "Перевищено вашу персональну квоту пам'яті", + "PersonalQuotaHeaderForAdmins": "Перевищено квоту пам'яті на користувача", "PersonalUserQuotaAdminsDescription": "Щоб вивантажити та створити нові файли й папки, звільніть місце на диску або керуйте квотою користувача в <1>Параметрах керування сховищем.", - "PersonalUserQuotaDescription": "Щоб вивантажити та створити нові файли й папки, звільніть місце на диску або зверніться до адміністратора, аби збільшити квоту сховища.", + "PersonalUserQuotaDescription": "Щоб вивантажити та створити нові файли й папки, звільніть місце на диску або зверніться до адміністратора {{productName}}, аби збільшити квоту сховища.", + "RemoveFilesOrClickToUpgrade": "Видаліть непотрібні файли або <1>натисніть тут, щоб підвищити тарифний план.", + "RemoveFilesOrContactToUpgrade": "Видаліть непотрібні файли або зверніться до адміністратора {{productName}}, щоб підвищити тарифний план.", + "RemoveFilesOrContactToUpgradeQuota": "Видаліть непотрібні файли або зверніться до адміністратора {{productName}}, щоб підвищити квоту пам'яті.", "RequestActivation": "Запитати активацію ще раз", + "RoomQuotaDescription": "Ви можете архівувати непотрібні кімнати або <1>натиснути тут, щоб знайти більш відповідний тарифний план для вашого {{productName}}.", "RoomQuotaHeader": "Кількість кімнат скоро буде перевищено: {{currentValue}}/{{maxValue}}", + "RoomQuotaHeaderLimit": "Досягнуто обмеження кількості кімнат: {{currentValue}}/{{maxValue}}", + "StorageAndRoomHeader": "Скоро буде досягнуто обмеження обсягу сховища й кількості кімнат", + "StorageAndRoomLimitHeader": "Досягнуто обмеження обсягу сховища й кількості кімнат", "StorageAndUserHeader": "Обмеження сховища та обмеження для адміністраторів / досвідчених користувачів скоро буде перевищено.", + "StorageAndUserTariffLimitHeader": "Досягнуто обмеження обсягу сховища й кількості адміністраторів/досвідчених користувачів", + "StorageLimitHeader": "Досягнуто обмеження обсягу сховища: {{currentValue}}/{{maxValue}}", "StorageQuotaHeader": "Обсяг сховища скоро буде перевищено: {{currentValue}}/{{maxValue}}", "TenantCustomQuotaDescription": "Ви можете видалити непотрібні файли або змінити квоту в <1>Параметрах керування сховищем.", - "UserQuotaHeader": "Кількість адміністраторів / досвідчених користувачів скоро буде перевищено: {{currentValue}}/{{maxValue}}." + "UserQuotaHeader": "Кількість адміністраторів / досвідчених користувачів скоро буде перевищено: {{currentValue}}/{{maxValue}}.", + "UserTariffAlmostReached": "Після досягнення обмеження всі користувачі будуть додаватися лише з дозволами користувача. Щоб мати можливість далі додавати адміністраторів/досвідчених користувачів, зверніться до адміністратора {{productName}} і підвищте тарифний план.", + "UserTariffAlmostReachedForAdmins": "Після досягнення обмеження всі користувачі будуть додаватися лише з дозволами користувача. Щоб мати можливість далі додавати адміністраторів/досвідчених користувачів, <1>натисніть тут і підвищте тарифний план.", + "UserTariffLimitHeader": "Досягнуто обмеження кількості адміністраторів/досвідчених користувачів: {{currentValue}}/{{maxValue}}", + "UserTariffReached": "Всі користувачі будуть додаватися лише з дозволами користувача. Щоб мати можливість далі додавати адміністраторів/досвідчених користувачів, зверніться до адміністратора {{productName}} і підвищте тарифний план.", + "UserTariffReachedForAdmins": "Всі користувачі будуть додаватися лише з дозволами користувача. Щоб мати можливість далі додавати адміністраторів/досвідчених користувачів, <1>натисніть тут і підвищте тарифний план." } diff --git a/packages/client/public/locales/uk-UA/PDFFormDialog.json b/packages/client/public/locales/uk-UA/PDFFormDialog.json index b70f859b48..7e4a471cd3 100644 --- a/packages/client/public/locales/uk-UA/PDFFormDialog.json +++ b/packages/client/public/locales/uk-UA/PDFFormDialog.json @@ -1,4 +1,5 @@ { + "PDFform": "PDF-форма", "PDFFormEditDialogDescription": "Хочете перемкнутися на режим редагування форми? Зверніть увагу, що форма більше не буде доступна для заповнення. Щоб її заповнити, після редагування вам потрібно буде знову натиснути кнопку «Почати заповнення».", "PDFFormEditDialogTitle": "Редагування форми", "PDFFormIsReadyToast": "PDF-форма <1>{{filename}} готова до заповнення.", diff --git a/packages/client/public/locales/uk-UA/Payments.json b/packages/client/public/locales/uk-UA/Payments.json index 333acbfcbd..817436a07b 100644 --- a/packages/client/public/locales/uk-UA/Payments.json +++ b/packages/client/public/locales/uk-UA/Payments.json @@ -9,6 +9,9 @@ "BusinessSuggestion": "Налаштуйте свій план {{planName}}", "BusinessTitle": "Ви використовуєте план {{planName}}", "BusinessUpdated": "План {{planName}} оновлено", + "CannotCreateNewRoom": "Неможливо створити кімнату", + "CannotCreatePaidUsers": "Неможливо додати платних користувачів", + "CannotRestoreRoom": "Неможливо відновити кімнати", "ChooseNewPayer": "Виберіть нового платника", "ChooseNewPlan": "Бажаєте вибрати новий тарифний план?", "ContactUs": "З питань продажів звертайтеся до нас за адресою", @@ -22,12 +25,18 @@ "InvalidEmailWithoutActiveSubscription": "Рекомендуємо вибрати нового платника, який отримає доступ до параметрів підписки в {{productName}}.", "InvalidEmailWithoutActiveSubscriptionByAdmin": "Рекомендуємо зв’язатися з власником {{productName}}, щоб вибрати нового платника.", "ManagerTypesDescription": "Типи облікових записів адміністратора та їх права", + "NewRoomWillExceedLimit": "Неможливо створити цю кімнату, оскільки досягнуто обмеження кількості кімнат, включених у ваш поточний план.", + "NewUsersWillExceedMembersLimit": "Неможливо додати нових платних користувачів, оскільки досягнуто обмеження кількості адміністраторів, включених у ваш поточний план.", + "NotPossibleRoomRestoring": "Неможливо відновити цю кімнату, оскільки досягнуто обмеження кількості кімнат, включених у ваш поточний план.", + "NumberOfRoomsAccordingToTariff": "Кількість кімнат згідно з вашим тарифним планом: {{currentValue}}/{{maxValue}}", + "NumberOfUsersAccordingToTariff": "Кількість адміністраторів/досвідчених користувачів згідно з вашим тарифним планом: {{currentValue}}/{{maxValue}}", "Pay": "Оплатити", "Payer": "Платник", "PayerDescription": "Цей користувач має доступ до платіжних даних і є єдиним користувачем, який може регулювати квоту та здійснювати платежі. Власник {{productName}}, а також сам менеджер з оплати можуть змінити менеджера з оплати за допомогою порталу клієнтів Stripe.", "PriceCalculation": "Розрахуйте вашу ціну", "RenewSubscription": "Поновити підписку на план {{planName}}", "RoomManagerDescription": "Адміністрування та архівування кімнати, запрошення користувачів та керування ними. Для кімнати можна призначити кількох адміністраторів.", + "RoomsQuotaAlmostExhausted": "Квоту кімнат майже вичерпано.", "StartupSuggestion": "Робіть більше з планом {{planName}}", "StartupTitle": "Ви використовуєте безкоштовний план {{planName}}", "StripeCustomerPortal": "перейти на портал клієнтів Stripe", @@ -36,5 +45,6 @@ "UpgradePlan": "Підвищити план", "UserNotFound": "Користувача <1>{{email}} не знайдено.", "UserNotFoundMatchingEmail": "Нам не вдалося знайти користувача з відповідною електронною адресою Stripe.", + "UsersQuotaAlmostExhausted": "Квоту платних користувачів майже вичерпано.", "YourPrice": "Ваша ціна" } diff --git a/packages/client/public/locales/vi/Files.json b/packages/client/public/locales/vi/Files.json index 3dd1edad89..77cac64bdd 100644 --- a/packages/client/public/locales/vi/Files.json +++ b/packages/client/public/locales/vi/Files.json @@ -117,6 +117,7 @@ "OpenLocation": "Vị trí mở", "PasswordAccess": "Truy cập có mật khẩu", "PasswordLink": "Thêm mật khẩu để bảo vệ liên kết của bạn.", + "PasswordProtectedFiles": "Vui lòng <0>nhập mật khẩu cho các tập tin được bảo vệ để tiếp tục", "PasswordSuccessfullyCopied": "Đã sao chép mật khẩu thành công", "Pin": "Ghim", "PinToTop": "Ghim lên đầu trang", diff --git a/packages/client/public/locales/vi/InviteDialog.json b/packages/client/public/locales/vi/InviteDialog.json index 73a6947a6a..b9d10ef612 100644 --- a/packages/client/public/locales/vi/InviteDialog.json +++ b/packages/client/public/locales/vi/InviteDialog.json @@ -2,7 +2,7 @@ "AddManually": "Thêm vào một cách thủ công", "AddManuallyDescriptionAccounts": "Mời người dùng mới vào {{productName}} cá nhân qua email", "AddManuallyDescriptionRoom": "Thêm người dùng {{productName}} 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ó.", + "EmailErrorMessage": "Địa chỉ Email không hợp lệ. Iu chan chỉnh sửa email sẽ tăng gấp đôi trên đó.", "GroupMaxAvailableRoleWarning": "Các nhóm có thể được thêm vào một phòng với vai trò {{roleName}} là tối đa. Tuy nhiên, bạn có thể thay đổi vai trò của từng người dùng trong nhóm sau khi được thêm thành công.", "InvitationLanguage": "Ngôn ngữ mời", "InviteAccountSearchPlaceholder": "Mời người dùng qua email", diff --git a/packages/client/public/locales/vi/Ldap.json b/packages/client/public/locales/vi/Ldap.json index bfd5aac863..dc88f69a56 100644 --- a/packages/client/public/locales/vi/Ldap.json +++ b/packages/client/public/locales/vi/Ldap.json @@ -36,6 +36,7 @@ "LdapPortNumber": "Số cổng", "LdapPortNumberTooltip": "Nhập số cổng cho máy chủ LDAP/Active Directory của bạn.", "LdapQuota": "Hạn mức người dùng", + "LdapQuotaInfo": "Để có thể sử dụng thuộc tính này, hãy bật hạn mức người dùng trong <0>Cài đặt quản lý lưu trữ", "LdapSecondName": "Họ", "LdapSendWelcomeLetter": "Gửi thư chào mừng", "LdapSendWelcomeLetterTooltip": "Nếu được chọn, tất cả người dùng mới sẽ nhận được thư chào mừng. Chỉ khả dụng khi Thuộc Tính Thư được ánh xạ tới LDAP.", @@ -66,6 +67,7 @@ "LdapUserDNTooltip": "Nhập tên phân biệt vào thư mục chứa các người dùng bạn muốn thêm.", "LdapUserFilter": "Bộ lọc Người dùng", "LdapUserFilterTooltip": "Sử dụng bộ lọc tìm kiếm LDAP để chọn người dùng phải được nhập.", + "LdapUserQuotaTooltip": "Để đặt hạn mức lưu trữ cho người dùng, hãy thêm một thuộc tính vào thư mục LDAP (ví dụ: UsersQuotaLimit) và nhập một giá trị số nguyên cho thuộc tính này. Nó sẽ hiển thị giá trị hạn mức theo byte. Ở đây, chỉ cần chỉ ra tên thuộc tính. Thuộc tính này sẽ chỉ được áp dụng trong lần thiết lập đầu tiên và có thể được thay đổi thủ công sau đó trong phần Tài khoản.", "LdapUsersType": "Loại người dùng", "LdapUsersTypeInfo": "Người dùng chỉ có thể truy cập vào các phòng mà họ được quản trị viên mời và không thể tạo phòng, thư mục hoặc tập tin riêng. Chọn một loại khác bên dưới để cung cấp thêm quyền. Nếu không, bạn có thể thay đổi loại thủ công trong phần Tài khoản.", "LdapUserTypeTooltip": "Tất cả người dùng sẽ được thêm vào {{productName}} với loại đã chọn." diff --git a/packages/client/public/locales/vi/MainBar.json b/packages/client/public/locales/vi/MainBar.json index cc19199baf..14d158e8de 100644 --- a/packages/client/public/locales/vi/MainBar.json +++ b/packages/client/public/locales/vi/MainBar.json @@ -1,12 +1,31 @@ { + "ArchivedRoomsOrContact": "Bạn có thể sao lưu các phòng không cần thiết hoặc liên hệ với quản trị viên {{productName}} để nâng cấp gói dịch vụ.", + "ClickToUpgradeTariff": "<1>Nhấp vào đây để nâng cấp gói dịch vụ của bạn.", "ConfirmEmailDescription": "Sử dụng liên kết được cung cấp trong email kích hoạt. Bạn chưa nhận được email chứa liên kết kích hoạt?", "ConfirmEmailHeader": "Xin vui lòng kích hoạt email ({{ email }}) của bạn để có quyền truy cập vào các tính năng {{productName}}.", + "ContactToUpgradeTariff": "Liên hệ với quản trị viên {{productName}} để nâng cấp gói dịch vụ.", + "PersonalQuotaHeader": "Đã vượt quá hạn mức lưu trữ cá nhân của bạn", + "PersonalQuotaHeaderForAdmins": "Đã vượt quá hạn mức lưu trữ cho mỗi người dùng", "PersonalUserQuotaAdminsDescription": "Để tải lên và tạo các tập tin và thư mục mới, vui lòng giải phóng dung lượng đĩa hoặc quản lý hạn mức cho mỗi người dùng trong <1> cài đặt Quản lý lưu trữ.", - "PersonalUserQuotaDescription": "Để tải lên và tạo các tập tin và thư mục mới, vui lòng giải phóng dung lượng đĩa hoặc liên hệ với quản trị viên để tăng hạn mức lưu trữ.", + "PersonalUserQuotaDescription": "Để tải lên và tạo các tập tin và thư mục mới, vui lòng giải phóng dung lượng đĩa hoặc liên hệ với quản trị viên {{productName}} để tăng hạn mức lưu trữ.", + "RemoveFilesOrClickToUpgrade": "Xóa các tập tin không cần thiết hoặc <1>nhấp vào đây để nâng cấp gói dịch vụ của bạn.", + "RemoveFilesOrContactToUpgrade": "Xóa các tập tin không cần thiết hoặc liên hệ với quản trị viên {{productName}} để nâng cấp gói dịch vụ.", + "RemoveFilesOrContactToUpgradeQuota": "Xóa các tập tin không cần thiết hoặc liên hệ với quản trị viên {{productName}} để tăng hạn mức lưu trữ.", "RequestActivation": "Yêu cầu kích hoạt lại", + "RoomQuotaDescription": "Bạn có thể sao lưu các phòng không cần thiết hoặc <1>nhấp vào đây để tìm gói dịch vụ có phí phù hợp hơn cho {{productName}} của bạn.", "RoomQuotaHeader": "Phòng sắp vượt quá:{{currentValue}} / {{maxValue}}", + "RoomQuotaHeaderLimit": "Đã đạt đến giới hạn số lượng phòng: {{currentValue}} / {{maxValue}}", + "StorageAndRoomHeader": "Sắp vượt quá giới hạn về không gian lưu trữ và số lượng phòng", + "StorageAndRoomLimitHeader": "Đã đạt đến giới hạn về không gian lưu trữ và số lượng phòng", "StorageAndUserHeader": "Sắp vượt quá giới hạn lưu trữ và quản trị viên/người dùng cấp cao.", + "StorageAndUserTariffLimitHeader": "Đã đạt đến giới hạn về không gian lưu trữ và số lượng quản trị viên/người dùng cấp cao", + "StorageLimitHeader": "Đã đạt đến giới hạn không gian lưu trữ: {{currentValue}}/ {{maxValue}} ", "StorageQuotaHeader": "Dung lượng lưu trữ sắp vượt quá:{{currentValue}} / {{maxValue}}", "TenantCustomQuotaDescription": "Bạn có thể xóa các tập tin không cần thiết hoặc thay đổi hạn mức trong cài đặt Quản lý lưu trữ <1>.", - "UserQuotaHeader": "Sắp vượt quá số lượng quản trị viên/người dùng cấp cao:{{currentValue}}/{{maxValue}}." + "UserQuotaHeader": "Sắp vượt quá số lượng quản trị viên/người dùng cấp cao:{{currentValue}}/{{maxValue}}.", + "UserTariffAlmostReached": "Khi đạt đến giới hạn, tất cả người dùng sẽ chỉ được thêm là Người dùng bình thường. Để có thể thêm quản trị viên/người dùng cấp cao khác, hãy liên hệ với quản trị viên {{productName}} để nâng cấp gói dịch vụ.", + "UserTariffAlmostReachedForAdmins": "Khi đạt đến giới hạn, tất cả người dùng sẽ chỉ được thêm là Người dùng bình thường. Để có thể thêm quản trị viên/người dùng cấp cao khác, hãy <1>nhấp vào đây để nâng cấp gói dịch vụ của bạn.", + "UserTariffLimitHeader": "Đã đạt đến giới hạn số lượng quản trị viên/người dùng cấp cao: {{currentValue}}/ {{maxValue}} ", + "UserTariffReached": "Tất cả người dùng sẽ chỉ được thêm là Người dùng bình thường. Để có thể thêm quản trị viên/người dùng cấp cao khác, hãy liên hệ với quản trị viên {{productName}} để nâng cấp gói dịch vụ.", + "UserTariffReachedForAdmins": "Tất cả người dùng sẽ chỉ được thêm là Người dùng bình thường. Để có thể thêm quản trị viên/người dùng cấp cao khác, hãy <1>nhấp vào đây để nâng cấp gói dịch vụ của bạn." } diff --git a/packages/client/public/locales/vi/PDFFormDialog.json b/packages/client/public/locales/vi/PDFFormDialog.json index 9c5b70304f..f6408ae61f 100644 --- a/packages/client/public/locales/vi/PDFFormDialog.json +++ b/packages/client/public/locales/vi/PDFFormDialog.json @@ -1,4 +1,5 @@ { + "PDFform": "Biểu mẫu PDF", "PDFFormEditDialogDescription": "Bạn có muốn chuyển sang chế độ chỉnh sửa biểu mẫu không? Xin lưu ý rằng biểu mẫu sẽ không còn khả dụng để điền và bạn sẽ cần nhấp lại vào nút Bắt đầu điền sau khi chỉnh sửa để điền vào.", "PDFFormEditDialogTitle": "Chỉnh sửa biểu mẫu", "PDFFormIsReadyToast": "Biểu mẫu PDF <1>{{filename}} đã sẵn sàng để được điền.", diff --git a/packages/client/public/locales/vi/Payments.json b/packages/client/public/locales/vi/Payments.json index e0ca8ca22b..0ca9b80e36 100644 --- a/packages/client/public/locales/vi/Payments.json +++ b/packages/client/public/locales/vi/Payments.json @@ -9,6 +9,9 @@ "BusinessSuggestion": "Tùy chỉnh gói dịch vụ {{planName}} của bạn", "BusinessTitle": "Bạn đang sử dụng gói dịch vụ {{planName}}", "BusinessUpdated": "Đã cập nhật gói dịch vụ {{planName}}", + "CannotCreateNewRoom": "Không thể tạo phòng", + "CannotCreatePaidUsers": "Không thể thêm người dùng trả phí", + "CannotRestoreRoom": "Không thể khôi phục phòng", "ChooseNewPayer": "Chọn Người thanh toán mới", "ChooseNewPlan": "Bạn có muốn chọn gói dịch vụ có giá mới không?", "ContactUs": "Đối với câu hỏi về việc bán hàng, xin hãy liên hệ với chúng tôi tại", @@ -22,12 +25,18 @@ "InvalidEmailWithoutActiveSubscription": "Chúng tôi khuyên bạn nên chọn một Người trả phí mới có quyền truy cập vào cài đặt đăng ký trong {{productName}}.", "InvalidEmailWithoutActiveSubscriptionByAdmin": "Chúng tôi khuyên bạn nên liên hệ với chủ sở hữu {{productName}} để chọn Người trả phí mới.", "ManagerTypesDescription": "Các loại tài khoản quản trị và đặc quyền của chúng", + "NewRoomWillExceedLimit": "Không thể tạo phòng này vì đã đạt đến giới hạn số lượng phòng trong gói dịch vụ hiện tại của bạn.", + "NewUsersWillExceedMembersLimit": "Không thể thêm người dùng trả phí mới vì đã đạt đến giới hạn số lượng quản trị viên trong gói dịch vụ hiện tại của bạn.", + "NotPossibleRoomRestoring": "Không thể khôi phục phòng này vì đã đạt đến giới hạn số lượng phòng trong gói dịch vụ hiện tại của bạn.", + "NumberOfRoomsAccordingToTariff": "Số lượng phòng theo gói dịch vụ của bạn: {{currentValue}}/{{maxValue}}", + "NumberOfUsersAccordingToTariff": "Số lượng quản trị viên/người dùng cấp cao theo gói dịch vụ của bạn: {{currentValue}}/{{maxValue}}", "Pay": "Thanh toán", "Payer": "Người thanh toán", "PayerDescription": "Người dùng này có quyền truy cập vào thông tin thanh toán và là người dùng duy nhất có thể điều chỉnh định mức và thực hiện thanh toán. Chủ sở hữu {{productName}}, cũng như chính người quản lý thanh toán, có thể chỉ định lại vai trò người quản lý thanh toán bằng cổng thông tin khách hàng Stripe.", "PriceCalculation": "Tính phí của bạn", "RenewSubscription": "Gia hạn gói dịch vụ {{planName}}", "RoomManagerDescription": "Quản trị và lưu trữ phòng, mời và quản lý người dùng. Một số quản trị viên có thể được chỉ định vào phòng.", + "RoomsQuotaAlmostExhausted": "Gần như đã dùng hết hạn mức phòng.", "StartupSuggestion": "Làm nhiều hơn với gói dịch vụ {{planName}}", "StartupTitle": "Bạn đang sử dụng gói dịch vụ {{planName}} miễn phí", "StripeCustomerPortal": "truy cập cổng thông tin khách hàng trên Stripe", @@ -36,5 +45,6 @@ "UpgradePlan": "Nâng cấp gói dịch vụ", "UserNotFound": "Không tìm thấy người dùng<1>{{email}}.", "UserNotFoundMatchingEmail": "Chúng tôi không thể tìm thấy người dùng có e-mail Stripe phù hợp.", + "UsersQuotaAlmostExhausted": "Gần như đã dùng hết hạn mức người dùng trả phí.", "YourPrice": "Phí thanh toán của bạn" } diff --git a/packages/client/public/locales/zh-CN/Files.json b/packages/client/public/locales/zh-CN/Files.json index 9414afc428..3ebc3a6d69 100644 --- a/packages/client/public/locales/zh-CN/Files.json +++ b/packages/client/public/locales/zh-CN/Files.json @@ -92,7 +92,7 @@ "LinkDisabledSuccessfully": "链接禁用成功", "LinkEditedSuccessfully": "已成功编辑和复制链接", "LinkEnabledSuccessfully": "链接启用成功", - "LinkForPortalUsers": " {{productName}}用户的链接", + "LinkForPortalUsers": "{{productName}}用户的链接", "LinkSettings": "链接设置", "LinkSuccessfullyCreatedAndCopied": "链接已成功创建并复制到剪贴板", "LinkValidUntil": "链接有效期至", @@ -117,6 +117,7 @@ "OpenLocation": "打开位置", "PasswordAccess": "通过密码访问", "PasswordLink": "添加密码保护链接。", + "PasswordProtectedFiles": "请<0>输入密码以保护文件并继续", "PasswordSuccessfullyCopied": "密码复制成功", "Pin": "置顶", "PinToTop": "置顶", diff --git a/packages/client/public/locales/zh-CN/InviteDialog.json b/packages/client/public/locales/zh-CN/InviteDialog.json index 2561c0a0d0..3eb603810a 100644 --- a/packages/client/public/locales/zh-CN/InviteDialog.json +++ b/packages/client/public/locales/zh-CN/InviteDialog.json @@ -2,7 +2,7 @@ "AddManually": "手动添加", "AddManuallyDescriptionAccounts": "通过电子邮件亲自邀请新用户加入{{productName}}", "AddManuallyDescriptionRoom": "使用名称将现有{{productName}}用户添加到房间或通过电子邮件亲自邀请新用户", - "EmailErrorMessage": "邮件地址无效。您可点击邮件以进行编辑。", + "EmailErrorMessage": "邮件地址无效。您可双击邮件以进行编辑。", "GroupMaxAvailableRoleWarning": "可以将群组添加到房间,最大角色为{{roleName}}。但是,成功添加群组后,您可以更改群组中各个用户的角色。", "InvitationLanguage": "邀请语言", "InviteAccountSearchPlaceholder": "通过邮件进行邀请", diff --git a/packages/client/public/locales/zh-CN/Ldap.json b/packages/client/public/locales/zh-CN/Ldap.json index 0ba3d16c74..7bab8fef25 100644 --- a/packages/client/public/locales/zh-CN/Ldap.json +++ b/packages/client/public/locales/zh-CN/Ldap.json @@ -36,6 +36,7 @@ "LdapPortNumber": "端口号", "LdapPortNumberTooltip": "输入您的 LDAP 服务器/Active Directory 的端口号。", "LdapQuota": "用户配额", + "LdapQuotaInfo": "要使用此属性,请在<0>存储管理设置中开启用户配额", "LdapSecondName": "姓", "LdapSendWelcomeLetter": "发送欢迎信", "LdapSendWelcomeLetterTooltip": "如果选中,所有新用户都将收到欢迎信。仅当邮件属性映射到 LDAP 时可用。", @@ -66,6 +67,7 @@ "LdapUserDNTooltip": "输入包含要添加的用户的目录的专有名称。", "LdapUserFilter": "用户过滤器", "LdapUserFilterTooltip": "使用搜索 LDAP 过滤器选择必须导入的用户。", + "LdapUserQuotaTooltip": "要为用户设置存储配额,请在 LDAP 目录中添加一个属性(例如,UsersQuotaLimit),并为该属性输入一个整数值。它将以字节为单位显示配额值。只需在这里设置属性名称。仅在第一次设置时,此属性会被应用,之后可以在“帐户”板块手动更改。", "LdapUsersType": "用户类型", "LdapUsersTypeInfo": "用户只能访问管理员邀请他们加入的房间,不能创建自己的房间、文件夹或文件。选择下面的其他类型以提供更多权限。否则,您可以在“帐户”部分手动更改类型。", "LdapUserTypeTooltip": "所有用户都将使用所选类型添加到{{productName}}。" diff --git a/packages/client/public/locales/zh-CN/MainBar.json b/packages/client/public/locales/zh-CN/MainBar.json index 207f3e04b4..1f4c26c5cf 100644 --- a/packages/client/public/locales/zh-CN/MainBar.json +++ b/packages/client/public/locales/zh-CN/MainBar.json @@ -1,12 +1,31 @@ { + "ArchivedRoomsOrContact": "您可以归档不需要的房间或联系{{productName}}管理员升级费用版本。", + "ClickToUpgradeTariff": "<1>点击此处升级您的费用版本。", "ConfirmEmailDescription": "使用激活邮件中提供的链接。没有收到包含激活链接的邮件?", "ConfirmEmailHeader": "请激活您的电子邮件 ({{ email }}) 以访问{{productName}}功能。", + "ContactToUpgradeTariff": "联系{{productName}}管理员升级费用版本。", + "PersonalQuotaHeader": "您已超出个人存储配额", + "PersonalQuotaHeaderForAdmins": "已超出每个用户的存储配额", "PersonalUserQuotaAdminsDescription": "如要上传和创建新文件和文件夹,请释放磁盘空间,或在<1>存储空间管理设置中管理每位用户的配额。", - "PersonalUserQuotaDescription": "如要上传和创建新文件和文件夹,请释放磁盘空间,或联系管理员增加存储空间配额。", + "PersonalUserQuotaDescription": "如要上传和创建新文件和文件夹,请释放磁盘空间,或联系{{productName}}的管理员增加存储空间配额。", + "RemoveFilesOrClickToUpgrade": "删除不必要的文件或<1>点击此处升级费用版本。", + "RemoveFilesOrContactToUpgrade": "删除不必要的文件或联系{{productName}}管理员升级费用版本。", + "RemoveFilesOrContactToUpgradeQuota": "删除不需要的文件或联系{{productName}}管理员增加存储配额。", "RequestActivation": "请求再次激活", + "RoomQuotaDescription": "您可以存档不需要的房间,或者<1>点击此处为您的{{productName}}找到更合适的费用版本。", "RoomQuotaHeader": "房间数量即将超出限制:{{currentValue}}/{{maxValue}}", + "RoomQuotaHeaderLimit": "房间数量已达到限制:{{currentValue}} / {{maxValue}}", + "StorageAndRoomHeader": "存储空间和房间数量即将超出限制", + "StorageAndRoomLimitHeader": "存储空间和房间数量已达到限制", "StorageAndUserHeader": "存储和管理员/高级用户的数量限制即将被超过。", + "StorageAndUserTariffLimitHeader": "存储空间和管理员/高级用户数量已达到限制", + "StorageLimitHeader": "存储空间已达到限制:{{currentValue}} / {{maxValue}}", "StorageQuotaHeader": "存储空间数量即将超出限制:{{currentValue}}/{{maxValue}}", "TenantCustomQuotaDescription": "您可以在<1>存储空间管理设置中删除不必要的文件,或更改配额。", - "UserQuotaHeader": "管理员/高级用户的数量即将超过限制: {{currentValue}} / {{maxValue}}" + "UserQuotaHeader": "管理员/高级用户的数量即将超过限制: {{currentValue}} / {{maxValue}}", + "UserTariffAlmostReached": "一旦达到限制,所有将添加的用户将仅具有用户权限。若要添加更多管理员/高级用户,请联系 {{productName}} 管理员升级费用版本。", + "UserTariffAlmostReachedForAdmins": "一旦达到限制,所有将添加的用户将仅具有用户权限。要添加更多管理员/高级用户,请<1>单击此处升级费用版本。", + "UserTariffLimitHeader": "管理员/高级用户数量已达到限制:{{currentValue}} / {{maxValue}}", + "UserTariffReached": "所有将添加的用户将仅具有用户权限。若要添加更多管理员/高级用户,请联系{{productName}}管理员升级费用版本。", + "UserTariffReachedForAdmins": "所有将添加的用户将仅具有用户权限。要添加更多管理员/高级用户,请<1>单击此处升级费用版本。" } diff --git a/packages/client/public/locales/zh-CN/PDFFormDialog.json b/packages/client/public/locales/zh-CN/PDFFormDialog.json index 57e170926c..c626c1a7eb 100644 --- a/packages/client/public/locales/zh-CN/PDFFormDialog.json +++ b/packages/client/public/locales/zh-CN/PDFFormDialog.json @@ -1,4 +1,5 @@ { + "PDFform": "PDF 表单", "PDFFormEditDialogDescription": "您想切换到表单编辑模式吗?请注意,表单将不再可供填写,编辑后您需要再次单击“开始填写”按钮才能填写。", "PDFFormEditDialogTitle": "表单编辑", "PDFFormIsReadyToast": "PDF 表单 <1>{{filename}}} 已准备好填写。", diff --git a/packages/client/public/locales/zh-CN/Payments.json b/packages/client/public/locales/zh-CN/Payments.json index 0263a5c87d..c9f115fb0c 100644 --- a/packages/client/public/locales/zh-CN/Payments.json +++ b/packages/client/public/locales/zh-CN/Payments.json @@ -9,6 +9,9 @@ "BusinessSuggestion": "自定义您的{{planName}}版本", "BusinessTitle": "您正在使用{{planName}}版本", "BusinessUpdated": "{{planName}}版本已更新", + "CannotCreateNewRoom": "无法创建房间", + "CannotCreatePaidUsers": "无法添加付费用户", + "CannotRestoreRoom": "房间无法恢复", "ChooseNewPayer": "选择新的付款人", "ChooseNewPlan": "是否选择新的定价版本?", "ContactUs": "如有任何销售问题,可联系我们:", @@ -22,12 +25,18 @@ "InvalidEmailWithoutActiveSubscription": "我们建议您选择一位可以访问{{productName}}中订阅设置的新付款人。", "InvalidEmailWithoutActiveSubscriptionByAdmin": "我们建议您联系{{productName}}所有者以选择新的付款人。", "ManagerTypesDescription": "管理员账户类型及其权限", + "NewRoomWillExceedLimit": "由于当前费用版本的房间数量已达上限,因此无法创建该房间。", + "NewUsersWillExceedMembersLimit": "由于当前费用版本的管理员数量已达上限,因此无法添加新的付费用户。", + "NotPossibleRoomRestoring": "由于当前费用版本的房间数量已达上限,因此无法恢复此房间。", + "NumberOfRoomsAccordingToTariff": "您的费用版本的房间数量为:{{currentValue}}/{{maxValue}}", + "NumberOfUsersAccordingToTariff": "您的费用版本的管理员/高级用户数量为:{{currentValue}}/{{maxValue}}", "Pay": "付款", "Payer": "付款者", "PayerDescription": "此用户可以访问付款详情,并且是唯一可以调整配额和付款的用户。{{productName}}所有者以及付款经理本人可以使用 Stripe 客户门户重新分配付款经理角色。", "PriceCalculation": "计算价格", "RenewSubscription": "将订阅更新至{{planName}}版本", "RoomManagerDescription": "房间管理和归档,用户邀请和管理可为房间指派多名管理员。", + "RoomsQuotaAlmostExhausted": "房间配额已几乎用完。", "StartupSuggestion": "升级为{{planName}}版获得更多权限", "StartupTitle": "您正在使用免费{{planName}}版本", "StripeCustomerPortal": "前往 Stripe 客户门户", @@ -36,5 +45,6 @@ "UpgradePlan": "升级版本", "UserNotFound": "未找到用户 <1>{{email}}。", "UserNotFoundMatchingEmail": "我们无法找到与Stripe电子邮件匹配的用户。", + "UsersQuotaAlmostExhausted": "付费用户配额已几乎用完。", "YourPrice": "您的价格" } diff --git a/packages/client/src/HOCs/withFileActions.js b/packages/client/src/HOCs/withFileActions.js index cc0d12e076..fb99ec2526 100644 --- a/packages/client/src/HOCs/withFileActions.js +++ b/packages/client/src/HOCs/withFileActions.js @@ -29,6 +29,7 @@ import { inject, observer } from "mobx-react"; import { DeviceType, RoomsType } from "@docspace/shared/enums"; import Planet12ReactSvgUrl from "PUBLIC_DIR/images/icons/12/planet.react.svg?url"; +import { toastr } from "@docspace/shared/components/toast"; export default function withFileActions(WrappedFileItem) { class WithFileActions extends React.Component { @@ -67,9 +68,13 @@ export default function withFileActions(WrappedFileItem) { dragging && setDragging(false); - createFoldersTree(files, uploadToFolder).then((f) => { - if (f.length > 0) startUpload(f, null, t); - }); + createFoldersTree(t, files, uploadToFolder) + .then((f) => { + if (f.length > 0) startUpload(f, null, t); + }) + .catch((err) => { + toastr.error(err); + }); }; onDrop = (items) => { diff --git a/packages/client/src/components/Article/Body/AccountsItem.js b/packages/client/src/components/Article/Body/AccountsItem.js index 79f5fe48c3..d34734407e 100644 --- a/packages/client/src/components/Article/Body/AccountsItem.js +++ b/packages/client/src/components/Article/Body/AccountsItem.js @@ -39,6 +39,7 @@ const PureAccountsItem = ({ onClick, t, currentColorScheme, + getLinkData, }) => { const onClickAction = React.useCallback( (e, id) => { @@ -51,10 +52,13 @@ const PureAccountsItem = ({ const title = t("Accounts"); + const linkData = getLinkData("accounts"); + return ( { const [isDragActive, setIsDragActive] = useState(false); @@ -87,9 +89,13 @@ const Item = ({ (files, uploadToFolder) => { dragging && setDragging(false); - createFoldersTree(files, uploadToFolder).then((f) => { - if (f.length > 0) startUpload(f, null, t); - }); + createFoldersTree(t, files, uploadToFolder) + .then((f) => { + if (f.length > 0) startUpload(f, null, t); + }) + .catch((err) => { + toastr.error(err); + }); }, [t, dragging, setDragging, startUpload, createFoldersTree], ); @@ -126,18 +132,24 @@ const Item = ({ (e, folderId) => { setBufferSelection(null); - onClick && - onClick( - e, - folderId, - item.title, - item.rootFolderType, - item.security.Create, - ); + onClick?.( + e, + folderId, + item.title, + item.rootFolderType, + item.security.Create, + ); }, [onClick, item.title, item.rootFolderType], ); + const linkData = getLinkData( + item.id, + item.title, + item.rootFolderType, + item.security.Create, + ); + return ( @@ -215,6 +228,8 @@ const Items = ({ currentDeviceType, folderAccess, currentColorScheme, + + getLinkData, }) => { const getEndOfBlock = React.useCallback((item) => { switch (item.key) { @@ -329,6 +344,7 @@ const Items = ({ getEndOfBlock={getEndOfBlock} showText={showText} onClick={onClick} + getLinkData={getLinkData} onMoveTo={isTrash ? onRemove : onMoveTo} onBadgeClick={isTrash ? onEmptyTrashAction : onBadgeClick} showDragItems={showDragItems} @@ -341,16 +357,6 @@ const Items = ({ ); }); - /*if (!firstLoad && !isVisitor) - items.splice( - 3, - 0, - - );*/ if (!isVisitor && !isCollaborator) items.splice( 3, @@ -358,6 +364,7 @@ const Items = ({ , ); @@ -375,6 +382,7 @@ const Items = ({ dragging, getFolderIcon, onClick, + getLinkData, onMoveTo, getEndOfBlock, onBadgeClick, diff --git a/packages/client/src/components/Article/Body/SettingsItem.js b/packages/client/src/components/Article/Body/SettingsItem.js deleted file mode 100644 index fd551df2c7..0000000000 --- a/packages/client/src/components/Article/Body/SettingsItem.js +++ /dev/null @@ -1,72 +0,0 @@ -// (c) Copyright Ascensio System SIA 2009-2024 -// -// This program is a free software product. -// You can redistribute it and/or modify it under the terms -// of the GNU Affero General Public License (AGPL) version 3 as published by the Free Software -// Foundation. In accordance with Section 7(a) of the GNU AGPL its Section 15 shall be amended -// to the effect that Ascensio System SIA expressly excludes the warranty of non-infringement of -// any third-party rights. -// -// This program is distributed WITHOUT ANY WARRANTY, without even the implied warranty -// of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For details, see -// the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html -// -// You can contact Ascensio System SIA at Lubanas st. 125a-25, Riga, Latvia, EU, LV-1021. -// -// The interactive user interfaces in modified source and object code versions of the Program must -// display Appropriate Legal Notices, as required under Section 5 of the GNU AGPL version 3. -// -// Pursuant to Section 7(b) of the License you must retain the original Product logo when -// distributing the program. Pursuant to Section 7(e) we decline to grant you any rights under -// trademark law for use of our trademarks. -// -// All the Product's GUI elements, including illustrations and icon sets, as well as technical writing -// 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 { inject, observer } from "mobx-react"; -import { withTranslation } from "react-i18next"; - -import { ArticleItem } from "@docspace/shared/components/article-item"; - -import CatalogSettingsReactSvgUrl from "PUBLIC_DIR/images/catalog.settings.react.svg?url"; - -const PureSettingsItem = ({ - t, - showText, - isActive, - onClick, - currentColorScheme, -}) => { - const onClickAction = React.useCallback(() => { - onClick && onClick("settings"); - }, [onClick]); - - const title = t("Common:Settings"); - - return ( - - ); -}; - -const SettingsItem = withTranslation(["FilesSettings", "Common"])( - PureSettingsItem, -); - -export default inject(({ settingsStore }) => { - return { - showText: settingsStore.showText, - currentColorScheme: settingsStore.currentColorScheme, - }; -})(observer(SettingsItem)); diff --git a/packages/client/src/components/Article/Body/index.js b/packages/client/src/components/Article/Body/index.js index df5a9c9930..9b68a256bb 100644 --- a/packages/client/src/components/Article/Body/index.js +++ b/packages/client/src/components/Article/Body/index.js @@ -28,7 +28,7 @@ import React from "react"; import { inject, observer } from "mobx-react"; import { withTranslation } from "react-i18next"; -import { useNavigate, useLocation } from "react-router-dom"; +import { useLocation } from "react-router-dom"; import { DeviceType, RoomSearchArea } from "@docspace/shared/enums"; import Items from "./Items"; @@ -43,9 +43,7 @@ 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 { showProgress } from "@docspace/shared/utils/common"; -import { openingNewTab } from "@docspace/shared/utils/openingNewTab"; const ArticleBodyContent = (props) => { const { @@ -77,18 +75,13 @@ const ArticleBodyContent = (props) => { isFrame, } = props; - const navigate = useNavigate(); const location = useLocation(); const [disableBadgeClick, setDisableBadgeClick] = React.useState(false); const [activeItemId, setActiveItemId] = React.useState(null); - const isAccounts = location.pathname.includes("accounts/filter"); - - const onClick = React.useCallback( - (e, folderId, title, rootFolderType, canCreate) => { - const { toggleArticleOpen } = props; - + const getLinkData = React.useCallback( + (folderId, title, rootFolderType, canCreate) => { let params = null; let path = ``; @@ -100,8 +93,6 @@ const ArticleBodyContent = (props) => { canCreate, }; - let withTimer = !!selectedFolderId; - switch (folderId) { case myFolderId: const myFilter = FilesFilter.getDefault(); @@ -155,17 +146,7 @@ const ArticleBodyContent = (props) => { params = accountsFilter.toUrlParams(); path = getCategoryUrl(CategoryType.Accounts); - withTimer = false; - break; - case "settings": - path = getCategoryUrl(CategoryType.Settings); - navigate(path); - - if (currentDeviceType === DeviceType.mobile) { - toggleArticleOpen(); - } - return; case roomsFolderId: default: const roomsFilter = RoomsFilter.getDefault( @@ -181,16 +162,33 @@ const ArticleBodyContent = (props) => { path += `?${params}&date=${new Date().getTime()}`; - if (openingNewTab(path, e)) return; + return { path, state }; + }, + [ + roomsFolderId, + archiveFolderId, + myFolderId, + recycleBinFolderId, + activeItemId, + ], + ); - if (folderId === "accounts" || folderId === "settings") clearFiles(); + const onClick = React.useCallback( + (e, folderId) => { + if (e?.ctrlKey || e?.metaKey || e?.shiftKey || e?.button) return; - setSelection && setSelection([]); + const { toggleArticleOpen } = props; + + const isAccountsClick = folderId === "accounts"; + + let withTimer = isAccountsClick ? false : !!selectedFolderId; + + if (isAccountsClick) clearFiles(); + + setSelection?.([]); setIsLoading(true, withTimer); - navigate(path, { state }); - if (currentDeviceType === DeviceType.mobile) { toggleArticleOpen(); } @@ -202,7 +200,7 @@ const ArticleBodyContent = (props) => { recycleBinFolderId, activeItemId, selectedFolderId, - isAccounts, + setSelection, ], ); @@ -281,6 +279,7 @@ const ArticleBodyContent = (props) => { { async (e) => { const files = await getFilesFromEvent(e); - createFoldersTree(files).then((f) => { - if (f.length > 0) startUpload(f, null, t); - }); + createFoldersTree(t, files) + .then((f) => { + if (f.length > 0) startUpload(f, null, t); + }) + .catch((err) => { + toastr.error(err); + }); }, [startUpload, t], ); diff --git a/packages/client/src/components/EmptyContainer/EmptyFilterContainer.js b/packages/client/src/components/EmptyContainer/EmptyFilterContainer.js index 130a66e79c..03f325c5a4 100644 --- a/packages/client/src/components/EmptyContainer/EmptyFilterContainer.js +++ b/packages/client/src/components/EmptyContainer/EmptyFilterContainer.js @@ -23,19 +23,24 @@ // All the Product's GUI elements, including illustrations and icon sets, as well as technical writing // 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 EmptyScreenFilterAltSvgUrl from "PUBLIC_DIR/images/empty_screen_filter_alt.svg?url"; -import EmptyScreenFilterAltDarkSvgUrl from "PUBLIC_DIR/images/empty_screen_filter_alt_dark.svg?url"; -import ClearEmptyFilterSvgUrl from "PUBLIC_DIR/images/clear.empty.filter.svg?url"; import React from "react"; import { useNavigate, useLocation } from "react-router-dom"; import { withTranslation } from "react-i18next"; import { inject, observer } from "mobx-react"; -import EmptyContainer from "./EmptyContainer"; -import FilesFilter from "@docspace/shared/api/files/filter"; + +import ClearEmptyFilterSvg from "PUBLIC_DIR/images/clear.empty.filter.svg"; + +import EmptyFilterRoomsLightIcon from "PUBLIC_DIR/images/emptyFilter/empty.filter.rooms.light.svg"; +import EmptyFilterRoomsDarkIcon from "PUBLIC_DIR/images/emptyFilter/empty.filter.rooms.dark.svg"; + +import EmptyFilterFilesLightIcon from "PUBLIC_DIR/images/emptyFilter/empty.filter.files.light.svg"; +import EmptyFilterFilesDarkIcon from "PUBLIC_DIR/images/emptyFilter/empty.filter.files.dark.svg"; + import RoomsFilter from "@docspace/shared/api/rooms/filter"; -import { IconButton } from "@docspace/shared/components/icon-button"; -import { Link } from "@docspace/shared/components/link"; +import FilesFilter from "@docspace/shared/api/files/filter"; +import { EmptyView } from "@docspace/shared/components/empty-view"; + +// import EmptyContainer from "./EmptyContainer"; const EmptyFilterContainer = ({ t, @@ -55,12 +60,32 @@ const EmptyFilterContainer = ({ const navigate = useNavigate(); const location = useLocation(); - const subheadingText = t("EmptyFilterSubheadingText"); const descriptionText = isRooms - ? t("Common:SearchEmptyRoomsDescription") - : t("Common:EmptyFilterDescriptionText"); + ? t("Common:EmptyFilterRoomsDescription") + : t("Common:EmptyFilterFilesDescription"); + + const getIconURL = () => { + if (isRooms) + return theme.isBase ? ( + + ) : ( + + ); + + return theme.isBase ? ( + + ) : ( + + ); + }; + + /** + * @param {React.MouseEvent} event + * @returns {void} + */ + const onResetFilter = (event) => { + event.preventDefault(); - const onResetFilter = () => { setIsLoading(true); if (isArchiveFolder) { @@ -86,31 +111,21 @@ const EmptyFilterContainer = ({ } }; - const buttons = ( -
- - - {t("Common:ClearFilter")} - -
- ); + const options = { + to: "", + description: t("Common:ClearFilter"), + icon: , + onClick: onResetFilter, + }; - const imageSrc = theme.isBase - ? EmptyScreenFilterAltSvgUrl - : EmptyScreenFilterAltDarkSvgUrl; + const imageSrc = getIconURL(); return ( - ); }; diff --git a/packages/client/src/components/EmptyContainer/EmptyFolderContainer.js b/packages/client/src/components/EmptyContainer/EmptyFolderContainer.js index 35f0108100..bf95d8e6c0 100644 --- a/packages/client/src/components/EmptyContainer/EmptyFolderContainer.js +++ b/packages/client/src/components/EmptyContainer/EmptyFolderContainer.js @@ -28,11 +28,8 @@ import { useCallback, useMemo } from "react"; import { inject, observer } from "mobx-react"; import { withTranslation } from "react-i18next"; -import { FolderType, RoomsType } from "@docspace/shared/enums"; - import EmptyContainer from "./EmptyContainer"; import CommonButtons from "./sub-components/CommonButtons"; -import EmptyViewContainer from "./sub-components/EmptyViewContainer/EmptyViewContainer"; import { getDescriptionText, getEmptyScreenType, @@ -79,22 +76,6 @@ const EmptyFolderContainer = ({ [t, canCreateFiles, type], ); - if ( - roomType === RoomsType.FormRoom || - parentRoomType === FolderType.FormRoom - ) { - return ( - - ); - } - return ( { - const { - t, - setIsLoading, - linkStyles, - - isEmptyPage, - sectionWidth, - theme, - isFrame, - userId, - } = props; + const { t, setIsLoading, linkStyles, theme, isFrame, userId } = props; const descriptionRoomNoAccess = t("NoAccessRoomDescription"); const titleRoomNoAccess = t("NoAccessRoomTitle"); @@ -67,7 +56,13 @@ const RoomNoAccessContainer = (props) => { return () => clearTimeout(timer); }, []); - const onGoToShared = () => { + /** + * @param {React.MouseEvent | undefined} event + * @returns {void} + */ + const onGoToShared = (event) => { + event?.preventDefault(); + if (isFrame) return; setIsLoading(true); @@ -80,38 +75,28 @@ const RoomNoAccessContainer = (props) => { navigate(`${path}?${filterParamsStr}`); }; - const goToButtons = ( -
- - - {t("GoToMyRooms")} - -
- ); - + /** + * @type {import("@docspace/shared/components/empty-view/EmptyView.types").EmptyViewProps} + */ const propsRoomNotFoundOrMoved = { - headerText: titleRoomNoAccess, - descriptionText: isFrame ? "" : descriptionRoomNoAccess, - imageSrc: theme.isBase - ? ManageAccessRightsReactSvgUrl - : ManageAccessRightsReactSvgDarkUrl, - buttons: isFrame ? <> : goToButtons, + title: titleRoomNoAccess, + description: isFrame ? "" : descriptionRoomNoAccess, + icon: theme.isBase ? ( + + ) : ( + + ), + options: isFrame + ? [] + : { + description: t("GoToMyRooms"), + icon: , + to: "", + onClick: onGoToShared, + }, }; - return ( - - ); + return ; }; export default inject( diff --git a/packages/client/src/components/EmptyContainer/index.js b/packages/client/src/components/EmptyContainer/index.js index 3abb285a6b..3d85422818 100644 --- a/packages/client/src/components/EmptyContainer/index.js +++ b/packages/client/src/components/EmptyContainer/index.js @@ -23,17 +23,17 @@ // All the Product's GUI elements, including illustrations and icon sets, as well as technical writing // 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 { useContext } from "react"; import { observer, inject } from "mobx-react"; -//import { useLocation } from "react-router-dom"; -import { Events, FileExtensions } from "@docspace/shared/enums"; +import { Context } from "@docspace/shared/utils"; -import RootFolderContainer from "./RootFolderContainer"; import EmptyFilterContainer from "./EmptyFilterContainer"; -import EmptyFolderContainer from "./EmptyFolderContainer"; import RoomNoAccessContainer from "./RoomNoAccessContainer"; +import EmptyViewContainer from "./sub-components/EmptyViewContainer/EmptyViewContainer"; + const linkStyles = { isHovered: true, type: "action", @@ -49,46 +49,21 @@ const EmptyContainer = ({ theme, type, - sectionWidth, isRoomNotFoundOrMoved, - isGracePeriod, - setQuotaWarningDialogVisible, isRoot, isPublicRoom, - isEmptyPage, - isWarningRoomsDialog, + // isEmptyPage, + roomType, + parentRoomType, + folderId, + isArchiveFolderRoot, }) => { - //const location = useLocation(); + const isRoom = !!roomType; + + const { sectionWidth } = useContext(Context); linkStyles.color = theme.filesEmptyContainer.linkColor; - const onCreate = (e) => { - const format = e.currentTarget.dataset.format || null; - - const event = new Event(Events.CREATE); - - const isPDF = format === FileExtensions.PDF; - - const payload = { - extension: format, - id: -1, - edit: isPDF, - }; - event.payload = payload; - - window.dispatchEvent(event); - }; - - const onCreateRoom = (e) => { - if (isWarningRoomsDialog) { - setQuotaWarningDialogVisible(true); - return; - } - - const event = new Event(Events.ROOM_CREATE); - window.dispatchEvent(event); - }; - if (isRoomNotFoundOrMoved) { return ( ; - return isFiltered ? ( - - ) : isRootEmptyPage ? ( - - ) : ( - ); }; @@ -132,20 +100,20 @@ export default inject( clientLoadingStore, currentTariffStatusStore, publicRoomStore, + treeFoldersStore, }) => { const { isErrorRoomNotAvailable, isFiltered } = filesStore; const { isLoading } = clientLoadingStore; - const { isGracePeriod } = currentTariffStatusStore; - - const { setQuotaWarningDialogVisible } = dialogsStore; const { isPublicRoom } = publicRoomStore; const isRoomNotFoundOrMoved = isFiltered === null && isErrorRoomNotAvailable; + const { roomType, id: folderId, parentRoomType } = selectedFolderStore; + const { isArchiveFolderRoot } = treeFoldersStore; + const isRoot = selectedFolderStore.pathParts?.length === 1; - const { isWarningRoomsDialog } = currentQuotaStore; return { theme: settingsStore.theme, @@ -154,12 +122,13 @@ export default inject( parentId: selectedFolderStore.parentId, isRoomNotFoundOrMoved, - isGracePeriod, - setQuotaWarningDialogVisible, type: selectedFolderStore.type, isRoot, isPublicRoom, - isWarningRoomsDialog, + roomType, + parentRoomType, + folderId, + isArchiveFolderRoot, }; }, )(observer(EmptyContainer)); diff --git a/packages/client/src/components/dialogs/ChangeStorageQuotaDialog/StyledComponent.js b/packages/client/src/components/EmptyContainer/sub-components/EmptyViewContainer/EmptyViewContainer.constants.ts similarity index 86% rename from packages/client/src/components/dialogs/ChangeStorageQuotaDialog/StyledComponent.js rename to packages/client/src/components/EmptyContainer/sub-components/EmptyViewContainer/EmptyViewContainer.constants.ts index 1cb1b9eb35..38e913a0c3 100644 --- a/packages/client/src/components/dialogs/ChangeStorageQuotaDialog/StyledComponent.js +++ b/packages/client/src/components/EmptyContainer/sub-components/EmptyViewContainer/EmptyViewContainer.constants.ts @@ -23,14 +23,4 @@ // All the Product's GUI elements, including illustrations and icon sets, as well as technical writing // 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 styled from "styled-components"; - -import { ModalDialog } from "@docspace/shared/components/modal-dialog"; - -const StyledModalDialog = styled(ModalDialog)` - p { - margin-bottom: 16px; - } -`; -export default StyledModalDialog; +export const DefaultFolderType = null; diff --git a/packages/client/src/components/EmptyContainer/sub-components/EmptyViewContainer/EmptyViewContainer.helpers.tsx b/packages/client/src/components/EmptyContainer/sub-components/EmptyViewContainer/EmptyViewContainer.helpers.tsx index e9662c368c..247f014007 100644 --- a/packages/client/src/components/EmptyContainer/sub-components/EmptyViewContainer/EmptyViewContainer.helpers.tsx +++ b/packages/client/src/components/EmptyContainer/sub-components/EmptyViewContainer/EmptyViewContainer.helpers.tsx @@ -2,6 +2,7 @@ import React from "react"; import { P, match } from "ts-pattern"; import { + EmployeeType, FilesSelectorFilterTypes, FilterType, FolderType, @@ -9,29 +10,15 @@ import { ShareAccessRights, } from "@docspace/shared/enums"; -import EmptyFormRoomDarkIcon from "PUBLIC_DIR/images/emptyview/empty.form.room.dark.svg"; -import EmptyFormRoomLightIcon from "PUBLIC_DIR/images/emptyview/empty.form.room.light.svg"; - -import EmptyCustomRoomDarkIcon from "PUBLIC_DIR/images/emptyview/empty.custom.room.dark.svg"; -import EmptyCustomRoomLightIcon from "PUBLIC_DIR/images/emptyview/empty.custom.room.light.svg"; - -import EmptyFormRoomCollaboratorDarkIcon from "PUBLIC_DIR/images/emptyview/empty.form.room.collaborator.dark.svg"; -import EmptyFormRoomCollaboratorLightIcon from "PUBLIC_DIR/images/emptyview/empty.form.room.collaborator.light.svg"; - -import EmptyCustomRoomCollaboratorDarkIcon from "PUBLIC_DIR/images/emptyview/empty.custom.room.collaborator.dark.svg"; -import EmptyCustomRoomCollaboratorLightIcon from "PUBLIC_DIR/images/emptyview/empty.custom.room.collaborator.light.svg"; - -import EmptyCustomRoomOtherDarkIcon from "PUBLIC_DIR/images/emptyview/empty.custom.room.other.dark.svg"; -import EmptyCustomRoomOtherLightIcon from "PUBLIC_DIR/images/emptyview/empty.custom.room.other.light.svg"; - -import EmptyFormRoomFillingDarkIcon from "PUBLIC_DIR/images/emptyview/empty.form.room.filling.dark.svg"; -import EmptyFormRoomFillingLightIcon from "PUBLIC_DIR/images/emptyview/empty.form.room.filling.light.svg"; - -import CreateNewFormIcon from "PUBLIC_DIR/images/emptyview/create.new.form.svg"; -// import CreateFromFormIcon from "PUBLIC_DIR/images/emptyview/create.from.document.form.svg"; -import InviteUserFormIcon from "PUBLIC_DIR/images/emptyview/invite.user.svg"; import UploadPDFFormIcon from "PUBLIC_DIR/images/emptyview/upload.pdf.form.svg"; -import UploadDevicePDFFormIcon from "PUBLIC_DIR/images/emptyview/upload.device.pdf.form.svg"; +import CreateNewFormIcon from "PUBLIC_DIR/images/emptyview/create.new.form.svg"; +import CreateNewSpreadsheetIcon from "PUBLIC_DIR/images/emptyview/create.new.spreadsheet.svg"; +import CreateNewPresentation from "PUBLIC_DIR/images/emptyview/create.new.presentation.svg"; +import CreateRoom from "PUBLIC_DIR/images/emptyview/create.room.svg"; +import InviteUserFormIcon from "PUBLIC_DIR/images/emptyview/invite.user.svg"; +import PersonIcon from "PUBLIC_DIR/images/icons/12/person.svg"; +import FolderIcon from "PUBLIC_DIR/images/icons/12/folder.svg"; + import SharedIcon from "PUBLIC_DIR/images/emptyview/share.svg"; import DocumentsReactSvgUrl from "PUBLIC_DIR/images/actions.documents.react.svg?url"; @@ -40,21 +27,30 @@ import PresentationReactSvgUrl from "PUBLIC_DIR/images/actions.presentation.reac import FormReactSvgUrl from "PUBLIC_DIR/images/access.form.react.svg?url"; import FolderReactSvgUrl from "PUBLIC_DIR/images/catalog.folder.react.svg?url"; -import FormDefaultFolderLight from "PUBLIC_DIR/images/emptyview/empty.form.default.folder.light.svg"; -import FormDefaultFolderDark from "PUBLIC_DIR/images/emptyview/empty.form.default.folder.dark.svg"; - import type { Nullable, TTranslation } from "@docspace/shared/types"; import type { TRoomSecurity } from "@docspace/shared/api/rooms/types"; import type { TFolderSecurity } from "@docspace/shared/api/files/types"; -import type { EmptyViewItemType } from "@docspace/shared/components/empty-view"; - import type { - ExtensiontionType, - OptionActions, - UploadType, -} from "./EmptyViewContainer.types"; + EmptyViewItemType, + EmptyViewOptionsType, +} from "@docspace/shared/components/empty-view"; -type AccessType = Nullable | undefined; +import type { AccessType, OptionActions } from "./EmptyViewContainer.types"; +import { DefaultFolderType } from "./EmptyViewContainer.constants"; +import { + getFolderDescription, + getFolderIcon, + getFolderTitle, + getRoomDescription, + getRoomIcon, + getRoomTitle, + getRootDesctiption, + getRootIcom, + getRootTitle, + helperOptions, + isAdmin, + isUser, +} from "./EmptyViewContainer.utils"; export const getDescription = ( type: RoomsType, @@ -64,48 +60,24 @@ export const getDescription = ( folderType: Nullable, parentRoomType: Nullable, isArchiveFolderRoot: boolean, + isRootEmptyPage: boolean, + rootFolderType: Nullable, ): string => { - const isCollaborator = access === ShareAccessRights.Collaborator; + const isNotAdmin = isUser(access); - const isNotAdmin = - access !== ShareAccessRights.None && - access !== ShareAccessRights.RoomManager && - !isCollaborator; + if (isRootEmptyPage) return getRootDesctiption(t, access, rootFolderType); - if (isFolder) { - return match([parentRoomType, folderType, access]) - .with([P._, FolderType.Done, P._], () => - t("Files:EmptyFormFolderDoneDescriptionText"), - ) - .with([P._, FolderType.InProgress, P._], () => - t("Files:EmptyFormFolderProgressDescriptionText"), - ) - .with([P._, FolderType.SubFolderDone, P._], () => - t("Files:EmptyFormSubFolderDoneDescriptionText"), - ) - .with([P._, FolderType.SubFolderInProgress, P._], () => - t("Files:EmptyFormSubFolderProgressDescriptionText"), - ) - .with( - [ - FolderType.FormRoom, - null, - P.when(() => isNotAdmin || isArchiveFolderRoot), - ], - () => t("EmptyView:FormFolderDefaultUserDescription"), - ) - .with([FolderType.FormRoom, null, P._], () => - t("EmptyView:FormFolderDefaultDescription", { - productName: t("Common:ProductName"), - }), - ) - .otherwise(() => ""); - } + if (isFolder) + return getFolderDescription( + t, + access, + isNotAdmin, + isArchiveFolderRoot, + folderType, + parentRoomType, + ); - if (isNotAdmin || isArchiveFolderRoot) - return t("EmptyView:UserEmptyDescription"); - - return t("EmptyView:EmptyDescription"); + return getRoomDescription(t, isNotAdmin, isArchiveFolderRoot); }; export const getTitle = ( @@ -116,132 +88,24 @@ export const getTitle = ( folderType: Nullable, parentRoomType: Nullable, isArchiveFolderRoot: boolean, + isRootEmptyPage: boolean, + rootFolderType: Nullable, ): string => { - const isCollaborator = access === ShareAccessRights.Collaborator; + const isNotAdmin = isUser(access); - const isNotAdmin = - access !== ShareAccessRights.None && - access !== ShareAccessRights.RoomManager && - !isCollaborator; + if (isRootEmptyPage) return getRootTitle(t, access, rootFolderType); - if (isFolder) { - return match([parentRoomType, folderType, access]) - .with([P._, FolderType.Done, P._], () => - t("Files:EmptyFormFolderDoneHeaderText"), - ) + if (isFolder) + return getFolderTitle( + t, + isNotAdmin, + isArchiveFolderRoot, + access, + folderType, + parentRoomType, + ); - .with([P._, FolderType.InProgress, P._], () => - t("Files:EmptyFormFolderProgressHeaderText"), - ) - .with( - [ - P._, - P.union(FolderType.SubFolderDone, FolderType.SubFolderInProgress), - P._, - ], - () => t("Files:EmptyFormSubFolderHeaderText"), - ) - .with( - [ - FolderType.FormRoom, - null, - P.when(() => isNotAdmin || isArchiveFolderRoot), - ], - () => t("EmptyView:FormFolderDefaultUserTitle"), - ) - .with([FolderType.FormRoom, null, P._], () => - t("EmptyView:FormFolderDefaultTitle"), - ) - .otherwise(() => ""); - } - - if (isCollaborator) return t("EmptyView:CollaboratorEmptyTitle"); - - if (isNotAdmin || isArchiveFolderRoot) return t("Files:EmptyScreenFolder"); - - switch (type) { - case RoomsType.FormRoom: - return t("EmptyView:FormRoomEmptyTitle"); - case RoomsType.EditingRoom: - return ""; - case RoomsType.PublicRoom: - return ""; - case RoomsType.CustomRoom: - return t("EmptyView:CustomRoomEmptyTitle"); - default: - return ""; - } -}; - -export const getFolderIcon = ( - roomType: Nullable, - isBaseTheme: boolean, - access: AccessType, - folderType: Nullable, -) => { - return match([roomType, folderType, access]) - .with([FolderType.FormRoom, P._, P._], () => - isBaseTheme ? : , - ) - .otherwise(() =>
); -}; - -export const getRoomIcon = ( - type: RoomsType, - isBaseTheme: boolean, - access: AccessType, -) => { - return ( - match([type, access]) - .with([RoomsType.FormRoom, ShareAccessRights.FormFilling], () => - isBaseTheme ? ( - - ) : ( - - ), - ) - .with([RoomsType.FormRoom, ShareAccessRights.Collaborator], () => - isBaseTheme ? ( - - ) : ( - - ), - ) - .with([RoomsType.FormRoom, P._], () => - isBaseTheme ? : , - ) - - .with([RoomsType.EditingRoom, P._], () =>
) - .with([RoomsType.PublicRoom, P._], () =>
) - .with( - [ - RoomsType.CustomRoom, - P.union(ShareAccessRights.None, ShareAccessRights.RoomManager), // owner, docspace admin, room admin - ], - () => - isBaseTheme ? ( - - ) : ( - - ), - ) - .with([RoomsType.CustomRoom, ShareAccessRights.Collaborator], () => - isBaseTheme ? ( - - ) : ( - - ), - ) - .with([RoomsType.CustomRoom, P._], () => - isBaseTheme ? ( - - ) : ( - - ), - ) - // eslint-disable-next-line react/jsx-no-useless-fragment - .otherwise(() => <>) - ); + return getRoomTitle(t, type, access, isNotAdmin, isArchiveFolderRoot); }; export const getIcon = ( @@ -251,75 +115,16 @@ export const getIcon = ( isFolder: boolean, folderType: Nullable, parentRoomType: Nullable, + isRootEmptyPage: boolean, + rootFolderType: Nullable, ): JSX.Element => { + if (isRootEmptyPage) return getRootIcom(rootFolderType, access, isBaseTheme); + return isFolder ? getFolderIcon(parentRoomType, isBaseTheme, access, folderType) : getRoomIcon(type, isBaseTheme, access); }; -const helperOptions = ( - actions: OptionActions, - security: Nullable, -) => { - const createInviteOption = (title: string, description: string) => { - return { - title, - description, - icon: , - key: "invite-users", - onClick: actions.inviteUser, - disabled: !security?.EditAccess, - }; - }; - - const createCreateFileOption = ( - title: string, - description: string, - extension: ExtensiontionType, - withoutDialog: boolean = false, - ) => ({ - title, - description, - icon: , - key: "create-form", - onClick: () => actions.onCreate(extension, withoutDialog), - disabled: !security?.Create, - }); - - const createUploadFromDeviceOption = ( - title: string, - description: string, - uploadType: UploadType, - ) => ({ - title, - description, - icon: , - key: "create-form", - onClick: () => actions.onUploadAction(uploadType), - disabled: !security?.Create, - }); - - const createUploadFromDocSpace = ( - title: string, - description: string, - filterType: FilesSelectorFilterTypes | FilterType, - ) => ({ - title, - description, - icon: , - key: "upload-pdf-form", - onClick: () => actions.uploadFromDocspace(filterType), - disabled: !security?.Create, - }); - - return { - createInviteOption, - createCreateFileOption, - createUploadFromDocSpace, - createUploadFromDeviceOption, - }; -}; - export const getOptions = ( type: RoomsType, security: Nullable, @@ -329,15 +134,14 @@ export const getOptions = ( folderType: Nullable, parentRoomType: Nullable, isArchiveFolderRoot: boolean, + isRootEmptyPage: boolean, + rootFolderType: Nullable, actions: OptionActions, -): EmptyViewItemType[] => { +): EmptyViewOptionsType => { const isFormFiller = access === ShareAccessRights.FormFilling; const isCollaborator = access === ShareAccessRights.Collaborator; - const isNotAdmin = - access !== ShareAccessRights.None && - access !== ShareAccessRights.RoomManager && - !isCollaborator; + const isNotAdmin = isUser(access); const { createInviteOption, @@ -381,7 +185,12 @@ export const getOptions = ( t("EmptyView:InviteUsersOptionDescription"), ); - const shareRoom = { + const inviteUserEditingRoom = createInviteOption( + t("EmptyView:InviteUsersOptionTitle"), + t("EmptyView:InviteUsersCollaborationOptionDescription"), + ); + + const shareFillingRoom = { title: t("EmptyView:ShareOptionTitle"), description: t("EmptyView:ShareOptionDescription"), icon: , @@ -390,6 +199,80 @@ export const getOptions = ( disabled: false, }; + const sharePublicRoom = { + title: t("EmptyView:SharePublicRoomOptionTitle"), + description: t("EmptyView:SharePublicRoomOptionDescription"), + icon: , + key: "share-public-room", + onClick: actions.openInfoPanel, + disabled: false, + }; + + const createDoc = { + title: t("EmptyView:CreateDocument"), + description: t("EmptyView:CreateDocumentDescription"), + icon: , + key: "create-doc-option", + onClick: () => actions.onCreate("docx"), + disabled: false, + }; + const createSpreadsheet = { + title: t("EmptyView:CreateSpreadsheet"), + description: t("EmptyView:CreateSpreadsheetDescription"), + icon: , + key: "create-spreadsheet-option", + onClick: () => actions.onCreate("xlsx"), + disabled: false, + }; + const createPresentation = { + title: t("EmptyView:CreatePresentation"), + description: t("EmptyView:CreatePresentationDescription"), + icon: , + key: "create-presentation-option", + onClick: () => actions.onCreate("pptx"), + disabled: false, + }; + + const createForm = { + title: t("EmptyView:CreateForm"), + description: t("EmptyView:CreateFormDescription"), + icon: , + key: "create-form-option", + onClick: () => actions.onCreate("pdf"), + disabled: false, + }; + + const createRoom = { + title: t("EmptyView:CreateRoomTitleOption"), + description: t("EmptyView:CreateRoomDescriotionOption"), + icon: , + key: "create-room", + onClick: actions.onCreateRoom, + disabled: false, + }; + + const inviteRootRoom = { + title: t("EmptyView:InviteNewUsers"), + description: t("EmptyView:InviteRootRoomDescription", { + productName: t("Common:ProductName"), + }), + icon: , + key: "invite-root-room", + onClick: () => actions.inviteRootUser(EmployeeType.Guest), + disabled: false, + }; + + const migrationData = { + title: t("EmptyView:MigrationDataTitle"), + description: t("EmptyView:MigrationDataDescription", { + productName: t("Common:ProductName"), + }), + icon: , + key: "migration-data", + onClick: () => actions.navigate("/portal-settings/data-import"), + disabled: false, + }; + const createFile: EmptyViewItemType = { title: t("EmptyView:CreateNewFileTitle"), description: t("EmptyView:CreateNewFileDescription"), @@ -431,6 +314,38 @@ export const getOptions = ( ], }; + if (isRootEmptyPage) { + return match([rootFolderType, access]) + .returnType() + .with([FolderType.Rooms, ShareAccessRights.None], () => [ + createRoom, + inviteRootRoom, + migrationData, + ]) + .with([FolderType.USER, ShareAccessRights.None], () => [ + createDoc, + createSpreadsheet, + createPresentation, + createForm, + ]) + .with([FolderType.Recent, P._], () => ({ + ...actions.onGoToPersonal(), + icon: , + description: t("Files:GoToPersonal"), + })) + .with([FolderType.Archive, ShareAccessRights.None], () => ({ + ...actions.onGoToShared(), + icon: , + description: t("Files:GoToMyRooms"), + })) + .with([FolderType.TRASH, P._], () => ({ + ...actions.onGoToPersonal(), + icon: , + description: t("Files:GoToPersonal"), + })) + .otherwise(() => []); + } + if (isArchiveFolderRoot) return []; if (isFolder) { @@ -448,11 +363,16 @@ export const getOptions = ( ], () => [], ) - .with([FolderType.FormRoom, null, P.when(() => isNotAdmin)], () => []) - .with([FolderType.FormRoom, null, P._], () => [ + .with([FolderType.FormRoom, DefaultFolderType, P.when(isAdmin)], () => [ uploadPDFFromDocSpace, uploadFromDevicePDF, ]) + .with([P._, DefaultFolderType, P.when(isAdmin)], () => [ + createDoc, + createSpreadsheet, + createPresentation, + createForm, + ]) .otherwise(() => []); } @@ -461,17 +381,38 @@ export const getOptions = ( if (isFormFiller) return []; if (isCollaborator) - return [uploadPDFFromDocSpace, uploadFromDevicePDF, shareRoom]; + return [uploadPDFFromDocSpace, uploadFromDevicePDF, shareFillingRoom]; - return [uploadPDFFromDocSpace, uploadFromDevicePDF, shareRoom]; + return [uploadPDFFromDocSpace, uploadFromDevicePDF, shareFillingRoom]; case RoomsType.EditingRoom: - return []; + if (isNotAdmin) return []; + + if (isCollaborator) + return [createFile, uploadAllFromDocSpace, uploadFromDeviceAnyFile]; + + return [ + createFile, + inviteUserEditingRoom, + uploadAllFromDocSpace, + uploadFromDeviceAnyFile, + ]; case RoomsType.PublicRoom: - return []; + if (isNotAdmin) return []; + + if (isCollaborator) + return [createFile, uploadAllFromDocSpace, uploadFromDeviceAnyFile]; + + return [ + createFile, + sharePublicRoom, + uploadAllFromDocSpace, + uploadFromDeviceAnyFile, + ]; case RoomsType.CustomRoom: if (isNotAdmin) return []; - if (isCollaborator) return [createFile, uploadFromDeviceAnyFile]; + if (isCollaborator) + return [createFile, uploadAllFromDocSpace, uploadFromDeviceAnyFile]; return [ createFile, diff --git a/packages/client/src/components/EmptyContainer/sub-components/EmptyViewContainer/EmptyViewContainer.hooks.ts b/packages/client/src/components/EmptyContainer/sub-components/EmptyViewContainer/EmptyViewContainer.hooks.ts new file mode 100644 index 0000000000..aaf8ab1333 --- /dev/null +++ b/packages/client/src/components/EmptyContainer/sub-components/EmptyViewContainer/EmptyViewContainer.hooks.ts @@ -0,0 +1,294 @@ +import { useTheme } from "styled-components"; +import { useMemo, useCallback } from "react"; +import { useNavigate, LinkProps } from "react-router-dom"; + +import { + Events, + FileExtensions, + FilesSelectorFilterTypes, + FilterType, + RoomSearchArea, +} from "@docspace/shared/enums"; +import RoomsFilter from "@docspace/shared/api/rooms/filter"; +import FilesFilter from "@docspace/shared/api/files/filter"; +import type { TTranslation } from "@docspace/shared/types"; + +import { getCategoryUrl } from "SRC_DIR/helpers/utils"; +import { CategoryType } from "SRC_DIR/helpers/constants"; + +import { + getDescription, + getIcon, + getOptions, + getTitle, +} from "./EmptyViewContainer.helpers"; + +import type { + CreateEvent, + EmptyViewContainerProps, + ExtensiontionType, + UploadType, +} from "./EmptyViewContainer.types"; + +export const useEmptyView = ( + { + type, + access, + isFolder, + folderType, + parentRoomType, + isRootEmptyPage, + isArchiveFolderRoot, + rootFolderType, + }: EmptyViewContainerProps, + t: TTranslation, +) => { + const theme = useTheme(); + + const emptyViewOptions = useMemo(() => { + const description = getDescription( + type, + t, + access, + isFolder, + folderType, + parentRoomType, + isArchiveFolderRoot, + isRootEmptyPage, + rootFolderType, + ); + const title = getTitle( + type, + t, + access, + isFolder, + folderType, + parentRoomType, + isArchiveFolderRoot, + isRootEmptyPage, + rootFolderType, + ); + const icon = getIcon( + type, + theme.isBase, + access, + isFolder, + folderType, + parentRoomType, + isRootEmptyPage, + rootFolderType, + ); + + return { description, title, icon }; + }, [ + type, + t, + theme.isBase, + access, + isFolder, + folderType, + parentRoomType, + isRootEmptyPage, + isArchiveFolderRoot, + rootFolderType, + ]); + + return emptyViewOptions; +}; + +export const useOptions = ( + { + type, + access, + folderId, + isFolder, + security, + folderType, + selectedFolder, + parentRoomType, + isRootEmptyPage, + isVisibleInfoPanel, + isArchiveFolderRoot, + rootFolderType, + myFolderId, + myFolder, + roomsFolder, + userId, + isWarningRoomsDialog, + setViewInfoPanel, + onClickInviteUsers, + setVisibleInfoPanel, + onCreateAndCopySharedLink, + setQuotaWarningDialogVisible, + setSelectFileFormRoomDialogVisible, + inviteUser: inviteRootUser, + }: EmptyViewContainerProps, + t: TTranslation, +) => { + const navigate = useNavigate(); + + const onGoToShared = useCallback(() => { + const newFilter = RoomsFilter.getDefault(userId, RoomSearchArea.Active); + + newFilter.searchArea = RoomSearchArea.Active; + + const state = { + title: roomsFolder.title, + isRoot: true, + rootFolderType: roomsFolder.rootFolderType, + }; + + const path = getCategoryUrl(CategoryType.Shared); + return { + to: { + pathname: path, + search: newFilter.toUrlParams(), + }, + state, + }; + }, [roomsFolder.rootFolderType, roomsFolder.title, userId]); + + const onGoToPersonal = useCallback((): LinkProps => { + const newFilter = FilesFilter.getDefault(); + + newFilter.folder = myFolderId?.toString() ?? ""; + + const state = { + title: myFolder.title, + isRoot: true, + rootFolderType: myFolder.rootFolderType, + }; + + const path = getCategoryUrl(CategoryType.Personal); + + // setIsSectionFilterLoading(true); + + return { + to: { + pathname: path, + search: newFilter.toUrlParams(), + }, + state, + }; + }, [myFolder.rootFolderType, myFolder.title, myFolderId]); + + const onCreateRoom = useCallback(() => { + if (isWarningRoomsDialog) { + setQuotaWarningDialogVisible(true); + return; + } + + const event = new Event(Events.ROOM_CREATE); + window.dispatchEvent(event); + }, [isWarningRoomsDialog, setQuotaWarningDialogVisible]); + + const openInfoPanel = useCallback(() => { + if (!isVisibleInfoPanel) setVisibleInfoPanel?.(true); + + setViewInfoPanel?.("info_members"); + }, [setViewInfoPanel, setVisibleInfoPanel, isVisibleInfoPanel]); + + const onUploadAction = useCallback((uploadType: UploadType) => { + const element = + uploadType === "file" + ? document.getElementById("customFileInput") + : uploadType === "pdf" + ? document.getElementById("customPDFInput") + : document.getElementById("customFolderInput"); + + element?.click(); + }, []); + + const inviteUser = useCallback(() => { + onClickInviteUsers?.(folderId, type); + }, [onClickInviteUsers, folderId, type]); + + const uploadFromDocspace = useCallback( + ( + filterParam: FilesSelectorFilterTypes | FilterType, + openRoot: boolean = true, + ) => { + setSelectFileFormRoomDialogVisible?.(true, filterParam, openRoot); + }, + [setSelectFileFormRoomDialogVisible], + ); + + const onCreate = useCallback( + (extension: ExtensiontionType, withoutDialog?: boolean) => { + const event: CreateEvent = new Event(Events.CREATE); + + const edit = extension === FileExtensions.PDF; + + const payload = { + id: -1, + extension, + withoutDialog, + edit, + }; + event.payload = payload; + + window.dispatchEvent(event); + }, + [], + ); + + const createAndCopySharedLink = useCallback(() => { + if (!selectedFolder) return; + + onCreateAndCopySharedLink?.(selectedFolder, t); + }, [selectedFolder, onCreateAndCopySharedLink, t]); + + const options = useMemo( + () => + getOptions( + type, + security!, + t, + access, + isFolder, + folderType, + parentRoomType, + isArchiveFolderRoot, + isRootEmptyPage, + rootFolderType, + { + inviteUser, + onCreate, + uploadFromDocspace, + onUploadAction, + createAndCopySharedLink, + openInfoPanel, + onCreateRoom, + inviteRootUser, + navigate, + onGoToPersonal, + onGoToShared, + }, + ), + [ + type, + access, + security, + isFolder, + folderType, + parentRoomType, + isArchiveFolderRoot, + isRootEmptyPage, + rootFolderType, + t, + inviteUser, + uploadFromDocspace, + onUploadAction, + createAndCopySharedLink, + onCreate, + openInfoPanel, + onCreateRoom, + inviteRootUser, + navigate, + onGoToPersonal, + onGoToShared, + ], + ); + + return options; +}; diff --git a/packages/client/src/components/EmptyContainer/sub-components/EmptyViewContainer/EmptyViewContainer.tsx b/packages/client/src/components/EmptyContainer/sub-components/EmptyViewContainer/EmptyViewContainer.tsx index 8d29734caf..052a090a28 100644 --- a/packages/client/src/components/EmptyContainer/sub-components/EmptyViewContainer/EmptyViewContainer.tsx +++ b/packages/client/src/components/EmptyContainer/sub-components/EmptyViewContainer/EmptyViewContainer.tsx @@ -1,209 +1,99 @@ -import { useTheme } from "styled-components"; +import React from "react"; import { inject, observer } from "mobx-react"; import { useTranslation } from "react-i18next"; -import React, { useMemo, useCallback } from "react"; -import { - Events, - FilesSelectorFilterTypes, - FilterType, -} from "@docspace/shared/enums"; import { EmptyView } from "@docspace/shared/components/empty-view"; -import { - getDescription, - getIcon, - getOptions, - getTitle, -} from "./EmptyViewContainer.helpers"; - +import { useEmptyView, useOptions } from "./EmptyViewContainer.hooks"; import type { - CreateEvent, EmptyViewContainerProps, - ExtensiontionType, - UploadType, + InjectedEmptyViewContainerProps, + OutEmptyViewContainerProps, } from "./EmptyViewContainer.types"; -const EmptyViewContainer = observer( +const EmptyViewContainer = observer((props: EmptyViewContainerProps) => { + const { t } = useTranslation([ + "EmptyView", + "Files", + "Common", + "Translations", + ]); + + const options = useOptions(props, t); + const emptyViewOptions = useEmptyView(props, t); + + const { description, title, icon } = emptyViewOptions; + + return ( + + ); +}); + +const InjectedEmptyViewContainer = inject< + TStore, + OutEmptyViewContainerProps, + InjectedEmptyViewContainerProps +>( ({ - type, - access, - folderId, - isFolder, - security, - folderType, - selectedFolder, - parentRoomType, - isArchiveFolderRoot, - onClickInviteUsers, - onCreateAndCopySharedLink, - setSelectFileFormRoomDialogVisible, - }: EmptyViewContainerProps) => { - const { t } = useTranslation([ - "EmptyView", - "Files", - "Common", - "Translations", - ]); + contextOptionsStore, + selectedFolderStore, + dialogsStore, + infoPanelStore, + treeFoldersStore, + clientLoadingStore, + userStore, + currentQuotaStore, + }): InjectedEmptyViewContainerProps => { + const { isWarningRoomsDialog } = currentQuotaStore; - const theme = useTheme(); + const { myFolderId, myFolder, roomsFolder } = treeFoldersStore; - const onUploadAction = useCallback((uploadType: UploadType) => { - const element = - uploadType === "file" - ? document.getElementById("customFileInput") - : uploadType === "pdf" - ? document.getElementById("customPDFInput") - : document.getElementById("customFolderInput"); + const { setIsSectionFilterLoading } = clientLoadingStore; - element?.click(); - }, []); - - const inviteUser = useCallback(() => { - onClickInviteUsers?.(folderId, type); - }, [onClickInviteUsers, folderId, type]); - - const uploadFromDocspace = useCallback( - ( - filterParam: FilesSelectorFilterTypes | FilterType, - openRoot: boolean = true, - ) => { - setSelectFileFormRoomDialogVisible?.(true, filterParam, openRoot); - }, - [setSelectFileFormRoomDialogVisible], - ); - - const onCreate = useCallback( - (extension: ExtensiontionType, withoutDialog?: boolean) => { - const event: CreateEvent = new Event(Events.CREATE); - - const payload = { - id: -1, - extension, - withoutDialog, - }; - event.payload = payload; - - window.dispatchEvent(event); - }, - [], - ); - - const createAndCopySharedLink = useCallback(() => { - if (!selectedFolder) return; - - onCreateAndCopySharedLink?.(selectedFolder, t); - }, [selectedFolder, onCreateAndCopySharedLink, t]); - - const emptyViewOptions = useMemo(() => { - const description = getDescription( - type, - t, - access, - isFolder, - folderType, - parentRoomType, - isArchiveFolderRoot, - ); - const title = getTitle( - type, - t, - access, - isFolder, - folderType, - parentRoomType, - isArchiveFolderRoot, - ); - const icon = getIcon( - type, - theme.isBase, - access, - isFolder, - folderType, - parentRoomType, - ); - - return { description, title, icon }; - }, [ - type, - t, - theme.isBase, - access, - isFolder, - folderType, - parentRoomType, - isArchiveFolderRoot, - ]); - - const options = useMemo( - () => - getOptions( - type, - security!, - t, - access, - isFolder, - folderType, - parentRoomType, - isArchiveFolderRoot, - { - inviteUser, - onCreate, - uploadFromDocspace, - onUploadAction, - createAndCopySharedLink, - }, - ), - [ - type, - access, - security, - isFolder, - folderType, - parentRoomType, - isArchiveFolderRoot, - t, - inviteUser, - uploadFromDocspace, - onUploadAction, - createAndCopySharedLink, - onCreate, - ], - ); - - const { description, title, icon } = emptyViewOptions; - - return ( - - ); - }, -); - -const injectedEmptyViewContainer = inject( - ({ contextOptionsStore, selectedFolderStore, dialogsStore }) => { - const { onClickInviteUsers, onCreateAndCopySharedLink } = + const { onClickInviteUsers, onCreateAndCopySharedLink, inviteUser } = contextOptionsStore; - const { setSelectFileFormRoomDialogVisible } = dialogsStore; + const { + setIsVisible: setVisibleInfoPanel, + isVisible: isVisibleInfoPanel, + setView: setViewInfoPanel, + } = infoPanelStore; - const { security, access } = selectedFolderStore; + const { setSelectFileFormRoomDialogVisible, setQuotaWarningDialogVisible } = + dialogsStore; + + const { security, access, rootFolderType } = selectedFolderStore; const selectedFolder = selectedFolderStore.getSelectedFolder(); + const userId = userStore?.user?.id; + return { access, security, selectedFolder, + isVisibleInfoPanel, + rootFolderType, + myFolderId, + myFolder, + roomsFolder, + userId, + isWarningRoomsDialog, + inviteUser, + setViewInfoPanel, onClickInviteUsers, + setVisibleInfoPanel, + setIsSectionFilterLoading, onCreateAndCopySharedLink, setSelectFileFormRoomDialogVisible, + setQuotaWarningDialogVisible, }; }, -)(EmptyViewContainer); +)(EmptyViewContainer as React.FC); -export default injectedEmptyViewContainer; +export default InjectedEmptyViewContainer; diff --git a/packages/client/src/components/EmptyContainer/sub-components/EmptyViewContainer/EmptyViewContainer.types.ts b/packages/client/src/components/EmptyContainer/sub-components/EmptyViewContainer/EmptyViewContainer.types.ts index c953cb8b49..1fa4bf8ed6 100644 --- a/packages/client/src/components/EmptyContainer/sub-components/EmptyViewContainer/EmptyViewContainer.types.ts +++ b/packages/client/src/components/EmptyContainer/sub-components/EmptyViewContainer/EmptyViewContainer.types.ts @@ -1,5 +1,5 @@ -import type { TFolderSecurity } from "@docspace/shared/api/files/types"; -import type { TRoomSecurity } from "@docspace/shared/api/rooms/types"; +import type { NavigateFunction, LinkProps } from "react-router-dom"; + import type { FilesSelectorFilterTypes, FilterType, @@ -11,7 +11,14 @@ import type { Nullable } from "@docspace/shared/types"; export type UploadType = "pdf" | "file" | "folder"; -export type ExtensiontionType = "docx" | "xlsx" | "pptx" | "pdf" | undefined; +export type FolderExtensiontionType = undefined; + +export type ExtensiontionType = + | "docx" + | "xlsx" + | "pptx" + | "pdf" + | FolderExtensiontionType; export type CreateEvent = Event & { payload?: { @@ -21,24 +28,49 @@ export type CreateEvent = Event & { }; }; -export interface EmptyViewContainerProps { +export type AccessType = Nullable | undefined; + +export interface OutEmptyViewContainerProps { type: RoomsType; folderId: number; - access?: Nullable; - security?: Nullable; + parentRoomType: Nullable; folderType: Nullable; isFolder: boolean; isArchiveFolderRoot: boolean; - onClickInviteUsers?: (folderId: string | number, roomType: RoomsType) => void; - setSelectFileFormRoomDialogVisible?: TStore["dialogsStore"]["setSelectFileFormRoomDialogVisible"]; - onCreateAndCopySharedLink?: TStore["contextOptionsStore"]["onCreateAndCopySharedLink"]; - selectedFolder?: ReturnType< - TStore["selectedFolderStore"]["getSelectedFolder"] - >; + isRootEmptyPage: boolean; } +export interface InjectedEmptyViewContainerProps + extends Pick< + TStore["contextOptionsStore"], + "inviteUser" | "onCreateAndCopySharedLink" | "onClickInviteUsers" + >, + Pick< + TStore["dialogsStore"], + "setSelectFileFormRoomDialogVisible" | "setQuotaWarningDialogVisible" + >, + Pick< + TStore["selectedFolderStore"], + "access" | "security" | "rootFolderType" + >, + Pick, + Pick { + selectedFolder: ReturnType< + TStore["selectedFolderStore"]["getSelectedFolder"] + >; + userId: string | undefined; + isVisibleInfoPanel: boolean; + isWarningRoomsDialog: boolean; + setVisibleInfoPanel: (arg: boolean) => void; + setViewInfoPanel: TStore["infoPanelStore"]["setView"]; +} + +export type EmptyViewContainerProps = OutEmptyViewContainerProps & + InjectedEmptyViewContainerProps; + export type OptionActions = { + navigate: NavigateFunction; inviteUser: VoidFunction; onCreate: (extension: ExtensiontionType, withoutDialog?: boolean) => void; uploadFromDocspace: ( @@ -47,4 +79,9 @@ export type OptionActions = { ) => void; onUploadAction: (type: UploadType) => void; createAndCopySharedLink: VoidFunction; + openInfoPanel: VoidFunction; + onCreateRoom: VoidFunction; + inviteRootUser: TStore["contextOptionsStore"]["inviteUser"]; + onGoToPersonal: () => LinkProps; + onGoToShared: () => LinkProps; }; diff --git a/packages/client/src/components/EmptyContainer/sub-components/EmptyViewContainer/EmptyViewContainer.utils.tsx b/packages/client/src/components/EmptyContainer/sub-components/EmptyViewContainer/EmptyViewContainer.utils.tsx new file mode 100644 index 0000000000..af51ea882f --- /dev/null +++ b/packages/client/src/components/EmptyContainer/sub-components/EmptyViewContainer/EmptyViewContainer.utils.tsx @@ -0,0 +1,494 @@ +// (c) Copyright Ascensio System SIA 2009-2024 +// +// This program is a free software product. +// You can redistribute it and/or modify it under the terms +// of the GNU Affero General Public License (AGPL) version 3 as published by the Free Software +// Foundation. In accordance with Section 7(a) of the GNU AGPL its Section 15 shall be amended +// to the effect that Ascensio System SIA expressly excludes the warranty of non-infringement of +// any third-party rights. +// +// This program is distributed WITHOUT ANY WARRANTY, without even the implied warranty +// of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For details, see +// the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html +// +// You can contact Ascensio System SIA at Lubanas st. 125a-25, Riga, Latvia, EU, LV-1021. +// +// The interactive user interfaces in modified source and object code versions of the Program must +// display Appropriate Legal Notices, as required under Section 5 of the GNU AGPL version 3. +// +// Pursuant to Section 7(b) of the License you must retain the original Product logo when +// distributing the program. Pursuant to Section 7(e) we decline to grant you any rights under +// trademark law for use of our trademarks. +// +// All the Product's GUI elements, including illustrations and icon sets, as well as technical writing +// 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 { match, P } from "ts-pattern"; + +import InviteUserFormIcon from "PUBLIC_DIR/images/emptyview/invite.user.svg"; +import UploadPDFFormIcon from "PUBLIC_DIR/images/emptyview/upload.pdf.form.svg"; +import UploadDevicePDFFormIcon from "PUBLIC_DIR/images/emptyview/upload.device.pdf.form.svg"; +import CreateNewFormIcon from "PUBLIC_DIR/images/emptyview/create.new.form.svg"; + +import EmptyRoomsRootDarkIcon from "PUBLIC_DIR/images/emptyview/empty.rooms.root.dark.svg"; +import EmptyRoomsRootLightIcon from "PUBLIC_DIR/images/emptyview/empty.rooms.root.light.svg"; + +import EmptyRecentDarkIcon from "PUBLIC_DIR/images/emptyview/empty.recent.dark.svg"; +import EmptyRecentLightIcon from "PUBLIC_DIR/images/emptyview/empty.recent.light.svg"; +import EmptyTrashDarkIcon from "PUBLIC_DIR/images/emptyview/empty.trash.dark.svg"; +import EmptyTrashLightIcon from "PUBLIC_DIR/images/emptyview/empty.trash.light.svg"; + +import EmptyArchiveDarkIcon from "PUBLIC_DIR/images/emptyview/empty.archive.dark.svg"; +import EmptyArchiveLightIcon from "PUBLIC_DIR/images/emptyview/empty.archive.light.svg"; + +import EmptyArchiveUserDarkIcon from "PUBLIC_DIR/images/emptyview/empty.archive.user.dark.svg"; +import EmptyArchiveUserLightIcon from "PUBLIC_DIR/images/emptyview/empty.archive.user.light.svg"; + +import EmptyRoomsRootUserDarkIcon from "PUBLIC_DIR/images/emptyview/empty.rooms.root.user.dark.svg"; +import EmptyRoomsRootUserLightIcon from "PUBLIC_DIR/images/emptyview/empty.rooms.root.user.light.svg"; + +import EmptyFormRoomDarkIcon from "PUBLIC_DIR/images/emptyview/empty.form.room.dark.svg"; +import EmptyFormRoomLightIcon from "PUBLIC_DIR/images/emptyview/empty.form.room.light.svg"; + +import EmptyFormRoomCollaboratorDarkIcon from "PUBLIC_DIR/images/emptyview/empty.form.room.collaborator.dark.svg"; +import EmptyFormRoomCollaboratorLightIcon from "PUBLIC_DIR/images/emptyview/empty.form.room.collaborator.light.svg"; + +import EmptyFormRoomFillingDarkIcon from "PUBLIC_DIR/images/emptyview/empty.form.room.filling.dark.svg"; +import EmptyFormRoomFillingLightIcon from "PUBLIC_DIR/images/emptyview/empty.form.room.filling.light.svg"; + +import EmptyCustomRoomDarkIcon from "PUBLIC_DIR/images/emptyview/empty.custom.room.dark.svg"; +import EmptyCustomRoomLightIcon from "PUBLIC_DIR/images/emptyview/empty.custom.room.light.svg"; + +import EmptyCustomRoomCollaboratorDarkIcon from "PUBLIC_DIR/images/emptyview/empty.custom.room.collaborator.dark.svg"; +import EmptyCustomRoomCollaboratorLightIcon from "PUBLIC_DIR/images/emptyview/empty.custom.room.collaborator.light.svg"; + +import EmptyPublicRoomDarkIcon from "PUBLIC_DIR/images/emptyview/empty.public.room.dark.svg"; +import EmptyPublicRoomLightIcon from "PUBLIC_DIR/images/emptyview/empty.public.room.light.svg"; + +import EmptyPublicRoomCollaboratorDarkIcon from "PUBLIC_DIR/images/emptyview/empty.public.room.collaborator.dark.svg"; +import EmptyPublicRoomCollaboratorLightIcon from "PUBLIC_DIR/images/emptyview/empty.public.room.collaborator.light.svg"; + +import EmptyCollaborationRoomDarkIcon from "PUBLIC_DIR/images/emptyview/empty.collaboration.room.dark.svg"; +import EmptyCollaborationRoomLightIcon from "PUBLIC_DIR/images/emptyview/empty.collaboration.room.light.svg"; +import EmptyCollaborationRoomCollaboratorDarkIcon from "PUBLIC_DIR/images/emptyview/empty.collaboration.room.collaborator.dark.svg"; +import EmptyCollaborationRoomCollaboratorLightIcon from "PUBLIC_DIR/images/emptyview/empty.collaboration.room.collaborator.light.svg"; + +import FormDefaultFolderLight from "PUBLIC_DIR/images/emptyview/empty.form.default.folder.light.svg"; +import FormDefaultFolderDark from "PUBLIC_DIR/images/emptyview/empty.form.default.folder.dark.svg"; +import DefaultFolderDark from "PUBLIC_DIR/images/emptyview/empty.default.folder.dark.svg"; +import DefaultFolderLight from "PUBLIC_DIR/images/emptyview/empty.default.folder.light.svg"; +import DefaultFolderUserDark from "PUBLIC_DIR/images/emptyview/empty.default.folder.user.dark.svg"; +import DefaultFolderUserLight from "PUBLIC_DIR/images/emptyview/empty.default.folder.user.light.svg"; + +import { + FilesSelectorFilterTypes, + FilterType, + FolderType, + RoomsType, + ShareAccessRights, +} from "@docspace/shared/enums"; + +import type { Nullable, TTranslation } from "@docspace/shared/types"; +import type { TFolderSecurity } from "@docspace/shared/api/files/types"; +import type { TRoomSecurity } from "@docspace/shared/api/rooms/types"; + +import { DefaultFolderType } from "./EmptyViewContainer.constants"; +import type { + AccessType, + ExtensiontionType, + OptionActions, + UploadType, +} from "./EmptyViewContainer.types"; + +export const isUser = (access: AccessType) => { + return ( + access !== ShareAccessRights.None && + access !== ShareAccessRights.RoomManager && + access !== ShareAccessRights.Collaborator + ); +}; + +export const isAdmin = (access: AccessType) => { + return !isUser(access); +}; + +export const getFolderDescription = ( + t: TTranslation, + access: AccessType, + isNotAdmin: boolean, + isArchiveFolderRoot: boolean, + folderType: Nullable, + parentRoomType: Nullable, +) => { + return match([parentRoomType, folderType, access]) + .with([P._, FolderType.Done, P._], () => + t("Files:EmptyFormFolderDoneDescriptionText"), + ) + .with([P._, FolderType.InProgress, P._], () => + t("Files:EmptyFormFolderProgressDescriptionText"), + ) + .with([P._, FolderType.SubFolderDone, P._], () => + t("Files:EmptyFormSubFolderDoneDescriptionText"), + ) + .with([P._, FolderType.SubFolderInProgress, P._], () => + t("Files:EmptyFormSubFolderProgressDescriptionText"), + ) + .with( + [ + FolderType.FormRoom, + null, + P.when(() => isNotAdmin || isArchiveFolderRoot), + ], + () => t("EmptyView:FormFolderDefaultUserDescription"), + ) + .with([FolderType.FormRoom, DefaultFolderType, P._], () => + t("EmptyView:FormFolderDefaultDescription", { + productName: t("Common:ProductName"), + }), + ) + .with([P._, DefaultFolderType, P.when(isAdmin)], () => + t("EmptyView:DefaultFolderDescription"), + ) + .with([P._, DefaultFolderType, P.when(isUser)], () => + t("EmptyView:UserEmptyDescription"), + ) + .otherwise(() => ""); +}; + +export const getRoomDescription = ( + t: TTranslation, + isNotAdmin: boolean, + isArchiveFolderRoot: boolean, +) => { + if (isNotAdmin || isArchiveFolderRoot) + return t("EmptyView:UserEmptyDescription"); + + return t("EmptyView:EmptyDescription"); +}; + +export const getRootDesctiption = ( + t: TTranslation, + access: AccessType, + rootFolderType: Nullable, +) => { + return match([rootFolderType, access]) + .with([FolderType.Rooms, ShareAccessRights.None], () => + t("Files:RoomEmptyContainerDescription"), + ) + .with([FolderType.Rooms, ShareAccessRights.DenyAccess], () => + t("EmptyView:EmptyRootRoomUserDescription"), + ) + .with([FolderType.USER, ShareAccessRights.None], () => + t("EmptyView:DefaultFolderDescription"), + ) + .with([FolderType.Recent, P._], () => t("EmptyView:EmptyRecentDescription")) + .with([FolderType.Archive, ShareAccessRights.None], () => + t("Files:ArchiveEmptyScreen", { + productName: t("Common:ProductName"), + }), + ) + .with([FolderType.Archive, ShareAccessRights.DenyAccess], () => + t("Files:ArchiveEmptyScreenUser"), + ) + .with([FolderType.TRASH, P._], () => t("Files:TrashEmptyDescription")) + .otherwise(() => ""); +}; + +export const getFolderTitle = ( + t: TTranslation, + isArchiveFolderRoot: boolean, + isNotAdmin: boolean, + access: AccessType, + folderType: Nullable, + parentRoomType: Nullable, +) => { + return match([parentRoomType, folderType, access]) + .with([P._, FolderType.Done, P._], () => + t("Files:EmptyFormFolderDoneHeaderText"), + ) + + .with([P._, FolderType.InProgress, P._], () => + t("Files:EmptyFormFolderProgressHeaderText"), + ) + .with( + [ + P._, + P.union(FolderType.SubFolderDone, FolderType.SubFolderInProgress), + P._, + ], + () => t("Files:EmptyFormSubFolderHeaderText"), + ) + .with( + [ + FolderType.FormRoom, + DefaultFolderType, + P.when(() => isNotAdmin || isArchiveFolderRoot), + ], + () => t("EmptyView:FormFolderDefaultUserTitle"), + ) + .with([FolderType.FormRoom, DefaultFolderType, P._], () => + t("EmptyView:FormFolderDefaultTitle"), + ) + .with([P._, DefaultFolderType, P._], () => t("Files:EmptyScreenFolder")) + .otherwise(() => ""); +}; + +export const getRoomTitle = ( + t: TTranslation, + type: RoomsType, + access: AccessType, + isNotAdmin: boolean, + isArchiveFolderRoot: boolean, +) => { + const isCollaborator = access === ShareAccessRights.Collaborator; + + if (isCollaborator) return t("EmptyView:CollaboratorEmptyTitle"); + + if (isNotAdmin || isArchiveFolderRoot) return t("Files:EmptyScreenFolder"); + + switch (type) { + case RoomsType.FormRoom: + return t("EmptyView:FormRoomEmptyTitle"); + case RoomsType.EditingRoom: + return t("EmptyView:CollaborationRoomEmptyTitle"); + case RoomsType.PublicRoom: + return t("EmptyView:PublicRoomEmptyTitle"); + case RoomsType.CustomRoom: + return t("EmptyView:CustomRoomEmptyTitle"); + default: + return ""; + } +}; + +export const getRootTitle = ( + t: TTranslation, + access: AccessType, + rootFolderType: Nullable, +) => { + return match([rootFolderType, access]) + .with([FolderType.Rooms, ShareAccessRights.None], () => + t("Files:EmptyRootRoomHeader", { + productName: t("Common:ProductName"), + }), + ) + .with([FolderType.Rooms, ShareAccessRights.DenyAccess], () => + t("EmptyView:EmptyRootRoomUserTitle"), + ) + .with([FolderType.USER, ShareAccessRights.None], () => + t("Files:EmptyScreenFolder"), + ) + .with([FolderType.Recent, P._], () => t("Files:NoFilesHereYet")) + .with([FolderType.Archive, P._], () => t("Files:ArchiveEmptyScreenHeader")) + .with([FolderType.TRASH, P._], () => t("Files:EmptyScreenFolder")) + .otherwise(() => ""); +}; + +export const getFolderIcon = ( + roomType: Nullable, + isBaseTheme: boolean, + access: AccessType, + folderType: Nullable, +) => { + return match([roomType, folderType, access]) + .with([FolderType.FormRoom, P._, P._], () => + isBaseTheme ? : , + ) + .with([P._, DefaultFolderType, P.when(isUser)], () => + isBaseTheme ? : , + ) + .with([P._, DefaultFolderType, P.when(isAdmin)], () => + isBaseTheme ? : , + ) + .otherwise(() =>
); +}; + +export const getRoomIcon = ( + type: RoomsType, + isBaseTheme: boolean, + access: AccessType, +) => { + return ( + match([type, access]) + .with([RoomsType.FormRoom, ShareAccessRights.FormFilling], () => + isBaseTheme ? ( + + ) : ( + + ), + ) + .with([RoomsType.FormRoom, ShareAccessRights.Collaborator], () => + isBaseTheme ? ( + + ) : ( + + ), + ) + .with([RoomsType.FormRoom, P._], () => + isBaseTheme ? : , + ) + .with( + [ + RoomsType.EditingRoom, + P.union(ShareAccessRights.None, ShareAccessRights.RoomManager), + ], + () => + isBaseTheme ? ( + + ) : ( + + ), + ) + .with([RoomsType.EditingRoom, ShareAccessRights.Collaborator], () => + isBaseTheme ? ( + + ) : ( + + ), + ) + .with( + [ + RoomsType.PublicRoom, + P.union(ShareAccessRights.None, ShareAccessRights.RoomManager), // owner, docspace admin, room admin + ], + () => + isBaseTheme ? ( + + ) : ( + + ), + ) + .with([RoomsType.PublicRoom, ShareAccessRights.Collaborator], () => + isBaseTheme ? ( + + ) : ( + + ), + ) + .with( + [ + RoomsType.CustomRoom, + P.union(ShareAccessRights.None, ShareAccessRights.RoomManager), // owner, docspace admin, room admin + ], + () => + isBaseTheme ? ( + + ) : ( + + ), + ) + .with([RoomsType.CustomRoom, ShareAccessRights.Collaborator], () => + isBaseTheme ? ( + + ) : ( + + ), + ) + .with([P._, P.when(isUser)], () => + isBaseTheme ? : , + ) + // eslint-disable-next-line react/jsx-no-useless-fragment + .otherwise(() => <>) + ); +}; + +export const getRootIcom = ( + rootFolderType: Nullable, + access: AccessType, + isBaseTheme: boolean, +) => { + return match([rootFolderType, access]) + .with([FolderType.Rooms, ShareAccessRights.None], () => + isBaseTheme ? : , + ) + .with([FolderType.Rooms, ShareAccessRights.DenyAccess], () => + isBaseTheme ? ( + + ) : ( + + ), + ) + .with([FolderType.USER, ShareAccessRights.None], () => + isBaseTheme ? : , + ) + .with([FolderType.Recent, P._], () => + isBaseTheme ? : , + ) + .with([FolderType.Archive, ShareAccessRights.None], () => + isBaseTheme ? : , + ) + .with([FolderType.Archive, ShareAccessRights.DenyAccess], () => + isBaseTheme ? ( + + ) : ( + + ), + ) + .with([FolderType.TRASH, P._], () => + isBaseTheme ? : , + ) + .otherwise(() =>
); +}; + +export const helperOptions = ( + actions: OptionActions, + security: Nullable, +) => { + const createInviteOption = (title: string, description: string) => { + return { + title, + description, + icon: , + key: "invite-users", + onClick: actions.inviteUser, + disabled: !security?.EditAccess, + }; + }; + + const createCreateFileOption = ( + title: string, + description: string, + extension: ExtensiontionType, + withoutDialog: boolean = false, + ) => ({ + title, + description, + icon: , + key: "create-form", + onClick: () => actions.onCreate(extension, withoutDialog), + disabled: !security?.Create, + }); + + const createUploadFromDeviceOption = ( + title: string, + description: string, + uploadType: UploadType, + ) => ({ + title, + description, + icon: , + key: "create-form", + onClick: () => actions.onUploadAction(uploadType), + disabled: !security?.Create, + }); + + const createUploadFromDocSpace = ( + title: string, + description: string, + filterType: FilesSelectorFilterTypes | FilterType, + ) => ({ + title, + description, + icon: , + key: "upload-pdf-form", + onClick: () => actions.uploadFromDocspace(filterType), + disabled: !security?.Create, + }); + + return { + createInviteOption, + createCreateFileOption, + createUploadFromDocSpace, + createUploadFromDeviceOption, + }; +}; diff --git a/packages/client/src/components/FilesSelector/FilesSelector.types.ts b/packages/client/src/components/FilesSelector/FilesSelector.types.ts index ffb6752146..62d246bf57 100644 --- a/packages/client/src/components/FilesSelector/FilesSelector.types.ts +++ b/packages/client/src/components/FilesSelector/FilesSelector.types.ts @@ -29,12 +29,15 @@ import { TFilesSettings, TFolder, } from "@docspace/shared/api/files/types"; -import { TBreadCrumb } from "@docspace/shared/components/selector/Selector.types"; +import { + TBreadCrumb, + TSelectorHeader, +} from "@docspace/shared/components/selector/Selector.types"; import { DeviceType } from "@docspace/shared/enums"; import { TTheme } from "@docspace/shared/themes"; import SocketIOHelper from "@docspace/shared/utils/socket"; -export type FilesSelectorProps = { +export type FilesSelectorProps = TSelectorHeader & { isPanelVisible: boolean; // withoutImmediatelyClose: boolean; isThirdParty: boolean; diff --git a/packages/client/src/components/FilesSelector/index.tsx b/packages/client/src/components/FilesSelector/index.tsx index 1e95e8ab26..a8d133eb90 100644 --- a/packages/client/src/components/FilesSelector/index.tsx +++ b/packages/client/src/components/FilesSelector/index.tsx @@ -140,6 +140,7 @@ const FilesSelectorWrapper = ({ openRoot, filesSettings, + headerProps, }: FilesSelectorProps) => { const { t }: { t: TTranslation } = useTranslation([ "Files", @@ -392,6 +393,7 @@ const FilesSelectorWrapper = ({ getFilesArchiveError={getFilesArchiveError} withCreate={(isMove || isCopy || isRestore || isRestoreAll) ?? false} filesSettings={filesSettings} + headerProps={headerProps} /> ); }; diff --git a/packages/client/src/components/Main/index.js b/packages/client/src/components/Main/index.js index 3d6e8fc76b..eae6a1982f 100644 --- a/packages/client/src/components/Main/index.js +++ b/packages/client/src/components/Main/index.js @@ -76,10 +76,12 @@ const Main = (props) => { if (mainBarVisible && isMobileUtils()) { const mainBar = document.getElementById("main-bar"); - if (!mainBar.offsetHeight) - return (updateSizeRef.current = setTimeout(() => onResize(), 0)); + if (mainBar) { + if (!mainBar?.offsetHeight) + return (updateSizeRef.current = setTimeout(() => onResize(), 0)); - correctHeight -= mainBar.offsetHeight; + correctHeight -= mainBar?.offsetHeight; + } } const isTouchDevice = diff --git a/packages/client/src/components/QuotaForm/index.js b/packages/client/src/components/QuotaForm/index.js index b34856cce8..9d5cc4b85d 100644 --- a/packages/client/src/components/QuotaForm/index.js +++ b/packages/client/src/components/QuotaForm/index.js @@ -206,7 +206,7 @@ const QuotaForm = ({ isDisabled={isDisable} onKeyDown={onKeyDownInput} hasError={isError || hasError} - pattern="^[ 0-9]+$" + pattern="^-?\d+(?:\.\d{0,2})?" scale withBorder /> diff --git a/packages/client/src/components/RoomsSelectorInput/index.js b/packages/client/src/components/RoomsSelectorInput/index.js index bac3c36877..d5772fb893 100644 --- a/packages/client/src/components/RoomsSelectorInput/index.js +++ b/packages/client/src/components/RoomsSelectorInput/index.js @@ -105,7 +105,7 @@ const RoomsSelectorInput = (props) => { submitButtonLabel={submitButtonLabel} onSubmit={handleOnSubmit} withHeader={withHeader} - headerProps={headerProps} + headerProps={{ ...headerProps, onCloseClick: onClose }} setIsDataReady={setIsDataReady} roomType={roomType} /> @@ -137,6 +137,7 @@ const RoomsSelectorInput = (props) => { withoutBodyScroll zIndex={310} onClose={onClose} + withoutHeader > {SelectorBody} diff --git a/packages/client/src/components/dialogs/ChangePortalOwnerDialog/index.js b/packages/client/src/components/dialogs/ChangePortalOwnerDialog/index.js index eb5b62bfcd..a4f8d2d6ea 100644 --- a/packages/client/src/components/dialogs/ChangePortalOwnerDialog/index.js +++ b/packages/client/src/components/dialogs/ChangePortalOwnerDialog/index.js @@ -154,6 +154,7 @@ const ChangePortalOwnerDialog = ({ disableSubmitButton={false} withHeader headerProps={{ + onCloseClick: onCloseAction, onBackClick, withoutBackButton: false, headerLabel: "", diff --git a/packages/client/src/components/dialogs/ChangePricingPlanDialog/index.js b/packages/client/src/components/dialogs/ChangePricingPlanDialog/index.js index bd78a132b7..2914257078 100644 --- a/packages/client/src/components/dialogs/ChangePricingPlanDialog/index.js +++ b/packages/client/src/components/dialogs/ChangePricingPlanDialog/index.js @@ -97,11 +97,7 @@ const ChangePricingPlanDialog = ({ isLarge isLoading={!ready} > - - - {t("ChangePricingPlan")} - - + {t("ChangePricingPlan")} {t("CannotChangePlan")} diff --git a/packages/client/src/components/dialogs/ChangeStorageQuotaDialog/index.js b/packages/client/src/components/dialogs/ChangeStorageQuotaDialog/index.js index 66ad2a3dc2..922d9a696d 100644 --- a/packages/client/src/components/dialogs/ChangeStorageQuotaDialog/index.js +++ b/packages/client/src/components/dialogs/ChangeStorageQuotaDialog/index.js @@ -34,7 +34,6 @@ import { toastr } from "@docspace/shared/components/toast"; import { setTenantQuotaSettings } from "@docspace/shared/api/settings"; import QuotaForm from "../../../components/QuotaForm"; -import StyledModalDialog from "./StyledComponent"; const ChangeStorageQuotaDialog = (props) => { const { @@ -115,7 +114,7 @@ const ChangeStorageQuotaDialog = (props) => { }; return ( - + {isDisableQuota ? t("Common:DisableStorageQuota") @@ -159,7 +158,7 @@ const ChangeStorageQuotaDialog = (props) => { scale /> - + ); }; diff --git a/packages/client/src/components/dialogs/ConflictResolveDialog/index.tsx b/packages/client/src/components/dialogs/ConflictResolveDialog/index.tsx index 2014f089d1..100b58461e 100644 --- a/packages/client/src/components/dialogs/ConflictResolveDialog/index.tsx +++ b/packages/client/src/components/dialogs/ConflictResolveDialog/index.tsx @@ -37,6 +37,7 @@ import { ConflictResolveDialogProps, TActiveItem, } from "./ConflictResolveDialog.types"; +import { Text } from "@docspace/shared/components/text"; const ConflictResolveDialog = (props: ConflictResolveDialogProps) => { const { @@ -217,7 +218,7 @@ const ConflictResolveDialog = (props: ConflictResolveDialogProps) => { ns="Common" i18nKey="FileActionRequired" values={{ fileName: items[0].title }} - components={{ 1: }} + components={{ 1: }} /> ); diff --git a/packages/client/src/components/dialogs/CreateEditRoomDialog/CreateRoomDialog.js b/packages/client/src/components/dialogs/CreateEditRoomDialog/CreateRoomDialog.js index 2fadca655d..50988c27c2 100644 --- a/packages/client/src/components/dialogs/CreateEditRoomDialog/CreateRoomDialog.js +++ b/packages/client/src/components/dialogs/CreateEditRoomDialog/CreateRoomDialog.js @@ -33,7 +33,6 @@ import TagHandler from "./handlers/TagHandler"; import SetRoomParams from "./sub-components/SetRoomParams"; import RoomTypeList from "./sub-components/RoomTypeList"; -import DialogHeader from "./sub-components/DialogHeader"; const StyledModalDialog = styled(ModalDialog)` .header-with-button { @@ -161,6 +160,10 @@ const CreateRoomDialog = ({ onClose(); }; + const dialogHeader = roomParams.type + ? t("ChooseRoomType") + : t("Files:CreateRoom"); + return ( - - - + {dialogHeader} {!roomParams.type ? ( diff --git a/packages/client/src/components/dialogs/CreateEditRoomDialog/EditRoomDialog.js b/packages/client/src/components/dialogs/CreateEditRoomDialog/EditRoomDialog.js index bbc27807a2..9a7c7fefa6 100644 --- a/packages/client/src/components/dialogs/CreateEditRoomDialog/EditRoomDialog.js +++ b/packages/client/src/components/dialogs/CreateEditRoomDialog/EditRoomDialog.js @@ -28,7 +28,6 @@ import React, { useState, useEffect, useRef, useCallback } from "react"; import TagHandler from "./handlers/TagHandler"; import SetRoomParams from "./sub-components/SetRoomParams"; -import DialogHeader from "./sub-components/DialogHeader"; import { ModalDialog } from "@docspace/shared/components/modal-dialog"; import { Button } from "@docspace/shared/components/button"; @@ -132,9 +131,7 @@ const EditRoomDialog = ({ isScrollLocked={isScrollLocked} withFooterBorder > - - - + {t("RoomEditing")} { - return ( - <> - {isEdit ? ( - {t("RoomEditing")} - ) : isChooseRoomType ? ( - {t("ChooseRoomType")} - ) : ( -
- {!disabledIcon && ( - - )} -
{t("Files:CreateRoom")}
-
- )} - - ); -}; - -export default withTranslation(["CreateEditRoomDialog", "Files"])( - withLoader(DialogHeader)(), -); diff --git a/packages/client/src/components/dialogs/CreateEditRoomDialog/sub-components/ThirdPartyStorage/ThirdPartyComboBox.js b/packages/client/src/components/dialogs/CreateEditRoomDialog/sub-components/ThirdPartyStorage/ThirdPartyComboBox.js index 02c6b0fbf5..6fd20a9cce 100644 --- a/packages/client/src/components/dialogs/CreateEditRoomDialog/sub-components/ThirdPartyStorage/ThirdPartyComboBox.js +++ b/packages/client/src/components/dialogs/CreateEditRoomDialog/sub-components/ThirdPartyStorage/ThirdPartyComboBox.js @@ -242,7 +242,9 @@ const ThirdPartyComboBox = ({ const getTextTooltip = () => { return ( - {t("Common:EnableThirdPartyIntegration")} + {t("Common:EnableThirdPartyIntegration", { + productName: t("Common:ProductName"), + })} ); }; diff --git a/packages/client/src/components/dialogs/DataReassignmentDialog/index.js b/packages/client/src/components/dialogs/DataReassignmentDialog/index.js index 610bf529d1..53d02ddf7d 100644 --- a/packages/client/src/components/dialogs/DataReassignmentDialog/index.js +++ b/packages/client/src/components/dialogs/DataReassignmentDialog/index.js @@ -227,6 +227,7 @@ const DataReassignmentDialog = ({ withCancelButton cancelButtonLabel="" headerProps={{ + onCloseClick: onClose, onBackClick: onClosePeopleSelector, withoutBackButton: false, headerLabel: "", diff --git a/packages/client/src/components/dialogs/EditGroupMembersDialog/sub-components/GroupMember/index.tsx b/packages/client/src/components/dialogs/EditGroupMembersDialog/sub-components/GroupMember/index.tsx index 52304481fe..daef7c5006 100644 --- a/packages/client/src/components/dialogs/EditGroupMembersDialog/sub-components/GroupMember/index.tsx +++ b/packages/client/src/components/dialogs/EditGroupMembersDialog/sub-components/GroupMember/index.tsx @@ -43,7 +43,7 @@ import { toastr } from "@docspace/shared/components/toast"; import { HelpButton } from "@docspace/shared/components/help-button"; import { getUserRoleOptions } from "@docspace/shared/utils/room-members/getUserRoleOptions"; import { ShareAccessRights } from "@docspace/shared/enums"; -import { getUserRole } from "@docspace/shared/utils/common"; +import { getUserRole, getUserTypeLabel } from "@docspace/shared/utils/common"; import { TGroupMemberInvitedInRoom } from "@docspace/shared/api/groups/types"; import * as Styled from "./index.styled"; @@ -59,7 +59,7 @@ const GroupMember = ({ member, infoPanelSelection }: GroupMemberProps) => { const [isLoading, setIsLoading] = useState(false); const { t } = useTranslation("Common"); - const userRole = user.isOwner + const userRole = member.owner ? getUserRoleOptions(t).portalAdmin : getUserRoleOptionsByUserAccess( t, @@ -74,6 +74,10 @@ const GroupMember = ({ member, infoPanelSelection }: GroupMemberProps) => { const userRoleOptions = filterUserRoleOptions(fullRoomRoleOptions, user); + const hasIndividualRightsInRoom = + member.owner || + (member.userAccess && member.userAccess !== member.groupAccess); + let type; if (user.isOwner) type = "owner"; else if (user.isAdmin) type = "admin"; @@ -83,6 +87,11 @@ const GroupMember = ({ member, infoPanelSelection }: GroupMemberProps) => { const role = getUserRole(user, userRole?.type); + const typeLabel = getUserTypeLabel( + role as "owner" | "admin" | "user" | "collaborator" | "manager", + t, + ); + let selectedUserRoleCBOption; if (user.isOwner) selectedUserRoleCBOption = { @@ -140,26 +149,25 @@ const GroupMember = ({ member, infoPanelSelection }: GroupMemberProps) => { {decode(user.displayName)}
- {user.email} + {typeLabel} |{" "} + {user.email}
- {member.userAccess && - member.userAccess !== member.groupAccess && - !user.isOwner && ( - - {t("PeopleTranslations:IndividualRights")} - - } - /> - )} + {hasIndividualRightsInRoom && ( + + {t("PeopleTranslations:IndividualRights")} + + } + /> + )}
{userRole && userRoleOptions && ( diff --git a/packages/client/src/components/panels/AddUsersPanel/index.tsx b/packages/client/src/components/panels/AddUsersPanel/index.tsx index 3ac8b71fda..655c5805d0 100644 --- a/packages/client/src/components/panels/AddUsersPanel/index.tsx +++ b/packages/client/src/components/panels/AddUsersPanel/index.tsx @@ -529,6 +529,7 @@ const AddUsersPanel = ({ visible={visible} onClose={onClosePanels} withoutBodyScroll + withoutHeader > - - - {t("ChangeOwner", { fileName })} - -
{ className="header_aside-panel" visible={visible} onClose={onClose} + withoutHeader withoutBodyScroll > { disableSubmitButton={false} withHeader headerProps={{ + onCloseClick: onClose, onBackClick, withoutBackButton: !showBackButton, headerLabel: t("Files:ChangeTheRoomOwner"), diff --git a/packages/client/src/components/panels/EmbeddingPanel/StyledEmbeddingPanel.js b/packages/client/src/components/panels/EmbeddingPanel/StyledEmbeddingPanel.js index 480ea9c623..062339aa6c 100644 --- a/packages/client/src/components/panels/EmbeddingPanel/StyledEmbeddingPanel.js +++ b/packages/client/src/components/panels/EmbeddingPanel/StyledEmbeddingPanel.js @@ -29,10 +29,6 @@ import { ModalDialog } from "@docspace/shared/components/modal-dialog"; import { globalColors } from "@docspace/shared/themes"; const StyledModalDialog = styled(ModalDialog)` - .modal-header { - margin: 0; - } - .modal-body { padding: 0; } diff --git a/packages/client/src/components/panels/HotkeysPanel/StyledHotkeys.js b/packages/client/src/components/panels/HotkeysPanel/StyledHotkeys.js index 10ce82243c..e155e58245 100644 --- a/packages/client/src/components/panels/HotkeysPanel/StyledHotkeys.js +++ b/packages/client/src/components/panels/HotkeysPanel/StyledHotkeys.js @@ -36,16 +36,6 @@ const StyledHotkeysPanel = styled.div` } } - .hotkeys_header { - padding: 0 16px; - border-bottom: ${(props) => props.theme.filesPanels.sharing.borderBottom}; - - .hotkeys_heading { - font-weight: 700; - font-size: 18px; - } - } - .hotkeys_sub-header { font-weight: 700; font-size: 16px; diff --git a/packages/client/src/components/panels/HotkeysPanel/index.js b/packages/client/src/components/panels/HotkeysPanel/index.js index 17c090f81c..3a4c959d4e 100644 --- a/packages/client/src/components/panels/HotkeysPanel/index.js +++ b/packages/client/src/components/panels/HotkeysPanel/index.js @@ -90,10 +90,8 @@ const HotkeyPanel = ({ visible={visible} onClose={onClose} withoutBodyScroll={true} + header={t("Common:Hotkeys")} > -
- {t("Common:Hotkeys")} -
{t("HotkeysNavigation")} diff --git a/packages/client/src/components/panels/InvitePanel/StyledInvitePanel.js b/packages/client/src/components/panels/InvitePanel/StyledInvitePanel.js index 203cff307e..e4c77a802d 100644 --- a/packages/client/src/components/panels/InvitePanel/StyledInvitePanel.js +++ b/packages/client/src/components/panels/InvitePanel/StyledInvitePanel.js @@ -38,7 +38,6 @@ import { ToggleButton } from "@docspace/shared/components/toggle-button"; import { mobile, commonIconsStyles } from "@docspace/shared/utils"; import CheckIcon from "PUBLIC_DIR/images/check.edit.react.svg"; import CrossIcon from "PUBLIC_DIR/images/cross.edit.react.svg"; -import CrossIconMobile from "PUBLIC_DIR/images/cross.react.svg"; import DeleteIcon from "PUBLIC_DIR/images/mobile.actions.remove.react.svg"; import { isMobile, desktop, commonInputStyles } from "@docspace/shared/utils"; import Base from "@docspace/shared/themes/base"; @@ -100,13 +99,9 @@ const ScrollList = styled.div` } `; -const StyledBlock = styled.div` - padding: ${(props) => (props.noPadding ? "0px" : "0 16px")}; +const StyledExternalLink = styled.div` border-bottom: ${(props) => props.theme.filesPanels.sharing.borderBottom}; `; - -StyledBlock.defaultProps = { theme: Base }; - const StyledInviteUserBody = styled.div` display: flex; flex-direction: column; @@ -117,11 +112,6 @@ const StyledInviteUserBody = styled.div` } `; -const StyledHeading = styled(Heading)` - font-weight: 700; - font-size: 18px; -`; - const StyledSubHeader = styled(Heading)` font-weight: 700; font-size: 16px; @@ -395,7 +385,6 @@ StyledCrossIcon.defaultProps = { theme: Base }; const StyledDeleteIcon = styled(DeleteIcon)` cursor: pointer; - margin-inline-start: auto; ${iconStyles} `; @@ -440,24 +429,6 @@ const StyledToggleButton = styled(ToggleButton)` margin-top: -4px; `; -const StyledControlContainer = styled.div` - width: 17px; - height: 17px; - position: absolute; - - cursor: pointer; - - align-items: center; - justify-content: center; - z-index: 450; - - @media ${mobile} { - display: flex; - - top: -27px; - inset-inline: unset 10px; - } -`; const StyledInviteLanguage = styled.div` padding-inline: 16px; margin-top: -12px; @@ -510,19 +481,17 @@ const StyledInviteLanguage = styled.div` gap: 2px; } `; -const StyledCrossIconMobile = styled(CrossIconMobile)` - width: 17px; - height: 17px; - z-index: 455; - path { - fill: ${(props) => props.theme.catalog.control.fill}; - } -`; StyledCrossIcon.defaultProps = { theme: Base }; + +const ErrorWrapper = styled.div` + display: flex; + flex-wrap: nowrap; + gap: 12px; + margin-inline-start: auto; +`; + export { - StyledBlock, - StyledHeading, StyledInvitePanel, StyledRow, StyledSubHeader, @@ -544,7 +513,7 @@ export { StyledToggleButton, StyledDescription, StyledInviteLanguage, - StyledControlContainer, - StyledCrossIconMobile, StyledInviteUserBody, + StyledExternalLink, + ErrorWrapper, }; diff --git a/packages/client/src/components/panels/InvitePanel/index.js b/packages/client/src/components/panels/InvitePanel/index.js index 29047271a8..fca73f9079 100644 --- a/packages/client/src/components/panels/InvitePanel/index.js +++ b/packages/client/src/components/panels/InvitePanel/index.js @@ -38,20 +38,13 @@ import { DeviceType, EmployeeType } from "@docspace/shared/enums"; import { LOADER_TIMEOUT } from "@docspace/shared/constants"; import { Backdrop } from "@docspace/shared/components/backdrop"; -import { Aside } from "@docspace/shared/components/aside"; +import { Aside, AsideHeader } from "@docspace/shared/components/aside"; import { Button } from "@docspace/shared/components/button"; import { toastr } from "@docspace/shared/components/toast"; import { Portal } from "@docspace/shared/components/portal"; import { isDesktop, isMobile, size } from "@docspace/shared/utils"; -import { - StyledBlock, - StyledHeading, - StyledInvitePanel, - StyledButtons, - StyledControlContainer, - StyledCrossIconMobile, -} from "./StyledInvitePanel"; +import { StyledInvitePanel, StyledButtons } from "./StyledInvitePanel"; import ItemsList from "./sub-components/ItemsList"; import InviteInput from "./sub-components/InviteInput"; @@ -60,7 +53,7 @@ import { Scrollbar } from "@docspace/shared/components/scrollbar"; import InfoBar from "./sub-components/InfoBar"; import InvitePanelLoader from "./sub-components/InvitePanelLoader"; -import { Link } from "@docspace/shared/components/link"; + import { Text } from "@docspace/shared/components/text"; import { combineUrl } from "@docspace/shared/utils/combineUrl"; import { ColorTheme, ThemeId } from "@docspace/shared/components/color-theme"; @@ -429,9 +422,6 @@ const InvitePanel = ({ const invitePanelNode = ( <> - - {t("Common:InviteUsers")} - {invitePanelIsLoding ? ( ) : ( @@ -479,9 +469,11 @@ const InvitePanel = ({ > {isMobileView ? (
- - - + + {invitePanelNode}
) : ( @@ -498,6 +490,7 @@ const InvitePanel = ({ onClose={onClose} withoutBodyScroll zIndex={310} + header={t("Common:InviteUsers")} > {invitePanelNode} diff --git a/packages/client/src/components/panels/InvitePanel/sub-components/ExternalLinks.js b/packages/client/src/components/panels/InvitePanel/sub-components/ExternalLinks.js index 885f3a57c4..2ec058b771 100644 --- a/packages/client/src/components/panels/InvitePanel/sub-components/ExternalLinks.js +++ b/packages/client/src/components/panels/InvitePanel/sub-components/ExternalLinks.js @@ -45,12 +45,12 @@ import { Text } from "@docspace/shared/components/text"; import AccessSelector from "../../../AccessSelector"; import PaidQuotaLimitError from "../../../PaidQuotaLimitError"; import { - StyledBlock, StyledSubHeader, StyledInviteInput, StyledInviteInputContainer, StyledToggleButton, StyledDescription, + StyledExternalLink, } from "../StyledInvitePanel"; import { globalColors } from "@docspace/shared/themes"; @@ -213,7 +213,7 @@ const ExternalLinks = ({ roomId === -1 ? getFreeUsersTypeArray() : getFreeUsersRoleArray(); return ( - + {t("InviteViaLink")} {false && ( //TODO: Change to linksVisible after added link information from backend @@ -286,7 +286,7 @@ const ExternalLinks = ({ /> )} - + ); }; diff --git a/packages/client/src/components/panels/InvitePanel/sub-components/Item.js b/packages/client/src/components/panels/InvitePanel/sub-components/Item.js index cdede230f0..d5b392933a 100644 --- a/packages/client/src/components/panels/InvitePanel/sub-components/Item.js +++ b/packages/client/src/components/panels/InvitePanel/sub-components/Item.js @@ -49,6 +49,7 @@ import { StyledHelpButton, StyledDeleteIcon, StyledInviteUserBody, + ErrorWrapper, } from "../StyledInvitePanel"; import { filterGroupRoleOptions, filterUserRoleOptions } from "SRC_DIR/helpers"; import AccessSelector from "../../../AccessSelector"; @@ -228,7 +229,7 @@ const Item = ({ {hasError ? ( - <> + - + ) : ( <> {warning && ( diff --git a/packages/client/src/components/panels/StyledPanels.js b/packages/client/src/components/panels/StyledPanels.js index 9370da04e7..84b20a94b8 100644 --- a/packages/client/src/components/panels/StyledPanels.js +++ b/packages/client/src/components/panels/StyledPanels.js @@ -178,31 +178,6 @@ const StyledContent = styled.div` StyledContent.defaultProps = { theme: Base }; -const StyledHeaderContent = styled.div` - display: flex; - align-items: center; - padding: 0 16px; - margin-inline-end: -16px; - - border-bottom: ${(props) => props.theme.filesPanels.sharing.borderBottom}; - - .files-operations-header, - .sharing_panel-header { - font-weight: 700; - margin: 14px 0; - } - - @media ${desktop} { - .files-operations-header, - .sharing_panel-header { - margin: 12px 0; - font-size: 18px; - } - } -`; - -StyledHeaderContent.defaultProps = { theme: Base }; - const StyledBody = styled.div` &.files-operations-body { padding-block: 0; @@ -526,13 +501,6 @@ const StyledLink = styled(Link)` StyledModalRowContainer.defaultProps = { theme: Base }; -const StyledUploadHeader = styled.div` - width: 100%; - display: flex; - align-items: center; - justify-content: space-between; -`; - const StyledUploadBody = styled.div` width: calc(100% + 16px); height: 100%; @@ -547,13 +515,11 @@ export { StyledEmbeddingPanel, StyledVersionHistoryPanel, StyledContent, - StyledHeaderContent, StyledBody, StyledFooter, StyledLinkRow, StyledModalRowContainer, StyledLink, StyledNewFilesBody, - StyledUploadHeader, StyledUploadBody, }; diff --git a/packages/client/src/components/panels/UploadPanel/index.js b/packages/client/src/components/panels/UploadPanel/index.js index dc0ee3c326..f220d9add2 100644 --- a/packages/client/src/components/panels/UploadPanel/index.js +++ b/packages/client/src/components/panels/UploadPanel/index.js @@ -39,9 +39,10 @@ import { } from "@docspace/shared/components/modal-dialog"; import { DialogAsideSkeleton } from "@docspace/shared/skeletons/dialog"; -import { StyledUploadHeader, StyledUploadBody } from "../StyledPanels"; +import { StyledUploadBody } from "../StyledPanels"; import FileList from "./FileList"; import withLoader from "../../../HOCs/withLoader"; +import { AsideHeader } from "@docspace/shared/components/aside"; const StyledModal = styled(ModalDialog)` .heading { @@ -124,34 +125,24 @@ class UploadPanelComponent extends React.Component { ? t("UploadAndConvert") : t("Files:Convert"); + const url = + uploaded && converted ? ClearReactSvgUrl : ButtonCancelReactSvgUrl; + + const clickEvent = + uploaded && converted + ? this.clearUploadPanel + : uploaded + ? cancelConversion + : this.onCancelUpload; + return ( - - -
{title}
-
- {uploaded && converted ? ( - - ) : ( - - )} -
-
-
+ {title} diff --git a/packages/client/src/components/panels/VersionHistoryPanel/index.js b/packages/client/src/components/panels/VersionHistoryPanel/index.js index 3a6f544781..00a17f3648 100644 --- a/packages/client/src/components/panels/VersionHistoryPanel/index.js +++ b/packages/client/src/components/panels/VersionHistoryPanel/index.js @@ -27,7 +27,6 @@ import React from "react"; import PropTypes from "prop-types"; import { Backdrop } from "@docspace/shared/components/backdrop"; -import { Heading } from "@docspace/shared/components/heading"; import { Aside } from "@docspace/shared/components/aside"; import { FloatingButton } from "@docspace/shared/components/floating-button"; @@ -37,13 +36,11 @@ import { withTranslation } from "react-i18next"; import { StyledVersionHistoryPanel, StyledContent, - StyledHeaderContent, StyledBody, } from "../StyledPanels"; import { SectionBodyContent } from "../../../pages/VersionHistory/Section/"; import { inject, observer } from "mobx-react"; import config from "PACKAGE_FILE"; -import { ArticleHeaderLoader } from "@docspace/shared/skeletons/article"; class PureVersionHistoryPanel extends React.Component { onClose = () => { @@ -85,26 +82,10 @@ class PureVersionHistoryPanel extends React.Component { visible={visible} onClose={this.onClose} withoutBodyScroll + isLoading={!versions && !isLoading} + header={versions ? versions[0].title : ""} > - - {versions && !isLoading ? ( - - {versions[0].title} - - ) : ( - - )} - - diff --git a/packages/client/src/pages/About/AboutContent.js b/packages/client/src/pages/About/AboutContent.js index eb462d49c1..839c521904 100644 --- a/packages/client/src/pages/About/AboutContent.js +++ b/packages/client/src/pages/About/AboutContent.js @@ -100,10 +100,18 @@ const StyledAboutBody = styled.div` `; const AboutContent = (props) => { - const { buildVersionInfo, theme, companyInfoSettingsData, previewData } = - props; - const { t } = useTranslation("About"); - const license = "AGPL-3.0"; + const { + buildVersionInfo, + theme, + companyInfoSettingsData, + previewData, + standalone, + licenseUrl, + isEnterprise, + } = props; + const { t } = useTranslation(["About", "Common"]); + const isCommercial = !standalone || isEnterprise; + const license = isCommercial ? t("Common:Commercial") : "AGPL-3.0"; const linkRepo = "https://github.com/ONLYOFFICE/DocSpace"; const linkDocs = "https://github.com/ONLYOFFICE/DocumentServer"; @@ -198,9 +206,25 @@ const AboutContent = (props) => { {t("SoftwareLicense")}:{" "} - -  {license} - + {isCommercial ? ( + +  {license} + + ) : ( + +  {license} + + )}
@@ -268,11 +292,16 @@ const AboutContent = (props) => { ); }; -export default inject(({ settingsStore }) => { - const { theme, companyInfoSettingsData } = settingsStore; +export default inject(({ settingsStore, currentTariffStatusStore }) => { + const { theme, companyInfoSettingsData, standalone, licenseUrl } = + settingsStore; + const { isEnterprise } = currentTariffStatusStore; return { theme, companyInfoSettingsData, + standalone, + licenseUrl, + isEnterprise, }; })(observer(AboutContent)); diff --git a/packages/client/src/pages/Confirm/sub-components/StyledCreateUser.js b/packages/client/src/pages/Confirm/sub-components/StyledCreateUser.js index f46e8e9a00..2aa0dbb19a 100644 --- a/packages/client/src/pages/Confirm/sub-components/StyledCreateUser.js +++ b/packages/client/src/pages/Confirm/sub-components/StyledCreateUser.js @@ -116,6 +116,10 @@ export const RegisterContainer = styled.div` .email-container{ ${(props) => props.registrationForm && "display:none"}; } + + .terms-conditions{ + margin: 20px 0; + } @media ${tablet} { width: 100%; } diff --git a/packages/client/src/pages/Confirm/sub-components/auth.js b/packages/client/src/pages/Confirm/sub-components/auth.js index a903f04e33..fdc709b946 100644 --- a/packages/client/src/pages/Confirm/sub-components/auth.js +++ b/packages/client/src/pages/Confirm/sub-components/auth.js @@ -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, { useEffect } from "react"; +import React, { useEffect, useState } from "react"; import { useTranslation } from "react-i18next"; import { Loader } from "@docspace/shared/components/loader"; import Section from "@docspace/shared/components/section"; @@ -46,6 +46,8 @@ const Auth = (props) => { const location = useLocation(); const { t } = useTranslation(["Common"]); + const [authorized, setAuthorized] = useState(false); + const referenceUrl = searchParams.get("referenceUrl"); const isFileHandler = referenceUrl && referenceUrl.indexOf("filehandler.ashx") !== -1; @@ -83,6 +85,7 @@ const Auth = (props) => { try { new URL(referenceUrl); if (isFileHandler && isExternalDownloading) { + setAuthorized(true); return; } else { return window.location.replace(referenceUrl); @@ -106,6 +109,7 @@ const Auth = (props) => { return isFileHandler && isExternalDownloading ? ( diff --git a/packages/client/src/pages/Confirm/sub-components/createUser.js b/packages/client/src/pages/Confirm/sub-components/createUser.js index 0896a4d7b0..d51bf4eb06 100644 --- a/packages/client/src/pages/Confirm/sub-components/createUser.js +++ b/packages/client/src/pages/Confirm/sub-components/createUser.js @@ -76,6 +76,7 @@ import withCultureNames from "SRC_DIR/HOCs/withCultureNames"; import { setCookie } from "@docspace/shared/utils/cookie"; import ConfirmRoute from "SRC_DIR/helpers/confirmRoute"; import { AuthenticatedAction } from "SRC_DIR/helpers/enums"; +import { ColorTheme, ThemeId } from "@docspace/shared/components/color-theme"; const DEFAULT_ROOM_TEXT = "{{firstName}} {{lastName}} invites you to join the room {{roomName}} for secure document collaboration."; @@ -115,6 +116,9 @@ const CreateUserForm = (props) => { defaultPage, cultures, i18n, + + licenseUrl, + legalTerms, } = props; const currentCultureName = i18n.language; @@ -475,6 +479,37 @@ const CreateUserForm = (props) => { } : {}; + const termsConditionsComponent = ( +
+ + + ), + 2: ( + + ), + }} + /> + +
+ ); return ( { /> + {termsConditionsComponent} +