diff --git a/Directory.Packages.props b/Directory.Packages.props index 540c7f109d..5dd9846a73 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -113,12 +113,12 @@ - - - - - - + + + + + + diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Account/Localization/Resources/ar.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Account/Localization/Resources/ar.json index 577d69806f..d49f6e52b0 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Account/Localization/Resources/ar.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Account/Localization/Resources/ar.json @@ -11,6 +11,7 @@ "CommercialSupportWebSite": "موقع الدعم الفني للنظام التجاري", "CommunityWebSite": "موقع منتدى ABP", "ManageAccount": "حسابي | ABP.IO", - "ManageYourAccount": "إدارة حسابك" + "ManageYourProfile": "إدارة ملف التعريف الخاص بك", + "ReturnToApplication": "العودة إلى التطبيق" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Account/Localization/Resources/cs.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Account/Localization/Resources/cs.json index 6ccaea4234..c2b977ab52 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Account/Localization/Resources/cs.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Account/Localization/Resources/cs.json @@ -11,6 +11,7 @@ "CommercialSupportWebSite": "Webová stránka komerční podpory", "CommunityWebSite": "Web komunity ABP", "ManageAccount": "Můj účet | ABP.IO", - "ManageYourAccount": "Správa vášho účtu" + "ManageYourProfile": "Spravujte svůj profil", + "ReturnToApplication": "Návrat k aplikaci" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Account/Localization/Resources/de.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Account/Localization/Resources/de.json index b4287177df..8cc732e10e 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Account/Localization/Resources/de.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Account/Localization/Resources/de.json @@ -11,6 +11,7 @@ "CommercialSupportWebSite": "Commercial Support-Website", "CommunityWebSite": "ABP Community-Website", "ManageAccount": "Mein Konto | ABP.IO", - "ManageYourAccount": "Verwalten Sie Ihr Konto" + "ManageYourProfile": "Verwalten Sie Ihr Profil", + "ReturnToApplication": "Zurück zur Bewerbung" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Account/Localization/Resources/en-GB.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Account/Localization/Resources/en-GB.json index 9b8dd444bc..cee74a670b 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Account/Localization/Resources/en-GB.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Account/Localization/Resources/en-GB.json @@ -8,8 +8,8 @@ "FrameworkDocumentation": "Framework documentation", "OfficialBlog": "Official blog", "CommercialHomePage": "Commercial home page", - "CommercialSupportWebSite": "Commercial support web site", - "CommunityWebSite": "ABP community web site", + "CommercialSupportWebSite": "Commercial support website", + "CommunityWebSite": "ABP community website", "ManageAccount": "My Account | ABP.IO", "ManageYourProfile": "Manage your profile" } diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Account/Localization/Resources/en.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Account/Localization/Resources/en.json index f34bbd49c2..8470709c99 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Account/Localization/Resources/en.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Account/Localization/Resources/en.json @@ -8,8 +8,8 @@ "FrameworkDocumentation": "Framework documentation", "OfficialBlog": "Official blog", "CommercialHomePage": "Commercial home page", - "CommercialSupportWebSite": "Commercial support web site", - "CommunityWebSite": "ABP community web site", + "CommercialSupportWebSite": "Commercial support website", + "CommunityWebSite": "ABP community website", "ManageAccount": "My Account | ABP.IO", "ManageYourProfile": "Manage your profile", "ReturnToApplication": "Return to application" diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Account/Localization/Resources/es.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Account/Localization/Resources/es.json index 131af96b99..141eb36b0c 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Account/Localization/Resources/es.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Account/Localization/Resources/es.json @@ -11,6 +11,7 @@ "CommercialSupportWebSite": "Sitio web de soporte comercial", "CommunityWebSite": "Sitio web comunidad ABP", "ManageAccount": "Mi cuenta | ABP.IO", - "ManageYourAccount": "Administra tu cuenta" + "ManageYourProfile": "Gestiona tu perfil", + "ReturnToApplication": "Volver a la aplicación" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Account/Localization/Resources/fr.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Account/Localization/Resources/fr.json index 189dea7b8e..57b0be35b4 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Account/Localization/Resources/fr.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Account/Localization/Resources/fr.json @@ -11,6 +11,7 @@ "CommercialSupportWebSite": "Site Web de support commercial", "CommunityWebSite": "Site Web de la communauté ABP", "ManageAccount": "Mon compte | ABP.IO", - "ManageYourAccount": "Gérer votre compte" + "ManageYourProfile": "Gérer votre profil", + "ReturnToApplication": "Retour à la candidature" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Account/Localization/Resources/hi.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Account/Localization/Resources/hi.json index 461acf6af3..2b48e14954 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Account/Localization/Resources/hi.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Account/Localization/Resources/hi.json @@ -11,6 +11,7 @@ "CommercialSupportWebSite": "वाणिज्यिक समर्थन वेब साइट", "CommunityWebSite": "एबीपी सामुदायिक वेब साइट", "ManageAccount": "मेरा खाता | एबीपी.आईओ", - "ManageYourAccount": "अपने खाते को प्रबंधित करें" + "ManageYourProfile": "अपनी प्रोफ़ाइल प्रबंधित करें", + "ReturnToApplication": "आवेदन पर लौटें" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Account/Localization/Resources/hr.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Account/Localization/Resources/hr.json new file mode 100644 index 0000000000..4548a7c751 --- /dev/null +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Account/Localization/Resources/hr.json @@ -0,0 +1,17 @@ +{ + "culture": "hr", + "texts": { + "Account": "ABP račun - Prijava i registracija | ABP.IO", + "Welcome": "Dobrodošli", + "UseOneOfTheFollowingLinksToContinue": "Koristite jednu od sljedećih veza za nastavak", + "FrameworkHomePage": "Početna stranica okvira", + "FrameworkDocumentation": "Okvirna dokumentacija", + "OfficialBlog": "Službeni blog", + "CommercialHomePage": "Komercijalna početna stranica", + "CommercialSupportWebSite": "Web stranica za komercijalnu podršku", + "CommunityWebSite": "Web stranica ABP zajednice", + "ManageAccount": "Moj račun | ABP.IO", + "ManageYourProfile": "Upravljajte svojim profilom", + "ReturnToApplication": "Povratak na aplikaciju" + } +} \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Account/Localization/Resources/hu.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Account/Localization/Resources/hu.json index 2cb142bb68..9e9af942ac 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Account/Localization/Resources/hu.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Account/Localization/Resources/hu.json @@ -11,6 +11,7 @@ "CommercialSupportWebSite": "Kereskedelmi támogatási webhely", "CommunityWebSite": "ABP közösségi webhely", "ManageAccount": "Saját fiók | ABP.IO", - "ManageYourProfile": "Profilod kezelése" + "ManageYourProfile": "Profilod kezelése", + "ReturnToApplication": "Vissza az alkalmazáshoz" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Account/Localization/Resources/is.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Account/Localization/Resources/is.json index 24b9ebe9f3..59a60bb3c4 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Account/Localization/Resources/is.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Account/Localization/Resources/is.json @@ -11,6 +11,7 @@ "CommercialSupportWebSite": "Þjónustu síða Commercial útgáfunnarinnar", "CommunityWebSite": "Samfélagssíða ABP", "ManageAccount": "Minn aðgangur | ABP.IO", - "ManageYourAccount": "Stjórnaðu aðganginn þinn" + "ManageYourProfile": "Stjórnaðu prófílnum þínum", + "ReturnToApplication": "Fara aftur í umsókn" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Account/Localization/Resources/it.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Account/Localization/Resources/it.json index bad754febb..9b5ff362b8 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Account/Localization/Resources/it.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Account/Localization/Resources/it.json @@ -11,6 +11,7 @@ "CommercialSupportWebSite": "Sito web supporto di Commercial", "CommunityWebSite": "Sito web della comunità ABP", "ManageAccount": "Il mio account | ABP.IO", - "ManageYourAccount": "Gestisci il tuo account" + "ManageYourProfile": "Gestisci il tuo profilo", + "ReturnToApplication": "Ritorna all'applicazione" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Account/Localization/Resources/nl.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Account/Localization/Resources/nl.json index 71b4c45b56..578f529767 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Account/Localization/Resources/nl.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Account/Localization/Resources/nl.json @@ -11,6 +11,7 @@ "CommercialSupportWebSite": "Commerciële ondersteuningswebsite", "CommunityWebSite": "ABP-communitywebsite", "ManageAccount": "Mijn account | ABP.IO", - "ManageYourAccount": "Beheer uw account" + "ManageYourProfile": "Beheer uw profiel", + "ReturnToApplication": "Terug naar applicatie" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Account/Localization/Resources/pl-PL.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Account/Localization/Resources/pl-PL.json index 4cbdbb60af..2ddcc69368 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Account/Localization/Resources/pl-PL.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Account/Localization/Resources/pl-PL.json @@ -11,6 +11,7 @@ "CommercialSupportWebSite": "Witryna wsparcia komercyjnego", "CommunityWebSite": "Strona społeczności ABP", "ManageAccount": "Moje konto | ABP.IO", - "ManageYourAccount": "Zarządzaj swoim kontem" + "ManageYourProfile": "Zarządzaj swoim profilem", + "ReturnToApplication": "Wróć do aplikacji" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Account/Localization/Resources/pt-BR.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Account/Localization/Resources/pt-BR.json index 32627455fe..69402b2ac4 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Account/Localization/Resources/pt-BR.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Account/Localization/Resources/pt-BR.json @@ -11,6 +11,7 @@ "CommercialSupportWebSite": "Site de suporte comercial", "CommunityWebSite": "Site da comunidade ABP", "ManageAccount": "Minha conta | ABP.IO", - "ManageYourAccount": "Gerenciar sua conta" + "ManageYourProfile": "Gerencie seu perfil", + "ReturnToApplication": "Voltar ao aplicativo" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Account/Localization/Resources/ro-RO.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Account/Localization/Resources/ro-RO.json index c5ba3acd6c..558779e127 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Account/Localization/Resources/ro-RO.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Account/Localization/Resources/ro-RO.json @@ -11,6 +11,7 @@ "CommercialSupportWebSite": "Site-ul web al suportului comercial", "CommunityWebSite": "Site-ul web al comunităţii ABP", "ManageAccount": "Contul meu | ABP.IO", - "ManageYourAccount": "Gestionaţi contul dvs." + "ManageYourProfile": "Gestionează-ți profilul", + "ReturnToApplication": "Reveniți la aplicație" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Account/Localization/Resources/ru.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Account/Localization/Resources/ru.json index bb33355d2e..21d38dbf02 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Account/Localization/Resources/ru.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Account/Localization/Resources/ru.json @@ -11,6 +11,7 @@ "CommercialSupportWebSite": "Сайт коммерческой поддержки", "CommunityWebSite": "Веб-сайт сообщества ABP", "ManageAccount": "Моя учетная запись | ABP.IO", - "ManageYourAccount": "Управление вашей учетной записью" + "ManageYourProfile": "Управляйте своим профилем", + "ReturnToApplication": "Вернуться к приложению" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Account/Localization/Resources/sk.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Account/Localization/Resources/sk.json index c5791c5742..e85a93b248 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Account/Localization/Resources/sk.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Account/Localization/Resources/sk.json @@ -11,6 +11,7 @@ "CommercialSupportWebSite": "Webová stránka komerčnej podpory", "CommunityWebSite": "Webová stránka ABP komunity", "ManageAccount": "Môj účet | ABP.IO", - "ManageYourAccount": "Môj účet" + "ManageYourProfile": "Spravujte svoj profil", + "ReturnToApplication": "Návrat k aplikácii" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Account/Localization/Resources/sl.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Account/Localization/Resources/sl.json index 3eb2e10ae9..9cd38070d6 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Account/Localization/Resources/sl.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Account/Localization/Resources/sl.json @@ -11,6 +11,7 @@ "CommercialSupportWebSite": "Spletna stran za komercialno podporo", "CommunityWebSite": "Spletno mesto skupnosti ABP", "ManageAccount": "Moj račun | ABP.IO", - "ManageYourAccount": "Upravljanje svojega računa" + "ManageYourProfile": "Upravljajte svoj profil", + "ReturnToApplication": "Nazaj na aplikacijo" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Account/Localization/Resources/vi.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Account/Localization/Resources/vi.json index a8bcbee2eb..ccf5fa40bc 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Account/Localization/Resources/vi.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Account/Localization/Resources/vi.json @@ -11,6 +11,7 @@ "CommercialSupportWebSite": "Trang web hỗ trợ thương mại", "CommunityWebSite": "Trang web cộng đồng ABP", "ManageAccount": "Tài khoản của tôi | ABP.IO", - "ManageYourAccount": "Quản lý tài khoản của bạn" + "ManageYourProfile": "Quản lý hồ sơ của bạn", + "ReturnToApplication": "Quay lại ứng dụng" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Account/Localization/Resources/zh-Hant.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Account/Localization/Resources/zh-Hant.json index 3056265dca..f5b8a7e147 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Account/Localization/Resources/zh-Hant.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Account/Localization/Resources/zh-Hant.json @@ -11,6 +11,7 @@ "CommercialSupportWebSite": "商業版支援網站", "CommunityWebSite": "ABP社區網站", "ManageAccount": "我的帳戶 | ABP.IO", - "ManageYourAccount": "管理您的帳戶" + "ManageYourProfile": "管理您的個人資料", + "ReturnToApplication": "返回申請" } -} +} \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/ar.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/ar.json index 9b95078f66..a54b1ee806 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/ar.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/ar.json @@ -220,6 +220,7 @@ "SuccessfullyReIndexAllPosts": "تم إعادة فهرسة جميع المشاركات بنجاح.", "Permission:FullSearch": "البحث عن نص كامل", "Menu:CliAnalytics": "تحليلات Cli", + "Menu:Reports": "التقارير", "TemplateName": "اسم القالب", "TemplateVersion": "إصدار النموذج", "DatabaseProvider": "مزود قاعدة البيانات", @@ -231,8 +232,10 @@ "UiFramework": "إطار عمل واجهة المستخدم", "Options": "خيارات", "CliAnalytics": "تحليلات Cli", + "Reports": "التقارير", "Permission:CliAnalyticses": "تحليلات Cli", "Permission:CliAnalytics": "تحليلات Cli", + "Permission:Reports": "التقارير", "Search": "بحث", "ClearFilter": "مرشح واضح", "LicensePrivateKey": "مفتاح خاص للترخيص", @@ -316,14 +319,12 @@ "TrialLicenseStatusFilter": "حالة", "TrialLicenseStartDateFilter": "تاريخ البدء", "TrialLicenseEndDateFilter": "تاريخ الانتهاء", - "FirsName": "الاسم الأول", + "FirstName": "الاسم الأول", "LastName": "الكنية", "StartDate": "تاريخ البدء", "EndDate": "تاريخ الانتهاء", "PurchasedDate": "تاريخ الشراء", "OrganizationDetail": "تفاصيل المنظمة", - "SendActivationMail": "إرسال بريد التفعيل", - "ActivationMailSentSuccessfully": "تم إرسال بريد التفعيل بنجاح!", "TrialLicenseStatus": "حالة الترخيص التجريبي", "TrialLicenseDetail": "تفاصيل الترخيص التجريبي", "AcceptsMarketingCommunications": "الاتصالات التسويقية", @@ -337,22 +338,228 @@ "Expired": "منتهي الصلاحية", "TrialLicenseDeletionWarningMessage": "هل أنت متأكد أنك تريد حذف الترخيص التجريبي؟ سيتم حذف الترخيص التجريبي والتنظيم وحسابات الدعم!", "LicenseCategoryFilter": "فئة الترخيص", - "Volo.AbpIo.Commercial:030000": "لقد استخدمت بالفعل الفترة التجريبية الخاصة بك.", - "Volo.AbpIo.Commercial:030001": "اسم هذه المنظمة موجود بالفعل.", - "Volo.AbpIo.Commercial:030002": "بمجرد التنشيط ، لا يمكن تعيين الترخيص التجريبي على المطلوب!", - "Volo.AbpIo.Commercial:030003": "لا يوجد مثل هذا الوضع!", - "Volo.AbpIo.Commercial:030004": "لا يمكن تغيير الحالة بسبب خطأ غير متوقع!", - "Volo.AbpIo.Commercial:030005": "يمكن تحديث تاريخ البدء والانتهاء عندما يكون الترخيص التجريبي في حالة -منشطة-!", - "Volo.AbpIo.Commercial:030006": "يجب أن يكون تاريخ الانتهاء دائمًا أكبر من تاريخ البدء!", - "Volo.AbpIo.Commercial:030007": "تم بالفعل تنشيط هذا الترخيص التجريبي مرة واحدة!", - "Volo.AbpIo.Commercial:030008": "يمكن تحديد تاريخ الشراء فقط عند شراء الحالة!", - "Volo.AbpIo.Commercial:030009": "لم يتم العثور على المستخدم!", - "Volo.AbpIo.Commercial:030010": "لشراء الترخيص التجريبي ، تحتاج أولاً إلى تنشيط الترخيص التجريبي الخاص بك!", - "Volo.AbpIo.Commercial:030011": "لا يمكنك حذف ترخيص تجريبي عند شرائه!", + "Permission:SendWelcomeEmail": "أرسل بريدًا إلكترونيًا ترحيبيًا", + "SendWelcomeEmail": "أرسل بريدًا إلكترونيًا ترحيبيًا", + "SendWelcomeEmailWarningMessage": "هل أنت متأكد أنك تريد إرسال بريد إلكتروني ترحيبي إلى أعضاء المؤسسة؟", + "SendWelcomeEmailSuccessMessage": "تم إرسال البريد الإلكتروني الترحيبي بنجاح!", + "Activate": "تفعيل", + "ActivateTrialLicenseWarningMessage": "عند تنشيط الترخيص التجريبي، سيتم إرسال بريد إلكتروني ترحيبي إلى المستخدم. هل تريد تفعيله؟", + "ActivateTrialLicenseSuccessMessage": "تم التفعيل بنجاح وتم إرسال البريد الإلكتروني الترحيبي لأعضاء المنظمة.", + "PaymentRequestId": "معرف طلب الدفع", + "AdditionalDeveloperCount": "عدد المطورين الإضافيين", + "LicensePrice": "سعر الترخيص", + "PurchaseDate": "تاريخ الشراء", + "IsAbpBookDownloaded": "هل تم تنزيل كتاب إتقان ABP؟", + "IsMasteringAbpBookDownloadEnabled": "تم تمكين تنزيل كتاب ABP", + "Permission:Accounting:CustomPaymentLinkGenerator": "رابط الدفع المخصص", + "CustomPaymentLink": "رابط الدفع المخصص", + "Menu:CustomPaymentLink": "رابط الدفع المخصص", + "Amount": "كمية", + "GenerateCustomPaymentLink": "إنشاء رابط الدفع المخصص", + "GeneratedPaymentLink": "رابط الدفع الذي تم إنشاؤه", + "CopyText": "نسخ النص", + "Permission:CommunityEvents": "الأحداث", + "Menu:Events": "الأحداث", + "Events": "الأحداث", + "EventType": "نوع الحدث", + "Number": "رقم", + "RegistrationURL": "عنوان URL للتسجيل", + "URL": "عنوان URL", + "EventDeletionConfirmationMessage": "هل أنت متأكد من حذف هذا الحدث؟", + "Enum:EventType:0": "محادثات المجتمع", + "CreateAnEvent": "إنشاء حدث", + "Permission:CommunitySpeakers": "مكبرات الصوت", + "CreateASpeaker": "إنشاء مكبر صوت", + "Speakers": "مكبرات الصوت", + "Image": "صورة", + "GithubURL": "عنوان URL على جيثب", + "SpeakerDeletionConfirmationMessage": "هل أنت متأكد أنك تريد حذف هذا المتحدث؟", + "Menu:Speakers": "مكبرات الصوت", + "ChooseSpeakerImage": "اختر صورة مكبر الصوت...", + "SpeakerImage": "صورة مكبر الصوت", + "AddSpeaker": "إضافة مكبر الصوت", + "ShowPurchaseItemsOfOrganizations": "شراء سلع", + "Enum:OrganizationPurchaseState:0": "لم يتم تسليمها", + "Enum:OrganizationPurchaseState:1": "تم التوصيل", + "PurchaseItems": "شراء سلع", + "SuccessfullyUpdated": "تم التحديث بنجاح", + "SuccessfullyAdded": "أضيف بنجاح", + "PurchaseState": "حالة الشراء", + "ShowBetweenDayCount": "عرض بين الأيام", + "PurchaseOrder": "أمر شراء", + "ShowCreateInvoiceOfOrganization": "إنشاء فاتورة", + "ShowCreateQuotationOfOrganization": "إنشاء عرض أسعار", + "BookDiscounts": "خصومات الكتب", + "Permission:BookDiscount": "خصم الكتاب", + "Menu:BookDiscounts": "خصومات الكتب", + "BookType": "نوع الكتاب", + "PurchasePlatform": "منصة الشراء", + "StartTime": "وقت البدء", + "EndTime": "وقت النهاية", + "CreateABookDiscount": "إنشاء خصم الكتاب", + "BookDiscountDeletionConfirmationMessage": "هل أنت متأكد أنك تريد حذف هذا الخصم على الكتاب؟", + "CustomPaymentFlexSwitchDescription": "مع الترخيص", + "AllowFeatureUpgradeOnLicenseExpire": "السماح بترقية الميزات عند انتهاء صلاحية الترخيص", + "Deleted{0}": "[محذوف {0}]", + "Tags": "العلامات", + "SetTagsInfo": "يجب أن تكون العلامات مفصولة بفواصل. على سبيل المثال: CSharp، إطار الكيان", + "RejectTrialLicenseWarningMessage": "هل أنت متأكد أنك تريد رفض طلب الترخيص التجريبي هذا؟", + "ExportToExcel": "تصدير إلى Excel", + "OverallTotalPrice": "السعر الإجمالي الإجمالي", + "OverallDiscountPrice": "سعر الخصم الإجمالي", + "OverallDiscountText": "نص الخصم الشامل", + "SelectReport": "- اختر تقرير -", + "NoDataAvailable": "لا تتوافر بيانات", + "StatisticsOfCachedContents": "إحصائيات محتويات حزمة NuGet المخزنة مؤقتًا لـ nuget.abp.io", + "Compact": "المدمج", + "EditSettings": "تحرير الإعدادات", + "CurrentEstimatedSize": "الحجم المقدر الحالي", + "CurrentEntryCount": "عدد الإدخال الحالي", + "TotalHits": "مجموع الضربات", + "TotalMisses": "مجموع يخطئ", + "NoResponseFrom": "لا يوجد رد من", + "ContentCacheSlidingExpirationByDay": "انتهاء صلاحية تمرير ذاكرة التخزين المؤقت للمحتوى حسب اليوم", + "MaxDaysForCaching": "الحد الأقصى لأيام التخزين المؤقت", + "Enabled": "ممكّن", + "Menu:NugetPackagesContentCache": "نوجيت ذاكرة التخزين المؤقت", + "NugetPackagesContentCache": "ذاكرة التخزين المؤقت للمحتوى NuGet", + "SlidingExpritionByDayInfo": "الحصول على أو تحديد المدة التي يمكن أن يظل فيها إدخال ذاكرة التخزين المؤقت غير نشط (على سبيل المثال، عدم الوصول إليه) قبل إزالته. لن يؤدي هذا إلى تمديد فترة الإدخال إلى ما بعد انتهاء الصلاحية المطلق.", + "MaxDaysForCachingInfo": "الحصول على أو تعيين وقت انتهاء الصلاحية المطلق، بالنسبة إلى الآن.", + "CurrentEstimatedSizeInfo": "يشير إلى المبلغ المقدر لجميع أحجام محتوى حزم NuGet الموجودة حاليًا في ذاكرة التخزين المؤقت للذاكرة", + "CurrentEntryCountInfo": "يشير إلى عدد المثيلات الموجودة حاليًا في ذاكرة التخزين المؤقت للذاكرة.", + "TotalHitsInfo": "يشير إلى إجمالي عدد مرات فقدان ذاكرة التخزين المؤقت. تحدث نتيجة ذاكرة التخزين المؤقت عندما يتم طلب ملف من ذاكرة التخزين المؤقت وتكون ذاكرة التخزين المؤقت قادرة على تلبية هذا الطلب.", + "TotalMissesInfo": "يشير إلى العدد الإجمالي لزيارات ذاكرة التخزين المؤقت. يحدث فقدان ذاكرة التخزين المؤقت عندما لا تحتوي ذاكرة التخزين المؤقت على المحتوى المطلوب.", + "Permission:VersionHistory": "تاريخ النسخة", + "Caches": "مخابئ", + "VersionHistories": "تاريخ النسخة", + "Version": "إصدار", + "PublishDate": "تاريخ النشر", + "IsStableVersion": "نسخة مستقرة", + "IsActive": "نشيط", + "NewVersion": "نسخة جديدة", + "VersionHistoryDeletionConfirmationMessage": "هل أنت متأكد أنك تريد حذف هذا الإصدار؟", + "CreateAbpConsultantLogoInfo": "الحد الأقصى لحجم الملف: 1 ميجابايت
أنواع الملفات المدعومة: jpg، jpeg، png، SVG، WebP", + "UrlCode": "رمز URL", + "Clear": "واضح", + "Permission:AbpConsultant": "مستشار ايه بي بي", + "Menu:AbpConsultants": "استشاريون ايه بي بي", + "CreateAbpConsultant": "إنشاء مستشار ABP", + "UrlCodeIsNotAvailable": "يتم استخدام رمز URL من قبل مستشار آخر لبرنامج ABP.", + "AbpConsultants": "استشاريون ايه بي بي", + "AbpConsultant": "مستشار ايه بي بي", + "AbpConsultantEdit": "تحرير مستشار ABP", + "AbpConsultantCreate": "إنشاء مستشار ABP", + "WhoWeAreItem": "من نحن البند", + "FieldIsRequired": "{0} مطلوب.", + "FieldIsNotValid": "{0} غير صالح.", + "InterestedLicenseType": "نوع الترخيص المهتم", "MoveWaitList": "الانتقال إلى قائمة الانتظار", "CommunityLinkTitle": "افتح على موقع المجتمع", "CommunityLink": "رابط المجتمع", "ReloadFromSource": "إعادة التحميل من المصدر", - "ReloadFromSourceConfirmationMessage": "سيتم تحديث هذه المشاركة من \"{0}\". هل تريد الاستمرار؟" + "ReloadFromSourceConfirmationMessage": "سيتم تحديث هذه المشاركة من \"{0}\". هل تريد الاستمرار؟", + "UnitPrice": "سعر الوحدة", + "OverallDiscountAmount": "إجمالي مبلغ الخصم", + "DiscountAmount": "مقدار الخصم", + "FullChangeHistory": "تاريخ التغيير الكامل", + "Permission:RefreshReleaseLogs": "تحديث سجلات الإصدار", + "ReleaseLogs": "سجلات الإصدار", + "AuthorUserName": "اسم مستخدم المؤلف", + "Type": "يكتب", + "TotalDiscount": "إجمالي الخصم", + "SubTotal": "المجموع الفرعي", + "TotalDue": "الاجمالي المستحق", + "QuotationNo": "سؤال رقم", + "ValidTill": "صالح حتى", + "QuotationNote": "مذكرة الاقتباس", + "QuotationTemplate.Address:": "عنوان:", + "QuotationTemplate.VATNo:": "ضريبة القيمة المضافة لا:", + "QuotationTemplate.Phone:": "هاتف:", + "QuotationTemplate.E-mail:": "بريد إلكتروني:", + "QuotationTemplate.Quotation": "اقتباس", + "QuotationTemplate.To": "ل", + "QuotationTemplate.Details": "تفاصيل", + "QuotationTemplate.QuotationNo:": "اقتباس #:", + "QuotationTemplate.IssueDate:": "تاريخ الإصدار:", + "QuotationTemplate.ValidTill:": "صالح حتى:", + "QuotationTemplate.ValidDays": "{0} أيام", + "QuotationTemplate.Description": "وصف", + "QuotationTemplate.UnitPrice": "سعر الوحدة", + "QuotationTemplate.Qty": "الكمية", + "QuotationTemplate.Discount": "تخفيض", + "QuotationTemplate.Total": "المجموع", + "QuotationTemplate.Notes": "ملحوظات", + "QuotationTemplate.SubTotal:": "المجموع الفرعي :", + "QuotationTemplate.Tax/VAT:": "الضريبة / ضريبة القيمة المضافة (%{0}):", + "QuotationTemplate.TotalDiscount:": "إجمالي الخصم :", + "QuotationTemplate.TOTALDUE:": "الاجمالي المستحق :", + "QuotationTemplate.BankAccount": "يمكن العثور على معلومات حسابنا المصرفي على {0}", + "Permission:Raffles": "السحب", + "Permission:Draw": "يرسم", + "Menu:Raffles": "رافلز", + "RaffleIsNotDrawable": "السحب غير قابل للرسم", + "WinnerCountMustBeGreaterThanZero": "يجب أن يكون عدد الفائزين أكبر من الصفر", + "FullDescription": "وصف كامل", + "VisibilityStartDate": "تاريخ بدء الرؤية", + "VisibilityEndDate": "تاريخ انتهاء الرؤية", + "RaffleDate": "تاريخ السحب", + "SubscriptionCode": "رمز الاشتراك", + "GroupCode": "رمز المجموعة", + "MaxWinnerCount": "الحد الأقصى لعدد الفائزين", + "ReDraw": "إعادة الرسم", + "EditRaffle": "تحرير السحب", + "Raffles": "رافلز", + "CreateARaffle": "إنشاء السحب", + "Draw": "يرسم", + "Enum:RaffleStatus:0": "نشيط", + "Enum:RaffleStatus:1": "التالي", + "Enum:RaffleStatus:2": "ماضي", + "DrawDone": "تم الرسم", + "HomePageShowType": "نوع عرض الصفحة الرئيسية", + "None": "لا أحد", + "Card": "بطاقة", + "Horizontal": "أفقي", + "Winners": "الفائزون", + "StartDateMustBeLessThanEndDate": "يجب أن يكون تاريخ البدء أقل من تاريخ الانتهاء", + "VisibilityStartDateMustBeLessThanVisibilityEndDate": "يجب أن يكون تاريخ بدء الرؤية أقل من تاريخ انتهاء الرؤية", + "StartDateMustBeGreaterThanVisibilityStartDate": "يجب أن يكون تاريخ البدء أكبر من تاريخ بدء الرؤية", + "EndDateMustBeLessThanVisibilityEndDate": "يجب أن يكون تاريخ الانتهاء أقل من تاريخ انتهاء الرؤية", + "DrawnDone": "تم الرسم", + "AddColor": "أضف اللون", + "Colors": "الألوان", + "RemoveColor": "إزالة اللون", + "MaxColorCountWarning": "يمكنك إضافة ما يصل إلى {0} لونًا", + "MinColorCountWarning": "يجب عليك إضافة {0} لونًا على الأقل", + "RaffleDeletionConfirmationMessage": "هل أنت متأكد أنك تريد حذف هذا السحب؟", + "CreateRaffle": "إنشاء السحب", + "RemoveImage": "إزالة الصورة", + "SuccessfullySaved": "تم الحفظ بنجاح", + "Menu:CommunityTalks": "محادثات المجتمع", + "Menu:Conferences": "المؤتمرات", + "Menu:OtherLiveEvents": "الأحداث المباشرة الأخرى", + "Menu:SponsoredConferences": "المؤتمرات المدعومة", + "Logo": "شعار", + "Slug": "سبيكة", + "CompanyUrl": "عنوان الشركة", + "TalkTitle": "عنوان الحديث", + "AbstractTopic": "موضوع مجردة", + "Bio": "السيرة الذاتية", + "LinkedIn": "ينكدين", + "Github": "جيثب", + "Twitch": "تويتش", + "Youtube": "موقع YouTube", + "Twitter": "تويتر", + "PersonalWebsite": "موقع شخصي", + "VideoId": "معرف الفيديو", + "Order": "طلب", + "Image1x1": "الصورة 1x1", + "Image16x9": "الصورة 16x9", + "Banner": "راية", + "Speaker": "مكبر الصوت", + "SessionDate": "تاريخ الجلسة", + "AddSession": "إضافة جلسة", + "AddSponsor": "أضف الراعي", + "SponsorLogo": "شعار الراعي", + "RegistrationUrl": "رابط التسجيل" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/cs.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/cs.json index b594121f0f..9f2116cbfa 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/cs.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/cs.json @@ -220,6 +220,7 @@ "SuccessfullyReIndexAllPosts": "Všechny příspěvky byly úspěšně reindexovány.", "Permission:FullSearch": "Fulltextové vyhledávání", "Menu:CliAnalytics": "Cli Analytics", + "Menu:Reports": "Zprávy", "TemplateName": "Název šablony", "TemplateVersion": "Verze šablony", "DatabaseProvider": "Poskytovatel databáze", @@ -231,8 +232,10 @@ "UiFramework": "Rámec uživatelského rozhraní", "Options": "Možnosti", "CliAnalytics": "Cli Analytics", + "Reports": "Zprávy", "Permission:CliAnalyticses": "Cli Analytics", "Permission:CliAnalytics": "Cli Analytics", + "Permission:Reports": "Zprávy", "Search": "Vyhledávání", "ClearFilter": "Vymazat filtr", "LicensePrivateKey": "Soukromý klíč licence", @@ -316,14 +319,12 @@ "TrialLicenseStatusFilter": "Postavení", "TrialLicenseStartDateFilter": "Datum začátku", "TrialLicenseEndDateFilter": "Datum ukončení", - "FirsName": "Jméno", + "FirstName": "Jméno", "LastName": "Příjmení", "StartDate": "Datum začátku", "EndDate": "Datum ukončení", "PurchasedDate": "Datum zakoupení", "OrganizationDetail": "Detail organizace", - "SendActivationMail": "Odeslat aktivační e-mail", - "ActivationMailSentSuccessfully": "Aktivační e-mail byl úspěšně odeslán!", "TrialLicenseStatus": "Stav zkušební licence", "TrialLicenseDetail": "Podrobnosti zkušební licence", "AcceptsMarketingCommunications": "Marketingová komunikace", @@ -337,22 +338,228 @@ "Expired": "Platnost vypršela", "TrialLicenseDeletionWarningMessage": "Opravdu chcete smazat zkušební licenci? Zkušební licence, organizace a účty podpory budou smazány!", "LicenseCategoryFilter": "Kategorie licence", - "Volo.AbpIo.Commercial:030000": "Zkušební období jste již využili.", - "Volo.AbpIo.Commercial:030001": "Tento název organizace již existuje.", - "Volo.AbpIo.Commercial:030002": "Po aktivaci nelze zkušební licenci nastavit na vyžádání!", - "Volo.AbpIo.Commercial:030003": "Takový stav neexistuje!", - "Volo.AbpIo.Commercial:030004": "Stav nelze změnit kvůli neočekávané chybě!", - "Volo.AbpIo.Commercial:030005": "Datum zahájení a ukončení lze aktualizovat, když je zkušební licence ve stavu -aktivováno-!", - "Volo.AbpIo.Commercial:030006": "Datum ukončení musí být vždy větší než datum zahájení!", - "Volo.AbpIo.Commercial:030007": "Tato zkušební licence již byla jednou aktivována!", - "Volo.AbpIo.Commercial:030008": "Datum nákupu lze nastavit pouze ve stavu Zakoupeno!", - "Volo.AbpIo.Commercial:030009": "Uživatel nenalezen!", - "Volo.AbpIo.Commercial:030010": "Chcete-li zakoupit zkušební licenci, musíte nejprve aktivovat zkušební licenci!", - "Volo.AbpIo.Commercial:030011": "Po zakoupení zkušební licence nelze odstranit!", + "Permission:SendWelcomeEmail": "Odeslat uvítací e-mail", + "SendWelcomeEmail": "Odeslat uvítací e-mail", + "SendWelcomeEmailWarningMessage": "Opravdu chcete členům organizace poslat uvítací e-mail?", + "SendWelcomeEmailSuccessMessage": "Uvítací e-mail byl úspěšně odeslán!", + "Activate": "aktivovat", + "ActivateTrialLicenseWarningMessage": "Když aktivujete zkušební licenci, bude uživateli zaslán uvítací e-mail. Chcete jej aktivovat?", + "ActivateTrialLicenseSuccessMessage": "Úspěšně aktivováno a uvítací e-mail odeslán členům organizace.", + "PaymentRequestId": "ID žádosti o platbu", + "AdditionalDeveloperCount": "Další počet vývojářů", + "LicensePrice": "Cena licence", + "PurchaseDate": "Datum nákupu", + "IsAbpBookDownloaded": "Mastering ABP Book stažena?", + "IsMasteringAbpBookDownloadEnabled": "Stahování knihy ABP povoleno", + "Permission:Accounting:CustomPaymentLinkGenerator": "Vlastní platební odkaz", + "CustomPaymentLink": "Vlastní platební odkaz", + "Menu:CustomPaymentLink": "Vlastní platební odkaz", + "Amount": "Množství", + "GenerateCustomPaymentLink": "Vygenerovat vlastní platební odkaz", + "GeneratedPaymentLink": "Vygenerovaný platební odkaz", + "CopyText": "Kopírovat text", + "Permission:CommunityEvents": "Události", + "Menu:Events": "Události", + "Events": "Události", + "EventType": "Typ události", + "Number": "Číslo", + "RegistrationURL": "Registrační URL", + "URL": "URL", + "EventDeletionConfirmationMessage": "Opravdu chcete smazat tuto událost?", + "Enum:EventType:0": "Komunitní rozhovory", + "CreateAnEvent": "Vytvořte událost", + "Permission:CommunitySpeakers": "Řečníci", + "CreateASpeaker": "Vytvořte reproduktor", + "Speakers": "Řečníci", + "Image": "obraz", + "GithubURL": "Adresa URL Github", + "SpeakerDeletionConfirmationMessage": "Opravdu chcete tento reproduktor smazat?", + "Menu:Speakers": "Řečníci", + "ChooseSpeakerImage": "Vyberte obrázek reproduktoru...", + "SpeakerImage": "Obrázek reproduktoru", + "AddSpeaker": "Přidat reproduktor", + "ShowPurchaseItemsOfOrganizations": "Nákup položek", + "Enum:OrganizationPurchaseState:0": "Nedoručeno", + "Enum:OrganizationPurchaseState:1": "Doručeno", + "PurchaseItems": "Nákup položek", + "SuccessfullyUpdated": "Úspěšně aktualizováno", + "SuccessfullyAdded": "Úspěšně přidáno", + "PurchaseState": "Stav nákupu", + "ShowBetweenDayCount": "Show Mezi dny", + "PurchaseOrder": "Nákupní objednávka", + "ShowCreateInvoiceOfOrganization": "Vytvořit fakturu", + "ShowCreateQuotationOfOrganization": "Vytvořte nabídku", + "BookDiscounts": "Slevy na knihy", + "Permission:BookDiscount": "Sleva na knihy", + "Menu:BookDiscounts": "Slevy na knihy", + "BookType": "Typ knihy", + "PurchasePlatform": "Nákupní platforma", + "StartTime": "Doba spuštění", + "EndTime": "Čas ukončení", + "CreateABookDiscount": "Vytvořte slevu na knihu", + "BookDiscountDeletionConfirmationMessage": "Opravdu chcete smazat slevu na tuto knihu?", + "CustomPaymentFlexSwitchDescription": "S licencí", + "AllowFeatureUpgradeOnLicenseExpire": "Povolit upgrade funkcí po vypršení licence", + "Deleted{0}": "[Smazáno {0}]", + "Tags": "Tagy", + "SetTagsInfo": "Značky by měly být odděleny čárkami. Např.: CSharp, Entity Framework", + "RejectTrialLicenseWarningMessage": "Opravdu chcete odmítnout tuto žádost o zkušební licenci?", + "ExportToExcel": "Export do Excelu", + "OverallTotalPrice": "Celková celková cena", + "OverallDiscountPrice": "Celková cena po slevě", + "OverallDiscountText": "Text celkové slevy", + "SelectReport": "- Vyberte přehled -", + "NoDataAvailable": "Nejsou k dispozici žádné údaje", + "StatisticsOfCachedContents": "Statistiky obsahu balíčku NuGet uloženého v mezipaměti pro nuget.abp.io", + "Compact": "Kompaktní", + "EditSettings": "Upravit nastavení", + "CurrentEstimatedSize": "Aktuální odhadovaná velikost", + "CurrentEntryCount": "Aktuální počet vstupů", + "TotalHits": "Celkový počet zásahů", + "TotalMisses": "Celkový počet chyb", + "NoResponseFrom": "Žádná odpověď od", + "ContentCacheSlidingExpirationByDay": "Posuvné vypršení platnosti mezipaměti obsahu za den", + "MaxDaysForCaching": "Maximální počet dní pro ukládání do mezipaměti", + "Enabled": "Povoleno", + "Menu:NugetPackagesContentCache": "Mezipaměť NuGet", + "NugetPackagesContentCache": "Mezipaměť obsahu NuGet", + "SlidingExpritionByDayInfo": "Získává nebo nastavuje, jak dlouho může být záznam v mezipaměti neaktivní (např. bez přístupu), než bude odstraněn. Tím se neprodlouží životnost záznamu za absolutní expiraci.", + "MaxDaysForCachingInfo": "Získá nebo nastaví absolutní čas vypršení platnosti vzhledem k současnosti.", + "CurrentEstimatedSizeInfo": "Označuje odhadovaný součet velikosti obsahu všech balíčků NuGet aktuálně v mezipaměti", + "CurrentEntryCountInfo": "Označuje počet instancí aktuálně v mezipaměti.", + "TotalHitsInfo": "Udává celkový počet vynechaných vyrovnávací paměti. K přístupu do mezipaměti dochází, když je soubor požadován z mezipaměti a mezipaměť je schopna tento požadavek splnit.", + "TotalMissesInfo": "Udává celkový počet přístupů do mezipaměti. Chyba mezipaměti je, když mezipaměť neobsahuje požadovaný obsah.", + "Permission:VersionHistory": "Historie verzí", + "Caches": "Mezipaměti", + "VersionHistories": "Historie verzí", + "Version": "Verze", + "PublishDate": "Datum zveřejnění", + "IsStableVersion": "Stabilní verze", + "IsActive": "Aktivní", + "NewVersion": "Nová verze", + "VersionHistoryDeletionConfirmationMessage": "Opravdu chcete tuto verzi smazat?", + "CreateAbpConsultantLogoInfo": "Maximální velikost souboru: 1 MB
Podporované typy souborů: jpg, jpeg, png, SVG, WebP", + "UrlCode": "Kód URL", + "Clear": "Průhledná", + "Permission:AbpConsultant": "Konzultant ABP", + "Menu:AbpConsultants": "Konzultanti ABP", + "CreateAbpConsultant": "Vytvořte poradce ABP", + "UrlCodeIsNotAvailable": "Kód URL používá jiný konzultant ABP.", + "AbpConsultants": "Konzultanti ABP", + "AbpConsultant": "Konzultant ABP", + "AbpConsultantEdit": "Upravit poradce ABP", + "AbpConsultantCreate": "Vytvořte poradce ABP", + "WhoWeAreItem": "Položka Kdo jsme", + "FieldIsRequired": "{0} je povinné.", + "FieldIsNotValid": "{0} není platné.", + "InterestedLicenseType": "Typ licence, o který máte zájem", "MoveWaitList": "Přejít na čekací listinu", "CommunityLinkTitle": "Otevřít na webu komunity", "CommunityLink": "Odkaz na komunitu", "ReloadFromSource": "Znovu načíst ze zdroje", - "ReloadFromSourceConfirmationMessage": "Tento příspěvek bude obnoven z „{0}“. Chceš pokračovat?" + "ReloadFromSourceConfirmationMessage": "Tento příspěvek bude obnoven z „{0}“. Chceš pokračovat?", + "UnitPrice": "Jednotková cena", + "OverallDiscountAmount": "Celková výše slevy", + "DiscountAmount": "Výše slevy", + "FullChangeHistory": "Úplná historie změn", + "Permission:RefreshReleaseLogs": "Obnovit protokoly vydání", + "ReleaseLogs": "Protokoly vydání", + "AuthorUserName": "Uživatelské jméno autora", + "Type": "Typ", + "TotalDiscount": "Celková sleva", + "SubTotal": "Mezisoučet", + "TotalDue": "Konečná cena", + "QuotationNo": "Citace č", + "ValidTill": "Platný do", + "QuotationNote": "Poznámka k citaci", + "QuotationTemplate.Address:": "Adresa:", + "QuotationTemplate.VATNo:": "DIČ:", + "QuotationTemplate.Phone:": "Telefon:", + "QuotationTemplate.E-mail:": "E-mailem:", + "QuotationTemplate.Quotation": "Citát", + "QuotationTemplate.To": "Na", + "QuotationTemplate.Details": "Podrobnosti", + "QuotationTemplate.QuotationNo:": "Citát #:", + "QuotationTemplate.IssueDate:": "Datum vydání:", + "QuotationTemplate.ValidTill:": "Platný do:", + "QuotationTemplate.ValidDays": "{0} dnů", + "QuotationTemplate.Description": "Popis", + "QuotationTemplate.UnitPrice": "Jednotková cena", + "QuotationTemplate.Qty": "množství", + "QuotationTemplate.Discount": "Sleva", + "QuotationTemplate.Total": "Celkový", + "QuotationTemplate.Notes": "Poznámky", + "QuotationTemplate.SubTotal:": "Mezisoučet:", + "QuotationTemplate.Tax/VAT:": "Daň / DPH (%{0}):", + "QuotationTemplate.TotalDiscount:": "Celková sleva:", + "QuotationTemplate.TOTALDUE:": "KONEČNÁ CENA :", + "QuotationTemplate.BankAccount": "Informace o našem bankovním účtu naleznete na adrese {0}", + "Permission:Raffles": "Tombola", + "Permission:Draw": "Kreslit", + "Menu:Raffles": "Tomboly", + "RaffleIsNotDrawable": "Tombola není slosovatelná", + "WinnerCountMustBeGreaterThanZero": "Počet vítězů musí být větší než nula", + "FullDescription": "Plný popis", + "VisibilityStartDate": "Datum zahájení viditelnosti", + "VisibilityEndDate": "Datum ukončení viditelnosti", + "RaffleDate": "Datum slosování", + "SubscriptionCode": "Kód předplatného", + "GroupCode": "Skupinové heslo", + "MaxWinnerCount": "Maximální počet vítězů", + "ReDraw": "Překreslit", + "EditRaffle": "Upravit losování", + "Raffles": "Tomboly", + "CreateARaffle": "Vytvořte tombolu", + "Draw": "Kreslit", + "Enum:RaffleStatus:0": "Aktivní", + "Enum:RaffleStatus:1": "další", + "Enum:RaffleStatus:2": "Minulost", + "DrawDone": "Kreslení Hotovo", + "HomePageShowType": "Typ zobrazení domovské stránky", + "None": "Žádný", + "Card": "Kartu", + "Horizontal": "Horizontální", + "Winners": "Vítězové", + "StartDateMustBeLessThanEndDate": "Datum zahájení musí být menší než datum ukončení", + "VisibilityStartDateMustBeLessThanVisibilityEndDate": "Datum zahájení viditelnosti musí být menší než datum ukončení viditelnosti", + "StartDateMustBeGreaterThanVisibilityStartDate": "Datum zahájení musí být větší než datum zahájení viditelnosti", + "EndDateMustBeLessThanVisibilityEndDate": "Datum ukončení musí být menší než datum ukončení viditelnosti", + "DrawnDone": "Nakresleno Hotovo", + "AddColor": "Přidat barvu", + "Colors": "Barvy", + "RemoveColor": "Odebrat barvu", + "MaxColorCountWarning": "Můžete přidat až {0} barev", + "MinColorCountWarning": "Musíte přidat alespoň {0} barev", + "RaffleDeletionConfirmationMessage": "Opravdu chcete smazat toto slosování?", + "CreateRaffle": "Vytvořit tombolu", + "RemoveImage": "Odebrat obrázek", + "SuccessfullySaved": "Úspěšně uloženo", + "Menu:CommunityTalks": "Komunitní rozhovory", + "Menu:Conferences": "Konference", + "Menu:OtherLiveEvents": "Další živé akce", + "Menu:SponsoredConferences": "Sponzorované konference", + "Logo": "Logo", + "Slug": "Slimák", + "CompanyUrl": "Adresa URL společnosti", + "TalkTitle": "Název diskuse", + "AbstractTopic": "Abstraktní téma", + "Bio": "Bio", + "LinkedIn": "LinkedIn", + "Github": "Github", + "Twitch": "Škubnutí", + "Youtube": "Youtube", + "Twitter": "Cvrlikání", + "PersonalWebsite": "Osobní webové stránky", + "VideoId": "ID videa", + "Order": "Objednat", + "Image1x1": "Obrázek 1x1", + "Image16x9": "Obrázek 16x9", + "Banner": "Prapor", + "Speaker": "mluvčí", + "SessionDate": "Datum relace", + "AddSession": "Přidat relaci", + "AddSponsor": "Přidat sponzora", + "SponsorLogo": "Logo sponzora", + "RegistrationUrl": "Registrační URL" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/de.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/de.json index 7989031b03..e18b85c689 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/de.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/de.json @@ -220,6 +220,7 @@ "SuccessfullyReIndexAllPosts": "Alle Beiträge wurden erfolgreich neu indiziert.", "Permission:FullSearch": "Volltextsuche", "Menu:CliAnalytics": "CLI-Analyse", + "Menu:Reports": "Berichte", "TemplateName": "Vorlagenname", "TemplateVersion": "Vorlagenversion", "DatabaseProvider": "Datenbankanbieter", @@ -231,8 +232,10 @@ "UiFramework": "UI-Framework", "Options": "Optionen", "CliAnalytics": "CLI-Analyse", + "Reports": "Berichte", "Permission:CliAnalyticses": "Cli-Analysen", "Permission:CliAnalytics": "CLI-Analyse", + "Permission:Reports": "Berichte", "Search": "Suche", "ClearFilter": "Filter löschen", "LicensePrivateKey": "Privaten Schlüssel lizenzieren", @@ -316,14 +319,12 @@ "TrialLicenseStatusFilter": "Status", "TrialLicenseStartDateFilter": "Startdatum", "TrialLicenseEndDateFilter": "Endtermin", - "FirsName": "Vorname", + "FirstName": "Vorname", "LastName": "Nachname", "StartDate": "Startdatum", "EndDate": "Endtermin", "PurchasedDate": "Gekauftes Datum", "OrganizationDetail": "Organisationsdetails", - "SendActivationMail": "Aktivierungsmail senden", - "ActivationMailSentSuccessfully": "Aktivierungsmail erfolgreich versendet!", "TrialLicenseStatus": "Status der Testlizenz", "TrialLicenseDetail": "Details zur Testlizenz", "AcceptsMarketingCommunications": "Marketing-Kommunikation", @@ -337,17 +338,228 @@ "Expired": "Abgelaufen", "TrialLicenseDeletionWarningMessage": "Möchten Sie die Testlizenz wirklich löschen? Testlizenz, Organisation, Support-Accounts werden gelöscht!", "LicenseCategoryFilter": "Lizenzkategorie", - "Volo.AbpIo.Commercial:030000": "Sie haben Ihren Testzeitraum bereits genutzt.", - "Volo.AbpIo.Commercial:030001": "Dieser Organisationsname existiert bereits.", - "Volo.AbpIo.Commercial:030002": "Nach der Aktivierung kann die Testlizenz nicht auf angefordert gesetzt werden!", - "Volo.AbpIo.Commercial:030003": "Es gibt keinen solchen Status!", - "Volo.AbpIo.Commercial:030004": "Status konnte aufgrund eines unerwarteten Fehlers nicht geändert werden!", - "Volo.AbpIo.Commercial:030005": "Start- und Enddatum können aktualisiert werden, wenn sich die Testlizenz im Status -aktiviert- befindet!", - "Volo.AbpIo.Commercial:030006": "Enddatum muss immer größer als Startdatum sein!", - "Volo.AbpIo.Commercial:030007": "Diese Testlizenz wurde bereits einmal aktiviert!", - "Volo.AbpIo.Commercial:030008": "Das Kaufdatum kann nur eingestellt werden, wenn der Status Gekauft ist!", - "Volo.AbpIo.Commercial:030009": "Benutzer wurde nicht gefunden!", - "Volo.AbpIo.Commercial:030010": "Um die Testlizenz zu erwerben, müssen Sie zuerst Ihre Testlizenz aktivieren!", - "Volo.AbpIo.Commercial:030011": "Sie können eine Testlizenz beim Kauf nicht löschen!" + "Permission:SendWelcomeEmail": "Senden Sie eine Willkommens-E-Mail", + "SendWelcomeEmail": "Senden Sie eine Willkommens-E-Mail", + "SendWelcomeEmailWarningMessage": "Sind Sie sicher, dass Sie den Organisationsmitgliedern eine Willkommens-E-Mail senden möchten?", + "SendWelcomeEmailSuccessMessage": "Willkommens-E-Mail erfolgreich gesendet!", + "Activate": "aktivieren Sie", + "ActivateTrialLicenseWarningMessage": "Wenn Sie eine Testlizenz aktivieren, wird eine Willkommens-E-Mail an den Benutzer gesendet. Möchten Sie es aktivieren?", + "ActivateTrialLicenseSuccessMessage": "Erfolgreich aktiviert und die Willkommens-E-Mail an die Organisationsmitglieder gesendet.", + "PaymentRequestId": "Zahlungsanforderungs-ID", + "AdditionalDeveloperCount": "Zusätzliche Entwickleranzahl", + "LicensePrice": "Lizenzpreis", + "PurchaseDate": "Kaufdatum", + "IsAbpBookDownloaded": "Mastering ABP-Buch heruntergeladen?", + "IsMasteringAbpBookDownloadEnabled": "ABP-Buch-Download aktiviert", + "Permission:Accounting:CustomPaymentLinkGenerator": "Benutzerdefinierter Zahlungslink", + "CustomPaymentLink": "Benutzerdefinierter Zahlungslink", + "Menu:CustomPaymentLink": "Benutzerdefinierter Zahlungslink", + "Amount": "Menge", + "GenerateCustomPaymentLink": "Generieren Sie einen benutzerdefinierten Zahlungslink", + "GeneratedPaymentLink": "Generierter Zahlungslink", + "CopyText": "Text kopieren", + "Permission:CommunityEvents": "Veranstaltungen", + "Menu:Events": "Veranstaltungen", + "Events": "Veranstaltungen", + "EventType": "Ereignistyp", + "Number": "Nummer", + "RegistrationURL": "Registrierungs-URL", + "URL": "URL", + "EventDeletionConfirmationMessage": "Sind Sie sicher, dass Sie dieses Ereignis löschen möchten?", + "Enum:EventType:0": "Community-Gespräche", + "CreateAnEvent": "Erstellen Sie eine Veranstaltung", + "Permission:CommunitySpeakers": "Lautsprecher", + "CreateASpeaker": "Erstellen Sie einen Lautsprecher", + "Speakers": "Lautsprecher", + "Image": "Bild", + "GithubURL": "Github-URL", + "SpeakerDeletionConfirmationMessage": "Sind Sie sicher, dass Sie diesen Lautsprecher löschen möchten?", + "Menu:Speakers": "Lautsprecher", + "ChooseSpeakerImage": "Wählen Sie ein Lautsprecherbild...", + "SpeakerImage": "Sprecherbild", + "AddSpeaker": "Lautsprecher hinzufügen", + "ShowPurchaseItemsOfOrganizations": "Artikel kaufen", + "Enum:OrganizationPurchaseState:0": "Nicht zugestellt", + "Enum:OrganizationPurchaseState:1": "Geliefert", + "PurchaseItems": "Artikel kaufen", + "SuccessfullyUpdated": "Erfolgreich aktualisiert", + "SuccessfullyAdded": "Erfolgreich hinzugefügt", + "PurchaseState": "Kaufstatus", + "ShowBetweenDayCount": "Zwischen Tagen anzeigen", + "PurchaseOrder": "Auftragsbestätigung", + "ShowCreateInvoiceOfOrganization": "Rechnung erstellen", + "ShowCreateQuotationOfOrganization": "Angebot erstellen", + "BookDiscounts": "Buchrabatte", + "Permission:BookDiscount": "Buchrabatt", + "Menu:BookDiscounts": "Buchrabatte", + "BookType": "Buchtyp", + "PurchasePlatform": "Kaufplattform", + "StartTime": "Startzeit", + "EndTime": "Endzeit", + "CreateABookDiscount": "Erstellen Sie einen Buchrabatt", + "BookDiscountDeletionConfirmationMessage": "Möchten Sie diesen Buchrabatt wirklich löschen?", + "CustomPaymentFlexSwitchDescription": "Mit Lizenz", + "AllowFeatureUpgradeOnLicenseExpire": "Funktionsupgrade nach Ablauf der Lizenz zulassen", + "Deleted{0}": "[Gelöscht {0}]", + "Tags": "Stichworte", + "SetTagsInfo": "Tags sollten durch Kommas getrennt werden. Beispiel: CSharp, Entity Framework", + "RejectTrialLicenseWarningMessage": "Sind Sie sicher, dass Sie diese Testlizenzanfrage ablehnen möchten?", + "ExportToExcel": "Nach Excel exportieren", + "OverallTotalPrice": "Gesamtpreis", + "OverallDiscountPrice": "Gesamtrabattpreis", + "OverallDiscountText": "Gesamtrabatttext", + "SelectReport": "- Bericht auswählen -", + "NoDataAvailable": "Keine Daten verfügbar", + "StatisticsOfCachedContents": "Statistiken der zwischengespeicherten NuGet-Paketinhalte für nuget.abp.io", + "Compact": "Kompakt", + "EditSettings": "Einstellungen bearbeiten", + "CurrentEstimatedSize": "Aktuelle geschätzte Größe", + "CurrentEntryCount": "Aktuelle Eintragsanzahl", + "TotalHits": "Gesamttreffer", + "TotalMisses": "Gesamtzahl der Fehlschläge", + "NoResponseFrom": "Keine Antwort von", + "ContentCacheSlidingExpirationByDay": "Gleitender Ablauf des Inhaltscache nach Tag", + "MaxDaysForCaching": "Maximale Tage für das Caching", + "Enabled": "Ermöglicht", + "Menu:NugetPackagesContentCache": "NuGet-Cache", + "NugetPackagesContentCache": "NuGet-Inhaltscache", + "SlidingExpritionByDayInfo": "Ruft ab oder legt fest, wie lange ein Cache-Eintrag inaktiv sein kann (z. B. ohne Zugriff), bevor er entfernt wird. Dadurch wird die Gültigkeitsdauer des Eintrags nicht über den absoluten Ablauf hinaus verlängert.", + "MaxDaysForCachingInfo": "Ruft eine absolute Ablaufzeit relativ zum Jetzt ab oder legt diese fest.", + "CurrentEstimatedSizeInfo": "Gibt eine geschätzte Summe der Inhaltsgröße aller NuGet-Pakete an, die sich derzeit im Speichercache befinden", + "CurrentEntryCountInfo": "Gibt die Anzahl der Instanzen an, die sich derzeit im Speichercache befinden.", + "TotalHitsInfo": "Gibt die Gesamtzahl der Cache-Fehler an. Ein Cache-Treffer tritt auf, wenn eine Datei aus einem Cache angefordert wird und der Cache diese Anforderung erfüllen kann.", + "TotalMissesInfo": "Gibt die Gesamtzahl der Cache-Treffer an. Ein Cache-Miss liegt vor, wenn der Cache den angeforderten Inhalt nicht enthält.", + "Permission:VersionHistory": "Versionsgeschichte", + "Caches": "Caches", + "VersionHistories": "Versionsgeschichte", + "Version": "Ausführung", + "PublishDate": "Datum der Veröffentlichung", + "IsStableVersion": "Stabile Version", + "IsActive": "Aktiv", + "NewVersion": "Neue Version", + "VersionHistoryDeletionConfirmationMessage": "Sind Sie sicher, dass Sie diese Version löschen möchten?", + "CreateAbpConsultantLogoInfo": "Maximale Dateigröße: 1 MB
Unterstützte Dateitypen: jpg, jpeg, png, SVG, WebP", + "UrlCode": "URL-Code", + "Clear": "Klar", + "Permission:AbpConsultant": "ABP-Berater", + "Menu:AbpConsultants": "ABP-Berater", + "CreateAbpConsultant": "ABP-Berater erstellen", + "UrlCodeIsNotAvailable": "Der URL-Code wird von einem anderen ABP-Berater verwendet.", + "AbpConsultants": "ABP-Berater", + "AbpConsultant": "ABP-Berater", + "AbpConsultantEdit": "ABP-Berater bearbeiten", + "AbpConsultantCreate": "ABP-Berater erstellen", + "WhoWeAreItem": "Wer wir sind Artikel", + "FieldIsRequired": "{0} ist erforderlich.", + "FieldIsNotValid": "{0} ist ungültig.", + "InterestedLicenseType": "Interessierter Lizenztyp", + "MoveWaitList": "Zur Warteliste wechseln", + "CommunityLinkTitle": "Auf der Community-Website öffnen", + "CommunityLink": "Community-Link", + "ReloadFromSource": "Von der Quelle neu laden", + "ReloadFromSourceConfirmationMessage": "Dieser Beitrag wird ab „{0}“ aktualisiert. Möchtest du fortfahren?", + "UnitPrice": "Einzelpreis", + "OverallDiscountAmount": "Gesamtrabattbetrag", + "DiscountAmount": "Rabattbetrag", + "FullChangeHistory": "Vollständiger Änderungsverlauf", + "Permission:RefreshReleaseLogs": "Versionsprotokolle aktualisieren", + "ReleaseLogs": "Release-Protokolle", + "AuthorUserName": "Benutzername des Autors", + "Type": "Typ", + "TotalDiscount": "Totaler Rabatt", + "SubTotal": "Zwischensumme", + "TotalDue": "Gesamtbetrag fällig", + "QuotationNo": "Zitat Nr", + "ValidTill": "Gültig bis", + "QuotationNote": "Zitatnotiz", + "QuotationTemplate.Address:": "Adresse:", + "QuotationTemplate.VATNo:": "Umsatzsteuernummer:", + "QuotationTemplate.Phone:": "Telefon:", + "QuotationTemplate.E-mail:": "Email:", + "QuotationTemplate.Quotation": "Zitat", + "QuotationTemplate.To": "Zu", + "QuotationTemplate.Details": "Einzelheiten", + "QuotationTemplate.QuotationNo:": "Zitat #:", + "QuotationTemplate.IssueDate:": "Ausgabedatum:", + "QuotationTemplate.ValidTill:": "Gültig bis:", + "QuotationTemplate.ValidDays": "{0} Tage", + "QuotationTemplate.Description": "Beschreibung", + "QuotationTemplate.UnitPrice": "Einzelpreis", + "QuotationTemplate.Qty": "Menge", + "QuotationTemplate.Discount": "Rabatt", + "QuotationTemplate.Total": "Gesamt", + "QuotationTemplate.Notes": "Anmerkungen", + "QuotationTemplate.SubTotal:": "Zwischensumme:", + "QuotationTemplate.Tax/VAT:": "Steuer/Mehrwertsteuer (%{0}):", + "QuotationTemplate.TotalDiscount:": "Totaler Rabatt :", + "QuotationTemplate.TOTALDUE:": "GESAMTBETRAG:", + "QuotationTemplate.BankAccount": "Unsere Bankkontoinformationen finden Sie unter {0}", + "Permission:Raffles": "Verlosen", + "Permission:Draw": "Ziehen", + "Menu:Raffles": "Gewinnspiele", + "RaffleIsNotDrawable": "Die Verlosung ist nicht auslosbar", + "WinnerCountMustBeGreaterThanZero": "Die Anzahl der Gewinner muss größer als Null sein", + "FullDescription": "Gesamte Beschreibung", + "VisibilityStartDate": "Startdatum der Sichtbarkeit", + "VisibilityEndDate": "Enddatum der Sichtbarkeit", + "RaffleDate": "Datum der Verlosung", + "SubscriptionCode": "Abonnementcode", + "GroupCode": "Gruppencode", + "MaxWinnerCount": "Maximale Gewinneranzahl", + "ReDraw": "Neu zeichnen", + "EditRaffle": "Verlosung bearbeiten", + "Raffles": "Gewinnspiele", + "CreateARaffle": "Erstellen Sie ein Gewinnspiel", + "Draw": "Ziehen", + "Enum:RaffleStatus:0": "Aktiv", + "Enum:RaffleStatus:1": "Nächste", + "Enum:RaffleStatus:2": "Vergangenheit", + "DrawDone": "Zeichnung fertig", + "HomePageShowType": "Startseiten-Anzeigetyp", + "None": "Keiner", + "Card": "Karte", + "Horizontal": "Horizontal", + "Winners": "Gewinner", + "StartDateMustBeLessThanEndDate": "Das Startdatum muss vor dem Enddatum liegen", + "VisibilityStartDateMustBeLessThanVisibilityEndDate": "Das Startdatum der Sichtbarkeit muss vor dem Enddatum der Sichtbarkeit liegen", + "StartDateMustBeGreaterThanVisibilityStartDate": "Das Startdatum muss größer sein als das Startdatum der Sichtbarkeit", + "EndDateMustBeLessThanVisibilityEndDate": "Das Enddatum muss vor dem Enddatum der Sichtbarkeit liegen", + "DrawnDone": "Gezeichnet, fertig", + "AddColor": "Farbe hinzufügen", + "Colors": "Farben", + "RemoveColor": "Farbe entfernen", + "MaxColorCountWarning": "Sie können bis zu {0} Farben hinzufügen", + "MinColorCountWarning": "Sie müssen mindestens {0} Farben hinzufügen", + "RaffleDeletionConfirmationMessage": "Sind Sie sicher, dass Sie dieses Gewinnspiel löschen möchten?", + "CreateRaffle": "Gewinnspiel erstellen", + "RemoveImage": "Entferne Bild", + "SuccessfullySaved": "Erfolgreich gespeichert", + "Menu:CommunityTalks": "Community-Gespräche", + "Menu:Conferences": "Konferenzen", + "Menu:OtherLiveEvents": "Andere Live-Events", + "Menu:SponsoredConferences": "Gesponserte Konferenzen", + "Logo": "Logo", + "Slug": "Schnecke", + "CompanyUrl": "Firmen-URL", + "TalkTitle": "Vortragstitel", + "AbstractTopic": "Abstraktes Thema", + "Bio": "Bio", + "LinkedIn": "LinkedIn", + "Github": "Github", + "Twitch": "Zucken", + "Youtube": "Youtube", + "Twitter": "Twitter", + "PersonalWebsite": "Persönliche Webseite", + "VideoId": "Video-ID", + "Order": "Befehl", + "Image1x1": "Bild 1x1", + "Image16x9": "Bild 16x9", + "Banner": "Banner", + "Speaker": "Lautsprecher", + "SessionDate": "Sitzungsdatum", + "AddSession": "Sitzung hinzufügen", + "AddSponsor": "Sponsor hinzufügen", + "SponsorLogo": "Sponsor-Logo", + "RegistrationUrl": "Registrierungs-URL" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en.json index c86d7a3bdb..e2563fe684 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en.json @@ -492,7 +492,7 @@ "QuotationTemplate.SubTotal:": "Sub Total :", "QuotationTemplate.Tax/VAT:": "Tax / Vat (%{0}) :", "QuotationTemplate.TotalDiscount:": "Total Discount :", - "QuotationTemplate.TOTALDUE:": "TOTAL DUE :", + "QuotationTemplate.TOTALDUE:": "TOTAL DUE :", "QuotationTemplate.BankAccount": "Our bank account information can be found at {0}", "Permission:Raffles": "Raffle", "Permission:Draw": "Draw", @@ -561,6 +561,7 @@ "AddSponsor": "Add Sponsor", "SponsorLogo": "Sponsor Logo", "RegistrationUrl": "Registration Url", - "AllowAbpStudioBetaAccess": "Allow ABP Studio Beta Access" + "AllowAbpStudioBetaAccess": "Allow ABP Studio Beta Access", + "TotalQuestionCanNotBeNullMessage": "Total Question can not be null" } } diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/es.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/es.json index dfdd56ce63..88696d31f7 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/es.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/es.json @@ -220,6 +220,7 @@ "SuccessfullyReIndexAllPosts": "Todas las publicaciones se han vuelto a indexar correctamente.", "Permission:FullSearch": "Búsqueda de texto completo", "Menu:CliAnalytics": "Cli Analytics", + "Menu:Reports": "Informes", "TemplateName": "Nombre de la plantilla", "TemplateVersion": "Versión de plantilla", "DatabaseProvider": "Proveedor de base de datos", @@ -231,8 +232,10 @@ "UiFramework": "Marco de interfaz de usuario", "Options": "Opciones", "CliAnalytics": "Cli Analytics", + "Reports": "Informes", "Permission:CliAnalyticses": "Análisis de Cli", "Permission:CliAnalytics": "Cli Analytics", + "Permission:Reports": "Informes", "Search": "Buscar", "ClearFilter": "Filtro claro", "LicensePrivateKey": "Licencia de clave privada", @@ -316,14 +319,12 @@ "TrialLicenseStatusFilter": "Estado", "TrialLicenseStartDateFilter": "Fecha de inicio", "TrialLicenseEndDateFilter": "Fecha final", - "FirsName": "Nombre de pila", + "FirstName": "Nombre de pila", "LastName": "Apellido", "StartDate": "Fecha de inicio", "EndDate": "Fecha final", "PurchasedDate": "Fecha de compra", "OrganizationDetail": "Detalle de la organización", - "SendActivationMail": "Enviar correo de activación", - "ActivationMailSentSuccessfully": "¡Correo de activación enviado con éxito!", "TrialLicenseStatus": "Estado de la licencia de prueba", "TrialLicenseDetail": "Detalle de la licencia de prueba", "AcceptsMarketingCommunications": "Comunicaciones de marketing", @@ -337,17 +338,228 @@ "Expired": "Caducado", "TrialLicenseDeletionWarningMessage": "¿Está seguro de que desea eliminar la licencia de prueba? ¡La licencia de prueba, la organización y las cuentas de soporte serán eliminadas!", "LicenseCategoryFilter": "Categoría de licencia", - "Volo.AbpIo.Commercial:030000": "Ya usaste tu período de prueba.", - "Volo.AbpIo.Commercial:030001": "Este nombre de organización ya existe.", - "Volo.AbpIo.Commercial:030002": "Una vez activada, la licencia de prueba no se puede configurar como solicitada.", - "Volo.AbpIo.Commercial:030003": "¡No existe tal estatus!", - "Volo.AbpIo.Commercial:030004": "¡El estado no se pudo cambiar debido a un error inesperado!", - "Volo.AbpIo.Commercial:030005": "La fecha de inicio y finalización se puede actualizar cuando la licencia de prueba está en estado -activada-.", - "Volo.AbpIo.Commercial:030006": "¡La fecha de finalización siempre debe ser mayor que la fecha de inicio!", - "Volo.AbpIo.Commercial:030007": "¡Esta licencia de prueba ya se ha activado una vez!", - "Volo.AbpIo.Commercial:030008": "¡La fecha de compra solo se puede establecer cuando el estado es Comprado!", - "Volo.AbpIo.Commercial:030009": "¡Usuario no encontrado!", - "Volo.AbpIo.Commercial:030010": "Para comprar la licencia de prueba, primero debe activar su licencia de prueba.", - "Volo.AbpIo.Commercial:030011": "¡No puede eliminar una licencia de prueba cuando la compra!" + "Permission:SendWelcomeEmail": "Enviar correo electrónico de bienvenida", + "SendWelcomeEmail": "Enviar correo electrónico de bienvenida", + "SendWelcomeEmailWarningMessage": "¿Está seguro de que desea enviar un correo electrónico de bienvenida a los miembros de la organización?", + "SendWelcomeEmailSuccessMessage": "¡El correo electrónico de bienvenida se envió correctamente!", + "Activate": "Activar", + "ActivateTrialLicenseWarningMessage": "Cuando active una licencia de prueba, se enviará un correo electrónico de bienvenida al usuario. ¿Quieres activarlo?", + "ActivateTrialLicenseSuccessMessage": "Activado exitosamente y correo electrónico de bienvenida enviado a los miembros de la organización.", + "PaymentRequestId": "ID de solicitud de pago", + "AdditionalDeveloperCount": "Recuento de desarrolladores adicionales", + "LicensePrice": "Precio de la licencia", + "PurchaseDate": "Fecha de compra", + "IsAbpBookDownloaded": "¿Descargar el libro Mastering ABP?", + "IsMasteringAbpBookDownloadEnabled": "Descarga de libros ABP habilitada", + "Permission:Accounting:CustomPaymentLinkGenerator": "Enlace de pago personalizado", + "CustomPaymentLink": "Enlace de pago personalizado", + "Menu:CustomPaymentLink": "Enlace de pago personalizado", + "Amount": "Cantidad", + "GenerateCustomPaymentLink": "Generar enlace de pago personalizado", + "GeneratedPaymentLink": "Enlace de pago generado", + "CopyText": "Copiar texto", + "Permission:CommunityEvents": "Eventos", + "Menu:Events": "Eventos", + "Events": "Eventos", + "EventType": "Tipo de evento", + "Number": "Número", + "RegistrationURL": "URL de registro", + "URL": "URL", + "EventDeletionConfirmationMessage": "¿Estás seguro de que deseas eliminar este evento?", + "Enum:EventType:0": "Charlas comunitarias", + "CreateAnEvent": "Crear un evento", + "Permission:CommunitySpeakers": "Altavoces", + "CreateASpeaker": "crear un altavoz", + "Speakers": "Altavoces", + "Image": "Imagen", + "GithubURL": "URL de Github", + "SpeakerDeletionConfirmationMessage": "¿Estás seguro de que deseas eliminar este altavoz?", + "Menu:Speakers": "Altavoces", + "ChooseSpeakerImage": "Elija una imagen de orador...", + "SpeakerImage": "Imagen del altavoz", + "AddSpeaker": "Agregar orador", + "ShowPurchaseItemsOfOrganizations": "Comprar artículos", + "Enum:OrganizationPurchaseState:0": "No entregado", + "Enum:OrganizationPurchaseState:1": "Entregado", + "PurchaseItems": "Comprar artículos", + "SuccessfullyUpdated": "Actualizado exitosamente", + "SuccessfullyAdded": "Agregado exitosamente", + "PurchaseState": "Estado de compra", + "ShowBetweenDayCount": "Mostrar entre días", + "PurchaseOrder": "Orden de compra", + "ShowCreateInvoiceOfOrganization": "Crear factura", + "ShowCreateQuotationOfOrganization": "Crear cotización", + "BookDiscounts": "Descuentos en libros", + "Permission:BookDiscount": "Descuento por reservar", + "Menu:BookDiscounts": "Descuentos en libros", + "BookType": "Tipo de libro", + "PurchasePlatform": "Plataforma de compra", + "StartTime": "Hora de inicio", + "EndTime": "Hora de finalización", + "CreateABookDiscount": "Crear un descuento para libros", + "BookDiscountDeletionConfirmationMessage": "¿Estás seguro de que deseas eliminar este descuento para libros?", + "CustomPaymentFlexSwitchDescription": "Con licencia", + "AllowFeatureUpgradeOnLicenseExpire": "Permitir actualización de funciones al caducar la licencia", + "Deleted{0}": "[Eliminado {0}]", + "Tags": "Etiquetas", + "SetTagsInfo": "Las etiquetas deben estar separadas por comas. Por ejemplo: CSharp, Entity Framework", + "RejectTrialLicenseWarningMessage": "¿Está seguro de que desea rechazar esta solicitud de licencia de prueba?", + "ExportToExcel": "Exportar a Excel", + "OverallTotalPrice": "Precio total general", + "OverallDiscountPrice": "Precio de descuento general", + "OverallDiscountText": "Texto de descuento general", + "SelectReport": "- Seleccionar Informe -", + "NoDataAvailable": "Datos no disponibles", + "StatisticsOfCachedContents": "Estadísticas del contenido del paquete NuGet almacenado en caché para nuget.abp.io", + "Compact": "Compacto", + "EditSettings": "Editar ajustes", + "CurrentEstimatedSize": "Tamaño estimado actual", + "CurrentEntryCount": "Recuento de entradas actuales", + "TotalHits": "Visitas totales", + "TotalMisses": "Total de errores", + "NoResponseFrom": "No hay respuesta de", + "ContentCacheSlidingExpirationByDay": "Caducidad móvil de la caché de contenido por día", + "MaxDaysForCaching": "Días máximos para almacenamiento en caché", + "Enabled": "Activado", + "Menu:NugetPackagesContentCache": "Caché NuGet", + "NugetPackagesContentCache": "Caché de contenido NuGet", + "SlidingExpritionByDayInfo": "Obtiene o establece cuánto tiempo puede estar inactiva una entrada de caché (por ejemplo, sin acceso) antes de que se elimine. Esto no extenderá la vida útil de la entrada más allá del vencimiento absoluto.", + "MaxDaysForCachingInfo": "Obtiene o establece una hora de vencimiento absoluta, relativa al momento actual.", + "CurrentEstimatedSizeInfo": "Indica una suma estimada del tamaño del contenido de todos los paquetes NuGet actualmente en la memoria caché.", + "CurrentEntryCountInfo": "Indica el número de instancias actualmente en la memoria caché.", + "TotalHitsInfo": "Indica el número total de errores de caché. Un acierto de caché se produce cuando se solicita un archivo desde un caché y el caché puede cumplir con esa solicitud.", + "TotalMissesInfo": "Indica el número total de aciertos de caché. Una pérdida de caché se produce cuando el caché no contiene el contenido solicitado.", + "Permission:VersionHistory": "Historial de versiones", + "Caches": "cachés", + "VersionHistories": "Historial de versiones", + "Version": "Versión", + "PublishDate": "Fecha de publicación", + "IsStableVersion": "Versión estable", + "IsActive": "Activo", + "NewVersion": "Nueva versión", + "VersionHistoryDeletionConfirmationMessage": "¿Estás seguro de que deseas eliminar esta versión?", + "CreateAbpConsultantLogoInfo": "Tamaño máximo de archivo: 1 MB
Tipos de archivos admitidos: jpg, jpeg, png, SVG, WebP", + "UrlCode": "Código URL", + "Clear": "Claro", + "Permission:AbpConsultant": "Consultor ABP", + "Menu:AbpConsultants": "Consultores ABP", + "CreateAbpConsultant": "Crear Consultor ABP", + "UrlCodeIsNotAvailable": "El código URL lo utiliza otro consultor ABP.", + "AbpConsultants": "Consultores ABP", + "AbpConsultant": "Consultor ABP", + "AbpConsultantEdit": "Editar Consultor ABP", + "AbpConsultantCreate": "Crear Consultor ABP", + "WhoWeAreItem": "Quiénes somos", + "FieldIsRequired": "{0} es obligatorio.", + "FieldIsNotValid": "{0} no es válido.", + "InterestedLicenseType": "Tipo de licencia interesado", + "MoveWaitList": "Pasar a lista de espera", + "CommunityLinkTitle": "Abrir en el sitio web de la comunidad.", + "CommunityLink": "Enlace comunitario", + "ReloadFromSource": "Recargar desde la fuente", + "ReloadFromSourceConfirmationMessage": "Esta publicación se actualizará desde "{0}". ¿Quieres continuar?", + "UnitPrice": "Precio unitario", + "OverallDiscountAmount": "Monto total del descuento", + "DiscountAmount": "Importe de descuento", + "FullChangeHistory": "Historial de cambios completo", + "Permission:RefreshReleaseLogs": "Actualizar registros de lanzamiento", + "ReleaseLogs": "Registros de lanzamiento", + "AuthorUserName": "Nombre de usuario del autor", + "Type": "Tipo", + "TotalDiscount": "Descuento total", + "SubTotal": "Subtotal", + "TotalDue": "Total adeudado", + "QuotationNo": "Cita No", + "ValidTill": "Válida hasta", + "QuotationNote": "nota de cotización", + "QuotationTemplate.Address:": "DIRECCIÓN:", + "QuotationTemplate.VATNo:": "Número de IVA:", + "QuotationTemplate.Phone:": "Teléfono:", + "QuotationTemplate.E-mail:": "Correo electrónico:", + "QuotationTemplate.Quotation": "Cotización", + "QuotationTemplate.To": "A", + "QuotationTemplate.Details": "Detalles", + "QuotationTemplate.QuotationNo:": "Cotización #:", + "QuotationTemplate.IssueDate:": "Fecha de asunto:", + "QuotationTemplate.ValidTill:": "Válida hasta:", + "QuotationTemplate.ValidDays": "{0} días", + "QuotationTemplate.Description": "Descripción", + "QuotationTemplate.UnitPrice": "Precio unitario", + "QuotationTemplate.Qty": "Cantidad", + "QuotationTemplate.Discount": "Descuento", + "QuotationTemplate.Total": "Total", + "QuotationTemplate.Notes": "Notas", + "QuotationTemplate.SubTotal:": "Subtotal:", + "QuotationTemplate.Tax/VAT:": "Impuesto/IVA (%{0}):", + "QuotationTemplate.TotalDiscount:": "Descuento total :", + "QuotationTemplate.TOTALDUE:": "TOTAL ADECUADO:", + "QuotationTemplate.BankAccount": "La información de nuestra cuenta bancaria se puede encontrar en {0}", + "Permission:Raffles": "Rifa", + "Permission:Draw": "Dibujar", + "Menu:Raffles": "Rifas", + "RaffleIsNotDrawable": "El sorteo no se puede sortear.", + "WinnerCountMustBeGreaterThanZero": "El recuento de ganadores debe ser mayor que cero.", + "FullDescription": "Descripción completa", + "VisibilityStartDate": "Fecha de inicio de visibilidad", + "VisibilityEndDate": "Fecha de finalización de la visibilidad", + "RaffleDate": "Fecha de la rifa", + "SubscriptionCode": "Código de suscripción", + "GroupCode": "El codigo del grupo", + "MaxWinnerCount": "Número máximo de ganadores", + "ReDraw": "Volver a dibujar", + "EditRaffle": "Editar sorteo", + "Raffles": "Rifas", + "CreateARaffle": "crear un sorteo", + "Draw": "Dibujar", + "Enum:RaffleStatus:0": "Activo", + "Enum:RaffleStatus:1": "Próximo", + "Enum:RaffleStatus:2": "Pasado", + "DrawDone": "Sorteo hecho", + "HomePageShowType": "Tipo de presentación de página de inicio", + "None": "Ninguno", + "Card": "Tarjeta", + "Horizontal": "Horizontal", + "Winners": "Ganadores", + "StartDateMustBeLessThanEndDate": "La fecha de inicio debe ser anterior a la fecha de finalización.", + "VisibilityStartDateMustBeLessThanVisibilityEndDate": "La fecha de inicio de la visibilidad debe ser anterior a la fecha de finalización de la visibilidad.", + "StartDateMustBeGreaterThanVisibilityStartDate": "La fecha de inicio debe ser mayor que la fecha de inicio de visibilidad.", + "EndDateMustBeLessThanVisibilityEndDate": "La fecha de finalización debe ser anterior a la fecha de finalización de la visibilidad.", + "DrawnDone": "Dibujado hecho", + "AddColor": "Agregar color", + "Colors": "Colores", + "RemoveColor": "Quitar color", + "MaxColorCountWarning": "Puedes agregar hasta {0} colores", + "MinColorCountWarning": "Debes agregar al menos {0} colores", + "RaffleDeletionConfirmationMessage": "¿Estás seguro de que quieres eliminar este sorteo?", + "CreateRaffle": "Crear sorteo", + "RemoveImage": "Quita la imagen", + "SuccessfullySaved": "Guardado con éxito", + "Menu:CommunityTalks": "Charlas comunitarias", + "Menu:Conferences": "Conferencias", + "Menu:OtherLiveEvents": "Otros eventos en vivo", + "Menu:SponsoredConferences": "Conferencias patrocinadas", + "Logo": "Logo", + "Slug": "Babosa", + "CompanyUrl": "URL de la compañía", + "TalkTitle": "Título de la charla", + "AbstractTopic": "Tema abstracto", + "Bio": "Biografía", + "LinkedIn": "LinkedIn", + "Github": "GitHub", + "Twitch": "Contracción nerviosa", + "Youtube": "YouTube", + "Twitter": "Gorjeo", + "PersonalWebsite": "Sitio web personal", + "VideoId": "Identificación del vídeo", + "Order": "Orden", + "Image1x1": "Imagen 1x1", + "Image16x9": "Imagen 16x9", + "Banner": "Bandera", + "Speaker": "Vocero", + "SessionDate": "Fecha de la sesión", + "AddSession": "Agregar sesión", + "AddSponsor": "Agregar patrocinador", + "SponsorLogo": "Logotipo del patrocinador", + "RegistrationUrl": "URL de registro" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/fi.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/fi.json index 3248ec9863..8b842aded8 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/fi.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/fi.json @@ -457,6 +457,109 @@ "CommunityLinkTitle": "Avaa yhteisön verkkosivuilla", "CommunityLink": "Yhteisön linkki", "ReloadFromSource": "Lataa uudelleen lähteestä", - "ReloadFromSourceConfirmationMessage": "Tämä viesti päivitetään kohteesta \"{0}\". Haluatko jatkaa?" + "ReloadFromSourceConfirmationMessage": "Tämä viesti päivitetään kohteesta \"{0}\". Haluatko jatkaa?", + "UnitPrice": "Yksikköhinta", + "OverallDiscountAmount": "Kokonaisalennussumma", + "DiscountAmount": "Alennuksen määrä", + "FullChangeHistory": "Koko muutoshistoria", + "Permission:RefreshReleaseLogs": "Päivitä julkaisulokit", + "ReleaseLogs": "Vapauta lokit", + "AuthorUserName": "Tekijän käyttäjänimi", + "Type": "Tyyppi", + "TotalDiscount": "Yhteensä alennus", + "SubTotal": "Välisumma", + "TotalDue": "Kokonaishinta", + "QuotationNo": "Lainaus nro", + "ValidTill": "Voimassa", + "QuotationNote": "Lainaushuomautus", + "QuotationTemplate.Address:": "Osoite:", + "QuotationTemplate.VATNo:": "ALV-numero:", + "QuotationTemplate.Phone:": "Puhelin:", + "QuotationTemplate.E-mail:": "Sähköposti:", + "QuotationTemplate.Quotation": "Lainaus", + "QuotationTemplate.To": "Vastaanottaja", + "QuotationTemplate.Details": "Yksityiskohdat", + "QuotationTemplate.QuotationNo:": "Lainaus #:", + "QuotationTemplate.IssueDate:": "Julkaisupäivä:", + "QuotationTemplate.ValidTill:": "Voimassa:", + "QuotationTemplate.ValidDays": "{0} päivää", + "QuotationTemplate.Description": "Kuvaus", + "QuotationTemplate.UnitPrice": "Yksikköhinta", + "QuotationTemplate.Qty": "Määrä", + "QuotationTemplate.Discount": "Alennus", + "QuotationTemplate.Total": "Kaikki yhteensä", + "QuotationTemplate.Notes": "Huomautuksia", + "QuotationTemplate.SubTotal:": "Välisumma:", + "QuotationTemplate.Tax/VAT:": "Vero / ALV (%{0}):", + "QuotationTemplate.TotalDiscount:": "Alennus yhteensä:", + "QuotationTemplate.TOTALDUE:": "KOKONAISHINTA :", + "QuotationTemplate.BankAccount": "Pankkitilitietomme löytyvät osoitteesta {0}", + "Permission:Raffles": "Arpajaiset", + "Permission:Draw": "Piirrä", + "Menu:Raffles": "Arpajaiset", + "RaffleIsNotDrawable": "Arvonta ei ole arpattavissa", + "WinnerCountMustBeGreaterThanZero": "Voittajien määrän on oltava suurempi kuin nolla", + "FullDescription": "Täysi kuvaus", + "VisibilityStartDate": "Näkyvyyden aloituspäivämäärä", + "VisibilityEndDate": "Näkyvyyden lopetuspäivämäärä", + "RaffleDate": "Arvontapäivä", + "SubscriptionCode": "Tilauskoodi", + "GroupCode": "Ryhmäkoodi", + "MaxWinnerCount": "Voittajien enimmäismäärä", + "ReDraw": "Piirrä uudelleen", + "EditRaffle": "Muokkaa arpajaisia", + "Raffles": "Arpajaiset", + "CreateARaffle": "Luo arvonta", + "Draw": "Piirrä", + "Enum:RaffleStatus:0": "Aktiivinen", + "Enum:RaffleStatus:1": "Seuraava", + "Enum:RaffleStatus:2": "Mennyt", + "DrawDone": "Piirustus Valmis", + "HomePageShowType": "Kotisivu Näytä tyyppi", + "None": "Ei mitään", + "Card": "Kortti", + "Horizontal": "Vaakasuora", + "Winners": "Voittajat", + "StartDateMustBeLessThanEndDate": "Aloituspäivän on oltava lopetuspäivää pienempi", + "VisibilityStartDateMustBeLessThanVisibilityEndDate": "Näkyvyyden aloituspäivän on oltava pienempi kuin näkyvyyden lopetuspäivämäärä", + "StartDateMustBeGreaterThanVisibilityStartDate": "Aloituspäivän on oltava suurempi kuin näkyvyyden alkamispäivä", + "EndDateMustBeLessThanVisibilityEndDate": "Päättymispäivän on oltava pienempi kuin näkyvyyden lopetuspäivä", + "DrawnDone": "Piirretty Valmis", + "AddColor": "Lisää väriä", + "Colors": "värit", + "RemoveColor": "Poista väri", + "MaxColorCountWarning": "Voit lisätä enintään {0} väriä", + "MinColorCountWarning": "Sinun on lisättävä vähintään {0} väriä", + "RaffleDeletionConfirmationMessage": "Haluatko varmasti poistaa tämän arvonnan?", + "CreateRaffle": "Luo arpajaiset", + "RemoveImage": "Poista kuva", + "SuccessfullySaved": "Tallennettu onnistuneesti", + "Menu:CommunityTalks": "Yhteisön keskustelut", + "Menu:Conferences": "Konferenssit", + "Menu:OtherLiveEvents": "Muut live-tapahtumat", + "Menu:SponsoredConferences": "Sponsoroidut konferenssit", + "Logo": "Logo", + "Slug": "Etana", + "CompanyUrl": "Yrityksen URL-osoite", + "TalkTitle": "Keskustelun otsikko", + "AbstractTopic": "Abstrakti aihe", + "Bio": "Bio", + "LinkedIn": "LinkedIn", + "Github": "Github", + "Twitch": "Nykiä", + "Youtube": "Youtube", + "Twitter": "Viserrys", + "PersonalWebsite": "Henkilökohtainen verkkosivusto", + "VideoId": "Videon tunnus", + "Order": "Tilaus", + "Image1x1": "Kuva 1x1", + "Image16x9": "Kuva 16x9", + "Banner": "Banneri", + "Speaker": "Kaiutin", + "SessionDate": "Istunnon päivämäärä", + "AddSession": "Lisää istunto", + "AddSponsor": "Lisää sponsori", + "SponsorLogo": "Sponsorin logo", + "RegistrationUrl": "Rekisteröinnin URL-osoite" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/fr.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/fr.json index 075992d7c7..e22b86d89f 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/fr.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/fr.json @@ -220,6 +220,7 @@ "SuccessfullyReIndexAllPosts": "Tous les messages ont été réindexés avec succès.", "Permission:FullSearch": "Recherche en texte intégral", "Menu:CliAnalytics": "Cli Analytics", + "Menu:Reports": "Rapports", "TemplateName": "Nom du modèle", "TemplateVersion": "Version du modèle", "DatabaseProvider": "Fournisseur de base de données", @@ -231,8 +232,10 @@ "UiFramework": "Framework de l'interface utilisateur", "Options": "Options", "CliAnalytics": "Cli Analytics", + "Reports": "Rapports", "Permission:CliAnalyticses": "Analyses Cli", "Permission:CliAnalytics": "Cli Analytics", + "Permission:Reports": "Rapports", "Search": "Rechercher", "ClearFilter": "Effacer le filtre", "LicensePrivateKey": "Clé privée de licence", @@ -316,14 +319,12 @@ "TrialLicenseStatusFilter": "Statut", "TrialLicenseStartDateFilter": "Date de début", "TrialLicenseEndDateFilter": "Date de fin", - "FirsName": "Prénom", + "FirstName": "Prénom", "LastName": "Nom de famille", "StartDate": "Date de début", "EndDate": "Date de fin", "PurchasedDate": "Date d'achat", "OrganizationDetail": "Détails de l'organisation", - "SendActivationMail": "Envoyer un e-mail d'activation", - "ActivationMailSentSuccessfully": "E-mail d'activation envoyé avec succès !", "TrialLicenseStatus": "Statut de la licence d'essai", "TrialLicenseDetail": "Détails de la licence d'essai", "AcceptsMarketingCommunications": "Communications marketing", @@ -337,22 +338,228 @@ "Expired": "Expiré", "TrialLicenseDeletionWarningMessage": "Êtes-vous sûr de vouloir supprimer la licence d'essai ? La licence d'essai, l'organisation, les comptes d'assistance seront supprimés !", "LicenseCategoryFilter": "Catégorie de licence", - "Volo.AbpIo.Commercial:030000": "Vous avez déjà utilisé votre période d'essai.", - "Volo.AbpIo.Commercial:030001": "Ce nom d'organisation existe déjà.", - "Volo.AbpIo.Commercial:030002": "Une fois activée, la licence d'essai ne peut pas être définie sur demandée !", - "Volo.AbpIo.Commercial:030003": "Ce statut n'existe pas !", - "Volo.AbpIo.Commercial:030004": "L'état n'a pas pu être modifié en raison d'une erreur inattendue !", - "Volo.AbpIo.Commercial:030005": "Les dates de début et de fin peuvent être mises à jour lorsque la licence d'essai est à l'état -activé- !", - "Volo.AbpIo.Commercial:030006": "La date de fin doit toujours être postérieure à la date de début !", - "Volo.AbpIo.Commercial:030007": "Cette licence d'essai a déjà été activée une fois !", - "Volo.AbpIo.Commercial:030008": "La date d'achat ne peut être définie que lorsque le statut est Acheté !", - "Volo.AbpIo.Commercial:030009": "Utilisateur non trouvé!", - "Volo.AbpIo.Commercial:030010": "Pour acheter la licence d'essai, vous devez d'abord activer votre licence d'essai !", - "Volo.AbpIo.Commercial:030011": "Vous ne pouvez pas supprimer une licence d'essai lorsqu'elle est achetée !", + "Permission:SendWelcomeEmail": "Envoyer un e-mail de bienvenue", + "SendWelcomeEmail": "Envoyer un e-mail de bienvenue", + "SendWelcomeEmailWarningMessage": "Êtes-vous sûr de vouloir envoyer un e-mail de bienvenue aux membres de l'organisation ?", + "SendWelcomeEmailSuccessMessage": "E-mail de bienvenue envoyé avec succès !", + "Activate": "Activer", + "ActivateTrialLicenseWarningMessage": "Lorsque vous activez une licence d'essai, un e-mail de bienvenue sera envoyé à l'utilisateur. Voulez-vous l'activer ?", + "ActivateTrialLicenseSuccessMessage": "Activé avec succès et e-mail de bienvenue envoyé aux membres de l'organisation.", + "PaymentRequestId": "Identifiant de la demande de paiement", + "AdditionalDeveloperCount": "Nombre de développeurs supplémentaires", + "LicensePrice": "Prix de la licence", + "PurchaseDate": "Date d'achat", + "IsAbpBookDownloaded": "Le livre Mastering ABP téléchargé ?", + "IsMasteringAbpBookDownloadEnabled": "Téléchargement du livre ABP activé", + "Permission:Accounting:CustomPaymentLinkGenerator": "Lien de paiement personnalisé", + "CustomPaymentLink": "Lien de paiement personnalisé", + "Menu:CustomPaymentLink": "Lien de paiement personnalisé", + "Amount": "Montant", + "GenerateCustomPaymentLink": "Générer un lien de paiement personnalisé", + "GeneratedPaymentLink": "Lien de paiement généré", + "CopyText": "Copier le texte", + "Permission:CommunityEvents": "Événements", + "Menu:Events": "Événements", + "Events": "Événements", + "EventType": "Type d'événement", + "Number": "Nombre", + "RegistrationURL": "URL d'inscription", + "URL": "URL", + "EventDeletionConfirmationMessage": "Êtes-vous sûr de vouloir supprimer cet événement ?", + "Enum:EventType:0": "Discussions communautaires", + "CreateAnEvent": "Créer un événement", + "Permission:CommunitySpeakers": "Haut-parleurs", + "CreateASpeaker": "Créer un haut-parleur", + "Speakers": "Haut-parleurs", + "Image": "Image", + "GithubURL": "URL GitHub", + "SpeakerDeletionConfirmationMessage": "Êtes-vous sûr de vouloir supprimer cette enceinte ?", + "Menu:Speakers": "Haut-parleurs", + "ChooseSpeakerImage": "Choisissez une image de haut-parleur...", + "SpeakerImage": "Image du haut-parleur", + "AddSpeaker": "Ajouter un haut-parleur", + "ShowPurchaseItemsOfOrganizations": "Acheter des articles", + "Enum:OrganizationPurchaseState:0": "Non livrés", + "Enum:OrganizationPurchaseState:1": "Livré", + "PurchaseItems": "Acheter des articles", + "SuccessfullyUpdated": "Mise à jour réussie", + "SuccessfullyAdded": "Ajouté avec succès", + "PurchaseState": "Statut d'achat", + "ShowBetweenDayCount": "Afficher entre les jours", + "PurchaseOrder": "Bon de commande", + "ShowCreateInvoiceOfOrganization": "Créer une facture", + "ShowCreateQuotationOfOrganization": "Créer un devis", + "BookDiscounts": "Remises sur les livres", + "Permission:BookDiscount": "Remise sur les livres", + "Menu:BookDiscounts": "Remises sur les livres", + "BookType": "Type de livre", + "PurchasePlatform": "Plateforme d'achat", + "StartTime": "Heure de début", + "EndTime": "Heure de fin", + "CreateABookDiscount": "Créer une remise sur un livre", + "BookDiscountDeletionConfirmationMessage": "Êtes-vous sûr de vouloir supprimer cette réduction sur les livres ?", + "CustomPaymentFlexSwitchDescription": "Avec permis", + "AllowFeatureUpgradeOnLicenseExpire": "Autoriser la mise à niveau des fonctionnalités à l'expiration de la licence", + "Deleted{0}": "[Supprimé {0}]", + "Tags": "Mots clés", + "SetTagsInfo": "Les balises doivent être séparées par des virgules. Par exemple : CSharp, Entity Framework", + "RejectTrialLicenseWarningMessage": "Êtes-vous sûr de vouloir rejeter cette demande de licence d'essai ?", + "ExportToExcel": "Exporter vers Excel", + "OverallTotalPrice": "Prix total global", + "OverallDiscountPrice": "Prix réduit global", + "OverallDiscountText": "Texte de remise globale", + "SelectReport": "- Sélectionnez Rapport -", + "NoDataAvailable": "Pas de données disponibles", + "StatisticsOfCachedContents": "Statistiques du contenu du package NuGet mis en cache pour nuget.abp.io", + "Compact": "Compact", + "EditSettings": "Modifier les paramètres", + "CurrentEstimatedSize": "Taille estimée actuelle", + "CurrentEntryCount": "Nombre d'entrées actuel", + "TotalHits": "Nombre total de visites", + "TotalMisses": "Nombre total de ratés", + "NoResponseFrom": "Aucune réponse de", + "ContentCacheSlidingExpirationByDay": "Expiration glissante du cache de contenu par jour", + "MaxDaysForCaching": "Nombre maximum de jours pour la mise en cache", + "Enabled": "Activé", + "Menu:NugetPackagesContentCache": "Cache NuGet", + "NugetPackagesContentCache": "Cache de contenu NuGet", + "SlidingExpritionByDayInfo": "Obtient ou définit la durée pendant laquelle une entrée du cache peut rester inactive (par exemple, sans accès) avant d'être supprimée. Cela ne prolongera pas la durée de vie de l’entrée au-delà de l’expiration absolue.", + "MaxDaysForCachingInfo": "Obtient ou définit une heure d'expiration absolue, par rapport au moment présent.", + "CurrentEstimatedSizeInfo": "Indique une somme estimée de la taille du contenu de tous les packages NuGet actuellement dans le cache mémoire", + "CurrentEntryCountInfo": "Indique le nombre d'instances actuellement dans le cache mémoire.", + "TotalHitsInfo": "Indique le nombre total d'échecs de cache. Un accès au cache se produit lorsqu'un fichier est demandé à un cache et que le cache est capable de répondre à cette demande.", + "TotalMissesInfo": "Indique le nombre total d'accès au cache. Un échec de cache se produit lorsque le cache ne contient pas le contenu demandé.", + "Permission:VersionHistory": "Historique des versions", + "Caches": "Caches", + "VersionHistories": "Historique des versions", + "Version": "Version", + "PublishDate": "Date de publication", + "IsStableVersion": "Version stable", + "IsActive": "Actif", + "NewVersion": "Nouvelle version", + "VersionHistoryDeletionConfirmationMessage": "Êtes-vous sûr de vouloir supprimer cette version ?", + "CreateAbpConsultantLogoInfo": "Taille maximale du fichier : 1 Mo
Types de fichiers pris en charge : jpg, jpeg, png, SVG, WebP", + "UrlCode": "Code URL", + "Clear": "Clair", + "Permission:AbpConsultant": "Consultant en PAA", + "Menu:AbpConsultants": "Consultants en PAA", + "CreateAbpConsultant": "Créer un consultant ABP", + "UrlCodeIsNotAvailable": "Le code URL est utilisé par un autre consultant ABP.", + "AbpConsultants": "Consultants en PAA", + "AbpConsultant": "Consultant en PAA", + "AbpConsultantEdit": "Modifier le consultant ABP", + "AbpConsultantCreate": "Créer un consultant ABP", + "WhoWeAreItem": "Qui nous sommes", + "FieldIsRequired": "{0} est requis.", + "FieldIsNotValid": "{0} n'est pas valide.", + "InterestedLicenseType": "Type de licence intéressé", "MoveWaitList": "Passer à la liste d'attente", "CommunityLinkTitle": "Ouvert sur le site communautaire", "CommunityLink": "Lien communautaire", "ReloadFromSource": "Recharger à partir de la source", - "ReloadFromSourceConfirmationMessage": "Ce message sera actualisé à partir de \"{0}\". Voulez-vous continuer?" + "ReloadFromSourceConfirmationMessage": "Ce message sera actualisé à partir de \"{0}\". Voulez-vous continuer?", + "UnitPrice": "Prix unitaire", + "OverallDiscountAmount": "Montant global de la remise", + "DiscountAmount": "Montant de la remise", + "FullChangeHistory": "Historique complet des modifications", + "Permission:RefreshReleaseLogs": "Actualiser les journaux de version", + "ReleaseLogs": "Journaux de version", + "AuthorUserName": "Nom d'utilisateur de l'auteur", + "Type": "Taper", + "TotalDiscount": "Remise totale", + "SubTotal": "Sous-total", + "TotalDue": "Total dû", + "QuotationNo": "Numéro de devis", + "ValidTill": "Valable jusqu'au", + "QuotationNote": "Note de citation", + "QuotationTemplate.Address:": "Adresse:", + "QuotationTemplate.VATNo:": "Numéro de TVA:", + "QuotationTemplate.Phone:": "Téléphone:", + "QuotationTemplate.E-mail:": "E-mail:", + "QuotationTemplate.Quotation": "Citation", + "QuotationTemplate.To": "À", + "QuotationTemplate.Details": "Détails", + "QuotationTemplate.QuotationNo:": "Citation #:", + "QuotationTemplate.IssueDate:": "Date d'émission:", + "QuotationTemplate.ValidTill:": "Valable jusqu'au:", + "QuotationTemplate.ValidDays": "{0} jours", + "QuotationTemplate.Description": "Description", + "QuotationTemplate.UnitPrice": "Prix unitaire", + "QuotationTemplate.Qty": "Quantité", + "QuotationTemplate.Discount": "Rabais", + "QuotationTemplate.Total": "Total", + "QuotationTemplate.Notes": "Remarques", + "QuotationTemplate.SubTotal:": "Sous Total :", + "QuotationTemplate.Tax/VAT:": "Taxe / TVA (%{0}) :", + "QuotationTemplate.TotalDiscount:": "Remise totale :", + "QuotationTemplate.TOTALDUE:": "TOTAL DÛ :", + "QuotationTemplate.BankAccount": "Les informations de notre compte bancaire peuvent être trouvées à {0}", + "Permission:Raffles": "Tombola", + "Permission:Draw": "Dessiner", + "Menu:Raffles": "Tirages au sort", + "RaffleIsNotDrawable": "La tombola ne peut pas être tirée au sort", + "WinnerCountMustBeGreaterThanZero": "Le nombre de gagnants doit être supérieur à zéro", + "FullDescription": "Description complète", + "VisibilityStartDate": "Date de début de visibilité", + "VisibilityEndDate": "Date de fin de visibilité", + "RaffleDate": "Date du tirage au sort", + "SubscriptionCode": "Code d'abonnement", + "GroupCode": "Code de groupe", + "MaxWinnerCount": "Nombre maximum de gagnants", + "ReDraw": "Redessiner", + "EditRaffle": "Modifier le tirage au sort", + "Raffles": "Tirages au sort", + "CreateARaffle": "Créer un tirage au sort", + "Draw": "Dessiner", + "Enum:RaffleStatus:0": "Actif", + "Enum:RaffleStatus:1": "Suivant", + "Enum:RaffleStatus:2": "Passé", + "DrawDone": "Tirage terminé", + "HomePageShowType": "Type d'affichage de la page d'accueil", + "None": "Aucun", + "Card": "Carte", + "Horizontal": "Horizontal", + "Winners": "Gagnants", + "StartDateMustBeLessThanEndDate": "La date de début doit être inférieure à la date de fin", + "VisibilityStartDateMustBeLessThanVisibilityEndDate": "La date de début de visibilité doit être inférieure à la date de fin de visibilité", + "StartDateMustBeGreaterThanVisibilityStartDate": "La date de début doit être supérieure à la date de début de la visibilité", + "EndDateMustBeLessThanVisibilityEndDate": "La date de fin doit être inférieure à la date de fin de visibilité", + "DrawnDone": "Dessiné Terminé", + "AddColor": "Ajouter de la couleur", + "Colors": "Couleurs", + "RemoveColor": "Supprimer la couleur", + "MaxColorCountWarning": "Vous pouvez ajouter jusqu'à {0} couleurs", + "MinColorCountWarning": "Vous devez ajouter au moins {0} couleurs", + "RaffleDeletionConfirmationMessage": "Êtes-vous sûr de vouloir supprimer ce tirage au sort ?", + "CreateRaffle": "Créer un tirage au sort", + "RemoveImage": "Supprimer l'image", + "SuccessfullySaved": "Enregistré avec succès", + "Menu:CommunityTalks": "Discussions communautaires", + "Menu:Conferences": "Conférences", + "Menu:OtherLiveEvents": "Autres événements en direct", + "Menu:SponsoredConferences": "Conférences sponsorisées", + "Logo": "Logo", + "Slug": "Limace", + "CompanyUrl": "URL de l’entreprise", + "TalkTitle": "Titre de la discussion", + "AbstractTopic": "Sujet abstrait", + "Bio": "Biographie", + "LinkedIn": "LinkedIn", + "Github": "GitHub", + "Twitch": "Tic", + "Youtube": "Youtube", + "Twitter": "Twitter", + "PersonalWebsite": "Site Web personnel", + "VideoId": "Identifiant de la vidéo", + "Order": "Commande", + "Image1x1": "Image 1x1", + "Image16x9": "Image 16x9", + "Banner": "Bannière", + "Speaker": "Conférencier", + "SessionDate": "Date de la séance", + "AddSession": "Ajouter une séance", + "AddSponsor": "Ajouter un sponsor", + "SponsorLogo": "Logo du sponsor", + "RegistrationUrl": "URL d'inscription" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/hi.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/hi.json index 01d9a571e1..a0de1d8eef 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/hi.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/hi.json @@ -220,6 +220,7 @@ "SuccessfullyReIndexAllPosts": "सभी पदों को सफलतापूर्वक रीइंसेक्स किया गया है।", "Permission:FullSearch": "पूरा पाठ खोजें", "Menu:CliAnalytics": "Cli Analytics", + "Menu:Reports": "रिपोर्टों", "TemplateName": "टेम्पलेट नाम", "TemplateVersion": "टेम्पलेट संस्करण", "DatabaseProvider": "डेटाबेस प्रदाता", @@ -231,8 +232,10 @@ "UiFramework": "उई ढांचा", "Options": "विकल्प", "CliAnalytics": "Cli Analytics", + "Reports": "रिपोर्टों", "Permission:CliAnalyticses": "क्ली एनालिटिक्स", "Permission:CliAnalytics": "Cli Analytics", + "Permission:Reports": "रिपोर्टों", "Search": "खोज", "ClearFilter": "स्पष्ट निस्यंदक", "LicensePrivateKey": "लाइसेंस निजी कुंजी", @@ -316,14 +319,12 @@ "TrialLicenseStatusFilter": "स्थिति", "TrialLicenseStartDateFilter": "आरंभ करने की तिथि", "TrialLicenseEndDateFilter": "अंतिम तिथि", - "FirsName": "पहला नाम", + "FirstName": "पहला नाम", "LastName": "उपनाम", "StartDate": "आरंभ करने की तिथि", "EndDate": "अंतिम तिथि", "PurchasedDate": "खरीदी की तारीख", "OrganizationDetail": "संगठन विवरण", - "SendActivationMail": "सक्रियण मेल भेजें", - "ActivationMailSentSuccessfully": "सक्रियण मेल सफलतापूर्वक भेजा गया!", "TrialLicenseStatus": "परीक्षण लाइसेंस की स्थिति", "TrialLicenseDetail": "परीक्षण लाइसेंस विवरण", "AcceptsMarketingCommunications": "विपणन संचार", @@ -337,22 +338,228 @@ "Expired": "समय सीमा समाप्त", "TrialLicenseDeletionWarningMessage": "क्या आप वाकई परीक्षण लाइसेंस हटाना चाहते हैं? परीक्षण लाइसेंस, संगठन, सहायता खाते हटा दिए जाएंगे!", "LicenseCategoryFilter": "लाइसेंस श्रेणी", - "Volo.AbpIo.Commercial:030000": "आप पहले ही अपनी परीक्षण अवधि का उपयोग कर चुके हैं।", - "Volo.AbpIo.Commercial:030001": "इस संगठन का नाम पहले से मौजूद है.", - "Volo.AbpIo.Commercial:030002": "एक बार सक्रिय होने के बाद, परीक्षण लाइसेंस को अनुरोध पर सेट नहीं किया जा सकता है!", - "Volo.AbpIo.Commercial:030003": "ऐसी कोई स्थिति नहीं है!", - "Volo.AbpIo.Commercial:030004": "किसी अनपेक्षित त्रुटि के कारण स्थिति को बदला नहीं जा सका!", - "Volo.AbpIo.Commercial:030005": "परीक्षण लाइसेंस -सक्रिय-स्थिति में होने पर प्रारंभ और समाप्ति तिथि को अद्यतन किया जा सकता है!", - "Volo.AbpIo.Commercial:030006": "समाप्ति तिथि हमेशा प्रारंभ तिथि से बड़ी होनी चाहिए!", - "Volo.AbpIo.Commercial:030007": "यह परीक्षण लाइसेंस पहले ही एक बार सक्रिय किया जा चुका है!", - "Volo.AbpIo.Commercial:030008": "खरीद की तारीख तभी निर्धारित की जा सकती है जब स्थिति खरीदी गई हो!", - "Volo.AbpIo.Commercial:030009": "उपयोगकर्ता नहीं मिला!", - "Volo.AbpIo.Commercial:030010": "परीक्षण लाइसेंस खरीदने के लिए, पहले आपको अपना परीक्षण लाइसेंस सक्रिय करना होगा!", - "Volo.AbpIo.Commercial:030011": "जब आप एक परीक्षण लाइसेंस खरीदा जाता है तो आप उसे हटा नहीं सकते हैं!", + "Permission:SendWelcomeEmail": "स्वागत ईमेल भेजें", + "SendWelcomeEmail": "स्वागत ईमेल भेजें", + "SendWelcomeEmailWarningMessage": "क्या आप वाकई संगठन के सदस्यों को स्वागत ईमेल भेजना चाहते हैं?", + "SendWelcomeEmailSuccessMessage": "स्वागत ईमेल सफलतापूर्वक भेजा गया!", + "Activate": "सक्रिय", + "ActivateTrialLicenseWarningMessage": "जब आप परीक्षण लाइसेंस सक्रिय करते हैं, तो उपयोगकर्ता को एक स्वागत योग्य ई-मेल भेजा जाएगा। क्या आप इसे सक्रिय करना चाहते हैं?", + "ActivateTrialLicenseSuccessMessage": "सफलतापूर्वक सक्रिय किया गया और संगठन के सदस्यों को स्वागत ईमेल भेजा गया।", + "PaymentRequestId": "भुगतान अनुरोध आईडी", + "AdditionalDeveloperCount": "अतिरिक्त डेवलपर गिनती", + "LicensePrice": "लाइसेंस मूल्य", + "PurchaseDate": "खरीद की तारीख", + "IsAbpBookDownloaded": "मास्टरिंग एबीपी बुक डाउनलोड की गई?", + "IsMasteringAbpBookDownloadEnabled": "एबीपी बुक डाउनलोड सक्षम", + "Permission:Accounting:CustomPaymentLinkGenerator": "कस्टम भुगतान लिंक", + "CustomPaymentLink": "कस्टम भुगतान लिंक", + "Menu:CustomPaymentLink": "कस्टम भुगतान लिंक", + "Amount": "मात्रा", + "GenerateCustomPaymentLink": "कस्टम भुगतान लिंक जनरेट करें", + "GeneratedPaymentLink": "जनरेट किया गया भुगतान लिंक", + "CopyText": "पाठ कॉपी करें", + "Permission:CommunityEvents": "आयोजन", + "Menu:Events": "आयोजन", + "Events": "आयोजन", + "EventType": "घटना प्रकार", + "Number": "संख्या", + "RegistrationURL": "पंजीकरण यूआरएल", + "URL": "यूआरएल", + "EventDeletionConfirmationMessage": "निश्चित तौर पर क्या इस घटना को हटाना चाहते हैं?", + "Enum:EventType:0": "सामुदायिक वार्ता", + "CreateAnEvent": "एक इवेंट बनाएं", + "Permission:CommunitySpeakers": "वक्ताओं", + "CreateASpeaker": "एक स्पीकर बनाएं", + "Speakers": "वक्ताओं", + "Image": "छवि", + "GithubURL": "जीथब यूआरएल", + "SpeakerDeletionConfirmationMessage": "क्या आप वाकई इस स्पीकर को हटाना चाहते हैं?", + "Menu:Speakers": "वक्ताओं", + "ChooseSpeakerImage": "एक स्पीकर छवि चुनें...", + "SpeakerImage": "वक्ता छवि", + "AddSpeaker": "स्पीकर जोड़ें", + "ShowPurchaseItemsOfOrganizations": "सामान खरीदें", + "Enum:OrganizationPurchaseState:0": "वितरित नही हुआ", + "Enum:OrganizationPurchaseState:1": "पहुंचा दिया", + "PurchaseItems": "सामान खरीदें", + "SuccessfullyUpdated": "सफलतापूर्वक उत्परिवर्तित", + "SuccessfullyAdded": "सफलतापूर्वक शामिल", + "PurchaseState": "खरीद की स्थिति", + "ShowBetweenDayCount": "दिनों के बीच दिखाएँ", + "PurchaseOrder": "क्रय आदेश", + "ShowCreateInvoiceOfOrganization": "इनवॉयस बनाएँ", + "ShowCreateQuotationOfOrganization": "कोटेशन बनाएं", + "BookDiscounts": "पुस्तक छूट", + "Permission:BookDiscount": "पुस्तक छूट", + "Menu:BookDiscounts": "पुस्तक छूट", + "BookType": "पुस्तक का प्रकार", + "PurchasePlatform": "क्रय मंच", + "StartTime": "समय शुरू", + "EndTime": "अंत समय", + "CreateABookDiscount": "पुस्तक छूट बनाएँ", + "BookDiscountDeletionConfirmationMessage": "क्या आप वाकई इस पुस्तक छूट को हटाना चाहते हैं?", + "CustomPaymentFlexSwitchDescription": "लाइसेंस के साथ", + "AllowFeatureUpgradeOnLicenseExpire": "लाइसेंस समाप्त होने पर फीचर अपग्रेड की अनुमति दें", + "Deleted{0}": "[हटाया गया {0}]", + "Tags": "टैग", + "SetTagsInfo": "टैग को अल्पविराम से अलग किया जाना चाहिए. उदाहरण: सीशार्प, एंटिटी फ्रेमवर्क", + "RejectTrialLicenseWarningMessage": "क्या आप वाकई इस परीक्षण लाइसेंस अनुरोध को अस्वीकार करना चाहते हैं?", + "ExportToExcel": "एक्सेल में निर्यात करें", + "OverallTotalPrice": "कुल मिलाकर कुल कीमत", + "OverallDiscountPrice": "कुल मिलाकर छूट कीमत", + "OverallDiscountText": "समग्र छूट पाठ", + "SelectReport": "- रिपोर्ट चुनें -", + "NoDataAvailable": "कोई डेटा मौजूद नहीं", + "StatisticsOfCachedContents": "nuget.abp.io के लिए कैश्ड NuGet पैकेज सामग्री के आँकड़े", + "Compact": "सघन", + "EditSettings": "विन्यास बदलें", + "CurrentEstimatedSize": "वर्तमान अनुमानित आकार", + "CurrentEntryCount": "वर्तमान प्रवेश संख्या", + "TotalHits": "कुल हिट", + "TotalMisses": "कुल चूकें", + "NoResponseFrom": "की ओर से कोई प्रतिक्रिया नहीं", + "ContentCacheSlidingExpirationByDay": "सामग्री कैश स्लाइडिंग समाप्ति दिन के हिसाब से", + "MaxDaysForCaching": "कैशिंग के लिए अधिकतम दिन", + "Enabled": "सक्रिय", + "Menu:NugetPackagesContentCache": "नुगेट कैश", + "NugetPackagesContentCache": "NuGet सामग्री कैश", + "SlidingExpritionByDayInfo": "प्राप्त करता है या सेट करता है कि कैश प्रविष्टि को हटाए जाने से पहले कितने समय तक निष्क्रिय रखा जा सकता है (उदाहरण के लिए एक्सेस नहीं किया जा सकता)। यह प्रवेश जीवनकाल को पूर्ण समाप्ति से आगे नहीं बढ़ाएगा।", + "MaxDaysForCachingInfo": "अब के सापेक्ष पूर्ण समाप्ति समय प्राप्त या निर्धारित करता है।", + "CurrentEstimatedSizeInfo": "वर्तमान में मेमोरी कैश में मौजूद सभी NuGet पैकेजों के सामग्री आकार का अनुमानित योग दर्शाता है", + "CurrentEntryCountInfo": "मेमोरी कैश में वर्तमान में इंस्टेंस की संख्या को इंगित करता है।", + "TotalHitsInfo": "कैश छूटने की कुल संख्या दर्शाता है. कैश हिट तब होता है जब कैश से किसी फ़ाइल का अनुरोध किया जाता है और कैश उस अनुरोध को पूरा करने में सक्षम होता है।", + "TotalMissesInfo": "कैश हिट की कुल संख्या दर्शाता है. कैश मिस तब होता है जब कैश में अनुरोधित सामग्री नहीं होती है।", + "Permission:VersionHistory": "संस्करण इतिहास", + "Caches": "कैश", + "VersionHistories": "संस्करण इतिहास", + "Version": "संस्करण", + "PublishDate": "प्रकाशित तिथि", + "IsStableVersion": "स्थिर संस्करण", + "IsActive": "सक्रिय", + "NewVersion": "नया संस्करण", + "VersionHistoryDeletionConfirmationMessage": "क्या आप वाकई इस संस्करण को हटाना चाहते हैं?", + "CreateAbpConsultantLogoInfo": "अधिकतम फ़ाइल आकार: 1एमबी
समर्थित फ़ाइल प्रकार: जेपीजी, जेपीईजी, पीएनजी, एसवीजी, वेबपी", + "UrlCode": "यूआरएल कोड", + "Clear": "स्पष्ट", + "Permission:AbpConsultant": "एबीपी सलाहकार", + "Menu:AbpConsultants": "एबीपी सलाहकार", + "CreateAbpConsultant": "एबीपी सलाहकार बनाएं", + "UrlCodeIsNotAvailable": "यूआरएल कोड का उपयोग किसी अन्य एबीपी सलाहकार द्वारा किया जाता है।", + "AbpConsultants": "एबीपी सलाहकार", + "AbpConsultant": "एबीपी सलाहकार", + "AbpConsultantEdit": "एबीपी सलाहकार संपादित करें", + "AbpConsultantCreate": "एबीपी सलाहकार बनाएं", + "WhoWeAreItem": "हम कौन हैं आइटम", + "FieldIsRequired": "{0} आवश्यक है.", + "FieldIsNotValid": "{0} मान्य नहीं है.", + "InterestedLicenseType": "इच्छुक लाइसेंस प्रकार", "MoveWaitList": "प्रतीक्षा सूची में ले जाएँ\n", "CommunityLinkTitle": "सामुदायिक वेबसाइट पर खोलें", "CommunityLink": "सामुदायिक लिंक", "ReloadFromSource": "स्रोत से पुनः लोड करें", - "ReloadFromSourceConfirmationMessage": "यह पोस्ट \"{0}\" से ताज़ा की जाएगी। क्या आप जारी रखना चाहते हैं?" + "ReloadFromSourceConfirmationMessage": "यह पोस्ट \"{0}\" से ताज़ा की जाएगी। क्या आप जारी रखना चाहते हैं?", + "UnitPrice": "यूनिट मूल्य", + "OverallDiscountAmount": "कुल छूट राशि", + "DiscountAmount": "छूट राशि", + "FullChangeHistory": "पूर्ण परिवर्तन इतिहास", + "Permission:RefreshReleaseLogs": "रिलीज़ लॉग ताज़ा करें", + "ReleaseLogs": "लॉग जारी करें", + "AuthorUserName": "लेखक उपयोगकर्ता नाम", + "Type": "प्रकार", + "TotalDiscount": "कुल छूट", + "SubTotal": "उप योग", + "TotalDue": "कुल बचे", + "QuotationNo": "संविदा दर संख्या", + "ValidTill": "तक मान्य", + "QuotationNote": "उद्धरण नोट", + "QuotationTemplate.Address:": "पता:", + "QuotationTemplate.VATNo:": "वैट नंबर:", + "QuotationTemplate.Phone:": "फ़ोन:", + "QuotationTemplate.E-mail:": "ईमेल:", + "QuotationTemplate.Quotation": "उद्धरण", + "QuotationTemplate.To": "को", + "QuotationTemplate.Details": "विवरण", + "QuotationTemplate.QuotationNo:": "उद्धरण #:", + "QuotationTemplate.IssueDate:": "जारी करने की तिथि:", + "QuotationTemplate.ValidTill:": "तक मान्य:", + "QuotationTemplate.ValidDays": "{0} दिन", + "QuotationTemplate.Description": "विवरण", + "QuotationTemplate.UnitPrice": "यूनिट मूल्य", + "QuotationTemplate.Qty": "मात्रा", + "QuotationTemplate.Discount": "छूट", + "QuotationTemplate.Total": "कुल", + "QuotationTemplate.Notes": "टिप्पणियाँ", + "QuotationTemplate.SubTotal:": "उप योग :", + "QuotationTemplate.Tax/VAT:": "कर/वैट (%{0}):", + "QuotationTemplate.TotalDiscount:": "कुल छूट :", + "QuotationTemplate.TOTALDUE:": "कुल बचे :", + "QuotationTemplate.BankAccount": "हमारे बैंक खाते की जानकारी {0} पर पाई जा सकती है", + "Permission:Raffles": "भाग्य क्रीड़ा", + "Permission:Draw": "खींचना", + "Menu:Raffles": "रैफल्स", + "RaffleIsNotDrawable": "रैफ़ल निकालने योग्य नहीं है", + "WinnerCountMustBeGreaterThanZero": "विजेताओं की संख्या शून्य से अधिक होनी चाहिए", + "FullDescription": "पूर्ण विवरण", + "VisibilityStartDate": "दृश्यता आरंभ तिथि", + "VisibilityEndDate": "दृश्यता समाप्ति तिथि", + "RaffleDate": "रैफ़ल तिथि", + "SubscriptionCode": "सदस्यता कोड", + "GroupCode": "समूह कोड", + "MaxWinnerCount": "अधिकतम विजेता गणना", + "ReDraw": "पुनः ड्रा करें", + "EditRaffle": "रैफ़ल संपादित करें", + "Raffles": "रैफल्स", + "CreateARaffle": "एक रैफ़ल बनाएँ", + "Draw": "खींचना", + "Enum:RaffleStatus:0": "सक्रिय", + "Enum:RaffleStatus:1": "अगला", + "Enum:RaffleStatus:2": "अतीत", + "DrawDone": "ड्रा हो गया", + "HomePageShowType": "होम पेज शो प्रकार", + "None": "कोई नहीं", + "Card": "कार्ड", + "Horizontal": "क्षैतिज", + "Winners": "विजेताओं", + "StartDateMustBeLessThanEndDate": "आरंभ तिथि समाप्ति तिथि से कम होनी चाहिए", + "VisibilityStartDateMustBeLessThanVisibilityEndDate": "दृश्यता आरंभ तिथि दृश्यता समाप्ति तिथि से कम होनी चाहिए", + "StartDateMustBeGreaterThanVisibilityStartDate": "प्रारंभ दिनांक दृश्यता प्रारंभ दिनांक से अधिक होनी चाहिए", + "EndDateMustBeLessThanVisibilityEndDate": "समाप्ति तिथि दृश्यता समाप्ति तिथि से कम होनी चाहिए", + "DrawnDone": "खींचा गया", + "AddColor": "रंग जोड़ें", + "Colors": "रंग की", + "RemoveColor": "रंग हटाएँ", + "MaxColorCountWarning": "आप अधिकतम {0} रंग जोड़ सकते हैं", + "MinColorCountWarning": "आपको कम से कम {0} रंग जोड़ने होंगे", + "RaffleDeletionConfirmationMessage": "क्या आप वाकई इस रैफ़ल को हटाना चाहते हैं?", + "CreateRaffle": "रैफ़ल बनाएं", + "RemoveImage": "छवि हटाएँ", + "SuccessfullySaved": "सफलतापूर्वक संचित कर लिया गया है", + "Menu:CommunityTalks": "सामुदायिक वार्ता", + "Menu:Conferences": "सम्मेलन", + "Menu:OtherLiveEvents": "अन्य लाइव इवेंट", + "Menu:SponsoredConferences": "प्रायोजित सम्मेलन", + "Logo": "प्रतीक चिन्ह", + "Slug": "काउंटर", + "CompanyUrl": "कंपनी यूआरएल", + "TalkTitle": "वार्ता शीर्षक", + "AbstractTopic": "सार विषय", + "Bio": "जैव", + "LinkedIn": "Linkedin", + "Github": "Github", + "Twitch": "ऐंठन", + "Youtube": "यूट्यूब", + "Twitter": "ट्विटर", + "PersonalWebsite": "व्यक्तिगत वेबसाइट", + "VideoId": "वीडियो आईडी", + "Order": "आदेश", + "Image1x1": "छवि 1x1", + "Image16x9": "छवि 16x9", + "Banner": "बैनर", + "Speaker": "वक्ता", + "SessionDate": "सत्र दिनांक", + "AddSession": "सत्र जोड़ें", + "AddSponsor": "प्रायोजक जोड़ें", + "SponsorLogo": "प्रायोजक लोगो", + "RegistrationUrl": "पंजीकरण यूआरएल" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/hr.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/hr.json new file mode 100644 index 0000000000..f8e5421db9 --- /dev/null +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/hr.json @@ -0,0 +1,565 @@ +{ + "culture": "hr", + "texts": { + "Permission:Organizations": "organizacije", + "Permission:Manage": "Upravljanje organizacijama", + "Permission:DiscountRequests": "Zahtjevi za popust", + "Permission:DiscountManage": "Upravljanje zahtjevima za popust", + "Permission:Disable": "Onemogući", + "Permission:Enable": "Omogućiti", + "Permission:EnableSendEmail": "Omogućite slanje e-pošte", + "Permission:SendEmail": "Pošalji e-mail", + "Permission:NpmPackages": "NPM paketi", + "Permission:NugetPackages": "Nuget paketi", + "Permission:Maintenance": "Održavanje", + "Permission:Maintain": "Održavati", + "Permission:ClearCaches": "Očisti predmemorije", + "Permission:Modules": "Moduli", + "Permission:Packages": "Paketi", + "Permission:Edit": "Uredi", + "Permission:Delete": "Izbrisati", + "Permission:Create": "Stvoriti", + "Permission:Accounting": "Računovodstvo", + "Permission:Accounting:Quotation": "Citat", + "Permission:Accounting:Invoice": "Dostavnica", + "Menu:Organizations": "organizacije", + "Menu:Accounting": "Računovodstvo", + "Menu:Packages": "Paketi", + "Menu:DiscountRequests": "Zahtjevi za popust", + "NpmPackageDeletionWarningMessage": "Ovaj NPM paket bit će izbrisan. Potvrđujete li to?", + "NugetPackageDeletionWarningMessage": "Ovaj Nuget paket bit će izbrisan. Potvrđujete li to?", + "ModuleDeletionWarningMessage": "Ovaj će modul biti izbrisan. Potvrđujete li to?", + "Name": "Ime", + "DisplayName": "Ime za prikaz", + "ShortDescription": "Kratki opis", + "NameFilter": "Ime", + "CreationTime": "Vrijeme stvaranja", + "IsPro": "Je li profesionalac", + "IsFreeToActiveLicenseOwners": "Besplatno za vlasnike licenci", + "ShowOnModuleList": "Prikaži na popisu modula", + "EfCoreConfigureMethodName": "Konfigurirajte naziv metode", + "IsProFilter": "Je li profesionalac", + "ApplicationType": "Vrsta aplikacije", + "Target": "Cilj", + "TargetFilter": "Cilj", + "ModuleClass": "Modul klase", + "NugetPackageTarget.DomainShared": "Dijeljena domena", + "NugetPackageTarget.Domain": "Domena", + "NugetPackageTarget.Application": "Primjena", + "NugetPackageTarget.ApplicationContracts": "Prijavni ugovori", + "NugetPackageTarget.HttpApi": "Http API", + "NugetPackageTarget.HttpApiClient": "Http API klijent", + "NugetPackageTarget.Web": "mreža", + "NugetPackageTarget.EntityFrameworkCore": "DeleteAllEntityFramework Core", + "NugetPackageTarget.MongoDB": "MongoDB", + "Edit": "Uredi", + "Delete": "Izbrisati", + "Refresh": "Osvježiti", + "NpmPackages": "NPM paketi", + "NugetPackages": "Nuget paketi", + "NpmPackageCount": "Broj NPM paketa", + "NugetPackageCount": "Broj paketa Nuget", + "Module": "Moduli", + "ModuleInfo": "Informacije o modulu", + "CreateANpmPackage": "Stvorite NPM paket", + "CreateAModule": "Izradite modul", + "CreateANugetPackage": "Stvorite Nuget paket", + "AddNew": "Dodaj novi", + "PackageAlreadyExist{0}": "Paket "{0}" je već dodan.", + "ModuleAlreadyExist{0}": "Modul "{0}" već je dodan.", + "ClearCache": "Očisti predmemoriju", + "SuccessfullyCleared": "Uspješno izbrisano", + "Menu:NpmPackages": "NPM paketi", + "Menu:Modules": "Moduli", + "Menu:Maintenance": "Održavanje", + "Menu:NugetPackages": "Nuget paketi", + "CreateAnOrganization": "Stvorite organizaciju", + "Organizations": "organizacije", + "LongName": "Dugo ime", + "LicenseType": "Vrsta licence", + "MissingLicenseTypeField": "Polje vrste licence je obavezno!", + "LicenseStartTime": "Vrijeme početka licence", + "LicenseEndTime": "Vrijeme završetka licence", + "AllowedDeveloperCount": "Dopušteni broj programera", + "UserNameOrEmailAddress": "Korisničko ime ili email adresa", + "AddOwner": "Dodaj vlasnika", + "UserName": "Korisničko ime", + "Email": "E-mail", + "Developers": "Programeri", + "AddDeveloper": "Dodaj programera", + "Create": "Stvoriti", + "UserNotFound": "Korisnik nije pronađen", + "{0}WillBeRemovedFromDevelopers": "{0} Bit će uklonjen iz programera, potvrđujete li?", + "{0}WillBeRemovedFromOwners": "{0} Bit će uklonjen od vlasnika, potvrđujete li?", + "{0}WillBeRemovedFromMembers": "{0} Bit će uklonjen iz članova, potvrđujete li?", + "Computers": "Računala", + "UniqueComputerId": "Jedinstveni ID računala", + "LastSeenDate": "Datum posljednjeg viđenja", + "{0}Computer{1}WillBeRemovedFromRecords": "Računalo korisnika {0} ({1}) bit će uklonjeno iz zapisa", + "OrganizationDeletionWarningMessage": "Organizacija će biti izbrisana", + "DeletingLastOwnerWarningMessage": "Organizacija mora imati barem jednog vlasnika! Stoga ne možete ukloniti ovog vlasnika", + "This{0}AlreadyExistInThisOrganization": "Ovaj {0} već postoji u ovoj organizaciji", + "AreYouSureYouWantToDeleteAllComputers": "Jeste li sigurni da želite izbrisati sva računala?", + "DeleteAll": "Izbrisati sve", + "DoYouWantToCreateNewUser": "Želite li stvoriti novog korisnika?", + "MasterModules": "Glavni moduli", + "OrganizationName": "Naziv organizacije", + "CreationDate": "Datum stvaranja", + "LicenseStartDate": "Datum početka licence", + "LicenseEndDate": "Datum završetka licence", + "OrganizationNamePlaceholder": "Naziv organizacije...", + "TotalQuestionCountPlaceholder": "Ukupan broj pitanja...", + "RemainingQuestionCountPlaceholder": "Broj preostalih pitanja...", + "LicenseTypePlaceholder": "Vrsta licence...", + "CreationDatePlaceholder": "Datum stvaranja...", + "LicenseStartDatePlaceholder": "Datum početka licence...", + "LicenseEndDatePlaceholder": "Datum završetka licence...", + "UsernameOrEmail": "Korisničko ime ili email", + "UsernameOrEmailPlaceholder": "Korisničko ime ili email...", + "Member": "Član", + "PurchaseOrderNo": "Narudžbenica br", + "QuotationDate": "Datum ponude", + "CompanyName": "Naziv tvrtke", + "CompanyAddress": "Adresa tvrtke", + "Price": "Cijena", + "DiscountText": "Tekst popusta", + "DiscountQuantity": "Popust na količinu", + "DiscountPrice": "Akcijska cijena", + "Quotation": "Citat", + "ExtraText": "Dodatni tekst", + "ExtraAmount": "Dodatni iznos", + "DownloadQuotation": "Preuzmi ponudu", + "Invoice": "Dostavnica", + "TaxNumber": "Porezni broj", + "InvoiceNumber": "Broj fakture", + "InvoiceDate": "Datum dostavnice", + "InvoiceNote": "Napomena o fakturi", + "Quantity": "Količina", + "AddProduct": "Dodaj proizvod", + "AddProductWarning": "Morate dodati proizvod!", + "TotalPrice": "Ukupna cijena", + "Generate": "Generirati", + "MissingQuantityField": "Polje za količinu je obavezno!", + "MissingPriceField": "Polje Cijena je obavezno!", + "CodeUsageStatus": "Status", + "Country": "Zemlja", + "DeveloperCount": "Broj programera", + "RequestCode": "Šifra zahtjeva", + "WebSite": "Web stranica", + "GithubUsername": "Github korisničko ime", + "PhoneNumber": "Broj telefona", + "ProjectDescription": "Opis projekta", + "Referrer": "Preporuka", + "DiscountRequests": "Zahtjev za popust", + "Copylink": "Kopiraj link", + "Disable": "Onemogući", + "Enable": "Omogućiti", + "EnableSendEmail": "Omogućite slanje e-pošte", + "SendEmail": "Pošalji e-mail", + "SuccessfullyDisabled": "Uspješno onemogućeno", + "SuccessfullyEnabled": "Uspješno omogućeno", + "EmailSent": "E-mail poslan", + "SuccessfullySent": "Uspješno poslano", + "SuccessfullyDeleted": "Uspješno izbrisano", + "DiscountRequestDeletionWarningMessage": "Zahtjev za popust bit će izbrisan", + "BusinessType": "Poslovni tip", + "TotalQuestionCount": "Ukupan broj pitanja", + "RemainingQuestionCount": "Broj preostalih pitanja", + "TotalQuestionMustBeGreaterWarningMessage": "TotalQuestionCount mora biti veći od RemainingQuestionCount!", + "QuestionCountsMustBeGreaterThanZero": "TotalQuestionCount i RemainingQuestionCount moraju biti nula ili veći od nule!", + "UnlimitedQuestionCount": "Neograničen broj pitanja", + "Notes": "Bilješke", + "Menu:Community": "Zajednica", + "Menu:Posts": "Postovi", + "Wait": "Čekati", + "Approve": "Odobriti", + "Reject": "Odbiti", + "Details": "pojedinosti", + "Url": "Url", + "Title": "Titula", + "ContentSource": "Izvor sadržaja", + "Status": "Status", + "ReadPost": "Pročitaj post", + "PostHasBeenWaiting": "Post je čekao", + "PostHasBeenApproved": "Post je odobren", + "PostHasBeenRejected": "Post je odbijen", + "Permission:Community": "Zajednica", + "Permission:CommunityPost": "Post", + "Link": "Veza", + "Enum:ContentSource:0": "Github", + "Enum:ContentSource:1": "Vanjski", + "Enum:Status:0": "Čekanje", + "Enum:Status:1": "Odbijen", + "Enum:Status:2": "Odobreno", + "Summary": "Sažetak", + "AuthorName": "Ime autora", + "CoverImage": "Naslovna slika", + "RemoveCacheConfirmationMessage": "Jeste li sigurni da ste uklonili predmemoriju za post "{0}"?", + "SuccessfullyRemoved": "Uspješno izbrisano", + "RemoveCache": "Ukloni predmemoriju", + "Language": "Jezik", + "Optional": "Neobavezno", + "CreatePostLanguageInfo": "Jezik na kojem je objava napisana", + "Enum:ContentSource:2": "Video post", + "VideoPreview": "Pregled videa", + "VideoPreviewErrorMessage": "Navedeni url videozapisa nije moguće dohvatiti s Youtubea. To može biti uzrokovano time što je videozapis privatan ili dani URL nije dostupan.", + "DeleteCoverImage": "Brisanje naslovne slike", + "DeleteCoverImageConfirmationMessage": "Jeste li sigurni da želite izbrisati naslovnu sliku za "{0}"?", + "DeleteCoverImageSuccessMessage": "Naslovna slika uspješno izbrisana", + "PaymentsOf": "Uplate od", + "ShowPaymentsOfOrganization": "Plaćanja", + "Date": "Datum", + "Products": "Proizvodi", + "TotalAmount": "Ukupni iznos", + "Currency": "Valuta", + "Gateway": "Gateway", + "State": "država", + "FailReason": "Razlog neuspjeha", + "ReIndexAllPosts": "Ponovno indeksiranje svih postova", + "ReIndexAllPostsConfirmationMessage": "Jeste li sigurni da želite ponovno indeksirati sve postove?", + "SuccessfullyReIndexAllPosts": "Svi su postovi uspješno ponovno indeksirani.", + "Permission:FullSearch": "Pretraživanje cijelog teksta", + "Menu:CliAnalytics": "Cli Analytics", + "Menu:Reports": "Izvještaji", + "TemplateName": "Naziv predloška", + "TemplateVersion": "Verzija predloška", + "DatabaseProvider": "Davatelj baze podataka", + "IsTiered": "Je višestruko", + "ProjectName": "Naziv projekta", + "Username": "Korisničko ime", + "Tool": "Alat", + "Command": "Naredba", + "UiFramework": "Ui okvir", + "Options": "Mogućnosti", + "CliAnalytics": "Cli Analytics", + "Reports": "Izvještaji", + "Permission:CliAnalyticses": "Cli Analyticses", + "Permission:CliAnalytics": "Cli Analytics", + "Permission:Reports": "Izvještaji", + "Search": "traži", + "ClearFilter": "Očisti filter", + "LicensePrivateKey": "Privatni ključ licence", + "LicensePublicKey": "Javni ključ licence", + "ApiKey": "NuGet API ključ", + "ShowInvoiceRequestsOfOrganization": "Zahtjevi za račun", + "ShowQuestionsOfOrganization": "Pitanja", + "Question": "Pitanje", + "Open": "Otvoren", + "Questions": "Pitanja", + "InvoiceRequests": "Zahtjevi za račun", + "Address": "Adresa", + "TaxNo": "Porezni br", + "Permission:InvoiceRequest": "Zahtjev za fakturu", + "Permission:Question": "Pitanje", + "AddNoteSuccessMessage": "Bilješka je uspješno dodana", + "NameSurname": "Ime prezime", + "Note": "Bilješka", + "Add": "Dodati", + "ProjectDownloads": "Preuzimanja projekata", + "ShowProjectDownloadsOfOrganization": "Preuzimanja projekata", + "ShowAuditLogsOfOrganization": "Dnevnici revizije", + "Enum:EntityChangeType:0": "Stvoreno", + "Enum:EntityChangeType:1": "Ažurirano", + "Enum:EntityChangeType:2": "Izbrisano", + "TenantId": "ID stanara", + "ChangeTime": "Promjena vremena", + "EntityTypeFullName": "Puni naziv vrste entiteta", + "AuditLogsFor{0}Organization": "Dnevnici revizije za organizaciju "{0}".", + "Permission:EntityChange": "Promjena entiteta", + "Permission:ProjectDownload": "Preuzimanje projekta", + "Permission:PaymentRequest": "Zahtjev za plaćanje", + "CreatorEmailAddress": "Adresa e-pošte kreatora", + "EmailSendDate": "Datum slanja e-pošte", + "PaymentRequestsFor{0}Organization": "Zahtjevi za plaćanje za organizaciju "{0}".", + "PaymentDetails": "Pojedinosti o plaćanju", + "PaymentProduct": "Proizvod plaćanja", + "ProductName": "ime proizvoda", + "Code": "Kodirati", + "GenerateInvoice": "Generiraj fakturu", + "ExportOrganizationsToExcel": "Izvoz u Excel", + "ThisExtensionIsNotAllowed": "Ovo proširenje nije dopušteno.", + "TheFileIsTooLarge": "Datoteka je prevelika!", + "PostDeletionConfirmationMessage": "Jeste li sigurni da želite čvrsto izbrisati ovu objavu?", + "ChooseCoverImage": "Odaberite naslovnu sliku...", + "Menu:Quotation": "Citat", + "Menu:Invoice": "Dostavnica", + "Menu:PaymentRequests": "Zahtjevi za plaćanje", + "Permission:PaymentRequests": "Zahtjevi za plaćanje", + "PaymentRequests": "Zahtjevi za plaćanje", + "Creator": "Stvoritelj", + "ExtraProperties": "Dodatna svojstva", + "Organization": "Organizacija", + "Waiting": "Čekanje", + "Completed": "Završeno", + "Failed": "Neuspjeh", + "PaymentRequestDeletionWarningMessage": "Ovaj zahtjev za plaćanje bit će izbrisan. Potvrđujete li to?", + "Payment": "Plaćanje", + "AddPayment": "Dodaj plaćanje", + "Enum:PurchaseType:1": "Nova licenca", + "Enum:PurchaseType:2": "Licenca Extend", + "Enum:PurchaseType:3": "Nadogradnja licence", + "Enum:PurchaseType:4": "Dodatni programer", + "LicenceType": "Vrsta licence", + "PurchaseType": "Vrsta kupnje", + "ReceiptNo": "Potvrda br", + "PaymentTime": "Vrijeme plaćanja", + "ProductPrice": "Cijena proizvoda", + "AdditionalDeveloper": "Dodatni programer", + "ThisPaymentHasBeenAlreadyUsed": "Ovo plaćanje je već iskorišteno", + "PaymentTimeCannotBeFutureTime": "Vrijeme plaćanja ne može biti buduće vrijeme!", + "SaveAndDownload": "Spremi i preuzmi", + "BillingInfo": "Podaci o naplati", + "DeleteInvoice": "Izbriši fakturu", + "PaymentStateSetTo": "Stanje plaćanja postavljeno na {0}", + "ChangeState": "Promjena države", + "Permission:TrialLicense": "Probna licenca", + "Menu:TrialLicenses": "Probne licence", + "TrialLicenses": "Probne licence", + "UserNameFilter": "Korisničko ime", + "TrialLicenseStatusFilter": "Status", + "TrialLicenseStartDateFilter": "Početni datum", + "TrialLicenseEndDateFilter": "Datum završetka", + "FirstName": "Ime", + "LastName": "Prezime", + "StartDate": "Početni datum", + "EndDate": "Datum završetka", + "PurchasedDate": "Datum kupovine", + "OrganizationDetail": "Pojedinosti o organizaciji", + "TrialLicenseStatus": "Status probne licence", + "TrialLicenseDetail": "Pojedinosti o probnoj licenci", + "AcceptsMarketingCommunications": "Marketinške komunikacije", + "PurposeOfUsage": "Svrha korištenja", + "CountryName": "Ime države", + "CompanySize": "Veličina tvrtke", + "DetailTrialLicense": "pojedinosti", + "Requested": "Zatraženo", + "Activated": "Aktiviran", + "PurchasedToNormalLicense": "Kupljeno", + "Expired": "Istekao", + "TrialLicenseDeletionWarningMessage": "Jeste li sigurni da želite izbrisati probnu licencu? Probna licenca, organizacija, računi za podršku bit će izbrisani!", + "LicenseCategoryFilter": "Kategorija licence", + "Permission:SendWelcomeEmail": "Pošaljite e-poruku dobrodošlice", + "SendWelcomeEmail": "Pošaljite e-poruku dobrodošlice", + "SendWelcomeEmailWarningMessage": "Jeste li sigurni da želite poslati e-poštu dobrodošlice članovima organizacije?", + "SendWelcomeEmailSuccessMessage": "E-pošta dobrodošlice uspješno je poslana!", + "Activate": "Aktivirati", + "ActivateTrialLicenseWarningMessage": "Kada aktivirate probnu licencu, korisniku će biti poslana poruka e-pošte dobrodošlice. Želite li ga aktivirati?", + "ActivateTrialLicenseSuccessMessage": "Uspješno aktiviran i e-pošta dobrodošlice poslana je članovima organizacije.", + "PaymentRequestId": "ID zahtjeva za plaćanje", + "AdditionalDeveloperCount": "Dodatni broj programera", + "LicensePrice": "Cijena licence", + "PurchaseDate": "Datum kupnje", + "IsAbpBookDownloaded": "Mastering ABP Knjiga preuzeta?", + "IsMasteringAbpBookDownloadEnabled": "Omogućeno preuzimanje ABP knjige", + "Permission:Accounting:CustomPaymentLinkGenerator": "Veza za prilagođeno plaćanje", + "CustomPaymentLink": "Veza za prilagođeno plaćanje", + "Menu:CustomPaymentLink": "Veza za prilagođeno plaćanje", + "Amount": "Iznos", + "GenerateCustomPaymentLink": "Generirajte prilagođenu vezu za plaćanje", + "GeneratedPaymentLink": "Generirana veza za plaćanje", + "CopyText": "Kopiraj tekst", + "Permission:CommunityEvents": "Događaji", + "Menu:Events": "Događaji", + "Events": "Događaji", + "EventType": "Vrsta događaja", + "Number": "Broj", + "RegistrationURL": "URL za registraciju", + "URL": "URL", + "EventDeletionConfirmationMessage": "Jeste li sigurni da želite izbrisati ovaj događaj?", + "Enum:EventType:0": "Razgovori zajednice", + "CreateAnEvent": "Napravite događaj", + "Permission:CommunitySpeakers": "Zvučnici", + "CreateASpeaker": "Stvorite zvučnik", + "Speakers": "Zvučnici", + "Image": "Slika", + "GithubURL": "Github URL", + "SpeakerDeletionConfirmationMessage": "Jeste li sigurni da želite izbrisati ovog zvučnika?", + "Menu:Speakers": "Zvučnici", + "ChooseSpeakerImage": "Odaberite sliku govornika...", + "SpeakerImage": "Slika govornika", + "AddSpeaker": "Dodajte zvučnika", + "ShowPurchaseItemsOfOrganizations": "Kupnja predmeta", + "Enum:OrganizationPurchaseState:0": "Nije dostavljeno", + "Enum:OrganizationPurchaseState:1": "Isporučeno", + "PurchaseItems": "Kupnja predmeta", + "SuccessfullyUpdated": "Uspješno ažurirano", + "SuccessfullyAdded": "Uspješno dodano", + "PurchaseState": "Status kupnje", + "ShowBetweenDayCount": "Prikaži između dana", + "PurchaseOrder": "Narudžbenica", + "ShowCreateInvoiceOfOrganization": "Izradi fakturu", + "ShowCreateQuotationOfOrganization": "Napravite ponudu", + "BookDiscounts": "Popusti za knjige", + "Permission:BookDiscount": "Popust za knjige", + "Menu:BookDiscounts": "Popusti za knjige", + "BookType": "Vrsta knjige", + "PurchasePlatform": "Platforma za kupnju", + "StartTime": "Vrijeme početka", + "EndTime": "Vrijeme završetka", + "CreateABookDiscount": "Napravite popust za knjige", + "BookDiscountDeletionConfirmationMessage": "Jeste li sigurni da želite izbrisati ovaj popust na knjige?", + "CustomPaymentFlexSwitchDescription": "S licencom", + "AllowFeatureUpgradeOnLicenseExpire": "Dopusti nadogradnju značajki nakon isteka licence", + "Deleted{0}": "[Izbrisano {0}]", + "Tags": "Oznake", + "SetTagsInfo": "Oznake trebaju biti odvojene zarezom. Npr.: CSharp, Entity Framework", + "RejectTrialLicenseWarningMessage": "Jeste li sigurni da želite odbiti ovaj zahtjev za probnu licencu?", + "ExportToExcel": "Izvoz u Excel", + "OverallTotalPrice": "Ukupna ukupna cijena", + "OverallDiscountPrice": "Ukupna cijena s popustom", + "OverallDiscountText": "Tekst ukupnog popusta", + "SelectReport": "- Odaberite izvješće -", + "NoDataAvailable": "Nema dostupnih podataka", + "StatisticsOfCachedContents": "Statistika predmemoriranih sadržaja NuGet paketa za nuget.abp.io", + "Compact": "Kompaktan", + "EditSettings": "Uredi postavke", + "CurrentEstimatedSize": "Trenutna procijenjena veličina", + "CurrentEntryCount": "Trenutačni broj unosa", + "TotalHits": "Ukupno pogodaka", + "TotalMisses": "Totalni promašaji", + "NoResponseFrom": "Nema odgovora od", + "ContentCacheSlidingExpirationByDay": "Istek predmemorije sadržaja po danu", + "MaxDaysForCaching": "Maksimalni broj dana za predmemoriju", + "Enabled": "Omogućeno", + "Menu:NugetPackagesContentCache": "NuGet predmemorija", + "NugetPackagesContentCache": "NuGet predmemorija sadržaja", + "SlidingExpritionByDayInfo": "Dobiva ili postavlja koliko dugo unos predmemorije može biti neaktivan (npr. bez pristupa) prije nego što se ukloni. Ovo neće produžiti životni vijek unosa nakon apsolutnog isteka.", + "MaxDaysForCachingInfo": "Dobiva ili postavlja apsolutno vrijeme isteka u odnosu na sada.", + "CurrentEstimatedSizeInfo": "Označava procijenjeni zbroj veličine sadržaja svih NuGet paketa koji se trenutno nalazi u predmemoriji memorije", + "CurrentEntryCountInfo": "Označava broj instanci trenutno u predmemoriji memorije.", + "TotalHitsInfo": "Označava ukupan broj promašaja predmemorije. Do pogotka predmemorije dolazi kada se datoteka zatraži iz predmemorije, a predmemorija može ispuniti taj zahtjev.", + "TotalMissesInfo": "Označava ukupan broj pogodaka predmemorije. Promašaj predmemorije je kada predmemorija ne sadrži traženi sadržaj.", + "Permission:VersionHistory": "Povijest verzija", + "Caches": "Spremišta", + "VersionHistories": "Povijest verzija", + "Version": "Verzija", + "PublishDate": "Datum objave", + "IsStableVersion": "Stabilna verzija", + "IsActive": "Aktivan", + "NewVersion": "Nova verzija", + "VersionHistoryDeletionConfirmationMessage": "Jeste li sigurni da želite izbrisati ovu verziju?", + "CreateAbpConsultantLogoInfo": "Maksimalna veličina datoteke: 1 MB
Podržane vrste datoteka: jpg, jpeg, png, SVG, WebP", + "UrlCode": "Url kod", + "Clear": "Čisto", + "Permission:AbpConsultant": "ABP konzultant", + "Menu:AbpConsultants": "ABP konzultanti", + "CreateAbpConsultant": "Stvorite ABP konzultanta", + "UrlCodeIsNotAvailable": "Url kod koristi drugi ABP konzultant.", + "AbpConsultants": "ABP konzultanti", + "AbpConsultant": "ABP konzultant", + "AbpConsultantEdit": "Uredi ABP konzultanta", + "AbpConsultantCreate": "Stvorite ABP konzultanta", + "WhoWeAreItem": "Stavka Tko smo", + "FieldIsRequired": "{0} je obavezan.", + "FieldIsNotValid": "{0} nije valjan.", + "InterestedLicenseType": "Zainteresirana vrsta licence", + "MoveWaitList": "Prijeđi na listu čekanja", + "CommunityLinkTitle": "Otvorite na web stranici zajednice", + "CommunityLink": "Link zajednice", + "ReloadFromSource": "Ponovno učitaj s izvora", + "ReloadFromSourceConfirmationMessage": "Ovaj će se post osvježiti iz "{0}". Želite li nastaviti?", + "UnitPrice": "Jedinična cijena", + "OverallDiscountAmount": "Ukupni iznos popusta", + "DiscountAmount": "Iznos popusta", + "FullChangeHistory": "Potpuna povijest promjena", + "Permission:RefreshReleaseLogs": "Osvježi zapisnike izdanja", + "ReleaseLogs": "Dnevnici izdanja", + "AuthorUserName": "Korisničko ime autora", + "Type": "Tip", + "TotalDiscount": "Totalni popust", + "SubTotal": "Međuzbroj", + "TotalDue": "Ukupni trošak", + "QuotationNo": "Ponuda br", + "ValidTill": "Vrijedi do", + "QuotationNote": "Napomena o citatu", + "QuotationTemplate.Address:": "Adresa:", + "QuotationTemplate.VATNo:": "PDV broj:", + "QuotationTemplate.Phone:": "Telefon:", + "QuotationTemplate.E-mail:": "E-mail:", + "QuotationTemplate.Quotation": "Citat", + "QuotationTemplate.To": "Do", + "QuotationTemplate.Details": "pojedinosti", + "QuotationTemplate.QuotationNo:": "Ponuda #:", + "QuotationTemplate.IssueDate:": "Datum izdavanja:", + "QuotationTemplate.ValidTill:": "Vrijedi do:", + "QuotationTemplate.ValidDays": "{0} dana", + "QuotationTemplate.Description": "Opis", + "QuotationTemplate.UnitPrice": "Jedinična cijena", + "QuotationTemplate.Qty": "Kol", + "QuotationTemplate.Discount": "Popust", + "QuotationTemplate.Total": "Ukupno", + "QuotationTemplate.Notes": "Bilješke", + "QuotationTemplate.SubTotal:": "Međuzbroj:", + "QuotationTemplate.Tax/VAT:": "Porez/PDV (%{0}):", + "QuotationTemplate.TotalDiscount:": "Ukupni popust:", + "QuotationTemplate.TOTALDUE:": "UKUPNI TROŠAK :", + "QuotationTemplate.BankAccount": "Podatke o našem bankovnom računu možete pronaći na {0}", + "Permission:Raffles": "Lutrija", + "Permission:Draw": "crtati", + "Menu:Raffles": "Tombole", + "RaffleIsNotDrawable": "Tombola se ne može izvlačiti", + "WinnerCountMustBeGreaterThanZero": "Broj pobjednika mora biti veći od nule", + "FullDescription": "Potpuni opis", + "VisibilityStartDate": "Datum početka vidljivosti", + "VisibilityEndDate": "Datum završetka vidljivosti", + "RaffleDate": "Datum izvlačenja", + "SubscriptionCode": "Pretplatnički kod", + "GroupCode": "Kod grupe", + "MaxWinnerCount": "Najveći broj pobjednika", + "ReDraw": "Precrtati", + "EditRaffle": "Uredi nagradnu igru", + "Raffles": "Tombole", + "CreateARaffle": "Napravite tombolu", + "Draw": "crtati", + "Enum:RaffleStatus:0": "Aktivan", + "Enum:RaffleStatus:1": "Sljedeći", + "Enum:RaffleStatus:2": "Prošlost", + "DrawDone": "Crtanje gotovo", + "HomePageShowType": "Vrsta prikaza početne stranice", + "None": "Nijedan", + "Card": "Kartica", + "Horizontal": "Horizontalno", + "Winners": "Pobjednici", + "StartDateMustBeLessThanEndDate": "Datum početka mora biti manji od datuma završetka", + "VisibilityStartDateMustBeLessThanVisibilityEndDate": "Datum početka vidljivosti mora biti manji od datuma završetka vidljivosti", + "StartDateMustBeGreaterThanVisibilityStartDate": "Datum početka mora biti veći od datuma početka vidljivosti", + "EndDateMustBeLessThanVisibilityEndDate": "Datum završetka mora biti manji od datuma završetka vidljivosti", + "DrawnDone": "Nacrtano Gotovo", + "AddColor": "Dodajte boju", + "Colors": "Boje", + "RemoveColor": "Ukloni boju", + "MaxColorCountWarning": "Možete dodati do {0} boja", + "MinColorCountWarning": "Morate dodati najmanje {0} boja", + "RaffleDeletionConfirmationMessage": "Jeste li sigurni da želite izbrisati ovu nagradnu igru?", + "CreateRaffle": "Napravite nagradnu igru", + "RemoveImage": "Ukloni sliku", + "SuccessfullySaved": "Uspješno spremljeno", + "Menu:CommunityTalks": "Razgovori zajednice", + "Menu:Conferences": "Konferencije", + "Menu:OtherLiveEvents": "Ostali događaji uživo", + "Menu:SponsoredConferences": "Sponzorirane konferencije", + "Logo": "Logo", + "Slug": "Puž", + "CompanyUrl": "Url tvrtke", + "TalkTitle": "Naslov razgovora", + "AbstractTopic": "Sažetak Tema", + "Bio": "Bio", + "LinkedIn": "LinkedIn", + "Github": "Github", + "Twitch": "Trzaj", + "Youtube": "Youtube", + "Twitter": "Cvrkut", + "PersonalWebsite": "Osobna web stranica", + "VideoId": "ID videozapisa", + "Order": "Narudžba", + "Image1x1": "Slika 1x1", + "Image16x9": "Slika 16x9", + "Banner": "Banner", + "Speaker": "Zvučnik", + "SessionDate": "Datum sjednice", + "AddSession": "Dodaj sesiju", + "AddSponsor": "Dodajte sponzora", + "SponsorLogo": "Logo sponzora", + "RegistrationUrl": "Url za registraciju" + } +} \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/hu.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/hu.json index e006543933..d41ac05e58 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/hu.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/hu.json @@ -220,6 +220,7 @@ "SuccessfullyReIndexAllPosts": "Az összes bejegyzést sikeresen újraindexeltük.", "Permission:FullSearch": "Teljes szöveges keresés", "Menu:CliAnalytics": "Cli Analytics", + "Menu:Reports": "Jelentések", "TemplateName": "Sablonnév", "TemplateVersion": "Sablon verzió", "DatabaseProvider": "Adatbázis szolgáltató", @@ -231,8 +232,10 @@ "UiFramework": "Ui keretrendszer", "Options": "Lehetőségek", "CliAnalytics": "Cli Analytics", + "Reports": "Jelentések", "Permission:CliAnalyticses": "Cli Analytics", "Permission:CliAnalytics": "Cli Analytics", + "Permission:Reports": "Jelentések", "Search": "Keresés", "ClearFilter": "Tiszta szűrő", "LicensePrivateKey": "Licenc privát kulcs", @@ -399,6 +402,164 @@ "AllowFeatureUpgradeOnLicenseExpire": "A funkció frissítésének engedélyezése a licensz lejártakor", "Deleted{0}": "[Törölve {0}]", "Tags": "Címkék", - "SetTagsInfo": "A címkéket vesszővel kell elválasztani. Pl.: CSharp, Entity Framework" + "SetTagsInfo": "A címkéket vesszővel kell elválasztani. Pl.: CSharp, Entity Framework", + "RejectTrialLicenseWarningMessage": "Biztosan elutasítja ezt a próbalicenc-kérelmet?", + "ExportToExcel": "Exportálás Excelbe", + "OverallTotalPrice": "Teljes összár", + "OverallDiscountPrice": "Teljes kedvezményes ár", + "OverallDiscountText": "Általános kedvezmény szövege", + "SelectReport": "- Jelentés kiválasztása -", + "NoDataAvailable": "Nincs elérhető adat", + "StatisticsOfCachedContents": "A nuget.abp.io gyorsítótárazott NuGet-csomag tartalmának statisztikái", + "Compact": "Kompakt", + "EditSettings": "Beállítások szerkesztése", + "CurrentEstimatedSize": "Jelenlegi becsült méret", + "CurrentEntryCount": "Jelenlegi bejegyzések száma", + "TotalHits": "Összes találat", + "TotalMisses": "Összes hiányzó", + "NoResponseFrom": "Nincs válasz tőle", + "ContentCacheSlidingExpirationByDay": "Tartalom-gyorsítótár csúszó lejárata naponta", + "MaxDaysForCaching": "Max Days for Caching", + "Enabled": "Engedélyezve", + "Menu:NugetPackagesContentCache": "NuGet gyorsítótár", + "NugetPackagesContentCache": "NuGet tartalom gyorsítótár", + "SlidingExpritionByDayInfo": "Lekéri vagy beállítja, hogy egy gyorsítótár-bejegyzés mennyi ideig lehet inaktív (pl. nem érhető el), mielőtt eltávolítja. Ez nem hosszabbítja meg a belépési élettartamot az abszolút lejáraton túl.", + "MaxDaysForCachingInfo": "Lekér vagy beállít egy abszolút lejárati időt a mostanihoz képest.", + "CurrentEstimatedSizeInfo": "A jelenleg a memória-gyorsítótárban lévő NuGet-csomagok tartalomméretének becsült összegét jelzi", + "CurrentEntryCountInfo": "A memória-gyorsítótárban jelenleg található példányok számát jelzi.", + "TotalHitsInfo": "A gyorsítótár-kihagyások teljes számát jelzi. Gyorsítótár-találat akkor történik, amikor egy fájlt kérnek a gyorsítótárból, és a gyorsítótár teljesíteni tudja a kérést.", + "TotalMissesInfo": "A gyorsítótár találatainak teljes számát jelzi. A gyorsítótár hiánya az, ha a gyorsítótár nem tartalmazza a kért tartalmat.", + "Permission:VersionHistory": "Verziótörténet", + "Caches": "Gyorsítótárak", + "VersionHistories": "Verziótörténet", + "Version": "Változat", + "PublishDate": "Közzététel dátuma", + "IsStableVersion": "Stabil verzió", + "IsActive": "Aktív", + "NewVersion": "Új verzió", + "VersionHistoryDeletionConfirmationMessage": "Biztosan törli ezt a verziót?", + "CreateAbpConsultantLogoInfo": "Maximális fájlméret: 1 MB
Támogatott fájltípusok: jpg, jpeg, png, SVG, WebP", + "UrlCode": "URL kód", + "Clear": "Egyértelmű", + "Permission:AbpConsultant": "ABP tanácsadó", + "Menu:AbpConsultants": "ABP tanácsadók", + "CreateAbpConsultant": "Hozzon létre ABP-tanácsadót", + "UrlCodeIsNotAvailable": "Az URL-kódot egy másik ABP-tanácsadó használja.", + "AbpConsultants": "ABP tanácsadók", + "AbpConsultant": "ABP tanácsadó", + "AbpConsultantEdit": "Szerkessze az ABP-tanácsadót", + "AbpConsultantCreate": "Hozzon létre ABP-tanácsadót", + "WhoWeAreItem": "Kik vagyunk tétel", + "FieldIsRequired": "{0} kötelező.", + "FieldIsNotValid": "A(z) {0} nem érvényes.", + "InterestedLicenseType": "Érdekelt licenc típusa", + "MoveWaitList": "Ugrás a várólistára", + "CommunityLinkTitle": "Megnyitás a közösség honlapján", + "CommunityLink": "Közösségi link", + "ReloadFromSource": "Újratöltés a forrásból", + "ReloadFromSourceConfirmationMessage": "Ez a bejegyzés a következőről frissül: "{0}". Akarod folytatni?", + "UnitPrice": "Egységár", + "OverallDiscountAmount": "Teljes kedvezmény összege", + "DiscountAmount": "Kedvezmény mértéke", + "FullChangeHistory": "Teljes változástörténet", + "Permission:RefreshReleaseLogs": "Kiadási naplók frissítése", + "ReleaseLogs": "Naplók kiadása", + "AuthorUserName": "Szerző felhasználói neve", + "Type": "típus", + "TotalDiscount": "Teljes kedvezmény", + "SubTotal": "Részösszeg", + "TotalDue": "Teljes tartozás", + "QuotationNo": "számú idézet", + "ValidTill": "Ig érvényes", + "QuotationNote": "Idézet megjegyzés", + "QuotationTemplate.Address:": "Cím:", + "QuotationTemplate.VATNo:": "ÁFA szám:", + "QuotationTemplate.Phone:": "Telefon:", + "QuotationTemplate.E-mail:": "Email:", + "QuotationTemplate.Quotation": "Idézet", + "QuotationTemplate.To": "Nak nek", + "QuotationTemplate.Details": "Részletek", + "QuotationTemplate.QuotationNo:": "Idézet #:", + "QuotationTemplate.IssueDate:": "Kiadás dátuma:", + "QuotationTemplate.ValidTill:": "Ig érvényes:", + "QuotationTemplate.ValidDays": "{0} nap", + "QuotationTemplate.Description": "Leírás", + "QuotationTemplate.UnitPrice": "Egységár", + "QuotationTemplate.Qty": "Menny", + "QuotationTemplate.Discount": "Kedvezmény", + "QuotationTemplate.Total": "Teljes", + "QuotationTemplate.Notes": "Megjegyzések", + "QuotationTemplate.SubTotal:": "Részösszeg:", + "QuotationTemplate.Tax/VAT:": "Adó/áfa (%{0}):", + "QuotationTemplate.TotalDiscount:": "Teljes kedvezmény:", + "QuotationTemplate.TOTALDUE:": "TELJES TARTOZÁS :", + "QuotationTemplate.BankAccount": "Bankszámlánk adatai a következő címen találhatók: {0}", + "Permission:Raffles": "Tombola", + "Permission:Draw": "Húz", + "Menu:Raffles": "Tombolák", + "RaffleIsNotDrawable": "A tombola nem sorsolható", + "WinnerCountMustBeGreaterThanZero": "A nyertesek számának nullánál nagyobbnak kell lennie", + "FullDescription": "Teljes leírás", + "VisibilityStartDate": "Láthatóság kezdő dátuma", + "VisibilityEndDate": "Láthatóság befejezési dátuma", + "RaffleDate": "Sorsolás dátuma", + "SubscriptionCode": "Előfizetési kód", + "GroupCode": "Csoport kód", + "MaxWinnerCount": "Maximális győztesek száma", + "ReDraw": "Rajzolj újra", + "EditRaffle": "Szerkesztés Raffle", + "Raffles": "Tombolák", + "CreateARaffle": "Hozzon létre egy tombolát", + "Draw": "Húz", + "Enum:RaffleStatus:0": "Aktív", + "Enum:RaffleStatus:1": "Következő", + "Enum:RaffleStatus:2": "Múlt", + "DrawDone": "Rajz Kész", + "HomePageShowType": "Home Page Show Type", + "None": "Egyik sem", + "Card": "Kártya", + "Horizontal": "Vízszintes", + "Winners": "Nyertesek", + "StartDateMustBeLessThanEndDate": "A kezdő dátumnak rövidebbnek kell lennie, mint a befejező dátum", + "VisibilityStartDateMustBeLessThanVisibilityEndDate": "A láthatóság kezdő dátumának kisebbnek kell lennie, mint a láthatóság befejező dátuma", + "StartDateMustBeGreaterThanVisibilityStartDate": "A kezdő dátumnak nagyobbnak kell lennie, mint a láthatóság kezdő dátuma", + "EndDateMustBeLessThanVisibilityEndDate": "A befejezés dátumának rövidebbnek kell lennie, mint a láthatóság befejezési dátuma", + "DrawnDone": "Rajzolva Kész", + "AddColor": "Szín hozzáadása", + "Colors": "Színek", + "RemoveColor": "Szín eltávolítása", + "MaxColorCountWarning": "Legfeljebb {0} színt adhat hozzá", + "MinColorCountWarning": "Legalább {0} színt kell hozzáadnia", + "RaffleDeletionConfirmationMessage": "Biztosan törölni szeretnéd ezt a nyereményjátékot?", + "CreateRaffle": "Hozzon létre tombolát", + "RemoveImage": "Kép eltávolítása", + "SuccessfullySaved": "Sikeresen mentve", + "Menu:CommunityTalks": "Közösségi beszélgetések", + "Menu:Conferences": "Konferenciák", + "Menu:OtherLiveEvents": "Egyéb élő események", + "Menu:SponsoredConferences": "Szponzorált konferenciák", + "Logo": "Logó", + "Slug": "Meztelen csiga", + "CompanyUrl": "Cég URL", + "TalkTitle": "Beszélgetés címe", + "AbstractTopic": "Absztrakt téma", + "Bio": "Bio", + "LinkedIn": "LinkedIn", + "Github": "Github", + "Twitch": "Megrándult", + "Youtube": "Youtube", + "Twitter": "Twitter", + "PersonalWebsite": "Személyes Weboldal", + "VideoId": "Videó azonosítója", + "Order": "Rendelés", + "Image1x1": "Kép 1x1", + "Image16x9": "Kép 16x9", + "Banner": "Transzparens", + "Speaker": "Hangszóró", + "SessionDate": "Munkamenet dátuma", + "AddSession": "Munkamenet hozzáadása", + "AddSponsor": "Szponzor hozzáadása", + "SponsorLogo": "Szponzor logó", + "RegistrationUrl": "Regisztrációs URL" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/is.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/is.json index d4c446fefc..789701d409 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/is.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/is.json @@ -220,6 +220,7 @@ "SuccessfullyReIndexAllPosts": "Allar greinar hafa verið farsællega indexaðar.", "Permission:FullSearch": "Leit í öllum texta", "Menu:CliAnalytics": "Cli Analytics", + "Menu:Reports": "Skýrslur", "TemplateName": "Nafn sniðmáts", "TemplateVersion": "Útgáfa sniðmáts", "DatabaseProvider": "Gagnagrunnsveitandi", @@ -231,8 +232,10 @@ "UiFramework": "Notandaviðmót", "Options": "Valkostir", "CliAnalytics": "Cli Analytics", + "Reports": "Skýrslur", "Permission:CliAnalyticses": "Cli Analyticses", "Permission:CliAnalytics": "Cli Analytics", + "Permission:Reports": "Skýrslur", "Search": "Leita", "ClearFilter": "Hreinsa Síu", "LicensePrivateKey": "Einkalykill leyfishafa", @@ -316,14 +319,12 @@ "TrialLicenseStatusFilter": "Staða", "TrialLicenseStartDateFilter": "Upphafsdagsetning", "TrialLicenseEndDateFilter": "Lokadagsetning", - "FirsName": "Fornafn", + "FirstName": "Fyrsta nafn", "LastName": "Eftirnafn", "StartDate": "Upphafsdagsetning", "EndDate": "Lokadagsetning", "PurchasedDate": "Dagsetning kaupa", "OrganizationDetail": "Upplýsingar um Skipulagsheild", - "SendActivationMail": "Senda virkjunarvefpóst", - "ActivationMailSentSuccessfully": "Virkjunarvefpóstur hefur verið sendur!", "TrialLicenseStatus": "Staða á prufuleyfi", "TrialLicenseDetail": "Upplýsingar um prufuleyfi", "AcceptsMarketingCommunications": "Samskipti markaðssetningar", @@ -337,17 +338,228 @@ "Expired": "Útrunnið", "TrialLicenseDeletionWarningMessage": "Ertu viss um að þú viljir eyða prufuleyfi? Prufuleyfi, skipulagsheildum og stuðningsreikningum verður eytt!", "LicenseCategoryFilter": "Leyfisflokkur", - "Volo.AbpIo.Commercial:030000": "Þú hefur nú þegar nýtt þér prufutímann.", - "Volo.AbpIo.Commercial:030001": "Nafn þessa félags er nú þegar til.", - "Volo.AbpIo.Commercial:030002": "Þegar virkjað, þá er ekki hægt að stilla prufuleyfi á óskað", - "Volo.AbpIo.Commercial:030003": "Þessi staða er ekki til!", - "Volo.AbpIo.Commercial:030004": "Ekki var mögulegt að breyta stöðu vegna óvæntrar villu!", - "Volo.AbpIo.Commercial:030005": "Ekki er hægt að gefa upp upphafsdag og lokadag þegar prufuleyfi er í biðlunar stöðu!", - "Volo.AbpIo.Commercial:030006": "Lokadagur verður alltaf að vera seinni en upphafsdagur!", - "Volo.AbpIo.Commercial:030007": "Þetta prufuleyfi hefur nú þegar verið virkjað einu sinni áður!", - "Volo.AbpIo.Commercial:030008": "Aðeins er hægt að stilla kaupdagsetningu þegar staða er keypt!", - "Volo.AbpIo.Commercial:030009": "Notandi finnst ekki!", - "Volo.AbpIo.Commercial:030010": "Til að kaupa prufuleyfið þarftu fyrst að virkja prufuleyfið þitt!", - "Volo.AbpIo.Commercial:030011": "Þú getur ekki eytt reynsluleyfi þegar það er keypt!" + "Permission:SendWelcomeEmail": "Sendu velkominn tölvupóst", + "SendWelcomeEmail": "Sendu velkominn tölvupóst", + "SendWelcomeEmailWarningMessage": "Ertu viss um að þú viljir senda velkominn tölvupóst til meðlima samtakanna?", + "SendWelcomeEmailSuccessMessage": "Velkominn tölvupóstur sendur!", + "Activate": "Virkjaðu", + "ActivateTrialLicenseWarningMessage": "Þegar þú virkjar prufuleyfi verður velkominn tölvupóstur sendur til notandans. Viltu virkja það?", + "ActivateTrialLicenseSuccessMessage": "Virkjað með góðum árangri og velkominn tölvupóstur sendur til meðlima samtakanna.", + "PaymentRequestId": "Auðkenni greiðslubeiðni", + "AdditionalDeveloperCount": "Fjöldi forritara til viðbótar", + "LicensePrice": "Leyfisverð", + "PurchaseDate": "Kaupdagur", + "IsAbpBookDownloaded": "Mastering ABP Book niðurhalað?", + "IsMasteringAbpBookDownloadEnabled": "ABP bók niðurhal virkt", + "Permission:Accounting:CustomPaymentLinkGenerator": "Sérsniðinn greiðslutengil", + "CustomPaymentLink": "Sérsniðinn greiðslutengil", + "Menu:CustomPaymentLink": "Sérsniðinn greiðslutengil", + "Amount": "Magn", + "GenerateCustomPaymentLink": "Búðu til sérsniðna greiðslutengil", + "GeneratedPaymentLink": "Myndaður greiðslutengil", + "CopyText": "Afritaðu texta", + "Permission:CommunityEvents": "Viðburðir", + "Menu:Events": "Viðburðir", + "Events": "Viðburðir", + "EventType": "Tegund atburðar", + "Number": "Númer", + "RegistrationURL": "Skráningarslóð", + "URL": "URL", + "EventDeletionConfirmationMessage": "Ertu viss um að þú viljir eyða þessum viðburði?", + "Enum:EventType:0": "Samfélagsspjall", + "CreateAnEvent": "Búðu til viðburð", + "Permission:CommunitySpeakers": "Hátalarar", + "CreateASpeaker": "Búðu til hátalara", + "Speakers": "Hátalarar", + "Image": "Mynd", + "GithubURL": "Github vefslóð", + "SpeakerDeletionConfirmationMessage": "Ertu viss um að þú viljir eyða þessum hátalara?", + "Menu:Speakers": "Hátalarar", + "ChooseSpeakerImage": "Veldu hátalaramynd...", + "SpeakerImage": "Mynd af hátalara", + "AddSpeaker": "Bæta við hátalara", + "ShowPurchaseItemsOfOrganizations": "Kaupa hluti", + "Enum:OrganizationPurchaseState:0": "Ekki afhent", + "Enum:OrganizationPurchaseState:1": "Afhent", + "PurchaseItems": "Kaupa hluti", + "SuccessfullyUpdated": "Tókst uppfært", + "SuccessfullyAdded": "Tókst að bæta við", + "PurchaseState": "Staða kaups", + "ShowBetweenDayCount": "Sýning milli daga", + "PurchaseOrder": "Pöntun", + "ShowCreateInvoiceOfOrganization": "Búðu til reikning", + "ShowCreateQuotationOfOrganization": "Búðu til tilvitnun", + "BookDiscounts": "Bókaafsláttur", + "Permission:BookDiscount": "Bókaafsláttur", + "Menu:BookDiscounts": "Bókaafsláttur", + "BookType": "Tegund bóka", + "PurchasePlatform": "Kauppallur", + "StartTime": "Byrjunartími", + "EndTime": "Lokatími", + "CreateABookDiscount": "Búðu til bókaafslátt", + "BookDiscountDeletionConfirmationMessage": "Ertu viss um að þú viljir eyða þessum bókaafslætti?", + "CustomPaymentFlexSwitchDescription": "Með leyfi", + "AllowFeatureUpgradeOnLicenseExpire": "Leyfa eiginleikauppfærslu þegar leyfi rennur út", + "Deleted{0}": "[Eyddi {0}]", + "Tags": "Merki", + "SetTagsInfo": "Merki ættu að vera aðskilin með kommum. Td: CSharp, Entity Framework", + "RejectTrialLicenseWarningMessage": "Ertu viss um að þú viljir hafna þessari beiðni um prufuleyfi?", + "ExportToExcel": "Flytja út í Excel", + "OverallTotalPrice": "Heildarverð", + "OverallDiscountPrice": "Heildarafsláttarverð", + "OverallDiscountText": "Heildarafsláttartexti", + "SelectReport": "- Veldu Report -", + "NoDataAvailable": "Engin gögn tiltæk", + "StatisticsOfCachedContents": "Tölfræði um innihald NuGet pakka í skyndiminni fyrir nuget.abp.io", + "Compact": "Fyrirferðarlítill", + "EditSettings": "Breyta stillingum", + "CurrentEstimatedSize": "Núverandi áætlað stærð", + "CurrentEntryCount": "Núverandi færslufjöldi", + "TotalHits": "Heildarsmellir", + "TotalMisses": "Alger missir", + "NoResponseFrom": "Ekkert svar frá", + "ContentCacheSlidingExpirationByDay": "Efnisskyndiminni rennur út eftir degi", + "MaxDaysForCaching": "Hámarksdagar fyrir skyndiminni", + "Enabled": "Virkt", + "Menu:NugetPackagesContentCache": "NuGet Cache", + "NugetPackagesContentCache": "NuGet Content Cache", + "SlidingExpritionByDayInfo": "Fær eða stillir hversu lengi skyndiminni færsla getur verið óvirk (td ekki opnuð) áður en hún verður fjarlægð. Þetta mun ekki lengja inngangslíftímann umfram algeran gildistíma.", + "MaxDaysForCachingInfo": "Fær eða setur algeran fyrningartíma, miðað við núna.", + "CurrentEstimatedSizeInfo": "Gefur til kynna áætlaða summu allra NuGet-pakka innihaldsstærðarinnar sem er í minni skyndiminni", + "CurrentEntryCountInfo": "Gefur til kynna fjölda tilvika í skyndiminni minni.", + "TotalHitsInfo": "Gefur til kynna heildarfjölda skyndiminni sem missir. Skyndiminnishögg á sér stað þegar beðið er um skrá úr skyndiminni og skyndiminni getur uppfyllt þá beiðni.", + "TotalMissesInfo": "Gefur til kynna heildarfjölda skyndiminnishittinga. Skyndiminni missir er þegar skyndiminni inniheldur ekki umbeðið efni.", + "Permission:VersionHistory": "Útgáfusaga", + "Caches": "Skyndiminni", + "VersionHistories": "Útgáfusaga", + "Version": "Útgáfa", + "PublishDate": "Útgáfudagur", + "IsStableVersion": "Stöðug útgáfa", + "IsActive": "Virkur", + "NewVersion": "Ný útgáfa", + "VersionHistoryDeletionConfirmationMessage": "Ertu viss um að þú viljir eyða þessari útgáfu?", + "CreateAbpConsultantLogoInfo": "Hámarksskráarstærð: 1MB
Stuðlar skráargerðir: jpg, jpeg, png, SVG, WebP", + "UrlCode": "Vefslóð kóða", + "Clear": "Hreinsa", + "Permission:AbpConsultant": "ABP ráðgjafi", + "Menu:AbpConsultants": "ABP ráðgjafar", + "CreateAbpConsultant": "Búðu til ABP ráðgjafa", + "UrlCodeIsNotAvailable": "Vefslóðarkóði er notaður af öðrum ABP ráðgjafa.", + "AbpConsultants": "ABP ráðgjafar", + "AbpConsultant": "ABP ráðgjafi", + "AbpConsultantEdit": "Breyta ABP ráðgjafa", + "AbpConsultantCreate": "Búðu til ABP ráðgjafa", + "WhoWeAreItem": "Hver við erum atriði", + "FieldIsRequired": "{0} er krafist.", + "FieldIsNotValid": "{0} er ekki gilt.", + "InterestedLicenseType": "Áhugasamir leyfistegund", + "MoveWaitList": "Færa á biðlista", + "CommunityLinkTitle": "Opið á heimasíðu samfélagsins", + "CommunityLink": "Samfélagstenging", + "ReloadFromSource": "Endurhlaða frá upprunanum", + "ReloadFromSourceConfirmationMessage": "Þessi færsla verður endurnýjuð frá "{0}". Viltu halda áfram?", + "UnitPrice": "Einingaverð", + "OverallDiscountAmount": "Heildarafsláttarupphæð", + "DiscountAmount": "Afsláttarupphæð", + "FullChangeHistory": "Full breytingasaga", + "Permission:RefreshReleaseLogs": "Endurnýja útgáfuskrár", + "ReleaseLogs": "Gefa út logs", + "AuthorUserName": "Notandanafn höfundar", + "Type": "Gerð", + "TotalDiscount": "Heildarafsláttur", + "SubTotal": "Undir samtals", + "TotalDue": "Heildarverð", + "QuotationNo": "Tilvitnun nr", + "ValidTill": "Gildir til", + "QuotationNote": "Tilvitnun", + "QuotationTemplate.Address:": "Heimilisfang:", + "QuotationTemplate.VATNo:": "VSK nr:", + "QuotationTemplate.Phone:": "Sími:", + "QuotationTemplate.E-mail:": "Tölvupóstur:", + "QuotationTemplate.Quotation": "Tilvitnun", + "QuotationTemplate.To": "Til", + "QuotationTemplate.Details": "Upplýsingar", + "QuotationTemplate.QuotationNo:": "Tilvitnun #:", + "QuotationTemplate.IssueDate:": "Útgáfudagur:", + "QuotationTemplate.ValidTill:": "Gildir til:", + "QuotationTemplate.ValidDays": "{0} dagar", + "QuotationTemplate.Description": "Lýsing", + "QuotationTemplate.UnitPrice": "Einingaverð", + "QuotationTemplate.Qty": "Magn", + "QuotationTemplate.Discount": "Afsláttur", + "QuotationTemplate.Total": "Samtals", + "QuotationTemplate.Notes": "Skýringar", + "QuotationTemplate.SubTotal:": "Undirtölur:", + "QuotationTemplate.Tax/VAT:": "Skattur / vsk (%{0}):", + "QuotationTemplate.TotalDiscount:": "Heildarafsláttur:", + "QuotationTemplate.TOTALDUE:": "HEILDARVERÐ :", + "QuotationTemplate.BankAccount": "Bankareikningsupplýsingar okkar er að finna á {0}", + "Permission:Raffles": "Happdrætti", + "Permission:Draw": "Jafntefli", + "Menu:Raffles": "Happdrættir", + "RaffleIsNotDrawable": "Ekki er hægt að draga í happdrætti", + "WinnerCountMustBeGreaterThanZero": "Vinningsfjöldi verður að vera meiri en núll", + "FullDescription": "Full lýsing", + "VisibilityStartDate": "Upphafsdagur sýnileika", + "VisibilityEndDate": "Lokadagsetning sýnileika", + "RaffleDate": "Dagsetning happdrættis", + "SubscriptionCode": "Áskriftarkóði", + "GroupCode": "Hópkóði", + "MaxWinnerCount": "Max Winner Count", + "ReDraw": "Draw aftur", + "EditRaffle": "Breyta happdrætti", + "Raffles": "Happdrættir", + "CreateARaffle": "Búðu til happdrætti", + "Draw": "Jafntefli", + "Enum:RaffleStatus:0": "Virkur", + "Enum:RaffleStatus:1": "Næst", + "Enum:RaffleStatus:2": "Fortíð", + "DrawDone": "Teikning Lokið", + "HomePageShowType": "Heimasíða Sýna Tegund", + "None": "Enginn", + "Card": "Spil", + "Horizontal": "Lárétt", + "Winners": "Sigurvegarar", + "StartDateMustBeLessThanEndDate": "Upphafsdagsetning verður að vera minni en lokadagsetning", + "VisibilityStartDateMustBeLessThanVisibilityEndDate": "Upphafsdagur sýnileika verður að vera minni en lokadagsetning sýnileika", + "StartDateMustBeGreaterThanVisibilityStartDate": "Upphafsdagsetning verður að vera meiri en upphafsdagsetning sýnileika", + "EndDateMustBeLessThanVisibilityEndDate": "Lokadagsetning verður að vera minni en lokadagsetning sýnileika", + "DrawnDone": "Teiknað Búið", + "AddColor": "Bæta við lit", + "Colors": "Litir", + "RemoveColor": "Fjarlægðu lit", + "MaxColorCountWarning": "Þú getur bætt við allt að {0} litum", + "MinColorCountWarning": "Þú verður að bæta við að minnsta kosti {0} litum", + "RaffleDeletionConfirmationMessage": "Ertu viss um að þú viljir eyða þessari happdrætti?", + "CreateRaffle": "Búðu til happdrætti", + "RemoveImage": "Fjarlægja mynd", + "SuccessfullySaved": "Vistað", + "Menu:CommunityTalks": "Samfélagsspjall", + "Menu:Conferences": "Ráðstefnur", + "Menu:OtherLiveEvents": "Aðrir viðburðir í beinni", + "Menu:SponsoredConferences": "Styrktar ráðstefnur", + "Logo": "Merki", + "Slug": "Snigill", + "CompanyUrl": "Vefslóð fyrirtækis", + "TalkTitle": "Titill spjalls", + "AbstractTopic": "Ágripsefni", + "Bio": "Bio", + "LinkedIn": "LinkedIn", + "Github": "Github", + "Twitch": "Twitch", + "Youtube": "Youtube", + "Twitter": "Twitter", + "PersonalWebsite": "Persónuleg vefsíða", + "VideoId": "Auðkenni myndbands", + "Order": "Panta", + "Image1x1": "Mynd 1x1", + "Image16x9": "Mynd 16x9", + "Banner": "Borði", + "Speaker": "Ræðumaður", + "SessionDate": "Dagsetning fundar", + "AddSession": "Bæta við lotu", + "AddSponsor": "Bæta við styrktaraðila", + "SponsorLogo": "Lógó styrktaraðila", + "RegistrationUrl": "Skráningarslóð" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/it.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/it.json index f4e51f77c0..b03f3bbbf7 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/it.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/it.json @@ -220,6 +220,7 @@ "SuccessfullyReIndexAllPosts": "Tutti i post sono stati reindicizzati con successo.", "Permission:FullSearch": "Ricerca in tutto il testo", "Menu:CliAnalytics": "Cli Analytics", + "Menu:Reports": "Rapporti", "TemplateName": "Nome modello", "TemplateVersion": "Versione modello", "DatabaseProvider": "Provider del database", @@ -231,8 +232,10 @@ "UiFramework": "Framework dell'interfaccia utente", "Options": "Opzioni", "CliAnalytics": "Cli Analytics", + "Reports": "Rapporti", "Permission:CliAnalyticses": "Cli Analyticses", "Permission:CliAnalytics": "Cli Analytics", + "Permission:Reports": "Rapporti", "Search": "Ricerca", "ClearFilter": "Pulisci filtro", "LicensePrivateKey": "Chiave privata licenza", @@ -316,14 +319,12 @@ "TrialLicenseStatusFilter": "Stato", "TrialLicenseStartDateFilter": "Data d'inizio", "TrialLicenseEndDateFilter": "Data di fine", - "FirsName": "nome di battesimo", + "FirstName": "Nome di battesimo", "LastName": "Cognome", "StartDate": "Data d'inizio", "EndDate": "Data di fine", "PurchasedDate": "Data di acquisto", "OrganizationDetail": "Dettagli organizzazione", - "SendActivationMail": "Invia mail di attivazione", - "ActivationMailSentSuccessfully": "E-mail di attivazione inviata con successo!", "TrialLicenseStatus": "Stato della licenza di prova", "TrialLicenseDetail": "Dettagli licenza di prova", "AcceptsMarketingCommunications": "Comunicazioni di marketing", @@ -337,22 +338,228 @@ "Expired": "Scaduto", "TrialLicenseDeletionWarningMessage": "Sei sicuro di voler eliminare la licenza di prova? Licenza di prova, organizzazione, account di supporto verranno eliminati!", "LicenseCategoryFilter": "Categoria di licenza", - "Volo.AbpIo.Commercial:030000": "Hai già utilizzato il periodo di prova.", - "Volo.AbpIo.Commercial:030001": "Questo nome dell'organizzazione esiste già.", - "Volo.AbpIo.Commercial:030002": "Una volta attivata, la licenza di prova non può essere impostata su richiesta!", - "Volo.AbpIo.Commercial:030003": "Non esiste tale stato!", - "Volo.AbpIo.Commercial:030004": "Lo stato non può essere modificato a causa di un errore imprevisto!", - "Volo.AbpIo.Commercial:030005": "La data di inizio e di fine può essere aggiornata quando la licenza di prova è nello stato -attivato-!", - "Volo.AbpIo.Commercial:030006": "La data di fine deve essere sempre maggiore della data di inizio!", - "Volo.AbpIo.Commercial:030007": "Questa licenza di prova è già stata attivata una volta!", - "Volo.AbpIo.Commercial:030008": "La data di acquisto può essere impostata solo quando lo stato è Acquistato!", - "Volo.AbpIo.Commercial:030009": "Utente non trovato!", - "Volo.AbpIo.Commercial:030010": "Per acquistare la licenza di prova, devi prima attivare la tua licenza di prova!", - "Volo.AbpIo.Commercial:030011": "Non è possibile eliminare una licenza di prova al momento dell'acquisto!", + "Permission:SendWelcomeEmail": "Invia e-mail di benvenuto", + "SendWelcomeEmail": "Invia e-mail di benvenuto", + "SendWelcomeEmailWarningMessage": "Sei sicuro di voler inviare un'e-mail di benvenuto ai membri dell'organizzazione?", + "SendWelcomeEmailSuccessMessage": "Email di benvenuto inviata con successo!", + "Activate": "Attivare", + "ActivateTrialLicenseWarningMessage": "Quando attivi una licenza di prova, all'utente verrà inviata un'e-mail di benvenuto. Vuoi attivarlo?", + "ActivateTrialLicenseSuccessMessage": "Attivato con successo e l'e-mail di benvenuto inviata ai membri dell'organizzazione.", + "PaymentRequestId": "ID richiesta di pagamento", + "AdditionalDeveloperCount": "Conteggio sviluppatore aggiuntivo", + "LicensePrice": "Prezzo della licenza", + "PurchaseDate": "Data di acquisto", + "IsAbpBookDownloaded": "Mastering ABP Book scaricato?", + "IsMasteringAbpBookDownloadEnabled": "Download del libro ABP abilitato", + "Permission:Accounting:CustomPaymentLinkGenerator": "Link di pagamento personalizzato", + "CustomPaymentLink": "Link di pagamento personalizzato", + "Menu:CustomPaymentLink": "Link di pagamento personalizzato", + "Amount": "Quantità", + "GenerateCustomPaymentLink": "Genera collegamento di pagamento personalizzato", + "GeneratedPaymentLink": "Link di pagamento generato", + "CopyText": "Copia testo", + "Permission:CommunityEvents": "Eventi", + "Menu:Events": "Eventi", + "Events": "Eventi", + "EventType": "Tipo di evento", + "Number": "Numero", + "RegistrationURL": "URL di registrazione", + "URL": "URL", + "EventDeletionConfirmationMessage": "sei sicuro di voler cancellare questo evento?", + "Enum:EventType:0": "Colloqui comunitari", + "CreateAnEvent": "Crea un evento", + "Permission:CommunitySpeakers": "Altoparlanti", + "CreateASpeaker": "Crea un oratore", + "Speakers": "Altoparlanti", + "Image": "Immagine", + "GithubURL": "URL di Github", + "SpeakerDeletionConfirmationMessage": "Sei sicuro di voler eliminare questo altoparlante?", + "Menu:Speakers": "Altoparlanti", + "ChooseSpeakerImage": "Scegli un'immagine per l'oratore...", + "SpeakerImage": "Immagine dell'oratore", + "AddSpeaker": "Aggiungi altoparlante", + "ShowPurchaseItemsOfOrganizations": "Acquista articoli", + "Enum:OrganizationPurchaseState:0": "Non consegnato", + "Enum:OrganizationPurchaseState:1": "Consegnato", + "PurchaseItems": "Acquista articoli", + "SuccessfullyUpdated": "Aggiornato con successo", + "SuccessfullyAdded": "Aggiunto con successo", + "PurchaseState": "Stato dell'acquisto", + "ShowBetweenDayCount": "Mostra tra giorni", + "PurchaseOrder": "Ordinazione d'acquisto", + "ShowCreateInvoiceOfOrganization": "Crea fattura", + "ShowCreateQuotationOfOrganization": "Crea preventivo", + "BookDiscounts": "Sconti sui libri", + "Permission:BookDiscount": "Sconto sul libro", + "Menu:BookDiscounts": "Sconti sui libri", + "BookType": "Tipo di libro", + "PurchasePlatform": "Piattaforma di acquisto", + "StartTime": "Ora di inizio", + "EndTime": "Tempo scaduto", + "CreateABookDiscount": "Crea uno sconto sul libro", + "BookDiscountDeletionConfirmationMessage": "Sei sicuro di voler eliminare questo sconto sul libro?", + "CustomPaymentFlexSwitchDescription": "Con licenza", + "AllowFeatureUpgradeOnLicenseExpire": "Consenti l'aggiornamento delle funzionalità alla scadenza della licenza", + "Deleted{0}": "[Eliminato {0}]", + "Tags": "Tag", + "SetTagsInfo": "I tag devono essere separati da virgole. Ad esempio: CSharp, Entity Framework", + "RejectTrialLicenseWarningMessage": "Sei sicuro di voler rifiutare questa richiesta di licenza di prova?", + "ExportToExcel": "esportare in Excel", + "OverallTotalPrice": "Prezzo totale complessivo", + "OverallDiscountPrice": "Prezzo scontato complessivo", + "OverallDiscountText": "Testo dello sconto complessivo", + "SelectReport": "- Seleziona Rapporto -", + "NoDataAvailable": "Nessun dato disponibile", + "StatisticsOfCachedContents": "Statistiche del contenuto del pacchetto NuGet memorizzato nella cache per nuget.abp.io", + "Compact": "Compatto", + "EditSettings": "Modificare le impostazioni", + "CurrentEstimatedSize": "Dimensione stimata attuale", + "CurrentEntryCount": "Conteggio delle voci correnti", + "TotalHits": "Hit totali", + "TotalMisses": "Totali mancati", + "NoResponseFrom": "Nessuna risposta da", + "ContentCacheSlidingExpirationByDay": "Scadenza scorrevole della cache dei contenuti per giorno", + "MaxDaysForCaching": "Giorni massimi per la memorizzazione nella cache", + "Enabled": "Abilitato", + "Menu:NugetPackagesContentCache": "Cache NuGet", + "NugetPackagesContentCache": "Cache dei contenuti NuGet", + "SlidingExpritionByDayInfo": "Ottiene o imposta per quanto tempo una voce della cache può rimanere inattiva (ad esempio, non accessibile) prima che venga rimossa. Ciò non prolungherà la durata dell'iscrizione oltre la scadenza assoluta.", + "MaxDaysForCachingInfo": "Ottiene o imposta una scadenza assoluta, relativa al momento.", + "CurrentEstimatedSizeInfo": "Indica una somma stimata delle dimensioni del contenuto di tutti i pacchetti NuGet attualmente nella cache di memoria", + "CurrentEntryCountInfo": "Indica il numero di istanze attualmente nella cache di memoria.", + "TotalHitsInfo": "Indica il numero totale di cache miss. Un riscontro nella cache si verifica quando un file viene richiesto da una cache e la cache è in grado di soddisfare tale richiesta.", + "TotalMissesInfo": "Indica il numero totale di riscontri nella cache. Un errore nella cache si verifica quando la cache non contiene il contenuto richiesto.", + "Permission:VersionHistory": "Cronologia delle versioni", + "Caches": "Cache", + "VersionHistories": "Cronologia delle versioni", + "Version": "Versione", + "PublishDate": "Data di pubblicazione", + "IsStableVersion": "Versione stabile", + "IsActive": "Attivo", + "NewVersion": "Nuova versione", + "VersionHistoryDeletionConfirmationMessage": "Sei sicuro di voler eliminare questa versione?", + "CreateAbpConsultantLogoInfo": "Dimensione massima del file: 1 MB
Tipi di file supportati: jpg, jpeg, png, SVG, WebP", + "UrlCode": "Codice URL", + "Clear": "Chiaro", + "Permission:AbpConsultant": "Consulente dell'ABP", + "Menu:AbpConsultants": "Consulenti ABP", + "CreateAbpConsultant": "Creare un consulente ABP", + "UrlCodeIsNotAvailable": "Il codice URL viene utilizzato da un altro consulente ABP.", + "AbpConsultants": "Consulenti ABP", + "AbpConsultant": "Consulente dell'ABP", + "AbpConsultantEdit": "Modifica consulente ABP", + "AbpConsultantCreate": "Creare un consulente ABP", + "WhoWeAreItem": "Chi siamo Articolo", + "FieldIsRequired": "{0} è obbligatorio.", + "FieldIsNotValid": "{0} non è valido.", + "InterestedLicenseType": "Tipo di licenza interessato", "MoveWaitList": "Passa alla lista d'attesa", "CommunityLinkTitle": "Apri sul sito web della comunità", "CommunityLink": "Collegamento comunitario", "ReloadFromSource": "Ricarica dalla sorgente", - "ReloadFromSourceConfirmationMessage": "Questo post verrà aggiornato da \"{0}\". Volete continuare?" + "ReloadFromSourceConfirmationMessage": "Questo post verrà aggiornato da \"{0}\". Volete continuare?", + "UnitPrice": "Prezzo unitario", + "OverallDiscountAmount": "Importo complessivo dello sconto", + "DiscountAmount": "Totale sconto", + "FullChangeHistory": "Cronologia completa delle modifiche", + "Permission:RefreshReleaseLogs": "Aggiorna i registri di rilascio", + "ReleaseLogs": "Registri di rilascio", + "AuthorUserName": "Nome utente autore", + "Type": "Tipo", + "TotalDiscount": "Sconto totale", + "SubTotal": "Totale parziale", + "TotalDue": "Totale dovuto", + "QuotationNo": "Citazione n", + "ValidTill": "Valido fino a", + "QuotationNote": "Nota di citazione", + "QuotationTemplate.Address:": "Indirizzo:", + "QuotationTemplate.VATNo:": "Partita IVA:", + "QuotationTemplate.Phone:": "Telefono:", + "QuotationTemplate.E-mail:": "E-mail:", + "QuotationTemplate.Quotation": "Quotazione", + "QuotationTemplate.To": "A", + "QuotationTemplate.Details": "Dettagli", + "QuotationTemplate.QuotationNo:": "Quotazione #:", + "QuotationTemplate.IssueDate:": "Data di emissione:", + "QuotationTemplate.ValidTill:": "Valido fino a:", + "QuotationTemplate.ValidDays": "{0} giorni", + "QuotationTemplate.Description": "Descrizione", + "QuotationTemplate.UnitPrice": "Prezzo unitario", + "QuotationTemplate.Qty": "Qtà", + "QuotationTemplate.Discount": "Sconto", + "QuotationTemplate.Total": "Totale", + "QuotationTemplate.Notes": "Appunti", + "QuotationTemplate.SubTotal:": "Totale parziale :", + "QuotationTemplate.Tax/VAT:": "Tasse/Iva (%{0}):", + "QuotationTemplate.TotalDiscount:": "Sconto totale:", + "QuotationTemplate.TOTALDUE:": "TOTALE DOVUTO :", + "QuotationTemplate.BankAccount": "Le informazioni sul nostro conto bancario sono reperibili all'indirizzo {0}", + "Permission:Raffles": "Lotteria", + "Permission:Draw": "Disegno", + "Menu:Raffles": "Lotterie", + "RaffleIsNotDrawable": "La lotteria non è estraibile", + "WinnerCountMustBeGreaterThanZero": "Il conteggio dei vincitori deve essere maggiore di zero", + "FullDescription": "Descrizione completa", + "VisibilityStartDate": "Data di inizio visibilità", + "VisibilityEndDate": "Data di fine visibilità", + "RaffleDate": "Appuntamento della lotteria", + "SubscriptionCode": "Codice di abbonamento", + "GroupCode": "Codice del gruppo", + "MaxWinnerCount": "Conteggio massimo dei vincitori", + "ReDraw": "Ridisegna", + "EditRaffle": "Modifica lotteria", + "Raffles": "Lotterie", + "CreateARaffle": "Crea una lotteria", + "Draw": "Disegno", + "Enum:RaffleStatus:0": "Attivo", + "Enum:RaffleStatus:1": "Prossimo", + "Enum:RaffleStatus:2": "Passato", + "DrawDone": "Disegna fatto", + "HomePageShowType": "La pagina iniziale mostra il tipo", + "None": "Nessuno", + "Card": "Carta", + "Horizontal": "Orizzontale", + "Winners": "Vincitori", + "StartDateMustBeLessThanEndDate": "La data di inizio deve essere inferiore alla data di fine", + "VisibilityStartDateMustBeLessThanVisibilityEndDate": "La data di inizio visibilità deve essere inferiore alla data di fine visibilità", + "StartDateMustBeGreaterThanVisibilityStartDate": "La data di inizio deve essere successiva alla data di inizio della visibilità", + "EndDateMustBeLessThanVisibilityEndDate": "La data di fine deve essere inferiore alla data di fine della visibilità", + "DrawnDone": "Disegnato Fatto", + "AddColor": "Aggiungi colore", + "Colors": "Colori", + "RemoveColor": "Rimuovi colore", + "MaxColorCountWarning": "Puoi aggiungere fino a {0} colori", + "MinColorCountWarning": "Devi aggiungere almeno {0} colori", + "RaffleDeletionConfirmationMessage": "Sei sicuro di voler eliminare questa lotteria?", + "CreateRaffle": "Crea lotteria", + "RemoveImage": "Rimuovi immagine", + "SuccessfullySaved": "Salvato con successo", + "Menu:CommunityTalks": "Colloqui comunitari", + "Menu:Conferences": "Conferenze", + "Menu:OtherLiveEvents": "Altri eventi dal vivo", + "Menu:SponsoredConferences": "Conferenze sponsorizzate", + "Logo": "Logo", + "Slug": "Lumaca", + "CompanyUrl": "URL dell'azienda", + "TalkTitle": "Titolo della discussione", + "AbstractTopic": "Argomento astratto", + "Bio": "Bio", + "LinkedIn": "LinkedIn", + "Github": "Github", + "Twitch": "Contrazione", + "Youtube": "Youtube", + "Twitter": "Twitter", + "PersonalWebsite": "Sito web personale", + "VideoId": "ID video", + "Order": "Ordine", + "Image1x1": "Immagine 1x1", + "Image16x9": "Immagine 16x9", + "Banner": "Stendardo", + "Speaker": "Altoparlante", + "SessionDate": "Data della sessione", + "AddSession": "Aggiungi sessione", + "AddSponsor": "Aggiungi sponsor", + "SponsorLogo": "Logo dello sponsor", + "RegistrationUrl": "URL di registrazione" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/nl.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/nl.json index d6c0aa683a..3ddd7ae385 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/nl.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/nl.json @@ -220,6 +220,7 @@ "SuccessfullyReIndexAllPosts": "Alle berichten zijn met succes opnieuw geïndexeerd.", "Permission:FullSearch": "Zoek volledige text", "Menu:CliAnalytics": "Cli-analyse", + "Menu:Reports": "Rapporten", "TemplateName": "Sjabloonnaam", "TemplateVersion": "Sjabloonversie", "DatabaseProvider": "Databaseprovider", @@ -231,8 +232,10 @@ "UiFramework": "Ui-framework", "Options": "Opties", "CliAnalytics": "Cli-analyse", + "Reports": "Rapporten", "Permission:CliAnalyticses": "Cli-analyses", "Permission:CliAnalytics": "Cli-analyse", + "Permission:Reports": "Rapporten", "Search": "Zoeken", "ClearFilter": "Filter wissen", "LicensePrivateKey": "Licentie privésleutel", @@ -316,14 +319,12 @@ "TrialLicenseStatusFilter": "Toestand", "TrialLicenseStartDateFilter": "Startdatum", "TrialLicenseEndDateFilter": "Einddatum", - "FirsName": "Voornaam", + "FirstName": "Voornaam", "LastName": "Achternaam", "StartDate": "Startdatum", "EndDate": "Einddatum", "PurchasedDate": "Aankoopdatum", "OrganizationDetail": "Organisatiedetails", - "SendActivationMail": "Activeringsmail verzenden", - "ActivationMailSentSuccessfully": "Activeringsmail succesvol verzonden!", "TrialLicenseStatus": "Status van proeflicentie", "TrialLicenseDetail": "Details proeflicentie", "AcceptsMarketingCommunications": "Marketingcommunicatie", @@ -337,17 +338,228 @@ "Expired": "Verlopen", "TrialLicenseDeletionWarningMessage": "Weet u zeker dat u de proeflicentie wilt verwijderen? Proeflicentie, organisatie, ondersteuningsaccounts worden verwijderd!", "LicenseCategoryFilter": "Licentie categorie", - "Volo.AbpIo.Commercial:030000": "Je hebt je proefperiode al gebruikt.", - "Volo.AbpIo.Commercial:030001": "Deze organisatienaam bestaat al.", - "Volo.AbpIo.Commercial:030002": "Eenmaal geactiveerd, kan de proeflicentie niet worden ingesteld op aangevraagd!", - "Volo.AbpIo.Commercial:030003": "Zo'n status bestaat niet!", - "Volo.AbpIo.Commercial:030004": "Status kon niet worden gewijzigd vanwege een onverwachte fout!", - "Volo.AbpIo.Commercial:030005": "Start- en einddatum kunnen worden bijgewerkt wanneer de proeflicentie de status -geactiveerd- heeft!", - "Volo.AbpIo.Commercial:030006": "Einddatum moet altijd groter zijn dan startdatum!", - "Volo.AbpIo.Commercial:030007": "Deze proeflicentie is al een keer geactiveerd!", - "Volo.AbpIo.Commercial:030008": "De aankoopdatum kan alleen worden ingesteld als de status Gekocht is!", - "Volo.AbpIo.Commercial:030009": "Gebruiker niet gevonden!", - "Volo.AbpIo.Commercial:030010": "Om de proeflicentie aan te schaffen, moet u eerst uw proeflicentie activeren!", - "Volo.AbpIo.Commercial:030011": "U kunt een proeflicentie niet verwijderen wanneer deze is gekocht!" + "Permission:SendWelcomeEmail": "Welkomstmail verzenden", + "SendWelcomeEmail": "Welkomstmail verzenden", + "SendWelcomeEmailWarningMessage": "Weet u zeker dat u een welkomstmail naar de leden van de organisatie wilt sturen?", + "SendWelcomeEmailSuccessMessage": "Welkomstmail succesvol verzonden!", + "Activate": "Activeren", + "ActivateTrialLicenseWarningMessage": "Wanneer u een proeflicentie activeert, wordt er een welkomstmail naar de gebruiker verzonden. Wil je het activeren?", + "ActivateTrialLicenseSuccessMessage": "Succesvol geactiveerd en de welkomstmail verzonden naar de organisatieleden.", + "PaymentRequestId": "Betalingsverzoek-ID", + "AdditionalDeveloperCount": "Extra aantal ontwikkelaars", + "LicensePrice": "Licentie prijs", + "PurchaseDate": "Aankoopdatum", + "IsAbpBookDownloaded": "Mastering ABP Boek gedownload?", + "IsMasteringAbpBookDownloadEnabled": "ABP Boek downloaden ingeschakeld", + "Permission:Accounting:CustomPaymentLinkGenerator": "Aangepaste betalingslink", + "CustomPaymentLink": "Aangepaste betalingslink", + "Menu:CustomPaymentLink": "Aangepaste betalingslink", + "Amount": "Hoeveelheid", + "GenerateCustomPaymentLink": "Genereer een aangepaste betalingslink", + "GeneratedPaymentLink": "Gegenereerde betalingslink", + "CopyText": "Kopieer tekst", + "Permission:CommunityEvents": "Evenementen", + "Menu:Events": "Evenementen", + "Events": "Evenementen", + "EventType": "Evenementtype", + "Number": "Nummer", + "RegistrationURL": "Registratie-URL", + "URL": "URL", + "EventDeletionConfirmationMessage": "Weet je zeker dat je dit evenement wilt verwijderen?", + "Enum:EventType:0": "Gemeenschapsgesprekken", + "CreateAnEvent": "Maak een evenement aan", + "Permission:CommunitySpeakers": "Luidsprekers", + "CreateASpeaker": "Maak een spreker", + "Speakers": "Luidsprekers", + "Image": "Afbeelding", + "GithubURL": "Github-URL", + "SpeakerDeletionConfirmationMessage": "Weet je zeker dat je deze speaker wilt verwijderen?", + "Menu:Speakers": "Luidsprekers", + "ChooseSpeakerImage": "Kies een luidsprekerafbeelding...", + "SpeakerImage": "Spreker afbeelding", + "AddSpeaker": "Spreker toevoegen", + "ShowPurchaseItemsOfOrganizations": "Artikelen kopen", + "Enum:OrganizationPurchaseState:0": "Niet geleverd", + "Enum:OrganizationPurchaseState:1": "Afgeleverd", + "PurchaseItems": "Artikelen kopen", + "SuccessfullyUpdated": "Succesvol geüpdatet", + "SuccessfullyAdded": "Succesvol toegevoegd", + "PurchaseState": "Aankoopstatus", + "ShowBetweenDayCount": "Tussen dagen weergeven", + "PurchaseOrder": "Bestelling", + "ShowCreateInvoiceOfOrganization": "Factuur maken", + "ShowCreateQuotationOfOrganization": "Offerte maken", + "BookDiscounts": "Boek kortingen", + "Permission:BookDiscount": "Boek korting", + "Menu:BookDiscounts": "Boek kortingen", + "BookType": "Boektype", + "PurchasePlatform": "Aankoopplatform", + "StartTime": "Starttijd", + "EndTime": "Eindtijd", + "CreateABookDiscount": "Creëer een boekenkorting", + "BookDiscountDeletionConfirmationMessage": "Weet u zeker dat u deze boekenkorting wilt verwijderen?", + "CustomPaymentFlexSwitchDescription": "Met licentie", + "AllowFeatureUpgradeOnLicenseExpire": "Functie-upgrade toestaan wanneer de licentie verloopt", + "Deleted{0}": "[Verwijderd {0}]", + "Tags": "Labels", + "SetTagsInfo": "Tags moeten door komma's worden gescheiden. Bijvoorbeeld: CSharp, Entity Framework", + "RejectTrialLicenseWarningMessage": "Weet u zeker dat u dit proeflicentieverzoek wilt afwijzen?", + "ExportToExcel": "Exporteren naar Excel", + "OverallTotalPrice": "Totale totaalprijs", + "OverallDiscountPrice": "Algemene kortingsprijs", + "OverallDiscountText": "Algemene kortingstekst", + "SelectReport": "- Selecteer Rapport -", + "NoDataAvailable": "Geen gegevens beschikbaar", + "StatisticsOfCachedContents": "Statistieken van de inhoud van het NuGet-pakket in de cache voor nuget.abp.io", + "Compact": "Compact", + "EditSettings": "Instellingen bewerken", + "CurrentEstimatedSize": "Huidige geschatte grootte", + "CurrentEntryCount": "Huidig aantal inschrijvingen", + "TotalHits": "Totaal aantal hits", + "TotalMisses": "Totaal aantal missers", + "NoResponseFrom": "Geen reactie van", + "ContentCacheSlidingExpirationByDay": "Inhoudscache met glijdende vervaldatum per dag", + "MaxDaysForCaching": "Max. dagen voor caching", + "Enabled": "Ingeschakeld", + "Menu:NugetPackagesContentCache": "NuGet-cache", + "NugetPackagesContentCache": "NuGet-inhoudscache", + "SlidingExpritionByDayInfo": "Haalt of stelt in hoe lang een cache-item inactief kan zijn (bijvoorbeeld niet geopend) voordat het wordt verwijderd. Dit verlengt de instaplevensduur niet voorbij de absolute vervaldatum.", + "MaxDaysForCachingInfo": "Haalt of stelt een absolute vervaltijd in, relatief ten opzichte van nu.", + "CurrentEstimatedSizeInfo": "Geeft een geschatte som aan van de inhoudsgrootte van alle NuGet-pakketten die zich momenteel in de geheugencache bevinden", + "CurrentEntryCountInfo": "Geeft het aantal exemplaren aan dat zich momenteel in de geheugencache bevindt.", + "TotalHitsInfo": "Geeft het totale aantal cachemissers aan. Een cachetreffer treedt op wanneer een bestand uit een cache wordt opgevraagd en de cache aan dat verzoek kan voldoen.", + "TotalMissesInfo": "Geeft het totale aantal cachehits aan. Er is sprake van een cachemisser als de cache niet de gevraagde inhoud bevat.", + "Permission:VersionHistory": "Versiegeschiedenis", + "Caches": "Caches", + "VersionHistories": "Versiegeschiedenis", + "Version": "Versie", + "PublishDate": "Publiceer datum", + "IsStableVersion": "Stabiele versie", + "IsActive": "Actief", + "NewVersion": "Nieuwe versie", + "VersionHistoryDeletionConfirmationMessage": "Weet u zeker dat u deze versie wilt verwijderen?", + "CreateAbpConsultantLogoInfo": "Maximale bestandsgrootte: 1MB
Ondersteunde bestandstypen: jpg, jpeg, png, SVG, WebP", + "UrlCode": "URL-code", + "Clear": "Duidelijk", + "Permission:AbpConsultant": "ABP-consulent", + "Menu:AbpConsultants": "ABP-consulenten", + "CreateAbpConsultant": "ABP-consulent aanmaken", + "UrlCodeIsNotAvailable": "URL-code wordt gebruikt door een andere ABP-consulent.", + "AbpConsultants": "ABP-consulenten", + "AbpConsultant": "ABP-consulent", + "AbpConsultantEdit": "Bewerken ABP-consulent", + "AbpConsultantCreate": "ABP-consulent aanmaken", + "WhoWeAreItem": "Wie zijn wij Artikel", + "FieldIsRequired": "{0} is vereist.", + "FieldIsNotValid": "{0} is niet geldig.", + "InterestedLicenseType": "Geïnteresseerd licentietype", + "MoveWaitList": "Verplaats naar wachtlijst", + "CommunityLinkTitle": "Openen op de communitywebsite", + "CommunityLink": "Gemeenschapslink", + "ReloadFromSource": "Herladen vanaf de bron", + "ReloadFromSourceConfirmationMessage": "Dit bericht wordt vernieuwd vanaf '{0}'. Wil je doorgaan?", + "UnitPrice": "Eenheid prijs", + "OverallDiscountAmount": "Totaal kortingsbedrag", + "DiscountAmount": "Korting hoeveelheid", + "FullChangeHistory": "Volledige wijzigingsgeschiedenis", + "Permission:RefreshReleaseLogs": "Ververs de releaselogboeken", + "ReleaseLogs": "Logboeken vrijgeven", + "AuthorUserName": "Gebruikersnaam auteur", + "Type": "Type", + "TotalDiscount": "Totale korting", + "SubTotal": "Subtotaal", + "TotalDue": "Totaal verschuldigd", + "QuotationNo": "Offerte nr", + "ValidTill": "Geldig tot", + "QuotationNote": "Citaat opmerking", + "QuotationTemplate.Address:": "Adres:", + "QuotationTemplate.VATNo:": "Btw nr:", + "QuotationTemplate.Phone:": "Telefoon:", + "QuotationTemplate.E-mail:": "E-mail:", + "QuotationTemplate.Quotation": "Offerte", + "QuotationTemplate.To": "Naar", + "QuotationTemplate.Details": "Details", + "QuotationTemplate.QuotationNo:": "Offerte #:", + "QuotationTemplate.IssueDate:": "Datum van publicatie:", + "QuotationTemplate.ValidTill:": "Geldig tot:", + "QuotationTemplate.ValidDays": "{0} dagen", + "QuotationTemplate.Description": "Beschrijving", + "QuotationTemplate.UnitPrice": "Eenheid prijs", + "QuotationTemplate.Qty": "Aantal", + "QuotationTemplate.Discount": "Korting", + "QuotationTemplate.Total": "Totaal", + "QuotationTemplate.Notes": "Opmerkingen", + "QuotationTemplate.SubTotal:": "Subtotaal:", + "QuotationTemplate.Tax/VAT:": "Belasting/btw (%{0}):", + "QuotationTemplate.TotalDiscount:": "Totale korting :", + "QuotationTemplate.TOTALDUE:": "TOTAAL VERSCHULDIGD :", + "QuotationTemplate.BankAccount": "Onze bankrekeninggegevens vindt u op {0}", + "Permission:Raffles": "Verloten", + "Permission:Draw": "Tekenen", + "Menu:Raffles": "Loterijen", + "RaffleIsNotDrawable": "Loterij is niet tekenbaar", + "WinnerCountMustBeGreaterThanZero": "Het aantal winnaars moet groter zijn dan nul", + "FullDescription": "Volledige beschrijving", + "VisibilityStartDate": "Begindatum zichtbaarheid", + "VisibilityEndDate": "Einddatum zichtbaarheid", + "RaffleDate": "Datum loterij", + "SubscriptionCode": "Abonnementscode", + "GroupCode": "Groepscode", + "MaxWinnerCount": "Maximaal aantal winnaars", + "ReDraw": "Terugtrekken", + "EditRaffle": "Raffles bewerken", + "Raffles": "Loterijen", + "CreateARaffle": "Maak een loterij", + "Draw": "Tekenen", + "Enum:RaffleStatus:0": "Actief", + "Enum:RaffleStatus:1": "Volgende", + "Enum:RaffleStatus:2": "Verleden", + "DrawDone": "Teken klaar", + "HomePageShowType": "Startpagina Toon type", + "None": "Geen", + "Card": "Kaart", + "Horizontal": "Horizontaal", + "Winners": "Winnaars", + "StartDateMustBeLessThanEndDate": "De startdatum moet korter zijn dan de einddatum", + "VisibilityStartDateMustBeLessThanVisibilityEndDate": "De startdatum van de zichtbaarheid moet korter zijn dan de einddatum van de zichtbaarheid", + "StartDateMustBeGreaterThanVisibilityStartDate": "De startdatum moet groter zijn dan de startdatum voor zichtbaarheid", + "EndDateMustBeLessThanVisibilityEndDate": "De einddatum moet korter zijn dan de einddatum voor zichtbaarheid", + "DrawnDone": "Getrokken Klaar", + "AddColor": "Kleur toevoegen", + "Colors": "Kleuren", + "RemoveColor": "Kleur verwijderen", + "MaxColorCountWarning": "U kunt maximaal {0} kleuren toevoegen", + "MinColorCountWarning": "Je moet minimaal {0} kleuren toevoegen", + "RaffleDeletionConfirmationMessage": "Weet je zeker dat je deze loterij wilt verwijderen?", + "CreateRaffle": "Maak een loterij", + "RemoveImage": "Afbeelding verwijderen", + "SuccessfullySaved": "Succesvol opgeslagen", + "Menu:CommunityTalks": "Gemeenschapsgesprekken", + "Menu:Conferences": "Conferenties", + "Menu:OtherLiveEvents": "Andere live-evenementen", + "Menu:SponsoredConferences": "Gesponsorde conferenties", + "Logo": "Logo", + "Slug": "Naaktslak", + "CompanyUrl": "Bedrijfs-URL", + "TalkTitle": "Titel van gesprek", + "AbstractTopic": "Abstract onderwerp", + "Bio": "Bio", + "LinkedIn": "LinkedIn", + "Github": "Github", + "Twitch": "Zenuwtrekking", + "Youtube": "YouTube", + "Twitter": "Twitteren", + "PersonalWebsite": "Persoonlijke website", + "VideoId": "Video-ID", + "Order": "Volgorde", + "Image1x1": "Afbeelding 1x1", + "Image16x9": "Afbeelding 16x9", + "Banner": "Banier", + "Speaker": "Spreker", + "SessionDate": "Sessie Datum", + "AddSession": "Sessie toevoegen", + "AddSponsor": "Sponsor toevoegen", + "SponsorLogo": "Sponsorlogo", + "RegistrationUrl": "Registratie-URL" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/pl-PL.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/pl-PL.json index da41dee7e3..059ea39311 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/pl-PL.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/pl-PL.json @@ -220,6 +220,7 @@ "SuccessfullyReIndexAllPosts": "Wszystkie posty zostały pomyślnie ponownie zindeksowane.", "Permission:FullSearch": "Wyszukiwanie pełnotekstowe", "Menu:CliAnalytics": "Analiza Cli", + "Menu:Reports": "Raporty", "TemplateName": "Nazwa szablonu", "TemplateVersion": "Wersja szablonu", "DatabaseProvider": "Dostawca bazy danych", @@ -231,8 +232,10 @@ "UiFramework": "Ramy interfejsu użytkownika", "Options": "Opcje", "CliAnalytics": "Analiza Cli", + "Reports": "Raporty", "Permission:CliAnalyticses": "Analizy Cli", "Permission:CliAnalytics": "Analiza Cli", + "Permission:Reports": "Raporty", "Search": "Szukaj", "ClearFilter": "Czysty filtr", "LicensePrivateKey": "Klucz prywatny licencji", @@ -316,14 +319,12 @@ "TrialLicenseStatusFilter": "Status", "TrialLicenseStartDateFilter": "Data rozpoczęcia", "TrialLicenseEndDateFilter": "Data końcowa", - "FirsName": "Imię", + "FirstName": "Imię", "LastName": "Nazwisko", "StartDate": "Data rozpoczęcia", "EndDate": "Data końcowa", "PurchasedDate": "Data zakupu", "OrganizationDetail": "Szczegóły organizacji", - "SendActivationMail": "Wyślij wiadomość aktywacyjną", - "ActivationMailSentSuccessfully": "Wiadomość aktywacyjna wysłana pomyślnie!", "TrialLicenseStatus": "Status licencji próbnej", "TrialLicenseDetail": "Szczegóły licencji próbnej", "AcceptsMarketingCommunications": "Komunikacja marketingowa", @@ -337,17 +338,228 @@ "Expired": "Wygasły", "TrialLicenseDeletionWarningMessage": "Czy na pewno chcesz usunąć licencję próbną? Licencja próbna, organizacja, konta wsparcia zostaną usunięte!", "LicenseCategoryFilter": "Kategoria licencji", - "Volo.AbpIo.Commercial:030000": "Korzystałeś już z okresu próbnego.", - "Volo.AbpIo.Commercial:030001": "Ta nazwa organizacji już istnieje.", - "Volo.AbpIo.Commercial:030002": "Po aktywacji licencji próbnej nie można ustawić na żądanie!", - "Volo.AbpIo.Commercial:030003": "Nie ma takiego statusu!", - "Volo.AbpIo.Commercial:030004": "Nie można zmienić statusu z powodu nieoczekiwanego błędu!", - "Volo.AbpIo.Commercial:030005": "Datę rozpoczęcia i zakończenia można zaktualizować, gdy licencja testowa ma status -aktywowana-!", - "Volo.AbpIo.Commercial:030006": "Data zakończenia musi być zawsze późniejsza niż data rozpoczęcia!", - "Volo.AbpIo.Commercial:030007": "Ta licencja próbna została już raz aktywowana!", - "Volo.AbpIo.Commercial:030008": "Datę zakupu można ustawić tylko wtedy, gdy status to Kupione!", - "Volo.AbpIo.Commercial:030009": "Użytkownik nie znaleziony!", - "Volo.AbpIo.Commercial:030010": "Aby kupić licencję próbną, najpierw musisz aktywować licencję próbną!", - "Volo.AbpIo.Commercial:030011": "Zakupionej licencji próbnej nie można usunąć!" + "Permission:SendWelcomeEmail": "Wyślij e-mail powitalny", + "SendWelcomeEmail": "Wyślij e-mail powitalny", + "SendWelcomeEmailWarningMessage": "Czy na pewno chcesz wysłać wiadomość powitalną do członków organizacji?", + "SendWelcomeEmailSuccessMessage": "E-mail powitalny został wysłany pomyślnie!", + "Activate": "Aktywuj", + "ActivateTrialLicenseWarningMessage": "Po aktywowaniu licencji próbnej do użytkownika zostanie wysłana wiadomość powitalna. Czy chcesz to aktywować?", + "ActivateTrialLicenseSuccessMessage": "Aktywowano pomyślnie i wiadomość powitalna została wysłana do członków organizacji.", + "PaymentRequestId": "Identyfikator żądania płatności", + "AdditionalDeveloperCount": "Dodatkowa liczba programistów", + "LicensePrice": "Cena licencji", + "PurchaseDate": "Data zakupu", + "IsAbpBookDownloaded": "Pobrałeś książkę Mastering ABP?", + "IsMasteringAbpBookDownloadEnabled": "Pobieranie książki ABP włączone", + "Permission:Accounting:CustomPaymentLinkGenerator": "Niestandardowy link do płatności", + "CustomPaymentLink": "Niestandardowy link do płatności", + "Menu:CustomPaymentLink": "Niestandardowy link do płatności", + "Amount": "Kwota", + "GenerateCustomPaymentLink": "Wygeneruj niestandardowy link do płatności", + "GeneratedPaymentLink": "Wygenerowany link do płatności", + "CopyText": "Skopiuj tekst", + "Permission:CommunityEvents": "Wydarzenia", + "Menu:Events": "Wydarzenia", + "Events": "Wydarzenia", + "EventType": "Typ wydarzenia", + "Number": "Numer", + "RegistrationURL": "Adres URL rejestracji", + "URL": "Adres URL", + "EventDeletionConfirmationMessage": "Czy na pewno chcesz usunąć to wydarzenie?", + "Enum:EventType:0": "Rozmowy społecznościowe", + "CreateAnEvent": "Utwórz wydarzenie", + "Permission:CommunitySpeakers": "Głośniki", + "CreateASpeaker": "Utwórz głośnik", + "Speakers": "Głośniki", + "Image": "Obraz", + "GithubURL": "Adres URL Githuba", + "SpeakerDeletionConfirmationMessage": "Czy na pewno chcesz usunąć tego głośnika?", + "Menu:Speakers": "Głośniki", + "ChooseSpeakerImage": "Wybierz obraz głośnika...", + "SpeakerImage": "Obraz głośnika", + "AddSpeaker": "Dodaj głośnik", + "ShowPurchaseItemsOfOrganizations": "Przedmioty zakupu", + "Enum:OrganizationPurchaseState:0": "Nie dostarczono", + "Enum:OrganizationPurchaseState:1": "Dostarczony", + "PurchaseItems": "Przedmioty zakupu", + "SuccessfullyUpdated": "Pomyślnie zaktualizowano", + "SuccessfullyAdded": "Pomyslnie dodano", + "PurchaseState": "Stan zakupu", + "ShowBetweenDayCount": "Pokaż Między dniami", + "PurchaseOrder": "Zamówienie", + "ShowCreateInvoiceOfOrganization": "Wystaw fakturę", + "ShowCreateQuotationOfOrganization": "Utwórz ofertę", + "BookDiscounts": "Rabaty na książki", + "Permission:BookDiscount": "Rabat na książki", + "Menu:BookDiscounts": "Rabaty na książki", + "BookType": "Typ książki", + "PurchasePlatform": "Platforma zakupowa", + "StartTime": "Czas rozpoczęcia", + "EndTime": "Koniec czasu", + "CreateABookDiscount": "Utwórz zniżkę na książki", + "BookDiscountDeletionConfirmationMessage": "Czy na pewno chcesz usunąć tę zniżkę na książkę?", + "CustomPaymentFlexSwitchDescription": "Z licencją", + "AllowFeatureUpgradeOnLicenseExpire": "Zezwalaj na aktualizację funkcji po wygaśnięciu licencji", + "Deleted{0}": "[Usunięto {0}]", + "Tags": "Tagi", + "SetTagsInfo": "Tagi należy oddzielić przecinkami. Np.: CSharp, Entity Framework", + "RejectTrialLicenseWarningMessage": "Czy na pewno chcesz odrzucić tę prośbę o licencję próbną?", + "ExportToExcel": "Eksport do Excela", + "OverallTotalPrice": "Ogólna cena całkowita", + "OverallDiscountPrice": "Ogólna cena promocyjna", + "OverallDiscountText": "Ogólny tekst rabatu", + "SelectReport": "- Wybierz Raport -", + "NoDataAvailable": "Brak dostępnych danych", + "StatisticsOfCachedContents": "Statystyki zawartości buforowanego pakietu NuGet dla nuget.abp.io", + "Compact": "Kompaktowy", + "EditSettings": "Edytuj ustawienia", + "CurrentEstimatedSize": "Bieżący szacowany rozmiar", + "CurrentEntryCount": "Aktualna liczba wejść", + "TotalHits": "Całkowita liczba trafień", + "TotalMisses": "Totalne braki", + "NoResponseFrom": "Brak odpowiedzi od", + "ContentCacheSlidingExpirationByDay": "Przesuwana data ważności pamięci podręcznej zawartości według dnia", + "MaxDaysForCaching": "Maksymalna liczba dni buforowania", + "Enabled": "Włączony", + "Menu:NugetPackagesContentCache": "Pamięć podręczna NuGeta", + "NugetPackagesContentCache": "Pamięć podręczna zawartości NuGet", + "SlidingExpritionByDayInfo": "Pobiera lub ustawia, jak długo wpis pamięci podręcznej może być nieaktywny (np. nie można uzyskać do niego dostępu), zanim zostanie usunięty. Nie spowoduje to przedłużenia ważności wpisu poza bezwzględną datę wygaśnięcia.", + "MaxDaysForCachingInfo": "Pobiera lub ustawia bezwzględny czas wygaśnięcia względem chwili obecnej.", + "CurrentEstimatedSizeInfo": "Wskazuje szacowaną sumę rozmiaru zawartości wszystkich pakietów NuGet aktualnie znajdujących się w pamięci podręcznej", + "CurrentEntryCountInfo": "Wskazuje liczbę instancji aktualnie znajdujących się w pamięci podręcznej.", + "TotalHitsInfo": "Wskazuje całkowitą liczbę braków pamięci podręcznej. Trafienie w pamięć podręczną ma miejsce, gdy żądany jest plik z pamięci podręcznej, a pamięć podręczna jest w stanie spełnić to żądanie.", + "TotalMissesInfo": "Wskazuje całkowitą liczbę trafień w pamięci podręcznej. Brak pamięci podręcznej ma miejsce, gdy pamięć podręczna nie zawiera żądanej zawartości.", + "Permission:VersionHistory": "Historia wersji", + "Caches": "Skrytki", + "VersionHistories": "Historia wersji", + "Version": "Wersja", + "PublishDate": "Data publikacji", + "IsStableVersion": "Wersja stabilna", + "IsActive": "Aktywny", + "NewVersion": "Nowa wersja", + "VersionHistoryDeletionConfirmationMessage": "Czy na pewno chcesz usunąć tę wersję?", + "CreateAbpConsultantLogoInfo": "Maksymalny rozmiar pliku: 1 MB
Obsługiwane typy plików: jpg, jpeg, png, SVG, WebP", + "UrlCode": "Kod URL", + "Clear": "Jasne", + "Permission:AbpConsultant": "Konsultant ABP", + "Menu:AbpConsultants": "Konsultanci ABP", + "CreateAbpConsultant": "Utwórz konsultanta ABP", + "UrlCodeIsNotAvailable": "Kod URL jest używany przez innego Konsultanta ABP.", + "AbpConsultants": "Konsultanci ABP", + "AbpConsultant": "Konsultant ABP", + "AbpConsultantEdit": "Edytuj konsultanta ABP", + "AbpConsultantCreate": "Utwórz konsultanta ABP", + "WhoWeAreItem": "Kim jesteśmy Pozycja", + "FieldIsRequired": "Wymagany jest {0}.", + "FieldIsNotValid": "{0} jest nieprawidłowy.", + "InterestedLicenseType": "Zainteresowany typ licencji", + "MoveWaitList": "Przejdź do listy oczekujących", + "CommunityLinkTitle": "Otwórz na stronie społeczności", + "CommunityLink": "Link społecznościowy", + "ReloadFromSource": "Załaduj ponownie ze źródła", + "ReloadFromSourceConfirmationMessage": "Ten wpis zostanie odświeżony z „{0}”. Czy chcesz kontynuować?", + "UnitPrice": "Cena jednostkowa", + "OverallDiscountAmount": "Ogólna kwota rabatu", + "DiscountAmount": "Kwota rabatu", + "FullChangeHistory": "Pełna historia zmian", + "Permission:RefreshReleaseLogs": "Odśwież dzienniki wydań", + "ReleaseLogs": "Dzienniki wydań", + "AuthorUserName": "Nazwa użytkownika autora", + "Type": "Typ", + "TotalDiscount": "Całkowita zniżka", + "SubTotal": "Suma podrzędna", + "TotalDue": "Razem należne", + "QuotationNo": "Cytat numer", + "ValidTill": "Obowiązuje do", + "QuotationNote": "Notatka cenowa", + "QuotationTemplate.Address:": "Adres:", + "QuotationTemplate.VATNo:": "VAT nie:", + "QuotationTemplate.Phone:": "Telefon:", + "QuotationTemplate.E-mail:": "E-mail:", + "QuotationTemplate.Quotation": "Cytat", + "QuotationTemplate.To": "Do", + "QuotationTemplate.Details": "Detale", + "QuotationTemplate.QuotationNo:": "Cytat #:", + "QuotationTemplate.IssueDate:": "Data wydania:", + "QuotationTemplate.ValidTill:": "Obowiązuje do:", + "QuotationTemplate.ValidDays": "{0} Dni", + "QuotationTemplate.Description": "Opis", + "QuotationTemplate.UnitPrice": "Cena jednostkowa", + "QuotationTemplate.Qty": "Ilość", + "QuotationTemplate.Discount": "Rabat", + "QuotationTemplate.Total": "Całkowity", + "QuotationTemplate.Notes": "Notatki", + "QuotationTemplate.SubTotal:": "Suma częściowa:", + "QuotationTemplate.Tax/VAT:": "Podatek / VAT (%{0}):", + "QuotationTemplate.TotalDiscount:": "Całkowity rabat:", + "QuotationTemplate.TOTALDUE:": "CAŁKOWITA NALEŻNOŚĆ:", + "QuotationTemplate.BankAccount": "Informacje o naszym koncie bankowym można znaleźć pod adresem {0}", + "Permission:Raffles": "Loteria", + "Permission:Draw": "Rysować", + "Menu:Raffles": "Loterie", + "RaffleIsNotDrawable": "Loterii nie można losować", + "WinnerCountMustBeGreaterThanZero": "Liczba zwycięzców musi być większa od zera", + "FullDescription": "Pełny opis", + "VisibilityStartDate": "Data rozpoczęcia widoczności", + "VisibilityEndDate": "Data końcowa widoczności", + "RaffleDate": "Data losowania", + "SubscriptionCode": "Kod subskrypcji", + "GroupCode": "Kod grupy", + "MaxWinnerCount": "Maksymalna liczba zwycięzców", + "ReDraw": "Przerysować", + "EditRaffle": "Edytuj loterię", + "Raffles": "Loterie", + "CreateARaffle": "Stwórz loterię", + "Draw": "Rysować", + "Enum:RaffleStatus:0": "Aktywny", + "Enum:RaffleStatus:1": "Następny", + "Enum:RaffleStatus:2": "Przeszłość", + "DrawDone": "Rysowanie gotowe", + "HomePageShowType": "Strona główna Pokaż typ", + "None": "Nic", + "Card": "Karta", + "Horizontal": "Poziomy", + "Winners": "Zwycięzcy", + "StartDateMustBeLessThanEndDate": "Data rozpoczęcia musi być wcześniejsza niż data zakończenia", + "VisibilityStartDateMustBeLessThanVisibilityEndDate": "Data rozpoczęcia widoczności musi być wcześniejsza niż data zakończenia widoczności", + "StartDateMustBeGreaterThanVisibilityStartDate": "Data rozpoczęcia musi być późniejsza niż data rozpoczęcia widoczności", + "EndDateMustBeLessThanVisibilityEndDate": "Data końcowa musi być wcześniejsza niż data końcowa widoczności", + "DrawnDone": "Rysunek gotowy", + "AddColor": "Dodaj kolor", + "Colors": "Zabarwienie", + "RemoveColor": "Usuń kolor", + "MaxColorCountWarning": "Możesz dodać maksymalnie {0} kolorów", + "MinColorCountWarning": "Musisz dodać co najmniej {0} kolorów", + "RaffleDeletionConfirmationMessage": "Czy na pewno chcesz usunąć tę loterię?", + "CreateRaffle": "Utwórz loterię", + "RemoveImage": "Usuń obraz", + "SuccessfullySaved": "Pomyślnie zapisano", + "Menu:CommunityTalks": "Rozmowy społecznościowe", + "Menu:Conferences": "Konferencje", + "Menu:OtherLiveEvents": "Inne wydarzenia na żywo", + "Menu:SponsoredConferences": "Konferencje sponsorowane", + "Logo": "Logo", + "Slug": "Ślimak", + "CompanyUrl": "Adres firmy", + "TalkTitle": "Tytuł dyskusji", + "AbstractTopic": "Temat abstrakcyjny", + "Bio": "Bio", + "LinkedIn": "LinkedIn", + "Github": "GitHub", + "Twitch": "Skurcz", + "Youtube": "youtube", + "Twitter": "Świergot", + "PersonalWebsite": "Osobista strona internetowa", + "VideoId": "Identyfikator wideo", + "Order": "Zamówienie", + "Image1x1": "Obraz 1x1", + "Image16x9": "Obraz 16x9", + "Banner": "Transparent", + "Speaker": "Głośnik", + "SessionDate": "Data sesji", + "AddSession": "Dodaj sesję", + "AddSponsor": "Dodaj sponsora", + "SponsorLogo": "Logo sponsora", + "RegistrationUrl": "Adres rejestracyjny" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/pt-BR.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/pt-BR.json index 05480d7d05..99bbf75ec5 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/pt-BR.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/pt-BR.json @@ -220,6 +220,7 @@ "SuccessfullyReIndexAllPosts": "Todas as postagens foram reindexadas com sucesso.", "Permission:FullSearch": "Pesquisa de texto completo", "Menu:CliAnalytics": "Cli Analytics", + "Menu:Reports": "Relatórios", "TemplateName": "Nome do modelo", "TemplateVersion": "Versão do modelo", "DatabaseProvider": "Provedor de banco de dados", @@ -231,8 +232,10 @@ "UiFramework": "Estrutura de interface do usuário", "Options": "Opções", "CliAnalytics": "Cli Analytics", + "Reports": "Relatórios", "Permission:CliAnalyticses": "Cli Analyticses", "Permission:CliAnalytics": "Cli Analytics", + "Permission:Reports": "Relatórios", "Search": "Procurar", "ClearFilter": "Filtro limpo", "LicensePrivateKey": "Chave privada de licença", @@ -316,14 +319,12 @@ "TrialLicenseStatusFilter": "Status", "TrialLicenseStartDateFilter": "Data de início", "TrialLicenseEndDateFilter": "Data final", - "FirsName": "Primeiro nome", + "FirstName": "Primeiro nome", "LastName": "Último nome", "StartDate": "Data de início", "EndDate": "Data final", "PurchasedDate": "Data de compra", "OrganizationDetail": "Detalhe da Organização", - "SendActivationMail": "Enviar mensagem de ativação", - "ActivationMailSentSuccessfully": "Email de ativação enviado com sucesso!", "TrialLicenseStatus": "Status da licença de teste", "TrialLicenseDetail": "Detalhe da licença de teste", "AcceptsMarketingCommunications": "Comunicações de marketing", @@ -337,17 +338,228 @@ "Expired": "Expirado", "TrialLicenseDeletionWarningMessage": "Tem certeza de que deseja excluir a licença de teste? A licença de teste, a organização e as contas de suporte serão excluídas!", "LicenseCategoryFilter": "Categoria de licença", - "Volo.AbpIo.Commercial:030000": "Você já usou seu período de teste.", - "Volo.AbpIo.Commercial:030001": "Este nome de organização já existe.", - "Volo.AbpIo.Commercial:030002": "Uma vez ativada, a licença de teste não pode ser definida como solicitada!", - "Volo.AbpIo.Commercial:030003": "Esse status não existe!", - "Volo.AbpIo.Commercial:030004": "Não foi possível alterar o status devido a um erro inesperado!", - "Volo.AbpIo.Commercial:030005": "As datas de início e término podem ser atualizadas quando a licença de teste está no status -activated-!", - "Volo.AbpIo.Commercial:030006": "A data de término deve ser sempre posterior à data de início!", - "Volo.AbpIo.Commercial:030007": "Esta licença de teste já foi ativada uma vez!", - "Volo.AbpIo.Commercial:030008": "A data de compra pode ser definida apenas quando o status é Comprado!", - "Volo.AbpIo.Commercial:030009": "Usuário não encontrado!", - "Volo.AbpIo.Commercial:030010": "Para adquirir a licença de teste, primeiro você precisa ativar sua licença de teste!", - "Volo.AbpIo.Commercial:030011": "Você não pode excluir uma licença de teste quando ela é comprada!" + "Permission:SendWelcomeEmail": "Enviar e-mail de boas-vindas", + "SendWelcomeEmail": "Enviar e-mail de boas-vindas", + "SendWelcomeEmailWarningMessage": "Tem certeza de que deseja enviar um e-mail de boas-vindas aos membros da organização?", + "SendWelcomeEmailSuccessMessage": "E-mail de boas-vindas enviado com sucesso!", + "Activate": "Ativar", + "ActivateTrialLicenseWarningMessage": "Ao ativar uma licença de teste, um e-mail de boas-vindas será enviado ao usuário. Você quer ativá-lo?", + "ActivateTrialLicenseSuccessMessage": "Ativado com sucesso e e-mail de boas-vindas enviado aos membros da organização.", + "PaymentRequestId": "ID da solicitação de pagamento", + "AdditionalDeveloperCount": "Contagem adicional de desenvolvedores", + "LicensePrice": "Preço da licença", + "PurchaseDate": "Data de compra", + "IsAbpBookDownloaded": "Dominando o livro ABP baixado?", + "IsMasteringAbpBookDownloadEnabled": "Download do livro ABP ativado", + "Permission:Accounting:CustomPaymentLinkGenerator": "Link de pagamento personalizado", + "CustomPaymentLink": "Link de pagamento personalizado", + "Menu:CustomPaymentLink": "Link de pagamento personalizado", + "Amount": "Quantia", + "GenerateCustomPaymentLink": "Gerar link de pagamento personalizado", + "GeneratedPaymentLink": "Link de pagamento gerado", + "CopyText": "Copiar texto", + "Permission:CommunityEvents": "Eventos", + "Menu:Events": "Eventos", + "Events": "Eventos", + "EventType": "Tipo de evento", + "Number": "Número", + "RegistrationURL": "URL de registro", + "URL": "URL", + "EventDeletionConfirmationMessage": "Tem certeza de que deseja excluir este evento?", + "Enum:EventType:0": "Palestras Comunitárias", + "CreateAnEvent": "Crie um evento", + "Permission:CommunitySpeakers": "caixas de som", + "CreateASpeaker": "Crie um palestrante", + "Speakers": "caixas de som", + "Image": "Imagem", + "GithubURL": "URL do GitHub", + "SpeakerDeletionConfirmationMessage": "Tem certeza de que deseja excluir este alto-falante?", + "Menu:Speakers": "caixas de som", + "ChooseSpeakerImage": "Escolha uma imagem de alto-falante...", + "SpeakerImage": "Imagem do alto-falante", + "AddSpeaker": "Adicionar alto-falante", + "ShowPurchaseItemsOfOrganizations": "Comprar itens", + "Enum:OrganizationPurchaseState:0": "Não entregue", + "Enum:OrganizationPurchaseState:1": "Entregue", + "PurchaseItems": "Comprar itens", + "SuccessfullyUpdated": "Atualizado com sucesso", + "SuccessfullyAdded": "Adicionado com sucesso", + "PurchaseState": "Status da compra", + "ShowBetweenDayCount": "Mostrar entre dias", + "PurchaseOrder": "Ordem de Compra", + "ShowCreateInvoiceOfOrganization": "Criar recibo", + "ShowCreateQuotationOfOrganization": "Criar cotação", + "BookDiscounts": "Descontos em livros", + "Permission:BookDiscount": "Desconto em livro", + "Menu:BookDiscounts": "Descontos em livros", + "BookType": "Tipo de livro", + "PurchasePlatform": "Plataforma de compra", + "StartTime": "Hora de início", + "EndTime": "Fim do tempo", + "CreateABookDiscount": "Crie um desconto para livro", + "BookDiscountDeletionConfirmationMessage": "Tem certeza de que deseja excluir este desconto de livro?", + "CustomPaymentFlexSwitchDescription": "Com licença", + "AllowFeatureUpgradeOnLicenseExpire": "Permitir atualização de recursos após a licença expirar", + "Deleted{0}": "[Excluído {0}]", + "Tags": "Tag", + "SetTagsInfo": "As tags devem ser separadas por vírgula. Ex.: CSharp, Entity Framework", + "RejectTrialLicenseWarningMessage": "Tem certeza de que deseja rejeitar esta solicitação de licença de avaliação?", + "ExportToExcel": "Exportar para Excel", + "OverallTotalPrice": "Preço total geral", + "OverallDiscountPrice": "Preço com desconto geral", + "OverallDiscountText": "Texto geral do desconto", + "SelectReport": "- Selecione Relatório -", + "NoDataAvailable": "Não há dados disponíveis", + "StatisticsOfCachedContents": "Estatísticas do conteúdo do pacote NuGet em cache para nuget.abp.io", + "Compact": "Compactar", + "EditSettings": "Editar Configurações", + "CurrentEstimatedSize": "Tamanho estimado atual", + "CurrentEntryCount": "Contagem de entradas atuais", + "TotalHits": "Total de acessos", + "TotalMisses": "Total de erros", + "NoResponseFrom": "Nenhuma resposta de", + "ContentCacheSlidingExpirationByDay": "Expiração deslizante do cache de conteúdo por dia", + "MaxDaysForCaching": "Máximo de dias para armazenamento em cache", + "Enabled": "Habilitado", + "Menu:NugetPackagesContentCache": "Cache NuGet", + "NugetPackagesContentCache": "Cache de conteúdo NuGet", + "SlidingExpritionByDayInfo": "Obtém ou define por quanto tempo uma entrada de cache pode ficar inativa (por exemplo, não acessada) antes de ser removida. Isto não prolongará a vida útil da entrada além da expiração absoluta.", + "MaxDaysForCachingInfo": "Obtém ou define um prazo de expiração absoluto relativo a agora.", + "CurrentEstimatedSizeInfo": "Indica uma soma estimada do tamanho do conteúdo de todos os pacotes NuGet atualmente no cache de memória", + "CurrentEntryCountInfo": "Indica o número de instâncias atualmente no cache de memória.", + "TotalHitsInfo": "Indica o número total de perdas de cache. Um acerto de cache ocorre quando um arquivo é solicitado de um cache e o cache é capaz de atender a essa solicitação.", + "TotalMissesInfo": "Indica o número total de ocorrências de cache. Uma falta de cache ocorre quando o cache não contém o conteúdo solicitado.", + "Permission:VersionHistory": "Histórico de versões", + "Caches": "Caches", + "VersionHistories": "Histórico de versões", + "Version": "Versão", + "PublishDate": "Data de publicação", + "IsStableVersion": "Versão estável", + "IsActive": "Ativo", + "NewVersion": "Nova versão", + "VersionHistoryDeletionConfirmationMessage": "Tem certeza de que deseja excluir esta versão?", + "CreateAbpConsultantLogoInfo": "Tamanho máximo do arquivo: 1MB
Tipos de arquivos suportados: jpg, jpeg, png, SVG, WebP", + "UrlCode": "Código URL", + "Clear": "Claro", + "Permission:AbpConsultant": "Consultor ABP", + "Menu:AbpConsultants": "Consultores ABP", + "CreateAbpConsultant": "Criar Consultor ABP", + "UrlCodeIsNotAvailable": "O código URL é usado por outro consultor ABP.", + "AbpConsultants": "Consultores ABP", + "AbpConsultant": "Consultor ABP", + "AbpConsultantEdit": "Editar Consultor ABP", + "AbpConsultantCreate": "Criar Consultor ABP", + "WhoWeAreItem": "Quem somos", + "FieldIsRequired": "{0} é obrigatório.", + "FieldIsNotValid": "{0} não é válido.", + "InterestedLicenseType": "Tipo de licença interessado", + "MoveWaitList": "Mover para lista de espera", + "CommunityLinkTitle": "Aberto no site da comunidade", + "CommunityLink": "Link da comunidade", + "ReloadFromSource": "Recarregar da fonte", + "ReloadFromSourceConfirmationMessage": "Esta postagem será atualizada a partir de "{0}". Você quer continuar?", + "UnitPrice": "Preço unitário", + "OverallDiscountAmount": "Valor total do desconto", + "DiscountAmount": "Valor do desconto", + "FullChangeHistory": "Histórico completo de alterações", + "Permission:RefreshReleaseLogs": "Atualizar registros de lançamento", + "ReleaseLogs": "Registros de liberação", + "AuthorUserName": "Nome de usuário do autor", + "Type": "Tipo", + "TotalDiscount": "Desconto total", + "SubTotal": "Subtotal", + "TotalDue": "Total devido", + "QuotationNo": "Citação não", + "ValidTill": "Válida até", + "QuotationNote": "Nota de citação", + "QuotationTemplate.Address:": "Endereço:", + "QuotationTemplate.VATNo:": "VAT não:", + "QuotationTemplate.Phone:": "Telefone:", + "QuotationTemplate.E-mail:": "E-mail:", + "QuotationTemplate.Quotation": "cotação", + "QuotationTemplate.To": "Para", + "QuotationTemplate.Details": "Detalhes", + "QuotationTemplate.QuotationNo:": "Cotação #:", + "QuotationTemplate.IssueDate:": "Data de emissão:", + "QuotationTemplate.ValidTill:": "Válida até:", + "QuotationTemplate.ValidDays": "{0} dias", + "QuotationTemplate.Description": "Descrição", + "QuotationTemplate.UnitPrice": "Preço unitário", + "QuotationTemplate.Qty": "Quantidade", + "QuotationTemplate.Discount": "Desconto", + "QuotationTemplate.Total": "Total", + "QuotationTemplate.Notes": "Notas", + "QuotationTemplate.SubTotal:": "Subtotal:", + "QuotationTemplate.Tax/VAT:": "Imposto / IVA (%{0}):", + "QuotationTemplate.TotalDiscount:": "Desconto total:", + "QuotationTemplate.TOTALDUE:": "TOTAL DEVIDO:", + "QuotationTemplate.BankAccount": "Nossas informações de conta bancária podem ser encontradas em {0}", + "Permission:Raffles": "Sorteio", + "Permission:Draw": "Empate", + "Menu:Raffles": "Sorteios", + "RaffleIsNotDrawable": "O sorteio não pode ser sorteado", + "WinnerCountMustBeGreaterThanZero": "A contagem de vencedores deve ser maior que zero", + "FullDescription": "Descrição completa", + "VisibilityStartDate": "Data de início da visibilidade", + "VisibilityEndDate": "Data de término da visibilidade", + "RaffleDate": "Data do sorteio", + "SubscriptionCode": "Código de assinatura", + "GroupCode": "Código de grupo", + "MaxWinnerCount": "Contagem máxima de vencedores", + "ReDraw": "Redesenhar", + "EditRaffle": "Editar sorteio", + "Raffles": "Sorteios", + "CreateARaffle": "Crie um sorteio", + "Draw": "Empate", + "Enum:RaffleStatus:0": "Ativo", + "Enum:RaffleStatus:1": "Próximo", + "Enum:RaffleStatus:2": "Passado", + "DrawDone": "Desenho concluído", + "HomePageShowType": "Tipo de exibição da página inicial", + "None": "Nenhum", + "Card": "Cartão", + "Horizontal": "Horizontal", + "Winners": "Vencedores", + "StartDateMustBeLessThanEndDate": "A data de início deve ser inferior à data de término", + "VisibilityStartDateMustBeLessThanVisibilityEndDate": "A data de início da visibilidade precisa ser inferior à data de término da visibilidade", + "StartDateMustBeGreaterThanVisibilityStartDate": "A data de início precisa ser posterior à data de início da visibilidade", + "EndDateMustBeLessThanVisibilityEndDate": "A data de término precisa ser inferior à data de término da visibilidade", + "DrawnDone": "Desenhado Concluído", + "AddColor": "Adicionar cor", + "Colors": "Cores", + "RemoveColor": "Remover cor", + "MaxColorCountWarning": "Você pode adicionar até {0} cores", + "MinColorCountWarning": "Você deve adicionar pelo menos {0} cores", + "RaffleDeletionConfirmationMessage": "Tem certeza de que deseja excluir este sorteio?", + "CreateRaffle": "Criar sorteio", + "RemoveImage": "Remover imagem", + "SuccessfullySaved": "Salvo com sucesso", + "Menu:CommunityTalks": "Palestras Comunitárias", + "Menu:Conferences": "Conferências", + "Menu:OtherLiveEvents": "Outros eventos ao vivo", + "Menu:SponsoredConferences": "Conferências patrocinadas", + "Logo": "Logotipo", + "Slug": "Lesma", + "CompanyUrl": "URL da empresa", + "TalkTitle": "Título da conversa", + "AbstractTopic": "Tópico abstrato", + "Bio": "Biografia", + "LinkedIn": "LinkedIn", + "Github": "GitHub", + "Twitch": "Contração muscular", + "Youtube": "YouTube", + "Twitter": "Twitter", + "PersonalWebsite": "Site pessoal", + "VideoId": "ID do vídeo", + "Order": "Ordem", + "Image1x1": "Imagem 1x1", + "Image16x9": "Imagem 16x9", + "Banner": "Bandeira", + "Speaker": "Palestrante", + "SessionDate": "Data da Sessão", + "AddSession": "Adicionar sessão", + "AddSponsor": "Adicionar patrocinador", + "SponsorLogo": "Logotipo do patrocinador", + "RegistrationUrl": "URL de registro" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/ro-RO.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/ro-RO.json index 409ab816a5..6a3263e78e 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/ro-RO.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/ro-RO.json @@ -220,6 +220,7 @@ "SuccessfullyReIndexAllPosts": "Toate postările au fost reindexate.", "Permission:FullSearch": "Căutare integrală a textului", "Menu:CliAnalytics": "Analitice Cli", + "Menu:Reports": "Rapoarte", "TemplateName": "Nume şablon", "TemplateVersion": "Versiune şablon", "DatabaseProvider": "Furnizor bază de date", @@ -231,8 +232,10 @@ "UiFramework": "Ui framework", "Options": "Opţiuni", "CliAnalytics": "Analitice Cli", + "Reports": "Rapoarte", "Permission:CliAnalyticses": "Analitice Cli", "Permission:CliAnalytics": "Analitice Cli", + "Permission:Reports": "Rapoarte", "Search": "Caută", "ClearFilter": "Şterge filtru", "LicensePrivateKey": "Cheie privată licenţă", @@ -316,14 +319,12 @@ "TrialLicenseStatusFilter": "stare", "TrialLicenseStartDateFilter": "Data de început", "TrialLicenseEndDateFilter": "Data de încheiere", - "FirsName": "Nume", + "FirstName": "Nume", "LastName": "Nume de familie", "StartDate": "Data de început", "EndDate": "Data de încheiere", "PurchasedDate": "Data achiziției", "OrganizationDetail": "Detaliu organizare", - "SendActivationMail": "Trimite e-mail de activare", - "ActivationMailSentSuccessfully": "E-mail de activare trimis cu succes!", "TrialLicenseStatus": "Starea licenței de probă", "TrialLicenseDetail": "Detalii de licență de probă", "AcceptsMarketingCommunications": "Comunicări de marketing", @@ -337,17 +338,228 @@ "Expired": "Expirat", "TrialLicenseDeletionWarningMessage": "Sigur doriți să ștergeți licența de încercare? Licența de probă, organizarea, conturile de asistență vor fi șterse!", "LicenseCategoryFilter": "Categoria de licență", - "Volo.AbpIo.Commercial:030000": "Ai folosit deja perioada de probă.", - "Volo.AbpIo.Commercial:030001": "Acest nume de organizație există deja.", - "Volo.AbpIo.Commercial:030002": "Odată activată, licența de probă nu poate fi setată la solicitată!", - "Volo.AbpIo.Commercial:030003": "Nu există un astfel de statut!", - "Volo.AbpIo.Commercial:030004": "Starea nu a putut fi schimbată din cauza unei erori neașteptate!", - "Volo.AbpIo.Commercial:030005": "Data de începere și de sfârșit pot fi actualizate atunci când licența de încercare este în starea -activată-!", - "Volo.AbpIo.Commercial:030006": "Data de încheiere trebuie să fie întotdeauna mai mare decât data de început!", - "Volo.AbpIo.Commercial:030007": "Această licență de probă a fost deja activată o dată!", - "Volo.AbpIo.Commercial:030008": "Data achiziției poate fi setată numai atunci când starea este Achiziționat!", - "Volo.AbpIo.Commercial:030009": "Utilizator nu a fost găsit!", - "Volo.AbpIo.Commercial:030010": "Pentru a achiziționa licența de probă, mai întâi trebuie să vă activați licența de probă!", - "Volo.AbpIo.Commercial:030011": "Nu puteți șterge o licență de probă atunci când este achiziționată!" + "Permission:SendWelcomeEmail": "Trimite e-mail de bun venit", + "SendWelcomeEmail": "Trimite e-mail de bun venit", + "SendWelcomeEmailWarningMessage": "Sigur doriți să trimiteți e-mail de bun venit membrilor organizației?", + "SendWelcomeEmailSuccessMessage": "E-mail de bun venit trimis cu succes!", + "Activate": "Activati", + "ActivateTrialLicenseWarningMessage": "Când activați o licență de încercare, utilizatorului va fi trimis un e-mail de bun venit. Doriți să-l activați?", + "ActivateTrialLicenseSuccessMessage": "Activat cu succes și e-mailul de bun venit trimis membrilor organizației.", + "PaymentRequestId": "Id-ul cererii de plată", + "AdditionalDeveloperCount": "Număr suplimentar de dezvoltatori", + "LicensePrice": "Prețul licenței", + "PurchaseDate": "Data cumpărării", + "IsAbpBookDownloaded": "Cartea Mastering ABP descărcată?", + "IsMasteringAbpBookDownloadEnabled": "Descărcarea cărții ABP este activată", + "Permission:Accounting:CustomPaymentLinkGenerator": "Link de plată personalizată", + "CustomPaymentLink": "Link de plată personalizată", + "Menu:CustomPaymentLink": "Link de plată personalizată", + "Amount": "Cantitate", + "GenerateCustomPaymentLink": "Generați linkul personalizat de plată", + "GeneratedPaymentLink": "Link de plată generat", + "CopyText": "Copiază textul", + "Permission:CommunityEvents": "Evenimente", + "Menu:Events": "Evenimente", + "Events": "Evenimente", + "EventType": "Tip de eveniment", + "Number": "Număr", + "RegistrationURL": "Adresa URL de înregistrare", + "URL": "URL", + "EventDeletionConfirmationMessage": "Sigur doriți să ștergeți acest eveniment?", + "Enum:EventType:0": "Discuții comunitare", + "CreateAnEvent": "Creați un eveniment", + "Permission:CommunitySpeakers": "Difuzoare", + "CreateASpeaker": "Creați un difuzor", + "Speakers": "Difuzoare", + "Image": "Imagine", + "GithubURL": "Adresa URL Github", + "SpeakerDeletionConfirmationMessage": "Sigur doriți să ștergeți acest difuzor?", + "Menu:Speakers": "Difuzoare", + "ChooseSpeakerImage": "Alegeți o imagine pentru difuzor...", + "SpeakerImage": "Imaginea difuzorului", + "AddSpeaker": "Adăugați difuzor", + "ShowPurchaseItemsOfOrganizations": "Achiziționați articole", + "Enum:OrganizationPurchaseState:0": "Nelivrat", + "Enum:OrganizationPurchaseState:1": "Livrat", + "PurchaseItems": "Achiziționați articole", + "SuccessfullyUpdated": "Actualizat cu succes", + "SuccessfullyAdded": "Adăugat cu succes", + "PurchaseState": "Starea achiziției", + "ShowBetweenDayCount": "Afișează între zile", + "PurchaseOrder": "Comandă de achiziție", + "ShowCreateInvoiceOfOrganization": "Creați factura", + "ShowCreateQuotationOfOrganization": "Creați o ofertă", + "BookDiscounts": "Reduceri la carte", + "Permission:BookDiscount": "Reducere la carte", + "Menu:BookDiscounts": "Reduceri la carte", + "BookType": "Tip carte", + "PurchasePlatform": "Platformă de cumpărare", + "StartTime": "Timpul de începere", + "EndTime": "Sfârșitul timpului", + "CreateABookDiscount": "Creați o reducere la carte", + "BookDiscountDeletionConfirmationMessage": "Sigur doriți să ștergeți această reducere la carte?", + "CustomPaymentFlexSwitchDescription": "Cu licenta", + "AllowFeatureUpgradeOnLicenseExpire": "Permite upgrade-ul caracteristicilor la expirarea licenței", + "Deleted{0}": "[Șters {0}]", + "Tags": "Etichete", + "SetTagsInfo": "Etichetele ar trebui să fie separate prin virgulă. De exemplu: CSharp, Entity Framework", + "RejectTrialLicenseWarningMessage": "Sigur doriți să respingeți această solicitare de licență de probă?", + "ExportToExcel": "Exportați în Excel", + "OverallTotalPrice": "Preț total total", + "OverallDiscountPrice": "Preț general reducere", + "OverallDiscountText": "Textul reducerii generale", + "SelectReport": "- Selectați Raport -", + "NoDataAvailable": "Nici o informatie disponibila", + "StatisticsOfCachedContents": "Statistici ale conținutului pachetului NuGet stocat în cache pentru nuget.abp.io", + "Compact": "Compact", + "EditSettings": "Editeaza setarile", + "CurrentEstimatedSize": "Dimensiunea actuală estimată", + "CurrentEntryCount": "Număr de intrări curente", + "TotalHits": "Total Hits", + "TotalMisses": "Total rateuri", + "NoResponseFrom": "Niciun răspuns de la", + "ContentCacheSlidingExpirationByDay": "Cache de conținut Sliding Expiration By Day", + "MaxDaysForCaching": "Zile maxime pentru stocarea în cache", + "Enabled": "Activat", + "Menu:NugetPackagesContentCache": "NuGet Cache", + "NugetPackagesContentCache": "NuGet Content Cache", + "SlidingExpritionByDayInfo": "Obține sau setează cât timp o intrare din cache poate fi inactivă (de exemplu, neaccesată) înainte de a fi eliminată. Acest lucru nu va prelungi durata de viață a intrării dincolo de expirarea absolută.", + "MaxDaysForCachingInfo": "Obține sau setează un timp de expirare absolut, în raport cu acum.", + "CurrentEstimatedSizeInfo": "Indică o sumă estimată a dimensiunii conținutului tuturor pachetelor NuGet în prezent în memoria cache", + "CurrentEntryCountInfo": "Indică numărul de instanțe aflate în prezent în memoria cache.", + "TotalHitsInfo": "Indică numărul total de rateuri de cache. O atingere a memoriei cache apare atunci când un fișier este solicitat dintr-un cache și memoria cache este capabilă să îndeplinească acea cerere.", + "TotalMissesInfo": "Indică numărul total de accesări în cache. O pierdere de cache este atunci când memoria cache nu conține conținutul solicitat.", + "Permission:VersionHistory": "Versiunea istorică", + "Caches": "Cache-urile", + "VersionHistories": "Versiunea istorică", + "Version": "Versiune", + "PublishDate": "Data publicării", + "IsStableVersion": "Versiune stabilă", + "IsActive": "Activ", + "NewVersion": "Versiune noua", + "VersionHistoryDeletionConfirmationMessage": "Sigur doriți să ștergeți această versiune?", + "CreateAbpConsultantLogoInfo": "Dimensiunea maximă a fișierului: 1 MB
Tipuri de fișiere acceptate: jpg, jpeg, png, SVG, WebP", + "UrlCode": "Cod URL", + "Clear": "clar", + "Permission:AbpConsultant": "Consultant ABP", + "Menu:AbpConsultants": "Consultanti ABP", + "CreateAbpConsultant": "Creați consultant ABP", + "UrlCodeIsNotAvailable": "Codul URL este folosit de un alt consultant ABP.", + "AbpConsultants": "Consultanti ABP", + "AbpConsultant": "Consultant ABP", + "AbpConsultantEdit": "Editare Consultant ABP", + "AbpConsultantCreate": "Creați consultant ABP", + "WhoWeAreItem": "Cine suntem Item", + "FieldIsRequired": "{0} este necesar.", + "FieldIsNotValid": "{0} nu este valid.", + "InterestedLicenseType": "Tipul de licență interesat", + "MoveWaitList": "Treceți pe lista de așteptare", + "CommunityLinkTitle": "Deschideți pe site-ul comunității", + "CommunityLink": "Link de comunitate", + "ReloadFromSource": "Reîncărcați de la sursă", + "ReloadFromSourceConfirmationMessage": "Această postare va fi actualizată de la „{0}”. Doriți să continuați?", + "UnitPrice": "Preț unitar", + "OverallDiscountAmount": "Suma generală a reducerii", + "DiscountAmount": "Suma de reducere", + "FullChangeHistory": "Istoricul complet al schimbărilor", + "Permission:RefreshReleaseLogs": "Actualizează jurnalele de lansare", + "ReleaseLogs": "Jurnalele de lansare", + "AuthorUserName": "Nume de utilizator al autorului", + "Type": "Tip", + "TotalDiscount": "Reducere totală", + "SubTotal": "Subtotal", + "TotalDue": "Total datorat", + "QuotationNo": "Cotatia nr", + "ValidTill": "Valabil până la", + "QuotationNote": "Notă de citare", + "QuotationTemplate.Address:": "Abordare:", + "QuotationTemplate.VATNo:": "Nr TVA:", + "QuotationTemplate.Phone:": "Telefon:", + "QuotationTemplate.E-mail:": "E-mail:", + "QuotationTemplate.Quotation": "Citat", + "QuotationTemplate.To": "La", + "QuotationTemplate.Details": "Detalii", + "QuotationTemplate.QuotationNo:": "Citat #:", + "QuotationTemplate.IssueDate:": "Data emiterii:", + "QuotationTemplate.ValidTill:": "Valabil până la:", + "QuotationTemplate.ValidDays": "{0} zile", + "QuotationTemplate.Description": "Descriere", + "QuotationTemplate.UnitPrice": "Preț unitar", + "QuotationTemplate.Qty": "Cant", + "QuotationTemplate.Discount": "Reducere", + "QuotationTemplate.Total": "Total", + "QuotationTemplate.Notes": "Note", + "QuotationTemplate.SubTotal:": "Subtotal:", + "QuotationTemplate.Tax/VAT:": "Impozit/TVA (%{0}):", + "QuotationTemplate.TotalDiscount:": "Reducere totală:", + "QuotationTemplate.TOTALDUE:": "TOTAL DATORAT :", + "QuotationTemplate.BankAccount": "Informațiile contului nostru bancar pot fi găsite la {0}", + "Permission:Raffles": "Tombolă", + "Permission:Draw": "A desena", + "Menu:Raffles": "Tombole", + "RaffleIsNotDrawable": "Tombola nu poate fi trasă", + "WinnerCountMustBeGreaterThanZero": "Numărul de câștigători trebuie să fie mai mare decât zero", + "FullDescription": "Descriere completa", + "VisibilityStartDate": "Data de începere a vizibilității", + "VisibilityEndDate": "Data de încheiere a vizibilității", + "RaffleDate": "Data tombolei", + "SubscriptionCode": "Cod de abonament", + "GroupCode": "Cod de grup", + "MaxWinnerCount": "Număr maxim de câștigători", + "ReDraw": "Re-desenează", + "EditRaffle": "Editați tombola", + "Raffles": "Tombole", + "CreateARaffle": "Creați o tombolă", + "Draw": "A desena", + "Enum:RaffleStatus:0": "Activ", + "Enum:RaffleStatus:1": "Următorul", + "Enum:RaffleStatus:2": "Trecut", + "DrawDone": "Desen gata", + "HomePageShowType": "Tipul de afișare a paginii de start", + "None": "Nici unul", + "Card": "Card", + "Horizontal": "Orizontală", + "Winners": "Câștigători", + "StartDateMustBeLessThanEndDate": "Data de început trebuie să fie mai mică decât data de încheiere", + "VisibilityStartDateMustBeLessThanVisibilityEndDate": "Data de începere a vizibilității trebuie să fie mai mică decât data de încheiere a vizibilității", + "StartDateMustBeGreaterThanVisibilityStartDate": "Data de începere trebuie să fie mai mare decât data de începere a vizibilității", + "EndDateMustBeLessThanVisibilityEndDate": "Data de încheiere trebuie să fie mai mică decât data de încheiere a vizibilității", + "DrawnDone": "Desen Gata", + "AddColor": "Adăugați culoare", + "Colors": "Culori", + "RemoveColor": "Eliminați culoarea", + "MaxColorCountWarning": "Puteți adăuga până la {0} culori", + "MinColorCountWarning": "Trebuie să adăugați cel puțin {0} culori", + "RaffleDeletionConfirmationMessage": "Sigur doriți să ștergeți această tombolă?", + "CreateRaffle": "Creați tombolă", + "RemoveImage": "Eliminați imaginea", + "SuccessfullySaved": "Salvat cu succes", + "Menu:CommunityTalks": "Discuții comunitare", + "Menu:Conferences": "Conferințe", + "Menu:OtherLiveEvents": "Alte evenimente live", + "Menu:SponsoredConferences": "Conferințe sponsorizate", + "Logo": "Siglă", + "Slug": "Melc", + "CompanyUrl": "Adresa URL a companiei", + "TalkTitle": "Titlul discuției", + "AbstractTopic": "Subiect abstract", + "Bio": "bio", + "LinkedIn": "LinkedIn", + "Github": "Github", + "Twitch": "TIC nervos", + "Youtube": "Youtube", + "Twitter": "Stare de nervozitate", + "PersonalWebsite": "Site personal", + "VideoId": "Id. video", + "Order": "Ordin", + "Image1x1": "Imaginea 1x1", + "Image16x9": "Imagine 16x9", + "Banner": "Banner", + "Speaker": "Difuzor", + "SessionDate": "Data sesiunii", + "AddSession": "Adăugați o sesiune", + "AddSponsor": "Adaugă sponsor", + "SponsorLogo": "Logo-ul sponsorului", + "RegistrationUrl": "Url de înregistrare" } -} +} \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/sk.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/sk.json index 74e74c75ba..4cb4885c78 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/sk.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/sk.json @@ -220,6 +220,7 @@ "SuccessfullyReIndexAllPosts": "Všetky príspevky boli úspešne reindexované.", "Permission:FullSearch": "Vyhľadávanie v celom texte", "Menu:CliAnalytics": "Cli analytiky", + "Menu:Reports": "Správy", "TemplateName": "Názov šablóny", "TemplateVersion": "Verzia šablóny", "DatabaseProvider": "Poskytovateľ databázy", @@ -231,8 +232,10 @@ "UiFramework": "UI frameworku", "Options": "Možnosti", "CliAnalytics": "Cli analytiky", + "Reports": "Správy", "Permission:CliAnalyticses": "Cli analytiky", "Permission:CliAnalytics": "Cli analytiky", + "Permission:Reports": "Správy", "Search": "Hľadať", "ClearFilter": "Vyčistiť filter", "LicensePrivateKey": "Privátny kľúč licencie", @@ -316,14 +319,12 @@ "TrialLicenseStatusFilter": "Postavenie", "TrialLicenseStartDateFilter": "Dátum začiatku", "TrialLicenseEndDateFilter": "Dátum ukončenia", - "FirsName": "Krstné meno", + "FirstName": "Krstné meno", "LastName": "Priezvisko", "StartDate": "Dátum začiatku", "EndDate": "Dátum ukončenia", "PurchasedDate": "Dátum zakúpenia", "OrganizationDetail": "Podrobnosti o organizácii", - "SendActivationMail": "Odoslať aktivačný e-mail", - "ActivationMailSentSuccessfully": "Aktivačný e-mail bol úspešne odoslaný!", "TrialLicenseStatus": "Stav skúšobnej licencie", "TrialLicenseDetail": "Podrobnosti skúšobnej licencie", "AcceptsMarketingCommunications": "Marketingová komunikácia", @@ -337,17 +338,228 @@ "Expired": "Platnosť vypršala", "TrialLicenseDeletionWarningMessage": "Naozaj chcete odstrániť skúšobnú licenciu? Skúšobná licencia, organizácia a účty podpory budú odstránené!", "LicenseCategoryFilter": "Kategória licencie", - "Volo.AbpIo.Commercial:030000": "Skúšobné obdobie ste už využili.", - "Volo.AbpIo.Commercial:030001": "Tento názov organizácie už existuje.", - "Volo.AbpIo.Commercial:030002": "Po aktivácii nie je možné skúšobnú licenciu nastaviť na vyžiadanie!", - "Volo.AbpIo.Commercial:030003": "Taký stav neexistuje!", - "Volo.AbpIo.Commercial:030004": "Stav nebolo možné zmeniť z dôvodu neočakávanej chyby!", - "Volo.AbpIo.Commercial:030005": "Dátum začiatku a konca je možné aktualizovať, keď je skúšobná licencia v stave -aktivovaná-!", - "Volo.AbpIo.Commercial:030006": "Dátum ukončenia musí byť vždy väčší ako dátum začiatku!", - "Volo.AbpIo.Commercial:030007": "Táto skúšobná licencia už bola raz aktivovaná!", - "Volo.AbpIo.Commercial:030008": "Dátum nákupu je možné nastaviť len vtedy, keď je stav Kúpené!", - "Volo.AbpIo.Commercial:030009": "Užívateľ Nenájdený!", - "Volo.AbpIo.Commercial:030010": "Ak si chcete zakúpiť skúšobnú licenciu, musíte si najprv aktivovať skúšobnú licenciu!", - "Volo.AbpIo.Commercial:030011": "Skúšobnú licenciu nemôžete vymazať, keď je zakúpená!" + "Permission:SendWelcomeEmail": "Odoslať uvítací e-mail", + "SendWelcomeEmail": "Odoslať uvítací e-mail", + "SendWelcomeEmailWarningMessage": "Naozaj chcete poslať uvítací e-mail členom organizácie?", + "SendWelcomeEmailSuccessMessage": "Uvítací e-mail bol úspešne odoslaný!", + "Activate": "Aktivovať", + "ActivateTrialLicenseWarningMessage": "Keď si aktivujete skúšobnú licenciu, používateľovi sa odošle uvítací e-mail. Chcete ho aktivovať?", + "ActivateTrialLicenseSuccessMessage": "Úspešne aktivované a členom organizácie bol odoslaný uvítací e-mail.", + "PaymentRequestId": "ID žiadosti o platbu", + "AdditionalDeveloperCount": "Ďalší počet vývojárov", + "LicensePrice": "Cena licencie", + "PurchaseDate": "Dátum nákupu", + "IsAbpBookDownloaded": "Stiahnutá kniha Mastering ABP?", + "IsMasteringAbpBookDownloadEnabled": "Sťahovanie knihy ABP je povolené", + "Permission:Accounting:CustomPaymentLinkGenerator": "Vlastný platobný odkaz", + "CustomPaymentLink": "Vlastný platobný odkaz", + "Menu:CustomPaymentLink": "Vlastný platobný odkaz", + "Amount": "Suma", + "GenerateCustomPaymentLink": "Generovať vlastný platobný odkaz", + "GeneratedPaymentLink": "Vygenerovaný odkaz na platbu", + "CopyText": "Kopírovať text", + "Permission:CommunityEvents": "Diania", + "Menu:Events": "Diania", + "Events": "Diania", + "EventType": "Typ udalosti", + "Number": "číslo", + "RegistrationURL": "Registračná adresa URL", + "URL": "URL", + "EventDeletionConfirmationMessage": "Naozaj chcete odstrániť túto udalosť?", + "Enum:EventType:0": "Komunitné rozhovory", + "CreateAnEvent": "Vytvorte udalosť", + "Permission:CommunitySpeakers": "Reproduktory", + "CreateASpeaker": "Vytvorte reproduktor", + "Speakers": "Reproduktory", + "Image": "Obrázok", + "GithubURL": "Adresa URL Github", + "SpeakerDeletionConfirmationMessage": "Naozaj chcete odstrániť tento reproduktor?", + "Menu:Speakers": "Reproduktory", + "ChooseSpeakerImage": "Vyberte obrázok reproduktora...", + "SpeakerImage": "Obrázok reproduktora", + "AddSpeaker": "Pridať reproduktor", + "ShowPurchaseItemsOfOrganizations": "Nákup položiek", + "Enum:OrganizationPurchaseState:0": "Nedoručený", + "Enum:OrganizationPurchaseState:1": "Doručené", + "PurchaseItems": "Nákup položiek", + "SuccessfullyUpdated": "Úspešne aktualizované", + "SuccessfullyAdded": "Úspešne pridané", + "PurchaseState": "Stav nákupu", + "ShowBetweenDayCount": "Show medzi dňami", + "PurchaseOrder": "Objednávka", + "ShowCreateInvoiceOfOrganization": "Vytvoriť faktúru", + "ShowCreateQuotationOfOrganization": "Vytvorte cenovú ponuku", + "BookDiscounts": "Zľavy na knihy", + "Permission:BookDiscount": "Zľava na knihy", + "Menu:BookDiscounts": "Zľavy na knihy", + "BookType": "Typ knihy", + "PurchasePlatform": "Nákupná platforma", + "StartTime": "Doba spustenia", + "EndTime": "Čas ukončenia", + "CreateABookDiscount": "Vytvorte zľavu na knihu", + "BookDiscountDeletionConfirmationMessage": "Naozaj chcete odstrániť túto zľavu na knihu?", + "CustomPaymentFlexSwitchDescription": "S licenciou", + "AllowFeatureUpgradeOnLicenseExpire": "Povoliť inováciu funkcií po uplynutí platnosti licencie", + "Deleted{0}": "[Odstránené {0}]", + "Tags": "Tagy", + "SetTagsInfo": "Značky by mali byť oddelené čiarkou. Napr.: CSharp, Entity Framework", + "RejectTrialLicenseWarningMessage": "Naozaj chcete odmietnuť túto žiadosť o skúšobnú licenciu?", + "ExportToExcel": "Exportovať do Excelu", + "OverallTotalPrice": "Celková celková cena", + "OverallDiscountPrice": "Celková zľava", + "OverallDiscountText": "Text celkovej zľavy", + "SelectReport": "- Vyberte prehľad -", + "NoDataAvailable": "Nie sú k dispozícii žiadne údaje", + "StatisticsOfCachedContents": "Štatistiky obsahu balíka NuGet uloženého vo vyrovnávacej pamäti pre nuget.abp.io", + "Compact": "Kompaktný", + "EditSettings": "Upraviť nastavenia", + "CurrentEstimatedSize": "Aktuálna odhadovaná veľkosť", + "CurrentEntryCount": "Aktuálny počet vstupov", + "TotalHits": "Celkový počet zásahov", + "TotalMisses": "Celkom chýba", + "NoResponseFrom": "Žiadna odpoveď od", + "ContentCacheSlidingExpirationByDay": "Posuvné uplynutie platnosti vyrovnávacej pamäte obsahu podľa dňa", + "MaxDaysForCaching": "Maximálny počet dní na ukladanie do vyrovnávacej pamäte", + "Enabled": "Povolené", + "Menu:NugetPackagesContentCache": "Vyrovnávacia pamäť NuGet", + "NugetPackagesContentCache": "Vyrovnávacia pamäť obsahu NuGet", + "SlidingExpritionByDayInfo": "Získa alebo nastaví, ako dlho môže byť záznam vo vyrovnávacej pamäti neaktívny (napr. bez prístupu), kým bude odstránený. Životnosť záznamu sa tým nepredĺži za absolútnu expiráciu.", + "MaxDaysForCachingInfo": "Získa alebo nastaví absolútny čas vypršania platnosti vzhľadom na teraz.", + "CurrentEstimatedSizeInfo": "Označuje odhadovaný súčet veľkosti obsahu všetkých balíčkov NuGet, ktoré sú momentálne vo vyrovnávacej pamäti", + "CurrentEntryCountInfo": "Označuje počet inštancií aktuálne vo vyrovnávacej pamäti.", + "TotalHitsInfo": "Označuje celkový počet vynechaní vyrovnávacej pamäte. K prístupu do vyrovnávacej pamäte dochádza, keď je súbor vyžiadaný z vyrovnávacej pamäte a vyrovnávacia pamäť je schopná túto požiadavku splniť.", + "TotalMissesInfo": "Označuje celkový počet prístupov do vyrovnávacej pamäte. Cache miss je, keď cache neobsahuje požadovaný obsah.", + "Permission:VersionHistory": "História verzií", + "Caches": "Cache", + "VersionHistories": "História verzií", + "Version": "Verzia", + "PublishDate": "Dátum zverejnenia", + "IsStableVersion": "Stabilná verzia", + "IsActive": "Aktívne", + "NewVersion": "Nová verzia", + "VersionHistoryDeletionConfirmationMessage": "Naozaj chcete odstrániť túto verziu?", + "CreateAbpConsultantLogoInfo": "Maximálna veľkosť súboru: 1 MB
Podporované typy súborov: jpg, jpeg, png, SVG, WebP", + "UrlCode": "Kód URL", + "Clear": "jasný", + "Permission:AbpConsultant": "Konzultant ABP", + "Menu:AbpConsultants": "Konzultanti ABP", + "CreateAbpConsultant": "Vytvorte poradcu ABP", + "UrlCodeIsNotAvailable": "Url kód používa iný konzultant ABP.", + "AbpConsultants": "Konzultanti ABP", + "AbpConsultant": "Konzultant ABP", + "AbpConsultantEdit": "Upraviť poradcu ABP", + "AbpConsultantCreate": "Vytvorte poradcu ABP", + "WhoWeAreItem": "Položka Kto sme", + "FieldIsRequired": "Vyžaduje sa {0}.", + "FieldIsNotValid": "{0} nie je platné.", + "InterestedLicenseType": "Typ licencie, o ktorú máte záujem", + "MoveWaitList": "Presuňte sa na zoznam čakateľov", + "CommunityLinkTitle": "Otvorte na webovej stránke komunity", + "CommunityLink": "Odkaz na komunitu", + "ReloadFromSource": "Znovu načítať zo zdroja", + "ReloadFromSourceConfirmationMessage": "Tento príspevok bude obnovený z „{0}“. Chceš pokračovať?", + "UnitPrice": "Jednotková cena", + "OverallDiscountAmount": "Celková výška zľavy", + "DiscountAmount": "Výška zľavy", + "FullChangeHistory": "Úplná história zmien", + "Permission:RefreshReleaseLogs": "Obnoviť denníky vydania", + "ReleaseLogs": "Denníky uvoľnenia", + "AuthorUserName": "Používateľské meno autora", + "Type": "Typ", + "TotalDiscount": "Celková zľava", + "SubTotal": "Medzisúčet", + "TotalDue": "Celková splatnosť", + "QuotationNo": "Citát č", + "ValidTill": "Platný do", + "QuotationNote": "Poznámka k citácii", + "QuotationTemplate.Address:": "Adresa:", + "QuotationTemplate.VATNo:": "IČ DPH:", + "QuotationTemplate.Phone:": "Telefón:", + "QuotationTemplate.E-mail:": "E-mail:", + "QuotationTemplate.Quotation": "Citácia", + "QuotationTemplate.To": "Komu", + "QuotationTemplate.Details": "Podrobnosti", + "QuotationTemplate.QuotationNo:": "Citácia č.:", + "QuotationTemplate.IssueDate:": "Dátum vydania:", + "QuotationTemplate.ValidTill:": "Platný do:", + "QuotationTemplate.ValidDays": "{0} dní", + "QuotationTemplate.Description": "Popis", + "QuotationTemplate.UnitPrice": "Jednotková cena", + "QuotationTemplate.Qty": "Množ", + "QuotationTemplate.Discount": "Zľava", + "QuotationTemplate.Total": "Celkom", + "QuotationTemplate.Notes": "Poznámky", + "QuotationTemplate.SubTotal:": "Medzisúčet:", + "QuotationTemplate.Tax/VAT:": "Daň / DPH (%{0}) :", + "QuotationTemplate.TotalDiscount:": "Celková zľava:", + "QuotationTemplate.TOTALDUE:": "CELKOVÁ DLUHA:", + "QuotationTemplate.BankAccount": "Informácie o našom bankovom účte nájdete na adrese {0}", + "Permission:Raffles": "Tombola", + "Permission:Draw": "Kresliť", + "Menu:Raffles": "Tomboly", + "RaffleIsNotDrawable": "Tombola nie je žrebovateľná", + "WinnerCountMustBeGreaterThanZero": "Počet víťazov musí byť väčší ako nula", + "FullDescription": "Úplný popis", + "VisibilityStartDate": "Dátum začiatku viditeľnosti", + "VisibilityEndDate": "Dátum ukončenia viditeľnosti", + "RaffleDate": "Dátum tomboly", + "SubscriptionCode": "Kód predplatného", + "GroupCode": "Skupinový kód", + "MaxWinnerCount": "Maximálny počet víťazov", + "ReDraw": "Znovu nakresliť", + "EditRaffle": "Upraviť lotériu", + "Raffles": "Tomboly", + "CreateARaffle": "Vytvorte tombolu", + "Draw": "Kresliť", + "Enum:RaffleStatus:0": "Aktívne", + "Enum:RaffleStatus:1": "Ďalšie", + "Enum:RaffleStatus:2": "Minulosť", + "DrawDone": "Kreslenie Hotovo", + "HomePageShowType": "Typ zobrazenia domovskej stránky", + "None": "žiadne", + "Card": "kard", + "Horizontal": "Horizontálne", + "Winners": "Víťazi", + "StartDateMustBeLessThanEndDate": "Dátum začiatku musí byť kratší ako dátum ukončenia", + "VisibilityStartDateMustBeLessThanVisibilityEndDate": "Dátum začiatku viditeľnosti musí byť kratší ako dátum ukončenia viditeľnosti", + "StartDateMustBeGreaterThanVisibilityStartDate": "Dátum začiatku musí byť väčší ako dátum začiatku viditeľnosti", + "EndDateMustBeLessThanVisibilityEndDate": "Dátum ukončenia musí byť kratší ako dátum ukončenia viditeľnosti", + "DrawnDone": "Kreslené Hotovo", + "AddColor": "Pridať farbu", + "Colors": "Farby", + "RemoveColor": "Odstrániť farbu", + "MaxColorCountWarning": "Môžete pridať až {0} farieb", + "MinColorCountWarning": "Musíte pridať aspoň {0} farieb", + "RaffleDeletionConfirmationMessage": "Naozaj chcete odstrániť túto tombolu?", + "CreateRaffle": "Vytvorenie tomboly", + "RemoveImage": "Odstrániť obrázok", + "SuccessfullySaved": "Úspešne uložené", + "Menu:CommunityTalks": "Komunitné rozhovory", + "Menu:Conferences": "konferencie", + "Menu:OtherLiveEvents": "Ďalšie živé podujatia", + "Menu:SponsoredConferences": "Sponzorované konferencie", + "Logo": "Logo", + "Slug": "Slimák", + "CompanyUrl": "Adresa URL spoločnosti", + "TalkTitle": "Názov diskusie", + "AbstractTopic": "Abstraktná téma", + "Bio": "Bio", + "LinkedIn": "LinkedIn", + "Github": "Github", + "Twitch": "Trhnutie", + "Youtube": "YouTube", + "Twitter": "Twitter", + "PersonalWebsite": "Osobná webová stránka", + "VideoId": "ID videa", + "Order": "objednať", + "Image1x1": "Obrázok 1x1", + "Image16x9": "Obrázok 16x9", + "Banner": "Banner", + "Speaker": "Hovorca", + "SessionDate": "Dátum relácie", + "AddSession": "Pridať reláciu", + "AddSponsor": "Pridať sponzora", + "SponsorLogo": "Logo sponzora", + "RegistrationUrl": "Registračná adresa URL" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/sl.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/sl.json index 968c8fa8c0..58eb87edbc 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/sl.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/sl.json @@ -220,6 +220,7 @@ "SuccessfullyReIndexAllPosts": "Vse objave so bile uspešno ponovno indeksirane.", "Permission:FullSearch": "Iskanje po celotnem besedilu", "Menu:CliAnalytics": "Cli Analytics", + "Menu:Reports": "Poročila", "TemplateName": "Ime predloge", "TemplateVersion": "Različica predloge", "DatabaseProvider": "Ponudnik baze podatkov", @@ -231,8 +232,10 @@ "UiFramework": "Okvir uporabniškega vmesnika", "Options": "Opcije", "CliAnalytics": "Cli Analytics", + "Reports": "Poročila", "Permission:CliAnalyticses": "Cli Analytics", "Permission:CliAnalytics": "Cli Analytics", + "Permission:Reports": "Poročila", "Search": "Iskanje", "ClearFilter": "Počisti filter", "LicensePrivateKey": "Licenčni zasebni ključ", @@ -316,14 +319,12 @@ "TrialLicenseStatusFilter": "Stanje", "TrialLicenseStartDateFilter": "Začetni datum", "TrialLicenseEndDateFilter": "Končni datum", - "FirsName": "Ime", + "FirstName": "Ime", "LastName": "Priimek", "StartDate": "Začetni datum", "EndDate": "Končni datum", "PurchasedDate": "Datum nakupa", "OrganizationDetail": "Podrobnosti o organizaciji", - "SendActivationMail": "Pošlji aktivacijsko pošto", - "ActivationMailSentSuccessfully": "Aktivacijska pošta uspešno poslana!", "TrialLicenseStatus": "Status preizkusne licence", "TrialLicenseDetail": "Podrobnosti o preizkusni licenci", "AcceptsMarketingCommunications": "Tržno komuniciranje", @@ -337,22 +338,228 @@ "Expired": "Potekel", "TrialLicenseDeletionWarningMessage": "Ali ste prepričani, da želite izbrisati preskusno licenco? Preskusna licenca, organizacija, podporni računi bodo izbrisani!", "LicenseCategoryFilter": "Kategorija licence", - "Volo.AbpIo.Commercial:030000": "Poskusno obdobje ste že izkoristili.", - "Volo.AbpIo.Commercial:030001": "To ime organizacije že obstaja.", - "Volo.AbpIo.Commercial:030002": "Ko je enkrat aktivirana, poskusne licence ni mogoče nastaviti na zahtevano!", - "Volo.AbpIo.Commercial:030003": "Takega statusa ni!", - "Volo.AbpIo.Commercial:030004": "Stanja ni bilo mogoče spremeniti zaradi nepričakovane napake!", - "Volo.AbpIo.Commercial:030005": "Začetni in končni datum je mogoče posodobiti, ko je preizkusna licenca v statusu -aktivirano!", - "Volo.AbpIo.Commercial:030006": "Končni datum mora biti vedno večji od začetnega!", - "Volo.AbpIo.Commercial:030007": "Ta preizkusna licenca je bila že enkrat aktivirana!", - "Volo.AbpIo.Commercial:030008": "Datum nakupa je mogoče nastaviti samo, če je status Kupljeno!", - "Volo.AbpIo.Commercial:030009": "Uporabnik ni najden!", - "Volo.AbpIo.Commercial:030010": "Za nakup preizkusne licence morate najprej aktivirati preizkusno licenco!", - "Volo.AbpIo.Commercial:030011": "Preskusne licence ne morete izbrisati, ko je kupljena!", + "Permission:SendWelcomeEmail": "Pošlji pozdravno e-pošto", + "SendWelcomeEmail": "Pošlji pozdravno e-pošto", + "SendWelcomeEmailWarningMessage": "Ali ste prepričani, da želite članom organizacije poslati pozdravno e-pošto?", + "SendWelcomeEmailSuccessMessage": "Pozdravno e-poštno sporočilo je bilo uspešno poslano!", + "Activate": "Aktiviraj", + "ActivateTrialLicenseWarningMessage": "Ko aktivirate poskusno licenco, bo uporabniku poslano pozdravno e-poštno sporočilo. Ali ga želite aktivirati?", + "ActivateTrialLicenseSuccessMessage": "Uspešno aktiviran in pozdravno e-poštno sporočilo je bilo poslano članom organizacije.", + "PaymentRequestId": "ID zahteve za plačilo", + "AdditionalDeveloperCount": "Dodatno število razvijalcev", + "LicensePrice": "Cena licence", + "PurchaseDate": "Datum nakupa", + "IsAbpBookDownloaded": "Ste prenesli knjigo Mastering ABP?", + "IsMasteringAbpBookDownloadEnabled": "Prenos knjige ABP omogočen", + "Permission:Accounting:CustomPaymentLinkGenerator": "Povezava za plačilo po meri", + "CustomPaymentLink": "Povezava za plačilo po meri", + "Menu:CustomPaymentLink": "Povezava za plačilo po meri", + "Amount": "Znesek", + "GenerateCustomPaymentLink": "Ustvari povezavo za plačilo po meri", + "GeneratedPaymentLink": "Ustvarjena povezava za plačilo", + "CopyText": "Kopiraj besedilo", + "Permission:CommunityEvents": "Dogodki", + "Menu:Events": "Dogodki", + "Events": "Dogodki", + "EventType": "Vrsta dogodka", + "Number": "številka", + "RegistrationURL": "URL za registracijo", + "URL": "URL", + "EventDeletionConfirmationMessage": "Ali ste prepričani, da želite izbrisati ta dogodek?", + "Enum:EventType:0": "Skupnostni pogovori", + "CreateAnEvent": "Ustvarite dogodek", + "Permission:CommunitySpeakers": "Zvočniki", + "CreateASpeaker": "Ustvari zvočnik", + "Speakers": "Zvočniki", + "Image": "Slika", + "GithubURL": "Github URL", + "SpeakerDeletionConfirmationMessage": "Ali ste prepričani, da želite izbrisati tega zvočnika?", + "Menu:Speakers": "Zvočniki", + "ChooseSpeakerImage": "Izberite sliko zvočnika ...", + "SpeakerImage": "Slika zvočnika", + "AddSpeaker": "Dodaj zvočnik", + "ShowPurchaseItemsOfOrganizations": "Nakup predmetov", + "Enum:OrganizationPurchaseState:0": "Ni dostavljeno", + "Enum:OrganizationPurchaseState:1": "Dostavljeno", + "PurchaseItems": "Nakup predmetov", + "SuccessfullyUpdated": "Uspešno posodobljeno", + "SuccessfullyAdded": "Uspešno dodano", + "PurchaseState": "Stanje nakupa", + "ShowBetweenDayCount": "Pokaži med dnevi", + "PurchaseOrder": "Naročilnica", + "ShowCreateInvoiceOfOrganization": "Ustvari račun", + "ShowCreateQuotationOfOrganization": "Ustvarite ponudbo", + "BookDiscounts": "Knjižni popusti", + "Permission:BookDiscount": "Knjižni popust", + "Menu:BookDiscounts": "Knjižni popusti", + "BookType": "Vrsta knjige", + "PurchasePlatform": "Platforma za nakup", + "StartTime": "Začetni čas", + "EndTime": "Končni čas", + "CreateABookDiscount": "Ustvarite popust za knjige", + "BookDiscountDeletionConfirmationMessage": "Ali ste prepričani, da želite izbrisati ta popust za knjige?", + "CustomPaymentFlexSwitchDescription": "Z licenco", + "AllowFeatureUpgradeOnLicenseExpire": "Dovoli nadgradnjo funkcij ob poteku licence", + "Deleted{0}": "[Izbrisano {0}]", + "Tags": "Oznake", + "SetTagsInfo": "Oznake morajo biti ločene z vejicami. Npr.: CSharp, Entity Framework", + "RejectTrialLicenseWarningMessage": "Ali ste prepričani, da želite zavrniti to zahtevo za preskusno licenco?", + "ExportToExcel": "Izvoz v Excel", + "OverallTotalPrice": "Skupna skupna cena", + "OverallDiscountPrice": "Skupna cena s popustom", + "OverallDiscountText": "Besedilo splošnega popusta", + "SelectReport": "- Izberite Poročilo -", + "NoDataAvailable": "Ni podatkov", + "StatisticsOfCachedContents": "Statistika predpomnjene vsebine paketa NuGet za nuget.abp.io", + "Compact": "Kompakten", + "EditSettings": "Uredi nastavitve", + "CurrentEstimatedSize": "Trenutna ocenjena velikost", + "CurrentEntryCount": "Trenutno število vnosov", + "TotalHits": "Skupno število zadetkov", + "TotalMisses": "Totalni zgrešilci", + "NoResponseFrom": "Ni odgovora od", + "ContentCacheSlidingExpirationByDay": "Drsni potek predpomnilnika vsebine po dnevih", + "MaxDaysForCaching": "Največje število dni za predpomnjenje", + "Enabled": "Omogočeno", + "Menu:NugetPackagesContentCache": "Predpomnilnik NuGet", + "NugetPackagesContentCache": "Predpomnilnik vsebine NuGet", + "SlidingExpritionByDayInfo": "Dobi ali nastavi, koliko časa je lahko vnos v predpomnilnik neaktiven (npr. nedostopen), preden bo odstranjen. To ne bo podaljšalo življenjske dobe vstopa po absolutnem izteku.", + "MaxDaysForCachingInfo": "Pridobi ali nastavi absolutni čas poteka glede na zdaj.", + "CurrentEstimatedSizeInfo": "Označuje ocenjeno vsoto velikosti vsebine vseh paketov NuGet, ki je trenutno v predpomnilniku pomnilnika", + "CurrentEntryCountInfo": "Označuje število primerkov, ki so trenutno v predpomnilniku.", + "TotalHitsInfo": "Označuje skupno število zgrešenih predpomnilnikov. Do zadetka v predpomnilniku pride, ko je datoteka zahtevana iz predpomnilnika in predpomnilnik lahko izpolni to zahtevo.", + "TotalMissesInfo": "Označuje skupno število zadetkov predpomnilnika. Zgrešen predpomnilnik je, ko predpomnilnik ne vsebuje zahtevane vsebine.", + "Permission:VersionHistory": "Zgodovina različic", + "Caches": "Zapomnilniki", + "VersionHistories": "Zgodovina različic", + "Version": "Različica", + "PublishDate": "Datum objave", + "IsStableVersion": "Stabilna različica", + "IsActive": "Aktiven", + "NewVersion": "Nova različica", + "VersionHistoryDeletionConfirmationMessage": "Ali ste prepričani, da želite izbrisati to različico?", + "CreateAbpConsultantLogoInfo": "Največja velikost datoteke: 1 MB
Podprte vrste datotek: jpg, jpeg, png, SVG, WebP", + "UrlCode": "Url koda", + "Clear": "jasno", + "Permission:AbpConsultant": "ABP svetovalec", + "Menu:AbpConsultants": "ABP svetovalci", + "CreateAbpConsultant": "Ustvarite ABP svetovalca", + "UrlCodeIsNotAvailable": "Url kodo uporablja drug svetovalec ABP.", + "AbpConsultants": "ABP svetovalci", + "AbpConsultant": "ABP svetovalec", + "AbpConsultantEdit": "Uredi ABP svetovalca", + "AbpConsultantCreate": "Ustvarite ABP svetovalca", + "WhoWeAreItem": "Kdo smo", + "FieldIsRequired": "Zahtevan je {0}.", + "FieldIsNotValid": "{0} ni veljaven.", + "InterestedLicenseType": "Zainteresirana vrsta licence", "MoveWaitList": "Presuňte sa na zoznam čakateľov", "CommunityLinkTitle": "Otvorte na webovej stránke komunity", "CommunityLink": "Odkaz na komunitu", "ReloadFromSource": "Znovu načítať zo zdroja", - "ReloadFromSourceConfirmationMessage": "Tento príspevok bude obnovený z „{0}“. Chceš pokračovať?" + "ReloadFromSourceConfirmationMessage": "Tento príspevok bude obnovený z „{0}“. Chceš pokračovať?", + "UnitPrice": "Cena na enoto", + "OverallDiscountAmount": "Skupni znesek popusta", + "DiscountAmount": "Znesek popusta", + "FullChangeHistory": "Celotna zgodovina sprememb", + "Permission:RefreshReleaseLogs": "Osveži dnevnike izdaj", + "ReleaseLogs": "Dnevniki izdaje", + "AuthorUserName": "Uporabniško ime avtorja", + "Type": "Vrsta", + "TotalDiscount": "Skupni popust", + "SubTotal": "Vmesni seštevek", + "TotalDue": "Skupaj zapadlo", + "QuotationNo": "Ponudba št", + "ValidTill": "Veljavno do", + "QuotationNote": "Opomba o ponudbi", + "QuotationTemplate.Address:": "Naslov:", + "QuotationTemplate.VATNo:": "DDV številka:", + "QuotationTemplate.Phone:": "telefon:", + "QuotationTemplate.E-mail:": "E-naslov:", + "QuotationTemplate.Quotation": "Citat", + "QuotationTemplate.To": "Za", + "QuotationTemplate.Details": "Podrobnosti", + "QuotationTemplate.QuotationNo:": "Ponudba #:", + "QuotationTemplate.IssueDate:": "Datum izdaje:", + "QuotationTemplate.ValidTill:": "Veljavno do:", + "QuotationTemplate.ValidDays": "{0} dni", + "QuotationTemplate.Description": "Opis", + "QuotationTemplate.UnitPrice": "Cena na enoto", + "QuotationTemplate.Qty": "Količina", + "QuotationTemplate.Discount": "Popust", + "QuotationTemplate.Total": "Skupaj", + "QuotationTemplate.Notes": "Opombe", + "QuotationTemplate.SubTotal:": "Vmesni seštevek:", + "QuotationTemplate.Tax/VAT:": "Davek/DDV (%{0}):", + "QuotationTemplate.TotalDiscount:": "Skupni popust:", + "QuotationTemplate.TOTALDUE:": "SKUPAJ ZAPADA:", + "QuotationTemplate.BankAccount": "Podatke o našem bančnem računu najdete na {0}", + "Permission:Raffles": "Žrebanje", + "Permission:Draw": "Nariši", + "Menu:Raffles": "Žrebanje", + "RaffleIsNotDrawable": "Žrebanje ni možno", + "WinnerCountMustBeGreaterThanZero": "Število zmagovalcev mora biti večje od nič", + "FullDescription": "Celoten opis", + "VisibilityStartDate": "Začetni datum vidnosti", + "VisibilityEndDate": "Končni datum vidnosti", + "RaffleDate": "Datum žrebanja", + "SubscriptionCode": "Naročniška koda", + "GroupCode": "Koda skupine", + "MaxWinnerCount": "Največje število zmagovalcev", + "ReDraw": "Ponovno nariši", + "EditRaffle": "Uredi nagradno igro", + "Raffles": "Žrebanje", + "CreateARaffle": "Ustvari nagradno igro", + "Draw": "Nariši", + "Enum:RaffleStatus:0": "Aktiven", + "Enum:RaffleStatus:1": "Naslednji", + "Enum:RaffleStatus:2": "Preteklost", + "DrawDone": "Žrebanje končano", + "HomePageShowType": "Vrsta prikaza domače strani", + "None": "Noben", + "Card": "Kartica", + "Horizontal": "Vodoravno", + "Winners": "Zmagovalci", + "StartDateMustBeLessThanEndDate": "Začetni datum mora biti krajši od končnega datuma", + "VisibilityStartDateMustBeLessThanVisibilityEndDate": "Začetni datum vidnosti mora biti krajši od končnega datuma vidnosti", + "StartDateMustBeGreaterThanVisibilityStartDate": "Začetni datum mora biti daljši od začetnega datuma vidnosti", + "EndDateMustBeLessThanVisibilityEndDate": "Končni datum mora biti krajši od končnega datuma vidnosti", + "DrawnDone": "Narisano Končano", + "AddColor": "Dodaj barvo", + "Colors": "Barve", + "RemoveColor": "Odstrani barvo", + "MaxColorCountWarning": "Dodate lahko do {0} barv", + "MinColorCountWarning": "Dodati morate vsaj {0} barv", + "RaffleDeletionConfirmationMessage": "Ali ste prepričani, da želite izbrisati to nagradno igro?", + "CreateRaffle": "Ustvari nagradno igro", + "RemoveImage": "Odstrani sliko", + "SuccessfullySaved": "Uspešno shranjeno", + "Menu:CommunityTalks": "Skupnostni pogovori", + "Menu:Conferences": "konference", + "Menu:OtherLiveEvents": "Drugi dogodki v živo", + "Menu:SponsoredConferences": "Sponzorirane konference", + "Logo": "Logotip", + "Slug": "Polž", + "CompanyUrl": "URL podjetja", + "TalkTitle": "Naslov pogovora", + "AbstractTopic": "Abstraktna tema", + "Bio": "Bio", + "LinkedIn": "LinkedIn", + "Github": "Github", + "Twitch": "Trzanje", + "Youtube": "Youtube", + "Twitter": "Twitter", + "PersonalWebsite": "Osebno spletno mesto", + "VideoId": "ID videa", + "Order": "naročilo", + "Image1x1": "Slika 1x1", + "Image16x9": "Slika 16x9", + "Banner": "Pasica", + "Speaker": "Zvočnik", + "SessionDate": "Datum seje", + "AddSession": "Dodaj sejo", + "AddSponsor": "Dodaj sponzorja", + "SponsorLogo": "Logo sponzorja", + "RegistrationUrl": "Registracijski URL" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/vi.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/vi.json index bcaa3cea5d..1d00ba855e 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/vi.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/vi.json @@ -220,6 +220,7 @@ "SuccessfullyReIndexAllPosts": "Tất cả các bài viết đã được lập chỉ mục lại thành công.", "Permission:FullSearch": "Tìm kiếm toàn văn", "Menu:CliAnalytics": "Cli Analytics", + "Menu:Reports": "Báo cáo", "TemplateName": "Tên mẫu", "TemplateVersion": "Phiên bản mẫu", "DatabaseProvider": "Nhà cung cấp cơ sở dữ liệu", @@ -231,8 +232,10 @@ "UiFramework": "Khung Ui", "Options": "Tùy chọn", "CliAnalytics": "Cli Analytics", + "Reports": "Báo cáo", "Permission:CliAnalyticses": "Cli Analyticses", "Permission:CliAnalytics": "Cli Analytics", + "Permission:Reports": "Báo cáo", "Search": "Tìm kiếm", "ClearFilter": "LÀm sạch bộ lọc", "LicensePrivateKey": "Cấp phép khóa cá nhân", @@ -316,14 +319,12 @@ "TrialLicenseStatusFilter": "Trạng thái", "TrialLicenseStartDateFilter": "Ngày bắt đầu", "TrialLicenseEndDateFilter": "Ngày cuối", - "FirsName": "Tên đầu tiên", + "FirstName": "Tên đầu tiên", "LastName": "Họ", "StartDate": "Ngày bắt đầu", "EndDate": "Ngày cuối", "PurchasedDate": "Ngày mua", "OrganizationDetail": "Chi tiết tổ chức", - "SendActivationMail": "Gửi thư kích hoạt", - "ActivationMailSentSuccessfully": "Đã gửi thư kích hoạt thành công!", "TrialLicenseStatus": "Trạng thái giấy phép dùng thử", "TrialLicenseDetail": "Chi tiết Giấy phép Thử nghiệm", "AcceptsMarketingCommunications": "Truyền thông Tiếp thị", @@ -337,17 +338,228 @@ "Expired": "Hết hạn", "TrialLicenseDeletionWarningMessage": "Bạn có chắc chắn muốn xóa giấy phép dùng thử không? Giấy phép dùng thử, tổ chức, tài khoản hỗ trợ sẽ bị xóa!", "LicenseCategoryFilter": "Loại giấy phép", - "Volo.AbpIo.Commercial:030000": "Bạn đã sử dụng thời gian dùng thử của mình.", - "Volo.AbpIo.Commercial:030001": "Tên tổ chức này đã tồn tại.", - "Volo.AbpIo.Commercial:030002": "Sau khi được kích hoạt, không thể đặt giấy phép dùng thử thành yêu cầu!", - "Volo.AbpIo.Commercial:030003": "Không có tình trạng như vậy!", - "Volo.AbpIo.Commercial:030004": "Không thể thay đổi trạng thái do lỗi không mong muốn!", - "Volo.AbpIo.Commercial:030005": "Ngày bắt đầu và ngày kết thúc có thể được cập nhật khi giấy phép dùng thử ở trạng thái -activate-!", - "Volo.AbpIo.Commercial:030006": "Ngày kết thúc phải luôn lớn hơn ngày bắt đầu!", - "Volo.AbpIo.Commercial:030007": "Giấy phép dùng thử này đã được kích hoạt một lần!", - "Volo.AbpIo.Commercial:030008": "Ngày mua chỉ có thể được đặt khi trạng thái là Đã mua!", - "Volo.AbpIo.Commercial:030009": "Không tìm thấy người dùng!", - "Volo.AbpIo.Commercial:030010": "Để mua giấy phép dùng thử, trước tiên bạn cần kích hoạt giấy phép dùng thử của mình!", - "Volo.AbpIo.Commercial:030011": "Bạn không thể xóa giấy phép dùng thử khi nó đã được mua!" + "Permission:SendWelcomeEmail": "Gửi email chào mừng", + "SendWelcomeEmail": "Gửi email chào mừng", + "SendWelcomeEmailWarningMessage": "Bạn có chắc chắn muốn gửi email chào mừng tới các thành viên của tổ chức không?", + "SendWelcomeEmailSuccessMessage": "Email chào mừng đã được gửi thành công!", + "Activate": "Kích hoạt", + "ActivateTrialLicenseWarningMessage": "Khi bạn kích hoạt giấy phép dùng thử, một email chào mừng sẽ được gửi đến người dùng. Bạn có muốn kích hoạt nó không?", + "ActivateTrialLicenseSuccessMessage": "Kích hoạt thành công và email chào mừng được gửi đến các thành viên tổ chức.", + "PaymentRequestId": "Id yêu cầu thanh toán", + "AdditionalDeveloperCount": "Số lượng nhà phát triển bổ sung", + "LicensePrice": "Giá giấy phép", + "PurchaseDate": "Ngày mua", + "IsAbpBookDownloaded": "Đã tải xuống Sách ABP thành thạo?", + "IsMasteringAbpBookDownloadEnabled": "Đã bật tải xuống sách ABP", + "Permission:Accounting:CustomPaymentLinkGenerator": "Liên kết thanh toán tùy chỉnh", + "CustomPaymentLink": "Liên kết thanh toán tùy chỉnh", + "Menu:CustomPaymentLink": "Liên kết thanh toán tùy chỉnh", + "Amount": "Số lượng", + "GenerateCustomPaymentLink": "Tạo liên kết thanh toán tùy chỉnh", + "GeneratedPaymentLink": "Liên kết thanh toán được tạo", + "CopyText": "Sao chép văn bản", + "Permission:CommunityEvents": "Sự kiện", + "Menu:Events": "Sự kiện", + "Events": "Sự kiện", + "EventType": "Loại sự kiện", + "Number": "Con số", + "RegistrationURL": "URL đăng ký", + "URL": "URL", + "EventDeletionConfirmationMessage": "Bạn có chắc chắn muốn xóa sự kiện này?", + "Enum:EventType:0": "Tọa đàm cộng đồng", + "CreateAnEvent": "Tạo sự kiện", + "Permission:CommunitySpeakers": "Diễn giả", + "CreateASpeaker": "Tạo một loa", + "Speakers": "Diễn giả", + "Image": "Hình ảnh", + "GithubURL": "URL Github", + "SpeakerDeletionConfirmationMessage": "Bạn có chắc chắn muốn xóa loa này không?", + "Menu:Speakers": "Diễn giả", + "ChooseSpeakerImage": "Chọn hình ảnh loa...", + "SpeakerImage": "Hình ảnh loa", + "AddSpeaker": "Thêm loa", + "ShowPurchaseItemsOfOrganizations": "Mua đồ", + "Enum:OrganizationPurchaseState:0": "Chưa giao", + "Enum:OrganizationPurchaseState:1": "Đã giao hàng", + "PurchaseItems": "Mua đồ", + "SuccessfullyUpdated": "Cập nhật thành công", + "SuccessfullyAdded": "Thêm thành công", + "PurchaseState": "Trạng thái mua hàng", + "ShowBetweenDayCount": "Hiển thị giữa các ngày", + "PurchaseOrder": "Đơn đặt hàng", + "ShowCreateInvoiceOfOrganization": "Tạo hóa đơn", + "ShowCreateQuotationOfOrganization": "Tạo báo giá", + "BookDiscounts": "Giảm giá sách", + "Permission:BookDiscount": "Giảm giá sách", + "Menu:BookDiscounts": "Giảm giá sách", + "BookType": "Loại sách", + "PurchasePlatform": "Nền tảng mua hàng", + "StartTime": "Thời gian bắt đầu", + "EndTime": "Thời gian kết thúc", + "CreateABookDiscount": "Tạo giảm giá sách", + "BookDiscountDeletionConfirmationMessage": "Bạn có chắc chắn muốn xóa giảm giá cuốn sách này?", + "CustomPaymentFlexSwitchDescription": "Có giấy phép", + "AllowFeatureUpgradeOnLicenseExpire": "Cho phép nâng cấp tính năng khi giấy phép hết hạn", + "Deleted{0}": "[Đã xóa {0}]", + "Tags": "Thẻ", + "SetTagsInfo": "Các thẻ phải được phân tách bằng dấu phẩy. Ví dụ: CSharp, Entity Framework", + "RejectTrialLicenseWarningMessage": "Bạn có chắc chắn muốn từ chối yêu cầu cấp phép dùng thử này không?", + "ExportToExcel": "Xuất sang Excel", + "OverallTotalPrice": "Tổng giá", + "OverallDiscountPrice": "Giá chiết khấu chung", + "OverallDiscountText": "Văn bản giảm giá tổng thể", + "SelectReport": "- Chọn Báo cáo -", + "NoDataAvailable": "Không có dữ liệu", + "StatisticsOfCachedContents": "Thống kê nội dung gói NuGet được lưu trong bộ nhớ cache cho nuget.abp.io", + "Compact": "gọn nhẹ", + "EditSettings": "Chỉnh sửa cài đặt", + "CurrentEstimatedSize": "Kích thước ước tính hiện tại", + "CurrentEntryCount": "Số lượng mục nhập hiện tại", + "TotalHits": "Tổng số lượt truy cập", + "TotalMisses": "Tổng số lần trượt", + "NoResponseFrom": "Không có phản hồi từ", + "ContentCacheSlidingExpirationByDay": "Hết hạn trượt bộ đệm nội dung theo ngày", + "MaxDaysForCaching": "Số ngày tối đa để lưu vào bộ nhớ đệm", + "Enabled": "Đã bật", + "Menu:NugetPackagesContentCache": "Bộ nhớ đệm NuGet", + "NugetPackagesContentCache": "Bộ đệm nội dung NuGet", + "SlidingExpritionByDayInfo": "Nhận hoặc đặt khoảng thời gian một mục bộ đệm có thể không hoạt động (ví dụ: không được truy cập) trước khi nó bị xóa. Điều này sẽ không kéo dài thời gian tồn tại của mục nhập vượt quá thời hạn tuyệt đối.", + "MaxDaysForCachingInfo": "Nhận hoặc đặt thời gian hết hạn tuyệt đối, liên quan đến thời điểm hiện tại.", + "CurrentEstimatedSizeInfo": "Cho biết tổng kích thước nội dung của tất cả các gói NuGet hiện có trong bộ nhớ đệm ước tính", + "CurrentEntryCountInfo": "Cho biết số lượng phiên bản hiện có trong bộ nhớ đệm.", + "TotalHitsInfo": "Cho biết tổng số bộ nhớ đệm bị lỗi. Lần truy cập bộ đệm xảy ra khi một tệp được yêu cầu từ bộ đệm và bộ đệm có thể đáp ứng yêu cầu đó.", + "TotalMissesInfo": "Cho biết tổng số lần truy cập bộ đệm. Lỗi bộ đệm là khi bộ đệm không chứa nội dung được yêu cầu.", + "Permission:VersionHistory": "Lịch sử phiên bản", + "Caches": "Bộ nhớ đệm", + "VersionHistories": "Lịch sử phiên bản", + "Version": "Phiên bản", + "PublishDate": "Ngày xuất bản", + "IsStableVersion": "Phiên bản ổn định", + "IsActive": "Tích cực", + "NewVersion": "Phiên bản mới", + "VersionHistoryDeletionConfirmationMessage": "Bạn có chắc chắn muốn xóa phiên bản này?", + "CreateAbpConsultantLogoInfo": "Kích thước tệp tối đa: 1MB
Các loại tệp được hỗ trợ: jpg, jpeg, png, SVG, WebP", + "UrlCode": "Mã Url", + "Clear": "Thông thoáng", + "Permission:AbpConsultant": "Tư vấn ABP", + "Menu:AbpConsultants": "Tư vấn ABP", + "CreateAbpConsultant": "Tạo tư vấn ABP", + "UrlCodeIsNotAvailable": "Mã Url được sử dụng bởi Tư vấn viên ABP khác.", + "AbpConsultants": "Tư vấn ABP", + "AbpConsultant": "Tư vấn ABP", + "AbpConsultantEdit": "Chỉnh sửa Tư vấn ABP", + "AbpConsultantCreate": "Tạo tư vấn ABP", + "WhoWeAreItem": "Chúng tôi là ai", + "FieldIsRequired": "{0} là bắt buộc.", + "FieldIsNotValid": "{0} không hợp lệ.", + "InterestedLicenseType": "Loại giấy phép quan tâm", + "MoveWaitList": "Di chuyển đến danh sách chờ", + "CommunityLinkTitle": "Mở trên trang web cộng đồng", + "CommunityLink": "Liên kết cộng đồng", + "ReloadFromSource": "Tải lại từ nguồn", + "ReloadFromSourceConfirmationMessage": "Bài đăng này sẽ được làm mới từ "{0}". Bạn có muốn tiếp tục?", + "UnitPrice": "Đơn giá", + "OverallDiscountAmount": "Tổng số tiền chiết khấu", + "DiscountAmount": "Số tiền chiết khấu", + "FullChangeHistory": "Lịch sử thay đổi hoàn toàn", + "Permission:RefreshReleaseLogs": "Làm mới nhật ký phát hành", + "ReleaseLogs": "Nhật ký phát hành", + "AuthorUserName": "Tên người dùng tác giả", + "Type": "Kiểu", + "TotalDiscount": "Tổng khấu trừ", + "SubTotal": "Tổng phụ", + "TotalDue": "Tổng số tiền đến hạn", + "QuotationNo": "Báo giá số", + "ValidTill": "Có giá trị đến", + "QuotationNote": "Báo giá", + "QuotationTemplate.Address:": "Địa chỉ:", + "QuotationTemplate.VATNo:": "Số thuế GTGT:", + "QuotationTemplate.Phone:": "Điện thoại:", + "QuotationTemplate.E-mail:": "E-mail:", + "QuotationTemplate.Quotation": "Trích dẫn", + "QuotationTemplate.To": "ĐẾN", + "QuotationTemplate.Details": "Chi tiết", + "QuotationTemplate.QuotationNo:": "Trích dẫn #:", + "QuotationTemplate.IssueDate:": "Ngày phát hành:", + "QuotationTemplate.ValidTill:": "Hợp lệ cho đến:", + "QuotationTemplate.ValidDays": "{0} ngày", + "QuotationTemplate.Description": "Sự miêu tả", + "QuotationTemplate.UnitPrice": "Đơn giá", + "QuotationTemplate.Qty": "Số lượng", + "QuotationTemplate.Discount": "Giảm giá", + "QuotationTemplate.Total": "Tổng cộng", + "QuotationTemplate.Notes": "Ghi chú", + "QuotationTemplate.SubTotal:": "Tổng phụ :", + "QuotationTemplate.Tax/VAT:": "Thuế / Vat (%{0}):", + "QuotationTemplate.TotalDiscount:": "Tổng khấu trừ :", + "QuotationTemplate.TOTALDUE:": "TỔNG NỢ:", + "QuotationTemplate.BankAccount": "Bạn có thể tìm thấy thông tin tài khoản ngân hàng của chúng tôi tại {0}", + "Permission:Raffles": "Xổ số", + "Permission:Draw": "Vẽ tranh", + "Menu:Raffles": "Xổ số", + "RaffleIsNotDrawable": "Xổ số không rút được", + "WinnerCountMustBeGreaterThanZero": "Số người chiến thắng phải lớn hơn 0", + "FullDescription": "Mô tả đầy đủ", + "VisibilityStartDate": "Ngày bắt đầu hiển thị", + "VisibilityEndDate": "Ngày kết thúc hiển thị", + "RaffleDate": "Ngày xổ số", + "SubscriptionCode": "Mã đăng ký", + "GroupCode": "Mã nhóm", + "MaxWinnerCount": "Số người chiến thắng tối đa", + "ReDraw": "Vẽ lại", + "EditRaffle": "Chỉnh sửa xổ số", + "Raffles": "Xổ số", + "CreateARaffle": "Tạo một cuộc xổ số", + "Draw": "Vẽ tranh", + "Enum:RaffleStatus:0": "Tích cực", + "Enum:RaffleStatus:1": "Kế tiếp", + "Enum:RaffleStatus:2": "Quá khứ", + "DrawDone": "Vẽ xong", + "HomePageShowType": "Trang chủ Loại hiển thị", + "None": "Không có", + "Card": "Thẻ", + "Horizontal": "Nằm ngang", + "Winners": "Người chiến thắng", + "StartDateMustBeLessThanEndDate": "Ngày bắt đầu phải nhỏ hơn ngày kết thúc", + "VisibilityStartDateMustBeLessThanVisibilityEndDate": "Ngày bắt đầu hiển thị phải nhỏ hơn ngày kết thúc hiển thị", + "StartDateMustBeGreaterThanVisibilityStartDate": "Ngày bắt đầu phải lớn hơn ngày bắt đầu hiển thị", + "EndDateMustBeLessThanVisibilityEndDate": "Ngày kết thúc phải nhỏ hơn ngày kết thúc hiển thị", + "DrawnDone": "Đã vẽ xong", + "AddColor": "Thêm màu", + "Colors": "Màu sắc", + "RemoveColor": "Xóa màu", + "MaxColorCountWarning": "Bạn có thể thêm tối đa {0} màu", + "MinColorCountWarning": "Bạn phải thêm ít nhất {0} màu", + "RaffleDeletionConfirmationMessage": "Bạn có chắc chắn muốn xóa xổ số này không?", + "CreateRaffle": "Tạo xổ số", + "RemoveImage": "Xóa hình ảnh", + "SuccessfullySaved": "Lưu thành công", + "Menu:CommunityTalks": "Tọa đàm cộng đồng", + "Menu:Conferences": "Hội nghị", + "Menu:OtherLiveEvents": "Sự kiện trực tiếp khác", + "Menu:SponsoredConferences": "Hội nghị được tài trợ", + "Logo": "Logo", + "Slug": "sên", + "CompanyUrl": "Url công ty", + "TalkTitle": "Tiêu đề cuộc nói chuyện", + "AbstractTopic": "Chủ đề trừu tượng", + "Bio": "Tiểu sử", + "LinkedIn": "LinkedIn", + "Github": "Github", + "Twitch": "giật", + "Youtube": "Youtube", + "Twitter": "Twitter", + "PersonalWebsite": "Trang web cá nhân", + "VideoId": "Mã video", + "Order": "Đặt hàng", + "Image1x1": "Hình ảnh 1x1", + "Image16x9": "Hình ảnh 16x9", + "Banner": "Ngọn cờ", + "Speaker": "Loa", + "SessionDate": "Ngày phiên", + "AddSession": "Thêm phiên", + "AddSponsor": "Thêm nhà tài trợ", + "SponsorLogo": "Logo nhà tài trợ", + "RegistrationUrl": "Url đăng ký" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/zh-Hans.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/zh-Hans.json index 0ed00a2c75..8952533623 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/zh-Hans.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/zh-Hans.json @@ -457,6 +457,109 @@ "CommunityLinkTitle": "在社区网站上打开", "CommunityLink": "在社区网站上打开", "ReloadFromSource": "从源重新加载", - "ReloadFromSourceConfirmationMessage": "此帖子将从“{0}”刷新。 你想继续吗?" + "ReloadFromSourceConfirmationMessage": "此帖子将从“{0}”刷新。 你想继续吗?", + "UnitPrice": "单价", + "OverallDiscountAmount": "整体折扣金额", + "DiscountAmount": "折扣金额", + "FullChangeHistory": "完整的变更历史", + "Permission:RefreshReleaseLogs": "刷新发布日志", + "ReleaseLogs": "发布日志", + "AuthorUserName": "作者用户名", + "Type": "类型", + "TotalDiscount": "总折扣", + "SubTotal": "小计", + "TotalDue": "应付总额", + "QuotationNo": "报价编号", + "ValidTill": "有效期至", + "QuotationNote": "报价备注", + "QuotationTemplate.Address:": "地址:", + "QuotationTemplate.VATNo:": "增值税编号:", + "QuotationTemplate.Phone:": "电话:", + "QuotationTemplate.E-mail:": "电子邮件:", + "QuotationTemplate.Quotation": "引述", + "QuotationTemplate.To": "到", + "QuotationTemplate.Details": "细节", + "QuotationTemplate.QuotationNo:": "引述 #:", + "QuotationTemplate.IssueDate:": "签发日期:", + "QuotationTemplate.ValidTill:": "有效期至:", + "QuotationTemplate.ValidDays": "{0} 天", + "QuotationTemplate.Description": "描述", + "QuotationTemplate.UnitPrice": "单价", + "QuotationTemplate.Qty": "数量", + "QuotationTemplate.Discount": "折扣", + "QuotationTemplate.Total": "全部的", + "QuotationTemplate.Notes": "笔记", + "QuotationTemplate.SubTotal:": "小计:", + "QuotationTemplate.Tax/VAT:": "税/增值税 (%{0}):", + "QuotationTemplate.TotalDiscount:": "总折扣:", + "QuotationTemplate.TOTALDUE:": "应付总额:", + "QuotationTemplate.BankAccount": "我们的银行帐户信息可以在 {0} 找到", + "Permission:Raffles": "莱佛士", + "Permission:Draw": "画", + "Menu:Raffles": "莱佛士", + "RaffleIsNotDrawable": "抽奖不可抽奖", + "WinnerCountMustBeGreaterThanZero": "获胜者计数必须大于零", + "FullDescription": "详细描述", + "VisibilityStartDate": "可见性开始日期", + "VisibilityEndDate": "可见性结束日期", + "RaffleDate": "抽奖日期", + "SubscriptionCode": "订阅代码", + "GroupCode": "集团代码", + "MaxWinnerCount": "最大获胜者数", + "ReDraw": "重画", + "EditRaffle": "编辑抽奖", + "Raffles": "莱佛士", + "CreateARaffle": "创建抽奖活动", + "Draw": "画", + "Enum:RaffleStatus:0": "积极的", + "Enum:RaffleStatus:1": "下一个", + "Enum:RaffleStatus:2": "过去的", + "DrawDone": "抽奖完成", + "HomePageShowType": "首页显示类型", + "None": "没有任何", + "Card": "卡片", + "Horizontal": "水平的", + "Winners": "获奖者", + "StartDateMustBeLessThanEndDate": "开始日期必须早于结束日期", + "VisibilityStartDateMustBeLessThanVisibilityEndDate": "可见性开始日期必须早于可见性结束日期", + "StartDateMustBeGreaterThanVisibilityStartDate": "开始日期必须大于可见性开始日期", + "EndDateMustBeLessThanVisibilityEndDate": "结束日期必须早于可见性结束日期", + "DrawnDone": "绘制完成", + "AddColor": "添加颜色", + "Colors": "颜色", + "RemoveColor": "去除颜色", + "MaxColorCountWarning": "您最多可以添加 {0} 种颜色", + "MinColorCountWarning": "您必须添加至少 {0} 种颜色", + "RaffleDeletionConfirmationMessage": "您确定要删除此抽奖吗?", + "CreateRaffle": "创建抽奖活动", + "RemoveImage": "删除图像", + "SuccessfullySaved": "保存成功", + "Menu:CommunityTalks": "社区讲座", + "Menu:Conferences": "会议", + "Menu:OtherLiveEvents": "其他现场活动", + "Menu:SponsoredConferences": "赞助会议", + "Logo": "标识", + "Slug": "蛞蝓", + "CompanyUrl": "公司网址", + "TalkTitle": "演讲标题", + "AbstractTopic": "摘要主题", + "Bio": "简介", + "LinkedIn": "领英", + "Github": "吉图布", + "Twitch": "抽搐", + "Youtube": "YouTube", + "Twitter": "推特", + "PersonalWebsite": "个人网站", + "VideoId": "视频编号", + "Order": "命令", + "Image1x1": "图片 1x1", + "Image16x9": "图片 16x9", + "Banner": "横幅", + "Speaker": "扬声器", + "SessionDate": "会议日期", + "AddSession": "添加会话", + "AddSponsor": "添加赞助商", + "SponsorLogo": "赞助商标志", + "RegistrationUrl": "注册网址" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/zh-Hant.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/zh-Hant.json index b5ec2f3816..bfe7d1495a 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/zh-Hant.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/zh-Hant.json @@ -220,6 +220,7 @@ "SuccessfullyReIndexAllPosts": "所有帖子都已成功重新索引。", "Permission:FullSearch": "全文檢索", "Menu:CliAnalytics": "客戶端分析", + "Menu:Reports": "報告", "TemplateName": "模板名稱", "TemplateVersion": "模板版本", "DatabaseProvider": "數據庫提供者", @@ -231,8 +232,10 @@ "UiFramework": "界面框架", "Options": "選項", "CliAnalytics": "客戶端分析", + "Reports": "報告", "Permission:CliAnalyticses": "客戶端分析", "Permission:CliAnalytics": "客戶端分析", + "Permission:Reports": "報告", "Search": "搜索", "ClearFilter": "清除過濾器", "LicensePrivateKey": "許可證私鑰", @@ -316,14 +319,12 @@ "TrialLicenseStatusFilter": "地位", "TrialLicenseStartDateFilter": "開始日期", "TrialLicenseEndDateFilter": "結束日期", - "FirsName": "名", + "FirstName": "名", "LastName": "姓", "StartDate": "開始日期", "EndDate": "結束日期", "PurchasedDate": "購買日期", "OrganizationDetail": "組織詳情", - "SendActivationMail": "發送激活郵件", - "ActivationMailSentSuccessfully": "激活郵件發送成功!", "TrialLicenseStatus": "試用許可證狀態", "TrialLicenseDetail": "試用許可證詳情", "AcceptsMarketingCommunications": "營銷傳播", @@ -337,22 +338,228 @@ "Expired": "已到期", "TrialLicenseDeletionWarningMessage": "您確定要刪除試用許可證嗎?試用許可證、組織、支持帳戶將被刪除!", "LicenseCategoryFilter": "執照類別", - "Volo.AbpIo.Commercial:030000": "您已經使用了試用期。", - "Volo.AbpIo.Commercial:030001": "此組織名稱已存在。", - "Volo.AbpIo.Commercial:030002": "一旦激活,試用許可證不能設置為請求!", - "Volo.AbpIo.Commercial:030003": "沒有這種狀態!", - "Volo.AbpIo.Commercial:030004": "由於意外錯誤,無法更改狀態!", - "Volo.AbpIo.Commercial:030005": "當試用許可證處於 -activated- 狀態時,可以更新開始和結束日期!", - "Volo.AbpIo.Commercial:030006": "結束日期必須始終大於開始日期!", - "Volo.AbpIo.Commercial:030007": "此試用許可證已激活一次!", - "Volo.AbpIo.Commercial:030008": "購買日期只能在狀態為已購買時設置!", - "Volo.AbpIo.Commercial:030009": "未找到用戶!", - "Volo.AbpIo.Commercial:030010": "要購買試用許可證,首先您需要激活您的試用許可證!", - "Volo.AbpIo.Commercial:030011": "購買試用許可證後,您無法刪除它!", + "Permission:SendWelcomeEmail": "發送歡迎電子郵件", + "SendWelcomeEmail": "發送歡迎電子郵件", + "SendWelcomeEmailWarningMessage": "您確定要向組織成員發送歡迎電子郵件嗎?", + "SendWelcomeEmailSuccessMessage": "歡迎郵件發送成功!", + "Activate": "啟用", + "ActivateTrialLicenseWarningMessage": "當您啟動試用許可證時,將向使用者發送一封歡迎電子郵件。您想激活它嗎?", + "ActivateTrialLicenseSuccessMessage": "啟動成功並向組織成員發送歡迎電子郵件。", + "PaymentRequestId": "付款請求 ID", + "AdditionalDeveloperCount": "額外開發人員數量", + "LicensePrice": "許可價格", + "PurchaseDate": "購買日期", + "IsAbpBookDownloaded": "掌握ABP書下載了嗎?", + "IsMasteringAbpBookDownloadEnabled": "ABP 書籍下載已啟用", + "Permission:Accounting:CustomPaymentLinkGenerator": "自訂付款連結", + "CustomPaymentLink": "自訂付款連結", + "Menu:CustomPaymentLink": "自訂付款連結", + "Amount": "數量", + "GenerateCustomPaymentLink": "產生自訂付款鏈接", + "GeneratedPaymentLink": "產生的付款連結", + "CopyText": "複製文字", + "Permission:CommunityEvents": "活動", + "Menu:Events": "活動", + "Events": "活動", + "EventType": "事件類型", + "Number": "數位", + "RegistrationURL": "註冊網址", + "URL": "網址", + "EventDeletionConfirmationMessage": "您確定要刪除此活動嗎?", + "Enum:EventType:0": "社區講座", + "CreateAnEvent": "建立活動", + "Permission:CommunitySpeakers": "揚聲器", + "CreateASpeaker": "建立一個揚聲器", + "Speakers": "揚聲器", + "Image": "影像", + "GithubURL": "GitHub 網址", + "SpeakerDeletionConfirmationMessage": "您確定要刪除該揚聲器嗎?", + "Menu:Speakers": "揚聲器", + "ChooseSpeakerImage": "選擇演講者圖像...", + "SpeakerImage": "演講者形象", + "AddSpeaker": "添加發言人", + "ShowPurchaseItemsOfOrganizations": "購買物品", + "Enum:OrganizationPurchaseState:0": "沒送到", + "Enum:OrganizationPurchaseState:1": "發表", + "PurchaseItems": "購買物品", + "SuccessfullyUpdated": "成功更新", + "SuccessfullyAdded": "添加成功", + "PurchaseState": "購買狀態", + "ShowBetweenDayCount": "顯示日期之間", + "PurchaseOrder": "採購訂單", + "ShowCreateInvoiceOfOrganization": "建立發票", + "ShowCreateQuotationOfOrganization": "建立報價", + "BookDiscounts": "預訂折扣", + "Permission:BookDiscount": "圖書折扣", + "Menu:BookDiscounts": "預訂折扣", + "BookType": "書籍類型", + "PurchasePlatform": "購買平台", + "StartTime": "開始時間", + "EndTime": "時間結束", + "CreateABookDiscount": "建立書籍折扣", + "BookDiscountDeletionConfirmationMessage": "您確定要刪除這本書的折扣嗎?", + "CustomPaymentFlexSwitchDescription": "有執照", + "AllowFeatureUpgradeOnLicenseExpire": "允許在許可證到期時進行功能升級", + "Deleted{0}": "[已刪除{0}]", + "Tags": "標籤", + "SetTagsInfo": "標籤應該以逗號分隔。例如:CSharp、實體框架", + "RejectTrialLicenseWarningMessage": "您確定要拒絕此試用授權請求嗎?", + "ExportToExcel": "匯出到 Excel", + "OverallTotalPrice": "整體總價", + "OverallDiscountPrice": "整體折扣價", + "OverallDiscountText": "整體折扣文本", + "SelectReport": "- 選擇報告 -", + "NoDataAvailable": "無可用數據", + "StatisticsOfCachedContents": "nuget.abp.io 快取的 NuGet 套件內容的統計信息", + "Compact": "袖珍的", + "EditSettings": "編輯設定", + "CurrentEstimatedSize": "目前預期規模", + "CurrentEntryCount": "目前條目數", + "TotalHits": "總點擊數", + "TotalMisses": "總失誤數", + "NoResponseFrom": "沒有回覆", + "ContentCacheSlidingExpirationByDay": "內容快取按天滑動過期", + "MaxDaysForCaching": "快取最大天數", + "Enabled": "啟用", + "Menu:NugetPackagesContentCache": "NuGet 快取", + "NugetPackagesContentCache": "NuGet 內容快取", + "SlidingExpritionByDayInfo": "取得或設定快取條目在被刪除之前可以處於非活動狀態(例如未存取)的時間。這不會將條目壽命延長到超過絕對到期時間。", + "MaxDaysForCachingInfo": "取得或設定相對於現在的絕對過期時間。", + "CurrentEstimatedSizeInfo": "指示記憶體快取中目前所有 NuGet 套件內容大小的估計總和", + "CurrentEntryCountInfo": "指示目前記憶體快取中的實例數。", + "TotalHitsInfo": "表示緩存未命中的總數。當從快取請求檔案並且快取能夠滿足該請求時,就會發生快取命中。", + "TotalMissesInfo": "表示緩存命中的總數。快取未命中是指快取不包含所要求的內容。", + "Permission:VersionHistory": "版本歷史", + "Caches": "快取", + "VersionHistories": "版本歷史", + "Version": "版本", + "PublishDate": "發布日期", + "IsStableVersion": "穩定版", + "IsActive": "積極的", + "NewVersion": "新版本", + "VersionHistoryDeletionConfirmationMessage": "您確定要刪除該版本嗎?", + "CreateAbpConsultantLogoInfo": "最大檔案大小: 1MB
支援的檔案類型: jpg、jpeg、png、SVG、WebP", + "UrlCode": "網址程式碼", + "Clear": "清除", + "Permission:AbpConsultant": "總部基地顧問", + "Menu:AbpConsultants": "總部基地顧問", + "CreateAbpConsultant": "創建ABP顧問", + "UrlCodeIsNotAvailable": "URL 程式碼已被另一位 ABP 顧問使用。", + "AbpConsultants": "總部基地顧問", + "AbpConsultant": "總部基地顧問", + "AbpConsultantEdit": "編輯ABP顧問", + "AbpConsultantCreate": "創建ABP顧問", + "WhoWeAreItem": "我們是誰 項目", + "FieldIsRequired": "{0} 是必需的。", + "FieldIsNotValid": "{0} 無效。", + "InterestedLicenseType": "有興趣的許可證類型", "MoveWaitList": "移至候补名单", "CommunityLinkTitle": "在社区网站上打开", "CommunityLink": "社区链接", "ReloadFromSource": "從源重新加載", - "ReloadFromSourceConfirmationMessage": "此帖子將從“{0}”刷新。 你想繼續嗎?" + "ReloadFromSourceConfirmationMessage": "此帖子將從“{0}”刷新。 你想繼續嗎?", + "UnitPrice": "單價", + "OverallDiscountAmount": "整體折扣金額", + "DiscountAmount": "折扣金額", + "FullChangeHistory": "完整的變更歷史", + "Permission:RefreshReleaseLogs": "刷新發布日誌", + "ReleaseLogs": "發布日誌", + "AuthorUserName": "作者使用者名稱", + "Type": "類型", + "TotalDiscount": "總折扣", + "SubTotal": "小計", + "TotalDue": "應付總額", + "QuotationNo": "報價編號", + "ValidTill": "有效期限至", + "QuotationNote": "報價備註", + "QuotationTemplate.Address:": "地址:", + "QuotationTemplate.VATNo:": "增值稅編號:", + "QuotationTemplate.Phone:": "電話:", + "QuotationTemplate.E-mail:": "電子郵件:", + "QuotationTemplate.Quotation": "引述", + "QuotationTemplate.To": "到", + "QuotationTemplate.Details": "細節", + "QuotationTemplate.QuotationNo:": "引述 #:", + "QuotationTemplate.IssueDate:": "簽發日期:", + "QuotationTemplate.ValidTill:": "有效期限至:", + "QuotationTemplate.ValidDays": "{0} 天", + "QuotationTemplate.Description": "描述", + "QuotationTemplate.UnitPrice": "單價", + "QuotationTemplate.Qty": "數量", + "QuotationTemplate.Discount": "折扣", + "QuotationTemplate.Total": "全部的", + "QuotationTemplate.Notes": "筆記", + "QuotationTemplate.SubTotal:": "小計:", + "QuotationTemplate.Tax/VAT:": "稅金/增值稅 (%{0}):", + "QuotationTemplate.TotalDiscount:": "總折扣:", + "QuotationTemplate.TOTALDUE:": "應付總額:", + "QuotationTemplate.BankAccount": "我們的銀行帳戶資訊可以在 {0} 找到", + "Permission:Raffles": "萊佛士", + "Permission:Draw": "畫", + "Menu:Raffles": "萊佛士", + "RaffleIsNotDrawable": "抽獎不可抽獎", + "WinnerCountMustBeGreaterThanZero": "獲勝者計數必須大於零", + "FullDescription": "詳細描述", + "VisibilityStartDate": "可見性開始日期", + "VisibilityEndDate": "可見性結束日期", + "RaffleDate": "抽獎日期", + "SubscriptionCode": "訂閱代碼", + "GroupCode": "集團程式碼", + "MaxWinnerCount": "最大獲勝者數", + "ReDraw": "重畫", + "EditRaffle": "編輯抽獎", + "Raffles": "萊佛士", + "CreateARaffle": "創建抽獎活動", + "Draw": "畫", + "Enum:RaffleStatus:0": "積極的", + "Enum:RaffleStatus:1": "下一個", + "Enum:RaffleStatus:2": "過去的", + "DrawDone": "抽獎完成", + "HomePageShowType": "首頁顯示類型", + "None": "沒有任何", + "Card": "卡片", + "Horizontal": "水平的", + "Winners": "得獎者", + "StartDateMustBeLessThanEndDate": "開始日期必須早於結束日期", + "VisibilityStartDateMustBeLessThanVisibilityEndDate": "可見性開始日期必須早於可見性結束日期", + "StartDateMustBeGreaterThanVisibilityStartDate": "開始日期必須大於可見性開始日期", + "EndDateMustBeLessThanVisibilityEndDate": "結束日期必須早於可見性結束日期", + "DrawnDone": "繪製完成", + "AddColor": "添加顏色", + "Colors": "顏色", + "RemoveColor": "去除顏色", + "MaxColorCountWarning": "您最多可以新增 {0} 種顏色", + "MinColorCountWarning": "您必須添加至少 {0} 種顏色", + "RaffleDeletionConfirmationMessage": "您確定要刪除此抽獎嗎?", + "CreateRaffle": "創建抽獎活動", + "RemoveImage": "刪除影像", + "SuccessfullySaved": "保存成功", + "Menu:CommunityTalks": "社區講座", + "Menu:Conferences": "會議", + "Menu:OtherLiveEvents": "其他現場活動", + "Menu:SponsoredConferences": "贊助會議", + "Logo": "標識", + "Slug": "蛞蝓", + "CompanyUrl": "公司網址", + "TalkTitle": "演講標題", + "AbstractTopic": "摘要主題", + "Bio": "簡介", + "LinkedIn": "領英", + "Github": "吉圖布", + "Twitch": "抽搐", + "Youtube": "Youtube", + "Twitter": "推特", + "PersonalWebsite": "個人網站", + "VideoId": "影片編號", + "Order": "命令", + "Image1x1": "圖 1x1", + "Image16x9": "圖 16x9", + "Banner": "橫幅", + "Speaker": "揚聲器", + "SessionDate": "會議日期", + "AddSession": "新增會話", + "AddSponsor": "新增贊助商", + "SponsorLogo": "贊助商標誌", + "RegistrationUrl": "註冊網址" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/ar.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/ar.json index 2bfbb7f885..6ebb308c74 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/ar.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/ar.json @@ -14,6 +14,7 @@ "Volo.AbpIo.Domain:020002": "تعذر حذف حزمة NPM هذه لأن \"{Modules}\" الوحدات النمطية تستخدم هذه الحزمة.", "Volo.AbpIo.Domain:020003": "تعذر حذف حزمة NPM هذه لأن \"{Modules}\" الوحدات النمطية تستخدم هذه الحزمة و \"{NugetPackages}\" حزم Nuget تعتمد على هذه الحزمة.", "Volo.AbpIo.Domain:020004": "تعذر حذف حزمة Nuget هذه لأن \"{Modules}\" الوحدات النمطية تستخدم هذه الحزمة.", + "Volo.AbpIo.Domain:030000": "لقد أكملت بالفعل الفترة التجريبية الخاصة بك.", "Volo.AbpIo.Domain:030001": "اسم هذه المنظمة موجود بالفعل.", "Volo.AbpIo.Domain:030002": "بمجرد التفعيل، لا يمكنك تبديل الرخصة التجريبية إلى الحالة المطلوبة!", "Volo.AbpIo.Domain:030003": "لا يوجد مثل هذه الحالة!", @@ -25,6 +26,9 @@ "Volo.AbpIo.Domain:030009": "المستخدم ليس موجود!", "Volo.AbpIo.Domain:030010": "لشراء الرخصة التجريبية ، تحتاج أولاً إلى تفعيل الرخصة التجريبية الخاص بك!", "Volo.AbpIo.Domain:030011": "لا يمكنك حذف رخصة تجريبية عند شرائها!", + "Volo.AbpIo.Domain:030012": "يحق للمستخدم الحصول على فترة تجريبية مجانية واحدة فقط. لقد استخدمت ترخيصك التجريبي بالفعل.", + "Volo.AbpIo.Domain:030013": "لا يمكن للمستخدم الذي لديه ترخيص نشط بدء ترخيص تجريبي.", + "Volo.AbpIo.Domain:040000": "القياس عن بعد موجود بالفعل!.", "Volo.AbpIo.Domain:070000": "لا يمكن أن يحتوي اسم المؤسسة إلا على أحرف لاتينية وأرقام ونقاط وواصلات!", "Volo.AbpIo.Domain:070001": "لا يمكن أن يحتوي اسم الشركة إلا على أحرف لاتينية وأرقام ونقاط وواصلات!", "WantToLearn?": "تريد أن تتعلم؟", @@ -176,6 +180,7 @@ "BuyNewLicenseBetweenDatesToGetBenefit": "اشتر رخصة جديدة بين {0} و {1} للاستفادة لمدة شهرين إضافيين!", "CheckAllCommunityTalks": "تحقق من جميع منشورات المنتدى", "ReadMore": "قراءة المزيد", + "ContinueReading": "أكمل القراءة", "Post": "نشر", "ExploreTheContentsCreatedByTheCoreABPTeamAndTheABPCommunity": "استكشف المحتويات التي أنشأها فريق ABP الأساسي ومنتدى ABP.", "WelcomeFallCampaign": "مرحبا بكم في حملة الخريف!", @@ -183,6 +188,47 @@ "BlackFriday": "السوداء الجمعة", "ValidForExistingCustomers": "صالح أيضًا
للعملاء الحاليين!", "CampaignBetweenDates": "من {0}
إلى {1}", - "SaveUpTo": "وفر ماقد يصل الى ${0}K" + "SaveUpTo": "وفر ماقد يصل الى ${0}K", + "ImplementingDDD": "تنفيذ التصميم القائم على المجال", + "ExploreTheEBook": "استكشاف الكتاب الإلكتروني", + "ExploreTheBook": "اكتشف الكتاب", + "ConsultantType": "نوع الاستشارة", + "Expert": "خبير ايه بي بي", + "Partner": "شريك ايه بي بي", + "Industry": "صناعة", + "Location": "موقع", + "Contact": "اتصال", + "Partner_Year": "سنة الشراكة", + "Info": "معلومات", + "SpokenLanguages": "اللغات المنطوقة", + "SocialMedia": "وسائل التواصل الاجتماعي", + "Activity": "نشاط", + "Type": "يكتب", + "Contribution": "مساهمة", + "WhoWeAre": "من نحن", + "Icons": "أيقونات", + "Url": "عنوان URL", + "Icon": "أيقونة", + "RecentActivities": "أنشطة حالية", + "SpringCampaign": "مرحباً
بيع الربيع!", + "SpringCampaign2": "محدود
عرض الوقت!
", + "AboutUs": "معلومات عنا", + "HowItWorks": "كيف تعمل؟", + "ReleaseNotes": "ملاحظات الإصدار", + "DetailedChangeNotes": "ملاحظات التغيير التفصيلية", + "SeeTrainings": "انظر التدريبات", + "NoContent": "لا يوجد محتوى", + "More": "أكثر", + "WhyABPIOPlatform": "لماذا منصة ABP.IO؟", + "AbpStudio": "استوديو ايه بي بي", + "ExtraMonths": "{0} أشهر إضافية", + "RSS": "آر إس إس", + "RSSFeed": "تغذية ار اس اس", + "Articles": "مقالات", + "Organizations": "المنظمات", + "ManageAccount": "إدارة الحساب", + "CommunityProfile": "ملف تعريف المجتمع", + "BlogProfile": "الملف الشخصي للمدونة", + "Tickets": "التذاكر" } -} +} \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/cs.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/cs.json index f5cbce3c07..902595d229 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/cs.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/cs.json @@ -14,6 +14,23 @@ "Volo.AbpIo.Domain:020002": "Tento balíček NPM nelze smazat, protože moduly \"{Modules}\" tento balíček používají.", "Volo.AbpIo.Domain:020003": "Tento balíček NPM nelze smazat, protože tento balíček používají moduly \"{Modules}\" a balíčky \"{NugetPackages}\" jsou na tomto balíčku závislé.", "Volo.AbpIo.Domain:020004": "Tento balíček Nuget nelze smazat, protože moduly \"{Modules}\" tento balíček používají.", + "Volo.AbpIo.Domain:030000": "Zkušební období jste již dokončili.", + "Volo.AbpIo.Domain:030001": "Tento název organizace již existuje.", + "Volo.AbpIo.Domain:030002": "Po aktivaci nelze zkušební licenci přepnout do stavu -vyžadováno-!", + "Volo.AbpIo.Domain:030003": "Takový stav neexistuje!", + "Volo.AbpIo.Domain:030004": "Stav nelze změnit kvůli neočekávané chybě!", + "Volo.AbpIo.Domain:030005": "Datum zahájení a ukončení lze aktualizovat, když je zkušební licence ve stavu -aktivováno-!", + "Volo.AbpIo.Domain:030006": "Datum ukončení musí být větší než datum zahájení!", + "Volo.AbpIo.Domain:030007": "Tato zkušební licence již byla aktivována!", + "Volo.AbpIo.Domain:030008": "Datum nákupu lze nastavit pouze ve stavu -zakoupeno-!", + "Volo.AbpIo.Domain:030009": "Uživatel nenalezen!", + "Volo.AbpIo.Domain:030010": "Chcete-li zakoupit zkušební licenci, musíte nejprve aktivovat zkušební licenci!", + "Volo.AbpIo.Domain:030011": "Po zakoupení zkušební licence nelze odstranit!", + "Volo.AbpIo.Domain:030012": "Uživatel má nárok pouze na 1 bezplatné zkušební období. Již jste použili svou zkušební licenci.", + "Volo.AbpIo.Domain:030013": "Uživatel s aktivní licencí nemůže spustit zkušební licenci.", + "Volo.AbpIo.Domain:040000": "Telemetrie již existuje!.", + "Volo.AbpIo.Domain:070000": "Název organizace může obsahovat pouze latinská písmena, čísla, tečky a pomlčky!", + "Volo.AbpIo.Domain:070001": "Název společnosti může obsahovat pouze latinská písmena, čísla, tečky, mezery a pomlčky!", "WantToLearn?": "Chcete se učit?", "ReadyToGetStarted?": "Jste připraveni začít?", "JoinOurCommunity": "Připojte se k naší komunitě", @@ -39,6 +56,179 @@ "TrialLicensePeriodHasExpired": "Vaše zkušební licenční období vypršelo před {0} dny.", "TrialLicensePeriodWillExpire": "Vaše zkušební licenční období vyprší za {0} dnů.", "TrialLicensePeriodExpireToday": "Vaše zkušební licenční období dnes vyprší.", - "PurchaseNow": "Koupit nyní!" + "PurchaseNow": "Koupit nyní!", + "LatestReleaseLogs": "Nejnovější protokoly vydání", + "RoadMap": "Cestovní mapa", + "FAQ": "FAQ", + "SourceCode": "Zdrojový kód", + "SeeAllPosts": "Zobrazit všechny příspěvky", + "Contribute": "Přispět", + "LiveDemo": "Živá ukázka", + "GetLicense": "Získejte licenci", + "OpenSource": "Open Source", + "WebApplication": "Webová aplikace", + "MeetTheABP": "Seznamte se s ABP", + "CompleteWebDevelopment": "Kompletní vývoj webu", + "Platform": "Plošina", + "ABPDescription": "Open source framework pro vývoj webových aplikací pro ASP.NET Core. Nabízí kompletní infrastrukturu dodržováním osvědčených postupů vývoje softwaru.", + "StrongInfrastructure": "Silná infrastruktura", + "CompleteArchitecture": "Kompletní architektura", + "DeveloperFocused": "Zaměřeno na vývojáře", + "ShareYourExperiences": "Podělte se o své zkušenosti s ABP Framework", + "LatestPosts": "Nejnovější příspěvky", + "LatestVideos": "Nejnovější videa", + "Views": "Pohledy", + "LearnLatestNewsAboutABPFramework": "Získejte informace o dění v ABP, jako jsou nové verze, bezplatné zdroje, příspěvky a další.", + "DeveloperTools": "Vývojářské nástroje", + "StartupTemplates": "Spouštěcí šablony", + "ApplicationModules": "Aplikační moduly", + "UI": "UI", + "Themes": "Témata", + "Premium": "Pojistné", + "PrivacyPolicy": "Zásady ochrany osobních údajů", + "TermsAndConditions": "Všeobecné obchodní podmínky", + "WouldLikeToReceiveMarketingMaterials": "Chci dostávat marketingové materiály, jako jsou nabídky produktů a speciální nabídky.", + "JoinOurMarketingNewsletter": "Připojte se k našemu marketingovému zpravodaji", + "CommunityPrivacyPolicyConfirmation": "Souhlasím s Podmínkami a Zásadami ochrany osobních údajů .", + "WouldLikeToReceiveNotification": "Chci dostávat nejnovější zprávy z webových stránek abp.io.", + "CommercialNewsletterConfirmationMessage": "Souhlasím s Podmínkami a Zásadami ochrany osobních údajů .", + "FreeDDDEBook": "E-kniha DDD zdarma", + "AdditionalServices": "Doplňkové služby", + "Learn": "Učit se", + "AccountOverview": "Přehled účtu", + "MyOrganizations": "Moje organizace", + "MySupportQuestions": "Moje otázky podpory", + "MyProfile": "Můj profil", + "Logout": "Odhlásit se", + "Home": "Domov", + "Posts": "Příspěvky", + "Videos": "videa", + "JoinTheABPCommunity": "Připojte se ke komunitě ABP", + "SubmitYourPost": "Odešlete svůj příspěvek", + "Modules": "Moduly", + "Tools": "Nástroje", + "Pricing": "Ceny", + "ChangeLogs": "Protokoly změn", + "SubscribeToNewsletter": "Přihlaste se k odběru Newsletteru", + "SubscribeToNewsletterDescription": "Získejte informace o dění v ABP, jako jsou nové verze, bezplatné zdroje, příspěvky a další.", + "EmailAddress": "Emailová adresa", + "Subscribe": "předplatit", + "WelcomeToABP": "Vítejte v ABP", + "EULA": "EULA", + "ABPCommercialIntroductionMessage": "Předem vytvořené aplikační moduly, pokročilé spouštěcí šablony, nástroje pro rychlý vývoj aplikací, profesionální témata uživatelského rozhraní a prémiová podpora.", + "MasteringAbpFrameworkEBook": "Zvládnutí rámce ABP", + "MasteringTheABPFrameworkExplanation": "Tato kniha, kterou napsal tvůrce rámce ABP, vám pomůže získat úplné pochopení rámce a moderních technik vývoje webových aplikací.", + "Speakers": "Řečníci", + "PreviousEvents": "Předchozí události", + "WatchTheEvent": "Podívejte se na událost", + "RegisterNow": "Zaregistrujte se nyní", + "ThereIsNoEvent": "Žádná událost se nekoná.", + "Events": "Události", + "Volo.AbpIo.Domain:080000": "Položka nákupu s názvem „{Name}“ již existuje", + "MasteringAbpFrameworkBook": "Kniha: Mastering ABP Framework", + "ABPIO-CommonPreferenceDefinition": "Získejte nejnovější zprávy o platformě ABP, jako jsou nové příspěvky, události a další.", + "BuiltOn": "Postaven na", + "AbpFramework": "Rámec ABP", + "Volo.AbpIo.Domain:080001": "Čas zahájení nemůže být větší než čas ukončení", + "Enum:BookType:0": "Zvládnutí rámce ABP", + "Enum:PurchasePlatform:0": "Amazonka", + "Enum:PurchasePlatform:1": "Packt", + "Copied": "Zkopírováno!", + "CouldNotCopy": "Nelze kopírovat!", + "CopyNotSupportByYourBrowser": "Tato funkce nefunguje v prohlížeči, který používáte.", + "City": "Město", + "ZipCode": "PSČ", + "Address": "Adresa", + "Homepage": "Domovská stránka", + "Year": "Rok", + "Year_Plural": "let", + "Copyright": "Copyright © {1}", + "DomainDrivenDesign": "Design řízený doménou", + "CrossCuttingConcerns": "Průřezové obavy", + "AbpCommunity": "Společenství ABP", + "Footer_GithubStarCount": "{0} hvězdiček na GitHubu", + "Footer_NugetDownloadCount": "Počet stažení na NuGet: {0}", + "AbpDescription": "ABP je open source aplikační framework zaměřený na vývoj webových aplikací založených na AspNet Core. Neopakujte se, zaměřte se na svůj vlastní obchodní kód.", + "Layout_AbpFramework_MetaTitle": "Rámec ABP | Open source webový aplikační rámec pro ASP.NET Core", + "CommunityTalks_CountdownDays": "Dny", + "CommunityTalks_CountdownHours": "hod", + "CommunityTalks_CountdownMinutes": "Min", + "CommunityTalks_CountdownSeconds": "Sek", + "SeePreviousEvents": "Viz předchozí události", + "CookieConsent_Accept": "Akceptovat", + "CookieConsent_Explanation_1": "Používáme soubory cookie, abychom vám poskytli co nejlepší zážitek z našich webových stránek.", + "CookieConsent_Explanation_2": "Pokud budete pokračovat v procházení, souhlasíte s našimi zásadami ochrany osobních údajů a zásadami souborů cookie. .", + "Error_Page_400_Title": "Při zobrazování požadované stránky došlo k problému.", + "Error_Page_400_Description_1": "Obvykle to znamená, že při zpracování vašeho požadavku došlo k neočekávané chybě.", + "Error_Page_400_Description_2": "Pokud problém přetrvává, kontaktujte nás na adrese info@abp.io a my vám pomůžeme na cestě.", + "GoToHomepage": "Jít na domovskou stránku", + "Error_Page_404_Title": "Stránka nenalezena!", + "Error_Page_404_Description_1": "Toto není webová stránka, kterou hledáte.", + "Error_Page_500_Title": "Zdá se, že se něco pokazilo!", + "Error_Page_500_Description_1": "Tyto chyby sledujeme automaticky, ale pokud problém přetrvává, neváhejte
kontaktujte nás. Mezitím zkuste osvěžení.", + "Error_Page_500_Description_2": "Kontaktujte nás na adrese info@abp.io .", + "Books": "knihy", + "ABPDiscordServer": "ABP Discord Server", + "ABPCommunityTalks": "Komunitní rozhovory ABP", + "ABPCommunityPosts": "Komunitní příspěvky ABP", + "BuyAndGetMonths": "KUPTE 12 MĚSÍCŮ, ZÍSKEJTE 14 MĚSÍCŮ!", + "GetYourDeal": "Získejte svou nabídku", + "BuyOrRenewLicense": "Kupte si nebo obnovte licenci nyní a získejte 2 měsíce navíc!", + "BuyOrRenewLicenseToGetExtra2Months": "Kupte si nebo obnovte licenci nyní a získejte 2 měsíce navíc! POSPĚŠ SI! ⏰ Poslední den: {0}", + "HurryUp": "POSPĚŠ SI!", + "LastDay": "Poslední den: {0}", + "BuyNewLicenseBetweenDatesToGetBenefit": "Kupte si novou licenci mezi {0} a {1} a získejte výhody na další 2 měsíce!", + "CheckAllCommunityTalks": "Zkontrolujte všechny příspěvky komunity", + "ReadMore": "Přečtěte si více", + "ContinueReading": "Pokračovat ve čtení", + "Post": "Pošta", + "ExploreTheContentsCreatedByTheCoreABPTeamAndTheABPCommunity": "Prozkoumejte obsah vytvořený hlavním týmem ABP a komunitou ABP.", + "WelcomeFallCampaign": "Uvítací podzimní kampaň!", + "GiveAwayForNewPurchases": "Za nové nákupy bude rozdáno školení v učebně vývoje aplikací!", + "BlackFriday": "ČERNÝ PÁTEK", + "ValidForExistingCustomers": "Platí také pro
existujici zakaznici!", + "CampaignBetweenDates": "Od {0}
Komu {1}", + "SaveUpTo": "Ušetřete{0}K $ $", + "ImplementingDDD": "Implementace návrhu řízeného doménou", + "ExploreTheEBook": "Prozkoumejte e-knihu", + "ExploreTheBook": "Prozkoumejte Knihu", + "ConsultantType": "Typ poradenství", + "Expert": "Expert na ABP", + "Partner": "Partner ABP", + "Industry": "Průmysl", + "Location": "Umístění", + "Contact": "Kontakt", + "Partner_Year": "Rok partnerství", + "Info": "Info", + "SpokenLanguages": "Mluvené jazyky", + "SocialMedia": "Sociální média", + "Activity": "Aktivita", + "Type": "Typ", + "Contribution": "Příspěvek", + "WhoWeAre": "Kdo jsme", + "Icons": "ikony", + "Url": "URL", + "Icon": "Ikona", + "RecentActivities": "Nedávné aktivity", + "SpringCampaign": "Vítejte
Jarní výprodej!", + "SpringCampaign2": "Omezený
Časová nabídka!
", + "AboutUs": "O nás", + "HowItWorks": "Jak to funguje?", + "ReleaseNotes": "Poznámky k vydání", + "DetailedChangeNotes": "Podrobné poznámky ke změnám", + "SeeTrainings": "Viz Tréninky", + "NoContent": "Žádný obsah", + "More": "Více", + "WhyABPIOPlatform": "Proč platforma ABP.IO?", + "AbpStudio": "Studio ABP", + "ExtraMonths": "{0} MĚSÍCŮ NAVÍC", + "RSS": "RSS", + "RSSFeed": "RSS kanál", + "Articles": "články", + "Organizations": "Organizace", + "ManageAccount": "Spravovat účet", + "CommunityProfile": "Profil komunity", + "BlogProfile": "Profil blogu", + "Tickets": "Vstupenky" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/de.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/de.json index 9c2a9a2a05..a3f8c11cb1 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/de.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/de.json @@ -14,6 +14,23 @@ "Volo.AbpIo.Domain:020002": "Dieses NPM-Paket konnte nicht gelöscht werden, da \"{Module}\" Module dieses Paket verwenden.", "Volo.AbpIo.Domain:020003": "Dieses NPM-Paket konnte nicht gelöscht werden, da \"{Module}\" Module dieses Paket verwenden und \"{NugetPackages}\" Nuget-Pakete von diesem Paket abhängig sind.", "Volo.AbpIo.Domain:020004": "Dieses Nuget-Paket konnte nicht gelöscht werden, da \"{Module}\" Module dieses Paket verwenden.", + "Volo.AbpIo.Domain:030000": "Sie haben Ihre Testphase bereits abgeschlossen.", + "Volo.AbpIo.Domain:030001": "Dieser Organisationsname existiert bereits.", + "Volo.AbpIo.Domain:030002": "Nach der Aktivierung können Sie die Testlizenz nicht mehr in den Status „Angefordert“ versetzen!", + "Volo.AbpIo.Domain:030003": "Einen solchen Status gibt es nicht!", + "Volo.AbpIo.Domain:030004": "Der Status konnte aufgrund eines unerwarteten Fehlers nicht geändert werden!", + "Volo.AbpIo.Domain:030005": "Start- und Enddatum können aktualisiert werden, wenn sich die Testlizenz im Status -aktiviert- befindet!", + "Volo.AbpIo.Domain:030006": "Das Enddatum muss größer als das Startdatum sein!", + "Volo.AbpIo.Domain:030007": "Diese Testlizenz wurde bereits aktiviert!", + "Volo.AbpIo.Domain:030008": "Das Kaufdatum kann nur gesetzt werden, wenn der Status -gekauft- ist!", + "Volo.AbpIo.Domain:030009": "Benutzer nicht gefunden!", + "Volo.AbpIo.Domain:030010": "Um die Testlizenz zu erwerben, müssen Sie zunächst Ihre Testlizenz aktivieren!", + "Volo.AbpIo.Domain:030011": "Sie können eine Testlizenz beim Kauf nicht löschen!", + "Volo.AbpIo.Domain:030012": "Ein Benutzer hat Anspruch auf nur 1 kostenlosen Testzeitraum. Sie haben Ihre Testlizenz bereits verwendet.", + "Volo.AbpIo.Domain:030013": "Ein Benutzer mit einer aktiven Lizenz kann keine Testlizenz starten.", + "Volo.AbpIo.Domain:040000": "Telemetrie existiert bereits!.", + "Volo.AbpIo.Domain:070000": "Der Organisationsname darf nur lateinische Buchstaben, Zahlen, Punkte und Bindestriche enthalten!", + "Volo.AbpIo.Domain:070001": "Der Firmenname darf nur lateinische Buchstaben, Zahlen, Punkte, Leerzeichen und Bindestriche enthalten!", "WantToLearn?": "Wollen Sie sich einlernen?", "ReadyToGetStarted?": "Bereit anzufangen?", "JoinOurCommunity": "Tritt unserer Community bei", @@ -39,6 +56,178 @@ "TrialLicensePeriodHasExpired": "Ihr Testlizenzzeitraum ist vor {0} Tagen abgelaufen.", "TrialLicensePeriodWillExpire": "Ihr Testlizenzzeitraum läuft in {0} Tagen ab.", "TrialLicensePeriodExpireToday": "Ihre Testlizenz läuft heute ab.", - "PurchaseNow": "Jetzt kaufen!" + "PurchaseNow": "Jetzt kaufen!", + "LatestReleaseLogs": "Neueste Versionsprotokolle", + "RoadMap": "Straßenkarte", + "FAQ": "FAQ", + "SourceCode": "Quellcode", + "SeeAllPosts": "Alle Beiträge anzeigen", + "Contribute": "Beitragen", + "LiveDemo": "Live-Demo", + "GetLicense": "Holen Sie sich eine Lizenz", + "OpenSource": "Open Source", + "WebApplication": "Internetanwendung", + "MeetTheABP": "Lernen Sie den ABP kennen", + "CompleteWebDevelopment": "Eine komplette Webentwicklung", + "Platform": "Plattform", + "ABPDescription": "Ein Open-Source-Framework für die Entwicklung von Webanwendungen für ASP.NET Core. Es bietet eine vollständige Infrastruktur, indem es die Best Practices der Softwareentwicklung befolgt.", + "StrongInfrastructure": "Starke Infrastruktur", + "CompleteArchitecture": "Komplette Architektur", + "DeveloperFocused": "Entwicklerorientiert", + "ShareYourExperiences": "Teilen Sie Ihre Erfahrungen mit dem ABP Framework", + "LatestPosts": "Neueste Beiträge", + "LatestVideos": "Neueste Videos", + "Views": "Ansichten", + "LearnLatestNewsAboutABPFramework": "Erhalten Sie Informationen über Ereignisse in ABP wie Neuerscheinungen, kostenlose Quellen, Beiträge und mehr.", + "DeveloperTools": "Entwicklerwerkzeuge", + "StartupTemplates": "Startvorlagen", + "ApplicationModules": "Anwendungsmodule", + "UI": "Benutzeroberfläche", + "Themes": "Themen", + "Premium": "Prämie", + "PrivacyPolicy": "Datenschutzrichtlinie", + "TermsAndConditions": "Terms & amp; Bedingungen", + "WouldLikeToReceiveMarketingMaterials": "Ich möchte Marketingmaterialien wie Produktangebote und Sonderangebote erhalten.", + "JoinOurMarketingNewsletter": "Abonnieren Sie unseren Marketing-Newsletter", + "CommunityPrivacyPolicyConfirmation": "Ich stimme den Allgemeinen Geschäftsbedingungen und der Datenschutzerklärung zu.", + "WouldLikeToReceiveNotification": "Ich möchte die neuesten Nachrichten von abp.io-Websites erhalten.", + "CommercialNewsletterConfirmationMessage": "Ich stimme den Allgemeinen Geschäftsbedingungen und der Datenschutzerklärung zu.", + "FreeDDDEBook": "Kostenloses DDD-E-Book", + "AdditionalServices": "Zusatzleitungen", + "Learn": "Lernen", + "AccountOverview": "Kontoübersicht", + "MyOrganizations": "Meine Organisationen", + "MySupportQuestions": "Meine Support-Fragen", + "MyProfile": "Mein Profil", + "Logout": "Ausloggen", + "Home": "Heim", + "Posts": "Beiträge", + "Videos": "Videos", + "JoinTheABPCommunity": "Treten Sie der ABP-Community bei", + "SubmitYourPost": "Senden Sie Ihren Beitrag", + "Modules": "Module", + "Tools": "Werkzeuge", + "Pricing": "Preisgestaltung", + "ChangeLogs": "Änderungsprotokolle", + "SubscribeToNewsletter": "Abonnieren Sie den Newsletter", + "SubscribeToNewsletterDescription": "Erhalten Sie Informationen über Ereignisse in ABP wie Neuerscheinungen, kostenlose Quellen, Beiträge und mehr.", + "EmailAddress": "E-Mail-Adresse", + "Subscribe": "Abonnieren", + "WelcomeToABP": "Willkommen bei der ABP", + "EULA": "EULA", + "ABPCommercialIntroductionMessage": "Vorgefertigte Anwendungsmodule, erweiterte Startvorlagen, Tools für die schnelle Anwendungsentwicklung, professionelle UI-Themen und Premium-Support.", + "MasteringAbpFrameworkEBook": "Beherrschung des ABP-Frameworks", + "MasteringTheABPFrameworkExplanation": "Dieses vom Erfinder des ABP Framework verfasste Buch hilft Ihnen, ein umfassendes Verständnis des Frameworks und moderner Webanwendungsentwicklungstechniken zu erlangen.", + "Speakers": "Lautsprecher", + "PreviousEvents": "Frühere Veranstaltungen", + "WatchTheEvent": "Sehen Sie sich die Veranstaltung an", + "RegisterNow": "Jetzt registrieren", + "ThereIsNoEvent": "Es gibt keine Veranstaltung.", + "Events": "Veranstaltungen", + "Volo.AbpIo.Domain:080000": "Es gibt bereits einen Kaufartikel mit dem Namen „{Name}“", + "MasteringAbpFrameworkBook": "Buch: Mastering ABP Framework", + "ABPIO-CommonPreferenceDefinition": "Erhalten Sie die neuesten Nachrichten über die ABP-Plattform wie neue Beiträge, Veranstaltungen und mehr.", + "BuiltOn": "Gebaut auf", + "AbpFramework": "ABP-Framework", + "Volo.AbpIo.Domain:080001": "Die Startzeit darf nicht größer als die Endzeit sein", + "Enum:BookType:0": "Beherrschung des ABP-Frameworks", + "Enum:PurchasePlatform:0": "Amazonas", + "Enum:PurchasePlatform:1": "Verpackt", + "Copied": "Kopiert!", + "CouldNotCopy": "Konnte nicht kopiert werden!", + "CopyNotSupportByYourBrowser": "Diese Funktion funktioniert in dem von Ihnen verwendeten Browser nicht.", + "City": "Stadt", + "ZipCode": "PLZ", + "Address": "Adresse", + "Homepage": "Startseite", + "Year": "Jahr", + "Year_Plural": "Jahre", + "Copyright": "Urheberrecht © {1}", + "DomainDrivenDesign": "Domänengesteuertes Design", + "CrossCuttingConcerns": "Querschnittsthemen", + "AbpCommunity": "ABP-Community", + "Footer_GithubStarCount": "{0} Sterne auf GitHub", + "Footer_NugetDownloadCount": "{0} Downloads auf NuGet", + "AbpDescription": "ABP ist ein Open-Source-Anwendungsframework, das sich auf die Entwicklung von Webanwendungen auf Basis von AspNet Core konzentriert. Wiederholen Sie sich nicht, konzentrieren Sie sich auf Ihren eigenen Geschäftscode.", + "Layout_AbpFramework_MetaTitle": "ABP-Framework | Open-Source-Webanwendungsframework für ASP.NET Core", + "CommunityTalks_CountdownDays": "Tage", + "CommunityTalks_CountdownHours": "Std", + "CommunityTalks_CountdownMinutes": "Mindest", + "CommunityTalks_CountdownSeconds": "Sek", + "SeePreviousEvents": "Siehe frühere Veranstaltungen", + "CookieConsent_Accept": "Akzeptieren", + "CookieConsent_Explanation_1": "Wir verwenden Cookies, um Ihnen das beste Erlebnis auf unserer Website zu bieten.", + "CookieConsent_Explanation_2": "Wenn Sie weitersurfen, stimmen Sie unserer Datenschutzrichtlinie und Cookie-Richtlinie zu. .", + "Error_Page_400_Title": "Bei der Bereitstellung der angeforderten Seite ist ein Problem aufgetreten.", + "Error_Page_400_Description_1": "Normalerweise bedeutet dies, dass bei der Bearbeitung Ihrer Anfrage ein unerwarteter Fehler aufgetreten ist.", + "Error_Page_400_Description_2": "Wenn das Problem weiterhin besteht, kontaktieren Sie uns unter info@abp.io und wir helfen Ihnen weiter.", + "GoToHomepage": "Gehen Sie zur Startseite", + "Error_Page_404_Title": "Seite nicht gefunden!", + "Error_Page_404_Description_1": "Dies ist nicht die Webseite, die Sie suchen.", + "Error_Page_500_Title": "Sieht so aus, als wäre etwas schief gelaufen!", + "Error_Page_500_Description_1": "Wir verfolgen diese Fehler automatisch, aber wenn das Problem weiterhin besteht, können Sie dies gerne tun
kontaktiere uns. Versuchen Sie es in der Zwischenzeit mit einer Erfrischung.", + "Error_Page_500_Description_2": "Kontaktieren Sie uns unter info@abp.io .", + "Books": "Bücher", + "ABPDiscordServer": "ABP Discord Server", + "ABPCommunityTalks": "ABP-Community-Gespräche", + "ABPCommunityPosts": "ABP-Community-Beiträge", + "BuyAndGetMonths": "12 MONATE KAUFEN, 14 MONATE ERHALTEN!", + "GetYourDeal": "Holen Sie sich Ihr Angebot", + "BuyOrRenewLicense": "Kaufen oder erneuern Sie jetzt die Lizenz und erhalten Sie 2 zusätzliche Monate!", + "BuyOrRenewLicenseToGetExtra2Months": "Kaufen oder erneuern Sie jetzt die Lizenz und erhalten Sie 2 zusätzliche Monate! BEEIL DICH! ⏰ Letzter Tag: {0}", + "HurryUp": "BEEIL DICH!", + "LastDay": "Letzter Tag: {0}", + "BuyNewLicenseBetweenDatesToGetBenefit": "Kaufen Sie zwischen {0} und {1} eine neue Lizenz, um weitere 2 Monate zu profitieren!", + "CheckAllCommunityTalks": "Überprüfen Sie alle Community-Beiträge", + "ReadMore": "Mehr lesen", + "ContinueReading": "Weiterlesen", + "Post": "Post", + "ExploreTheContentsCreatedByTheCoreABPTeamAndTheABPCommunity": "Entdecken Sie die vom ABP-Kernteam und der ABP-Community erstellten Inhalte.", + "WelcomeFallCampaign": "Willkommens-Herbstkampagne!", + "GiveAwayForNewPurchases": "Für die Neuanschaffungen wird eine Präsenzschulung zur Anwendungsentwicklung verschenkt!", + "BlackFriday": "SCHWARZER FREITAG", + "ValidForExistingCustomers": "Gilt auch für die
bestehende Kunden!", + "SaveUpTo": "SPAREN SIE BIS ZU {0}K $", + "ImplementingDDD": "Implementierung von domänengesteuertem Design", + "ExploreTheEBook": "Entdecken Sie das E-Book", + "ExploreTheBook": "Entdecken Sie das Buch", + "ConsultantType": "Beratungstyp", + "Expert": "ABP-Experte", + "Partner": "ABP-Partner", + "Industry": "Industrie", + "Location": "Standort", + "Contact": "Kontakt", + "Partner_Year": "Partnerschaftsjahr", + "Info": "Die Info", + "SpokenLanguages": "Gesprochene Sprachen", + "SocialMedia": "Sozialen Medien", + "Activity": "Aktivität", + "Type": "Typ", + "Contribution": "Beitrag", + "WhoWeAre": "Wer wir sind", + "Icons": "Symbole", + "Url": "URL", + "Icon": "Symbol", + "RecentActivities": "Kürzliche Aktivitäten", + "SpringCampaign": "Willkommen
Frühlingsverkauf!", + "SpringCampaign2": "Begrenzt
Zeitangebot!
", + "AboutUs": "Über uns", + "HowItWorks": "Wie es funktioniert?", + "ReleaseNotes": "Versionshinweise", + "DetailedChangeNotes": "Detaillierte Änderungshinweise", + "SeeTrainings": "Siehe Schulungen", + "NoContent": "Kein Inhalt", + "More": "Mehr", + "WhyABPIOPlatform": "Warum ABP.IO-Plattform?", + "AbpStudio": "ABP Studio", + "ExtraMonths": "{0} EXTRA MONATE", + "RSS": "RSS", + "RSSFeed": "RSS-Feed", + "Articles": "Artikel", + "Organizations": "Organisationen", + "ManageAccount": "Konto verwalten", + "CommunityProfile": "Community-Profil", + "BlogProfile": "Blog-Profil", + "Tickets": "Tickets" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/es.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/es.json index e51d29815d..c58289aa69 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/es.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/es.json @@ -14,6 +14,23 @@ "Volo.AbpIo.Domain:020002": "Este paquete NPM no pudo ser borrado porque \"{Modules}\" modulos están usando este paquete.", "Volo.AbpIo.Domain:020003": "Este paquete NPM no pudo ser borrado porque \"{Modules}\" modulos están usando este paquete.y \"{NugetPackages}\" paquetes Nuget son dependientes de este paquete.", "Volo.AbpIo.Domain:020004": "Este paquete Nuget no pudo ser borrado porque \"{Modules}\" modulos están usando este paquete.", + "Volo.AbpIo.Domain:030000": "Ya has completado tu período de prueba.", + "Volo.AbpIo.Domain:030001": "El nombre de esta organización ya existe.", + "Volo.AbpIo.Domain:030002": "Una vez activada, no puede cambiar la licencia de prueba al estado -solicitado-.", + "Volo.AbpIo.Domain:030003": "¡No existe tal estatus!", + "Volo.AbpIo.Domain:030004": "¡El estado no se pudo cambiar debido a un error inesperado!", + "Volo.AbpIo.Domain:030005": "¡La fecha de inicio y finalización se puede actualizar cuando la licencia de prueba esté en estado -activada-!", + "Volo.AbpIo.Domain:030006": "¡La fecha de finalización debe ser mayor que la fecha de inicio!", + "Volo.AbpIo.Domain:030007": "¡Esta licencia de prueba ya ha sido activada!", + "Volo.AbpIo.Domain:030008": "¡La fecha de compra se puede establecer solo cuando el estado es -comprado-!", + "Volo.AbpIo.Domain:030009": "¡Usuario no encontrado!", + "Volo.AbpIo.Domain:030010": "Para comprar la licencia de prueba, primero debe activarla.", + "Volo.AbpIo.Domain:030011": "¡No puede eliminar una licencia de prueba cuando la compra!", + "Volo.AbpIo.Domain:030012": "Un usuario tiene derecho a tener sólo 1 período de prueba gratuito. Ya usaste tu licencia de prueba.", + "Volo.AbpIo.Domain:030013": "Un usuario con una licencia activa no puede iniciar una licencia de prueba.", + "Volo.AbpIo.Domain:040000": "¡La telemetría ya existe!.", + "Volo.AbpIo.Domain:070000": "¡El nombre de la organización solo puede contener letras latinas, números, puntos y guiones!", + "Volo.AbpIo.Domain:070001": "¡El nombre de la empresa sólo puede contener letras latinas, números, puntos, espacios y guiones!", "WantToLearn?": "¿Quieres aprender?", "ReadyToGetStarted?": "¿Preparado para comenzar?", "JoinOurCommunity": "Unete a nuestra comunidad", @@ -39,6 +56,178 @@ "TrialLicensePeriodHasExpired": "Su período de licencia de prueba expiró hace {0} días.", "TrialLicensePeriodWillExpire": "Su período de licencia de prueba vencerá en {0} días.", "TrialLicensePeriodExpireToday": "Su período de licencia de prueba vencerá hoy.", - "PurchaseNow": "¡Comprar ahora!" + "PurchaseNow": "¡Comprar ahora!", + "LatestReleaseLogs": "Registros de versiones más recientes", + "RoadMap": "Mapa vial", + "FAQ": "Preguntas más frecuentes", + "SourceCode": "Código fuente", + "SeeAllPosts": "Ver todas las publicaciones", + "Contribute": "Contribuir", + "LiveDemo": "Demo en vivo", + "GetLicense": "Obtener una licencia", + "OpenSource": "Fuente abierta", + "WebApplication": "Aplicación web", + "MeetTheABP": "Conoce la ABP", + "CompleteWebDevelopment": "Un desarrollo web completo", + "Platform": "Plataforma", + "ABPDescription": "Un marco de código abierto para el desarrollo de aplicaciones web para ASP.NET Core. Ofrece una infraestructura completa siguiendo las mejores prácticas de desarrollo de software.", + "StrongInfrastructure": "Infraestructura sólida", + "CompleteArchitecture": "Arquitectura completa", + "DeveloperFocused": "Centrado en el desarrollador", + "ShareYourExperiences": "Comparta sus experiencias con el Marco ABP", + "LatestPosts": "últimas publicaciones", + "LatestVideos": "últimos vidéos", + "Views": "Puntos de vista", + "LearnLatestNewsAboutABPFramework": "Obtenga información sobre los acontecimientos en ABP, como nuevos lanzamientos, fuentes gratuitas, publicaciones y más.", + "DeveloperTools": "Herramientas de desarrollo", + "StartupTemplates": "Plantillas de inicio", + "ApplicationModules": "Módulos de aplicación", + "UI": "interfaz de usuario", + "Themes": "Temas", + "Premium": "De primera calidad", + "PrivacyPolicy": "política de privacidad", + "TermsAndConditions": "Términos y condiciones", + "WouldLikeToReceiveMarketingMaterials": "Me gustaría recibir materiales de marketing como ofertas de productos y ofertas especiales.", + "JoinOurMarketingNewsletter": "Únase a nuestro boletín de marketing", + "CommunityPrivacyPolicyConfirmation": "Acepto los Términos y condiciones y la Política de privacidad .", + "WouldLikeToReceiveNotification": "Me gustaría recibir las últimas noticias de los sitios web abp.io.", + "CommercialNewsletterConfirmationMessage": "Acepto los Términos y condiciones y la Política de privacidad .", + "FreeDDDEBook": "Libro electrónico DDD gratuito", + "AdditionalServices": "Servicios adicionales", + "Learn": "Aprender", + "AccountOverview": "Descripción de cuenta", + "MyOrganizations": "Mis Organizaciones", + "MySupportQuestions": "Mis preguntas de soporte", + "MyProfile": "Mi perfil", + "Logout": "Cerrar sesión", + "Home": "Hogar", + "Posts": "Publicaciones", + "Videos": "Vídeos", + "JoinTheABPCommunity": "Únase a la comunidad ABP", + "SubmitYourPost": "Envía tu publicación", + "Modules": "Módulos", + "Tools": "Herramientas", + "Pricing": "Precios", + "ChangeLogs": "Cambiar registros", + "SubscribeToNewsletter": "Suscríbete al boletín", + "SubscribeToNewsletterDescription": "Obtenga información sobre los acontecimientos en ABP, como nuevos lanzamientos, fuentes gratuitas, publicaciones y más.", + "EmailAddress": "Dirección de correo electrónico", + "Subscribe": "Suscribir", + "WelcomeToABP": "Bienvenidos a la ABP", + "EULA": "CLUF", + "ABPCommercialIntroductionMessage": "Módulos de aplicaciones prediseñados, plantillas de inicio avanzadas, herramientas de desarrollo rápido de aplicaciones, temas de interfaz de usuario profesionales y soporte premium.", + "MasteringAbpFrameworkEBook": "Dominar el marco ABP", + "MasteringTheABPFrameworkExplanation": "Escrito por el creador de ABP Framework, este libro le ayudará a obtener una comprensión completa del marco y de las técnicas modernas de desarrollo de aplicaciones web.", + "Speakers": "Altavoces", + "PreviousEvents": "Eventos anteriores", + "WatchTheEvent": "Mira el evento", + "RegisterNow": "Regístrate ahora", + "ThereIsNoEvent": "No hay ningún evento.", + "Events": "Eventos", + "Volo.AbpIo.Domain:080000": "Ya existe un artículo de compra llamado "{Name}"", + "MasteringAbpFrameworkBook": "Libro: Dominar el marco ABP", + "ABPIO-CommonPreferenceDefinition": "Obtenga las últimas noticias sobre la plataforma ABP, como nuevas publicaciones, eventos y más.", + "BuiltOn": "Construida sobre", + "AbpFramework": "Marco PAB", + "Volo.AbpIo.Domain:080001": "La hora de inicio no puede ser mayor que la hora de finalización", + "Enum:BookType:0": "Dominar el marco ABP", + "Enum:PurchasePlatform:0": "Amazonas", + "Enum:PurchasePlatform:1": "Paquete", + "Copied": "¡Copiado!", + "CouldNotCopy": "¡No se pudo copiar!", + "CopyNotSupportByYourBrowser": "Esta característica no funciona en el navegador que estás utilizando.", + "City": "Ciudad", + "ZipCode": "Código postal", + "Address": "DIRECCIÓN", + "Homepage": "Página principal", + "Year": "Año", + "Year_Plural": "Años", + "Copyright": "Derechos de autor © {1}", + "DomainDrivenDesign": "Diseño impulsado por dominio", + "CrossCuttingConcerns": "Preocupaciones transversales", + "AbpCommunity": "Comunidad ABP", + "Footer_GithubStarCount": "{0} Estrellas en GitHub", + "Footer_NugetDownloadCount": "{0} Descargas en NuGet", + "AbpDescription": "ABP es un marco de aplicación de código abierto centrado en el desarrollo de aplicaciones web basado en AspNet Core. No te repitas, concéntrate en tu propio código comercial.", + "Layout_AbpFramework_MetaTitle": "Marco PAB | Marco de aplicación web de código abierto para ASP.NET Core", + "CommunityTalks_CountdownDays": "Días", + "CommunityTalks_CountdownHours": "Horas", + "CommunityTalks_CountdownMinutes": "mín.", + "CommunityTalks_CountdownSeconds": "Segundo", + "SeePreviousEvents": "Ver eventos anteriores", + "CookieConsent_Accept": "Aceptar", + "CookieConsent_Explanation_1": "Utilizamos cookies para brindarle la mejor experiencia en nuestro sitio web.", + "CookieConsent_Explanation_2": "Si continúa navegando, acepta nuestra política de privacidad y política de cookies. .", + "Error_Page_400_Title": "Hubo un problema al servir la página solicitada.", + "Error_Page_400_Description_1": "Generalmente esto significa que ocurrió un error inesperado al procesar su solicitud.", + "Error_Page_400_Description_2": "Si el problema persiste, contáctanos en info@abp.io y te ayudaremos a seguir tu camino.", + "GoToHomepage": "Ir a la página de inicio", + "Error_Page_404_Title": "¡Página no encontrada!", + "Error_Page_404_Description_1": "Esta no es la página web que estás buscando.", + "Error_Page_500_Title": "¡Parece que algo salió mal!", + "Error_Page_500_Description_1": "Realizamos un seguimiento de estos errores automáticamente, pero si el problema persiste, no dude en
Contáctenos. Mientras tanto, intenta refrescarte.", + "Error_Page_500_Description_2": "Contacta con nosotros en info@abp.io .", + "Books": "Libros", + "ABPDiscordServer": "Servidor de discordia ABP", + "ABPCommunityTalks": "Charlas comunitarias de ABP", + "ABPCommunityPosts": "Publicaciones de la comunidad ABP", + "BuyAndGetMonths": "¡COMPRA 12 MESES, OBTENGA 14 MESES!", + "GetYourDeal": "Obtenga su oferta", + "BuyOrRenewLicense": "¡Compre o renueve la licencia ahora y obtenga 2 meses adicionales!", + "BuyOrRenewLicenseToGetExtra2Months": "¡Compre o renueve la licencia ahora y obtenga 2 meses adicionales! ¡APRESÚRATE! ⏰ Último día: {0}", + "HurryUp": "¡APRESÚRATE!", + "LastDay": "Último día: {0}", + "BuyNewLicenseBetweenDatesToGetBenefit": "¡Compre una nueva licencia entre {0} y {1} para obtener beneficios durante 2 meses adicionales!", + "CheckAllCommunityTalks": "Revisa todas las publicaciones de la comunidad", + "ReadMore": "Leer más", + "ContinueReading": "Sigue leyendo", + "Post": "Correo", + "ExploreTheContentsCreatedByTheCoreABPTeamAndTheABPCommunity": "Explore los contenidos creados por el equipo central de ABP y la comunidad de ABP.", + "WelcomeFallCampaign": "¡Bienvenida campaña de otoño!", + "GiveAwayForNewPurchases": "¡Se regalará capacitación en el aula de desarrollo de aplicaciones para las nuevas compras!", + "BlackFriday": "VIERNES NEGRO", + "ValidForExistingCustomers": "También válido para el
¡clientes existentes!", + "SaveUpTo": "AHORRE HASTA ${0}K", + "ImplementingDDD": "Implementación de diseño basado en dominio", + "ExploreTheEBook": "Explora el libro electrónico", + "ExploreTheBook": "Explora el libro", + "ConsultantType": "Tipo de consultoría", + "Expert": "Experto en PAA", + "Partner": "Socio ABP", + "Industry": "Industria", + "Location": "Ubicación", + "Contact": "Contacto", + "Partner_Year": "Año de asociación", + "Info": "Información", + "SpokenLanguages": "Lenguajes hablados", + "SocialMedia": "Medios de comunicación social", + "Activity": "Actividad", + "Type": "Tipo", + "Contribution": "Contribución", + "WhoWeAre": "Quienes somos", + "Icons": "Iconos", + "Url": "URL", + "Icon": "Icono", + "RecentActivities": "Actividades recientes", + "SpringCampaign": "Bienvenido
¡Venta de primavera!", + "SpringCampaign2": "Limitado
¡Oferta de tiempo!
", + "AboutUs": "Sobre nosotros", + "HowItWorks": "¿Cómo funciona?", + "ReleaseNotes": "Notas de lanzamiento", + "DetailedChangeNotes": "Notas de cambio detalladas", + "SeeTrainings": "Ver Entrenamientos", + "NoContent": "Sin contenido", + "More": "Más", + "WhyABPIOPlatform": "¿Por qué la plataforma ABP.IO?", + "AbpStudio": "Estudio ABP", + "ExtraMonths": "{0} MESES EXTRA", + "RSS": "RSS", + "RSSFeed": "RSS Feed", + "Articles": "Artículos", + "Organizations": "Organizaciones", + "ManageAccount": "Administrar cuenta", + "CommunityProfile": "Perfil de la comunidad", + "BlogProfile": "Perfil del blog", + "Tickets": "Entradas" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/fi.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/fi.json index c4c5217383..cfd1a41846 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/fi.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/fi.json @@ -28,6 +28,7 @@ "Volo.AbpIo.Domain:030011": "Kokeilulisenssiä ei voi poistaa, kun se on ostettu!", "Volo.AbpIo.Domain:030012": "Käyttäjällä on oikeus saada vain yksi ilmainen kokeilujakso. Olet jo käyttänyt kokeilukäyttölupaasi.", "Volo.AbpIo.Domain:030013": "Käyttäjä, jolla on aktiivinen käyttöoikeus, ei voi aloittaa kokeilukäyttöoikeutta.", + "Volo.AbpIo.Domain:040000": "Telemetria on jo olemassa!.", "Volo.AbpIo.Domain:070000": "Organisaation nimi saa sisältää vain latinalaisia kirjaimia, numeroita, pisteitä ja yhdysmerkkejä!", "Volo.AbpIo.Domain:070001": "Yrityksen nimi saa sisältää vain latinalaisia kirjaimia, numeroita, pisteitä, välilyöntejä ja yhdysmerkkejä!", "WantToLearn?": "Haluan oppia?", @@ -179,6 +180,7 @@ "BuyNewLicenseBetweenDatesToGetBenefit": "Osta uusi lisenssi välillä {0} - {1}, niin saat 2 lisäkuukautta!", "CheckAllCommunityTalks": "Tarkista kaikki yhteisön viestit", "ReadMore": "Lue lisää", + "ContinueReading": "Jatka lukemista", "Post": "Viesti", "ExploreTheContentsCreatedByTheCoreABPTeamAndTheABPCommunity": "Tutustu ABP-ydintiimin ja ABP-yhteisön luomaan sisältöön.", "WelcomeFallCampaign": "Tervetuloa syksyn kampanjaan!", @@ -209,6 +211,24 @@ "Icon": "Kuvake", "RecentActivities": "Viimeaikaiset toimet", "SpringCampaign": "Tervetuloa kevätaleen!", - "SpringCampaign2": "Rajoitetun
ajan tarjous!
" + "SpringCampaign2": "Rajoitetun
ajan tarjous!
", + "AboutUs": "Meistä", + "HowItWorks": "Kuinka se toimii?", + "ReleaseNotes": "Julkaisutiedot", + "DetailedChangeNotes": "Yksityiskohtaiset muutoshuomautukset", + "SeeTrainings": "Katso Koulutukset", + "NoContent": "Ei sisältöä", + "More": "Lisää", + "WhyABPIOPlatform": "Miksi ABP.IO-alusta?", + "AbpStudio": "ABP Studio", + "ExtraMonths": "{0} LISÄKUUKAUTA", + "RSS": "RSS", + "RSSFeed": "RSS-syöte", + "Articles": "Artikkelit", + "Organizations": "Organisaatiot", + "ManageAccount": "Hallitse tiliä", + "CommunityProfile": "Yhteisön profiili", + "BlogProfile": "Blogin profiili", + "Tickets": "Liput" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/fr.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/fr.json index 362d8c1df1..f7d130264c 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/fr.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/fr.json @@ -14,6 +14,23 @@ "Volo.AbpIo.Domain:020002": "Impossible de supprimer ce package NPM car les modules \"{Modules}\" utilisent ce package.", "Volo.AbpIo.Domain:020003": "Impossible de supprimer ce package NPM car les modules \"{Modules}\" utilisent ce package et les packages Nuget \"{NugetPackages}\" dépendent de ce package.", "Volo.AbpIo.Domain:020004": "Impossible de supprimer ce package Nuget car les modules \"{Modules}\" utilisent ce package.", + "Volo.AbpIo.Domain:030000": "Vous avez déjà terminé votre période d'essai.", + "Volo.AbpIo.Domain:030001": "Ce nom d'organisation existe déjà.", + "Volo.AbpIo.Domain:030002": "Une fois activée, vous ne pouvez pas faire passer la licence d'essai au statut -demandée- !", + "Volo.AbpIo.Domain:030003": "Un tel statut n'existe pas !", + "Volo.AbpIo.Domain:030004": "Le statut n'a pas pu être modifié en raison d'une erreur inattendue !", + "Volo.AbpIo.Domain:030005": "Les dates de début et de fin peuvent être mises à jour lorsque la licence d'essai est dans le statut -activée- !", + "Volo.AbpIo.Domain:030006": "La date de fin doit être supérieure à la date de début !", + "Volo.AbpIo.Domain:030007": "Cette licence d'essai a déjà été activée !", + "Volo.AbpIo.Domain:030008": "La date d'achat ne peut être définie que lorsque le statut est -acheté- !", + "Volo.AbpIo.Domain:030009": "Utilisateur non trouvé!", + "Volo.AbpIo.Domain:030010": "Pour acheter la licence d'essai, vous devez d'abord activer votre licence d'essai !", + "Volo.AbpIo.Domain:030011": "Vous ne pouvez pas supprimer une licence d'essai lors de son achat !", + "Volo.AbpIo.Domain:030012": "Un utilisateur n’a droit qu’à une seule période d’essai gratuite. Vous avez déjà utilisé votre licence d'essai.", + "Volo.AbpIo.Domain:030013": "Un utilisateur disposant d'une licence active ne peut pas démarrer une licence d'essai.", + "Volo.AbpIo.Domain:040000": "La télémétrie existe déjà !.", + "Volo.AbpIo.Domain:070000": "Le nom de l’organisation ne peut contenir que des lettres latines, des chiffres, des points et des traits d’union !", + "Volo.AbpIo.Domain:070001": "Le nom de l’entreprise ne peut contenir que des lettres latines, des chiffres, des points, des espaces et des traits d’union !", "WantToLearn?": "Vous voulez apprendre?", "ReadyToGetStarted?": "Prêt à commencer?", "JoinOurCommunity": "Rejoignez notre communauté", @@ -39,6 +56,179 @@ "TrialLicensePeriodHasExpired": "Votre période de licence d'essai a expiré il y a {0} jours.", "TrialLicensePeriodWillExpire": "Votre période de licence d'essai expirera dans {0} jours.", "TrialLicensePeriodExpireToday": "Votre période de licence d'essai expire aujourd'hui.", - "PurchaseNow": "Achetez maintenant !" + "PurchaseNow": "Achetez maintenant !", + "LatestReleaseLogs": "Journaux des dernières versions", + "RoadMap": "Carte routière", + "FAQ": "FAQ", + "SourceCode": "Code source", + "SeeAllPosts": "Voir tous les messages", + "Contribute": "Contribuer", + "LiveDemo": "Démo en direct", + "GetLicense": "Obtenez une licence", + "OpenSource": "Open source", + "WebApplication": "Application Web", + "MeetTheABP": "Rencontrez l'ABP", + "CompleteWebDevelopment": "Un développement Web complet", + "Platform": "Plate-forme", + "ABPDescription": "Un framework open source pour le développement d'applications Web pour ASP.NET Core. Il offre une infrastructure complète en suivant les meilleures pratiques de développement logiciel.", + "StrongInfrastructure": "Infrastructure solide", + "CompleteArchitecture": "Architecture complète", + "DeveloperFocused": "Axé sur les développeurs", + "ShareYourExperiences": "Partagez vos expériences avec le framework ABP", + "LatestPosts": "Derniers messages", + "LatestVideos": "Dernières vidéos", + "Views": "Vues", + "LearnLatestNewsAboutABPFramework": "Obtenez des informations sur les événements d'ABP comme les nouvelles versions, les sources gratuites, les publications et bien plus encore.", + "DeveloperTools": "Outils de développement", + "StartupTemplates": "Modèles de démarrage", + "ApplicationModules": "Modules d'application", + "UI": "Interface utilisateur", + "Themes": "Thèmes", + "Premium": "Prime", + "PrivacyPolicy": "politique de confidentialité", + "TermsAndConditions": "termes et conditions", + "WouldLikeToReceiveMarketingMaterials": "J'aimerais recevoir du matériel marketing comme des offres de produits et des offres spéciales.", + "JoinOurMarketingNewsletter": "Rejoignez notre newsletter marketing", + "CommunityPrivacyPolicyConfirmation": "J'accepte les conditions générales et la politique de confidentialité .", + "WouldLikeToReceiveNotification": "Je souhaite recevoir les dernières nouvelles des sites abp.io.", + "CommercialNewsletterConfirmationMessage": "J'accepte les conditions générales et la politique de confidentialité .", + "FreeDDDEBook": "Livre électronique DDD gratuit", + "AdditionalServices": "Des services supplémentaires", + "Learn": "Apprendre", + "AccountOverview": "Aperçu du compte", + "MyOrganizations": "Mes organisations", + "MySupportQuestions": "Mes questions d'assistance", + "MyProfile": "Mon profil", + "Logout": "Se déconnecter", + "Home": "Maison", + "Posts": "Des postes", + "Videos": "Vidéos", + "JoinTheABPCommunity": "Rejoignez la communauté ABP", + "SubmitYourPost": "Soumettez votre message", + "Modules": "Modules", + "Tools": "Outils", + "Pricing": "Tarifs", + "ChangeLogs": "Journaux de modifications", + "SubscribeToNewsletter": "Abonnez-vous à la newsletter", + "SubscribeToNewsletterDescription": "Obtenez des informations sur les événements d'ABP comme les nouvelles versions, les sources gratuites, les publications et bien plus encore.", + "EmailAddress": "Adresse e-mail", + "Subscribe": "S'abonner", + "WelcomeToABP": "Bienvenue à l'ABP", + "EULA": "CLUF", + "ABPCommercialIntroductionMessage": "Modules d'application prédéfinis, modèles de démarrage avancés, outils de développement d'applications rapides, thèmes d'interface utilisateur professionnels et support premium.", + "MasteringAbpFrameworkEBook": "Maîtriser le cadre ABP", + "MasteringTheABPFrameworkExplanation": "Écrit par le créateur du framework ABP, ce livre vous aidera à acquérir une compréhension complète du framework et des techniques modernes de développement d'applications Web.", + "Speakers": "Haut-parleurs", + "PreviousEvents": "Événements précédents", + "WatchTheEvent": "Regardez l'événement", + "RegisterNow": "S'inscrire maintenant", + "ThereIsNoEvent": "Il n'y a aucun événement.", + "Events": "Événements", + "Volo.AbpIo.Domain:080000": "Il existe déjà un article acheté nommé "{Name}".", + "MasteringAbpFrameworkBook": "Livre : Maîtriser le cadre ABP", + "ABPIO-CommonPreferenceDefinition": "Recevez les dernières nouvelles sur la plateforme ABP, comme les nouveaux articles, les événements et bien plus encore.", + "BuiltOn": "Construit sur", + "AbpFramework": "Cadre ABP", + "Volo.AbpIo.Domain:080001": "L'heure de début ne peut pas être supérieure à l'heure de fin", + "Enum:BookType:0": "Maîtriser le cadre ABP", + "Enum:PurchasePlatform:0": "Amazone", + "Enum:PurchasePlatform:1": "Paquet", + "Copied": "Copié!", + "CouldNotCopy": "Impossible de copier !", + "CopyNotSupportByYourBrowser": "Cette fonctionnalité ne fonctionne pas dans le navigateur que vous utilisez.", + "City": "Ville", + "ZipCode": "Code postal", + "Address": "Adresse", + "Homepage": "Page d'accueil", + "Year": "Année", + "Year_Plural": "Années", + "Copyright": "Droits d'auteur © {1}", + "DomainDrivenDesign": "Conception basée sur le domaine", + "CrossCuttingConcerns": "Préoccupations transversales", + "AbpCommunity": "Communauté ABP", + "Footer_GithubStarCount": "{0} Étoiles sur GitHub", + "Footer_NugetDownloadCount": "{0} Téléchargements sur NuGet", + "AbpDescription": "ABP est un framework d'application open source axé sur le développement d'applications Web basées sur AspNet Core. Ne vous répétez pas, concentrez-vous sur votre propre code d'entreprise.", + "Layout_AbpFramework_MetaTitle": "Cadre ABP | Cadre d'application Web open source pour ASP.NET Core", + "CommunityTalks_CountdownDays": "Jours", + "CommunityTalks_CountdownHours": "Heures", + "CommunityTalks_CountdownMinutes": "Min.", + "CommunityTalks_CountdownSeconds": "Seconde", + "SeePreviousEvents": "Voir les événements précédents", + "CookieConsent_Accept": "Accepter", + "CookieConsent_Explanation_1": "Nous utilisons des cookies pour vous offrir la meilleure expérience sur notre site Web.", + "CookieConsent_Explanation_2": "Si vous continuez à naviguer, vous acceptez notre politique de confidentialité et notre politique en matière de cookies. .", + "Error_Page_400_Title": "Un problème est survenu lors de la diffusion de la page demandée.", + "Error_Page_400_Description_1": "Cela signifie généralement qu'une erreur inattendue s'est produite lors du traitement de votre demande.", + "Error_Page_400_Description_2": "Si le problème persiste, contactez-nous à info@abp.io et nous vous aiderons à vous mettre sur la bonne voie.", + "GoToHomepage": "Aller à la page d'accueil", + "Error_Page_404_Title": "Page non trouvée!", + "Error_Page_404_Description_1": "Ce n'est pas la page Web que vous recherchez.", + "Error_Page_500_Title": "On dirait que quelque chose s'est mal passé !", + "Error_Page_500_Description_1": "Nous suivons ces erreurs automatiquement, mais si le problème persiste, n'hésitez pas à nous contacter.
Contactez-nous. En attendant, essayez de rafraîchir.", + "Error_Page_500_Description_2": "Contactez-nous à info@abp.io .", + "Books": "Livres", + "ABPDiscordServer": "Serveur Discord ABP", + "ABPCommunityTalks": "Discussions communautaires ABP", + "ABPCommunityPosts": "Messages de la communauté ABP", + "BuyAndGetMonths": "ACHETEZ 12 MOIS, OBTENEZ 14 MOIS !", + "GetYourDeal": "Obtenez votre offre", + "BuyOrRenewLicense": "Achetez ou renouvelez votre licence maintenant et obtenez 2 mois supplémentaires !", + "BuyOrRenewLicenseToGetExtra2Months": "Achetez ou renouvelez votre licence maintenant et obtenez 2 mois supplémentaires ! DÉPÊCHE-TOI! ⏰ Dernier jour : {0}", + "HurryUp": "DÉPÊCHE-TOI!", + "LastDay": "Dernier jour : {0}", + "BuyNewLicenseBetweenDatesToGetBenefit": "Achetez une nouvelle licence entre {0} et {1} pour bénéficier de 2 mois supplémentaires !", + "CheckAllCommunityTalks": "Vérifiez tous les messages de la communauté", + "ReadMore": "En savoir plus", + "ContinueReading": "Continuer la lecture", + "Post": "Poste", + "ExploreTheContentsCreatedByTheCoreABPTeamAndTheABPCommunity": "Explorez les contenus créés par l'équipe principale d'ABP et la communauté ABP.", + "WelcomeFallCampaign": "Bienvenue à la campagne d'automne !", + "GiveAwayForNewPurchases": "Une formation en classe sur le développement d'applications sera offerte pour les nouveaux achats !", + "BlackFriday": "VENDREDI NOIR", + "ValidForExistingCustomers": "Valable également pour le
clients existants!", + "CampaignBetweenDates": "À partir de {0}
À {1}", + "SaveUpTo": "ÉCONOMISEZ JUSQU'À {0} 000 $", + "ImplementingDDD": "Implémentation de la conception pilotée par domaine", + "ExploreTheEBook": "Explorez le livre électronique", + "ExploreTheBook": "Explorez le livre", + "ConsultantType": "Type de conseil", + "Expert": "Expert en PAA", + "Partner": "Partenaire ABP", + "Industry": "Industrie", + "Location": "Emplacement", + "Contact": "Contact", + "Partner_Year": "Année de partenariat", + "Info": "Info", + "SpokenLanguages": "Langues parlées", + "SocialMedia": "Réseaux sociaux", + "Activity": "Activité", + "Type": "Taper", + "Contribution": "Contribution", + "WhoWeAre": "Qui nous sommes", + "Icons": "Icônes", + "Url": "URL", + "Icon": "Icône", + "RecentActivities": "Activités récentes", + "SpringCampaign": "Accueillir
Soldes de printemps!", + "SpringCampaign2": "Limité
Offre de temps !
", + "AboutUs": "À propos de nous", + "HowItWorks": "Comment ça fonctionne?", + "ReleaseNotes": "Notes de version", + "DetailedChangeNotes": "Notes de modification détaillées", + "SeeTrainings": "Voir les formations", + "NoContent": "Pas de contenu", + "More": "Plus", + "WhyABPIOPlatform": "Pourquoi la plateforme ABP.IO ?", + "AbpStudio": "Studio ABP", + "ExtraMonths": "{0} MOIS SUPPLÉMENTAIRES", + "RSS": "RSS", + "RSSFeed": "Flux RSS", + "Articles": "Des articles", + "Organizations": "Organisations", + "ManageAccount": "Gérer son compte", + "CommunityProfile": "Profil de la communauté", + "BlogProfile": "Profil du blog", + "Tickets": "Des billets" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/hi.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/hi.json index 7c500c2747..494202b8c9 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/hi.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/hi.json @@ -14,6 +14,23 @@ "Volo.AbpIo.Domain:020002": "यह NPM पैकेज नहीं हटा सका क्योंकि \"{Modules}\" मॉड्यूल इस पैकेज का उपयोग कर रहे हैं।", "Volo.AbpIo.Domain:020003": "इस NPM पैकेज को नहीं हटाया जा सका क्योंकि \"{Modules}\" मॉड्यूल इस पैकेज का उपयोग कर रहे हैं और \"{NugetPackages}\" नुगेट पैकेज इस पैकेज पर निर्भर हैं।", "Volo.AbpIo.Domain:020004": "इस Nuget पैकेज को हटाया नहीं जा सका क्योंकि \"{Modules}\" मॉड्यूल इस पैकेज का उपयोग कर रहे हैं।", + "Volo.AbpIo.Domain:030000": "आपने अपनी परीक्षण अवधि पहले ही पूरी कर ली है.", + "Volo.AbpIo.Domain:030001": "इस संगठन का नाम पहले से मौजूद है.", + "Volo.AbpIo.Domain:030002": "एक बार सक्रिय होने पर, आप परीक्षण लाइसेंस को -अनुरोधित- स्थिति में नहीं बदल सकते!", + "Volo.AbpIo.Domain:030003": "ऐसी कोई स्थिति नहीं है!", + "Volo.AbpIo.Domain:030004": "किसी अप्रत्याशित त्रुटि के कारण स्थिति नहीं बदली जा सकी!", + "Volo.AbpIo.Domain:030005": "ट्रायल लाइसेंस -सक्रिय-स्थिति में होने पर आरंभ और समाप्ति तिथि को अपडेट किया जा सकता है!", + "Volo.AbpIo.Domain:030006": "अंतिम तिथि आरंभ तिथि से बड़ी होनी चाहिए!", + "Volo.AbpIo.Domain:030007": "यह परीक्षण लाइसेंस पहले ही सक्रिय किया जा चुका है!", + "Volo.AbpIo.Domain:030008": "खरीदारी की तारीख केवल तभी निर्धारित की जा सकती है जब स्थिति -खरीदा- हो!", + "Volo.AbpIo.Domain:030009": "उपयोगकर्ता नहीं मिला!", + "Volo.AbpIo.Domain:030010": "ट्रायल लाइसेंस खरीदने के लिए, आपको सबसे पहले अपना ट्रायल लाइसेंस सक्रिय करना होगा!", + "Volo.AbpIo.Domain:030011": "जब कोई ट्रायल लाइसेंस खरीदा जाता है तो आप उसे हटा नहीं सकते!", + "Volo.AbpIo.Domain:030012": "एक उपयोगकर्ता केवल 1 निःशुल्क परीक्षण अवधि का हकदार है। आपने पहले ही अपना परीक्षण लाइसेंस उपयोग कर लिया है.", + "Volo.AbpIo.Domain:030013": "सक्रिय लाइसेंस वाला उपयोगकर्ता परीक्षण लाइसेंस प्रारंभ नहीं कर सकता।", + "Volo.AbpIo.Domain:040000": "टेलीमेट्री पहले से मौजूद है!", + "Volo.AbpIo.Domain:070000": "संगठन के नाम में केवल लैटिन अक्षर, संख्याएँ, बिंदु और हाइफ़न हो सकते हैं!", + "Volo.AbpIo.Domain:070001": "कंपनी के नाम में केवल लैटिन अक्षर, संख्याएँ, बिंदु, स्थान और हाइफ़न हो सकते हैं!", "WantToLearn?": "सीखना चाहते है?", "ReadyToGetStarted?": "आरंभ करने के लिए तैयार हैं?", "JoinOurCommunity": "हमारी संस्था से जुड़े", @@ -39,6 +56,179 @@ "TrialLicensePeriodHasExpired": "आपके परीक्षण लाइसेंस की अवधि {0} दिन पहले समाप्त हो गई है।", "TrialLicensePeriodWillExpire": "आपके परीक्षण लाइसेंस की अवधि {0} दिनों में समाप्त हो जाएगी।", "TrialLicensePeriodExpireToday": "आपके परीक्षण लाइसेंस की अवधि आज समाप्त हो जाएगी।", - "PurchaseNow": "अभी खरीदो!" + "PurchaseNow": "अभी खरीदो!", + "LatestReleaseLogs": "नवीनतम रिलीज़ लॉग", + "RoadMap": "रोड मैप", + "FAQ": "सामान्य प्रश्न", + "SourceCode": "सोर्स कोड", + "SeeAllPosts": "सभी पोस्ट देखें", + "Contribute": "योगदान देना", + "LiveDemo": "लाइव डेमो", + "GetLicense": "लाइसेंस प्राप्त करें", + "OpenSource": "खुला स्त्रोत", + "WebApplication": "वेब अनुप्रयोग", + "MeetTheABP": "एबीपी से मिलें", + "CompleteWebDevelopment": "एक संपूर्ण वेब विकास", + "Platform": "प्लैटफ़ॉर्म", + "ABPDescription": "ASP.NET कोर के लिए वेब एप्लिकेशन विकास के लिए एक ओपन-सोर्स फ्रेमवर्क। यह सॉफ्टवेयर विकास की सर्वोत्तम प्रथाओं का पालन करके संपूर्ण बुनियादी ढांचा प्रदान करता है।", + "StrongInfrastructure": "मजबूत बुनियादी ढांचा", + "CompleteArchitecture": "संपूर्ण वास्तुकला", + "DeveloperFocused": "डेवलपर केंद्रित", + "ShareYourExperiences": "एबीपी फ्रेमवर्क के साथ अपने अनुभव साझा करें", + "LatestPosts": "नवीनतम पोस्ट", + "LatestVideos": "नवीनतम वीडियो", + "Views": "दृश्य", + "LearnLatestNewsAboutABPFramework": "एबीपी में होने वाली घटनाओं जैसे नई रिलीज़, मुफ़्त स्रोत, पोस्ट और बहुत कुछ के बारे में जानकारी प्राप्त करें।", + "DeveloperTools": "डेवलपर उपकरण", + "StartupTemplates": "स्टार्टअप टेम्पलेट्स", + "ApplicationModules": "अनुप्रयोग मॉड्यूल", + "UI": "यूआई", + "Themes": "विषय-वस्तु", + "Premium": "अधिमूल्य", + "PrivacyPolicy": "गोपनीयता नीति", + "TermsAndConditions": "नियम एवं शर्तें", + "WouldLikeToReceiveMarketingMaterials": "मैं उत्पाद सौदे और विशेष ऑफ़र जैसी विपणन सामग्री प्राप्त करना चाहूंगा।", + "JoinOurMarketingNewsletter": "हमारे मार्केटिंग न्यूज़लेटर से जुड़ें", + "CommunityPrivacyPolicyConfirmation": "मैं नियम एवं शर्तों और गोपनीयता नीति से सहमत हूं।", + "WouldLikeToReceiveNotification": "मैं abp.io वेबसाइटों से नवीनतम समाचार प्राप्त करना चाहूंगा।", + "CommercialNewsletterConfirmationMessage": "मैं नियम एवं शर्तों और गोपनीयता नीति से सहमत हूं।", + "FreeDDDEBook": "निःशुल्क डीडीडी ई-बुक", + "AdditionalServices": "अतिरिक्त सेवाएं", + "Learn": "सीखना", + "AccountOverview": "खाता अवलोकन", + "MyOrganizations": "मेरे संगठन", + "MySupportQuestions": "मेरे समर्थन प्रश्न", + "MyProfile": "मेरी प्रोफाइल", + "Logout": "लॉग आउट", + "Home": "घर", + "Posts": "पदों", + "Videos": "वीडियो", + "JoinTheABPCommunity": "एबीपी समुदाय से जुड़ें", + "SubmitYourPost": "अपनी पोस्ट सबमिट करें", + "Modules": "मॉड्यूल", + "Tools": "औजार", + "Pricing": "मूल्य निर्धारण", + "ChangeLogs": "लॉग बदलें", + "SubscribeToNewsletter": "न्यूज़लैटर की सदस्यता लें", + "SubscribeToNewsletterDescription": "एबीपी में होने वाली घटनाओं जैसे नई रिलीज़, मुफ़्त स्रोत, पोस्ट और बहुत कुछ के बारे में जानकारी प्राप्त करें।", + "EmailAddress": "मेल पता", + "Subscribe": "सदस्यता लें", + "WelcomeToABP": "एबीपी में आपका स्वागत है", + "EULA": "EULA", + "ABPCommercialIntroductionMessage": "पूर्व-निर्मित एप्लिकेशन मॉड्यूल, उन्नत स्टार्टअप टेम्पलेट, तीव्र एप्लिकेशन डेवलपमेंट टूलिंग, पेशेवर यूआई थीम और प्रीमियम समर्थन।", + "MasteringAbpFrameworkEBook": "एबीपी फ्रेमवर्क में महारत हासिल करना", + "MasteringTheABPFrameworkExplanation": "एबीपी फ्रेमवर्क के निर्माता द्वारा लिखित, यह पुस्तक आपको फ्रेमवर्क और आधुनिक वेब एप्लिकेशन विकास तकनीकों की पूरी समझ हासिल करने में मदद करेगी।", + "Speakers": "वक्ताओं", + "PreviousEvents": "पिछली घटनाएँ", + "WatchTheEvent": "घटना देखें", + "RegisterNow": "अभी पंजीकरण करें", + "ThereIsNoEvent": "कोई आयोजन नहीं है.", + "Events": "आयोजन", + "Volo.AbpIo.Domain:080000": ""{Name}" नाम से पहले से ही एक खरीद वस्तु मौजूद है", + "MasteringAbpFrameworkBook": "पुस्तक: एबीपी फ्रेमवर्क में महारत हासिल करना", + "ABPIO-CommonPreferenceDefinition": "एबीपी प्लेटफ़ॉर्म के बारे में नवीनतम समाचार प्राप्त करें जैसे नए पोस्ट, ईवेंट और बहुत कुछ।", + "BuiltOn": "बनाया गया", + "AbpFramework": "एबीपी फ्रेमवर्क", + "Volo.AbpIo.Domain:080001": "प्रारंभ समय समाप्ति समय से अधिक नहीं हो सकता", + "Enum:BookType:0": "एबीपी फ्रेमवर्क में महारत हासिल करना", + "Enum:PurchasePlatform:0": "वीरांगना", + "Enum:PurchasePlatform:1": "पैकेट", + "Copied": "नकल की गई!", + "CouldNotCopy": "की नकल नहीं कर सकता!", + "CopyNotSupportByYourBrowser": "यह सुविधा आपके द्वारा उपयोग किए जा रहे ब्राउज़र में काम नहीं करती है.", + "City": "शहर", + "ZipCode": "ज़िप कोड", + "Address": "पता", + "Homepage": "मुखपृष्ठ", + "Year": "वर्ष", + "Year_Plural": "साल", + "Copyright": "कॉपीराइट © {1}", + "DomainDrivenDesign": "डोमेन संचालित डिज़ाइन", + "CrossCuttingConcerns": "फिल्म आदि में दृश्यों के संपादन संबंधी चिंताएं", + "AbpCommunity": "एबीपी समुदाय", + "Footer_GithubStarCount": "{0} GitHub पर सितारे", + "Footer_NugetDownloadCount": "{0} NuGet पर डाउनलोड", + "AbpDescription": "एबीपी एक ओपन सोर्स एप्लिकेशन फ्रेमवर्क है जो एएसपीनेट कोर आधारित वेब एप्लिकेशन डेवलपमेंट पर केंद्रित है। अपने आप को दोहराएँ नहीं, अपने व्यवसाय कोड पर ध्यान केंद्रित करें।", + "Layout_AbpFramework_MetaTitle": "एबीपी फ्रेमवर्क | ASP.NET कोर के लिए ओपन सोर्स वेब एप्लिकेशन फ्रेमवर्क", + "CommunityTalks_CountdownDays": "दिन", + "CommunityTalks_CountdownHours": "घंटे", + "CommunityTalks_CountdownMinutes": "मिन", + "CommunityTalks_CountdownSeconds": "सेकंड", + "SeePreviousEvents": "पिछली घटनाएँ देखें", + "CookieConsent_Accept": "स्वीकार करना", + "CookieConsent_Explanation_1": "हम अपनी वेबसाइट पर आपको सर्वोत्तम अनुभव देने के लिए कुकीज़ का उपयोग करते हैं।", + "CookieConsent_Explanation_2": "यदि आप ब्राउज़ करना जारी रखते हैं, तो आप हमारी गोपनीयता नीति और कुकी नीति से सहमत हैं। .", + "Error_Page_400_Title": "अनुरोधित पृष्ठ को परोसने में समस्या थी.", + "Error_Page_400_Description_1": "आमतौर पर इसका मतलब यह है कि आपके अनुरोध को संसाधित करते समय एक अप्रत्याशित त्रुटि हुई।", + "Error_Page_400_Description_2": "यदि समस्या बनी रहती है, तो info@abp.io पर हमसे संपर्क करें और हम आपको सही रास्ते पर लाने में मदद करेंगे।", + "GoToHomepage": "मुखपृष्ठ प्र जाएं", + "Error_Page_404_Title": "पृष्ठ नहीं मिला!", + "Error_Page_404_Description_1": "यह वह वेब पेज नहीं है जिसे आप ढूंढ रहे हैं।", + "Error_Page_500_Title": "ऐसा लगता है जैसे कुछ गलत हो गया!", + "Error_Page_500_Description_1": "हम इन त्रुटियों को स्वचालित रूप से ट्रैक करते हैं, लेकिन यदि समस्या बनी रहती है तो बेझिझक संपर्क करें
संपर्क करें। इस बीच, ताज़ा करने का प्रयास करें।", + "Error_Page_500_Description_2": "हमसे info@abp.io पर संपर्क करें।", + "Books": "पुस्तकें", + "ABPDiscordServer": "एबीपी डिस्कॉर्ड सर्वर", + "ABPCommunityTalks": "एबीपी समुदाय वार्ता", + "ABPCommunityPosts": "एबीपी सामुदायिक पोस्ट", + "BuyAndGetMonths": "12 महीने खरीदें, 14 महीने पाएं!", + "GetYourDeal": "अपना सौदा प्राप्त करें", + "BuyOrRenewLicense": "अभी लाइसेंस खरीदें या नवीनीकृत करें और 2 अतिरिक्त महीने प्राप्त करें!", + "BuyOrRenewLicenseToGetExtra2Months": "अभी लाइसेंस खरीदें या नवीनीकृत करें और 2 अतिरिक्त महीने प्राप्त करें! जल्दी करो! ⏰ अंतिम दिन: {0}", + "HurryUp": "जल्दी करो!", + "LastDay": "अंतिम दिन: {0}", + "BuyNewLicenseBetweenDatesToGetBenefit": "अतिरिक्त 2 महीनों का लाभ पाने के लिए {0} और {1} के बीच नया लाइसेंस खरीदें!", + "CheckAllCommunityTalks": "सभी सामुदायिक पोस्ट जांचें", + "ReadMore": "और पढ़ें", + "ContinueReading": "जारी रखें पढ़ रहे हैं", + "Post": "डाक", + "ExploreTheContentsCreatedByTheCoreABPTeamAndTheABPCommunity": "कोर एबीपी टीम और एबीपी समुदाय द्वारा बनाई गई सामग्री का अन्वेषण करें।", + "WelcomeFallCampaign": "पतन अभियान का स्वागत है!", + "GiveAwayForNewPurchases": "नई खरीद के लिए एप्लिकेशन डेवलपमेंट क्लासरूम प्रशिक्षण दिया जाएगा!", + "BlackFriday": "ब्लैक फ्राइडे", + "ValidForExistingCustomers": "के लिए भी मान्य है
मौजूदा ग्राहक!", + "CampaignBetweenDates": "{0} से
{1} को", + "SaveUpTo": "${0}K तक बचाएं", + "ImplementingDDD": "डोमेन संचालित डिज़ाइन लागू करना", + "ExploreTheEBook": "ई-पुस्तक का अन्वेषण करें", + "ExploreTheBook": "पुस्तक का अन्वेषण करें", + "ConsultantType": "परामर्श प्रकार", + "Expert": "एबीपी एक्सपर्ट", + "Partner": "एबीपी पार्टनर", + "Industry": "उद्योग", + "Location": "जगह", + "Contact": "संपर्क", + "Partner_Year": "साझेदारी वर्ष", + "Info": "जानकारी", + "SpokenLanguages": "बोली जाने वाली भाषाएं", + "SocialMedia": "सामाजिक मीडिया", + "Activity": "गतिविधि", + "Type": "प्रकार", + "Contribution": "योगदान", + "WhoWeAre": "हम जो हैं", + "Icons": "माउस", + "Url": "यूआरएल", + "Icon": "आइकन", + "RecentActivities": "हाल की गतिविधियां", + "SpringCampaign": "स्वागत
वसंत बिक्री!", + "SpringCampaign2": "सीमित
समय प्रस्ताव!
", + "AboutUs": "हमारे बारे में", + "HowItWorks": "यह काम किस प्रकार करता है?", + "ReleaseNotes": "रिलीज नोट्स", + "DetailedChangeNotes": "विस्तृत परिवर्तन नोट्स", + "SeeTrainings": "प्रशिक्षण देखें", + "NoContent": "कोई सामग्री नहीं है", + "More": "अधिक", + "WhyABPIOPlatform": "ABP.IO प्लेटफार्म क्यों?", + "AbpStudio": "एबीपी स्टूडियो", + "ExtraMonths": "{0} अतिरिक्त महीने", + "RSS": "आरएसएस", + "RSSFeed": "आरएसएस फीड", + "Articles": "सामग्री", + "Organizations": "संगठनों", + "ManageAccount": "खाते का प्रबंधन करें", + "CommunityProfile": "सामुदायिक प्रोफ़ाइल", + "BlogProfile": "ब्लॉग प्रोफ़ाइल", + "Tickets": "टिकट" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/hr.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/hr.json new file mode 100644 index 0000000000..218aa822b4 --- /dev/null +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/hr.json @@ -0,0 +1,234 @@ +{ + "culture": "hr", + "texts": { + "Volo.AbpIo.Domain:010004": "Dosegnut je maksimalan broj članova!", + "Volo.AbpIo.Domain:010005": "Dosegnut je maksimalan broj vlasnika!", + "Volo.AbpIo.Domain:010006": "Ovaj korisnik je već vlasnik u ovoj organizaciji!", + "Volo.AbpIo.Domain:010007": "Ovaj korisnik je već programer u ovoj organizaciji!", + "Volo.AbpIo.Domain:010008": "Dopušteni broj programera ne može biti manji od trenutnog broja programera!", + "Volo.AbpIo.Domain:010009": "Dopušteni broj programera ne može biti manji od 0!", + "Volo.AbpIo.Domain:010010": "Premašen je maksimalan broj mac adresa!", + "Volo.AbpIo.Domain:010011": "Osobna licenca ne može imati više od 1 programera!", + "Volo.AbpIo.Domain:010012": "Licenca se ne može produžiti mjesec dana nakon isteka licence!", + "Volo.AbpIo.Domain:020001": "Nije moguće izbrisati ovaj NPM paket jer Nuget paketi "{NugetPackages}" ovise o ovom paketu.", + "Volo.AbpIo.Domain:020002": "Nije moguće izbrisati ovaj NPM paket jer moduli "{Modules}" koriste ovaj paket.", + "Volo.AbpIo.Domain:020003": "Nije moguće izbrisati ovaj NPM paket jer moduli "{Modules}" koriste ovaj paket, a Nuget paketi "{NugetPackages}" ovise o ovom paketu.", + "Volo.AbpIo.Domain:020004": "Nije moguće izbrisati ovaj Nuget paket jer moduli "{Modules}" koriste ovaj paket.", + "Volo.AbpIo.Domain:030000": "Već ste završili svoje probno razdoblje.", + "Volo.AbpIo.Domain:030001": "Ovo ime organizacije već postoji.", + "Volo.AbpIo.Domain:030002": "Nakon aktivacije probnu licencu ne možete prebaciti u status -tražena-!", + "Volo.AbpIo.Domain:030003": "Ne postoji takav status!", + "Volo.AbpIo.Domain:030004": "Status nije moguće promijeniti zbog neočekivane pogreške!", + "Volo.AbpIo.Domain:030005": "Datum početka i završetka može se ažurirati kada je probna licenca u statusu -aktivirano!", + "Volo.AbpIo.Domain:030006": "Datum završetka mora biti duži od datuma početka!", + "Volo.AbpIo.Domain:030007": "Ova probna licenca je već aktivirana!", + "Volo.AbpIo.Domain:030008": "Datum kupovine može se postaviti samo kada je status -kupljeno-!", + "Volo.AbpIo.Domain:030009": "Korisnik nije pronađen!", + "Volo.AbpIo.Domain:030010": "Za kupnju probne licence prvo morate aktivirati probnu licencu!", + "Volo.AbpIo.Domain:030011": "Ne možete izbrisati probnu licencu kada je kupljena!", + "Volo.AbpIo.Domain:030012": "Korisnik ima pravo na samo 1 besplatno probno razdoblje. Već ste koristili probnu licencu.", + "Volo.AbpIo.Domain:030013": "Korisnik s aktivnom licencom ne može pokrenuti probnu licencu.", + "Volo.AbpIo.Domain:040000": "Telemetrija već postoji!.", + "Volo.AbpIo.Domain:070000": "Naziv organizacije može sadržavati samo latinična slova, brojke, točke i crtice!", + "Volo.AbpIo.Domain:070001": "Naziv tvrtke može sadržavati samo latinična slova, brojke, točke, razmak i crtice!", + "WantToLearn?": "Želim naučiti?", + "ReadyToGetStarted?": "Jeste li spremni za početak?", + "JoinOurCommunity": "Pridružite se našoj zajednici", + "GetStartedUpper": "POČNITE", + "ForkMeOnGitHub": "Fork me na GitHubu", + "Features": "Značajke", + "GetStarted": "Započnite", + "Documents": "Dokumenti", + "Community": "Zajednica", + "ContributionGuide": "Vodič za doprinose", + "Blog": "Blog", + "Commercial": "Komercijalni", + "MyAccount": "Moj račun", + "Permission:License": "Licenca", + "Permission:UserInfo": "Informacije o korisniku", + "SeeDocuments": "Pogledajte dokumente", + "Samples": "Uzorci", + "Framework": "Okvir", + "Support": "podrška", + "FreeDDDBook": "Besplatna DDD e-knjiga", + "New": "Novi", + "Volo.AbpIo.Domain:020005": "Godina produženja licence ne može biti niža od {MinExtendLicenseYear} godina(e) i veća od {MaxExtendLicenseYear} godina(e)", + "TrialLicensePeriodHasExpired": "Vaše probno licencno razdoblje isteklo je prije {0} dana.", + "TrialLicensePeriodWillExpire": "Vaše probno licencno razdoblje isteći će za {0} dana.", + "TrialLicensePeriodExpireToday": "Vaše probno licencno razdoblje danas će isteći.", + "PurchaseNow": "Kupite sada!", + "LatestReleaseLogs": "Dnevnici najnovijih izdanja", + "RoadMap": "Mapa puta", + "FAQ": "Pitanja", + "SourceCode": "Izvorni kod", + "SeeAllPosts": "Pogledajte sve postove", + "Contribute": "Doprinesite", + "LiveDemo": "Demo uživo", + "GetLicense": "Nabavite licencu", + "OpenSource": "Otvoreni izvor", + "WebApplication": "Web aplikacija", + "MeetTheABP": "Upoznajte ABP", + "CompleteWebDevelopment": "Kompletan web razvoj", + "Platform": "Platforma", + "ABPDescription": "Okvir otvorenog koda za razvoj web aplikacija za ASP.NET Core. Nudi kompletnu infrastrukturu slijedeći najbolje prakse razvoja softvera.", + "StrongInfrastructure": "Jaka infrastruktura", + "CompleteArchitecture": "Kompletna arhitektura", + "DeveloperFocused": "Usmjeren na razvojnog programera", + "ShareYourExperiences": "Podijelite svoja iskustva s ABP okvirom", + "LatestPosts": "Najnovije objave", + "LatestVideos": "Najnoviji video zapisi", + "Views": "Pogledi", + "LearnLatestNewsAboutABPFramework": "Primajte informacije o događanjima u ABP-u poput novih izdanja, besplatnih izvora, postova i više.", + "DeveloperTools": "Razvojni alati", + "StartupTemplates": "Predlošci za pokretanje", + "ApplicationModules": "Moduli aplikacije", + "UI": "korisničko sučelje", + "Themes": "Teme", + "Premium": "Premija", + "PrivacyPolicy": "Politika privatnosti", + "TermsAndConditions": "Uvjeti korištenja", + "WouldLikeToReceiveMarketingMaterials": "Želio bih primati marketinške materijale kao što su ponude proizvoda i posebne ponude.", + "JoinOurMarketingNewsletter": "Pridružite se našem marketinškom biltenu", + "CommunityPrivacyPolicyConfirmation": "Slažem se s Uvjetima i odredbama i Politikom privatnosti .", + "WouldLikeToReceiveNotification": "Želio bih primati najnovije vijesti s web stranica abp.io.", + "CommercialNewsletterConfirmationMessage": "Slažem se s Uvjetima i odredbama i Politikom privatnosti .", + "FreeDDDEBook": "Besplatna DDD e-knjiga", + "AdditionalServices": "Dodatne usluge", + "Learn": "Naučiti", + "AccountOverview": "Pregled računa", + "MyOrganizations": "Moje organizacije", + "MySupportQuestions": "Moja pitanja podrške", + "MyProfile": "Moj profil", + "Logout": "Odjavite se", + "Home": "Dom", + "Posts": "Postovi", + "Videos": "Video zapisi", + "JoinTheABPCommunity": "Pridružite se ABP zajednici", + "SubmitYourPost": "Pošaljite svoju objavu", + "Modules": "Moduli", + "Tools": "Alati", + "Pricing": "Cijene", + "ChangeLogs": "Dnevnici promjena", + "SubscribeToNewsletter": "Pretplatite se na Newsletter", + "SubscribeToNewsletterDescription": "Primajte informacije o događanjima u ABP-u poput novih izdanja, besplatnih izvora, postova i više.", + "EmailAddress": "Email adresa", + "Subscribe": "Pretplatite se", + "WelcomeToABP": "Dobrodošli u ABP", + "EULA": "EULA", + "ABPCommercialIntroductionMessage": "Unaprijed izgrađeni aplikacijski moduli, napredni predlošci za pokretanje, alati za brzi razvoj aplikacija, profesionalne UI teme i premium podrška.", + "MasteringAbpFrameworkEBook": "Savladavanje ABP okvira", + "MasteringTheABPFrameworkExplanation": "Napisao ju je kreator ABP okvira, a ova će vam knjiga pomoći da steknete potpuno razumijevanje okvira i modernih tehnika razvoja web aplikacija.", + "Speakers": "Zvučnici", + "PreviousEvents": "Prethodni događaji", + "WatchTheEvent": "Pogledajte događaj", + "RegisterNow": "Registriraj se", + "ThereIsNoEvent": "Nema događaja.", + "Events": "Događaji", + "Volo.AbpIo.Domain:080000": "Već postoji kupovna stavka pod nazivom "{Name}"", + "MasteringAbpFrameworkBook": "Knjiga: Ovladavanje ABP okvirom", + "ABPIO-CommonPreferenceDefinition": "Primajte najnovije vijesti o ABP platformi poput novih postova, događaja i više.", + "BuiltOn": "Ugrađeni", + "AbpFramework": "ABP okvir", + "Volo.AbpIo.Domain:080001": "Vrijeme početka ne može biti veće od vremena završetka", + "Enum:BookType:0": "Savladavanje ABP okvira", + "Enum:PurchasePlatform:0": "Amazon", + "Enum:PurchasePlatform:1": "Packt", + "Copied": "Kopirano!", + "CouldNotCopy": "Nije moguće kopirati!", + "CopyNotSupportByYourBrowser": "Ova značajka ne radi u pregledniku koji koristite.", + "City": "Grad", + "ZipCode": "Poštanski broj", + "Address": "Adresa", + "Homepage": "Početna stranica", + "Year": "Godina", + "Year_Plural": "Godine", + "Copyright": "Autorska prava © {1}", + "DomainDrivenDesign": "Dizajn vođen domenom", + "CrossCuttingConcerns": "Međusobne brige", + "AbpCommunity": "ABP zajednica", + "Footer_GithubStarCount": "{0} zvjezdica na GitHubu", + "Footer_NugetDownloadCount": "{0} preuzimanja na NuGet", + "AbpDescription": "ABP je aplikacijski okvir otvorenog koda usmjeren na razvoj web aplikacija temeljen na AspNet Core. Nemojte se ponavljati, usredotočite se na vlastiti poslovni kod.", + "Layout_AbpFramework_MetaTitle": "ABP okvir | Okvir web aplikacije otvorenog koda za ASP.NET Core", + "CommunityTalks_CountdownDays": "dana", + "CommunityTalks_CountdownHours": "sati", + "CommunityTalks_CountdownMinutes": "Min", + "CommunityTalks_CountdownSeconds": "Sek", + "SeePreviousEvents": "Pogledajte prethodne događaje", + "CookieConsent_Accept": "Prihvatiti", + "CookieConsent_Explanation_1": "Koristimo kolačiće kako bismo vam pružili najbolje iskustvo na našoj web stranici.", + "CookieConsent_Explanation_2": "Ako nastavite pregledavati, slažete se s našom politikom privatnosti i politikom kolačića. .", + "Error_Page_400_Title": "Došlo je do problema pri posluživanju tražene stranice.", + "Error_Page_400_Description_1": "To obično znači da je došlo do neočekivane pogreške tijekom obrade vašeg zahtjeva.", + "Error_Page_400_Description_2": "Ako problem potraje, kontaktirajte nas na info@abp.io i pomoći ćemo vam da krenete na put.", + "GoToHomepage": "Idi na početnu stranicu", + "Error_Page_404_Title": "Stranica nije pronađena!", + "Error_Page_404_Description_1": "Ovo nije web stranica koju tražite.", + "Error_Page_500_Title": "Čini se da je nešto pošlo po zlu!", + "Error_Page_500_Description_1": "Automatski pratimo ove pogreške, ali ako se problem nastavi, slobodno to učinite
Kontaktirajte nas. U međuvremenu pokušajte se osvježiti.", + "Error_Page_500_Description_2": "Kontaktirajte nas na info@abp.io .", + "Books": "knjige", + "ABPDiscordServer": "ABP Discord poslužitelj", + "ABPCommunityTalks": "Razgovori ABP zajednice", + "ABPCommunityPosts": "ABP postovi zajednice", + "BuyAndGetMonths": "KUPITE 12 MJESECI, DOBIJATE 14 MJESECI!", + "GetYourDeal": "Dobijte svoju ponudu", + "BuyOrRenewLicense": "Kupite ili obnovite licencu sada i dobit ćete 2 dodatna mjeseca!", + "BuyOrRenewLicenseToGetExtra2Months": "Kupite ili obnovite licencu sada i dobit ćete 2 dodatna mjeseca! POŽURI! ⏰ Zadnji dan: {0}", + "HurryUp": "POŽURI!", + "LastDay": "Zadnji dan: {0}", + "BuyNewLicenseBetweenDatesToGetBenefit": "Kupite novu licencu između {0} i {1} da biste dobili dodatna 2 mjeseca!", + "CheckAllCommunityTalks": "Provjerite sve postove zajednice", + "ReadMore": "Čitaj više", + "ContinueReading": "Nastavi čitati", + "Post": "Post", + "ExploreTheContentsCreatedByTheCoreABPTeamAndTheABPCommunity": "Istražite sadržaje koje je izradio glavni ABP tim i ABP zajednica.", + "WelcomeFallCampaign": "Dobro došli u jesensku kampanju!", + "GiveAwayForNewPurchases": "Obuka za razvoj aplikacija u učionici bit će poklonjena za nove kupnje!", + "BlackFriday": "CRNI PETAK", + "ValidForExistingCustomers": "Također vrijedi za
postojeći kupci!", + "CampaignBetweenDates": "Od {0}
Za {1}", + "SaveUpTo": "UŠTEDITE DO {0}K USD", + "ImplementingDDD": "Implementacija dizajna vođenog domenom", + "ExploreTheEBook": "Istražite e-knjigu", + "ExploreTheBook": "Istražite Knjigu", + "ConsultantType": "Vrsta savjetovanja", + "Expert": "Stručnjak za ABP", + "Partner": "ABP partner", + "Industry": "Industrija", + "Location": "Mjesto", + "Contact": "Kontakt", + "Partner_Year": "Godina partnerstva", + "Info": "Info", + "SpokenLanguages": "Govorni jezici", + "SocialMedia": "Društveni mediji", + "Activity": "Aktivnost", + "Type": "Tip", + "Contribution": "Doprinos", + "WhoWeAre": "Tko smo mi", + "Icons": "Ikone", + "Url": "Url", + "Icon": "Ikona", + "RecentActivities": "Nedavne aktivnosti", + "SpringCampaign": "Dobrodošli
Proljetna rasprodaja!", + "SpringCampaign2": "ograničeno
Ponuda vremena!
", + "AboutUs": "O nama", + "HowItWorks": "Kako radi?", + "ReleaseNotes": "Bilješke o izdanju", + "DetailedChangeNotes": "Detaljne bilješke o promjenama", + "SeeTrainings": "Pogledajte Treninzi", + "NoContent": "Nema sadržaja", + "More": "Više", + "WhyABPIOPlatform": "Zašto ABP.IO platforma?", + "AbpStudio": "ABP studio", + "ExtraMonths": "{0} DODATNIH MJESECI", + "RSS": "RSS", + "RSSFeed": "RSS feed", + "Articles": "Članci", + "Organizations": "organizacije", + "ManageAccount": "Upravljaj računom", + "CommunityProfile": "Profil zajednice", + "BlogProfile": "Blog profil", + "Tickets": "Ulaznice" + } +} \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/hu.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/hu.json index 91b61dd996..74b73630b2 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/hu.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/hu.json @@ -26,6 +26,9 @@ "Volo.AbpIo.Domain:030009": "Felhasználó nem található!", "Volo.AbpIo.Domain:030010": "A próbalicensz megvásárlásához először aktiválnia kell a próbalicenszet!", "Volo.AbpIo.Domain:030011": "A próbalicensz megvásárlásakor nem törölhető!", + "Volo.AbpIo.Domain:030012": "Egy felhasználó csak 1 ingyenes próbaidőszakra jogosult. Már használta próbalicencét.", + "Volo.AbpIo.Domain:030013": "Az aktív licenccel rendelkező felhasználó nem indíthat próbalicencet.", + "Volo.AbpIo.Domain:040000": "A telemetria már létezik!.", "Volo.AbpIo.Domain:070000": "A szervezet neve csak latin betűket, számokat, pontokat és kötőjeleket tartalmazhat!", "Volo.AbpIo.Domain:070001": "A cégnév csak latin betűket, számokat, pontokat, szóközt és kötőjelet tartalmazhat!", "WantToLearn?": "Tanulni akar?", @@ -177,9 +180,55 @@ "BuyNewLicenseBetweenDatesToGetBenefit": "Vásároljon új licencet {0} és {1} között, és további 2 hónapra juthat!", "CheckAllCommunityTalks": "Jelölje be az Összes közösségi bejegyzést", "ReadMore": "Olvass tovább", + "ContinueReading": "Olvasson tovább", "Post": "Hozzászólás", "ExploreTheContentsCreatedByTheCoreABPTeamAndTheABPCommunity": "Fedezze fel a központi ABP csapat és az ABP közösség által létrehozott tartalmakat.", "WelcomeFallCampaign": "Üdvözöljük az őszi kampányban!", - "GiveAwayForNewPurchases": "Az új vásárlásokhoz az Alkalmazásfejlesztési Tantermi Képzést ajándékba adjuk!" + "GiveAwayForNewPurchases": "Az új vásárlásokhoz az Alkalmazásfejlesztési Tantermi Képzést ajándékba adjuk!", + "BlackFriday": "FEKETE PÉNTEK", + "ValidForExistingCustomers": "Érvényes továbbá a
meglévő ügyfelek!", + "CampaignBetweenDates": "innen: {0}
Címzett: {1}", + "SaveUpTo": "AKÁR {0} 000 USD- t takaríthat meg", + "ImplementingDDD": "Domainvezérelt tervezés megvalósítása", + "ExploreTheEBook": "Fedezze fel az e-könyvet", + "ExploreTheBook": "Fedezze fel a Könyvet", + "ConsultantType": "Tanácsadás típusa", + "Expert": "ABP szakértő", + "Partner": "ABP partner", + "Industry": "Ipar", + "Location": "Elhelyezkedés", + "Contact": "Kapcsolatba lépni", + "Partner_Year": "Partnerségi év", + "Info": "Info", + "SpokenLanguages": "Beszélt nyelvek", + "SocialMedia": "Közösségi média", + "Activity": "Tevékenység", + "Type": "típus", + "Contribution": "Hozzájárulás", + "WhoWeAre": "Kik vagyunk", + "Icons": "Ikonok", + "Url": "URL", + "Icon": "Ikon", + "RecentActivities": "Legutóbbi tevékenységek", + "SpringCampaign": "Üdvözöljük
Téli kiárusítás!", + "SpringCampaign2": "Korlátozott
Idő ajánlat!
", + "AboutUs": "Rólunk", + "HowItWorks": "Hogyan működik?", + "ReleaseNotes": "Kiadási megjegyzések", + "DetailedChangeNotes": "Részletes változtatási megjegyzések", + "SeeTrainings": "Lásd: Képzések", + "NoContent": "Nincs tartalom", + "More": "Több", + "WhyABPIOPlatform": "Miért az ABP.IO platform?", + "AbpStudio": "ABP Stúdió", + "ExtraMonths": "{0} EXTRA HÓNAP", + "RSS": "RSS", + "RSSFeed": "RSS Feed", + "Articles": "Cikkek", + "Organizations": "Szervezetek", + "ManageAccount": "Fiók kezelése", + "CommunityProfile": "Közösségi profil", + "BlogProfile": "Blog profil", + "Tickets": "Jegyek" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/is.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/is.json index 8cad00aed1..a356b7bbeb 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/is.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/is.json @@ -14,6 +14,23 @@ "Volo.AbpIo.Domain:020002": "Ekki tókst að eyða þessum NPM pakka vegna þess að \"{Modules} \" einingar nota þennan pakka.", "Volo.AbpIo.Domain:020003": "Gat ekki eytt þessum NPM pakka vegna þess að \"{Modules} \" Modules nota þennan pakka og \"{NugetPackages} \" Nuget pakkar eru háðir þessum pakka.", "Volo.AbpIo.Domain:020004": "Ekki tókst að eyða þessum Nuget pakka vegna þess að \"{Modules} \" einingar eru að nota þennan pakka.", + "Volo.AbpIo.Domain:030000": "Þú hefur þegar lokið prufutímabilinu þínu.", + "Volo.AbpIo.Domain:030001": "Þetta fyrirtækisheiti er þegar til.", + "Volo.AbpIo.Domain:030002": "Þegar það hefur verið virkjað geturðu ekki skipt prufuleyfinu yfir í -beðið- stöðu!", + "Volo.AbpIo.Domain:030003": "Það er engin slík staða!", + "Volo.AbpIo.Domain:030004": "Ekki var hægt að breyta stöðunni vegna óvæntrar villu!", + "Volo.AbpIo.Domain:030005": "Hægt er að uppfæra upphafs- og lokadagsetningu þegar prufuleyfið er í -virkjað- stöðu!", + "Volo.AbpIo.Domain:030006": "Lokadagsetningin verður að vera hærri en upphafsdagsetningin!", + "Volo.AbpIo.Domain:030007": "Þetta prufuleyfi hefur þegar verið virkjað!", + "Volo.AbpIo.Domain:030008": "Kaupdagsetningu er aðeins hægt að stilla þegar staðan er -keypt-!", + "Volo.AbpIo.Domain:030009": "Notandi finnst ekki!", + "Volo.AbpIo.Domain:030010": "Til að kaupa prufuleyfið þarftu fyrst að virkja prufuleyfið þitt!", + "Volo.AbpIo.Domain:030011": "Þú getur ekki eytt reynsluleyfi þegar það er keypt!", + "Volo.AbpIo.Domain:030012": "Notandi á aðeins rétt á að fá 1 ókeypis prufutímabil. Þú hefur þegar notað prufuleyfið þitt.", + "Volo.AbpIo.Domain:030013": "Notandi með virkt leyfi getur ekki hafið prufuleyfi.", + "Volo.AbpIo.Domain:040000": "Fjarmæling er þegar til!.", + "Volo.AbpIo.Domain:070000": "Nafn fyrirtækisins getur aðeins innihaldið latneska stafi, tölustafi, punkta og bandstrik!", + "Volo.AbpIo.Domain:070001": "Nafn fyrirtækisins má aðeins innihalda latneska stafi, tölustafi, punkta, bil og bandstrik!", "WantToLearn?": "Viltu læra?", "ReadyToGetStarted?": "Tilbúin(n) að hefjast handa?", "JoinOurCommunity": "Vertu með í samfélaginu okkar ", @@ -39,6 +56,179 @@ "TrialLicensePeriodHasExpired": "Prófunartímabil þitt rann út fyrir {0} dögum.", "TrialLicensePeriodWillExpire": "Leyfi þitt til prufu mun renna út eftir {0} daga.", "TrialLicensePeriodExpireToday": "Prófsleyfistími þinn rennur út í dag.", - "PurchaseNow": "Kaupa núna!" + "PurchaseNow": "Kaupa núna!", + "LatestReleaseLogs": "Nýjustu útgáfuskrár", + "RoadMap": "Vegakort", + "FAQ": "Algengar spurningar", + "SourceCode": "Upprunakóði", + "SeeAllPosts": "Sjá allar færslur", + "Contribute": "Leggðu til", + "LiveDemo": "Sýning í beinni", + "GetLicense": "Fáðu leyfi", + "OpenSource": "Open Source", + "WebApplication": "Vefforrit", + "MeetTheABP": "Hittu ABP", + "CompleteWebDevelopment": "Algjör vefþróun", + "Platform": "Pallur", + "ABPDescription": "Opinn uppspretta rammi fyrir þróun vefforrita fyrir ASP.NET Core. Það býður upp á fullkomna innviði með því að fylgja bestu starfsvenjum hugbúnaðarþróunar.", + "StrongInfrastructure": "Sterkir innviðir", + "CompleteArchitecture": "Heill byggingarlist", + "DeveloperFocused": "Hönnuður með áherslu", + "ShareYourExperiences": "Deildu reynslu þinni með ABP Framework", + "LatestPosts": "Nýjustu færslur", + "LatestVideos": "Nýjustu myndböndin", + "Views": "Útsýni", + "LearnLatestNewsAboutABPFramework": "Fáðu upplýsingar um atburði í ABP eins og nýjar útgáfur, ókeypis heimildir, færslur og fleira.", + "DeveloperTools": "Verkfæri þróunaraðila", + "StartupTemplates": "Upphafssniðmát", + "ApplicationModules": "Umsóknareiningar", + "UI": "HÍ", + "Themes": "Þemu", + "Premium": "Premium", + "PrivacyPolicy": "Friðhelgisstefna", + "TermsAndConditions": "Skilmálar", + "WouldLikeToReceiveMarketingMaterials": "Mig langar að fá markaðsefni eins og vörutilboð og sértilboð.", + "JoinOurMarketingNewsletter": "Skráðu þig í markaðsfréttabréfið okkar", + "CommunityPrivacyPolicyConfirmation": "Ég samþykki skilmálana og persónuverndarstefnuna .", + "WouldLikeToReceiveNotification": "Mig langar að fá nýjustu fréttir frá abp.io vefsíðum.", + "CommercialNewsletterConfirmationMessage": "Ég samþykki skilmálana og persónuverndarstefnuna .", + "FreeDDDEBook": "Ókeypis DDD rafbók", + "AdditionalServices": "Auka þjónusta", + "Learn": "Læra", + "AccountOverview": "Yfirlit yfir reikning", + "MyOrganizations": "Samtökin mín", + "MySupportQuestions": "Stuðningsspurningar mínar", + "MyProfile": "Prófílinn minn", + "Logout": "Að skrá þig út", + "Home": "Heim", + "Posts": "Færslur", + "Videos": "Myndbönd", + "JoinTheABPCommunity": "Skráðu þig í ABP samfélagið", + "SubmitYourPost": "Sendu færsluna þína", + "Modules": "Einingar", + "Tools": "Verkfæri", + "Pricing": "Verðlag", + "ChangeLogs": "Breyta logs", + "SubscribeToNewsletter": "Gerast áskrifandi að fréttabréfinu", + "SubscribeToNewsletterDescription": "Fáðu upplýsingar um atburði í ABP eins og nýjar útgáfur, ókeypis heimildir, færslur og fleira.", + "EmailAddress": "Netfang", + "Subscribe": "Gerast áskrifandi", + "WelcomeToABP": "Velkomin í ABP", + "EULA": "EULA", + "ABPCommercialIntroductionMessage": "Forsmíðaðar forritaeiningar, háþróuð ræsingarsniðmát, hröð forritaþróunarverkfæri, fagleg viðmótsþemu og úrvalsstuðningur.", + "MasteringAbpFrameworkEBook": "Að ná tökum á ABP Framework", + "MasteringTheABPFrameworkExplanation": "Þessi bók er skrifuð af skapara ABP Framework og mun hjálpa þér að öðlast fullkominn skilning á rammanum og nútíma þróunartækni vefforrita.", + "Speakers": "Hátalarar", + "PreviousEvents": "Fyrri viðburðir", + "WatchTheEvent": "Horfðu á viðburðinn", + "RegisterNow": "Skráðu þig núna", + "ThereIsNoEvent": "Það er enginn viðburður.", + "Events": "Viðburðir", + "Volo.AbpIo.Domain:080000": "Það er þegar til innkaupavara sem heitir "{Name}"", + "MasteringAbpFrameworkBook": "Bók: Mastering ABP Framework", + "ABPIO-CommonPreferenceDefinition": "Fáðu nýjustu fréttir um ABP Platform eins og nýjar færslur, viðburði og fleira.", + "BuiltOn": "Innbyggður", + "AbpFramework": "ABP ramma", + "Volo.AbpIo.Domain:080001": "Upphafstími má ekki vera lengri en lokatími", + "Enum:BookType:0": "Að ná tökum á ABP Framework", + "Enum:PurchasePlatform:0": "Amazon", + "Enum:PurchasePlatform:1": "Packt", + "Copied": "Afritað!", + "CouldNotCopy": "Gat ekki afritað!", + "CopyNotSupportByYourBrowser": "Þessi eiginleiki virkar ekki í vafranum sem þú ert að nota.", + "City": "Borg", + "ZipCode": "Póstnúmer", + "Address": "Heimilisfang", + "Homepage": "Heimasíða", + "Year": "Ár", + "Year_Plural": "Ár", + "Copyright": "Höfundarréttur © {1}", + "DomainDrivenDesign": "Lénsdrifin hönnun", + "CrossCuttingConcerns": "Áhyggjur af krossskurði", + "AbpCommunity": "ABP samfélag", + "Footer_GithubStarCount": "{0} Stjörnur á GitHub", + "Footer_NugetDownloadCount": "{0} Niðurhal á NuGet", + "AbpDescription": "ABP er opinn hugbúnaðarrammi sem einbeitir sér að AspNet Core byggðri vefforritaþróun. Ekki endurtaka sjálfan þig, einbeittu þér að eigin viðskiptakóða.", + "Layout_AbpFramework_MetaTitle": "ABP Framework | Opinn uppspretta vefforritsramma fyrir ASP.NET Core", + "CommunityTalks_CountdownDays": "Dagar", + "CommunityTalks_CountdownHours": "Kl", + "CommunityTalks_CountdownMinutes": "Min", + "CommunityTalks_CountdownSeconds": "Sec", + "SeePreviousEvents": "Sjá fyrri viðburði", + "CookieConsent_Accept": "Samþykkja", + "CookieConsent_Explanation_1": "Við notum vafrakökur til að veita þér bestu upplifunina á vefsíðunni okkar.", + "CookieConsent_Explanation_2": "Ef þú heldur áfram að vafra, þá samþykkir þú persónuverndarstefnu okkar og stefnu um vafrakökur. .", + "Error_Page_400_Title": "Vandamál kom upp við að þjóna umbeðinni síðu.", + "Error_Page_400_Description_1": "Venjulega þýðir þetta að óvænt villa kom upp við vinnslu beiðni þinnar.", + "Error_Page_400_Description_2": "Ef vandamálið er viðvarandi, hafðu samband við okkur á info@abp.io og við aðstoðum þig á leiðinni.", + "GoToHomepage": "Farðu á heimasíðuna", + "Error_Page_404_Title": "Síða ekki fundin!", + "Error_Page_404_Description_1": "Þetta er ekki vefsíðan sem þú ert að leita að.", + "Error_Page_500_Title": "Svo virðist sem eitthvað hafi farið úrskeiðis!", + "Error_Page_500_Description_1": "Við rekjum þessar villur sjálfkrafa, en ef vandamálið er viðvarandi skaltu ekki hika við að gera það
Hafðu samband við okkur. Í millitíðinni, reyndu að hressa.", + "Error_Page_500_Description_2": "Hafðu samband við okkur á info@abp.io .", + "Books": "Bækur", + "ABPDiscordServer": "ABP Discord þjónn", + "ABPCommunityTalks": "ABP samfélagsviðræður", + "ABPCommunityPosts": "ABP samfélagsfærslur", + "BuyAndGetMonths": "KAUPA 12 MÁNUÐI, FÁÐU 14 MÁNUÐI!", + "GetYourDeal": "Fáðu tilboðið þitt", + "BuyOrRenewLicense": "Kauptu eða endurnýjaðu leyfi núna og fáðu 2 mánuði til viðbótar!", + "BuyOrRenewLicenseToGetExtra2Months": "Kauptu eða endurnýjaðu leyfi núna og fáðu 2 mánuði til viðbótar! FLÝTTU ÞÉR! ⏰ Síðasti dagur: {0}", + "HurryUp": "FLÝTTU ÞÉR!", + "LastDay": "Síðasti dagur: {0}", + "BuyNewLicenseBetweenDatesToGetBenefit": "Kauptu nýtt leyfi á milli {0} og {1} til að fá fríðindi í 2 mánuði til viðbótar!", + "CheckAllCommunityTalks": "Athugaðu allar samfélagsfærslur", + "ReadMore": "Lestu meira", + "ContinueReading": "Halda áfram að lesa", + "Post": "Post", + "ExploreTheContentsCreatedByTheCoreABPTeamAndTheABPCommunity": "Kannaðu innihaldið sem búið er til af kjarna ABP teyminu og ABP samfélaginu.", + "WelcomeFallCampaign": "Velkomin haustherferð!", + "GiveAwayForNewPurchases": "Umsóknaþróun kennslustofuþjálfun verður gefin fyrir nýju kaupin!", + "BlackFriday": "SVARTUR FÖSTUDAGUR", + "ValidForExistingCustomers": "Gildir einnig fyrir
núverandi viðskiptavinir!", + "CampaignBetweenDates": "Frá {0}
Til {1}", + "SaveUpTo": "SPARAÐU ALLT AÐ ${0}K", + "ImplementingDDD": "Innleiðing lénsdrifna hönnunar", + "ExploreTheEBook": "Skoðaðu rafbókina", + "ExploreTheBook": "Kanna bókina", + "ConsultantType": "Tegund ráðgjafar", + "Expert": "ABP sérfræðingur", + "Partner": "ABP samstarfsaðili", + "Industry": "Iðnaður", + "Location": "Staðsetning", + "Contact": "Hafðu samband", + "Partner_Year": "Samstarfsár", + "Info": "Upplýsingar", + "SpokenLanguages": "Töluð tungumál", + "SocialMedia": "Samfélagsmiðlar", + "Activity": "Virkni", + "Type": "Gerð", + "Contribution": "Framlag", + "WhoWeAre": "Hver við erum", + "Icons": "Táknmyndir", + "Url": "Url", + "Icon": "Táknmynd", + "RecentActivities": "Nýlegar athafnir", + "SpringCampaign": "Velkominn
Vorútsala!", + "SpringCampaign2": "Takmarkað
Tímatilboð!
", + "AboutUs": "Um okkur", + "HowItWorks": "Hvernig það virkar?", + "ReleaseNotes": "Útgáfuskýringar", + "DetailedChangeNotes": "Ítarlegar athugasemdir við breytingar", + "SeeTrainings": "Sjá Þjálfun", + "NoContent": "Ekkert efni", + "More": "Meira", + "WhyABPIOPlatform": "Af hverju ABP.IO pallur?", + "AbpStudio": "ABP stúdíó", + "ExtraMonths": "{0} AUKA MÁNUÐIR", + "RSS": "RSS", + "RSSFeed": "RSS straumur", + "Articles": "Greinar", + "Organizations": "Samtök", + "ManageAccount": "Stjórna reikningi", + "CommunityProfile": "Samfélagssnið", + "BlogProfile": "Bloggprófíll", + "Tickets": "Miðar" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/it.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/it.json index 68ff703bdf..0c8eb10bf4 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/it.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/it.json @@ -14,6 +14,23 @@ "Volo.AbpIo.Domain:020002": "Impossibile eliminare questo pacchetto NPM perché i moduli \"{Modules}\" utilizzano questo pacchetto.", "Volo.AbpIo.Domain:020003": "Impossibile eliminare questo pacchetto NPM perché i moduli \"{Modules}\" utilizzano questo pacchetto e i pacchetti Nuget \"{NugetPackages}\" dipendono da questo pacchetto.", "Volo.AbpIo.Domain:020004": "Impossibile eliminare questo pacchetto Nuget perché i moduli \"{Modules}\" utilizzano questo pacchetto.", + "Volo.AbpIo.Domain:030000": "Hai già completato il periodo di prova.", + "Volo.AbpIo.Domain:030001": "Questo nome di organizzazione esiste già.", + "Volo.AbpIo.Domain:030002": "Una volta attivata, non è possibile passare la licenza di prova allo stato -richiesto-!", + "Volo.AbpIo.Domain:030003": "Non esiste uno status del genere!", + "Volo.AbpIo.Domain:030004": "Impossibile modificare lo stato a causa di un errore imprevisto!", + "Volo.AbpIo.Domain:030005": "La data di inizio e fine può essere aggiornata quando la licenza di prova è nello stato -attivata-!", + "Volo.AbpIo.Domain:030006": "La data di fine deve essere successiva alla data di inizio!", + "Volo.AbpIo.Domain:030007": "Questa licenza di prova è già stata attivata!", + "Volo.AbpIo.Domain:030008": "La data di acquisto può essere impostata solo quando lo stato è -acquistato-!", + "Volo.AbpIo.Domain:030009": "Utente non trovato!", + "Volo.AbpIo.Domain:030010": "Per acquistare la licenza di prova, devi prima attivare la licenza di prova!", + "Volo.AbpIo.Domain:030011": "Non è possibile eliminare una licenza di prova una volta acquistata!", + "Volo.AbpIo.Domain:030012": "Un utente ha diritto ad avere solo 1 periodo di prova gratuito. Hai già utilizzato la licenza di prova.", + "Volo.AbpIo.Domain:030013": "Un utente con una licenza attiva non può avviare una licenza di prova.", + "Volo.AbpIo.Domain:040000": "La telemetria esiste già!.", + "Volo.AbpIo.Domain:070000": "Il nome dell'organizzazione può contenere solo lettere latine, numeri, punti e trattini!", + "Volo.AbpIo.Domain:070001": "Il nome dell'azienda può contenere solo lettere latine, numeri, punti, spazi e trattini!", "WantToLearn?": "Vuoi imparare?", "ReadyToGetStarted?": "Pronto per iniziare?", "JoinOurCommunity": "Unisciti alla nostra community", @@ -39,6 +56,179 @@ "TrialLicensePeriodHasExpired": "Il periodo della tua licenza di prova è scaduto {0} giorni fa.", "TrialLicensePeriodWillExpire": "Il periodo della tua licenza di prova scadrà tra {0} giorni.", "TrialLicensePeriodExpireToday": "Il periodo di licenza di prova scadrà oggi.", - "PurchaseNow": "Acquista adesso!" + "PurchaseNow": "Acquista adesso!", + "LatestReleaseLogs": "Registri delle ultime versioni", + "RoadMap": "Carta stradale", + "FAQ": "FAQ", + "SourceCode": "Codice sorgente", + "SeeAllPosts": "Vedi tutti i post", + "Contribute": "Contribuire", + "LiveDemo": "Dimostrazione dal vivo", + "GetLicense": "Ottieni una licenza", + "OpenSource": "Open Source", + "WebApplication": "Applicazione web", + "MeetTheABP": "Incontra l'ABP", + "CompleteWebDevelopment": "Uno sviluppo Web completo", + "Platform": "piattaforma", + "ABPDescription": "Un framework open source per lo sviluppo di applicazioni Web per ASP.NET Core. Offre un'infrastruttura completa seguendo le migliori pratiche di sviluppo software.", + "StrongInfrastructure": "Forte infrastruttura", + "CompleteArchitecture": "Architettura completa", + "DeveloperFocused": "Focalizzato sullo sviluppatore", + "ShareYourExperiences": "Condividi le tue esperienze con il Framework ABP", + "LatestPosts": "ultimi post", + "LatestVideos": "Ultimi video", + "Views": "Visualizzazioni", + "LearnLatestNewsAboutABPFramework": "Ottieni informazioni sugli eventi in ABP come nuove versioni, fonti gratuite, post e altro ancora.", + "DeveloperTools": "Strumenti di sviluppo", + "StartupTemplates": "Modelli di avvio", + "ApplicationModules": "Moduli applicativi", + "UI": "interfaccia utente", + "Themes": "Temi", + "Premium": "Premio", + "PrivacyPolicy": "politica sulla riservatezza", + "TermsAndConditions": "Termini & Condizioni", + "WouldLikeToReceiveMarketingMaterials": "Desidero ricevere materiale di marketing come offerte di prodotti e offerte speciali.", + "JoinOurMarketingNewsletter": "Iscriviti alla nostra newsletter di marketing", + "CommunityPrivacyPolicyConfirmation": "Accetto i Termini e Condizioni e l'Informativa sulla Privacy .", + "WouldLikeToReceiveNotification": "Desidero ricevere le ultime notizie dai siti Web abp.io.", + "CommercialNewsletterConfirmationMessage": "Accetto i Termini e Condizioni e l'Informativa sulla Privacy .", + "FreeDDDEBook": "E-Book DDD gratuito", + "AdditionalServices": "Servizi aggiuntivi", + "Learn": "Imparare", + "AccountOverview": "Panoramica dell'Account", + "MyOrganizations": "Le mie organizzazioni", + "MySupportQuestions": "Le mie domande di supporto", + "MyProfile": "Il mio profilo", + "Logout": "Disconnettersi", + "Home": "Casa", + "Posts": "Messaggi", + "Videos": "Video", + "JoinTheABPCommunity": "Unisciti alla comunità ABP", + "SubmitYourPost": "Invia il tuo messaggio", + "Modules": "Moduli", + "Tools": "Utensili", + "Pricing": "Prezzi", + "ChangeLogs": "Registri delle modifiche", + "SubscribeToNewsletter": "Iscriviti alla Newsletter", + "SubscribeToNewsletterDescription": "Ottieni informazioni sugli eventi in ABP come nuove versioni, fonti gratuite, post e altro ancora.", + "EmailAddress": "Indirizzo e-mail", + "Subscribe": "sottoscrivi", + "WelcomeToABP": "Benvenuti all'ABP", + "EULA": "EULA", + "ABPCommercialIntroductionMessage": "Moduli applicativi predefiniti, modelli di avvio avanzati, strumenti per lo sviluppo rapido di applicazioni, temi dell'interfaccia utente professionali e supporto premium.", + "MasteringAbpFrameworkEBook": "Padroneggiare il quadro ABP", + "MasteringTheABPFrameworkExplanation": "Scritto dal creatore del framework ABP, questo libro ti aiuterà ad acquisire una comprensione completa del framework e delle moderne tecniche di sviluppo di applicazioni web.", + "Speakers": "Altoparlanti", + "PreviousEvents": "Eventi precedenti", + "WatchTheEvent": "Guarda l'evento", + "RegisterNow": "Iscriviti ora", + "ThereIsNoEvent": "Non c'è nessun evento.", + "Events": "Eventi", + "Volo.AbpIo.Domain:080000": "Esiste già un articolo di acquisto denominato "{Name}"", + "MasteringAbpFrameworkBook": "Libro: Padroneggiare il quadro ABP", + "ABPIO-CommonPreferenceDefinition": "Ricevi le ultime notizie sulla piattaforma ABP come nuovi post, eventi e altro ancora.", + "BuiltOn": "Costruita su", + "AbpFramework": "Quadro ABP", + "Volo.AbpIo.Domain:080001": "L'ora di inizio non può essere maggiore dell'ora di fine", + "Enum:BookType:0": "Padroneggiare il quadro ABP", + "Enum:PurchasePlatform:0": "Amazzonia", + "Enum:PurchasePlatform:1": "Pacchetto", + "Copied": "Copiato!", + "CouldNotCopy": "Non poteva copiare!", + "CopyNotSupportByYourBrowser": "Questa funzionalità non funziona nel browser che stai utilizzando.", + "City": "Città", + "ZipCode": "Cap", + "Address": "Indirizzo", + "Homepage": "Home page", + "Year": "Anno", + "Year_Plural": "Anni", + "Copyright": "Diritto d'autore © {1}", + "DomainDrivenDesign": "Progettazione guidata dal dominio", + "CrossCuttingConcerns": "Preoccupazioni trasversali", + "AbpCommunity": "Comunità ABP", + "Footer_GithubStarCount": "{0} Stelle su GitHub", + "Footer_NugetDownloadCount": "{0} download su NuGet", + "AbpDescription": "ABP è un framework applicativo open source incentrato sullo sviluppo di applicazioni Web basate su AspNet Core. Non ripeterti, concentrati sul tuo codice aziendale.", + "Layout_AbpFramework_MetaTitle": "Quadro ABP | Framework di applicazioni Web open source per ASP.NET Core", + "CommunityTalks_CountdownDays": "Giorni", + "CommunityTalks_CountdownHours": "Ore", + "CommunityTalks_CountdownMinutes": "minimo", + "CommunityTalks_CountdownSeconds": "Sez", + "SeePreviousEvents": "Vedi Eventi precedenti", + "CookieConsent_Accept": "Accettare", + "CookieConsent_Explanation_1": "Utilizziamo i cookie per offrirti la migliore esperienza sul nostro sito web.", + "CookieConsent_Explanation_2": "Se continui a navigare, accetti la nostra politica sulla privacy e la politica sui cookie. .", + "Error_Page_400_Title": "Si è verificato un problema nel servire la pagina richiesta.", + "Error_Page_400_Description_1": "Di solito questo significa che si è verificato un errore imprevisto durante l'elaborazione della richiesta.", + "Error_Page_400_Description_2": "Se il problema persiste, contattaci all'indirizzo info@abp.io e ti aiuteremo a ripartire.", + "GoToHomepage": "Vai alla pagina principale", + "Error_Page_404_Title": "Pagina non trovata!", + "Error_Page_404_Description_1": "Questa non è la pagina web che stai cercando.", + "Error_Page_500_Title": "Sembra che qualcosa sia andato storto!", + "Error_Page_500_Description_1": "Teniamo traccia di questi errori automaticamente, ma se il problema persiste, sentiti libero di farlo
Contattaci. Nel frattempo prova ad aggiornare.", + "Error_Page_500_Description_2": "Contattaci a info@abp.io .", + "Books": "Libri", + "ABPDiscordServer": "Server Discord ABP", + "ABPCommunityTalks": "Colloqui della comunità ABP", + "ABPCommunityPosts": "Post della community ABP", + "BuyAndGetMonths": "ACQUISTA 12 MESI, OTTIENI 14 MESI!", + "GetYourDeal": "Ottieni il tuo accordo", + "BuyOrRenewLicense": "Acquista o rinnova la licenza adesso e ottieni 2 mesi extra!", + "BuyOrRenewLicenseToGetExtra2Months": "Acquista o rinnova la licenza adesso e ottieni 2 mesi extra! AFFRETTARSI! ⏰ Ultimo giorno: {0}", + "HurryUp": "AFFRETTARSI!", + "LastDay": "Ultimo giorno: {0}", + "BuyNewLicenseBetweenDatesToGetBenefit": "Acquista una nuova licenza tra il giorno {0} e il giorno {1} per ottenere vantaggi per 2 mesi extra!", + "CheckAllCommunityTalks": "Controlla tutti i post della community", + "ReadMore": "Per saperne di più", + "ContinueReading": "Continua a leggere", + "Post": "Inviare", + "ExploreTheContentsCreatedByTheCoreABPTeamAndTheABPCommunity": "Esplora i contenuti creati dal team principale ABP e dalla comunità ABP.", + "WelcomeFallCampaign": "Benvenuto campagna autunnale!", + "GiveAwayForNewPurchases": "Per i nuovi acquisti sarà regalata la formazione in aula sullo sviluppo di applicazioni!", + "BlackFriday": "VENERDÌ NERO", + "ValidForExistingCustomers": "Valido anche per il
clienti esistenti!", + "CampaignBetweenDates": "Da {0}
A {1}", + "SaveUpTo": "RISPARMIA FINO A ${0}K", + "ImplementingDDD": "Implementazione della progettazione basata sul dominio", + "ExploreTheEBook": "Esplora l'e-book", + "ExploreTheBook": "Esplora il libro", + "ConsultantType": "Tipo di consulenza", + "Expert": "Esperto ABP", + "Partner": "Socio dell'ABP", + "Industry": "Industria", + "Location": "Posizione", + "Contact": "Contatto", + "Partner_Year": "Anno di partenariato", + "Info": "Informazioni", + "SpokenLanguages": "Lingue parlate", + "SocialMedia": "Mezzi sociali", + "Activity": "Attività", + "Type": "Tipo", + "Contribution": "Contributo", + "WhoWeAre": "Chi siamo", + "Icons": "Icone", + "Url": "URL", + "Icon": "Icona", + "RecentActivities": "Attività recenti", + "SpringCampaign": "Benvenuto
Saldi di primavera!", + "SpringCampaign2": "Limitato
Offerta a tempo!
", + "AboutUs": "Chi siamo", + "HowItWorks": "Come funziona?", + "ReleaseNotes": "Note di rilascio", + "DetailedChangeNotes": "Note dettagliate sulle modifiche", + "SeeTrainings": "Vedi Corsi di formazione", + "NoContent": "Nessun contenuto", + "More": "Di più", + "WhyABPIOPlatform": "Perché la piattaforma ABP.IO?", + "AbpStudio": "Studio ABP", + "ExtraMonths": "{0} MESI IN PIÙ", + "RSS": "RSS", + "RSSFeed": "RSS Feed", + "Articles": "Articoli", + "Organizations": "Organizzazioni", + "ManageAccount": "Gestisci profilo", + "CommunityProfile": "Profilo della comunità", + "BlogProfile": "Profilo del blog", + "Tickets": "Biglietti" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/nl.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/nl.json index 0863eb0bba..c0d0d1393e 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/nl.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/nl.json @@ -14,6 +14,23 @@ "Volo.AbpIo.Domain:020002": "Kan dit NPM-pakket niet verwijderen omdat \"{Modules}\"-modules dit pakket gebruiken.", "Volo.AbpIo.Domain:020003": "Kan dit NPM-pakket niet verwijderen omdat \"{Modules}\"-modules dit pakket gebruiken en \"{NugetPackages}\" Nuget-pakketten afhankelijk zijn van dit pakket.", "Volo.AbpIo.Domain:020004": "Kan dit Nuget-pakket niet verwijderen omdat \"{Modules}\"-modules dit pakket gebruiken.", + "Volo.AbpIo.Domain:030000": "Je proefperiode is al afgelopen.", + "Volo.AbpIo.Domain:030001": "Deze organisatienaam bestaat al.", + "Volo.AbpIo.Domain:030002": "Eenmaal geactiveerd, kunt u de proeflicentie niet meer naar de status -aangevraagd- zetten!", + "Volo.AbpIo.Domain:030003": "Zo'n status bestaat niet!", + "Volo.AbpIo.Domain:030004": "Status kon niet worden gewijzigd vanwege een onverwachte fout!", + "Volo.AbpIo.Domain:030005": "Start- en einddatum kunnen worden bijgewerkt wanneer de proeflicentie de status -geactiveerd- heeft!", + "Volo.AbpIo.Domain:030006": "De einddatum moet groter zijn dan de startdatum!", + "Volo.AbpIo.Domain:030007": "Deze proeflicentie is al geactiveerd!", + "Volo.AbpIo.Domain:030008": "De aankoopdatum kan alleen worden ingesteld als de status -aangekocht- is!", + "Volo.AbpIo.Domain:030009": "Gebruiker niet gevonden!", + "Volo.AbpIo.Domain:030010": "Om de proeflicentie aan te schaffen, moet u eerst uw proeflicentie activeren!", + "Volo.AbpIo.Domain:030011": "U kunt een proeflicentie niet verwijderen wanneer deze is aangeschaft!", + "Volo.AbpIo.Domain:030012": "Een gebruiker heeft recht op slechts 1 gratis proefperiode. U heeft uw proeflicentie al gebruikt.", + "Volo.AbpIo.Domain:030013": "Een gebruiker met een actieve licentie kan geen proeflicentie starten.", + "Volo.AbpIo.Domain:040000": "Telemetrie bestaat al!.", + "Volo.AbpIo.Domain:070000": "De naam van de organisatie mag alleen Latijnse letters, cijfers, punten en koppeltekens bevatten!", + "Volo.AbpIo.Domain:070001": "De bedrijfsnaam mag alleen Latijnse letters, cijfers, punten, spatie en koppeltekens bevatten!", "WantToLearn?": "Willen leren?", "ReadyToGetStarted?": "klaar om te beginnen?", "JoinOurCommunity": "Sluit je aan bij onze gemeenschap", @@ -39,6 +56,179 @@ "TrialLicensePeriodHasExpired": "Uw proeflicentieperiode is {0} dagen geleden verlopen.", "TrialLicensePeriodWillExpire": "Uw proeflicentieperiode is over {0} dagen verlopen.", "TrialLicensePeriodExpireToday": "Uw proeflicentieperiode loopt vandaag af.", - "PurchaseNow": "Koop nu!" + "PurchaseNow": "Koop nu!", + "LatestReleaseLogs": "Laatste releaselogboeken", + "RoadMap": "Wegenkaart", + "FAQ": "FAQ", + "SourceCode": "Broncode", + "SeeAllPosts": "Bekijk alle berichten", + "Contribute": "Bijdragen", + "LiveDemo": "Live demonstratie", + "GetLicense": "Verkrijg een licentie", + "OpenSource": "Open source", + "WebApplication": "Web applicatie", + "MeetTheABP": "Maak kennis met het ABP", + "CompleteWebDevelopment": "Een complete webontwikkeling", + "Platform": "Platform", + "ABPDescription": "Een open-source raamwerk voor de ontwikkeling van webapplicaties voor ASP.NET Core. Het biedt een complete infrastructuur door de best practices van softwareontwikkeling te volgen.", + "StrongInfrastructure": "Sterke infrastructuur", + "CompleteArchitecture": "Volledige architectuur", + "DeveloperFocused": "Ontwikkelaar gericht", + "ShareYourExperiences": "Deel uw ervaringen met het ABP Framework", + "LatestPosts": "Laatste berichten", + "LatestVideos": "Nieuwste video's", + "Views": "Keer bekeken", + "LearnLatestNewsAboutABPFramework": "Krijg informatie over gebeurtenissen in ABP, zoals nieuwe releases, gratis bronnen, berichten en meer.", + "DeveloperTools": "Ontwikkelaarstools", + "StartupTemplates": "Opstartsjablonen", + "ApplicationModules": "Applicatiemodules", + "UI": "gebruikersinterface", + "Themes": "Thema's", + "Premium": "Premie", + "PrivacyPolicy": "Privacybeleid", + "TermsAndConditions": "algemene voorwaarden", + "WouldLikeToReceiveMarketingMaterials": "Ik wil graag marketingmateriaal ontvangen, zoals productaanbiedingen en speciale aanbiedingen.", + "JoinOurMarketingNewsletter": "Schrijf u in voor onze marketingnieuwsbrief", + "CommunityPrivacyPolicyConfirmation": "Ik ga akkoord met de Algemene Voorwaarden en het Privacybeleid .", + "WouldLikeToReceiveNotification": "Ik wil graag het laatste nieuws van abp.io-websites ontvangen.", + "CommercialNewsletterConfirmationMessage": "Ik ga akkoord met de Algemene Voorwaarden en het Privacybeleid .", + "FreeDDDEBook": "Gratis DDD e-boek", + "AdditionalServices": "Aanvullende diensten", + "Learn": "Leren", + "AccountOverview": "account overzicht", + "MyOrganizations": "Mijn organisaties", + "MySupportQuestions": "Mijn ondersteuningsvragen", + "MyProfile": "Mijn profiel", + "Logout": "Uitloggen", + "Home": "Thuis", + "Posts": "Berichten", + "Videos": "Videos", + "JoinTheABPCommunity": "Sluit u aan bij de ABP-gemeenschap", + "SubmitYourPost": "Dien uw bericht in", + "Modules": "Modules", + "Tools": "Hulpmiddelen", + "Pricing": "Prijzen", + "ChangeLogs": "Wijzig logboeken", + "SubscribeToNewsletter": "Abonneer u op de nieuwsbrief", + "SubscribeToNewsletterDescription": "Krijg informatie over gebeurtenissen in ABP, zoals nieuwe releases, gratis bronnen, berichten en meer.", + "EmailAddress": "E-mailadres", + "Subscribe": "Abonneren", + "WelcomeToABP": "Welkom bij het ABP", + "EULA": "EULA", + "ABPCommercialIntroductionMessage": "Vooraf gebouwde applicatiemodules, geavanceerde opstartsjablonen, snelle applicatie-ontwikkelingstools, professionele UI-thema's en premium ondersteuning.", + "MasteringAbpFrameworkEBook": "Beheersen van het ABP-framework", + "MasteringTheABPFrameworkExplanation": "Dit boek, geschreven door de maker van het ABP Framework, zal u helpen een volledig inzicht te krijgen in het raamwerk en moderne technieken voor de ontwikkeling van webapplicaties.", + "Speakers": "Luidsprekers", + "PreviousEvents": "Vorige evenementen", + "WatchTheEvent": "Bekijk het evenement", + "RegisterNow": "Registreer nu", + "ThereIsNoEvent": "Er is geen evenement.", + "Events": "Evenementen", + "Volo.AbpIo.Domain:080000": "Er is al een aankoopitem met de naam '{Name}'", + "MasteringAbpFrameworkBook": "Boek: Mastering ABP Framework", + "ABPIO-CommonPreferenceDefinition": "Ontvang het laatste nieuws over het ABP Platform, zoals nieuwe berichten, evenementen en meer.", + "BuiltOn": "Gebouwd op", + "AbpFramework": "ABP-kader", + "Volo.AbpIo.Domain:080001": "De starttijd kan niet groter zijn dan de eindtijd", + "Enum:BookType:0": "Beheersen van het ABP-framework", + "Enum:PurchasePlatform:0": "Amazone", + "Enum:PurchasePlatform:1": "Verpakt", + "Copied": "Gekopieerd!", + "CouldNotCopy": "Kan niet kopiëren!", + "CopyNotSupportByYourBrowser": "Deze functie werkt niet in de browser die u gebruikt.", + "City": "Stad", + "ZipCode": "Postcode", + "Address": "Adres", + "Homepage": "Startpagina", + "Year": "Jaar", + "Year_Plural": "Jaren", + "Copyright": "Auteursrecht © {1}", + "DomainDrivenDesign": "Domeingestuurd ontwerp", + "CrossCuttingConcerns": "Transversale zorgen", + "AbpCommunity": "ABP-gemeenschap", + "Footer_GithubStarCount": "{0} Sterren op GitHub", + "Footer_NugetDownloadCount": "{0} Downloads op NuGet", + "AbpDescription": "ABP is een open source applicatieframework gericht op de ontwikkeling van op AspNet Core gebaseerde webapplicaties. Herhaal uzelf niet, maar concentreer u op uw eigen bedrijfscode.", + "Layout_AbpFramework_MetaTitle": "ABP-framework | Open source webapplicatieframework voor ASP.NET Core", + "CommunityTalks_CountdownDays": "Dagen", + "CommunityTalks_CountdownHours": "Uur", + "CommunityTalks_CountdownMinutes": "Min", + "CommunityTalks_CountdownSeconds": "Sec", + "SeePreviousEvents": "Zie Vorige Evenementen", + "CookieConsent_Accept": "Aanvaarden", + "CookieConsent_Explanation_1": "Wij gebruiken cookies om u de beste ervaring op onze website te geven.", + "CookieConsent_Explanation_2": "Als u doorgaat met browsen, gaat u akkoord met ons Privacybeleid en cookiebeleid. .", + "Error_Page_400_Title": "Er is een probleem opgetreden bij het weergeven van de opgevraagde pagina.", + "Error_Page_400_Description_1": "Meestal betekent dit dat er een onverwachte fout is opgetreden tijdens het verwerken van uw verzoek.", + "Error_Page_400_Description_2": "Als het probleem zich blijft voordoen, neem dan contact met ons op via info@abp.io en wij helpen u op weg.", + "GoToHomepage": "Ga naar homepagina", + "Error_Page_404_Title": "Pagina niet gevonden!", + "Error_Page_404_Description_1": "Dit is niet de webpagina die u zoekt.", + "Error_Page_500_Title": "Het lijkt erop dat er iets mis is gegaan!", + "Error_Page_500_Description_1": "We volgen deze fouten automatisch, maar als het probleem zich blijft voordoen, kunt u dat gerust doen
Neem contact met ons op. Probeer in de tussentijd te vernieuwen.", + "Error_Page_500_Description_2": "Neem contact met ons op via info@abp.io .", + "Books": "Boeken", + "ABPDiscordServer": "ABP Discord-server", + "ABPCommunityTalks": "ABP-gemeenschapsgesprekken", + "ABPCommunityPosts": "ABP-communityberichten", + "BuyAndGetMonths": "KOOP 12 MAANDEN, ONTVANG 14 MAANDEN!", + "GetYourDeal": "Ontvang uw deal", + "BuyOrRenewLicense": "Koop of verleng nu uw licentie en ontvang 2 extra maanden!", + "BuyOrRenewLicenseToGetExtra2Months": "Koop of verleng nu uw licentie en ontvang 2 extra maanden! HAAST JE! ⏰ Laatste dag: {0}", + "HurryUp": "HAAST JE!", + "LastDay": "Laatste dag: {0}", + "BuyNewLicenseBetweenDatesToGetBenefit": "Koop een nieuwe licentie tussen {0} en {1} en profiteer nog eens twee maanden!", + "CheckAllCommunityTalks": "Controleer alle communityposts", + "ReadMore": "Lees verder", + "ContinueReading": "Lees verder", + "Post": "Na", + "ExploreTheContentsCreatedByTheCoreABPTeamAndTheABPCommunity": "Ontdek de inhoud die is gemaakt door het kernteam van ABP en de ABP-gemeenschap.", + "WelcomeFallCampaign": "Welkom herfstcampagne!", + "GiveAwayForNewPurchases": "Voor de nieuwe aankopen wordt een klassikale training voor applicatieontwikkeling weggegeven!", + "BlackFriday": "ZWARTE VRIJDAG", + "ValidForExistingCustomers": "Ook geldig voor de
bestaande klanten!", + "CampaignBetweenDates": "Vanaf {0}
Naar {1}", + "SaveUpTo": "BESPAAR TOT ${0}K", + "ImplementingDDD": "Domeingestuurd ontwerp implementeren", + "ExploreTheEBook": "Ontdek het e-boek", + "ExploreTheBook": "Ontdek het boek", + "ConsultantType": "Advies soort", + "Expert": "ABP-deskundige", + "Partner": "ABP-partner", + "Industry": "Industrie", + "Location": "Plaats", + "Contact": "Contact", + "Partner_Year": "Partnerschapsjaar", + "Info": "Info", + "SpokenLanguages": "Gesproken talen", + "SocialMedia": "Sociale media", + "Activity": "Activiteit", + "Type": "Type", + "Contribution": "Bijdrage", + "WhoWeAre": "Wie we zijn", + "Icons": "Pictogrammen", + "Url": "URL", + "Icon": "Icoon", + "RecentActivities": "Recente activiteiten", + "SpringCampaign": "Welkom
Lente uitverkoop!", + "SpringCampaign2": "Beperkt
Tijd aanbieding!
", + "AboutUs": "Over ons", + "HowItWorks": "Hoe het werkt?", + "ReleaseNotes": "Release-opmerkingen", + "DetailedChangeNotes": "Gedetailleerde wijzigingsnotities", + "SeeTrainings": "Zie Trainingen", + "NoContent": "Geen inhoud", + "More": "Meer", + "WhyABPIOPlatform": "Waarom ABP.IO-platform?", + "AbpStudio": "ABP Studio", + "ExtraMonths": "{0} EXTRA MAANDEN", + "RSS": "RSS", + "RSSFeed": "RSS-feed", + "Articles": "Lidwoord", + "Organizations": "Organisaties", + "ManageAccount": "Beheer account", + "CommunityProfile": "Gemeenschapsprofiel", + "BlogProfile": "Blogprofiel", + "Tickets": "Kaartjes" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/pl-PL.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/pl-PL.json index 94790b7538..bab3babe13 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/pl-PL.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/pl-PL.json @@ -14,6 +14,23 @@ "Volo.AbpIo.Domain:020002": "Nie można usunąć tego pakietu NPM, ponieważ moduły „{Modules}” używają tego pakietu.", "Volo.AbpIo.Domain:020003": "Nie można usunąć tego pakietu NPM, ponieważ moduły „{Modules}” używają tego pakietu, a pakiety Nuget „{NugetPackages}” są zależne od tego pakietu.", "Volo.AbpIo.Domain:020004": "Nie można usunąć tego pakietu Nuget, ponieważ moduły „{Modules}” używają tego pakietu.", + "Volo.AbpIo.Domain:030000": "Zakończyłeś już okres próbny.", + "Volo.AbpIo.Domain:030001": "Ta nazwa organizacji już istnieje.", + "Volo.AbpIo.Domain:030002": "Po aktywacji nie można zmienić statusu licencji próbnej na -żądaną-!", + "Volo.AbpIo.Domain:030003": "Nie ma takiego stanu!", + "Volo.AbpIo.Domain:030004": "Nie można zmienić statusu z powodu nieoczekiwanego błędu!", + "Volo.AbpIo.Domain:030005": "Datę początkową i końcową można zaktualizować, gdy licencja próbna ma status -aktywowany-!", + "Volo.AbpIo.Domain:030006": "Data końcowa musi być późniejsza niż data początkowa!", + "Volo.AbpIo.Domain:030007": "Ta licencja próbna została już aktywowana!", + "Volo.AbpIo.Domain:030008": "Datę zakupu można ustawić tylko w przypadku statusu -zakupiony-!", + "Volo.AbpIo.Domain:030009": "Użytkownik nie znaleziony!", + "Volo.AbpIo.Domain:030010": "Aby kupić licencję próbną, musisz najpierw aktywować licencję próbną!", + "Volo.AbpIo.Domain:030011": "Nie można usunąć zakupionej licencji próbnej!", + "Volo.AbpIo.Domain:030012": "Użytkownikowi przysługuje tylko 1 bezpłatny okres próbny. Wykorzystałeś już licencję próbną.", + "Volo.AbpIo.Domain:030013": "Użytkownik posiadający aktywną licencję nie może rozpocząć licencji próbnej.", + "Volo.AbpIo.Domain:040000": "Telemetria już istnieje!.", + "Volo.AbpIo.Domain:070000": "Nazwa organizacji może zawierać wyłącznie litery łacińskie, cyfry, kropki i łączniki!", + "Volo.AbpIo.Domain:070001": "Nazwa firmy może zawierać wyłącznie litery łacińskie, cyfry, kropki, spację i łączniki!", "WantToLearn?": "Chcieć się nauczyć?", "ReadyToGetStarted?": "Gotowy żeby zacząć?", "JoinOurCommunity": "Dołącz do naszej społeczności", @@ -39,6 +56,179 @@ "TrialLicensePeriodHasExpired": "Okres próbnej licencji wygasł {0} dni temu.", "TrialLicensePeriodWillExpire": "Okres ważności licencji próbnej wygaśnie za {0} dni.", "TrialLicensePeriodExpireToday": "Okres próbnej licencji wygaśnie dzisiaj.", - "PurchaseNow": "Kup Teraz!" + "PurchaseNow": "Kup Teraz!", + "LatestReleaseLogs": "Najnowsze dzienniki wydań", + "RoadMap": "Mapa drogowa", + "FAQ": "Często zadawane pytania", + "SourceCode": "Kod źródłowy", + "SeeAllPosts": "Zobacz wszystkie posty", + "Contribute": "Brać w czymś udział", + "LiveDemo": "Demo na żywo", + "GetLicense": "Zdobądź licencję", + "OpenSource": "Otwarte źródło", + "WebApplication": "Aplikacja internetowa", + "MeetTheABP": "Poznaj ABP", + "CompleteWebDevelopment": "Kompletny rozwój sieci", + "Platform": "Platforma", + "ABPDescription": "Struktura open source do tworzenia aplikacji internetowych dla ASP.NET Core. Oferuje kompletną infrastrukturę stosując najlepsze praktyki tworzenia oprogramowania.", + "StrongInfrastructure": "Silna infrastruktura", + "CompleteArchitecture": "Kompletna architektura", + "DeveloperFocused": "Koncentruje się na deweloperze", + "ShareYourExperiences": "Podziel się swoimi doświadczeniami z Ramą ABP", + "LatestPosts": "Najnowsze posty", + "LatestVideos": "Najnowsze filmy", + "Views": "Wyświetlenia", + "LearnLatestNewsAboutABPFramework": "Otrzymuj informacje o wydarzeniach w ABP, takich jak nowe wydania, bezpłatne źródła, posty i nie tylko.", + "DeveloperTools": "Narzędzia deweloperskie", + "StartupTemplates": "Szablony startowe", + "ApplicationModules": "Moduły aplikacji", + "UI": "Interfejs użytkownika", + "Themes": "Motywy", + "Premium": "Premia", + "PrivacyPolicy": "Polityka prywatności", + "TermsAndConditions": "Zasady i Warunki", + "WouldLikeToReceiveMarketingMaterials": "Chcę otrzymywać materiały marketingowe, takie jak oferty produktów i oferty specjalne.", + "JoinOurMarketingNewsletter": "Dołącz do naszego newslettera marketingowego", + "CommunityPrivacyPolicyConfirmation": "Zgadzam się z Regulaminem i Polityką Prywatności .", + "WouldLikeToReceiveNotification": "Chcę otrzymywać najświeższe informacje ze stron abp.io.", + "CommercialNewsletterConfirmationMessage": "Zgadzam się z Regulaminem i Polityką Prywatności .", + "FreeDDDEBook": "Bezpłatny e-book DDD", + "AdditionalServices": "Dodatkowe usługi", + "Learn": "Uczyć się", + "AccountOverview": "Przegląd konta", + "MyOrganizations": "Moje organizacje", + "MySupportQuestions": "Moje pytania do pomocy technicznej", + "MyProfile": "Mój profil", + "Logout": "Wyloguj", + "Home": "Dom", + "Posts": "Posty", + "Videos": "Filmy", + "JoinTheABPCommunity": "Dołącz do społeczności ABP", + "SubmitYourPost": "Prześlij swój post", + "Modules": "Moduły", + "Tools": "Narzędzia", + "Pricing": "cennik", + "ChangeLogs": "Zmień dzienniki", + "SubscribeToNewsletter": "Zapisz się do Newslettera", + "SubscribeToNewsletterDescription": "Otrzymuj informacje o wydarzeniach w ABP, takich jak nowe wydania, bezpłatne źródła, posty i nie tylko.", + "EmailAddress": "Adres e-mail", + "Subscribe": "Subskrybuj", + "WelcomeToABP": "Witamy w ABP", + "EULA": "Umowa EULA", + "ABPCommercialIntroductionMessage": "Gotowe moduły aplikacji, zaawansowane szablony startowe, narzędzia do szybkiego tworzenia aplikacji, profesjonalne motywy interfejsu użytkownika i wsparcie premium.", + "MasteringAbpFrameworkEBook": "Opanowanie frameworku ABP", + "MasteringTheABPFrameworkExplanation": "Książka ta, napisana przez twórcę ABP Framework, pomoże Ci w pełni zrozumieć framework i nowoczesne techniki tworzenia aplikacji internetowych.", + "Speakers": "Głośniki", + "PreviousEvents": "Poprzednie wydarzenia", + "WatchTheEvent": "Obejrzyj Wydarzenie", + "RegisterNow": "Zarejestruj się teraz", + "ThereIsNoEvent": "Nie ma żadnego wydarzenia.", + "Events": "Wydarzenia", + "Volo.AbpIo.Domain:080000": "Istnieje już przedmiot zakupu o nazwie „{Name}”", + "MasteringAbpFrameworkBook": "Książka: Opanowanie frameworku ABP", + "ABPIO-CommonPreferenceDefinition": "Otrzymuj najświeższe informacje o platformie ABP, takie jak nowe posty, wydarzenia i nie tylko.", + "BuiltOn": "Zbudowany na", + "AbpFramework": "Ramy ABP", + "Volo.AbpIo.Domain:080001": "Godzina rozpoczęcia nie może być większa niż godzina zakończenia", + "Enum:BookType:0": "Opanowanie frameworku ABP", + "Enum:PurchasePlatform:0": "Amazonka", + "Enum:PurchasePlatform:1": "Paczka", + "Copied": "Skopiowano!", + "CouldNotCopy": "Nie mógł skopiować!", + "CopyNotSupportByYourBrowser": "Ta funkcja nie działa w przeglądarce, której używasz.", + "City": "Miasto", + "ZipCode": "Kod pocztowy", + "Address": "Adres", + "Homepage": "Strona główna", + "Year": "Rok", + "Year_Plural": "Lata", + "Copyright": "Prawa autorskie © {1}", + "DomainDrivenDesign": "Projekt oparty na domenie", + "CrossCuttingConcerns": "Obawy przekrojowe", + "AbpCommunity": "Społeczność ABP", + "Footer_GithubStarCount": "{0} Gwiazdki na GitHubie", + "Footer_NugetDownloadCount": "{0} Pobieranie w NuGet", + "AbpDescription": "ABP to platforma aplikacji typu open source skupiająca się na tworzeniu aplikacji internetowych opartych na AspNet Core. Nie powtarzaj się, skup się na własnym kodzie biznesowym.", + "Layout_AbpFramework_MetaTitle": "Ramy ABP | Struktura aplikacji internetowych typu open source dla ASP.NET Core", + "CommunityTalks_CountdownDays": "Dni", + "CommunityTalks_CountdownHours": "godz", + "CommunityTalks_CountdownMinutes": "Min", + "CommunityTalks_CountdownSeconds": "sek", + "SeePreviousEvents": "Zobacz poprzednie wydarzenia", + "CookieConsent_Accept": "Zaakceptować", + "CookieConsent_Explanation_1": "Używamy plików cookie, aby zapewnić najlepszą jakość korzystania z naszej witryny.", + "CookieConsent_Explanation_2": "Jeśli będziesz kontynuować przeglądanie, zgadzasz się z naszą Polityką prywatności i Polityką dotyczącą plików cookie. .", + "Error_Page_400_Title": "Wystąpił problem z obsługą żądanej strony.", + "Error_Page_400_Description_1": "Zwykle oznacza to, że podczas przetwarzania Twojego żądania wystąpił nieoczekiwany błąd.", + "Error_Page_400_Description_2": "Jeśli problem będzie się powtarzał, skontaktuj się z nami pod adresem info@abp.io , a pomożemy Ci w rozwiązaniu problemu.", + "GoToHomepage": "Wróć do strony głównej", + "Error_Page_404_Title": "Strona nie znaleziona!", + "Error_Page_404_Description_1": "To nie jest strona internetowa, której szukasz.", + "Error_Page_500_Title": "Wygląda na to, że coś poszło nie tak!", + "Error_Page_500_Description_1": "Śledzimy te błędy automatycznie, ale jeśli problem będzie się powtarzał, możesz to zrobić
Skontaktuj się z nami. W międzyczasie spróbuj odświeżyć.", + "Error_Page_500_Description_2": "Skontaktuj się z nami pod adresem info@abp.io .", + "Books": "Książki", + "ABPDiscordServer": "Serwer Discord firmy ABP", + "ABPCommunityTalks": "Rozmowy społeczności ABP", + "ABPCommunityPosts": "Posty społeczności ABP", + "BuyAndGetMonths": "KUP 12 MIESIĘCY, ZYSKAJ 14 MIESIĘCY!", + "GetYourDeal": "Uzyskaj ofertę", + "BuyOrRenewLicense": "Kup lub odnów licencję teraz i zyskaj 2 dodatkowe miesiące!", + "BuyOrRenewLicenseToGetExtra2Months": "Kup lub odnów licencję teraz i zyskaj 2 dodatkowe miesiące! POŚPIESZ SIĘ! ⏰ Ostatni dzień: {0}", + "HurryUp": "POŚPIESZ SIĘ!", + "LastDay": "Ostatni dzień: {0}", + "BuyNewLicenseBetweenDatesToGetBenefit": "Kup nową licencję w okresie od {0} do {1} i zyskaj dodatkowe 2 miesiące!", + "CheckAllCommunityTalks": "Sprawdź wszystkie posty w społeczności", + "ReadMore": "Czytaj więcej", + "ContinueReading": "Kontynuuj czytanie", + "Post": "Post", + "ExploreTheContentsCreatedByTheCoreABPTeamAndTheABPCommunity": "Przeglądaj treści stworzone przez główny zespół ABP i społeczność ABP.", + "WelcomeFallCampaign": "Witamy w jesiennej kampanii!", + "GiveAwayForNewPurchases": "W zamian za nowe zakupy otrzymasz szkolenie w klasie z zakresu tworzenia aplikacji!", + "BlackFriday": "CZARNY PIĄTEK", + "ValidForExistingCustomers": "Obowiązuje również dla
dotychczasowi klienci!", + "CampaignBetweenDates": "Od {0}
Do {1}", + "SaveUpTo": "ZAOSZCZĘDŹ NAWET DO {0} tys. USD", + "ImplementingDDD": "Wdrażanie projektowania opartego na domenie", + "ExploreTheEBook": "Poznaj e-booka", + "ExploreTheBook": "Poznaj Księgę", + "ConsultantType": "Rodzaj doradztwa", + "Expert": "Ekspert ABP", + "Partner": "Partner ABP", + "Industry": "Przemysł", + "Location": "Lokalizacja", + "Contact": "Kontakt", + "Partner_Year": "Rok Partnerstwa", + "Info": "Informacje", + "SpokenLanguages": "Języki mówione", + "SocialMedia": "Media społecznościowe", + "Activity": "Działalność", + "Type": "Typ", + "Contribution": "Składka", + "WhoWeAre": "Kim jesteśmy", + "Icons": "Ikony", + "Url": "Adres URL", + "Icon": "Ikona", + "RecentActivities": "Ostatnie aktywności", + "SpringCampaign": "Powitanie
Wiosenna wyprzedaż!", + "SpringCampaign2": "Ograniczony
Oferta czasowa!
", + "AboutUs": "O nas", + "HowItWorks": "Jak to działa?", + "ReleaseNotes": "Informacje o wydaniu", + "DetailedChangeNotes": "Szczegółowe uwagi dotyczące zmian", + "SeeTrainings": "Zobacz Treningi", + "NoContent": "Brak zawartości", + "More": "Więcej", + "WhyABPIOPlatform": "Dlaczego platforma ABP.IO?", + "AbpStudio": "Studio ABP", + "ExtraMonths": "{0} DODATKOWE MIESIĄCE", + "RSS": "RSS", + "RSSFeed": "Kanał RSS", + "Articles": "Artykuły", + "Organizations": "Organizacje", + "ManageAccount": "Zarządzać kontem", + "CommunityProfile": "Profil społeczności", + "BlogProfile": "Profil bloga", + "Tickets": "Bilety" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/pt-BR.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/pt-BR.json index 71300a25b6..a27599eb31 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/pt-BR.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/pt-BR.json @@ -14,6 +14,23 @@ "Volo.AbpIo.Domain:020002": "Não foi possível excluir este pacote NPM porque \"{Modules}\" Módulos estão usando este pacote.", "Volo.AbpIo.Domain:020003": "Não foi possível excluir este pacote NPM porque \"{Modules}\" Módulos estão usando este pacote e \"{NugetPackages}\" Os pacotes Nuget dependem deste pacote.", "Volo.AbpIo.Domain:020004": "Não foi possível excluir este pacote Nuget porque \"{Modules}\" Módulos estão usando este pacote.", + "Volo.AbpIo.Domain:030000": "Você já completou seu período de teste.", + "Volo.AbpIo.Domain:030001": "Este nome de organização já existe.", + "Volo.AbpIo.Domain:030002": "Uma vez ativada, você não poderá mudar a licença de teste para o status -requested-!", + "Volo.AbpIo.Domain:030003": "Não existe esse status!", + "Volo.AbpIo.Domain:030004": "O status não pôde ser alterado devido a um erro inesperado!", + "Volo.AbpIo.Domain:030005": "As datas de início e término podem ser atualizadas quando a licença de avaliação estiver no status ativada!", + "Volo.AbpIo.Domain:030006": "A data de término deve ser posterior à data de início!", + "Volo.AbpIo.Domain:030007": "Esta licença de teste já foi ativada!", + "Volo.AbpIo.Domain:030008": "A data de compra só pode ser definida quando o status for -comprado-!", + "Volo.AbpIo.Domain:030009": "Usuário não encontrado!", + "Volo.AbpIo.Domain:030010": "Para adquirir a licença de teste, primeiro você precisa ativá-la!", + "Volo.AbpIo.Domain:030011": "Você não pode excluir uma licença de avaliação quando ela for comprada!", + "Volo.AbpIo.Domain:030012": "Um usuário tem direito a apenas 1 período de teste gratuito. Você já usou sua licença de avaliação.", + "Volo.AbpIo.Domain:030013": "Um usuário com uma licença ativa não pode iniciar uma licença de avaliação.", + "Volo.AbpIo.Domain:040000": "A telemetria já existe!.", + "Volo.AbpIo.Domain:070000": "O nome da organização só pode conter letras latinas, números, pontos e hifens!", + "Volo.AbpIo.Domain:070001": "O nome da empresa só pode conter letras latinas, números, pontos, espaços e hífens!", "WantToLearn?": "Quer aprender?", "ReadyToGetStarted?": "Pronto para começar?", "JoinOurCommunity": "Participe da nossa comunidade", @@ -39,6 +56,179 @@ "TrialLicensePeriodHasExpired": "Seu período de licença de teste expirou há {0} dias.", "TrialLicensePeriodWillExpire": "O período de sua licença de teste expirará em {0} dias.", "TrialLicensePeriodExpireToday": "Seu período de licença de teste expirará hoje.", - "PurchaseNow": "Compre agora!" + "PurchaseNow": "Compre agora!", + "LatestReleaseLogs": "Registros de lançamento mais recentes", + "RoadMap": "Roteiro", + "FAQ": "Perguntas frequentes", + "SourceCode": "Código fonte", + "SeeAllPosts": "Ver todas as postagens", + "Contribute": "Contribuir", + "LiveDemo": "Demonstração ao vivo", + "GetLicense": "Obtenha uma licença", + "OpenSource": "Código aberto", + "WebApplication": "Aplicativo Web", + "MeetTheABP": "Conheça a ABP", + "CompleteWebDevelopment": "Um Desenvolvimento Web Completo", + "Platform": "Plataforma", + "ABPDescription": "Uma estrutura de código aberto para desenvolvimento de aplicativos web para ASP.NET Core. Oferece infraestrutura completa seguindo as melhores práticas de desenvolvimento de software.", + "StrongInfrastructure": "Infraestrutura Forte", + "CompleteArchitecture": "Arquitetura Completa", + "DeveloperFocused": "Focado no desenvolvedor", + "ShareYourExperiences": "Compartilhe suas experiências com o Framework ABP", + "LatestPosts": "últimas postagens", + "LatestVideos": "Últimos vídeos", + "Views": "Visualizações", + "LearnLatestNewsAboutABPFramework": "Obtenha informações sobre acontecimentos na ABP, como novos lançamentos, fontes gratuitas, postagens e muito mais.", + "DeveloperTools": "Ferramentas de desenvolvimento", + "StartupTemplates": "Modelos de inicialização", + "ApplicationModules": "Módulos de Aplicação", + "UI": "IU", + "Themes": "Temas", + "Premium": "Prêmio", + "PrivacyPolicy": "política de Privacidade", + "TermsAndConditions": "termos e Condições", + "WouldLikeToReceiveMarketingMaterials": "Gostaria de receber materiais de marketing, como promoções de produtos e ofertas especiais.", + "JoinOurMarketingNewsletter": "Junte-se ao nosso boletim informativo de marketing", + "CommunityPrivacyPolicyConfirmation": "Concordo com os Termos e Condições e Política de Privacidade .", + "WouldLikeToReceiveNotification": "Gostaria de receber as últimas notícias dos sites abp.io.", + "CommercialNewsletterConfirmationMessage": "Concordo com os Termos e Condições e Política de Privacidade .", + "FreeDDDEBook": "E-book DDD Gratuito", + "AdditionalServices": "Serviços adicionais", + "Learn": "Aprender", + "AccountOverview": "visão geral da conta", + "MyOrganizations": "Minhas organizações", + "MySupportQuestions": "Minhas perguntas de suporte", + "MyProfile": "Meu perfil", + "Logout": "Sair", + "Home": "Lar", + "Posts": "Postagens", + "Videos": "Vídeos", + "JoinTheABPCommunity": "Junte-se à comunidade ABP", + "SubmitYourPost": "Envie sua postagem", + "Modules": "Módulos", + "Tools": "Ferramentas", + "Pricing": "Preços", + "ChangeLogs": "Registros de alterações", + "SubscribeToNewsletter": "Assine o boletim informativo", + "SubscribeToNewsletterDescription": "Obtenha informações sobre acontecimentos na ABP, como novos lançamentos, fontes gratuitas, postagens e muito mais.", + "EmailAddress": "Endereço de email", + "Subscribe": "Se inscrever", + "WelcomeToABP": "Bem-vindo à ABP", + "EULA": "EULA", + "ABPCommercialIntroductionMessage": "Módulos de aplicativos pré-construídos, modelos de inicialização avançados, ferramentas de desenvolvimento rápido de aplicativos, temas de UI profissionais e suporte premium.", + "MasteringAbpFrameworkEBook": "Dominando a estrutura ABP", + "MasteringTheABPFrameworkExplanation": "Escrito pelo criador do ABP Framework, este livro o ajudará a obter uma compreensão completa do framework e das técnicas modernas de desenvolvimento de aplicativos da web.", + "Speakers": "caixas de som", + "PreviousEvents": "Eventos anteriores", + "WatchTheEvent": "Assista ao Evento", + "RegisterNow": "Registrar agora", + "ThereIsNoEvent": "Não há evento.", + "Events": "Eventos", + "Volo.AbpIo.Domain:080000": "Já existe um item de compra chamado "{Name}"", + "MasteringAbpFrameworkBook": "Livro: Dominando o Framework ABP", + "ABPIO-CommonPreferenceDefinition": "Receba as últimas notícias sobre a Plataforma ABP, como novas postagens, eventos e muito mais.", + "BuiltOn": "Construído em", + "AbpFramework": "Estrutura ABP", + "Volo.AbpIo.Domain:080001": "A hora de início não pode ser maior que a hora de término", + "Enum:BookType:0": "Dominando a estrutura ABP", + "Enum:PurchasePlatform:0": "Amazonas", + "Enum:PurchasePlatform:1": "Pacote", + "Copied": "Copiado!", + "CouldNotCopy": "Não pode copiar!", + "CopyNotSupportByYourBrowser": "Este recurso não funciona no navegador que você está usando.", + "City": "Cidade", + "ZipCode": "CEP", + "Address": "Endereço", + "Homepage": "Pagina inicial", + "Year": "Ano", + "Year_Plural": "Anos", + "Copyright": "Direitos autorais © {1}", + "DomainDrivenDesign": "Design baseado em domínio", + "CrossCuttingConcerns": "Preocupações transversais", + "AbpCommunity": "Comunidade ABP", + "Footer_GithubStarCount": "{0} Estrelas no GitHub", + "Footer_NugetDownloadCount": "{0} Downloads no NuGet", + "AbpDescription": "ABP é uma estrutura de aplicativos de código aberto focada no desenvolvimento de aplicativos da web baseados em AspNet Core. Não se repita, concentre-se no seu próprio código comercial.", + "Layout_AbpFramework_MetaTitle": "Estrutura ABP | Estrutura de aplicativo Web de código aberto para ASP.NET Core", + "CommunityTalks_CountdownDays": "Dias", + "CommunityTalks_CountdownHours": "Horas", + "CommunityTalks_CountdownMinutes": "Mínimo", + "CommunityTalks_CountdownSeconds": "Segundo", + "SeePreviousEvents": "Ver eventos anteriores", + "CookieConsent_Accept": "Aceitar", + "CookieConsent_Explanation_1": "Utilizamos cookies para lhe proporcionar a melhor experiência em nosso site.", + "CookieConsent_Explanation_2": "Se continuar a navegar, então concorda com a nossa Política de Privacidade e Política de Cookies. .", + "Error_Page_400_Title": "Ocorreu um problema ao servir a página solicitada.", + "Error_Page_400_Description_1": "Geralmente isso significa que ocorreu um erro inesperado durante o processamento da sua solicitação.", + "Error_Page_400_Description_2": "Se o problema persistir, entre em contato conosco pelo e-mail info@abp.io e nós o ajudaremos a seguir seu caminho.", + "GoToHomepage": "Vá para a página inicial", + "Error_Page_404_Title": "Página não encontrada!", + "Error_Page_404_Description_1": "Esta não é a página da web que você está procurando.", + "Error_Page_500_Title": "Parece que algo deu errado!", + "Error_Page_500_Description_1": "Rastreamos esses erros automaticamente, mas se o problema persistir, sinta-se à vontade para
Contate-nos. Enquanto isso, tente atualizar.", + "Error_Page_500_Description_2": "Entre em contato conosco em info@abp.io .", + "Books": "Livros", + "ABPDiscordServer": "Servidor de Discord ABP", + "ABPCommunityTalks": "Palestras da Comunidade ABP", + "ABPCommunityPosts": "Postagens da comunidade ABP", + "BuyAndGetMonths": "COMPRE 12 MESES, GANHE 14 MESES!", + "GetYourDeal": "Faça seu negócio", + "BuyOrRenewLicense": "Compre ou renove a licença agora e ganhe 2 meses extras!", + "BuyOrRenewLicenseToGetExtra2Months": "Compre ou renove a licença agora e ganhe 2 meses extras! SE APRESSE! ⏰ Último dia: {0}", + "HurryUp": "SE APRESSE!", + "LastDay": "Último dia: {0}", + "BuyNewLicenseBetweenDatesToGetBenefit": "Compre uma nova licença entre {0} e {1} para obter benefícios por mais 2 meses!", + "CheckAllCommunityTalks": "Verifique todas as postagens da comunidade", + "ReadMore": "consulte Mais informação", + "ContinueReading": "Continue lendo", + "Post": "Publicar", + "ExploreTheContentsCreatedByTheCoreABPTeamAndTheABPCommunity": "Explore os conteúdos criados pela equipe principal da ABP e pela comunidade ABP.", + "WelcomeFallCampaign": "Campanha de outono de boas-vindas!", + "GiveAwayForNewPurchases": "O Treinamento em Sala de Aula de Desenvolvimento de Aplicativos será oferecido nas novas compras!", + "BlackFriday": "SEXTA -FEIRA PRETA", + "ValidForExistingCustomers": "Válido também para o
clientes existentes!", + "CampaignBetweenDates": "De {0}
Para {1}", + "SaveUpTo": "ECONOMIZE ATÉ US ${0}K", + "ImplementingDDD": "Implementando Design Orientado a Domínio", + "ExploreTheEBook": "Explore o e-book", + "ExploreTheBook": "Explorar o livro", + "ConsultantType": "Tipo de Consultoria", + "Expert": "Especialista em ABP", + "Partner": "Parceiro ABP", + "Industry": "Indústria", + "Location": "Localização", + "Contact": "Contato", + "Partner_Year": "Ano de Parceria", + "Info": "Informações", + "SpokenLanguages": "Línguas faladas", + "SocialMedia": "Mídia social", + "Activity": "Atividade", + "Type": "Tipo", + "Contribution": "Contribuição", + "WhoWeAre": "Quem nós somos", + "Icons": "Ícones", + "Url": "URL", + "Icon": "Ícone", + "RecentActivities": "Atividades recentes", + "SpringCampaign": "Bem-vindo
Promoção de primavera!", + "SpringCampaign2": "Limitado
Oferta de tempo!
", + "AboutUs": "Sobre nós", + "HowItWorks": "Como funciona?", + "ReleaseNotes": "Notas de versão", + "DetailedChangeNotes": "Notas de alteração detalhadas", + "SeeTrainings": "Ver Treinamentos", + "NoContent": "Sem conteúdo", + "More": "Mais", + "WhyABPIOPlatform": "Por que plataforma ABP.IO?", + "AbpStudio": "Estúdio ABP", + "ExtraMonths": "{0} MESES EXTRAS", + "RSS": "RSS", + "RSSFeed": "Feed RSS", + "Articles": "Artigos", + "Organizations": "Organizações", + "ManageAccount": "Gerenciar conta", + "CommunityProfile": "Perfil da comunidade", + "BlogProfile": "Perfil do blog", + "Tickets": "Ingressos" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/ro-RO.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/ro-RO.json index 6a907b7852..0b18093488 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/ro-RO.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/ro-RO.json @@ -14,6 +14,23 @@ "Volo.AbpIo.Domain:020002": "Nu s-a putut şterge acest pachet NPM deoarece \"{Modules}\" modulele folosesc acest pachet.", "Volo.AbpIo.Domain:020003": "Nu s-a putut şterge acest pachet NPM deoarece \"{Modules}\" modulele folosesc acest pachet \"{NugetPackages}\" şi există pachete Nuget dependente de acest pachet.", "Volo.AbpIo.Domain:020004": "Nu s-a putut şterge acest pachet Nuget deoarece \"{Modules}\" modulele folosesc acest pachet.", + "Volo.AbpIo.Domain:030000": "Ați încheiat deja perioada de probă.", + "Volo.AbpIo.Domain:030001": "Acest nume de organizație există deja.", + "Volo.AbpIo.Domain:030002": "Odată activată, nu puteți trece licența de încercare în starea -solicitată-!", + "Volo.AbpIo.Domain:030003": "Nu există un astfel de statut!", + "Volo.AbpIo.Domain:030004": "Starea nu a putut fi schimbată din cauza unei erori neașteptate!", + "Volo.AbpIo.Domain:030005": "Data de începere și de sfârșit pot fi actualizate atunci când licența de încercare este în starea -activată-!", + "Volo.AbpIo.Domain:030006": "Data de încheiere trebuie să fie mai mare decât data de început!", + "Volo.AbpIo.Domain:030007": "Această licență de probă a fost deja activată!", + "Volo.AbpIo.Domain:030008": "Data achiziției poate fi setată doar când starea este -achiziționat-!", + "Volo.AbpIo.Domain:030009": "Utilizator nu a fost găsit!", + "Volo.AbpIo.Domain:030010": "Pentru a achiziționa licența de probă, mai întâi trebuie să vă activați licența de probă!", + "Volo.AbpIo.Domain:030011": "Nu puteți șterge o licență de probă atunci când este achiziționată!", + "Volo.AbpIo.Domain:030012": "Un utilizator are dreptul la o singură perioadă de probă gratuită. Ați folosit deja licența de probă.", + "Volo.AbpIo.Domain:030013": "Un utilizator cu o licență activă nu poate începe o licență de probă.", + "Volo.AbpIo.Domain:040000": "Telemetria există deja!.", + "Volo.AbpIo.Domain:070000": "Numele organizației poate conține doar litere latine, cifre, puncte și cratime!", + "Volo.AbpIo.Domain:070001": "Numele companiei poate conține doar litere latine, cifre, puncte, spațiu și cratime!", "WantToLearn?": "Vrei să înveţi?", "ReadyToGetStarted?": "Eşti gata pentru a începe?", "JoinOurCommunity": "Alăturaţi-vă comunităţii noastre", @@ -39,6 +56,179 @@ "TrialLicensePeriodHasExpired": "Perioada dvs. de licență de probă a expirat acum {0} zile.", "TrialLicensePeriodWillExpire": "Perioada dvs. de licență de probă va expira în {0} zile.", "TrialLicensePeriodExpireToday": "Perioada dvs. de licență de probă va expira astăzi.", - "PurchaseNow": "Cumpara acum!" + "PurchaseNow": "Cumpara acum!", + "LatestReleaseLogs": "Cele mai recente jurnale de lansare", + "RoadMap": "Harta rutieră", + "FAQ": "FAQ", + "SourceCode": "Cod sursa", + "SeeAllPosts": "Vezi toate postările", + "Contribute": "A contribui", + "LiveDemo": "Demo live", + "GetLicense": "Obțineți o licență", + "OpenSource": "Sursa deschisa", + "WebApplication": "Aplicatie web", + "MeetTheABP": "Faceți cunoștință cu ABP", + "CompleteWebDevelopment": "O dezvoltare web completă", + "Platform": "Platformă", + "ABPDescription": "Un cadru open-source pentru dezvoltarea de aplicații web pentru ASP.NET Core. Oferă o infrastructură completă, urmând cele mai bune practici de dezvoltare software.", + "StrongInfrastructure": "Infrastructură puternică", + "CompleteArchitecture": "Arhitectura completa", + "DeveloperFocused": "Axat pe dezvoltator", + "ShareYourExperiences": "Împărtășiți-vă experiențele cu Cadrul ABP", + "LatestPosts": "Ultimele postări", + "LatestVideos": "Cele mai recente videoclipuri", + "Views": "Vizualizări", + "LearnLatestNewsAboutABPFramework": "Obțineți informații despre evenimentele din ABP, cum ar fi versiuni noi, surse gratuite, postări și multe altele.", + "DeveloperTools": "Instrumente de dezvoltare", + "StartupTemplates": "Șabloane de pornire", + "ApplicationModules": "Module de aplicație", + "UI": "UI", + "Themes": "Teme", + "Premium": "Premium", + "PrivacyPolicy": "Politica de confidențialitate", + "TermsAndConditions": "termeni si conditii", + "WouldLikeToReceiveMarketingMaterials": "Aș dori să primesc materiale de marketing, cum ar fi oferte de produse și oferte speciale.", + "JoinOurMarketingNewsletter": "Alăturați-vă buletinului nostru informativ de marketing", + "CommunityPrivacyPolicyConfirmation": "Sunt de acord cu Termenii și condițiile și cu Politica de confidențialitate .", + "WouldLikeToReceiveNotification": "Aș dori să primesc cele mai recente știri de pe site-urile abp.io.", + "CommercialNewsletterConfirmationMessage": "Sunt de acord cu Termenii și condițiile și cu Politica de confidențialitate .", + "FreeDDDEBook": "Carte electronică DDD gratuită", + "AdditionalServices": "Servicii aditionale", + "Learn": "Învăța", + "AccountOverview": "Prezentare generală a contului", + "MyOrganizations": "Organizațiile mele", + "MySupportQuestions": "Întrebările mele de asistență", + "MyProfile": "Profilul meu", + "Logout": "Deconectare", + "Home": "Acasă", + "Posts": "Postări", + "Videos": "Videoclipuri", + "JoinTheABPCommunity": "Alăturați-vă comunității ABP", + "SubmitYourPost": "Trimiteți postarea dvs", + "Modules": "Module", + "Tools": "Instrumente", + "Pricing": "Prețuri", + "ChangeLogs": "Jurnalele de schimbare", + "SubscribeToNewsletter": "Abonați-vă la Newsletter", + "SubscribeToNewsletterDescription": "Obțineți informații despre evenimentele din ABP, cum ar fi versiuni noi, surse gratuite, postări și multe altele.", + "EmailAddress": "Adresa de e-mail", + "Subscribe": "Abonati-va", + "WelcomeToABP": "Bine ați venit la ABP", + "EULA": "EULA", + "ABPCommercialIntroductionMessage": "Module de aplicații pre-construite, șabloane avansate de pornire, instrumente de dezvoltare rapidă a aplicațiilor, teme profesionale pentru interfața de utilizare și asistență premium.", + "MasteringAbpFrameworkEBook": "Stăpânirea cadrului ABP", + "MasteringTheABPFrameworkExplanation": "Scrisă de creatorul Cadrului ABP, această carte vă va ajuta să obțineți o înțelegere completă a cadrului și a tehnicilor moderne de dezvoltare a aplicațiilor web.", + "Speakers": "Difuzoare", + "PreviousEvents": "Evenimente anterioare", + "WatchTheEvent": "Urmărește evenimentul", + "RegisterNow": "Înregistrează-te acum", + "ThereIsNoEvent": "Nu există niciun eveniment.", + "Events": "Evenimente", + "Volo.AbpIo.Domain:080000": "Există deja un articol de achiziție numit „{Name}”", + "MasteringAbpFrameworkBook": "Carte: Stăpânirea cadrului ABP", + "ABPIO-CommonPreferenceDefinition": "Obțineți cele mai recente știri despre Platforma ABP, cum ar fi postări noi, evenimente și multe altele.", + "BuiltOn": "Construit pe", + "AbpFramework": "Cadrul ABP", + "Volo.AbpIo.Domain:080001": "Ora de început nu poate fi mai mare decât Ora de încheiere", + "Enum:BookType:0": "Stăpânirea cadrului ABP", + "Enum:PurchasePlatform:0": "Amazon", + "Enum:PurchasePlatform:1": "Packt", + "Copied": "Copiat!", + "CouldNotCopy": "Nu s-a putut copia!", + "CopyNotSupportByYourBrowser": "Această caracteristică nu funcționează în browserul pe care îl utilizați.", + "City": "Oraș", + "ZipCode": "Cod poștal", + "Address": "Abordare", + "Homepage": "Pagina principala", + "Year": "An", + "Year_Plural": "Ani", + "Copyright": "Drepturi de autor © {1}", + "DomainDrivenDesign": "Design bazat pe domeniu", + "CrossCuttingConcerns": "Preocupări transversale", + "AbpCommunity": "Comunitatea ABP", + "Footer_GithubStarCount": "{0} stele pe GitHub", + "Footer_NugetDownloadCount": "{0} Descărcări pe NuGet", + "AbpDescription": "ABP este un cadru de aplicații open source axat pe dezvoltarea de aplicații web bazate pe AspNet Core. Nu te repeta, concentrează-te pe propriul tău cod de afaceri.", + "Layout_AbpFramework_MetaTitle": "Cadrul ABP | Cadru de aplicații web open source pentru ASP.NET Core", + "CommunityTalks_CountdownDays": "Zile", + "CommunityTalks_CountdownHours": "ore", + "CommunityTalks_CountdownMinutes": "Min", + "CommunityTalks_CountdownSeconds": "Sec", + "SeePreviousEvents": "Vezi Evenimente anterioare", + "CookieConsent_Accept": "Accept", + "CookieConsent_Explanation_1": "Folosim cookie-uri pentru a vă oferi cea mai bună experiență pe site-ul nostru.", + "CookieConsent_Explanation_2": "Dacă continuați să navigați, sunteți de acord cu politica noastră de confidențialitate și cu politica de cookie-uri. .", + "Error_Page_400_Title": "A apărut o problemă la difuzarea paginii solicitate.", + "Error_Page_400_Description_1": "De obicei, aceasta înseamnă că a apărut o eroare neașteptată în timpul procesării cererii dvs.", + "Error_Page_400_Description_2": "Dacă problema persistă, contactați-ne la info@abp.io și vă vom ajuta să vă îndreptați.", + "GoToHomepage": "Mergi la pagina principală, mergi la pagina de început", + "Error_Page_404_Title": "Pagina nu a fost gasita!", + "Error_Page_404_Description_1": "Aceasta nu este pagina web pe care o cauți.", + "Error_Page_500_Title": "Se pare că ceva a mers prost!", + "Error_Page_500_Description_1": "Urmărim aceste erori automat, dar dacă problema persistă, nu ezitați
contactaţi-ne. Între timp, încercați să vă împrospătați.", + "Error_Page_500_Description_2": "Contactați-ne la info@abp.io .", + "Books": "Cărți", + "ABPDiscordServer": "ABP Discord Server", + "ABPCommunityTalks": "Discuții comunitare ABP", + "ABPCommunityPosts": "Postări ale comunității ABP", + "BuyAndGetMonths": "CUMPĂRĂ 12 LUNI, PRIMIȚI 14 LUNI!", + "GetYourDeal": "Obțineți afacerea dvs", + "BuyOrRenewLicense": "Cumpărați sau reînnoiți licența acum și obțineți 2 luni în plus!", + "BuyOrRenewLicenseToGetExtra2Months": "Cumpărați sau reînnoiți licența acum și obțineți 2 luni în plus! GRĂBIŢI-VĂ! ⏰ Ultima zi: {0}", + "HurryUp": "GRĂBIŢI-VĂ!", + "LastDay": "Ultima zi: {0}", + "BuyNewLicenseBetweenDatesToGetBenefit": "Cumpărați o nouă licență între {0} și {1} pentru a beneficia de 2 luni suplimentare!", + "CheckAllCommunityTalks": "Verificați toate postările din comunitate", + "ReadMore": "Citeşte mai mult", + "ContinueReading": "Continuați lectură", + "Post": "Post", + "ExploreTheContentsCreatedByTheCoreABPTeamAndTheABPCommunity": "Explorați conținutul creat de echipa principală ABP și comunitatea ABP.", + "WelcomeFallCampaign": "Campanie de toamnă de bun venit!", + "GiveAwayForNewPurchases": "Formarea la clasă pentru dezvoltarea aplicațiilor va fi oferită pentru noile achiziții!", + "BlackFriday": "VINEREA NEAGRA", + "ValidForExistingCustomers": "Valabil și pentru
clienți existenți!", + "CampaignBetweenDates": "De la {0}
Către {1}", + "SaveUpTo": "Economisiți până la {0}K $", + "ImplementingDDD": "Implementarea designului bazat pe domeniu", + "ExploreTheEBook": "Explorați cartea electronică", + "ExploreTheBook": "Explorează Cartea", + "ConsultantType": "Tip consultanta", + "Expert": "Expert ABP", + "Partner": "Partener ABP", + "Industry": "Industrie", + "Location": "Locație", + "Contact": "a lua legatura", + "Partner_Year": "Anul parteneriatului", + "Info": "Info", + "SpokenLanguages": "Limbi vorbite", + "SocialMedia": "Social Media", + "Activity": "Activitate", + "Type": "Tip", + "Contribution": "Contribuţie", + "WhoWeAre": "Cine suntem noi", + "Icons": "Pictograme", + "Url": "Url", + "Icon": "Pictogramă", + "RecentActivities": "Activități recente", + "SpringCampaign": "Bine ati venit
Reducere de primăvară!", + "SpringCampaign2": "Limitat
Oferta de timp!
", + "AboutUs": "Despre noi", + "HowItWorks": "Cum functioneaza?", + "ReleaseNotes": "Note de lansare", + "DetailedChangeNotes": "Note de modificare detaliate", + "SeeTrainings": "Vezi Antrenamente", + "NoContent": "Fara continut", + "More": "Mai mult", + "WhyABPIOPlatform": "De ce platforma ABP.IO?", + "AbpStudio": "ABP Studio", + "ExtraMonths": "{0} LUNI SUPLIMENTARE", + "RSS": "RSS", + "RSSFeed": "Flux RSS", + "Articles": "Articole", + "Organizations": "Organizații", + "ManageAccount": "Gestionează contul", + "CommunityProfile": "Profilul comunității", + "BlogProfile": "Profil blog", + "Tickets": "bilete" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/sk.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/sk.json index bb37ba908e..0c275469a1 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/sk.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/sk.json @@ -14,6 +14,23 @@ "Volo.AbpIo.Domain:020002": "NPM balík sa nepodarilo zmazať, pretože tento balík používajú moduly \"{Modules}\".", "Volo.AbpIo.Domain:020003": "NPM balík sa nepodarilo zmazať, pretože tento balík používajú moduly \"{Modules}\" a Nuget balíky \"{NugetPackages}\" sú závislé na tomto balíku.", "Volo.AbpIo.Domain:020004": "Nuget balík sa nepodarilo zmazať, pretože tento balík používajú moduly \"{Modules}\".", + "Volo.AbpIo.Domain:030000": "Skúšobné obdobie ste už ukončili.", + "Volo.AbpIo.Domain:030001": "Tento názov organizácie už existuje.", + "Volo.AbpIo.Domain:030002": "Po aktivácii nemôžete skúšobnú licenciu prepnúť do stavu -vyžiadaná-!", + "Volo.AbpIo.Domain:030003": "Takýto stav neexistuje!", + "Volo.AbpIo.Domain:030004": "Stav nebolo možné zmeniť z dôvodu neočakávanej chyby!", + "Volo.AbpIo.Domain:030005": "Dátum začiatku a konca je možné aktualizovať, keď je skúšobná licencia v stave -aktivovaná-!", + "Volo.AbpIo.Domain:030006": "Dátum ukončenia musí byť väčší ako počiatočný dátum!", + "Volo.AbpIo.Domain:030007": "Táto skúšobná licencia už bola aktivovaná!", + "Volo.AbpIo.Domain:030008": "Dátum nákupu je možné nastaviť len pri stave -zakúpené-!", + "Volo.AbpIo.Domain:030009": "Užívateľ Nenájdený!", + "Volo.AbpIo.Domain:030010": "Ak chcete zakúpiť skúšobnú licenciu, musíte najprv aktivovať skúšobnú licenciu!", + "Volo.AbpIo.Domain:030011": "Skúšobnú licenciu nemôžete odstrániť, keď je zakúpená!", + "Volo.AbpIo.Domain:030012": "Používateľ má nárok len na 1 bezplatné skúšobné obdobie. Už ste použili svoju skúšobnú licenciu.", + "Volo.AbpIo.Domain:030013": "Používateľ s aktívnou licenciou nemôže spustiť skúšobnú licenciu.", + "Volo.AbpIo.Domain:040000": "Telemetria už existuje!", + "Volo.AbpIo.Domain:070000": "Názov organizácie môže obsahovať iba latinské písmená, čísla, bodky a spojovníky!", + "Volo.AbpIo.Domain:070001": "Názov spoločnosti môže obsahovať iba latinské písmená, čísla, bodky, medzery a spojovníky!", "WantToLearn?": "Chcete sa učiť?", "ReadyToGetStarted?": "Ste pripravený začať?", "JoinOurCommunity": "Pripojte sa k našej komunite", @@ -39,6 +56,179 @@ "TrialLicensePeriodHasExpired": "Doba platnosti vašej skúšobnej licencie uplynula pred {0} dňami.", "TrialLicensePeriodWillExpire": "Doba platnosti vašej skúšobnej licencie uplynie o {0} dní.", "TrialLicensePeriodExpireToday": "Vaše skúšobné licenčné obdobie dnes vyprší.", - "PurchaseNow": "Kúpiť teraz!" + "PurchaseNow": "Kúpiť teraz!", + "LatestReleaseLogs": "Denníky najnovších vydaní", + "RoadMap": "Cestná mapa", + "FAQ": "FAQ", + "SourceCode": "Zdrojový kód", + "SeeAllPosts": "Pozrite si všetky príspevky", + "Contribute": "Prispieť", + "LiveDemo": "Živá ukážka", + "GetLicense": "Získajte licenciu", + "OpenSource": "Open Source", + "WebApplication": "Webová aplikácia", + "MeetTheABP": "Zoznámte sa s ABP", + "CompleteWebDevelopment": "Kompletný vývoj webu", + "Platform": "Plošina", + "ABPDescription": "Open source framework pre vývoj webových aplikácií pre ASP.NET Core. Ponúka kompletnú infraštruktúru dodržiavaním osvedčených postupov vývoja softvéru.", + "StrongInfrastructure": "Silná infraštruktúra", + "CompleteArchitecture": "Kompletná architektúra", + "DeveloperFocused": "Zamerané na vývojárov", + "ShareYourExperiences": "Podeľte sa o svoje skúsenosti s rámcom ABP", + "LatestPosts": "Najnovšie príspevky", + "LatestVideos": "Najnovšie videá", + "Views": "Názory", + "LearnLatestNewsAboutABPFramework": "Získajte informácie o dianí v ABP, ako sú nové vydania, bezplatné zdroje, príspevky a ďalšie.", + "DeveloperTools": "Nástroje pre vývojárov", + "StartupTemplates": "Štartovacie šablóny", + "ApplicationModules": "Aplikačné moduly", + "UI": "UI", + "Themes": "Témy", + "Premium": "Premium", + "PrivacyPolicy": "Zásady ochrany osobných údajov", + "TermsAndConditions": "podmienky", + "WouldLikeToReceiveMarketingMaterials": "Chcem dostávať marketingové materiály, ako sú ponuky produktov a špeciálne ponuky.", + "JoinOurMarketingNewsletter": "Pridajte sa k nášmu marketingovému newsletteru", + "CommunityPrivacyPolicyConfirmation": "Súhlasím s obchodnými podmienkami a zásadami ochrany osobných údajov .", + "WouldLikeToReceiveNotification": "Chcem dostávať najnovšie správy z webových stránok abp.io.", + "CommercialNewsletterConfirmationMessage": "Súhlasím s obchodnými podmienkami a zásadami ochrany osobných údajov .", + "FreeDDDEBook": "E-kniha DDD zadarmo", + "AdditionalServices": "Doplnkové služby", + "Learn": "Učte sa", + "AccountOverview": "prehľad účtu", + "MyOrganizations": "Moje organizácie", + "MySupportQuestions": "Moje otázky podpory", + "MyProfile": "Môj profil", + "Logout": "Odhlásiť sa", + "Home": "Domov", + "Posts": "Príspevky", + "Videos": "Videá", + "JoinTheABPCommunity": "Pripojte sa ku komunite ABP", + "SubmitYourPost": "Odoslať svoj príspevok", + "Modules": "Moduly", + "Tools": "Nástroje", + "Pricing": "Stanovenie cien", + "ChangeLogs": "Denníky zmien", + "SubscribeToNewsletter": "Prihláste sa na odber Newslettera", + "SubscribeToNewsletterDescription": "Získajte informácie o dianí v ABP, ako sú nové vydania, bezplatné zdroje, príspevky a ďalšie.", + "EmailAddress": "Emailová adresa", + "Subscribe": "Prihlásiť sa na odber", + "WelcomeToABP": "Vitajte v ABP", + "EULA": "EULA", + "ABPCommercialIntroductionMessage": "Vopred zostavené aplikačné moduly, pokročilé šablóny na spustenie, nástroje na rýchly vývoj aplikácií, profesionálne témy používateľského rozhrania a prémiová podpora.", + "MasteringAbpFrameworkEBook": "Zvládnutie rámca ABP", + "MasteringTheABPFrameworkExplanation": "Táto kniha, ktorú napísal tvorca rámca ABP, vám pomôže získať úplné pochopenie rámca a moderných techník vývoja webových aplikácií.", + "Speakers": "Reproduktory", + "PreviousEvents": "Predchádzajúce udalosti", + "WatchTheEvent": "Pozrite si Udalosť", + "RegisterNow": "Zaregistrujte sa teraz", + "ThereIsNoEvent": "Neexistuje žiadna udalosť.", + "Events": "Diania", + "Volo.AbpIo.Domain:080000": "Už existuje nákupná položka s názvom „{Name}“", + "MasteringAbpFrameworkBook": "Kniha: Mastering ABP Framework", + "ABPIO-CommonPreferenceDefinition": "Získajte najnovšie správy o platforme ABP, ako sú nové príspevky, udalosti a ďalšie.", + "BuiltOn": "Zabudovaný", + "AbpFramework": "Rámec ABP", + "Volo.AbpIo.Domain:080001": "Čas začiatku nemôže byť väčší ako čas ukončenia", + "Enum:BookType:0": "Zvládnutie rámca ABP", + "Enum:PurchasePlatform:0": "Amazon", + "Enum:PurchasePlatform:1": "Packt", + "Copied": "Skopírované!", + "CouldNotCopy": "Nedá sa skopírovať!", + "CopyNotSupportByYourBrowser": "Táto funkcia nefunguje v prehliadači, ktorý používate.", + "City": "Mesto", + "ZipCode": "PSČ", + "Address": "Adresa", + "Homepage": "Domovská stránka", + "Year": "rok", + "Year_Plural": "rokov", + "Copyright": "Copyright © {1}", + "DomainDrivenDesign": "Dizajn riadený doménou", + "CrossCuttingConcerns": "Prierezové obavy", + "AbpCommunity": "Spoločenstvo ABP", + "Footer_GithubStarCount": "{0} hviezdičiek na GitHub", + "Footer_NugetDownloadCount": "Počet stiahnutí v službe NuGet: {0}", + "AbpDescription": "ABP je open source aplikačný rámec zameraný na vývoj webových aplikácií založených na AspNet Core. Neopakujte sa, zamerajte sa na svoj vlastný obchodný kód.", + "Layout_AbpFramework_MetaTitle": "Rámec ABP | Open source webový aplikačný rámec pre ASP.NET Core", + "CommunityTalks_CountdownDays": "Dni", + "CommunityTalks_CountdownHours": "hod", + "CommunityTalks_CountdownMinutes": "Min", + "CommunityTalks_CountdownSeconds": "Sek", + "SeePreviousEvents": "Pozrite si predchádzajúce udalosti", + "CookieConsent_Accept": "súhlasiť", + "CookieConsent_Explanation_1": "Používame cookies, aby sme vám poskytli čo najlepší zážitok z našej webovej stránky.", + "CookieConsent_Explanation_2": "Ak budete pokračovať v prehliadaní, súhlasíte s našimi zásadami ochrany osobných údajov a zásadami používania súborov cookie. .", + "Error_Page_400_Title": "Pri zobrazovaní požadovanej stránky sa vyskytol problém.", + "Error_Page_400_Description_1": "Zvyčajne to znamená, že sa počas spracovania vašej požiadavky vyskytla neočakávaná chyba.", + "Error_Page_400_Description_2": "Ak problém pretrváva, kontaktujte nás na adrese info@abp.io a my vám pomôžeme napredovať.", + "GoToHomepage": "Prejdi na domovskú stránku", + "Error_Page_404_Title": "Stránka nenájdená!", + "Error_Page_404_Description_1": "Toto nie je webová stránka, ktorú hľadáte.", + "Error_Page_500_Title": "Zdá sa, že sa niečo pokazilo!", + "Error_Page_500_Description_1": "Tieto chyby sledujeme automaticky, ale ak problém pretrváva, neváhajte
kontaktuj nás. Medzitým skúste osviežiť.", + "Error_Page_500_Description_2": "Kontaktujte nás na adrese info@abp.io .", + "Books": "knihy", + "ABPDiscordServer": "ABP Discord Server", + "ABPCommunityTalks": "Komunitné rozhovory ABP", + "ABPCommunityPosts": "Príspevky komunity ABP", + "BuyAndGetMonths": "KÚPTE 12 MESIACOV, ZÍSKAJTE 14 MESIACOV!", + "GetYourDeal": "Získajte svoju ponuku", + "BuyOrRenewLicense": "Kúpte si alebo obnovte licenciu teraz a získajte 2 mesiace navyše!", + "BuyOrRenewLicenseToGetExtra2Months": "Kúpte si alebo obnovte licenciu teraz a získajte 2 mesiace navyše! PONÁHĽAJ SA! ⏰ Posledný deň: {0}", + "HurryUp": "PONÁHĽAJ SA!", + "LastDay": "Posledný deň: {0}", + "BuyNewLicenseBetweenDatesToGetBenefit": "Kúpte si novú licenciu medzi {0} a {1} a získajte výhody na ďalšie 2 mesiace!", + "CheckAllCommunityTalks": "Skontrolujte všetky príspevky komunity", + "ReadMore": "Čítaj viac", + "ContinueReading": "Pokračovať v čítaní", + "Post": "Príspevok", + "ExploreTheContentsCreatedByTheCoreABPTeamAndTheABPCommunity": "Preskúmajte obsah vytvorený hlavným tímom ABP a komunitou ABP.", + "WelcomeFallCampaign": "Uvítacia jesenná kampaň!", + "GiveAwayForNewPurchases": "Školenie v triede vývoja aplikácií bude rozdané pre nové nákupy!", + "BlackFriday": "ČIERNY PIATOK", + "ValidForExistingCustomers": "Platí aj pre
existujúci zákazníci!", + "CampaignBetweenDates": "Od {0}
Komu {1}", + "SaveUpTo": "UŠETRÍTE{0}K $ $", + "ImplementingDDD": "Implementácia doménou riadeného dizajnu", + "ExploreTheEBook": "Preskúmajte elektronickú knihu", + "ExploreTheBook": "Preskúmajte Knihu", + "ConsultantType": "Typ poradenstva", + "Expert": "Expert ABP", + "Partner": "Partner ABP", + "Industry": "priemysel", + "Location": "Poloha", + "Contact": "Kontakt", + "Partner_Year": "Rok partnerstva", + "Info": "Info", + "SpokenLanguages": "Hovorené jazyky", + "SocialMedia": "Sociálne médiá", + "Activity": "Aktivita", + "Type": "Typ", + "Contribution": "Príspevok", + "WhoWeAre": "Kto sme", + "Icons": "ikony", + "Url": "Url", + "Icon": "Ikona", + "RecentActivities": "Nedávne aktivity", + "SpringCampaign": "Vitajte
Jarný výpredaj!", + "SpringCampaign2": "Obmedzené
Časová ponuka!
", + "AboutUs": "O nás", + "HowItWorks": "Ako to funguje?", + "ReleaseNotes": "Poznámky k vydaniu", + "DetailedChangeNotes": "Podrobné poznámky k zmenám", + "SeeTrainings": "Pozri Tréningy", + "NoContent": "Žiadny obsah", + "More": "Viac", + "WhyABPIOPlatform": "Prečo platforma ABP.IO?", + "AbpStudio": "Štúdio ABP", + "ExtraMonths": "{0} MESIACOV NAVYŠE", + "RSS": "RSS", + "RSSFeed": "RSS zdroj", + "Articles": "články", + "Organizations": "organizácie", + "ManageAccount": "Spravovať účet", + "CommunityProfile": "Profil komunity", + "BlogProfile": "Profil blogu", + "Tickets": "Vstupenky" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/sl.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/sl.json index db4d1b4f4b..1e54be3324 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/sl.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/sl.json @@ -14,6 +14,23 @@ "Volo.AbpIo.Domain:020002": "Tega paketa NPM ni mogoče izbrisati, ker \"{Modules}\" moduli uporabljajo ta paket.", "Volo.AbpIo.Domain:020003": "Tega paketa NPM ni mogoče izbrisati, ker \"{Modules}\" moduli uporabljajo ta paket in \"{NugetPackages}\" Nuget paketi so odvisni od tega paketa.", "Volo.AbpIo.Domain:020004": "Nuget paketa ni mogoče izbrisati, ker \"{Modules}\" moduli uporabljajo ta paket.", + "Volo.AbpIo.Domain:030000": "Preizkusno obdobje ste že zaključili.", + "Volo.AbpIo.Domain:030001": "To ime organizacije že obstaja.", + "Volo.AbpIo.Domain:030002": "Ko je licenca aktivirana, ne morete preklopiti preskusne licence v status -zahtevana-!", + "Volo.AbpIo.Domain:030003": "Takega statusa ni!", + "Volo.AbpIo.Domain:030004": "Statusa ni bilo mogoče spremeniti zaradi nepričakovane napake!", + "Volo.AbpIo.Domain:030005": "Začetni in končni datum je mogoče posodobiti, ko je preskusna licenca v statusu -aktivirano-!", + "Volo.AbpIo.Domain:030006": "Končni datum mora biti daljši od začetnega datuma!", + "Volo.AbpIo.Domain:030007": "Ta preizkusna licenca je že aktivirana!", + "Volo.AbpIo.Domain:030008": "Datum nakupa je možno nastaviti le, ko je status -kupljeno-!", + "Volo.AbpIo.Domain:030009": "Uporabnik ni najden!", + "Volo.AbpIo.Domain:030010": "Za nakup preizkusne licence morate najprej aktivirati preizkusno licenco!", + "Volo.AbpIo.Domain:030011": "Poskusne licence ne morete izbrisati, ko je kupljena!", + "Volo.AbpIo.Domain:030012": "Uporabnik ima pravico do samo 1 brezplačnega preizkusnega obdobja. Preizkusno licenco ste že uporabili.", + "Volo.AbpIo.Domain:030013": "Uporabnik z aktivno licenco ne more zagnati preizkusne licence.", + "Volo.AbpIo.Domain:040000": "Telemetrija že obstaja!.", + "Volo.AbpIo.Domain:070000": "Ime organizacije lahko vsebuje samo latinične črke, številke, pike in vezaje!", + "Volo.AbpIo.Domain:070001": "Ime podjetja lahko vsebuje samo latinične črke, številke, pike, presledke in vezaje!", "WantToLearn?": "Se želite naučiti?", "ReadyToGetStarted?": "Pripravljeni, da bi začeli?", "JoinOurCommunity": "Pridružite se naši skupnosti", @@ -39,6 +56,179 @@ "TrialLicensePeriodHasExpired": "Vaša preizkusna licenca je potekla pred {0} dnevi.", "TrialLicensePeriodWillExpire": "Vaša preizkusna licenca bo potekla čez {0} dni.", "TrialLicensePeriodExpireToday": "Vaša preizkusna licenca bo danes potekla.", - "PurchaseNow": "Kupi zdaj!" + "PurchaseNow": "Kupi zdaj!", + "LatestReleaseLogs": "Dnevniki najnovejših izdaj", + "RoadMap": "Cestni zemljevid", + "FAQ": "pogosta vprašanja", + "SourceCode": "Izvorna koda", + "SeeAllPosts": "Oglejte si vse objave", + "Contribute": "Prispevajte", + "LiveDemo": "Demo v živo", + "GetLicense": "Pridobite licenco", + "OpenSource": "Odprtokodno", + "WebApplication": "Spletna aplikacija", + "MeetTheABP": "Spoznajte ABP", + "CompleteWebDevelopment": "Popoln spletni razvoj", + "Platform": "Platforma", + "ABPDescription": "Odprtokodni okvir za razvoj spletnih aplikacij za ASP.NET Core. Ponuja popolno infrastrukturo z upoštevanjem najboljših praks razvoja programske opreme.", + "StrongInfrastructure": "Močna infrastruktura", + "CompleteArchitecture": "Popolna arhitektura", + "DeveloperFocused": "Osredotočen na razvijalca", + "ShareYourExperiences": "Delite svoje izkušnje z ogrodjem ABP", + "LatestPosts": "Najnovejše objave", + "LatestVideos": "Najnovejši videi", + "Views": "Pogledi", + "LearnLatestNewsAboutABPFramework": "Pridobite informacije o dogajanju v ABP, kot so nove izdaje, brezplačni viri, objave in drugo.", + "DeveloperTools": "Orodja za razvijalce", + "StartupTemplates": "Zagonske predloge", + "ApplicationModules": "Moduli aplikacije", + "UI": "uporabniški vmesnik", + "Themes": "Teme", + "Premium": "Premium", + "PrivacyPolicy": "Politika zasebnosti", + "TermsAndConditions": "Pogoji uporabe", + "WouldLikeToReceiveMarketingMaterials": "Želim prejemati marketinško gradivo, kot so ponudbe izdelkov in posebne ponudbe.", + "JoinOurMarketingNewsletter": "Pridružite se našemu marketinškemu glasilu", + "CommunityPrivacyPolicyConfirmation": "Strinjam se s pogoji in določili ter politiko zasebnosti .", + "WouldLikeToReceiveNotification": "Rad bi prejemal najnovejše novice s spletnih mest abp.io.", + "CommercialNewsletterConfirmationMessage": "Strinjam se s pogoji in določili ter politiko zasebnosti .", + "FreeDDDEBook": "Brezplačna e-knjiga DDD", + "AdditionalServices": "Dodatne storitve", + "Learn": "Naučite se", + "AccountOverview": "Pregled računa", + "MyOrganizations": "Moje organizacije", + "MySupportQuestions": "Moja vprašanja za podporo", + "MyProfile": "Moj profil", + "Logout": "Odjava", + "Home": "domov", + "Posts": "Objave", + "Videos": "Videoposnetki", + "JoinTheABPCommunity": "Pridružite se skupnosti ABP", + "SubmitYourPost": "Oddajte svojo objavo", + "Modules": "Moduli", + "Tools": "Orodja", + "Pricing": "Cenitev", + "ChangeLogs": "Dnevniki sprememb", + "SubscribeToNewsletter": "Naročite se na glasilo", + "SubscribeToNewsletterDescription": "Pridobite informacije o dogajanju v ABP, kot so nove izdaje, brezplačni viri, objave in drugo.", + "EmailAddress": "Email naslov", + "Subscribe": "Naročite se", + "WelcomeToABP": "Dobrodošli v ABP", + "EULA": "EULA", + "ABPCommercialIntroductionMessage": "Vnaprej zgrajeni aplikacijski moduli, napredne zagonske predloge, orodja za hiter razvoj aplikacij, profesionalne teme uporabniškega vmesnika in vrhunska podpora.", + "MasteringAbpFrameworkEBook": "Obvladovanje ogrodja ABP", + "MasteringTheABPFrameworkExplanation": "Ta knjiga, ki jo je napisal ustvarjalec ogrodja ABP, vam bo pomagala pridobiti popolno razumevanje ogrodja in sodobnih tehnik razvoja spletnih aplikacij.", + "Speakers": "Zvočniki", + "PreviousEvents": "Prejšnji dogodki", + "WatchTheEvent": "Oglejte si dogodek", + "RegisterNow": "Registriraj se zdaj", + "ThereIsNoEvent": "Ni dogodka.", + "Events": "Dogodki", + "Volo.AbpIo.Domain:080000": "Že obstaja predmet nakupa z imenom "{Name}"", + "MasteringAbpFrameworkBook": "Knjiga: Obvladovanje ogrodja ABP", + "ABPIO-CommonPreferenceDefinition": "Pridobite najnovejše novice o platformi ABP, kot so nove objave, dogodki in drugo.", + "BuiltOn": "Vgrajeno", + "AbpFramework": "Ogrodje ABP", + "Volo.AbpIo.Domain:080001": "Začetni čas ne sme biti daljši od končnega časa", + "Enum:BookType:0": "Obvladovanje ogrodja ABP", + "Enum:PurchasePlatform:0": "Amazon", + "Enum:PurchasePlatform:1": "paket", + "Copied": "Kopirano!", + "CouldNotCopy": "Ni bilo mogoče kopirati!", + "CopyNotSupportByYourBrowser": "Ta funkcija ne deluje v brskalniku, ki ga uporabljate.", + "City": "Mesto", + "ZipCode": "Poštna številka", + "Address": "Naslov", + "Homepage": "Domača stran", + "Year": "leto", + "Year_Plural": "leta", + "Copyright": "Avtorske pravice © {1}", + "DomainDrivenDesign": "Oblikovanje na podlagi domene", + "CrossCuttingConcerns": "Navzkrižne skrbi", + "AbpCommunity": "Skupnost ABP", + "Footer_GithubStarCount": "{0} zvezdic na GitHubu", + "Footer_NugetDownloadCount": "{0} Prenosi na NuGet", + "AbpDescription": "ABP je odprtokodno aplikacijsko ogrodje, osredotočeno na razvoj spletnih aplikacij na osnovi AspNet Core. Ne ponavljajte se, osredotočite se na svoj poslovni kodeks.", + "Layout_AbpFramework_MetaTitle": "Ogrodje ABP | Ogrodje odprtokodne spletne aplikacije za ASP.NET Core", + "CommunityTalks_CountdownDays": "Dnevi", + "CommunityTalks_CountdownHours": "ure", + "CommunityTalks_CountdownMinutes": "Min", + "CommunityTalks_CountdownSeconds": "Sec", + "SeePreviousEvents": "Oglejte si prejšnje dogodke", + "CookieConsent_Accept": "Sprejmi", + "CookieConsent_Explanation_1": "Uporabljamo piškotke, da vam zagotovimo najboljšo izkušnjo na naši spletni strani.", + "CookieConsent_Explanation_2": "Če nadaljujete z brskanjem, se strinjate z našo politiko zasebnosti in politiko piškotkov. .", + "Error_Page_400_Title": "Pri streženju zahtevane strani je prišlo do težave.", + "Error_Page_400_Description_1": "Običajno to pomeni, da je med obdelavo vaše zahteve prišlo do nepričakovane napake.", + "Error_Page_400_Description_2": "Če težave ne odpravite, nas kontaktirajte na info@abp.io in pomagali vam bomo priti na pot.", + "GoToHomepage": "Pojdite na domačo stran", + "Error_Page_404_Title": "Stran ni najdena!", + "Error_Page_404_Description_1": "To ni spletna stran, ki jo iščete.", + "Error_Page_500_Title": "Videti je, da je šlo nekaj narobe!", + "Error_Page_500_Description_1": "Tem napakam sledimo samodejno, če pa se težava ponovi, pogumno sledite
kontaktiraj nas. Medtem poskusite z osvežitvijo.", + "Error_Page_500_Description_2": "Pišite nam na info@abp.io .", + "Books": "knjige", + "ABPDiscordServer": "Strežnik ABP Discord", + "ABPCommunityTalks": "Pogovori skupnosti ABP", + "ABPCommunityPosts": "Objave v skupnosti ABP", + "BuyAndGetMonths": "KUPITE 12 MESECEV, DOBITE 14 MESECEV!", + "GetYourDeal": "Dobite svojo ponudbo", + "BuyOrRenewLicense": "Kupite ali obnovite licenco zdaj in pridobite 2 dodatna meseca!", + "BuyOrRenewLicenseToGetExtra2Months": "Kupite ali obnovite licenco zdaj in pridobite 2 dodatna meseca! POHITI! ⏰ Zadnji dan: {0}", + "HurryUp": "POHITI!", + "LastDay": "Zadnji dan: {0}", + "BuyNewLicenseBetweenDatesToGetBenefit": "Kupite novo licenco med {0} in {1} in pridobite ugodnosti za dodatna 2 meseca!", + "CheckAllCommunityTalks": "Preverite vse objave v skupnosti", + "ReadMore": "Preberi več", + "ContinueReading": "Nadaljujte z branjem", + "Post": "Objavi", + "ExploreTheContentsCreatedByTheCoreABPTeamAndTheABPCommunity": "Raziščite vsebine, ki sta jih ustvarili osrednja ekipa ABP in skupnost ABP.", + "WelcomeFallCampaign": "Dobrodošli v jesenski akciji!", + "GiveAwayForNewPurchases": "Usposabljanje v učilnici za razvoj aplikacij bo podarjeno za nove nakupe!", + "BlackFriday": "ČRNI PETEK", + "ValidForExistingCustomers": "Velja tudi za
obstoječe stranke!", + "CampaignBetweenDates": "Od {0}
Za {1}", + "SaveUpTo": "PRIHRANITE DO {0}K USD", + "ImplementingDDD": "Implementacija domensko vodenega oblikovanja", + "ExploreTheEBook": "Raziščite e-knjigo", + "ExploreTheBook": "Raziščite knjigo", + "ConsultantType": "Vrsta svetovanja", + "Expert": "Strokovnjak za ABP", + "Partner": "Partner ABP", + "Industry": "Industrija", + "Location": "Lokacija", + "Contact": "Kontakt", + "Partner_Year": "Leto partnerstva", + "Info": "Informacije", + "SpokenLanguages": "Govorjeni jeziki", + "SocialMedia": "Družbeni mediji", + "Activity": "dejavnost", + "Type": "Vrsta", + "Contribution": "Prispevek", + "WhoWeAre": "Kdo smo", + "Icons": "Ikone", + "Url": "URL", + "Icon": "Ikona", + "RecentActivities": "Nedavne dejavnosti", + "SpringCampaign": "dobrodošli
Spomladanska razprodaja!", + "SpringCampaign2": "Omejeno
Časovna ponudba!
", + "AboutUs": "O nas", + "HowItWorks": "Kako deluje?", + "ReleaseNotes": "Opombe ob izdaji", + "DetailedChangeNotes": "Podrobne opombe o spremembah", + "SeeTrainings": "Glejte Treningi", + "NoContent": "Brez vsebine", + "More": "več", + "WhyABPIOPlatform": "Zakaj platforma ABP.IO?", + "AbpStudio": "ABP Studio", + "ExtraMonths": "{0} DODATNIH MESECEV", + "RSS": "RSS", + "RSSFeed": "Vir RSS", + "Articles": "Članki", + "Organizations": "Organizacije", + "ManageAccount": "Upravljanje računa", + "CommunityProfile": "Profil skupnosti", + "BlogProfile": "Blog profil", + "Tickets": "Vstopnice" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/vi.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/vi.json index 0def5d45a4..d821a56fa5 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/vi.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/vi.json @@ -14,6 +14,23 @@ "Volo.AbpIo.Domain:020002": "Không thể xóa Gói NPM này vì Mô-đun \"{Modules}\" đang sử dụng gói này.", "Volo.AbpIo.Domain:020003": "Không thể xóa Gói NPM này vì Mô-đun \"{Modules}\" đang sử dụng gói này và \"{NugetPackages}\" Các Gói Nuget phụ thuộc vào gói này.", "Volo.AbpIo.Domain:020004": "Không thể xóa Gói Nuget này vì Mô-đun \"{Modules}\" đang sử dụng gói này.", + "Volo.AbpIo.Domain:030000": "Bạn đã hoàn thành thời gian dùng thử của mình.", + "Volo.AbpIo.Domain:030001": "Tên tổ chức này đã tồn tại.", + "Volo.AbpIo.Domain:030002": "Sau khi kích hoạt, bạn không thể chuyển giấy phép dùng thử sang trạng thái -requested-!", + "Volo.AbpIo.Domain:030003": "Không có trạng thái như vậy!", + "Volo.AbpIo.Domain:030004": "Không thể thay đổi trạng thái do xảy ra lỗi không mong muốn!", + "Volo.AbpIo.Domain:030005": "Ngày bắt đầu và ngày kết thúc có thể được cập nhật khi giấy phép dùng thử ở trạng thái -kích hoạt-!", + "Volo.AbpIo.Domain:030006": "Ngày kết thúc phải lớn hơn ngày bắt đầu!", + "Volo.AbpIo.Domain:030007": "Giấy phép dùng thử này đã được kích hoạt!", + "Volo.AbpIo.Domain:030008": "Ngày mua chỉ có thể được đặt khi trạng thái là -đã mua-!", + "Volo.AbpIo.Domain:030009": "Không tìm thấy người dùng!", + "Volo.AbpIo.Domain:030010": "Để mua giấy phép dùng thử, trước tiên bạn cần kích hoạt giấy phép dùng thử của mình!", + "Volo.AbpIo.Domain:030011": "Bạn không thể xóa giấy phép dùng thử khi nó được mua!", + "Volo.AbpIo.Domain:030012": "Người dùng chỉ được quyền có 1 thời gian dùng thử miễn phí. Bạn đã sử dụng giấy phép dùng thử của mình.", + "Volo.AbpIo.Domain:030013": "Người dùng có giấy phép đang hoạt động không thể bắt đầu giấy phép dùng thử.", + "Volo.AbpIo.Domain:040000": "Đo từ xa đã tồn tại!.", + "Volo.AbpIo.Domain:070000": "Tên tổ chức chỉ có thể chứa các chữ cái Latinh, số, dấu chấm và dấu gạch nối!", + "Volo.AbpIo.Domain:070001": "Tên công ty chỉ có thể chứa các chữ cái Latinh, số, dấu chấm, dấu cách và dấu gạch nối!", "WantToLearn?": "Muốn học?", "ReadyToGetStarted?": "Sẵn sàng để bắt đầu?", "JoinOurCommunity": "Tham gia cộng đồng của chúng tôi", @@ -39,6 +56,178 @@ "TrialLicensePeriodHasExpired": "Thời hạn giấy phép dùng thử của bạn đã hết hạn {0} ngày trước.", "TrialLicensePeriodWillExpire": "Thời gian cấp phép dùng thử của bạn sẽ hết hạn sau {0} ngày.", "TrialLicensePeriodExpireToday": "Thời gian cấp phép dùng thử của bạn sẽ hết hạn vào ngày hôm nay.", - "PurchaseNow": "Mua ngay!" + "PurchaseNow": "Mua ngay!", + "LatestReleaseLogs": "Nhật ký phát hành mới nhất", + "RoadMap": "Bản đồ đường đi", + "FAQ": "Câu hỏi thường gặp", + "SourceCode": "Mã nguồn", + "SeeAllPosts": "Xem tất cả bài viết", + "Contribute": "Đóng góp", + "LiveDemo": "Bản thử trực tiếp", + "GetLicense": "Nhận giấy phép", + "OpenSource": "Mã nguồn mở", + "WebApplication": "Ứng dụng web", + "MeetTheABP": "Gặp gỡ ABP", + "CompleteWebDevelopment": "Phát triển web hoàn chỉnh", + "Platform": "Nền tảng", + "ABPDescription": "Một framework mã nguồn mở để phát triển ứng dụng web cho ASP.NET Core. Nó cung cấp cơ sở hạ tầng hoàn chỉnh bằng cách tuân theo các phương pháp phát triển phần mềm tốt nhất.", + "StrongInfrastructure": "Cơ sở hạ tầng mạnh mẽ", + "CompleteArchitecture": "Kiến trúc hoàn chỉnh", + "DeveloperFocused": "Tập trung vào nhà phát triển", + "ShareYourExperiences": "Chia sẻ kinh nghiệm của bạn với ABP Framework", + "LatestPosts": "Bài viết mới nhất", + "LatestVideos": "Những video mới nhất", + "Views": "Lượt xem", + "LearnLatestNewsAboutABPFramework": "Nhận thông tin về các diễn biến trong ABP như bản phát hành mới, nguồn miễn phí, bài đăng, v.v.", + "DeveloperTools": "Những công cụ phát triển", + "StartupTemplates": "Mẫu khởi động", + "ApplicationModules": "Mô-đun ứng dụng", + "UI": "giao diện người dùng", + "Themes": "Chủ đề", + "Premium": "Phần thưởng", + "PrivacyPolicy": "Chính sách bảo mật", + "TermsAndConditions": "Điều khoản và điều kiện", + "WouldLikeToReceiveMarketingMaterials": "Tôi muốn nhận tài liệu tiếp thị như ưu đãi sản phẩm và ưu đãi đặc biệt.", + "JoinOurMarketingNewsletter": "Tham gia bản tin tiếp thị của chúng tôi", + "CommunityPrivacyPolicyConfirmation": "Tôi đồng ý với Điều khoản & Điều kiện và Chính sách quyền riêng tư .", + "WouldLikeToReceiveNotification": "Tôi muốn nhận tin tức mới nhất từ các trang web abp.io.", + "CommercialNewsletterConfirmationMessage": "Tôi đồng ý với Điều khoản & Điều kiệnChính sách quyền riêng tư .", + "FreeDDDEBook": "Sách điện tử DDD miễn phí", + "AdditionalServices": "Dịch vụ bổ sung", + "Learn": "Học hỏi", + "AccountOverview": "tổng quan vê tai khoản", + "MyOrganizations": "Tổ chức của tôi", + "MySupportQuestions": "Câu hỏi hỗ trợ của tôi", + "MyProfile": "Thông tin của tôi", + "Logout": "Đăng xuất", + "Home": "Trang chủ", + "Posts": "bài viết", + "Videos": "Video", + "JoinTheABPCommunity": "Tham gia cộng đồng ABP", + "SubmitYourPost": "Gửi bài viết của bạn", + "Modules": "Mô-đun", + "Tools": "Công cụ", + "Pricing": "Định giá", + "ChangeLogs": "Nhật ký thay đổi", + "SubscribeToNewsletter": "Đăng ký nhận bản tin", + "SubscribeToNewsletterDescription": "Nhận thông tin về các diễn biến trong ABP như bản phát hành mới, nguồn miễn phí, bài đăng, v.v.", + "EmailAddress": "Địa chỉ email", + "Subscribe": "Đặt mua", + "WelcomeToABP": "Chào mừng đến với ABP", + "EULA": "EULA", + "ABPCommercialIntroductionMessage": "Các mô-đun ứng dụng dựng sẵn, mẫu khởi động nâng cao, công cụ phát triển ứng dụng nhanh chóng, chủ đề giao diện người dùng chuyên nghiệp và hỗ trợ cao cấp.", + "MasteringAbpFrameworkEBook": "Nắm vững khung ABP", + "MasteringTheABPFrameworkExplanation": "Được viết bởi người tạo ra ABP Framework, cuốn sách này sẽ giúp bạn có được sự hiểu biết đầy đủ về framework và các kỹ thuật phát triển ứng dụng web hiện đại.", + "Speakers": "Diễn giả", + "PreviousEvents": "Sự kiện trước đó", + "WatchTheEvent": "Xem sự kiện", + "RegisterNow": "Đăng ký ngay", + "ThereIsNoEvent": "Không có sự kiện nào", + "Events": "Sự kiện", + "Volo.AbpIo.Domain:080000": "Đã có một mặt hàng mua có tên "{Name}"", + "MasteringAbpFrameworkBook": "Sách: Làm chủ khung ABP", + "ABPIO-CommonPreferenceDefinition": "Nhận tin tức mới nhất về Nền tảng ABP như bài đăng, sự kiện mới và hơn thế nữa.", + "BuiltOn": "Tích hợp sẵn", + "AbpFramework": "Khung ABP", + "Volo.AbpIo.Domain:080001": "Thời gian bắt đầu không được lớn hơn Thời gian kết thúc", + "Enum:BookType:0": "Nắm vững khung ABP", + "Enum:PurchasePlatform:0": "Amazon", + "Enum:PurchasePlatform:1": "gói", + "Copied": "Đã sao chép!", + "CouldNotCopy": "Không thể sao chép!", + "CopyNotSupportByYourBrowser": "Tính năng này không hoạt động trên trình duyệt bạn đang sử dụng.", + "City": "Thành phố", + "ZipCode": "Mã Bưu Chính", + "Address": "Địa chỉ", + "Homepage": "Trang chủ", + "Year": "Năm", + "Year_Plural": "Năm", + "Copyright": "Bản quyền © {1}", + "DomainDrivenDesign": "Thiết kế hướng tên miền", + "CrossCuttingConcerns": "Mối quan tâm xuyên suốt", + "AbpCommunity": "Cộng đồng ABP", + "Footer_GithubStarCount": "{0} Dấu sao trên GitHub", + "Footer_NugetDownloadCount": "{0} Tải xuống trên NuGet", + "AbpDescription": "ABP là một khung ứng dụng nguồn mở tập trung vào phát triển ứng dụng web dựa trên AspNet Core. Đừng lặp lại chính mình, hãy tập trung vào mã doanh nghiệp của riêng bạn.", + "Layout_AbpFramework_MetaTitle": "Khung ABP | Khung ứng dụng web nguồn mở cho ASP.NET Core", + "CommunityTalks_CountdownDays": "ngày", + "CommunityTalks_CountdownHours": "giờ", + "CommunityTalks_CountdownMinutes": "tối thiểu", + "CommunityTalks_CountdownSeconds": "Giây", + "SeePreviousEvents": "Xem sự kiện trước đó", + "CookieConsent_Accept": "Chấp nhận", + "CookieConsent_Explanation_1": "Chúng tôi sử dụng cookie để mang đến cho bạn trải nghiệm tốt nhất trên trang web của chúng tôi.", + "CookieConsent_Explanation_2": "Nếu bạn tiếp tục duyệt, nghĩa là bạn đồng ý với Chính sách quyền riêng tư và chính sách cookie của chúng tôi. .", + "Error_Page_400_Title": "Đã xảy ra sự cố khi phục vụ trang được yêu cầu.", + "Error_Page_400_Description_1": "Thông thường, điều này có nghĩa là đã xảy ra lỗi không mong muốn khi xử lý yêu cầu của bạn.", + "Error_Page_400_Description_2": "Nếu sự cố vẫn tiếp diễn, hãy liên hệ với chúng tôi theo địa chỉ info@abp.io và chúng tôi sẽ giúp bạn thực hiện.", + "GoToHomepage": "Đi đến trang chủ", + "Error_Page_404_Title": "Không tìm thấy trang!", + "Error_Page_404_Description_1": "Đây không phải là trang web bạn đang tìm kiếm.", + "Error_Page_500_Title": "Có vẻ như đã xảy ra sự cố!", + "Error_Page_500_Description_1": "Chúng tôi tự động theo dõi những lỗi này nhưng nếu sự cố vẫn tiếp diễn, vui lòng
liên hệ chúng tôi. Trong lúc chờ đợi, hãy thử làm mới.", + "Error_Page_500_Description_2": "Liên hệ với chúng tôi tại info@abp.io .", + "Books": "Sách", + "ABPDiscordServer": "Máy chủ bất hòa ABP", + "ABPCommunityTalks": "Tọa đàm cộng đồng ABP", + "ABPCommunityPosts": "Bài đăng trên cộng đồng ABP", + "BuyAndGetMonths": "MUA 12 THÁNG, NHẬN 14 THÁNG!", + "GetYourDeal": "Nhận ưu đãi của bạn", + "BuyOrRenewLicense": "Mua hoặc gia hạn giấy phép ngay bây giờ và nhận thêm 2 tháng!", + "BuyOrRenewLicenseToGetExtra2Months": "Mua hoặc gia hạn giấy phép ngay bây giờ và nhận thêm 2 tháng! NHANH LÊN! ⏰ Ngày cuối cùng: {0}", + "HurryUp": "NHANH LÊN!", + "LastDay": "Ngày cuối cùng: {0}", + "BuyNewLicenseBetweenDatesToGetBenefit": "Mua giấy phép mới trong khoảng thời gian từ {0} đến {1} để nhận được lợi ích thêm 2 tháng!", + "CheckAllCommunityTalks": "Kiểm tra tất cả bài đăng trên cộng đồng", + "ReadMore": "Đọc thêm", + "ContinueReading": "Tiếp tục đọc", + "Post": "Bưu kiện", + "ExploreTheContentsCreatedByTheCoreABPTeamAndTheABPCommunity": "Khám phá nội dung được tạo bởi nhóm ABP cốt lõi và cộng đồng ABP.", + "WelcomeFallCampaign": "Chào mừng chiến dịch mùa thu!", + "GiveAwayForNewPurchases": "Chương trình đào tạo trong lớp phát triển ứng dụng sẽ được tặng cho những lần mua hàng mới!", + "BlackFriday": "THỨ SÁU ĐEN", + "ValidForExistingCustomers": "Cũng có giá trị đối với
khách hàng hiện tại!", + "SaveUpTo": "TIẾT KIỆM LÊN ĐẾN ${0}K", + "ImplementingDDD": "Triển khai thiết kế hướng tên miền", + "ExploreTheEBook": "Khám phá sách điện tử", + "ExploreTheBook": "Khám phá cuốn sách", + "ConsultantType": "Loại hình tư vấn", + "Expert": "Chuyên gia ABP", + "Partner": "Đối tác ABP", + "Industry": "Ngành công nghiệp", + "Location": "Vị trí", + "Contact": "Liên hệ", + "Partner_Year": "Năm hợp tác", + "Info": "Thông tin", + "SpokenLanguages": "Ngôn ngữ nói", + "SocialMedia": "Truyền thông xã hội", + "Activity": "Hoạt động", + "Type": "Kiểu", + "Contribution": "Sự đóng góp", + "WhoWeAre": "Chúng ta là ai", + "Icons": "Biểu tượng", + "Url": "Url", + "Icon": "Biểu tượng", + "RecentActivities": "Hoạt động gần đây", + "SpringCampaign": "Chào mừng
Giảm giá mùa xuân!", + "SpringCampaign2": "Giới hạn
Ưu đãi thời gian!
", + "AboutUs": "Về chúng tôi", + "HowItWorks": "Làm thế nào nó hoạt động?", + "ReleaseNotes": "Ghi chú phát hành", + "DetailedChangeNotes": "Ghi chú thay đổi chi tiết", + "SeeTrainings": "Xem đào tạo", + "NoContent": "Không có nội dung", + "More": "Hơn", + "WhyABPIOPlatform": "Tại sao nên sử dụng nền tảng ABP.IO?", + "AbpStudio": "Studio ABP", + "ExtraMonths": "{0} THÊM THÁNG", + "RSS": "RSS", + "RSSFeed": "Nguồn cấp dữ liệu RSS", + "Articles": "Bài viết", + "Organizations": "Tổ chức", + "ManageAccount": "Quản lý tài khoản", + "CommunityProfile": "Hồ sơ cộng đồng", + "BlogProfile": "Hồ sơ blog", + "Tickets": "Vé" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/zh-Hans.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/zh-Hans.json index faf8b64d1f..f4b905eb81 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/zh-Hans.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/zh-Hans.json @@ -28,6 +28,7 @@ "Volo.AbpIo.Domain:030011": "购买后不能删除试用许可证!", "Volo.AbpIo.Domain:030012": "用户只有一个免费试用期。您已经使用了试用许可证。", "Volo.AbpIo.Domain:030013": "已激活许可证的用户无法启动试用许可证。", + "Volo.AbpIo.Domain:040000": "遥测已经存在!", "Volo.AbpIo.Domain:070000": "组织名称只能包含拉丁字母、数字、点和连字符!", "Volo.AbpIo.Domain:070001": "公司名称只能包含拉丁字母、数字、点、空格和连字符!", "WantToLearn?": "想学习吗?", @@ -179,6 +180,7 @@ "BuyNewLicenseBetweenDatesToGetBenefit": "在 {0} 和 {1} 之间购买一个新的许可证以获得额外 2 个月的收益!", "CheckAllCommunityTalks": "检查所有社区帖子", "ReadMore": "阅读更多", + "ContinueReading": "继续阅读", "Post": "邮政", "ExploreTheContentsCreatedByTheCoreABPTeamAndTheABPCommunity": "探索核心 ABP 团队和 ABP 社区创建的内容。", "WelcomeFallCampaign": "欢迎秋季活动!", @@ -210,6 +212,23 @@ "RecentActivities": "最近的活动", "SpringCampaign": "欢迎
春季促销!", "SpringCampaign2": "限时优惠!
", - "AboutUs": "关于我们" + "AboutUs": "关于我们", + "HowItWorks": "怎么运行的?", + "ReleaseNotes": "发行说明", + "DetailedChangeNotes": "详细变更说明", + "SeeTrainings": "查看培训", + "NoContent": "无内容", + "More": "更多的", + "WhyABPIOPlatform": "为什么选择ABP.IO平台?", + "AbpStudio": "总部基地工作室", + "ExtraMonths": "{0}个额外月份", + "RSS": "RSS", + "RSSFeed": "RSS订阅", + "Articles": "文章", + "Organizations": "组织机构", + "ManageAccount": "管理帐户", + "CommunityProfile": "社区简介", + "BlogProfile": "博客简介", + "Tickets": "门票" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/zh-Hant.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/zh-Hant.json index 09296689b1..04aea30db4 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/zh-Hant.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/zh-Hant.json @@ -14,6 +14,23 @@ "Volo.AbpIo.Domain:020002": "不能刪除該NPM套件因為\"{Modules}\"模組正在使用此套件.", "Volo.AbpIo.Domain:020003": "不能刪除該NPM套件因為\"{Modules}\"模組正在使用此套件並且\"{NugetPackages}\"Nuget套件依賴此套件.", "Volo.AbpIo.Domain:020004": "不能刪除該Nuget套件因為\"{Modules}\"模組正在使用此套件.", + "Volo.AbpIo.Domain:030000": "您已經完成了試用期。", + "Volo.AbpIo.Domain:030001": "該組織名稱已存在。", + "Volo.AbpIo.Domain:030002": "啟動後,您無法將試用許可證切換為「已要求」狀態!", + "Volo.AbpIo.Domain:030003": "沒有這樣的狀態!", + "Volo.AbpIo.Domain:030004": "由於意外錯誤,無法更改狀態!", + "Volo.AbpIo.Domain:030005": "當試用許可證處於「已啟動」狀態時,可以更新開始和結束日期!", + "Volo.AbpIo.Domain:030006": "結束日期必須晚於開始日期!", + "Volo.AbpIo.Domain:030007": "該試用許可證已被啟動!", + "Volo.AbpIo.Domain:030008": "僅當狀態為-已購買-時才能設定購買日期!", + "Volo.AbpIo.Domain:030009": "未找到用戶!", + "Volo.AbpIo.Domain:030010": "要購買試用許可證,您首先需要啟動您的試用許可證!", + "Volo.AbpIo.Domain:030011": "購買試用許可證後無法刪除!", + "Volo.AbpIo.Domain:030012": "一名用戶僅有 1 個免費試用期。您已經使用了試用許可證。", + "Volo.AbpIo.Domain:030013": "擁有有效許可證的使用者無法啟動試用許可證。", + "Volo.AbpIo.Domain:040000": "遙測已經存在!", + "Volo.AbpIo.Domain:070000": "組織名稱只能包含拉丁字母、數字、點和連字號!", + "Volo.AbpIo.Domain:070001": "公司名稱只能包含拉丁字母、數字、點、空格和連字號!", "WantToLearn?": "想學習嗎?", "ReadyToGetStarted?": "準備開始了嗎?", "JoinOurCommunity": "加入我們的社群", @@ -40,8 +57,178 @@ "TrialLicensePeriodWillExpire": "您的試用許可期限將在 {0} 天后到期。", "TrialLicensePeriodExpireToday": "您的試用許可期將於今天到期。", "PurchaseNow": "現在買!", + "LatestReleaseLogs": "最新發布日誌", + "RoadMap": "路線圖", + "FAQ": "常問問題", + "SourceCode": "原始碼", + "SeeAllPosts": "查看所有帖子", + "Contribute": "貢獻", + "LiveDemo": "現場演示", + "GetLicense": "獲得許可證", + "OpenSource": "開源", + "WebApplication": "Web應用程式", + "MeetTheABP": "認識 ABP", + "CompleteWebDevelopment": "完整的網頁開發", + "Platform": "平台", + "ABPDescription": "用於 ASP.NET Core Web 應用程式開發的開源框架。它遵循軟體開發的最佳實踐,提供完整的基礎設施。", + "StrongInfrastructure": "強大的基礎設施", + "CompleteArchitecture": "完整的架構", + "DeveloperFocused": "以開發者為中心", + "ShareYourExperiences": "分享您使用 ABP 框架的經驗", + "LatestPosts": "最新貼文", + "LatestVideos": "最新視頻", + "Views": "意見", + "LearnLatestNewsAboutABPFramework": "獲取有關 ABP 中發生的事情的信息,例如新版本、免費資源、帖子等。", + "DeveloperTools": "開發者工具", + "StartupTemplates": "啟動模板", + "ApplicationModules": "應用模組", + "UI": "使用者介面", + "Themes": "主題", + "Premium": "優質的", + "PrivacyPolicy": "隱私權政策", + "TermsAndConditions": "條款及條件", + "WouldLikeToReceiveMarketingMaterials": "我希望收到產品優惠和特別優惠等行銷資料。", + "JoinOurMarketingNewsletter": "加入我們的行銷通訊", + "CommunityPrivacyPolicyConfirmation": "我同意條款和條件以及隱私權政策。", + "WouldLikeToReceiveNotification": "我想從 abp.io 網站收到最新消息。", + "CommercialNewsletterConfirmationMessage": "我同意條款和條件以及隱私權政策。", + "FreeDDDEBook": "免費 DDD 電子書", + "AdditionalServices": "額外服務", + "Learn": "學習", + "AccountOverview": "帳號資訊", + "MyOrganizations": "我的組織", + "MySupportQuestions": "我的支持問題", + "MyProfile": "我的履歷", + "Logout": "登出", + "Home": "家", + "Posts": "貼文", + "Videos": "影片", + "JoinTheABPCommunity": "加入 ABP 社區", + "SubmitYourPost": "提交您的帖子", + "Modules": "模組", + "Tools": "工具", + "Pricing": "價錢", + "ChangeLogs": "變更日誌", + "SubscribeToNewsletter": "訂閱時事通訊", + "SubscribeToNewsletterDescription": "獲取有關 ABP 中發生的事情的信息,例如新版本、免費資源、帖子等。", + "EmailAddress": "電子郵件地址", + "Subscribe": "訂閱", + "WelcomeToABP": "歡迎來到總部基地", + "EULA": "最終用戶許可協議", + "ABPCommercialIntroductionMessage": "預先建置的應用程式模組、進階啟動範本、快速應用程式開發工具、專業的 UI 主題和進階支援。", + "MasteringAbpFrameworkEBook": "掌握ABP框架", + "MasteringTheABPFrameworkExplanation": "本書由 ABP 框架的創建者撰寫,將幫助您全面了解該框架和現代 Web 應用程式開發技術。", + "Speakers": "揚聲器", + "PreviousEvents": "往屆活動", + "WatchTheEvent": "觀看活動", + "RegisterNow": "現在註冊", + "ThereIsNoEvent": "沒有事件。", + "Events": "活動", + "Volo.AbpIo.Domain:080000": "已有一個名為「{Name}」的購買商品", + "MasteringAbpFrameworkBook": "書籍:掌握ABP框架", + "ABPIO-CommonPreferenceDefinition": "取得有關 ABP 平台的最新消息,例如新貼文、活動等。", + "BuiltOn": "建立在", + "AbpFramework": "動態業務流程框架", + "Volo.AbpIo.Domain:080001": "開始時間不能大於結束時間", + "Enum:BookType:0": "掌握ABP框架", + "Enum:PurchasePlatform:0": "亞馬遜", + "Enum:PurchasePlatform:1": "帕克特", + "Copied": "複製了!", + "CouldNotCopy": "無法複製!", + "CopyNotSupportByYourBrowser": "此功能在您使用的瀏覽器中無法運作。", + "City": "城市", + "ZipCode": "郵遞區號", + "Address": "地址", + "Homepage": "首頁", + "Year": "年", + "Year_Plural": "年", + "Copyright": "版權所有 © {1}", + "DomainDrivenDesign": "領域驅動設計", + "CrossCuttingConcerns": "交叉關注點", + "AbpCommunity": "總部社區", + "Footer_GithubStarCount": "{0} GitHub 上的星星", + "Footer_NugetDownloadCount": "{0} NuGet 上的下載", + "AbpDescription": "ABP 是一個開源應用程式框架,專注於基於 AspNet Core 的 Web 應用程式開發。不要重複自己,專注於自己的業務代碼。", + "Layout_AbpFramework_MetaTitle": "ABP框架| ASP.NET Core 的開源 Web 應用程式框架", + "CommunityTalks_CountdownDays": "天", + "CommunityTalks_CountdownHours": "小時", + "CommunityTalks_CountdownMinutes": "最小", + "CommunityTalks_CountdownSeconds": "秒", + "SeePreviousEvents": "查看之前的活動", + "CookieConsent_Accept": "接受", + "CookieConsent_Explanation_1": "我們使用 cookie 為您提供最好的網站體驗。", + "CookieConsent_Explanation_2": "如果您繼續瀏覽,表示您同意我們的隱私權政策和 cookie 政策。 。", + "Error_Page_400_Title": "提供請求的頁面時出現問題。", + "Error_Page_400_Description_1": "通常這意味著在處理您的請求時發生了意外錯誤。", + "Error_Page_400_Description_2": "如果問題仍然存在,請透過info@abp.io聯絡我們,我們將協助您解決問題。", + "GoToHomepage": "去首頁", + "Error_Page_404_Title": "找不到網頁!", + "Error_Page_404_Description_1": "這不是您要尋找的網頁。", + "Error_Page_500_Title": "看來出了什麼問題!", + "Error_Page_500_Description_1": "我們會自動追蹤這些錯誤,但如果問題仍然存在,請隨時
聯繫我們。同時,嘗試刷新。", + "Error_Page_500_Description_2": "請透過info@abp.io與我們聯繫。", + "Books": "圖書", + "ABPDiscordServer": "ABP 不一致伺服器", + "ABPCommunityTalks": "ABP 社區講座", + "ABPCommunityPosts": "ABP 社群貼文", + "BuyAndGetMonths": "購買 12 個月,獲贈 14 個月!", + "GetYourDeal": "得到你的優惠", + "BuyOrRenewLicense": "立即購買或續訂許可證,即可獲得額外 2 個月的使用期限!", + "BuyOrRenewLicenseToGetExtra2Months": "立即購買或續訂許可證,即可獲得額外 2 個月的使用期限!趕快! ⏰ 最後一天:{0}", + "HurryUp": "趕快!", + "LastDay": "最後一天:{0}", + "BuyNewLicenseBetweenDatesToGetBenefit": "在 {0} 到 {1} 之間購買新授權即可獲得額外 2 個月的權益!", + "CheckAllCommunityTalks": "檢查所有社區帖子", + "ReadMore": "閱讀更多", + "ContinueReading": "繼續閱讀", + "Post": "郵政", + "ExploreTheContentsCreatedByTheCoreABPTeamAndTheABPCommunity": "探索 ABP 核心團隊和 ABP 社群創建的內容。", "WelcomeFallCampaign": "欢迎秋季活动!", "GiveAwayForNewPurchases": "新购买将赠送应用程序开发课堂培训!", - "AboutUs": "關於我們" + "BlackFriday": "黑色星期五_", + "ValidForExistingCustomers": "也適用於
現有客戶!", + "CampaignBetweenDates": "來自{0}
至{1}", + "SaveUpTo": "節省高達${0}K", + "ImplementingDDD": "實施領域驅動設計", + "ExploreTheEBook": "探索電子書", + "ExploreTheBook": "探索這本書", + "ConsultantType": "諮詢類型", + "Expert": "動態血壓專家", + "Partner": "總部基地合作夥伴", + "Industry": "產業", + "Location": "地點", + "Contact": "接觸", + "Partner_Year": "合作年", + "Info": "資訊", + "SpokenLanguages": "口說", + "SocialMedia": "社群媒體", + "Activity": "活動", + "Type": "類型", + "Contribution": "貢獻", + "WhoWeAre": "我們是誰", + "Icons": "圖示", + "Url": "網址", + "Icon": "圖示", + "RecentActivities": "最近的活動", + "SpringCampaign": "歡迎
春季促銷!", + "SpringCampaign2": "有限的
限時優惠!
", + "AboutUs": "關於我們", + "HowItWorks": "怎麼運作的?", + "ReleaseNotes": "發行說明", + "DetailedChangeNotes": "詳細變更說明", + "SeeTrainings": "查看培訓", + "NoContent": "無內容", + "More": "更多的", + "WhyABPIOPlatform": "為什麼選擇ABP.IO平台?", + "AbpStudio": "總部基地工作室", + "ExtraMonths": "{0}個額外月份", + "RSS": "RSS", + "RSSFeed": "RSS訂閱", + "Articles": "文章", + "Organizations": "組織機構", + "ManageAccount": "管理帳號", + "CommunityProfile": "社區簡介", + "BlogProfile": "部落格簡介", + "Tickets": "門票" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Blog/Localization/Resources/ar.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Blog/Localization/Resources/ar.json index 6da2313da5..c7bde9bf1a 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Blog/Localization/Resources/ar.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Blog/Localization/Resources/ar.json @@ -2,6 +2,7 @@ "culture": "ar", "texts": { "AbpTitle": "قراءة جميع مشاركات المدونة", - "AbpDescription": "ABP هو إطار عمل مفتوح المصدر يركز على تطوير تطبيقات الويب القائمة على AspNet Core. لا تكرر نفسك ، ركز على كود عملك الخاص." + "AbpDescription": "ABP هو إطار عمل مفتوح المصدر يركز على تطوير تطبيقات الويب القائمة على AspNet Core. لا تكرر نفسك ، ركز على كود عملك الخاص.", + "AbpDefinition": "مدونة ABP لتطوير .NET، والأنظمة الأساسية المشتركة، وقوالب تطبيقات ASP.NET، والأخبار المتعلقة بـ ABP والمزيد..." } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Blog/Localization/Resources/cs.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Blog/Localization/Resources/cs.json new file mode 100644 index 0000000000..80ec2d076d --- /dev/null +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Blog/Localization/Resources/cs.json @@ -0,0 +1,8 @@ +{ + "culture": "cs", + "texts": { + "AbpTitle": "Přečtěte si všechny příspěvky na blogu", + "AbpDescription": "ABP je open source aplikační framework zaměřený na vývoj webových aplikací založených na AspNet Core. Neopakujte se, zaměřte se na svůj vlastní obchodní kód.", + "AbpDefinition": "Blog ABP pro vývoj .NET, multiplatformní, šablony aplikací ASP.NET, novinky související s ABP a další..." + } +} \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Blog/Localization/Resources/de.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Blog/Localization/Resources/de.json new file mode 100644 index 0000000000..495be13262 --- /dev/null +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Blog/Localization/Resources/de.json @@ -0,0 +1,8 @@ +{ + "culture": "de", + "texts": { + "AbpTitle": "Lesen Sie alle Blog-Beiträge", + "AbpDescription": "ABP ist ein Open-Source-Anwendungsframework, das sich auf die Entwicklung von Webanwendungen auf Basis von AspNet Core konzentriert. Wiederholen Sie sich nicht, konzentrieren Sie sich auf Ihren eigenen Geschäftscode.", + "AbpDefinition": "ABP-Blog für .NET-Entwicklung, plattformübergreifende ASP.NET-Anwendungsvorlagen, ABP-bezogene Neuigkeiten und mehr ..." + } +} \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Blog/Localization/Resources/es.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Blog/Localization/Resources/es.json new file mode 100644 index 0000000000..b9317f9807 --- /dev/null +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Blog/Localization/Resources/es.json @@ -0,0 +1,8 @@ +{ + "culture": "es", + "texts": { + "AbpTitle": "Leer todas las publicaciones del blog", + "AbpDescription": "ABP es un marco de aplicación de código abierto centrado en el desarrollo de aplicaciones web basado en AspNet Core. No te repitas, concéntrate en tu propio código comercial.", + "AbpDefinition": "Blog de ABP para desarrollo .NET, multiplataforma, plantillas de aplicaciones ASP.NET, noticias relacionadas con ABP y más..." + } +} \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Blog/Localization/Resources/fr.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Blog/Localization/Resources/fr.json new file mode 100644 index 0000000000..e706054b6e --- /dev/null +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Blog/Localization/Resources/fr.json @@ -0,0 +1,8 @@ +{ + "culture": "fr", + "texts": { + "AbpTitle": "Lire tous les articles du blog", + "AbpDescription": "ABP est un framework d'application open source axé sur le développement d'applications Web basées sur AspNet Core. Ne vous répétez pas, concentrez-vous sur votre propre code d'entreprise.", + "AbpDefinition": "Blog ABP pour le développement .NET, multiplateforme, modèles d'application ASP.NET, actualités liées à ABP et plus encore..." + } +} \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Blog/Localization/Resources/hi.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Blog/Localization/Resources/hi.json new file mode 100644 index 0000000000..4c305f9b86 --- /dev/null +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Blog/Localization/Resources/hi.json @@ -0,0 +1,8 @@ +{ + "culture": "hi", + "texts": { + "AbpTitle": "सभी ब्लॉग पोस्ट पढ़ें", + "AbpDescription": "एबीपी एक ओपन सोर्स एप्लिकेशन फ्रेमवर्क है जो एएसपीनेट कोर आधारित वेब एप्लिकेशन डेवलपमेंट पर केंद्रित है। अपने आप को दोहराएँ नहीं, अपने व्यवसाय कोड पर ध्यान केंद्रित करें।", + "AbpDefinition": ".NET विकास, क्रॉस-प्लेटफ़ॉर्म, ASP.NET एप्लिकेशन टेम्प्लेट, ABP से संबंधित समाचार और बहुत कुछ के लिए ABP ब्लॉग..." + } +} \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Blog/Localization/Resources/hr.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Blog/Localization/Resources/hr.json new file mode 100644 index 0000000000..1d70c5a8a2 --- /dev/null +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Blog/Localization/Resources/hr.json @@ -0,0 +1,8 @@ +{ + "culture": "hr", + "texts": { + "AbpTitle": "Pročitajte sve postove na blogu", + "AbpDescription": "ABP je aplikacijski okvir otvorenog koda usmjeren na razvoj web aplikacija temeljen na AspNet Core. Nemojte se ponavljati, usredotočite se na vlastiti poslovni kod.", + "AbpDefinition": "ABP blog za .NET razvoj, više platformi, ASP.NET predloške aplikacija, vijesti vezane uz ABP i više..." + } +} \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Blog/Localization/Resources/hu.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Blog/Localization/Resources/hu.json index 0cd40d0d5a..e1c8c27c15 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Blog/Localization/Resources/hu.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Blog/Localization/Resources/hu.json @@ -2,6 +2,7 @@ "culture": "hu", "texts": { "AbpTitle": "ABP Framework – Nyílt forráskódú webalkalmazás-keretrendszer", - "AbpDescription": "Az ABP egy nyílt forráskódú alkalmazáskeret, amely az AspNet Core alapú webalkalmazások fejlesztésére összpontosít. Ne ismételje magát, összpontosítson saját üzleti kódjára." + "AbpDescription": "Az ABP egy nyílt forráskódú alkalmazáskeret, amely az AspNet Core alapú webalkalmazások fejlesztésére összpontosít. Ne ismételje magát, összpontosítson saját üzleti kódjára.", + "AbpDefinition": "ABP blog .NET fejlesztéshez, többplatformos, ASP.NET alkalmazássablonokhoz, ABP-vel kapcsolatos hírekhez és egyebekhez..." } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Blog/Localization/Resources/is.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Blog/Localization/Resources/is.json new file mode 100644 index 0000000000..d8ba5e9925 --- /dev/null +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Blog/Localization/Resources/is.json @@ -0,0 +1,8 @@ +{ + "culture": "is", + "texts": { + "AbpTitle": "Lestu allar bloggfærslur", + "AbpDescription": "ABP er opinn hugbúnaðarrammi sem einbeitir sér að AspNet Core byggðri vefforritaþróun. Ekki endurtaka sjálfan þig, einbeittu þér að eigin viðskiptakóða.", + "AbpDefinition": "ABP blogg fyrir .NET þróun, krossvettvang, ASP.NET forritasniðmát, ABP tengdar fréttir og fleira..." + } +} \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Blog/Localization/Resources/it.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Blog/Localization/Resources/it.json new file mode 100644 index 0000000000..085b99e3d7 --- /dev/null +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Blog/Localization/Resources/it.json @@ -0,0 +1,8 @@ +{ + "culture": "it", + "texts": { + "AbpTitle": "Leggi tutti i post del blog", + "AbpDescription": "ABP è un framework applicativo open source incentrato sullo sviluppo di applicazioni Web basate su AspNet Core. Non ripeterti, concentrati sul tuo codice aziendale.", + "AbpDefinition": "Blog ABP per sviluppo .NET, multipiattaforma, modelli di applicazioni ASP.NET, notizie relative a ABP e altro ancora..." + } +} \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Blog/Localization/Resources/nl.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Blog/Localization/Resources/nl.json new file mode 100644 index 0000000000..8d3bc4252e --- /dev/null +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Blog/Localization/Resources/nl.json @@ -0,0 +1,8 @@ +{ + "culture": "nl", + "texts": { + "AbpTitle": "Lees alle blogberichten", + "AbpDescription": "ABP is een open source applicatieframework gericht op de ontwikkeling van op AspNet Core gebaseerde webapplicaties. Herhaal uzelf niet, maar concentreer u op uw eigen bedrijfscode.", + "AbpDefinition": "ABP-blog voor .NET-ontwikkeling, platformonafhankelijk, ASP.NET-toepassingssjablonen, ABP-gerelateerd nieuws en meer..." + } +} \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Blog/Localization/Resources/pl-PL.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Blog/Localization/Resources/pl-PL.json new file mode 100644 index 0000000000..e390b108ac --- /dev/null +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Blog/Localization/Resources/pl-PL.json @@ -0,0 +1,8 @@ +{ + "culture": "pl-PL", + "texts": { + "AbpTitle": "Przeczytaj wszystkie posty na blogu", + "AbpDescription": "ABP to platforma aplikacji typu open source skupiająca się na tworzeniu aplikacji internetowych opartych na AspNet Core. Nie powtarzaj się, skup się na własnym kodzie biznesowym.", + "AbpDefinition": "Blog ABP poświęcony programowaniu .NET, wieloplatformowości, szablonom aplikacji ASP.NET, aktualnościom związanym z ABP i nie tylko..." + } +} \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Blog/Localization/Resources/pt-BR.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Blog/Localization/Resources/pt-BR.json index 2012b4c128..bc0200f3d0 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Blog/Localization/Resources/pt-BR.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Blog/Localization/Resources/pt-BR.json @@ -1,5 +1,8 @@ { "culture": "pt-BR", "texts": { + "AbpTitle": "Leia todas as postagens do blog", + "AbpDescription": "ABP é uma estrutura de aplicativos de código aberto focada no desenvolvimento de aplicativos da web baseados em AspNet Core. Não se repita, concentre-se no seu próprio código comercial.", + "AbpDefinition": "Blog da ABP para desenvolvimento .NET, plataforma cruzada, modelos de aplicativos ASP.NET, notícias relacionadas à ABP e muito mais..." } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Blog/Localization/Resources/ro-RO.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Blog/Localization/Resources/ro-RO.json index c5a76c1617..b014579e3b 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Blog/Localization/Resources/ro-RO.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Blog/Localization/Resources/ro-RO.json @@ -1,5 +1,8 @@ { "culture": "ro-RO", "texts": { + "AbpTitle": "Citiți toate postările de pe blog", + "AbpDescription": "ABP este un cadru de aplicații open source axat pe dezvoltarea de aplicații web bazate pe AspNet Core. Nu te repeta, concentrează-te pe propriul tău cod de afaceri.", + "AbpDefinition": "Blog ABP pentru dezvoltare .NET, multi-platformă, șabloane de aplicații ASP.NET, știri legate de ABP și multe altele..." } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Blog/Localization/Resources/sk.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Blog/Localization/Resources/sk.json new file mode 100644 index 0000000000..080e2a8aeb --- /dev/null +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Blog/Localization/Resources/sk.json @@ -0,0 +1,8 @@ +{ + "culture": "sk", + "texts": { + "AbpTitle": "Prečítajte si všetky blogové príspevky", + "AbpDescription": "ABP je open source aplikačný rámec zameraný na vývoj webových aplikácií založených na AspNet Core. Neopakujte sa, zamerajte sa na svoj vlastný obchodný kód.", + "AbpDefinition": "Blog ABP pre vývoj .NET, multiplatformové, šablóny aplikácií ASP.NET, novinky súvisiace s ABP a ďalšie..." + } +} \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Blog/Localization/Resources/sl.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Blog/Localization/Resources/sl.json index 103359cbc2..0d72aa54c7 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Blog/Localization/Resources/sl.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Blog/Localization/Resources/sl.json @@ -1,5 +1,8 @@ { "culture": "sl", "texts": { + "AbpTitle": "Preberi vse objave v spletnem dnevniku", + "AbpDescription": "ABP je odprtokodno aplikacijsko ogrodje, osredotočeno na razvoj spletnih aplikacij na osnovi AspNet Core. Ne ponavljajte se, osredotočite se na svoj poslovni kodeks.", + "AbpDefinition": "Blog ABP za razvoj .NET, večplatformske predloge aplikacij ASP.NET, novice v zvezi z ABP in več ..." } -} +} \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Blog/Localization/Resources/vi.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Blog/Localization/Resources/vi.json new file mode 100644 index 0000000000..1c400cdd74 --- /dev/null +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Blog/Localization/Resources/vi.json @@ -0,0 +1,8 @@ +{ + "culture": "vi", + "texts": { + "AbpTitle": "Đọc tất cả bài viết trên blog", + "AbpDescription": "ABP là một khung ứng dụng nguồn mở tập trung vào phát triển ứng dụng web dựa trên AspNet Core. Đừng lặp lại chính mình, hãy tập trung vào mã doanh nghiệp của riêng bạn.", + "AbpDefinition": "Blog ABP để phát triển .NET, đa nền tảng, mẫu ứng dụng ASP.NET, tin tức liên quan đến ABP và hơn thế nữa..." + } +} \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Blog/Localization/Resources/zh-Hant.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Blog/Localization/Resources/zh-Hant.json index 7de3798218..9a24ba3df7 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Blog/Localization/Resources/zh-Hant.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Blog/Localization/Resources/zh-Hant.json @@ -1,5 +1,8 @@ { "culture": "zh-Hant", "texts": { + "AbpTitle": "閱讀所有部落格文章", + "AbpDescription": "ABP 是一個開源應用程式框架,專注於基於 AspNet Core 的 Web 應用程式開發。不要重複自己,專注於自己的業務代碼。", + "AbpDefinition": "用於 .NET 開發、跨平台、ASP.NET 應用程式模板、ABP 相關新聞等等的 ABP 部落格..." } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json index 536612d6a0..856d4d755c 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json @@ -49,7 +49,7 @@ "IndexPageHeroSection": "A complete web development platformbuilt-on framework", "AbpCommercialShortDescription": "ABP Commercial provides pre-built application modules, rapid application development tooling, professional UI themes, premium support and more.", "LiveDemo": "Live Demo", - "LiveDemoLead": "{1} using your ABP account, {3} to abp.io.
or fill the form below to create a live demo now", + "LiveDemoLead": "{1} using your ABP account, {3} to abp.io
or fill the form below to create a live demo now", "ThereIsAlreadyAnAccountWithTheGivenEmailAddress": "There is already an account with the given email address: {0}
You can login with your account to proceed.", "GetLicence": "Get a License", "Application": "Application", @@ -998,10 +998,10 @@ "CreatingAnEmptySolution": "Creating an Empty Solution", "THEPROBLEM": "THE PROBLEM", "CreatingAnEmptySolution_THEPROBLEM_Description": "Even creating an almost-empty solution is challenging;", - "CreatingAnEmptySolution_THEPROBLEM_Description2": "How do you organize your codebase across projects?", + "CreatingAnEmptySolution_THEPROBLEM_Description2": "How do you organize your code-base across projects?", "CreatingAnEmptySolution_THEPROBLEM_Description3": "What are the layers and how do they interact?", - "CreatingAnEmptySolution_THEPROBLEM_Description4": "How do you integrate to 3rd-party library and systems?", - "CreatingAnEmptySolution_THEPROBLEM_Description5": "How to set up the automated tests?", + "CreatingAnEmptySolution_THEPROBLEM_Description4": "How do you integrate to 3rd-party libraries?", + "CreatingAnEmptySolution_THEPROBLEM_Description5": "How to set up automated tests?", "ABPSOLUTION": "ABP SOLUTION", "CreatingAnEmptySolution_ABPSOLUTION_Description": "ABP provides a well-architected, layered and production-ready startup solution based on the Domain Driven Design principles. The solution also includes a pre-configured unit and integration test projects for each layer.", "CommonLibraries": "Common Libraries", diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/hr.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/hr.json new file mode 100644 index 0000000000..ed43e52ef0 --- /dev/null +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/hr.json @@ -0,0 +1,1089 @@ +{ + "culture": "hr", + "texts": { + "OrganizationManagement": "Upravljanje organizacijom", + "OrganizationList": "Popis organizacija", + "Volo.AbpIo.Commercial:010003": "Vi niste vlasnik ove organizacije!", + "OrganizationNotFoundMessage": "Organizacija nije pronađena!", + "DeveloperCount": "Dodijeljeni / ukupni programeri", + "QuestionCount": "Preostala / ukupno pitanja", + "Unlimited": "Neograničen", + "Owners": "Vlasnici", + "Owner": "Vlasnik", + "AddMember": "Dodaj člana", + "AddNewOwner": "Dodaj novog vlasnika", + "AddNewDeveloper": "Dodaj novog programera", + "UserName": "Korisničko ime", + "Name": "Ime", + "EmailAddress": "Email adresa", + "Developers": "Programeri", + "LicenseType": "Vrsta licence", + "Manage": "Upravljati", + "SetDefault": "Postavi kao zadano", + "DefaultOrganization": "Zadano", + "StartDate": "Početni datum", + "EndDate": "Datum završetka", + "Modules": "Moduli", + "LicenseExtendMessage": "Vaš datum završetka licence produljuje se do {0}", + "LicenseUpgradeMessage": "Vaša je licenca nadograđena na {0}", + "LicenseExtendAdnUpgradeMessage": "Vaša je licenca produžena do {0}, a vaš licencni plan nadograđen je na {1}.", + "LicenseAddDeveloperMessage": "{0} programera dodano vašoj licenci", + "Volo.AbpIo.Commercial:010004": "Ne mogu pronaći navedenog korisnika! Korisnik mora biti već registriran.", + "MyOrganizations": "Moje organizacije", + "ApiKey": "API ključ", + "UserNameNotFound": "Ne postoji korisnik s korisničkim imenom {0}", + "SuccessfullyAddedToNewsletter": "Hvala što ste se pretplatili na naš newsletter!", + "MyProfile": "Moj profil", + "EmailNotValid": "Unesite važeću adresu e-pošte.", + "JoinOurMarketingNewsletter": "Pridružite se našem marketinškom biltenu", + "WouldLikeToReceiveMarketingMaterials": "Želio bih primati marketinške vijesti poput ponuda proizvoda i posebnih ponuda.", + "StartUsingYourLicenseNow": "Počnite koristiti svoju licencu sada!", + "WelcomePage": "Stranica dobrodošlice", + "UnsubscriptionExpireEmail": "Otkažite pretplatu na e-poruke s podsjetnicima o datumu isteka licence", + "UnsubscribeLicenseExpireEmailReminderMessage": "Ova pretplata e-poštom sadrži samo podsjetnike o datumu isteka vaše licence.", + "UnsubscribeFromLicenseExpireEmails": "Ako ne želite primati e-poruke o datumu isteka licence, možete se odjaviti u bilo kojem trenutku.", + "Unsubscribe": "Odjavi pretplatu", + "NotOrganizationMember": "Niste član niti jedne organizacije.", + "UnsubscribeLicenseExpirationEmailSuccessTitle": "Uspješno otkazana pretplata", + "UnsubscribeLicenseExpirationEmailSuccessMessage": "Više nećete primati e-poruke s podsjetnicima o datumu isteka licence.", + "IndexPageHeroSection": "Kompletna ugrađena platforma za web razvoj okvir", + "AbpCommercialShortDescription": "ABP Commercial nudi unaprijed izgrađene aplikacijske module, alate za brzi razvoj aplikacija, profesionalne UI teme, vrhunsku podršku i više.", + "LiveDemo": "Demo uživo", + "LiveDemoLead": "{1} koristeći svoj ABP račun, {3} na abp.io.
Ili ispunite obrazac u nastavku da sada napravite demo uživo", + "ThereIsAlreadyAnAccountWithTheGivenEmailAddress": "Već postoji račun s navedenom adresom e-pošte: {0}
Za nastavak se možete prijaviti svojim računom.", + "GetLicence": "Nabavite licencu", + "Application": "Primjena", + "StartupTemplates": "Predlošci za pokretanje", + "Startup": "Pokretanje", + "Templates": "Predlošci", + "Developer": "Developer", + "Tools": "Alati", + "Premium": "Premija", + "PremiumSupport": "Premium podrška", + "PremiumForumSupport": "Vrhunska podrška za forum", + "UI": "korisničko sučelje", + "Themes": "Teme", + "JoinOurNewsletter": "Pridružite se našem biltenu", + "Send": "Poslati", + "WhatIsABPFramework": "ŠTO JE OKVIR ABP-a?", + "OpenSourceBaseFramework": "Open Source Base Framework", + "ABPFrameworkExplanation": "

ABP Commercial temelji se na ABP Frameworku, okviru web aplikacije otvorenog koda i zajednici za ASP.NET Core.

ABP Framework pruža izvrsnu infrastrukturu za pisanje koda koji se može održavati, proširiti i testirati s najboljim praksama.

Izgrađen na popularnim alatima koje već poznajete i integriran u njih. Niska krivulja učenja, laka prilagodba, ugodan razvoj.

", + "Modular": "Modularni", + "MicroserviceCompatible": "Kompatibilan s mikroservisom", + "DomainDrivenDesignInfrastructure": "Infrastruktura dizajna vođena domenom", + "MultiTenancy": "Multi-Tenancy", + "DistributedMessaging": "Distribuirano slanje poruka", + "DynamicProxying": "Dinamički proxy", + "BackgroundJobs": "Pozadinski poslovi", + "AuditLogging": "Zapisivanje revizije", + "BLOBStoring": "BLOB pohranjivanje", + "BundlingMinification": "Grupiranje i smanjivanje", + "AdvancedLocalization": "Napredna lokalizacija", + "ManyMore": "Mnogo više", + "ExploreTheABPFramework": "Istražite ABP Framework", + "WhyUseTheABPCommercial": "Zašto koristiti ABP reklamu?", + "WhyUseTheABPCommercialExplanation": "

Izrada web aplikacija poslovne razine može biti složena i dugotrajna.

ABP Commercial nudi savršenu osnovnu infrastrukturu potrebnu za sva moderna rješenja koja se temelje na ASP.NET Core-u. Od dizajna do implementacije, cijeli razvojni ciklus osnažen je ABP-ovim ugrađenim značajkama i modulima.

", + "StartupTemplatesShortDescription": "Predlošci za pokretanje omogućuju vam brzi početak vašeg projekta u nekoliko sekundi.", + "UIFrameworksOptions": "mogućnosti okvira korisničkog sučelja;", + "DatabaseProviderOptions": "Mogućnosti pružatelja baze podataka;", + "PreBuiltApplicationModules": "Unaprijed izgrađeni aplikacijski moduli", + "PreBuiltApplicationModulesShortDescription": "Najčešći zahtjevi za aplikacije već su razvijeni za vas kao moduli za višekratnu upotrebu.", + "Account": "Račun", + "Blogging": "Bloganje", + "Identity": "Identitet", + "IdentityServer": "Poslužitelj identiteta", + "Saas": "Saas", + "LanguageManagement": "Upravljanje jezikom", + "TextTemplateManagement": "Upravljanje tekstualnim predlošcima", + "See All Modules": "VidiSveModule", + "ABPSuite": "ABP Suite", + "AbpSuiteShortDescription": "ABP Suite je komplementaran alat za ABP Commercial.", + "AbpSuiteExplanation": "Omogućuje vam izradu web stranica u nekoliko minuta. To je .NET Core Global alat koji se može instalirati iz naredbenog retka. Može stvoriti novo ABP rješenje i generirati CRUD stranice iz baze podataka prema front-endu.", + "Details": "pojedinosti", + "LeptonTheme": "Tema Lepton", + "ProfessionalModernUIThemes": "Profesionalne, moderne teme korisničkog sučelja", + "LeptonThemeExplanation": "Lepton nudi niz Bootstrap administratorskih tema koje služe kao čvrsti temelj za svaki projekt koji zahtijeva administratorsku nadzornu ploču.", + "DefaultTheme": "Zadana tema", + "MaterialTheme": "Materijalna tema", + "Default2Theme": "Zadana tema 2", + "DarkTheme": "Tamna tema", + "DarkBlueTheme": "Tamnoplava tema", + "LightTheme": "Lagana tema", + "ProudToWorkWith": "Ponosan na suradnju", + "OurConsumers": "Tisuće poduzeća i programera u više od 70 zemalja diljem svijeta oslanjaju se na ABP Commercial.", + "JoinOurConsumers": "Pridružite im se i brzo napravite nevjerojatne proizvode.", + "AdditionalServicesExplanation": "Trebate dodatne ili prilagođene usluge? Mi i naši partneri možemo pružiti;", + "CustomProjectDevelopment": "Razvoj projekta po narudžbi", + "CustomProjectDevelopmentExplanation": "Posvećeni programeri za vaše prilagođene projekte.", + "PortingExistingProjects": "Prijenos postojećih projekata", + "PortingExistingProjectsExplanation": "Migracija vaših naslijeđenih projekata na ABP platformu.", + "LiveSupport": "Podrška uživo", + "LiveSupportExplanation": "Opcija daljinske podrške uživo kada vam je potrebna.", + "Training": "Trening", + "TrainingExplanation": "Namjenska obuka za vaše programere.", + "OnBoarding": "Ukrcavanje", + "OnBoardingExplanation": "Pomoć pri postavljanju vašeg razvojnog, CI i CD okruženja.", + "PrioritizedTechnicalSupport": "Prioritetna tehnička podrška", + "PremiumSupportExplanation": "Osim velike podrške zajednice ABP okvira, naš tim za podršku odgovara na tehnička pitanja i probleme komercijalnih korisnika s visokim prioritetom.", + "SeeTheSupportOptions": "Provjerite opcije podrške", + "Contact": "Kontakt", + "TellUsWhatYouNeed": "Recite nam što trebate.", + "YourMessage": "Tvoja poruka", + "YourFullName": "Tvoje puno ime", + "FirstNameField": "Ime", + "LastNameField": "Prezime", + "EmailField": "Email adresa", + "YourEmailAddress": "Vaša email adresa", + "ValidEmailAddressIsRequired": "Potrebna je valjana adresa e-pošte.", + "HowMayWeHelpYou": "Kako vam možemo pomoći?", + "SendMessage": "Pošalji poruku", + "Success": "Uspjeh", + "WeWillReplyYou": "Primili smo vašu poruku i uskoro ćemo vas kontaktirati.", + "GoHome": "Idi kući", + "CreateLiveDemo": "Stvorite demo uživo", + "CreateLiveDemoDescription": "Nakon što pošaljete ovaj obrazac, primit ćete e-poruku koja će sadržavati vašu demo vezu.", + "RegisterToTheNewsletter": "Registrirajte se za bilten kako biste primali informacije o ABP.IO, uključujući nova izdanja itd.", + "EnterYourEmailOrLogin": "Unesite svoju e-mail adresu kako biste kreirali demo ili se prijavite pomoću postojećeg računa.", + "ApplicationTemplate": "Predložak aplikacije", + "ApplicationTemplateExplanation": "Predložak za pokretanje aplikacije koristi se za izradu nove web aplikacije.", + "EfCoreProvider": "Entity Framework (podržava SQL Server, MySQL, PostgreSQL, Oracle i druge )", + "AlreadyIncludedInTemplateModules": "Sljedeći moduli već su uključeni i konfigurirani u ovom predlošku:", + "ApplicationTemplateArchitecture": "Ovaj predložak aplikacije također podržava višeslojnu arhitekturu gdje su sloj korisničkog sučelja, sloj API-ja i usluga autentifikacije fizički odvojeni.", + "SeeTheGuideOrGoToTheLiveDemo": "Tehničke informacije o ovom predlošku potražite u vodiču za razvojne programere ili idite na demo verziju uživo.", + "DeveloperGuide": "Vodič za razvojne programere", + "ModuleTemplate": "Predložak modula", + "ModuleTemplateExplanation1": "Želite li izraditi modul i ponovno ga koristiti u različitim aplikacijama? Ovaj predložak za pokretanje priprema sve za početak stvaranja višekratnog aplikacijskog modula ili mikroservisa .", + "ModuleTemplateExplanation2": "

Možete podržati jedan ili više UI okvira, jednog ili više pružatelja baza podataka za jedan modul. Predložak za pokretanje konfiguriran je za pokretanje i testiranje vašeg modula u minimalnoj aplikaciji uz infrastrukturu testiranja jedinice i integracije.

Tehničke informacije o ovom predlošku potražite u vodiču za razvojne programere.

", + "WithAllStyleOptions": "sa svim stilskim opcijama", + "Demo": "Demo", + "SeeAllModules": "Pogledajte sve module", + "ABPCLIExplanation": "ABP CLI (sučelje naredbenog retka) alat je naredbenog retka za izvođenje nekih uobičajenih operacija za rješenja temeljena na ABP-u.", + "ABPSuiteEasilyCURD": "ABP Suite je alat koji vam omogućuje jednostavno stvaranje CRUD stranica", + "WeAreHereToHelp": "Ovdje smo da pomognemo", + "BrowseOrAskQuestion": "Možete pregledavati naše teme pomoći ili pretraživati u često postavljanim pitanjima ili nam možete postaviti pitanje koristeći obrazac za kontakt .", + "SearchQuestionPlaceholder": "Pretražite u često postavljanim pitanjima", + "WhatIsTheABPCommercial": "Što je ABP Commercial?", + "WhatAreDifferencesThanAbpFramework": "Koje su razlike između open source ABP Framework i ABP Commercial?", + "AbpCommercialMetaTitle": "{0} | ABP reklama", + "AbpCommercialMetaDescription": "Sveobuhvatna platforma za web razvoj na ABP Frameworku s unaprijed izgrađenim modulima, predlošcima za pokretanje, alatima za brzi razvoj, temama za profesionalno korisničko sučelje i vrhunskom podrškom.", + "ABPCommercialExplanation": "ABP Commercial skup je vrhunskih modula, alata, tema i usluga koji su izgrađeni na ABP okviru otvorenog koda. ABP Commercial razvija i podržava isti tim koji stoji iza ABP okvira.", + "WhatAreDifferencesThanABPFrameworkExplanation": "

ABP framework modularni je okvir za razvoj aplikacija kompatibilan s temama i kompatibilan s mikroservisima za ASP.NET Core. Pruža kompletnu arhitekturu i snažnu infrastrukturu koja vam omogućuje da se usredotočite na vlastiti poslovni kod umjesto da se ponavljate za svaki novi projekt. Temelji se na najboljoj praksi razvoja softvera i popularnim alatima koje već poznajete.

ABP okvir je potpuno besplatan, otvorenog koda i vođen zajednicom. Također nudi besplatnu temu i neke unaprijed izgrađene module (npr. upravljanje identitetom i upravljanje stanarima).

", + "VisitTheFrameworkVSCommercialDocument": "Posjetite sljedeću vezu za više informacija {1}", + "ABPCommercialFollowingBenefits": "ABP Commercial dodaje sljedeće pogodnosti povrh ABP okvira:", + "Professional": "Profesionalni", + "UIThemes": "Teme korisničkog sučelja", + "EnterpriseModules": "Spremni za poduzeća, bogati značajkama, unaprijed izgrađeni aplikacijski moduli (npr. upravljanje poslužiteljem identiteta, upravljanje SaaS-om, upravljanje jezikom)", + "ToolingToSupport": "Alati za podršku vašoj razvojnoj produktivnosti (npr. ABP Suite )", + "PremiumSupportLink": "Premium podrška", + "WhatDoIDownloadABPCommercial": "Što preuzimam kada kupim ABP Commercial?", + "CreateUnlimitedSolutions": "Nakon što kupite ABP Commercial licencu, moći ćete stvarati neograničena rješenja kao što je opisano u dokumentu Početak rada .", + "ABPCommercialSolutionExplanation": "Kada izradite novu aplikaciju, dobivate rješenje Visual Studio (predložak za pokretanje) na temelju vaših preferencija. Preuzeto rješenje ima već instalirane i konfigurirane komercijalne module i teme. Možete ukloniti unaprijed instalirani modul ili dodati drugi modul ako želite. Svi moduli i teme prema zadanim postavkama koriste NuGet/NPM pakete.", + "StartDevelopWithTutorials": "Preuzeto rješenje je dobro projektirano i dokumentirano. Možete početi razvijati vlastiti poslovni kod temeljen na njemu prateći upute .", + "TryTheCommercialDemo": "Možete isprobati demo uživo kako biste vidjeli primjer aplikacije kreirane pomoću predloška za pokretanje ABP Commercial.", + "HowManyProducts": "Koliko različitih proizvoda/rješenja mogu izraditi koristeći ABP Commercial?", + "HowManyProductsExplanation": "Možete izraditi onoliko projekata koliko želite tijekom razdoblja svoje aktivne licence; nema ograničenja! Nakon što vaša licenca istekne, ne možete stvarati nove projekte, ali možete nastaviti razvijati projekte koje ste preuzeli i implementirati ih na neograničeni broj poslužitelja.", + "HowManyDevelopers": "Koliko programera može raditi na ABP reklami?", + "HowManyDevelopersExplanation": "ABP Komercijalne licence vrijede po programeru. Različite vrste licenci imaju različita ograničenja za programere. Međutim, možete dodati više programera bilo kojoj vrsti licence kad god vam zatreba. Provjerite stranicu Planovi i cijene za vrste licenci, ograničenja za razvojne programere i dodatne troškove za razvojne programere.", + "ChangingLicenseType": "Mogu li kasnije nadograditi svoju vrstu licence?", + "ChangingLicenseTypeExplanation": "Možete nadograditi na višu licencu plaćanjem razlike unutar razdoblja aktivne licence. Kada nadogradite na viši plan licence, dobivate prednosti novog plana, ali nadogradnja licence ne mijenja datum isteka licence. Osim toga, svojoj postojećoj licenci možete dodati nova mjesta za programere, pogledajte "Koliko programera može raditi na ABP reklami?" PITANJA.", + "LicenseExtendUpgradeDiff": "Koja je razlika između produljenja licence i nadogradnje?", + "LicenseExtendUpgradeDiffExplanation": "Proširenje: produljenjem/obnavljanjem licence i dalje ćete dobivati vrhunsku podršku i dobivati veća ili manja ažuriranja za module i teme. Osim toga, moći ćete nastaviti stvarati nove projekte. I dalje ćete moći koristiti ABP Suite, koji ubrzava vaš razvoj. Kada produžite licencu, datumu isteka licence dodaje se 1 godina.
Nadogradnja: nadogradnjom licence bit ćete unaprijeđeni u viši plan licence, što će vam omogućiti dodatne pogodnosti. Pogledajte tablicu za usporedbu licenci da vidite razlike između licencnih planova. S druge strane, kada nadogradite, datum isteka vaše licence se neće promijeniti! Da biste produljili datum isteka licence, morate produljiti svoju licencu.", + "LicenseRenewalCost": "Koliki je trošak obnove licence nakon 1 godine?", + "LicenseRenewalCostExplanation": "Cijena obnove (produljenja) standardne timske licence je {0} $, standardne poslovne licence je {1} $, a standardne licence za poduzeća je {2} $. Ako ste već korisnik, prijavite se na svoj račun kako biste pregledali trenutnu cijenu obnove.", + "HowDoIRenewMyLicense": "Kako mogu obnoviti licencu?", + "HowDoIRenewMyLicenseExplanation": "Licencu možete obnoviti tako da odete na stranicu za upravljanje organizacijom . Kako biste iskoristili naše snižene stope rane obnove, pobrinite se da obnovite prije isteka licence. Ne brinite o tome da ne znate kada se zatvara vaša prilika za ranu obnovu; primit ćete 3 e-poruke s podsjetnikom prije isteka pretplate. Poslat ćemo ih 30 dana, 7 dana i 1 dan prije isteka.", + "IsSourceCodeIncluded": "Uključuje li moja licenca izvorni kod komercijalnih modula i tema?", + "IsSourceCodeIncludedExplanation1": "Ovisi o vrsti licence koju ste kupili:", + "IsSourceCodeIncludedExplanation2": "Tim : Vaše rješenje koristi module i teme kao NuGet i NPM pakete. Ne uključuje njihov izvorni kod. Na taj način možete jednostavno nadograditi ove module i teme kad god nova verzija bude dostupna. Međutim, ne možete dobiti izvorni kod ovih modula i tema.", + "IsSourceCodeIncludedExplanation3": "Business/Enterprise : Osim Team licence, možete preuzeti izvorni kod bilo kojeg modula ili teme koja vam je potrebna. Možete čak ukloniti reference paketa NuGet/NPM za određeni modul i dodati njegov izvorni kod izravno u svoje rješenje kako biste ga u potpunosti promijenili.", + "IsSourceCodeIncludedExplanation4": "

Uključivanje izvornog koda modula u vaše rješenje daje vam maksimalnu slobodu prilagodbe tog modula. Međutim, tada neće biti moguće automatski nadograditi modul kada se objavi nova verzija.

Nijedna od licenci ne uključuje izvorni kod ABP Suitea, koji je vanjski alat koji generira kod za vas i pomaže vašem razvoju.

Ostale razlike između vrsta licenci potražite na stranici Planovi i cijene .

", + "ChangingDevelopers": "Mogu li promijeniti registrirane programere svoje organizacije u budućnosti?", + "ChangingDevelopersExplanation": "Osim dodavanja novih programera u svoju licencu, također možete promijeniti postojeće programere (možete ukloniti programera i dodati novog na isto mjesto) bez ikakvih dodatnih troškova.", + "WhatHappensWhenLicenseEnds": "Što se događa kada moje licencno razdoblje završi?", + "WhatHappensWhenLicenseEndsExplanation1": "ABP Commercial licenca je stalna licenca . Nakon isteka licence možete nastaviti razvijati svoj projekt. I niste dužni obnoviti svoju licencu. Vaša licenca dolazi s jednogodišnjim ažuriranjem i planom podrške. Kako biste nastavili dobivati nove značajke, poboljšanja performansi, ispravke grešaka, podršku i nastavili koristiti ABP Suite, trebate obnoviti svoju licencu. Kada vam istekne licenca;", + "WhatHappensWhenLicenseEndsExplanation2": "Ne možete stvarati nova rješenja koristeći ABP Commercial, ali možete zauvijek nastaviti razvijati svoje postojeće aplikacije.", + "WhatHappensWhenLicenseEndsExplanation3": "Moći ćete dobiti ažuriranja za module i teme unutar vaše MINOR verzije (osim RC ili Preview verzija). Na primjer, ako koristite v3.2.0 modula, još uvijek možete dobiti ažuriranja za v3.2.x (v3.2.1, v3.2.5... itd.) tog modula. Ali ne možete dobiti ažuriranja za sljedeću glavnu ili sporednu verziju (kao što je v3.3.0, v3.3.3, 4.xx itd.). Na primjer, kada je vaša licenca istekla, najnovije izdanje bilo je v4.4.3, a kasnije, objavilo je i verziju 4.4.4 i verziju 4.5.0, mogli biste pristupiti verziji v4.4.X, ali ne biste pristupite v4.5.X.", + "WhatHappensWhenLicenseEndsExplanation4": "Ne možete instalirati nove module i teme dodane ABP Commercial platformi nakon isteka licence.", + "WhatHappensWhenLicenseEndsExplanation5": "Ne možete koristiti ABP Suite.", + "WhatHappensWhenLicenseEndsExplanation6": "Više ne možete dobiti premium podršku .", + "WhatHappensWhenLicenseEndsExplanation7": "Možete produžiti (obnoviti) svoju licencu ako želite i dalje primati ove pogodnosti. Ako produžite svoju licencu u roku od {3} dana nakon isteka licence, primijenit će se sljedeći popusti: timska licenca {0}; Poslovna licenca {1}; Enterprise Licenca {2}.", + "discountForYears": "{0}% popusta za {1} godinu(e)", + "WhatHappensWhenLicenseEndsExplanation8": "ABP projekti koje ste generirali nisu pohranjeni na našim poslužiteljima. Stoga je vaša odgovornost zadržati izvorni kod koji preuzmete. Kada vaša licenca istekne, ne postoji način da dobijete generirani izvorni kod ABP projekta.", + "WhenShouldIRenewMyLicense": "Kada trebam obnoviti licencu?", + "WhenShouldIRenewMyLicenseExplanation": "Ako obnovite svoju licencu u roku od {3} dana nakon isteka licence, primijenit će se sljedeći popusti: timska licenca {0}; Poslovna licenca {1}; Enterprise Licenca {2}. Međutim, ako obnovite licencu nakon {3} dana od datuma isteka licence, cijena obnove bit će ista kao kupovna cijena licence i neće biti popusta na vašu obnovu.", + "TrialPlan": "Imate li probni plan?", + "TrialPlanExplanation": "Da, za početak besplatnog probnog razdoblja kontaktirajte marketing@volosoft.com . Također nudimo 30-dnevno jamstvo povrata novca za Team licencu, bez pitanja! Možete zatražiti puni povrat novca unutar prvih 30 dana od kupnje licence. Osiguravamo povrat od 60% u roku od 30 dana za poslovne i poslovne licence. To je zato što licence Business i Enterprise sadrže puni izvorni kod svih modula i tema.", + "DoYouAcceptBankWireTransfer": "Prihvaćate li bankovne doznake?", + "DoYouAcceptBankWireTransferExplanation": "Da, prihvaćamo bankovne doznake.
Nakon slanja naknade za licencu putem bankovnog prijenosa, pošaljite svoju potvrdu i traženu vrstu licence na accounting@volosoft.com.
Informacije o našem međunarodnom bankovnom računu:", + "HowToUpgrade": "Kako nadograditi postojeće aplikacije kada je dostupna nova verzija?", + "HowToUpgradeExplanation1": "Kada izradite novu aplikaciju koristeći ABP Commercial, svi moduli i teme koriste se kao NuGet i NPM paketi. Dakle, možete jednostavno nadograditi pakete kada nova verzija bude dostupna.", + "HowToUpgradeExplanation2": "Uz standardne NuGet/NPM nadogradnje, ABP CLI pruža naredbu ažuriranja koja automatski pronalazi i nadograđuje sve pakete povezane s ABP-om u vašem rješenju.", + "DatabaseSupport": "Koji su sustavi baza podataka podržani?", + "DatabaseSupportExplanation": "Sam ABP Framework ne ovisi o bazi podataka i po svojoj prirodi može raditi s bilo kojim pružateljem baze podataka. Provjerite dokument o pristupu podacima za popis trenutno implementiranih pružatelja usluga.", + "UISupport": "Koji su UI okviri podržani?", + "Supported": "Podržano", + "UISupportExplanation": "Sam ABP okvir ne ovisi o okviru korisničkog sučelja i može raditi s bilo kojim okvirom korisničkog sučelja. Međutim, predlošci za pokretanje, korisničko sučelje modula i teme nisu implementirani za sve okvire korisničkog sučelja. Provjerite dokument Početak rada za ažurirani popis opcija korisničkog sučelja.", + "MicroserviceSupport": "Podržava li mikroservisnu arhitekturu?", + "MicroserviceSupportExplanation1": "Jedan od glavnih ciljeva okvira ABP je pružiti prikladnu infrastrukturu za stvaranje mikroservisnih rješenja. Provjerite dokument o arhitekturi mikroservisa da biste razumjeli kako pomaže u stvaranju sustava mikroservisa.", + "MicroserviceSupportExplanation2": "Svi ABP Commercial moduli dizajnirani su za podršku scenarijima postavljanja mikroservisa (s vlastitim API-jem i bazom podataka) prateći dokument s najboljim praksama razvoja modula .", + "MicroserviceSupportExplanation3": "Pružamo ogledno demonstracijsko rješenje mikroservisa koje pokazuje implementaciju arhitekture mikroservisa kako bismo vam pomogli da stvorite vlastito rješenje.", + "MicroserviceSupportExplanation4": "Dakle, kratak odgovor je: " Da, podržava mikroservisnu arhitekturu ".", + "MicroserviceSupportExplanation5": "Međutim, sustav mikroservisa je rješenje, a svako rješenje će imati različite zahtjeve, mrežnu topologiju, komunikacijske scenarije, mogućnosti autentifikacije, odluke o dijeljenju/particioniranju baze podataka, konfiguracije vremena izvođenja, integracije sustava treće strane i još mnogo toga.", + "MicroserviceSupportExplanation6": "ABP Framework i ABP Commercial pružaju infrastrukturu za scenarije mikroservisa, module kompatibilne s mikroservisima, uzorke i dokumentaciju koja će vam pomoći da izgradite vlastito rješenje. Ali nemojte očekivati da ćete izravno preuzeti rješenje iz snova koje je unaprijed napravljeno za vas. Morat ćete to razumjeti i spojiti određene dijelove na temelju svojih zahtjeva.", + "WhereCanIDownloadSourceCode": "Gdje mogu preuzeti izvorni kod?", + "WhereCanIDownloadSourceCodeExplanation": "Možete preuzeti izvorni kod svih ABP modula, Angular paketa i tema putem ABP Suite ili ABP CLI. Pogledajte Kako preuzeti izvorni kod?", + "ComputerLimitation": "Na koliko računala se programer može prijaviti kada razvija ABP?", + "ComputerLimitationExplanation": "Izričito dopuštamo {0} računala po pojedincu/licenciranom programeru. Kad god postoji potreba da razvojni programer razvije ABP komercijalne proizvode na trećem računalu, potrebno je poslati e-poruku na licencu@abp.io s objašnjenjem situacije, a mi ćemo tada izvršiti odgovarajuću dodjelu u našem sustavu.", + "RefundPolicy": "Imate li politiku povrata novca?", + "RefundPolicyExplanation": "Povrat novca možete zatražiti u roku od 30 dana od kupnje licence. Vrste licenci Business i Enterprise imaju opcije preuzimanja izvornog koda; stoga nudimo 60% povrata u roku od 30 dana za poslovne i poslovne licence. Osim toga, nema povrata novca za obnove i kupnju druge licence.", + "HowCanIRefundVat": "Kako mogu izvršiti povrat PDV-a?", + "HowCanIRefundVatExplanation1": "Ako ste uplatu izvršili putem 2Checkouta, povrat PDV-a možete izvršiti putem svog 2Checkout računa:", + "HowCanIRefundVatExplanation2": "Prijavite se na svoj 2Checkout račun", + "HowCanIRefundVatExplanation3": "Pronađite odgovarajuću narudžbu i pritisnite "Povrat zakašnjelog PDV-a" (unesite svoj PDV ID)", + "HowCanIGetMyInvoice": "Kako mogu dobiti svoju fakturu?", + "HowCanIGetMyInvoiceExplanation": "Postoje 2 pristupnika za plaćanje za kupnju licence: Iyzico i 2Checkout. Ako svoju licencu kupite putem 2Checkout gatewaya, on šalje PDF fakturu na vašu adresu e-pošte; pogledajte 2Checkout fakturiranje. Ako kupujete putem Iyzico gatewaya, s prilagođenom vezom za kupnju ili putem bankovne doznake, pripremit ćemo i poslati vaš račun. Svoju fakturu možete zatražiti ili preuzeti sa stranice za upravljanje organizacijom . Prije nego što nas kontaktirate za fakturu, provjerite svoju stranicu za upravljanje organizacijom!", + "Forum": "Forum", + "SupportExplanation": "ABP Commercial licenca pruža premium forumsku podršku od strane tima koji se sastoji od stručnjaka za ABP Framework.", + "PrivateTicket": "Privatna ulaznica", + "PrivateTicketExplanation": "Enterprise License također uključuje privatnu podršku s e-poštom i sustavom ulaznica.", + "AbpSuiteExplanation1": "ABP Suite vam omogućuje izradu web stranica u nekoliko minuta. To je .NET Core Global alat koji se može instalirati iz naredbenog retka.", + "AbpSuiteExplanation2": "Može stvoriti novo ABP rješenje i generirati CRUD stranice iz baze podataka prema front-endu. Za tehnički pregled pogledajte dokument", + "FastEasy": "Brzo i jednostavno", + "AbpSuiteExplanation3": "ABP Suite vam omogućuje jednostavno stvaranje CRUD stranica. Vi samo trebate definirati svoj entitet i njegova svojstva, a ostalo prepustite ABP Suite-u umjesto vas! ABP Suite generira sav potreban kod za vašu CRUD stranicu u nekoliko sekundi. Podržava Angular, MVC i Blazor korisnička sučelja.", + "RichOptions": "Bogate opcije", + "AbpSuiteExplanation4": "ABP Suite podržava više opcija korisničkog sučelja kao što su Razor Pages i Angular . Također podržava više baza podataka kao što je MongoDB i sve baze podataka koje podržava EntityFramework Core (MS SQL Server, Oracle, MySql, PostgreSQL i drugi pružatelji... ).", + "AbpSuiteExplanation5": "Dobra stvar je što ne morate brinuti o tim opcijama. ABP Suite razumije vašu vrstu projekta i generira kod za vaš projekt te postavlja generirani kod na pravo mjesto u vašem projektu.", + "SourceCode": "Izvorni kod", + "AbpSuiteExplanation6": "ABP Suite generira izvorni kod za vas! Ne stvara čarobne datoteke za generiranje web stranice. ABP Suite generira izvorni kod za Entitet, Repozitorij, Application Service, Code First Migration, JavaScript/TypeScript i CSHTML/HTML kao i potrebna sučelja. ABP Suite također generira kod u skladu s najboljim praksama razvoja softvera, tako da ne morate brinuti o kvaliteti generiranog koda.", + "AbpSuiteExplanation7": "Budući da imate izvorni kod sastavnih dijelova generirane CRUD stranice u ispravnim aplikacijskim slojevima, možete jednostavno modificirati izvorni kod i ubaciti svoju prilagođenu/poslovnu logiku u generirani kod.", + "CrossPlatform": "Križna platforma", + "AbpSuiteExplanation8": "ABP Suite izgrađen je s .NET Coreom i više je platformi. Pokreće se kao web aplikacija na vašem lokalnom računalu. Možete ga pokrenuti na Windowsima , Macu i Linuxu", + "OtherFeatures": "Druge značajke", + "OtherFeatures1": "Jednostavno ažurira NuGet i NPM pakete na vašem rješenju.", + "OtherFeatures2": "Regenerira već generirane stranice od nule.", + "OtherFeatures3": "Stvara nova rješenja", + "ThanksForCreatingProject": "Vaš projekt je uspješno kreiran!", + "HotToRunSolution": "Kako pokrenuti svoje rješenje?", + "HotToRunSolutionExplanation": "Pogledajte dokument o početku rada da biste saznali kako konfigurirati i pokrenuti svoje rješenje.", + "GettingStarted": "Početak rada", + "WebAppDevTutorial": "Vodič za razvoj web aplikacija", + "WebAppDevTutorialExplanation": "Pogledajte dokument s vodičem za razvoj web aplikacija za uzorak razvoja korak po korak.", + "Document": "Dokument", + "UsingABPSuiteToCURD": "Korištenje ABP Suite za CRUD generiranje stranica i alate", + "SeeABPSuiteDocument": "Provjerite dokument ABP Suite da biste saznali kako se koristi ABP Suite.", + "AskQuestionsOnSupport": "Pitanja možete postavljati na ABP Commercial Support.", + "Documentation": "Dokumentacija", + "SeeModulesDocument": "Pogledajte stranicu modula za popis svih PRO modula.", + "Pricing": "Cijene", + "PricingExplanation": "Odaberite značajke i funkcionalnost koje vaše poslovanje treba danas. Jednostavno nadogradite kako vaše poslovanje raste.", + "Team": "Tim", + "Business": "Poslovanje", + "Enterprise": "Poduzeće", + "Custom": "Prilagođen", + "IncludedDeveloperLicenses": "Uključene licence za programere", + "CustomLicenceOrAdditionalServices": "Trebate prilagođenu licencu ili dodatne usluge?", + "CustomOrVolumeLicense": "Prilagođena ili količinska licenca", + "LiveTrainingSupport": "Trening uživo i podrška", + "AndMore": "i više", + "AdditionalDeveloperLicense": "Dodatna licenca programera", + "ProjectCount": "Broj projekata", + "AllProModules": "Svi profesionalni moduli", + "AllProThemes": "Sve profesionalne teme", + "AllProStartupTemplates": "Svi profesionalni predlošci za pokretanje", + "SourceCodeOfAllModules": "Izvorni kod svih modula", + "SourceCodeOfAllThemes": "Izvorni kod svih tema", + "PerpetualLicense": "Trajna licenca", + "UnlimitedServerDeployment": "Neograničena implementacija poslužitelja", + "YearUpgrade": "1 godina nadogradnje", + "YearPremiumForumSupport": "1-godišnja premium forumska podrška", + "ForumSupportIncidentCountYear": "Broj incidenata podrške foruma/godina", + "PrivateTicketEmailSupport": "Privatna ulaznica i podrška e-poštom", + "BuyNow": "Kupi sada", + "PayViaAmexCard": "Kako mogu platiti putem moje AMEX kartice?", + "PayViaAmexCardDescription": "Zadani pristupnik plaćanja 'Iyzico' može odbiti neke AMEX kreditne kartice zbog sigurnosnih mjera. U tom slučaju možete platiti putem alternativnog pristupnika plaćanja '2Checkout'.", + "ThankYou": "Hvala vam", + "InvalidReCaptchaErrorMessage": "Došlo je do pogreške prilikom provjere reCAPTCHA. Molim te pokušaj ponovno.", + "CompanyName": "Naziv tvrtke", + "YourCompanyName": "Naziv vaše tvrtke", + "FirstName": "Ime", + "LastName": "Prezime", + "Optional": "Neobavezno", + "YourFirstName": "Vaše ime", + "YourLastName": "Tvoje prezime", + "SpecialOffer": "Posebna ponuda", + "SpecialOfferMessage": "Požuri! Cijene vrijede ograničeno vrijeme.", + "DiscountRequest": "Zahtjev za popust", + "DiscountRequestDescribeCustomerQuestion": "Što vas od sljedećeg opisuje?", + "DiscountRequestStudentEmailMessage": "E-mail adresa mora sadržavati 'edu'.", + "DiscountRequestDeveloperCount": "Koliko ste programeri?", + "DiscountRequestDeveloperCountExceedMessage": "Ne dajemo licence s popustom za tvrtke koje imaju više od {0} programera.", + "DiscountRequestOrganizationName": "Naziv tvrtke/organizacije/škole", + "Website": "Web stranica", + "GithubUsername": "GitHub korisničko ime", + "PhoneNumber": "Broj telefona", + "Country": "Zemlja", + "DescribeABPCommercialUsage": "Opišite projekt koji planirate razviti na temelju APB Commerciala", + "DiscountRequestCertifyInformationMessage": "Potvrđujem da su sve informacije istinite i točne.", + "DiscountRequestReceived": "Primili smo vaš zahtjev za popust.", + "DiscountRequestStatusMessage": "Odgovorit ćemo vam nakon provjere podataka koje ste dostavili.", + "MVCOrRazorPages": "MVC (stranice Razor)", + "Angular": "Kutni", + "Blazor": "Blazor", + "New": "Novi", + "MongoDB": "MongoDB", + "EBookDDD": "Dizajn usmjeren na domenu e-knjiga", + "PracticalGuideForImplementingDDD": "Ova je knjiga praktični vodič za implementaciju dizajna vođenog domenom s ABP okvirom.", + "IntroducingDDD": "Predstavljamo dizajn vođen domenom", + "DDDLayersAndCleanArchitecture": "DDD slojevi i čista arhitektura", + "LayeringOfADotnetSolution": "Raslojavanje .NET rješenja", + "ImplementingDDDBuildingBlocks": "Implementacija DDD gradivnih blokova", + "DomainVsApplicationLogic": "Logika domene nasuprot logici aplikacije", + "SamplesAndDiscussions": "Uzorci i rasprave", + "Free": "Besplatno", + "Download": "preuzimanje datoteka", + "DDDEBook": "DDD E-knjiga", + "ImplementingDDD": "Implementacija dizajna vođenog domenom", + "DDDBookExplanation": "Praktični vodič za implementaciju dizajna vođenog domenom s ABP okvirom.", + "Overview": "Pregled", + "DDDBookPracticalGuide": "Ovo je praktični vodič za implementaciju Domain Driven Design (DDD). Dok se detalji implementacije oslanjaju na infrastrukturu ABP Framework, temeljne koncepte, principe i obrasce koji su primjenjivi u bilo kojoj vrsti rješenja, čak i ako to nije .NET rješenje.", + "TableOfContents": "Sadržaj", + "IntroductionToImplementingDDD": "Uvod u implementaciju dizajna vođenog domenom", + "WhatIsDDD": "Što je dizajn vođen domenom?", + "Implementation": "Provedba", + "TheBigPicture": "Velika slika", + "TheBuildingBlock": "Building Block", + "ExampleUseCase": "Primjer upotrebe", + "DomainAndApplicationLogic": "Logika domene i logika aplikacije", + "Author": "Autor", + "PublishedOn": "Objavljeno na", + "Page": "Stranica", + "FreeEBook": "Besplatna e-knjiga", + "EBookSignInForDownload": "Za preuzimanje e-knjige prijavite se", + "SignIn": "Prijaviti se", + "Or": "Ili", + "TellUsAboutYourself": "Recite nam nešto o sebi", + "Surname": "Prezime", + "DoYouAgreePrivacyPolicy": "Slažem se s Uvjetima i odredbama i Politikom privatnosti .", + "VolosoftMarketingInformationMessage": "Želio bih informacije, savjete i ponude o rješenjima za tvrtke i organizacije te drugim Volosoft proizvodima i uslugama.", + "VolosoftSharingInformationMessage": "Želio bih da Volosoft podijeli moje podatke s odabranim partnerima kako bih mogao dobiti relevantne informacije o njihovim proizvodima i uslugama.", + "WeWillSendYouADownloadLink": "Veza za preuzimanje e-knjige poslana je na {0}. Provjerite svoju pristiglu poštu, pretince za smeće i neželjenu poštu!", + "InvalidFormInputs": "Molimo unesite valjane podatke navedene na obrascu.", + "DDDBookEmailBody": "Hvala vam.
Za preuzimanje svoje knjige kliknite ovdje .", + "StartFree": "Počni besplatno", + "FreeTrial": "Besplatna proba", + "AcceptsMarketingCommunications": "Da, želio bih primati ABP komercijalne marketinške komunikacije.", + "PurposeOfUsage": "Svrha korištenja", + "Choose": "- Odaberite -", + "CompanyOrganizationName": "Naziv tvrtke/organizacije", + "CompanySize": "Veličina tvrtke", + "Next": "Sljedeći", + "StartTrial": "Pokreni Moje besplatno probno razdoblje", + "ContactUsQuestions": "Kontaktirajte nas ako imate pitanja", + "TrialActivatedWarning": "Korisnik ima pravo na samo 1 besplatno probno razdoblje. Već ste iskoristili svoje probno razdoblje.", + "ActivationRequirement": "Zadnji ste korak do početka probe.
Nakon provjere vaših podataka, aktivirat ćemo vašu licencu. Nakon što se vaša licenca aktivira, poslat ćemo e-poštu na {0} . Ne brinite, ovaj proces neće dugo trajati!", + "SaveAndDownload": "Spremi i preuzmi", + "CompanyNameValidationMessage": "Ime tvrtke je predugačko!", + "AddressValidationMessage": "Adresa je preduga!", + "TaxNoValidationMessage": "TAX/VAT No je predug!", + "NotesValidationMessage": "Polje za bilješke je predugačko!", + "CheckYourBillingInfo": "Svoju fakturu možete izraditi samo jednom! Provjerite podatke o naplati prije izrade fakture.", + "StartYourFreeTrial": "Započnite besplatno probno razdoblje", + "TrialLicenseModelInvalidErrorMessage": "Jedno od sljedećih polja je nevažeće: Naziv zemlje, Veličina tvrtke, Industrija ili Svrha upotrebe.", + "Trial": "suđenje", + "Purchased": "Kupljeno", + "PurchaseNow": "Kupite sada", + "PurchaseTrialLicenseMessage": "Vaš datum isteka licence je {0}.
Ako želite nastaviti koristiti projekte koje ste izradili tijekom besplatnog probnog razdoblja, trebate promijeniti licencne ključeve u datotekama appsettings.secrets.json . Ovdje je vaš licencni ključ:", + "TrialLicenseExpireMessage": "Koristite probnu licencu i vaša će probna licenca isteći {0}.", + "TryForFree": "Isprobaj besplatno", + "TrialLicenseExpiredInfo": "Vaše probno licencno razdoblje je isteklo!", + "DowngradeLicensePlan": "Mogu li se u budućnosti vratiti na niži licencni plan?", + "DowngradeLicensePlanExplanation": "Ne možete vratiti svoj postojeći licencni plan na stariju verziju. Ali možete kupiti novi niži licencni plan i nastaviti svoj razvoj na novoj licenci. Nakon što kupite nižu licencu, samo se trebate prijaviti na svoj novi licencni plan putem ABP CLI naredbe: ` abp login -o `.", + "LicenseTransfer": "Može li se licenca prenijeti s jednog programera na drugog?", + "LicenseTransferExplanation": "Da! Kada kupite licencu, postajete vlasnik licence, stoga ćete imati pristup stranici za upravljanje organizacijom. Organizacija ima uloge vlasnika i programera. Vlasnici mogu upravljati mjestima za programere i dodjeljivati programere. Svaki dodijeljeni programer prijavit će se putem ABP CLI naredbe u sustav i imat će dozvole za razvoj i podršku.", + "UserOwnerDescription": "'Vlasnik' organizacije je administrator ovog računa. On/ona upravlja organizacijom kupnjom licenci i dodjeljivanjem programera. 'Vlasnik' ne može pisati kod u ABP komercijalnim projektima, ne može preuzimati uzorke ABP projekata i ne može postavljati pitanja na web stranici za podršku. Ako želite učiniti sve ovo, morate dodati i sebe kao programera.", + "UserDeveloperDescription": "'Programeri' mogu pisati kod u ABP komercijalnim projektima, preuzimati uzorke ABP projekata i postavljati pitanja na web stranici podrške. S druge strane, 'Programeri' ne mogu upravljati ovom organizacijom.", + "RemoveCurrentUserFromOrganizationWarningMessage": "Uklanjate se iz vlastite organizacije. Više nećete moći upravljati ovom organizacijom, potvrđujete li?", + "RenewExistingOrganizationOrCreateNewOneMessage": "Možete obnoviti licencu svoje organizacije(a) klikom na donji gumb(e) "Produži sada" i na taj način možete produžiti datum isteka licence za 1 godinu. Ako nastavite s odjavom, imat ćete novu organizaciju. Želite li nastaviti s novom organizacijom?", + "PurchaseTrialOrganizationOrCreateNewOneMessage": "Imate probnu licencu. Za kupnju probne licence kliknite gumb Kupi odmah. Ako nastavite s odjavom, imat ćete novu organizaciju. Želite li nastaviti s novom organizacijom?", + "ExtendNow": "Produžite sada", + "CreateNewOrganization": "Napravite novu organizaciju", + "RenewLicenseEarly": "Ako prijevremeno produžim licencu, hoću li dobiti cijelu godinu?", + "RenewLicenseEarylExplanation": "Kada obnovite licencu prije datuma isteka licence, datumu isteka licence bit će dodana 1 godina. Na primjer, ako vam licenca istječe {0}-06-06, a vi je obnovite {0}-01-01, datum isteka vaše nove licence bit će {1}-06-06.", + "OpenSourceWebApplication": "Web aplikacija otvorenog koda", + "CompleteWebDevelopment": "Kompletan web razvoj", + "ABPFrameworkDescription": "ABP Framework je cjelovita infrastruktura za stvaranje modernih web aplikacija slijedeći najbolje prakse razvoja softvera i konvencije.", + "CommunityDescription": "Podijelite svoja iskustva s ABP okvirom!", + "GetStarted": "Započnite", + "Views": "pogleda", + "LatestPosts": "Najnovije objave", + "PreBuiltApplication": "Unaprijed izrađena aplikacija", + "DatabaseProviders": "Pružatelji baza podataka", + "UIFrameworks": "UI okviri", + "UsefulLinks": "korisni linkovi", + "Platform": "Platforma", + "CoolestCompaniesUseABPCommercial": "Najbolje tvrtke već koriste ABP Commercial.", + "UserInterface": "Korisničko sučelje", + "APIGateway": "API Gateway", + "Microservice": "Mikroservis", + "Database": "Baza podataka", + "Architecture": "Arhitektura", + "MicroserviceArchitectureExplanation": "Ovo je cjelovita arhitektura rješenja koja se sastoji od više aplikacija, API pristupnika, mikroservisa i baza podataka za izgradnju skalabilnog mikroservisnog rješenja s najnovijim tehnologijama.", + "BusinessLogic": "Poslovna logika", + "DataAccessLayer": "Sloj pristupa podacima", + "Monolith": "Monolit", + "ModularArchitectureExplanation": "Ovaj predložak za pokretanje pruža slojevitu, modularnu arhitekturu rješenja temeljenu na DDD-u za izgradnju čiste baze koda koju je moguće održavati.", + "SeeDetails": "Pogledaj detalje", + "SeeDocumentation": "Provjerite Dokumentaciju", + "Bs5Compatible": "Profesionalna tema kompatibilna s Bootstrap 5, savršena za vašu administratorsku web stranicu.", + "LeptonXTheme": "Tema LeptonX", + "LeptonXDark": "LeptonX Dark", + "LeptonXLight": "LeptonX svjetlo", + "LeptonXSemiDark": "LeptonX polutamni", + "BuiltOnBs5Library": "Izgrađen na biblioteci Bootstrap 5", + "FullyCompatibleWithBs5": "100% kompatibilan s Bootstrap 5 HTML strukturom i CSS klasama", + "ResponsiveAndMobileCompatible": "Responzivan, kompatibilan s mobilnim uređajima, RTL podrška", + "ProvidesStylesForDatatables": "Pruža stilove za Datatables", + "MultipleLayoutOptions": "Više opcija izgleda", + "EasilyInstallAndUpgrade": "Jednostavna instalacija i nadogradnja", + "SupportForum": "Forum podrške", + "TrustedBy": "Povjerio", + "OurPricing": "Naše cijene", + "Plans": "Planovi", + "NameSurname": "Ime prezime", + "Unspecified": "Neodređeno", + "LicenceType": "Vrsta licence", + "LicenseDiscountWarning": "OVA STRANICA ZA POPUST KORISTI ZADANI KOD ZA POPUST I ZA VOLOSOFT PROGRAMERE. LINKOVI ZA KUPOVINU DOLJE NE RADE.", + "DiscountedLicenseExplanation": "Ove cijene licenci odnose se na male startupe, individualne programere, studente, neprofitne organizacije i projekte!", + "General": "Općenito", + "License": "Licenca", + "Development": "Razvoj", + "Payment": "Plaćanje", + "WatchExplainerVideo": "Nađimo se! Pogledajte video s objašnjenjem", + "LightDarkAndSemiDarkThemes": "Svijetlo, tamno i polutamno", + "LeptonXThemeExplanation": "Tema Lepton može promijeniti vašu temu prema postavkama vašeg sustava.", + "PRO": "PRO", + "WelcomeToABPCommercial": "Dobrodošli u ABP Commercial!", + "YourAccountDetails": "Podaci o vašem računu", + "OrganizationName": "Naziv organizacije", + "AddDevelopers": "Dodajte programere", + "StartDevelopment": "Započni razvoj", + "CreateAndRunApplicationUsingStartupTemplate": "Naučite kako izraditi i pokrenuti novu web aplikaciju pomoću predloška za pokretanje ABP Commercial.", + "CommunityDescription2": "community.abp.io je mjesto gdje ljudi mogu dijeliti članke vezane uz ABP. Potražite članke, upute, uzorke koda, studije slučaja i upoznajte ljude u istoj stazi kao i vi.", + "UseABPSuiteExplanation": "Koristite ABP Suite za preuzimanje izvornog koda modula i tema.", + "ManageModulesWithSuite": "Također možete upravljati svojim ABP modulima pomoću Suitea.", + "LearnHowToInstallSuite": "Naučite kako instalirati i koristiti ABP Suite.", + "SeeMore": "Vidi više", + "SeeLess": "Vidi Manje", + "LayeredSolutionStructure": "Slojevita struktura rješenja", + "LayeredSolutionStructureExplanation": "Rješenje je slojevito temeljeno na načelima i obrascima dizajna vođenog domenom kako bi se vaša poslovna logika izolirala od infrastrukture i integracija te kako bi se povećala mogućnost održavanja i ponovne upotrebe koda. ABP Framework već nudi apstrakcije, osnovne klase i vodiče za istinsku implementaciju DDD-a za vašu aplikaciju.", + "MultipleUIOptions": "Više opcija korisničkog sučelja", + "MultipleUIOptionsExplanation": "Volimo različite načine za stvaranje korisničkog sučelja. Ovo rješenje za pokretanje pruža tri različite opcije okvira korisničkog sučelja za vašu poslovnu aplikaciju.", + "MultipleDatabaseOptions": "Više opcija baze podataka", + "MultipleDatabaseOptionsExplanation": "Imate dvije opcije pružatelja baze podataka (uz korištenje obje u jednoj aplikaciji). Koristite Entity Framework Core za rad s bilo kojom relacijskom bazom podataka i opcionalno koristite Dapper kada trebate pisati upite niske razine za bolju izvedbu. MongoDB je još jedna opcija ako trebate koristiti NoSQL bazu podataka temeljenu na dokumentima. Dok su ovi pružatelji dobro integrirani, apstrahirani i unaprijed konfigurirani, zapravo možete komunicirati s bilo kojim sustavom baze podataka koji možete koristiti s .NET-om.", + "ModularArchitectureExplanation2": "Modularnost je prvorazredni građanin u platformi ABP.IO. Sve funkcionalnosti aplikacije podijeljene su u dobro izolirane dodatne module. Rješenje za pokretanje već dolazi s unaprijed instaliranim osnovnim ABP Commercial modulima . Također možete izraditi vlastite module za izgradnju modularnog sustava za vlastitu aplikaciju.", + "MultiTenancyForSaasBusiness": "Multi-Tenancy za vaš SaaS posao", + "MultiTenancyForSaasBusinessExplanation": "ABP Commercial pruža kompletan, end-to-end multi-tenancy sustav za stvaranje vaših SaaS (Software-as-a-Service) sustava. Omogućuje stanarima dijeljenje ili posjedovanje vlastitih baza podataka s on-the-fly sustavom za kreiranje baze podataka i migraciju.", + "MicroserviceStartupSolution": "Rješenje za pokretanje mikroservisa", + "MicroserviceArchitectureExplanation2": "Možete ga nabaviti za svoj sljedeći sustav mikroservisa kako biste iskoristili prednosti unaprijed izgrađenog osnovnog rješenja i destiliranog iskustva.", + "PreIntegratedTools": "Unaprijed integriran u popularne alate", + "PreIntegratedToolsExplanation": "Rješenje je već integrirano u industrijske standardne alate i tehnologije, dok ih uvijek možete promijeniti i integrirati u svoje omiljene alate.", + "SingleSignOnAuthenticationServer": "Single Sign-on Authentication Server", + "SingleSignOnAuthenticationServerExplanation": "Rješenje ima aplikaciju poslužitelja za provjeru autentičnosti koju druge aplikacije koriste kao poslužitelj za jedinstvenu prijavu sa značajkama upravljanja pristupom API-ja. Temelji se na IdentityServeru.", + "WebAppsWithGateways": "2 web aplikacije s 2 API pristupnika", + "WebAppsWithGatewaysExplanation": "Rješenje sadrži dvije web aplikacije, svaka ima namjenski API pristupnik (BFF - Backend For Frontend pattern).", + "BackOfficeApplication": "Back Office aplikacija", + "BackOfficeApplicationExplanation": "Stvarna web aplikacija vašeg sustava, s više opcija okvira korisničkog sučelja. Možete izraditi bilo koju vrstu poslovne aplikacije.", + "LandingWebsite": "Odredišna web stranica", + "LandingWebsiteExplanation": "Generička odredišna/javna web stranica koja se može koristiti u nekoliko svrha, kao što je predstavljanje vaše tvrtke, prodaja vaših proizvoda itd.", + "ABPFrameworkEBook": "E-knjiga Mastering ABP Framework", + "MasteringAbpFrameworkEBookDescription": "Uključeno u vašu ABP komercijalnu licencu", + "FullName": "Puno ime", + "LicenseTypeNotCorrect": "Vrsta licence nije ispravna!", + "Trainings": "Treninzi", + "ChooseTrainingPlaceholder": "Odaberite trening...", + "DoYouNeedTrainings": "Trebate li jedan od ovih treninga?", + "DoYouNeedTraining": "Trebate li {0} obuku?", + "GetInTouchUs": "Kontaktirajte nas", + "ForMoreInformationClickHere": "Za više informacija kliknite ovdje.", + "ForMoreInformationClickHereByClass": "Za više informacija kliknite ovdje.", + "IsGetOnboardingTraining": "Želite li dobiti obuku za uvođenje i razvoj web aplikacija?", + "OnboardingWebApplicationDevelopmentTrainingMessage": "Da biste zakazali svoj kalendar obuke, kontaktirajte {0} nakon stvaranja organizacije", + "CustomPurchaseMessage": "Za sljedeći korak kliknite {0} da nas kontaktirate.", + "Note": "Bilješka", + "AdditionalNote": "Dodatna napomena", + "OnboardingTrainingFaqTitle": "Imate li ABP uvodnu obuku?", + "OnboardingTrainingFaqExplanation": "Da, imamo ABP usluge obuke koje vam pomažu da brzo započnete svoj ABP projekt. O ABP-u ćete naučiti od člana glavnog tima ABP-a i steći ćete vještine za početak svog ABP projekta. U uvodnoj obuci objasnit ćemo kako postaviti svoje razvojno okruženje, instalirati potrebne alate i stvoriti potpuno funkcionalnu CRUD stranicu. Trening će se odvijati uživo, a koristit će se Zoom aplikacija, otvoreni smo i za korištenje drugih online platformi za sastanke. Jezik obuke će biti engleski. Također možete postaviti svoja pitanja o ABP-u tijekom sesija. Prikladno vrijeme i datum bit će planirani za obje strane. Za više informacija kontaktirajte nas na info@abp.io .", + "AddBasket": "Dodaj u košaricu", + "SendTrainingRequest": "Pošaljite zahtjev za obuku", + "OnlyEnglishVersionOfThisDocumentIsTheRecentAndValid": "* Engleska verzija ovog dokumenta je najažurnija i engleska verzija će prevladati u svim sporovima.", + "Pricing_Page_Title": "Cijene i planovi", + "Pricing_Page_Description": "Odaberite značajke i funkcionalnost koje vaše poslovanje treba danas. Kupite ABP Commercial licencu i stvarajte neograničene projekte.", + "Pricing_Page_HurryUp": "Požuri!", + "Pricing_Page_BuyLicense": "Kupite licencu po cijenama 2021 do 16. siječnja!", + "Pricing_Page_ValidForExistingCustomers": "Također vrijedi za postojeće kupce i obnove licenci.", + "Pricing_Page_Hint1": "Cijena licence uključuje određeni broj razvojnih mjesta. Ako imate više programera, uvijek možete kupiti dodatna mjesta.", + "Pricing_Page_Hint2": "Možete kupiti više licenci za programere sada ili u budućnosti. Licence se temelje na sjedištu, tako da možete prenijeti mjesto s jednog programera na drugog.", + "Pricing_Page_Hint3": "Uz svoju licencu možete razviti neograničen broj različitih proizvoda.", + "Pricing_Page_Hint4": "ABP Suite je alat koji pomaže vašem razvoju kako biste poboljšali svoju produktivnost. Podržava generiranje CRUD stranica i stvaranje novih projekata.", + "Pricing_Page_Hint5": "Možete koristiti sve unaprijed izgrađene module u svojim aplikacijama.", + "Pricing_Page_Hint6": "Možete koristiti sve unaprijed izgrađene teme u svojim aplikacijama.", + "Pricing_Page_Hint7": "Predložak za pokretanje je rješenje Visual Studio koje vam omogućuje brzi početak vašeg projekta. Svi osnovni moduli dodani su i unaprijed konfigurirani za vas.", + "Pricing_Page_Hint8": "E-knjiga Mastering ABP Framework objašnjava kako implementirati .NET rješenja s najboljim primjerima iz prakse. Prodaje se na Amazon.com, a knjigu možete besplatno preuzeti s licencom.", + "Pricing_Page_Hint9": "Možete preuzeti izvorni kod bilo kojeg modula. Možda ćete htjeti dodati izvorni kod svom rješenju kako biste izvršili radikalne promjene ili ga samo zadržite za sebe iz sigurnosnih razloga.", + "Pricing_Page_Hint10": "Licence su doživotne. To znači da možete zauvijek nastaviti razvijati svoju aplikaciju. Pristup najnovijoj verziji i dobivanje podrške odobreni su unutar razdoblja licence (1 godina osim ako je ne obnovite).", + "Pricing_Page_Hint11": "Nema ograničenja u postavljanju! Možete implementirati na onoliko poslužitelja koliko želite, uključujući usluge u oblaku ili lokalne usluge.", + "Pricing_Page_Hint12": "Možete ažurirati module, teme i alate na najnoviju verziju unutar razdoblja svoje aktivne licence. Nakon što vaša licenca istekne, trebate je obnoviti kako biste nastavili dobivati ažuriranja za ispravke programskih pogrešaka, nove značajke i poboljšanja.", + "Pricing_Page_Hint13": "Premium podršku možete dobiti na godinu dana (možete obnoviti svoju licencu da je produžite).", + "Pricing_Page_Hint14": "Timske i poslovne licence imaju ograničenje broja incidenata/pitanja. Ako kupite dodatne licence razvojnog programera, vaše ograničenje incidenata povećava se za {0} (za timsku licencu) ili {1} (za poslovnu licencu) po programeru.", + "Pricing_Page_Hint15": "Samo Enterprise licenca uključuje privatnu podršku. Možete poslati e-poštu izravno ABP timu ili postaviti pitanja na support.abp.io s opcijom privatne karte. Privatne ulaznice nisu vidljive javnosti.", + "Pricing_Page_Hint16": "Možete preuzeti izvorni kod svih ABP tema. Možda ćete htjeti dodati izvorni kod svom rješenju kako biste izvršili radikalne promjene ili ga samo zadržite za sebe iz sigurnosnih razloga.", + "Pricing_Page_Testimonial_1": "ABP Commercial dopustio je SC Ventures da u 9 mjeseci isporuči SaaS platformu silo-baze podataka bankovne razine za više zakupaca kako bi podržao financiranje opskrbnog lanca potraživanja / obveza za fakture značajne vrijednosti iz više integriranih sidara. Modularnost ABP-a omogućila je timu isporuku u rekordnom vremenu, prolazak svih VAPT-a i implementaciju kontejnerskog skupa mikroservisa putem punog CI/CD-a i cjevovoda u proizvodnju.", + "Pricing_Page_Testimonial_2": "Vidimo vrijednost korištenja ABP Commerciala za smanjenje režijskih troškova prilagođenih razvojnih projekata. Tim je u mogućnosti objediniti uzorak koda u različitim tokovima projekta. Vidimo više potencijala u okviru za izgradnju novih značajki brže nego prije. Vjerujemo da ćemo stalno uviđati vrijednost iskorištavanja ABP Commerciala.", + "Pricing_Page_Testimonial_3": "Volimo ABP. Ne moramo sve pisati ispočetka. Počinjemo od značajki izvan okvira i fokusiramo se samo na ono što stvarno trebamo napisati. Također, ABP je dobro projektiran i kod je visoke kvalitete s manje grešaka. Kad bismo morali sami napisati sve što nam treba, možda bismo morali potrošiti godine. Još jedna stvar koja nam se sviđa je što nova verzija, popravak problema ili poboljšanje izlazi vrlo brzo svaki drugi tjedan. Ne čekamo predugo.", + "Pricing_Page_Testimonial_4": "ABP Commercial je fantastičan proizvod koji bih preporučio. Komercijalni proizvodi za tržište za naše kupce na jednoj platformi koja se može konfigurirati. Skok počinje da okvir i alati pružaju bilo koji tim vrijedan svakog centa. ABP Commercial najbolje je odgovarao našim potrebama.", + "Pricing_Page_Testimonial_5": "ABP Framework nije samo okvir, već je i vodič za razvoj/upravljanje projektom jer pruža DDD, GenericRepository, DI, Microservice i obuku o modularnosti. Čak i ako nećete koristiti sam framework, možete se razvijati s docs.abp.io koji je dobro i profesionalno pripremljen (OpenIddict, Redis, Quartz itd.). Budući da su mnoge stvari unaprijed izgrađene, značajno skraćuje vrijeme razvoja projekta (kao što je stranica za prijavu, rukovanje iznimkama, filtriranje podataka, sijanje, revizijsko bilježenje, lokalizacija, automatski API kontroler itd.). Kao primjer iz naše aplikacije, koristio sam Local Event Bus za kontrolu zaliha. Dakle, mogu upravljati kretanjem narudžbi pisanjem rukovatelja zalihama. Divno je ne gubiti vrijeme za CreationTime, CreatorId. Pune se automatski.", + "Pricing_Page_Testimonial_6": "ABP Framework je dobar okvir, ali mu treba vremena da razumije različite slojeve, klase i biblioteke koje koristi (osobito ABP). Proveo sam puno vremena čitajući bazu koda, ali ABP Commercial uštedio nam je vrijeme u stvaranju posebnih entiteta projekta (AR) i repozitorija povezanog sa svakim od njih. Svidio mi se i pristup korišten u ABP-u koji je vrlo zreo; znamo da se temelji na DDD i monolitu.", + "Pricing_Page_Testimonial_7": "Kao startup, moramo brzo ponavljati i potrošiti minimalno vremena na standardne i sporedne značajke. \n Naši inženjeri variraju od vrlo iskusnih do mlađih inženjera, a bilo nam je potrebno zajedničko razumijevanje i način dijeljenja tehničkog i domenskog znanja, ABP nam je to omogućio zahvaljujući njihovim sjajnim vodičima i dokumentaciji. \n Postoje stvari o kojima se ne moramo brinuti budući da rade izvan kutije s ABP-om. \n ABP pomogao nam je pojednostaviti brzu izradu prototipova i razvoj, manje od 4 tjedna od početka značajke do proizvodnje. Sa svim svojim premium značajkama uključenim u licencu, ABP nam je dao "Startup in a Box" na strani softverskog inženjeringa.", + "Pricing_Page_Testimonial_8": "ABP komercijalu bih preporučio svima onima koji žele proširiti ponudu proizvoda dostupnih svojim kupcima. Fantastično je kada je potrebno koristiti distribuirano poslovno okruženje (Angular, WPF, Win&Linux). Osim njihovih proizvoda, volimo i njihovu podršku, koja nam posao čini bržim i lakšim. Već znamo da smo pronašli odličnog partnera za budućnost koji će nas podržati u širenju poslovanja.", + "Pricing_Page_Testimonial_9": "Mi smo tvrtka od 2 zaposlena koja posluje preko 20 godina. \n Što se tiče našeg iskustva s ABP Commercialom, obratio nam se klijent koji je zatražio da razvijemo novu aplikaciju za ljudske resurse u modernom okruženju kako bismo zamijenili njihovu 25 godina staru aplikaciju Access. Odlučili smo prijeći s stolnog rješenja na web-bazirano. \n \n U to smo vrijeme imali vrlo malo znanja o web aplikacijama i .NET-u, ali slučajno smo naletjeli na ABP Commercial i uz pomoć ABP Frameworka, tehničke dokumentacije i ABP Suitea uspjeli smo ne samo razviti aplikaciju za specifikacijama klijenta ali i uspješno raditi unutar .NET okruženja u roku od godinu dana.", + "AbpBookDownloadArea_ClaimYourEBook": "Zatražite svoju e-knjigu Mastering ABP Framework", + "AddMemberModal_Warning_1": "Ako korisničko ime koje pokušavate dodati ne postoji u sustavu, zamolite člana svog tima da se registrira na {0} i podijeli korisničko ime svog računa s vama.", + "MyOrganizations_Detail_WelcomeMessage": "Dobro došli u svoju organizaciju, {0}", + "MyOrganizations_Detail_OrganizationManagement": "Upravljanje organizacijom", + "OrganizationDisplayName": "Naziv organizacije za prikaz", + "MyOrganizations_Detail_EditDisplayName": "Uredi ime za prikaz", + "MyOrganizations_Detail_UpgradeYourLicense": "Nadogradite svoju licencu", + "MyOrganizations_Detail_LicenseStartAndExpiryDate": "Datum početka licence - Datum isteka", + "MyOrganizations_Detail_OwnerRightInfo": "Koristite {0} od svojih {1} vlasničkih prava.", + "MyOrganizations_Detail_CopyApiKey": "Kopirajte ključ", + "MyOrganizations_Detail_ApiKeyDescription": "API ključ je token PRO paketa hostiranih na {1}.", + "MyOrganizations_Detail_YourPrivateNugetSource": "Vaš privatni NuGet izvor je {0}", + "MyOrganizations_Detail_PrivateNugetSourceWarning": "Ovo se automatski dodaje kao feed u vaš NuGet.Config u vašem ABP rješenju. Ne dijelite svoj privatni ključ s neovlaštenim korisnicima!", + "MyOrganizations_Detail_DeveloperSeatInfo": "Koristite {0} od svojih {1} razvojnih mjesta.", + "NeedMoreSeatsForYourTeam": "Trebate više mjesta za svoj tim?", + "MyOrganizations_Detail_PricePerYear": "{0} / godišnje", + "MyOrganizations_Detail_PurchaseDeveloperSeats": "Kupite mjesta za programere", + "Invoices": "Fakture", + "RequestInvoice": "Zatražite fakturu", + "OrderNumber": "Broj narudžbe", + "Date": "Datum", + "Products": "Proizvodi", + "TotalPrice": "Ukupna cijena", + "ThereIsNoInvoice": "Nema fakture", + "MyOrganizations_Detail_PaymentProviderInfo": "Ako ste licencu kupili preko {0} pristupnika, on šalje PDF fakturu na vašu adresu e-pošte, pogledajte {0} fakturiranje.", + "MyOrganizations_Detail_PayUInfo": "Ako ste kupili putem Iyzico gatewaya, kliknite gumb "Zatraži račun" i ispunite podatke za naplatu.", + "MyOrganizations_Detail_ConclusionInfo": "Vaš zahtjev za fakturu bit će zaključen u roku od {0} radnih dana.", + "ExtendYourLicense": "Produžite svoju {0} licencu", + "Continue": "Nastaviti", + "PurchaseLicense": "Kupite {0} licencu", + "DownloadInvoiceModal_DownloadInvoice": "Preuzmite fakturu", + "DownloadInvoiceModal_SaveInformationOnlyOnce": "Podatke o naplati možete spremiti samo jednom.", + "InvoiceModal_EnterCompanyName": "Unesite službeni naziv tvrtke...", + "InvoiceModal_EnterCompanyAddress": "Unesite službenu adresu tvrtke...", + "InvoiceModal_EnterTaxNumber": "Unesite svoj porezni/PDV broj ako je dostupan...", + "RequestInvoiceModal_EnterNotes": "Unesite dodatnu poruku o fakturi...", + "PrePayment_PayWithIyzico": "Platit ćeš Iyzicom", + "ContinueToCheckout": "Nastavi na blagajnu", + "PrePayment_IyzicoRedirectionInfo": "Bit ćete preusmjereni na Iyzico Payment Gateway kako biste sigurno dovršili svoju kupnju.", + "PrePayment_IyzicoAcceptVisaAndMasterCard": "Iyzico prihvaća Visa i MasterCard.", + "Purchase": "Kupiti", + "AcceptTermsAndConditions": "Pročitao sam, razumijem i prihvaćam politiku privatnosti , odredbe i uvjete i EULA.", + "AcceptTermsAndConditionsWarningMessage": "Prihvatite politiku privatnosti i uvjete korištenja", + "SelectGatewayToContinue": "Odaberite Gateway za nastavak!", + "GatewaySelection_SelectGateway": "Odaberite Payment Gateway", + "GatewaySelection_RedirectionMessage": "Zatim ćete biti preusmjereni na web mjesto odabranog pristupnika plaćanja za transakciju.", + "PaymentSucceed_PaymentSuccessMessage": "Plaćanje uspješno", + "PaymentSucceed_ThanksForPurchase": "Hvala vam na kupnji!", + "PaymentSucceed_CreateYourOrganization": "Stvorite svoju organizaciju", + "PaymentSucceed_AddMeAsDeveloper": "I ja sam programer, dodajte me kao programera u moju organizaciju.", + "PaymentSucceed_CreateOrganization": "Stvorite organizaciju", + "PaymentSucceed_OrganizationDescription": "Organizacija se sastoji od programera i vlasnika. Programeri su korisnici koji pišu kod na ABP projektu i imat će koristi od {1} web stranice. Vlasnici su korisnici koji dodjeljuju razvojna mjesta i upravljaju licenciranjem.", + "PaymentSucceed_ViewOrganization": "Kliknite ovdje za pregled organizacije", + "Purchase_TotalAnnualPrice": "UKUPNO (godišnja naknada)", + "Purchase_TrainingPrice": "Cijena obuke", + "Purchase_OnboardingTraining": "Uvođenje i razvoj web aplikacija Trening uživo", + "TotalDeveloperPrice": "Ukupna cijena programera", + "Purchase_PricePerDeveloper": "{0} {1} po programeru", + "Purchase_IncludedDeveloperInfo": "{0} {1} uključeno.", + "Purchase_LicenseExtraDeveloperPurchaseMessage": "Licenca {0} uključuje {1} programera. Možete dodati dodatne programere.", + "StartupTemplates_Page_Title": "ABP predlošci za pokretanje", + "StartupTemplates_Page_Description": "ABP Commercial omogućuje vam izradu rješenja bilo koje razine složenosti. Pruža dva glavna unaprijed izgrađena rješenja za pokretanje. Možete odabrati onaj koji je bliži vašim zahtjevima i na njemu izgraditi vlastito prilagođeno rješenje.", + "MicroserviceStartupSolutionForDotnet": "Rješenje za pokretanje mikroservisa za .NET", + "MonolithSolutionForDotnet": "Monolitno (modularno) rješenje za .NET", + "TrainingDetailsHeaderInfo_TrainingHour": "{0} sat(i)", + "Trainings_Content": "Sadržaj obuke", + "Trial_Page_StartYourFreeTrial": "Započnite besplatno probno razdoblje", + "TrialLicenseFeatures": "Moći ćete imati koristi od svih ABP komercijalnih značajki", + "TrialPeriodDays": "Imat ćete timsku licencu od {0} dana", + "TrialForumSupportIncident": "Imat ćete {0} incidenata podrške na forumu", + "Contact_Page_Title": "Kontaktirajte ABP razvojni tim", + "Contact_Page_Description": "Obratite se ABP razvojnom timu, ako trebate bilo kakvu pomoć ili podijelite svoja razmišljanja i mišljenja! ABP tim za podršku spreman je pomoći.", + "Demo_Page_Title": "Izradi demo", + "Demo_Page_Description": "Izradite besplatnu demo verziju da biste vidjeli primjer aplikacije stvorene korištenjem predloška za pokretanje ABP Commercial. Nemojte se ponavljati zbog uobičajenih zahtjeva za prijavu.", + "Discounted_Page_Title": "Snižene cijene", + "Discounted_Page_Description": "Odaberite značajke i funkcionalnost koje vaše poslovanje treba danas. Kupite ABP Commercial licencu i stvarajte neograničene projekte", + "Faq_Page_Title": "Često postavljana pitanja (FAQ)", + "Faq_Page_Description": "Imate li kakvih pitanja? Pretražite često postavljana pitanja ili nam postavite pitanje putem obrasca za kontakt.", + "Faq_Page_SwiftCode": "SWIFT kod", + "Faq_Page_BankName": "Ime banke", + "Faq_Page_AccountName": "Korisničko ime", + "Faq_Page_AccountNumber": "Broj računa", + "Faq_Page_Currency": "Valuta", + "Faq_Page_VatNumber": "PDV broj", + "Faq_Page_OtherCurrenciesInfo": "Za ostale valute pogledajte sve račune", + "ProjectCreatedSuccess_Page_Title": "Vaš projekt stvoren", + "ProjectCreatedSuccess_Page_Description": "Vaš ABP projekt uspješno je kreiran!", + "Suite_Page_Title": "ABP Suite", + "Suite_Page_Description": "ABP Commercial pruža alate za brzi razvoj aplikacija za povećanje produktivnosti programera. ABP Suite vam omogućuje jednostavno stvaranje CRUD stranica.", + "Themes_Page_Title": "ABP teme", + "Themes_Page_Description": "ABP Commercial nudi više profesionalnih, modernih tema korisničkog sučelja. Izradite besplatnu demo verziju kako biste brzo vidjeli kako korisničko sučelje izgleda.", + "Tools_Page_Title": "Alati za brzi razvoj aplikacija", + "Tools_Page_Description": "ABP Commercial pruža alate za brzi razvoj aplikacija za povećanje produktivnosti programera. ABP Suite vam omogućuje jednostavno stvaranje CRUD stranica.", + "DeveloperPrice": "Cijena programera", + "AdditionalDeveloperPaymentInfoSection_AdditionalDevelopers": "{0} programeri", + "LicenseRemainingDays": "za {0} dana", + "ExtendPaymentInfoSection_Description": "Produljenjem/obnavljanjem licence i dalje ćete dobivati premium podršku . Također ćete moći dobiti veća ili manja ažuriranja za module i teme. Moći ćete nastaviti stvarati nove projekte. I dalje ćete moći koristiti ABP Suite koji ubrzava vaš razvoj.", + "LicenseRenewalPrice": "Cijena obnove licence", + "LicensePrice": "Cijena licence", + "TrialLicensePaymentInfoSection_Description": "Kupnja licence: Kupnjom licence i dalje ćete dobivati premium podršku . Također ćete moći dobiti veća ili manja ažuriranja za module i teme. Moći ćete nastaviti stvarati nove projekte. I dalje ćete moći koristiti ABP Suite koji ubrzava vaš razvoj.
Pogledajte tablicu za usporedbu licenci kako biste provjerili razlike između vrsta licenci.", + "SelectTargetLicense": "Odaberite Ciljna licenca", + "UpgradePaymentInfoSection_ExtendMyLicenseForOneYear": "Da, produži mi datum isteka licence za 1 godinu.", + "UpgradePaymentInfoSection_WantToExtendLicense": "Želite li produžiti licencu za još 1 godinu?", + "UpgradePaymentInfoSection_UpgradingWillNotExtendLicense": "Nadogradnja neće produljiti datum isteka licence!", + "UpgradePaymentInfoSection_LicenseUpgradeDescription": "Nadogradnjom licence bit ćete promaknuti u višu vrstu licence, što će vam omogućiti dodatne pogodnosti. Pogledajte tablicu za usporedbu licenci kako biste provjerili razlike između vrsta licenci.", + "Landing_Page_CustomerStories": "Priče kupaca", + "Landing_Page_OurGreatCustomers": "Naši veliki kupci", + "Landing_Page_WebApplicationFramework": "Okvir web aplikacije", + "Landing_Page_WebDevelopmentPlatform": "Platforma za web razvoj", + "Landing_Page_CompleteWebDevelopmentPlatform": "Potpuna platforma za web razvoj", + "Landing_Page_TryFreeDemo": "Isprobajte besplatni demo", + "Landing_Page_StartingPointForWebApplications": "Polazna točka za web aplikacije temeljene na ASP.NET Core! Temelji se na ABP okviru za najbolji web razvoj.", + "Landing_Page_AbpProvidesSoftwareInfrastructure": "ABP Framework pruža softversku infrastrukturu za razvoj izvrsnih web aplikacija s najboljom praksom.", + "Landing_Page_MicroserviceCompatibleArchitecture": "Arhitektura kompatibilna s mikroservisom", + "Landing_Page_PreBuiltApplicationModulesAndThemes": "Unaprijed izgrađeni aplikacijski moduli i teme", + "Landing_Page_MultiTenantArchitecture": "Arhitektura s više stanara", + "Landing_Page_MultiTenancyDescription": "SaaS aplikacije su postale jednostavne! Integrirano višenamjensko korištenje od baze podataka do korisničkog sučelja.", + "Landing_Page_DDDIntroduction": "Dizajniran i razvijen na temelju DDD obrazaca i načela. Pruža slojeviti model za vašu aplikaciju.", + "Landing_Page_CrossCuttingConcernsInfo": "Kompletna infrastruktura za autorizaciju, provjeru valjanosti, rukovanje iznimkama, predmemoriju, revizijsko bilježenje, upravljanje transakcijama i više.", + "Landing_Page_PreBuiltApplicationModules": "Unaprijed izgrađeni aplikacijski moduli koji uključuju najčešće zahtjeve za web aplikacije.", + "Landing_Page_ChatModule": "razgovor", + "Landing_Page_DocsModule": "dokumenti", + "Landing_Page_FileManagementModule": "Upravljanje datotekama", + "Landing_Page_CustomerStory_1": "ABP Commercial dopustio je SC Ventures da u 9 mjeseci isporuči SaaS platformu silo-baze podataka bankovne razine za više zakupaca za podršku financiranju opskrbnog lanca potraživanja / obveza po računima značajnih faktura s više integriranih sidara. Modularnost ABP-a omogućila je timu isporuku u rekordnom vremenu, prolazak svih VAPT-a i implementaciju kontejnerskog skupa mikroservisa putem punog CI/CD-a i cjevovoda u proizvodnju.", + "Landing_Page_CustomerStory_2": "Vidimo vrijednost korištenja ABP Commerciala za smanjenje režijskih troškova prilagođenih razvojnih projekata. Tim može objediniti uzorak koda u različitim tokovima projekta. Vidimo više potencijala u okviru za izgradnju novih značajki brže nego prije. Vjerujemo da ćemo stalno uviđati vrijednost iskorištavanja ABP Commerciala.", + "Landing_Page_CustomerStory_3": "Volimo ABP. Ne moramo sve pisati ispočetka. Počinjemo od značajki izvan okvira i fokusiramo se samo na ono što stvarno trebamo napisati. Također, ABP je dobro projektiran i kod je visoke kvalitete s manje grešaka. Kad bismo morali sami napisati sve što nam treba, možda bismo morali potrošiti godine. Još jedna stvar koja nam se sviđa je da nova verzija, ili popravak problema, ili poboljšanje izlazi vrlo brzo \n svaki drugi tjedan. Ne čekamo predugo.", + "Landing_Page_CustomerStory_4": "ABP Commercial je fantastičan proizvod koji bih preporučio. Komercijalni proizvodi za tržište za naše kupce na jednoj platformi koja se može konfigurirati. Skok počinje da okvir i alati pružaju bilo koji tim vrijedan svakog centa. ABP Commercial najbolje je odgovarao našim potrebama.", + "Landing_Page_AdditionalServices": "Prilagođena ili količinska licenca, uvođenje, obuka i podrška uživo, prilagođeni razvoj projekata, prijenos postojećih projekata i više...", + "Landing_Page_IncludedDeveloperLicenses": "Uključeno {0} licenci razvojnog programera", + "Landing_Page_SeeOnDemo": "Pogledajte na Demo", + "Landing_Page_LeptonThemes": "LeptonTeme", + "Landing_Page_AccountModuleDescription_1": "Ovaj modul implementira sustav provjere autentičnosti za aplikaciju;", + "Landing_Page_AccountModuleDescription_2": "Pruža stranicu za prijavu s korisničkim imenom i lozinkom", + "Landing_Page_AccountModuleDescription_3": "Omogućuje stranicu za registraciju za stvaranje novog računa.", + "Landing_Page_AccountModuleDescription_4": "Omogućuje stranicu sa zaboravljenom lozinkom za slanje veze za ponovno postavljanje lozinke kao e-mail.", + "Landing_Page_AccountModuleDescription_5": "Omogućuje funkciju potvrde e-pošte s korisničkim sučeljem.", + "Landing_Page_AccountModuleDescription_6": "Implementira dvostruku autentifikaciju (SMS i e-mail).", + "Landing_Page_AccountModuleDescription_7": "Implementira zaključavanje korisnika (zaključava račun na postavljeno vrijeme kada se dogodi određeni broj neuspjelih prijava zbog nevažećih vjerodajnica unutar određenog vremenskog intervala).", + "Landing_Page_AccountModuleDescription_8": "Implementira korisničko sučelje i funkcionalnost poslužitelja za autentifikaciju poslužitelja identiteta .", + "Landing_Page_AccountModuleDescription_9": "Omogućuje prebacivanje između stanara u okruženju s više stanara.", + "Landing_Page_AccountModuleDescription_10": "Omogućuje promjenu jezika korisničkog sučelja aplikacije.", + "Landing_Page_AuditLoggingModuleDescription_1": "Ovaj modul pruža korisničko sučelje za izvješćivanje dnevnika revizije za infrastrukturu revizije. Omogućuje pretraživanje, filtriranje i prikaz unosa revizijskog dnevnika i dnevnika promjena entiteta.", + "Landing_Page_AuditLoggingModuleDescription_2": "Unos u dnevnik revizije sastoji se od kritičnih podataka o svakom zahtjevu klijenta:", + "Landing_Page_AuditLoggingModuleDescription_3": "URL, preglednik, IP adresa, ime klijenta", + "Landing_Page_AuditLoggingModuleDescription_4": "Korisnik", + "Landing_Page_AuditLoggingModuleDescription_5": "HTTP metoda, HTTP povratni statusni kod", + "Landing_Page_AuditLoggingModuleDescription_6": "Uspjeh/neuspjeh, pojedinosti o iznimci ako su dostupne", + "Landing_Page_AuditLoggingModuleDescription_7": "Trajanje izvršenja zahtjeva", + "Landing_Page_AuditLoggingModuleDescription_8": "Entiteti su stvoreni, izbrisani ili ažurirani u ovom zahtjevu (s promijenjenim svojstvima).", + "Landing_Page_BloggingModuleDescription_1": "Ovaj modul dodaje jednostavan blog vašoj ABP aplikaciji;", + "Landing_Page_BloggingModuleDescription_2": "Omogućuje stvaranje više blogova u jednoj aplikaciji.", + "Landing_Page_BloggingModuleDescription_3": "Podržava Markdown format.", + "Landing_Page_BloggingModuleDescription_4": "Omogućuje pisanje komentara za post.", + "Landing_Page_BloggingModuleDescription_5": "Omogućuje dodjeljivanje oznaka postovima na blogu.", + "Landing_Page_BloggingModuleDescription_6": "Pogledajte web stranicu blog.abp.io kao živi primjer blogging modula.", + "Landing_Page_ChatModuleDescription_1": "Ovaj modul se koristi za razmjenu poruka u stvarnom vremenu između korisnika u aplikaciji.", + "Landing_Page_ChatModuleDescription_2": "Razmjena poruka u stvarnom vremenu na stranici za razgovor.", + "Landing_Page_ChatModuleDescription_3": "Pretražite korisnike u aplikaciji za nove razgovore.", + "Landing_Page_ChatModuleDescription_4": "Popis kontakata za nedavne razgovore.", + "Landing_Page_ChatModuleDescription_5": "Obavijesti o novim porukama kada korisnik gleda drugu stranicu.", + "Landing_Page_ChatModuleDescription_6": "Oznaka ukupnog broja nepročitanih poruka na ikoni izbornika.", + "Landing_Page_ChatModuleDescription_7": "Broj nepročitanih poruka za svaki razgovor.", + "Landing_Page_ChatModuleDescription_8": "Lijeno učitani razgovori.", + "Landing_Page_DocsModuleDescription_1": "Ovaj modul se koristi za izradu web stranica s tehničkom dokumentacijom;", + "Landing_Page_DocsModuleDescription_2": "Ugrađena GitHub integracija : Izravno pišite i upravljajte dokumentima na GitHubu.", + "Landing_Page_DocsModuleDescription_3": "Podrška za određivanje verzija izravno integrirana u GitHub izdanja.", + "Landing_Page_DocsModuleDescription_4": "Podržava više jezika (s rezervnom podrškom za zadani jezik).", + "Landing_Page_DocsModuleDescription_5": "Podržava Markdown i HTML formate.", + "Landing_Page_DocsModuleDescription_6": "Pruža odjeljak za navigaciju i pregled .", + "Landing_Page_DocsModuleDescription_7": "Omogućuje smještaj više projektne dokumentacije u jednoj aplikaciji.", + "Landing_Page_DocsModuleDescription_8": "Veze na datoteku na GitHubu, tako da svatko može lako pridonijeti klikom na vezu Uredi .", + "Landing_Page_DocsModuleDescription_9": "Osim izvora GitHub, omogućuje jednostavno korištenje mape kao izvora dokumentacije.", + "Landing_Page_FileManagementModuleDescription_1": "Prijenos, preuzimanje i organiziranje datoteka u hijerarhijsku strukturu mapa.", + "Landing_Page_FileManagementModuleDescription_2": "Ovaj se modul koristi za učitavanje, preuzimanje i organiziranje datoteka u hijerarhijskoj strukturi mapa. Također je kompatibilan s višestrukim zakupom i možete odrediti ograničenje ukupne veličine za svoje stanare.", + "Landing_Page_FileManagementModuleDescription_3": "Ovaj se modul temelji na BLOB sustavu pohrane , tako da može koristiti različite pružatelje pohrane za pohranjivanje sadržaja datoteke.", + "Landing_Page_IdentityModuleDescription_1": "Ovaj modul implementira sustav korisnika i uloga aplikacije;", + "Landing_Page_IdentityModuleDescription_2": "Izgrađen na Microsoftovoj biblioteci ASP.NET Core Identity .", + "Landing_Page_IdentityModuleDescription_3": "Upravljanje ulogama i korisnicima u sustavu. Korisnik može imati više uloga .", + "Landing_Page_IdentityModuleDescription_4": "Postavite dopuštenja na razini uloga i korisnika.", + "Landing_Page_IdentityModuleDescription_5": "Omogućite/onemogućite dvofaktornu provjeru autentičnosti i zaključavanje korisnika po korisniku.", + "Landing_Page_IdentityModuleDescription_6": "Upravljanje osnovnim korisničkim profilom i lozinkom .", + "Landing_Page_IdentityModuleDescription_7": "Upravljajte vrstama zahtjeva u sustavu, postavite zahtjeve za uloge i korisnike.", + "Landing_Page_IdentityModuleDescription_8": "Stranica za postavljanje za upravljanje složenošću lozinke , prijavom korisnika, računom i zaključavanjem.", + "Landing_Page_IdentityModuleDescription_9": "Podržava LDAP autentifikaciju.", + "Landing_Page_IdentityModuleDescription_10": "Omogućuje potvrdu e-pošte i telefonskog broja .", + "Landing_Page_IdentityModuleDescription_11": "Podržava društvene integracije za prijavu (Twitter, Facebook, GitHub itd...).", + "Landing_Page_IdentityModuleDescription_12": "Upravljanje organizacijskim jedinicama u sustavu.", + "Landing_Page_PaymentModuleDescription_1": "Omogućuje integraciju za različite pristupnike plaćanja.", + "Landing_Page_PaymentModuleDescription_2": "Ovaj modul pruža integraciju za pristupnike plaćanja, tako da možete jednostavno dobiti plaćanje od svojih kupaca.", + "Landing_Page_PaymentModuleDescription_3": "Ovaj modul podržava sljedeće pristupnike plaćanja", + "Welcome_Page_UseSameCredentialForCommercialWebsites": "Koristite iste vjerodajnice za commercial.abp.io i support.abp.io .", + "WatchCrudPagesVideo": "Pogledajte video "Izrada CRUD stranica s ABP Suiteom"!", + "WatchGeneratingFromDatabaseVideo": "Pogledajte video "ABP Suite: Generiranje CRUD stranica iz postojećih tablica baze podataka"!", + "WatchTakeCloserLookVideo": "Pogledajte video "Pobliže pogledajte generiranje koda: ABP Suite"!", + "ConfirmedEmailAddressRequiredToStartTrial": "Trebali biste imati potvrđenu adresu e-pošte kako biste započeli probnu licencu.", + "EmailVerificationMailNotSent": "Pošta za potvrdu e-pošte nije mogla biti poslana.", + "GetConfirmationEmail": "Kliknite ovdje da biste dobili e-poruku za potvrdu ako je prije niste dobili.", + "WhichLicenseTypeYouAreInterestedIn": "Koja vrsta licence vas zanima?", + "DontTakeOurWordForIt": "Nemojte nam vjerovati na riječ...", + "ReadAbpCommercialUsersWantYouToKnow": "Pročitajte što korisnici ABP Commerciala žele da znate", + "Testimonial_ShortDescription_1": "Modularnost ABP-a omogućila je timu da isporuči na vrijeme.", + "Testimonial_ShortDescription_2": "Izgradite nove značajke brže nego prije.", + "Testimonial_ShortDescription_3": "Počinjemo od značajki izvan okvira i fokusiramo se samo na ono što stvarno trebamo napisati.", + "Testimonial_ShortDescription_4": "ABP Commercial najbolje je odgovarao našim potrebama.", + "OnlineReviewersOnAbpCommercial": "Mrežne recenzije na ABP Commercial", + "SeeWhatToldAboutAbpCommercial": "Pogledajte što je rečeno o ABP Commercialu i napišite svoje mišljenje ako želite.", + "BlazoriseLicense": "Moramo li kupiti Blazorise licencu?", + "BlazoriseLicenseExplanation": "Imamo ugovor između Volosofta i Megabita, uz ovaj ugovor Blazorise licenca je u paketu s ABP Commercial proizvodima, stoga naši korisnici ne moraju kupiti dodatnu Blazorise licencu.", + "ExtendPaymentInfoSection_DeveloperPrice": "{0}x dodatni programer(i)", + "ExtendPaymentInfoSection_DiscountRate": "Popust {0}%", + "TotalNetPrice": "Ukupna neto cijena", + "EFCore": "Entity Framework Core", + "All": "svi", + "Mvc": "MVC", + "DataBaseProvider": "Pružatelj podataka", + "UIFramework": "UI okvir", + "LeptonXThemeForDashboard": "LeptonX tema za vašu nadzornu ploču administratora autora", + "AbpPlatform": "ABP platforma", + "YouDeserveGoodUXUI": "Zaslužujete dobro korisničko sučelje i bolji UX. Tema LeptonX od ABP-a je tu da joj posluži.", + "ViewLiveDemo": "Pogledajte demonstraciju teme uživo", + "GetLeptonX": "Nabavite LeptonX odmah", + "SeeLeptonXDocumentation": "Vidi LeptonX dokumentaciju", + "SeeLeptonDocumentation": "Vidi Lepton dokumentaciju", + "SimplifiedMenu": "Pojednostavljeni izbornik", + "SimplifiedMenuDescription": "Stranicu koju tražite možete lako pronaći filtriranjem izbornika", + "YourFavoritePages": "Vaše omiljene stranice na dohvat ruke", + "YourFavoritePagesDescription": "Jednostavno dodajte ili uklonite stranicu iz favorita klikom na ikonu zvjezdice u gornjem desnom kutu stranice.", + "BreadCrumbs": "Breadcrumb za besprijekorno prebacivanje", + "BreadCrumbsDescription": "Koristeći Breadcrumb, možete jednim klikom prelaziti na stranice na istoj razini, čak i kada je lijevi izbornik zatvoren, a radi i na tabletu i mobitelu responsive!", + "YourMenu": "Vaš jelovnik po želji", + "YourMenuDescription": "Prilagodite ikone na koje se može izravno kliknuti i padajuće okvire na korisničkom izborniku kako želite. Korisnički izbornik u potpunosti je prilagodljiv vašim potrebama", + "RtlSupport": "RTL podrška za vaš jezik", + "RtlSupportDescription": "Tema LeptonX podržava RTL za vaš jezik. Opcije jezika nalaze se u izborniku postavki za promjenu jezika.", + "YourColors": "Vaše boje na korisničkom sučelju nadzorne ploče administratora", + "YourColorsDescription": "Tema LeptonX radi u skladu s postavkama vašeg sustava i ima opcije svijetle teme nadzorne ploče, tamne teme nadzorne ploče i opcije polutamne teme nadzorne ploče.", + "ArrangeContentWidth": "Lako uredite širinu sadržaja", + "ArrangeContentWidthDescription": "Lako promijenite širinu područja sadržaja.", + "LeptonXCompatibleWith": "Tema LeptonX kompatibilna je s", + "MobileResponsiveTemplate": "Mobilni responzivni predložak", + "MobileResponsiveTemplateDescription1": "Pristupite svojoj LeptonX administratorskoj nadzornoj ploči s bilo kojeg uređaja koji želite.", + "MobileResponsiveTemplateDescription2": "Osmišljen je za jednostavno korištenje u svakom vašem uređaju. Responzivan je na mobilnim uređajima i veličinama tableta.", + "TopMenuLayoutOption": "Opcija izgleda gornjeg izbornika", + "TopMenuLayoutOptionDescription1": "Ako želite postaviti svoju web stranicu s istom administratorskom nadzornom pločom, moguće je to učiniti s temom LeptonX!", + "TopMenuLayoutOptionDescription2": "Samo isprobajte LeptonX izgled gornjeg izbornika kako biste to ostvarili!", + "EasilyCustomizable": "Lako prilagodljiv za boje vaše marke", + "EasilyCustomizableDescription1": "LeptonX temu možete prilagoditi koristeći samo nekoliko SCSS varijabli. Nema nadjačavanja, nema dodatnog učitavanja CSS-a!", + "EasilyCustomizableDescription2": "S LeptonXom možete urediti svoju nadzornu ploču administratora kako god želite.", + "IndependentLayout": "Samostalni izgled i prostor za sadržaj", + "IndependentLayoutDescription1": "LeptonX-ova infrastruktura izgleda dizajnirana je potpuno odvojeno od sadržaja.", + "IndependentLayoutDescription2": "To znači da možete slobodno dizajnirati svoj projekt sa strukturom sadržaja koja nije Bootstrap ako želite.", + "MostUsedLibraries": "Najčešće korištene biblioteke integrirane s LeptonX", + "MostUsedLibrariesDescription1": "LeptonX sadrži vaše najčešće korištene biblioteke. Omogućuje vam korištenje biblioteka kao što su ApexCharts, DataTables, DropZone, FullCalender, JSTree, Select2 i Toastr bez napora.", + "MostUsedLibrariesDescription2": "LeptonX također podržava MVC Angular i Blazor specifične biblioteke.", + "CreateAndCustomize": "Izradite i prilagodite stranice koje trebate u nekoliko sekundi s prilagođenim stranicama LeptonX", + "CreateAndCustomizeDescription": "Korištenjem LeptonX teme također imate pristup mnogim unaprijed napravljenim HTML stranicama. To uključuje mnoge stranice kao što su stranica za prijavu, blog, FAQ, popis pretplata, fakture, cijene i upravljanje datotekama.", + "LeptonThemeForAdmin": "Lepton Tema za vašu administratorsku nadzornu ploču od", + "LeptonThemeForAdminDescription": "Tema Lepton je još uvijek dostupna i održavat će se. Ako se želite prebaciti na temu LeptonX kao korisnik teme Lepton, možete pogledati dokumentaciju da biste saznali kako.", + "LeptonCompatibleWith": "Tema Lepton je kompatibilna sa", + "BlackFridayDiscount": "Crni petak popust", + "UpgradePaymentInfoSection_DeveloperPrice": "{0} za {1} dodatnih programera(a)", + "Upgrade": "Nadogradnja", + "Renewal": "Obnova", + "UpgradePaymentInfoSection_LicensePrice": "{0} licenca", + "UpgradePaymentInfoSection_LicenseRenewalPrice": "Obnova licence", + "Total": "Ukupno", + "SupportPolicyFaqTitle": "Kakva je vaša politika podrške?", + "SupportPolicyFaqExplanation": "Podržavamo samo aktivnu i prethodnu glavnu verziju. Ne jamčimo izdavanje zakrpe za 3. i starije glavne verzije. Na primjer, ako je aktivna verzija 7.0.0, objavit ćemo izdanja zakrpa i za 6.xx i za 7.xx. Osim toga, pružamo podršku samo za ABP Framework i ABP Commercial pitanja. To znači da se ne daje podrška za aplikacije trećih strana, usluge u oblaku i druge periferne biblioteke koje koriste ABP proizvodi. Uložit ćemo komercijalno razumne napore da svojim klijentima pružimo tehničku podršku tijekom službenog radnog vremena "Volosoft Bilisim AS". S druge strane, ne obvezujemo se na vrijeme odgovora ugovora o razini usluge (SLA), ali ćemo pokušati odgovoriti na tehničke probleme što je brže moguće unutar našeg službenog radnog vremena. Osim ako nije sklopljen poseban ugovor s korisnikom, podršku pružamo samo na https://support.abp.io. Imamo i privatnu podršku e-poštom, koja je dostupna samo nositeljima Enterprise License.", + "TotalDevelopers": "Ukupno {0} programera(a)", + "CustomPurchaseExplanation": "Prilagođeno vašim specifičnim potrebama", + "WhereDidYouHearAboutUs": "Gdje ste čuli za nas?", + "Twitter": "Cvrkut", + "Facebook": "Facebook", + "Youtube": "YouTube", + "Google": "Google", + "Github": "GitHub", + "Friend": "Od prijatelja", + "Other": "ostalo", + "WhereDidYouHearAboutUs_explain": "Navedite...", + "DeletingMemberWarningMessage": ""{0}" će biti uklonjen s popisa programera. Ako želite, kasnije možete dodijeliti ovo prazno mjesto drugom programeru.", + "AdditionalInfo": "Ako su mjesta za programere iznad vaših zahtjeva, možete ih smanjiti. Možete poslati e-poruku na info@abp.io kako biste uklonili neka od svojih razvojnih mjesta. Brisanje neiskorištenih razvojnih mjesta smanjit će troškove obnove licence. Ako želite, možete ponovno kupiti dodatna razvojna mjesta unutar razdoblja svoje aktivne licence. Imajte na umu da, budući da u ovom licencnom paketu ima {0} programera, ne možete smanjiti ovaj broj.", + "LinkExpiredErrorMessage": "Veza kojoj pokušavate pristupiti je istekla.", + "ExpirationDate": "Datum isteka roka trajanja", + "SpringCampaignDiscount": "Proljetni akcijski popust", + "WhyUseAbpIoPlatform": "Zašto bih trebao koristiti ABP.IO platformu umjesto stvaranja novog rješenja od nule?", + "WhyUseAbpIoPlatformFaqExplanation": "Pogledajte tu stranicu za detaljno objašnjenje zašto korištenje ABP.IO Platforme ima značajnu prednost u odnosu na to da sve radite sami.", + "EulaPageTitle": "Licencni ugovor s krajnjim korisnikom (EULA)", + "PrivacyPolicyPageTitle": "Politika privatnosti - Politika kolačića", + "TermsConditionsPageTitle": "Odredbe i uvjeti", + "TrainingsPageTitle": "ABP paketi obuke", + "ModulesPageTitle": "ABP unaprijed izgrađeni aplikacijski moduli", + "Volo.AbpIo.Commercial:040001": "API pristupni ključ je pogrešan.", + "GetLepton": "Nabavite Lepton odmah", + "MyOrganizations_Detail_LicenseStartDate": "Datum početka licence", + "MyOrganizations_Detail_LicenseExpiryDate": "Datum isteka", + "BlazoriseSupport": "Kako mogu dobiti Blazorise licencni ključ i podršku od Blazorise tima?", + "BlazoriseSupportExplanation": "Slijedite korake u nastavku kako biste dobili podršku Blazorise tima i dobili svoj Blazorise licencni ključ:", + "BlazoriseSupportExplanation1": "Prijavite se za novi račun na blazorise.com/support/register s istom adresom e-pošte kao i vaš abp.io račun. Ostavite unos "Ključ licence" prazan. Mora biti ista adresa e-pošte kao i vaš račun e-pošte na abp.io.", + "BlazoriseSupportExplanation2": "Potvrdite svoju adresu e-pošte označavanjem pretinca za e-poštu. Provjerite pretinac neželjene pošte ako ne vidite e-poštu u pristigloj pošti!", + "BlazoriseSupportExplanation3": "Prijavite se na web mjesto za podršku Blazorise na blazorise.com/support/login .", + "BlazoriseSupportExplanation4": "Ako imate aktivnu ABP Commercial licencu, imat ćete i Blazorise PRO licencu. Svoj licencni ključ za Blazorise možete dobiti na blazorise.com/support/user/manage/license .", + "BlazoriseSupportExplanation5": "Možete objaviti svoja pitanja na web stranici podrške i generirati token proizvoda za svoju aplikaciju.", + "AbpLiveTrainingPackages": "ABP paketi obuke uživo", + "Releases": "Izdanja", + "ReleasesDescription": "Dnevnici izdanja ABP Commerciala.", + "ReleaseDate": "Datum izlaska", + "Labels": "Etikete", + "PreRelease": "Prije izdanja", + "AllTypes": "Svi tipovi", + "Enhancement": "Poboljšanje", + "Bug": "Bug", + "Feature": "Značajka", + "AllUIs": "Sva sučelja", + "MVC": "MVC", + "BlazorServer": "Blazor poslužitelj", + "MAUI": "MAUI", + "HowItWorks_Page_Title": "Kako radi?", + "HowItWorks_Page_Description": "ABP Framework proširuje .NET platformu. Dakle, sve što možete učiniti s običnim .NET rješenjem već je moguće s ABP Frameworkom. To olakšava početak s niskom krivuljom učenja.", + "HowItWorks_Description1": "ABP Framework proširuje .NET platformu. Dakle, sve što možete učiniti s običnim .NET rješenjem već je moguće s ABP Frameworkom. To olakšava početak s niskom krivuljom učenja.", + "HowItWorks_Description2": "Jednom kada počnete učiti i koristiti značajke ABP Frameworka, razvijanje vašeg softvera bit će puno ugodnije nego ikad.", + "HowItWorks_Description3": "Ova stranica u osnovi objašnjava kako koristite ABP.IO platformu kao .NET programer.", + "CreateANewSolution": "Stvorite novo .NET rješenje", + "CreateANewSolution_Description1": "Sve počinje stvaranjem novog ABP integriranog .NET rješenja.", + "StartWithStartupTemplates": "Pokrenite jedan od unaprijed izrađenih predložaka rješenja za pokretanje", + "SimpleMonolithApplicationTemplate": "Jednostavan predložak monolitne aplikacije", + "LayeredApplicationTemplate": "Slojeviti predložak aplikacije", + "MicroserviceSolutionTemplate": "Predložak rješenja mikroservisa", + "CreateEmptySolutionAndUseAbp": "Ili izradite novo prazno .NET rješenje i sami instalirajte ABP NuGet & NPM pakete .", + "CreatingSolutionWithMultipleOptions": "Prilikom izrade novog rješenja postoji više opcija korisničkog sučelja i baze podataka.", + "UIFrameworkOptions": "Opcije okvira korisničkog sučelja", + "DotnetSolutionWithoutDependency": "Sada imate uobičajeno .NET rješenje na vašem lokalnom računalu koje ne ovisi o platformi u oblaku ili vanjskoj usluzi.", + "CheckTheDocumentForDetails": "Pojedinosti možete pronaći u dokumentu {1} .", + "UIAndDatabaseIndependent": "ABP može raditi s bilo kojim korisničkim sučeljem i bilo kojim pružateljem baze podataka koje podržava .NET. \n Međutim, ovi pružatelji korisničkog sučelja i baze podataka unaprijed su integrirani i dobro dokumentirani.", + "InstallAbpModules": "Instalirajte ABP module", + "DevelopYourSolution": "Razvijte svoje rješenje", + "DeployAnywhere": "Postavite bilo gdje", + "InstallAbpModule_Description1": "ABP je modularni okvir za razvoj aplikacija. Predlošci rješenja za pokretanje već dolaze s instaliranim osnovnim modulima. \n Ali postoji više aplikacijskih modula koje biste mogli upotrijebiti u svom rješenju.", + "InstallAbpModule_Description2": "Svaki modul sastoji se od nekoliko NuGet i NPM paketa i ima instalacijski dokument. ABP Suite većinu posla obavlja automatski, a zatim ručno konfigurirate ili fino podešavate modul na temelju njegove dokumentacije.", + "DevelopYourSolution_Description1": "ABP-ova infrastruktura tjera vas da se usredotočite na vlastiti poslovni kod automatizirajući rad koji se ponavlja i pruža unaprijed izgrađenu infrastrukturu i značajke aplikacije.", + "DevelopYourSolution_Description2": "U sljedećem bloku koda možete vidjeti kako se ABP Framework neprimjetno integrira u vaš kod i automatizira zadatke koji se ponavljaju umjesto vas.", + "DevelopYourSolution_Description3": "Čak iu ovom bloku kratkog koda, ABP radi puno stvari za vas.", + "DevelopYourSolution_Description4": "Omogućuje osnovne klase za primjenu konvencija, poput \n ubrizgavanja ovisnosti . Generičke usluge repozitorija \n pružaju prikladan \n način interakcije s bazom podataka. Deklarativna autorizacija \n radi s fino podešenim sustavom dozvola.", + "DevelopYourSolution_Description5": "ABP potpuno automatizira radnu jedinicu \n (za povezivanje s bazom podataka i upravljanje transakcijama), rukovanje iznimkama \n , provjeru valjanosti \n \n i revizijsko bilježenje . Omogućuje mnogo više sastavnih dijelova za pojednostavljenje vaših svakodnevnih razvojnih zadataka i fokusiranje na vlastiti kod dok stvarate \n aplikacije spremne za proizvodnju.", + "DevelopYourSolution_Description6": "Možete zamisliti koliko taj blok koda može biti dug i kompliciran kada biste sve to radili ručno.", + "SuiteCrudGenerationInFewSeconds": "Osim ručnog kodiranja vašeg rješenja, možete izraditi potpuno radne napredne CRUD stranice u nekoliko minuta pomoću alata ABP Suite. Generira kod u vašem rješenju, tako da ga možete fino prilagoditi na temelju svojih prilagođenih zahtjeva.", + "DeployAnywhere_Description1": "Na kraju dana, imate čisto .NET rješenje. Svoje rješenje možete implementirati na vlastiti poslužitelj, na platformu u oblaku, na Kubernetes ili gdje god želite. Možete implementirati na onoliko poslužitelja koliko želite. ABP je agnostički alat za razvojnu okolinu.", + "ExpertiseAbpFramework": "Proučite ABP okvir", + "ExpertiseAbpFramework_Description1": "Želite ići dalje od osnova i steći stručnost s platformom ABP.IO?", + "FreeDownload": "Besplatno preuzimanje", + "Read": "Čitati", + "HavingTrouble": "Imate problema?", + "HavingTrouble_Description1": "Imate li problema s razvojem svog rješenja? Mi smo ovdje! Upotrijebite ABP platformu za podršku \n ili pošaljite e-poštu kako biste dobili pomoć izravno od članova tima Core ABP Framework.", + "WeAreHereToHelp_Description1": "Možete pregledavati naše teme pomoći ili pretraživati u često postavljanim pitanjima, \n ili nam možete postaviti pitanje koristeći obrazac za kontakt.", + "OtherModules": "Ostali moduli", + "OtherModules_Description1": "Račun, bilježenje revizije, chat, CMS komplet, upravljanje datotekama, obrasci, GDPR, identitet, upravljanje jezikom, plaćanje, Saas i više...", + "HowItWorks_DatabaseProviderOptions": "Mogućnosti pružatelja baze podataka", + "SeeFAQ": "Vidi FAQ", + "ReleaseLogs": "Dnevnici izdanja", + "ReleaseLogs_Tag": "{0} Dnevnici izdanja", + "ReleaseLogs_Pr": "Zahtjev za povlačenje #{0} - {1}", + "NoLabels": "Nema etiketa", + "DoesTheSubscriptionRenewAutomatically": "Obnavlja li se pretplata automatski?", + "DoesTheSubscriptionRenewAutomaticallyExplanation": "ABP Commercial nema model naplate s automatskim obnavljanjem. Stoga vaša pretplata neće biti automatski obnovljena na kraju vašeg licencnog razdoblja. Ako želite i dalje imati prednosti ABP Commerciala, trebate ga ručno obnoviti na stranici za upravljanje organizacijom . Ako imate više organizacija, kliknite gumb "Upravljanje" u organizaciji kojoj ističe, a zatim kliknite gumb "Produži sada" da obnovite licencu. Možda biste također željeli pogledati Što se događa kada istekne moja licenca? odjeljak.", + "ExtraQuestionCreditsFaqTitle": "Mogu li kupiti dodatne kredite za pitanja podrške?", + "ExtraQuestionCreditsFaqExplanation": "Da, možeš. Za kupnju dodatnih kredita za pitanja pošaljite e-poštu na info@abp.io s nazivom svoje organizacije. Evo cjenika za dodatne bodove za pitanja:
  • Paket od 50 pitanja 999 USD
  • Paket od 25 pitanja 625 USD
  • Paket od 15 pitanja 450 USD
", + "AlreadyBetaTester": "Već ste se pridružili programu beta testera.", + "AbpStudio": "ABP studio", + "AbpStudio_Description": "ABP Studio je još uvijek u razvoju. Možete ispuniti obrazac ispod i biti jedan od prvih korisnika.", + "AbpStudio_Description1": "ABP Studio je stolna aplikacija za više platformi za ABP programere.", + "AbpStudio_Description2": "Dobro je integriran u ABP Framework i ima za cilj pružiti vam ugodno razvojno okruženje automatiziranjem stvari, pružanjem uvida u vaše rješenje, čineći razvoj, pokretanje i implementaciju vaših rješenja puno lakšim.", + "AbpStudio_ComingSoon": "Uskoro. Planirani datum izdavanja beta verzije: 4. tromjesečje 2023.", + "AbpStudio_PlannedPreviewDate": "Planirani datum izdavanja pregleda: 4. kvartal 2023.", + "BetaRequest": "Zahtjev za beta verziju", + "CreateNewSolutions": "Stvorite nova rješenja", + "CreateNewSolutions_Description1": "Možete jednostavno stvarati od jednostavnih aplikacija do modularnih monolitnih ili mikroservisnih rješenja s puno opcija. Dobivate potpuno softversko rješenje spremno za proizvodnju za vaše poslovanje.", + "ArchitectYourSolutions": "Projektirajte svoja rješenja", + "ArchitectYourSolutions_Description1": "Lakše izgradite monolitno-modularne i mikroservisne strukture rješenja stvaranjem modula ili usluga i uspostavljanjem odnosa između njih. Također možete instalirati ili deinstalirati unaprijed izgrađene aplikacijske module.", + "ExploreYourSolution": "Istražite svoje rješenje", + "ExploreYourSolution_Description1": "ABP Studio prikazuje visoku razinu prikaza komponenti u vašem rješenju i modula o kojima ovisi vaše rješenje. Možete istraživati entitete, usluge, HTTP API-je i još mnogo toga bez potrebe za otvaranjem baze kodova.", + "RunMultiApplicationOrMicroserviceSolutionsInABreeze": "Pokrenite Multi-Application ili Microservice rješenja u povjetarcu", + "RunMultiApplicationOrMicroserviceSolutionsInABreeze_Description1": "Pokrenite jednu, više ili sve usluge jednim klikom. Na taj je način vrlo jednostavno zaustaviti uslugu, pokrenuti je u Visual Studiju za testiranje ili uklanjanje pogrešaka .", + "RunMultiApplicationOrMicroserviceSolutionsInABreeze_Description2": "Pogledajte popis usluga, pogledajte HTTP zahtjeve u stvarnom vremenu i broj izuzetaka za svaku uslugu.", + "RunMultiApplicationOrMicroserviceSolutionsInABreeze_Description3": "Pogledajte sve pojedinosti o svim HTTP zahtjevima koji dolaze bilo kojoj usluzi.", + "RunMultiApplicationOrMicroserviceSolutionsInABreeze_Description4": "Istražite pojedinosti iznimke u stvarnom vremenu u bilo kojoj usluzi, jednostavno filtrirajte i pretražujte.", + "RunMultiApplicationOrMicroserviceSolutionsInABreeze_Description5": "Prikažite zapisnike aplikacije , filtrirajte po razini zapisnika ili pretražite po tekstu..", + "RunMultiApplicationOrMicroserviceSolutionsInABreeze_Description6": "Pregledajte korisničko sučelje svoje aplikacije bez napuštanja pokretača rješenja.", + "IntegrateToYourKubernetesCluster": "Integrirajte u svoj Kubernetes klaster", + "IntegrateToYourKubernetesCluster_Description1": "Povežite svoje lokalno razvojno okruženje s lokalnim ili udaljenim Kubernetes klasterom , gdje taj klaster već pokreće vaše mikrouslužno rješenje.", + "IntegrateToYourKubernetesCluster_Description2": "Pristupite bilo kojoj usluzi u Kubernetesu s nazivom usluge kao DNS, baš kao da se izvodi na vašem lokalnom računalu.", + "IntegrateToYourKubernetesCluster_Description3": "Presretnite bilo koju uslugu u tom klasteru, tako da se sav promet prema presretnutoj usluzi automatski preusmjerava na vašu uslugu koja se izvodi na vašem lokalnom računalu. Kada vaša usluga treba koristiti bilo koju uslugu u Kubernetesu, promet se preusmjerava natrag u klaster, baš kao što vaša lokalna usluga radi unutar Kubernetesa.", + "GetInformed": "Informirajte se", + "Studio_GetInformed_Description1": "Ostavite svoje podatke za kontakt kako biste se informirali i isprobajte prvi kada ABP Studio bude pokrenut.", + "Studio_GetInformed_Description2": "Planirani datum izdavanja pregleda: treće tromjesečje 2023.", + "ThankYou!": "Hvala vam!", + "SendBetaRequest": "Pošalji zahtjev za beta verziju", + "YouJoinedTheBetaTesterProgram": "Pridružili ste se programu beta testera ABP Studio.", + "PricingExplanation2": "30 dana jamstva povrata novca — saznajte više", + "MoneyBackGuaranteeText": "* 30-dnevno jamstvo povrata novca za sve licence! 100% povrata za Team, 60% povrata za Business i Enterprise licence u roku od 30 dana.", + "MobileApplicationStartupTemplates": "Predlošci za pokretanje mobilne aplikacije", + "MobileApplicationStartupTemplates_Description1": "Integrirani predlošci za pokretanje mobilnih aplikacija za vaša ABP komercijalna rješenja.", + "CreatePowerfulLineOfBusinessApplicationsUsingABPMobileStartupTemplates": "Stvorite moćne poslovne aplikacije koristeći ABP Mobile Startup Templates", + "CreatePowerfulLineOfBusinessApplicationsUsingABPMobileStartupTemplates_Description1": "ABP Commercial nudi dva predloška za pokretanje mobilnih aplikacija implementiranih s React Native i .NET MAUI. Kada izradite svoje novo rješenje temeljeno na ABP-u, imat ćete i osnovne aplikacije za pokretanje povezane s vašim pozadinskim API-jima.", + "CreatePowerfulLineOfBusinessApplicationsUsingABPMobileStartupTemplates_Description2": "Aplikacija ima unaprijed izgrađeni ciklus tokena za provjeru autentičnosti, podršku za više jezika, podršku za više korisnika, prijavu, zaboravljenu lozinku, upravljanje profilima i stranicu za upravljanje korisnicima . Možete dodati vlastitu poslovnu logiku i prilagoditi je prema svojim zahtjevima.", + "TwoFrameworkOptions": "Dvije opcije okvira", + "TwoFrameworkOptions_Description": "ABP nudi i React Native i .NET MAUI mobilne predloške za pokretanje. Na taj način možete odabrati onaj koji najbolje odgovara vašim potrebama. Obje aplikacije ponovno koriste kod s najvećom stopom između iOS i Android platformi.", + "PreIntegratedToYourBackend": "Unaprijed integriran u vašu pozadinu", + "PreIntegratedToYourBackend_Description": "ABP mobilne aplikacije unaprijed su integrirane u vaše pozadinske API-je. Od poslužitelja dobiva važeći autentifikacijski token i šalje autentificirane zahtjeve.", + "MultiLanguage": "Višejezično", + "MultiLanguage_Description": "Već odmah podržava više od 10 jezika. Također možete dodati sljedeće jezike.", + "Arabic": "arapski", + "Czech": "češki", + "English": "Engleski", + "Hungarian": "mađarski", + "Finnish": "finski", + "French": "francuski", + "Hindi": "hindski", + "Portuguese": "Portugalski", + "Italian": "talijanski", + "Russian": "ruski", + "Slovak": "slovački", + "Turkish": "turski", + "EngageAndRetainYourCustomersWithABPMobileApps": "Uključite i zadržite svoje kupce uz ABP mobilne aplikacije", + "EngageAndRetainYourCustomersWithABPMobileApps_Description1": "Vaši klijenti žele upravljati svojim proizvodima i pretplatama s bilo kojeg mjesta i bilo kada. To zahtijeva od organizacija stvaranje mobilnih aplikacija koje korisnicima omogućuju brzo i neprimjetno ispunjavanje njihovih zahtjeva.", + "EngageAndRetainYourCustomersWithABPMobileApps_Description2": "S ABP Mobile aplikacijama možete izraditi visokokvalitetne izvorne mobilne aplikacije za Android i iOS… Koristeći jednu bazu koda i bez kompromisa u pogledu sigurnosti, kvalitete ili skalabilnosti.", + "OneCodeBaseMultipleDevices": "Jedna baza koda za više uređaja", + "OneCodeBaseMultipleDevices_Description": "ABP mobilne aplikacije su višeplatformske. Spremni su za instaliranje i rad na iOS i Android uređajima, a prilagođavaju se različitim faktorima forme koristeći jednu bazu koda. Programeri trebaju izraditi UI i front-end kod samo jednom, nema potrebe prilagođavati kod za svaki uređaj koji želite podržati.", + "ComesWithTheSourceCode": "Dolazi s izvornim kodom", + "ComesWithTheSourceCode_Description": "Mobilne aplikacije dobivaju se s izvornim kodom. Jednostavno prilagodite UX/UI svojih aplikacija u skladu sa smjernicama za markiranje.", + "Purchase_OneYearPrice": "Cijena za 1 godinu", + "Purchase_DeveloperSeatCount": "Broj mjesta programera", + "Purchase_DevelopersAlreadyIncluded": "Već je uključeno {0} programera", + "1Year": "1 godina", + "{0}Years": "{0} godina", + "1YearLicense": "1 godina licence", + "{0}YearsLicense": "{0} godina licence", + "1AdditionalDeveloper": "1 dodatni programer", + "{0}AdditionalDevelopers": "{0} Dodatni programeri", + "Discount": "Popust ({0}%)", + "Summary": "Sažetak", + "TrainingPack": "Paket za obuku", + "TrainingPackDiscount": "Popust na paket treninga", + "Purchase_OnboardingTraining_Description": "Ovaj paket obuke uživo vrijedi za razred od 8 učenika i ovaj popust vrijedi samo kada se kupi s novom licencom. Saznajte više", + "Purchase_Save": "{0}% uštede {1} {2}", + "RemoveBasket": "Izvadite iz košarice", + "WhyABPIOPlatform?": "Zašto ABP.IO platforma ?", + "DocumentAim": "Ovaj dokument ima za cilj odgovoriti na veliko pitanje:", + "DocumentAim_Description": ""Zašto biste trebali koristiti ABP.IO platformu umjesto stvaranja novog rješenja od nule?"", + "DocumentAim_Description2": "Dokument predstavlja izazove izgradnje modernog softverskog rješenja i objašnjava kako ABP rješava te izazove.", + "CreatingANewSolution": "Stvaranje novog rješenja", + "CreatingANewSolution_Description": "Kada trebate pokrenuti novo rješenje, morate si postaviti puno pitanja i trebali biste potrošiti puno vremena prije nego počnete pisati svoj prvi poslovni kod.", + "CreatingAnEmptySolution": "Stvaranje praznog rješenja", + "THEPROBLEM": "PROBLEM", + "CreatingAnEmptySolution_THEPROBLEM_Description": "Čak je i stvaranje gotovo praznog rješenja izazovno;", + "CreatingAnEmptySolution_THEPROBLEM_Description2": "Kako organizirate svoju bazu kodova po projektima?", + "CreatingAnEmptySolution_THEPROBLEM_Description3": "Što su slojevi i kako međusobno djeluju?", + "CreatingAnEmptySolution_THEPROBLEM_Description4": "Kako se integrirate u biblioteku i sustave trećih strana?", + "CreatingAnEmptySolution_THEPROBLEM_Description5": "Kako postaviti automatizirane testove?", + "ABPSOLUTION": "ABP RJEŠENJE", + "CreatingAnEmptySolution_ABPSOLUTION_Description": "ABP pruža dobro projektirano, slojevito i za proizvodnju spremno startup rješenje temeljeno na načelima Domain Driven Design . Rješenje također uključuje unaprijed konfiguriranu jedinicu i testne projekte integracije za svaki sloj.", + "CommonLibraries": "Zajedničke knjižnice", + "CommonLibraries_THEPROBLEM_Description": "Koje bi knjižnice trebali koristiti za implementaciju uobičajenih zahtjeva? Ekosustav razvoja softvera vrlo je dinamičan, što ga čini izazovnim držati korak s najnovijim alatima, bibliotekama, trendovima i pristupima.", + "CommonLibraries_ABPSOLUTION_Description": "ABP unaprijed integrira popularne, zrele i ažurirane biblioteke u rješenje. Ne morate trošiti vrijeme na njihovu integraciju ili natjeravanje da međusobno komuniciraju. Rade ispravno iz kutije.", + "UITheme&Layout": "Tema i izgled korisničkog sučelja", + "UITheme&Layout_THEPROBLEM_Description": "Prilikom rješavanja pitanja korisničkog sučelja na površinu dolazi niz izazova. To uključuje uspostavljanje temelja za odgovarajući, suvremeni i prilagodljivi UI kit s dosljednim izgledom i nizom značajki kao što su navigacijski izbornici, zaglavlja, alatne trake, podnožja, widgeti i više.", + "UITheme&Layout_THEPROBLEM_Description2": "Čak i ako se odlučite za unaprijed dizajniranu temu, njezino neprimjetno integriranje u vaš projekt može zahtijevati dane razvoja. Dodatna prepreka leži u nadogradnji takvih tema. Često se HTML/CSS struktura teme isprepliće s kodom korisničkog sučelja, renderirajući buduće promjene teme ili nadogradnje zamršenih zadataka. Ovo ispreplitanje koda i dizajna komplicira fleksibilnost prilagodbi niz liniju.", + "UITheme&Layout_ABPSOLUTION_Description": "ABP Framework nudi karakterističan sustav temiranja koji oslobađa vaš UI kod od ograničenja teme. Teme postoje izolirano, zapakirane kao NuGet ili NPM paketi, što instalaciju ili nadogradnju teme čini pitanjem nekoliko minuta. Dok zadržavate mogućnost razvoja svoje prilagođene teme ili integracije postojeće, ABP Commercial predstavlja kolekciju uglađenih i suvremenih tema.", + "UITheme&Layout_ABPSOLUTION_Description2": "Osim toga, postoje pružatelji komponenti korisničkog sučelja kao što su Telerik i DevExpress. Međutim, ti pružatelji primarno isporučuju pojedinačne komponente, stavljajući na vas odgovornost da uspostavite svoj sustav rasporeda. Kada radite unutar projekata temeljenih na ABP-u, možete neprimjetno uključiti ove biblioteke, slično kao što biste to učinili u bilo kojem drugom projektu.", + "TestInfrastructure": "Testna infrastruktura", + "TestInfrastructure_THEPROBLEM_Description": "Uspostava robusne okoline za testiranje je dugotrajan poduhvat. Uključuje postavljanje namjenskih testnih projekata unutar vašeg rješenja, pažljiv odabir potrebnih alata, kreiranje usluga i lažnih baza podataka, izradu osnovnih osnovnih klasa i uslužnih usluga kako bi se redundantni kod u testovima sveo na najmanju moguću mjeru, te rješavanje raznih povezanih zadataka.", + "TestInfrastructure_ABPSOLUTION_Description": "ABP predlošci za pokretanje dolaze unaprijed opremljeni konfiguriranim test projektima, pojednostavljujući proces za vas. To znači da od prvog dana možete bez odlaganja započeti pisati svoju početnu jedinicu ili integracijski testni kod.", + "CodingStandards&Training": "Standardi kodiranja i obuka", + "CodingStandards&Training_THEPROBLEM_Description": "Nakon što postavite rješenje za razvoj, obično morate podučiti programere kako sustav radi i kako ga izgraditi koristeći iste dogovorene metode. Čak i ako ih obučite, održavanje dokumentacije ažurnom može biti teško. Kako vrijeme prolazi, svaki programer može pisati kod na svoj način, uzrokujući da se pravila za pisanje koda razlikuju jedna od drugih.", + "CodingStandards&Training_ABPSOLUTION_Description": "ABP rješenje već je uredno organizirano i ima jasna objašnjenja. Upute i vodiči korak po korak pokazuju vam kako točno raditi na ABP projektu.", + "KeepingYourSolutionUpToDate": "Održavanje vašeg rješenja ažurnim", + "KeepingYourSolutionUpToDate_THEPROBLEM_Description": "Nakon što započnete svoj razvoj, morate pratiti nove verzije biblioteka koje koristite za nadogradnje i zakrpe.", + "KeepingYourSolutionUpToDate_ABPSOLUTION_Description": "Sve pakete redovito ažuriramo na najnovije verzije i testiramo ih prije stabilnog izdanja. Kada ažurirate ABP Framework, sve njegove ovisnosti nadograđuju se na vrhunsku tehnologiju.", + "DRY": "Ne ponavljaj se!", + "DRY_Description": "Stvaranje osnovnog rješenja oduzima dosta vremena i zahtijeva dobro arhitektonsko iskustvo. Međutim, ovo je tek početak! Kako počnete razvijati, vjerojatno ćete morati napisati puno ponavljajućeg koda; bilo bi sjajno kada bi se sve ovo moglo automatski riješiti.", + "DRY_Description2": "ABP automatizira i pojednostavljuje ponavljanje koda što je više moguće slijedeći načelo konvencije nad konfiguracijom. Međutim, to vas ne ograničava kada trebate prebaciti na ručni stupanj prijenosa. Kontrola je uvijek u vašim rukama.", + "Authentication": "Ovjera", + "Authentication_THEPROBLEM_Description": "Single Sign On, Active Directory / LDAP integracija, OpenIddict integracija, društvene prijave, dvofaktorska autentifikacija, zaboravljena/resetirana lozinka, aktivacija putem e-pošte, registracija novog korisnika, kontrola složenosti lozinke, zaključavanje računa pri neuspjelim pokušajima, prikaz neuspjelih pokušaja prijave... itd. Znamo da su vam svi ovi generički zahtjevi poznati. Nisi sam!", + "Authentication_ABPSOLUTION_Description": "ABP Framework i komercijalna verzija pružaju sve te standardne stvari unaprijed implementirane za vas kao modul računa koji se može ponovno koristiti. Vi samo omogućite i konfigurirate ono što trebate.", + "CrossCuttingConcerns": "Međusektorski problemi", + "CrossCuttingConcerns_THEPROBLEM_Description": "Međusektorski problemi temeljna su ponavljajuća logika koja bi se trebala implementirati za svaki slučaj upotrebe. Neki primjeri;", + "CrossCuttingConcerns_THEPROBLEM_Description2": "Pokretanje transakcija, izvršenje u slučaju uspjeha i vraćanje unatrag u slučaju pogreške.", + "CrossCuttingConcerns_THEPROBLEM_Description3": "Rukovanje i izvješćivanje o iznimkama, vraćanje ispravnog odgovora na pogrešku klijentima i rukovanje slučajevima pogreške na strani klijenta.", + "CrossCuttingConcerns_THEPROBLEM_Description4": "Implementacija autorizacije i provjere valjanosti, vraćanje ispravnih odgovora i rukovanje njima na strani klijenta.", + "CrossCuttingConcerns_ABPSOLUTION_Description": "ABP Framework automatizira ili pojednostavljuje sva uobičajena međusektorska pitanja. Vi pišete samo kod koji je bitan za vaše poslovanje, a ABP rješava ostalo prema konvencijama.", + "ArchitecturalInfrastructure": "Arhitektonska infrastruktura", + "ArchitecturalInfrastructure_THEPROBLEM_Description": "Obično morate izgraditi infrastrukturu kako biste ispravno implementirali svoju arhitekturu. Na primjer, općenito implementirate uzorak Repository. Definirate neke osnovne klase kako biste pojednostavili i standardizirali stvaranje entiteta, usluga, kontrolera i drugih objekata.", + "ArchitecturalInfrastructure_ABPSOLUTION_Description": "ABP Framework pruža sve to i još mnogo više od samog početka. Zrelo je i dobro dokumentirano.", + "EnterpriseApplicationRequirements": "Zahtjevi za poslovne aplikacije", + "EnterpriseApplicationRequirements_THEPROBLEM_Description": "Mnogo je zahtjeva koje stalno implementirate u svaku poslovnu aplikaciju;", + "EnterpriseApplicationRequirements_THEPROBLEM_Description2": "Detaljan sustav dopuštenja i dopuštenja za upravljanje na korisničkom sučelju na temelju uloga i korisnika.", + "EnterpriseApplicationRequirements_THEPROBLEM_Description3": "Pisanje revizijskih dnevnika i povijesti entiteta za praćenje kada korisnik mijenja zapis baze podataka.", + "EnterpriseApplicationRequirements_THEPROBLEM_Description4": "Napravite meko brisanje svojih entiteta, tako da budu označeni kao izbrisani umjesto fizičkog brisanja iz baze podataka i automatskog filtriranja izbrisanih entiteta na vašim upitima.", + "EnterpriseApplicationRequirements_THEPROBLEM_Description5": "Stvaranje apstrakcija i omotača za korištenje vaših pozadinskih API-ja iz koda sučelja.", + "EnterpriseApplicationRequirements_THEPROBLEM_Description6": "Stavljanje u red i izvršavanje pozadinskih poslova.", + "EnterpriseApplicationRequirements_THEPROBLEM_Description7": "Rukovanje više vremenskih zona u globalnom sustavu.", + "EnterpriseApplicationRequirements_THEPROBLEM_Description8": "Dijeljenje logike provjere valjanosti, lokalizacije, autorizacije između poslužitelja i klijenta.", + "EnterpriseApplicationRequirements_ABPSOLUTION_Description": "ABP pruža infrastrukturu za jednostavnu implementaciju takvih zahtjeva. Opet, ne trošite svoje dragocjeno vrijeme na ponovnu implementaciju svega ovoga iznova i iznova.", + "GeneratingInitialCode&Tooling": "Generiranje početnog koda i alata", + "GeneratingInitialCode&Tooling_THEPROBLEM_Description": "Napravit ćete mnogo sličnih stranica u tipičnoj web aplikaciji. Većina njih će izvoditi slične CRUD operacije. Vrlo je zamorno i također sklono pogreškama opetovano stvarati takve stranice.", + "GeneratingInitialCode&Tooling_ABPSOLUTION_Description": "ABP Suite može generirati CRUD stranicu s punim nizom za vaše entitete u nekoliko sekundi. Generirani kod je slojevit i čist. Implementirani su svi standardni zahtjevi za validaciju i autorizaciju. Osim toga, generiraju se klase jediničnih testova. Nakon što dobijete potpuno aktivnu stranicu, možete je modificirati prema svojim poslovnim zahtjevima.", + "IntegratingTo3rdPartyLibrariesAndSystems": "Integracija s bibliotekama i sustavima trećih strana", + "IntegratingTo3rdPartyLibrariesAndSystems_THEPROBLEM_Description": "Većina knjižnica dizajnirana je kao niska razina i obično radite nešto kako biste ih pravilno integrirali bez ponavljanja istog integracijskog i konfiguracijskog koda posvuda u svom rješenju. Na primjer, pretpostavimo da morate koristiti RabbitMQ za implementaciju vaše distribuirane sabirnice događaja. Sve što želite učiniti je; poslati poruku u red čekanja i rukovati dolaznim porukama. Ali morate razumjeti obrasce slanja poruka, redove i detalje razmjene. Da biste napisali učinkovit kod, morate stvoriti skup za upravljanje vezama, klijentima i kanalima. Također se morate nositi s iznimkama, ACK porukama, ponovnim povezivanjem na RabbitMQ u slučaju kvarova i više.", + "IntegratingTo3rdPartyLibrariesAndSystems_ABPSOLUTION_Description": "Na primjer, ABP-ova integracija RabbitMQ Distributed Event Bus apstrahira sve te detalje. Šaljete i primate poruke bez gužve i žurbe. Trebate li pisati kod niske razine? Nema problema, to uvijek možete. ABP vas ne ograničava kada trebate koristiti značajke niske razine biblioteke koju koristite.", + "WhyNotBuildYourOwnFramework?": "Zašto ne biste izgradili vlastiti okvir?", + "WhyNotBuildYourOwnFramework_THEPROBLEM_Description": "Za svu infrastrukturu, čak i na najjednostavniji način, potrebno je puno vremena da se izgradi, održava i dokumentira. S vremenom postaje sve veći i postaje ga teško održavati u vašem rješenju. Razdvajanje istih u projekt koji se može ponovno koristiti početna je točka za izgradnju vlastitog unutarnjeg okvira.", + "WhyNotBuildYourOwnFramework_THEPROBLEM_Description2": "Izgradnja, dokumentiranje, obuka i održavanje unutarnjeg okvira stvarno je teško. Ako nemate iskusan, posvećen okvirni tim, vaš interni okvir brzo postaje nedokumentirani naslijeđeni kod koji više nitko ne može razumjeti i održavati. S druge strane, ove okvire uglavnom razvijaju jedan ili dva programera u timu. A ti ljudi postaju silos znanja. To je dobro za njih, ali loše za tvrtku jer su oni jedina točka neuspjeha projekta -SPOF- . Nakon što napuste tvrtku, projekt dramatično pada.", + "WhyNotBuildYourOwnFramework_ABPSOLUTION_Description": "ABP Framework je dobro dokumentiran, zreo i generički aplikacijski okvir vođen zajednicom. Tim vrlo iskusnih programera naporno radi kako bi bio ažuran, lak za razumijevanje i ugodan za korištenje. Korištenje takvog stabilnog okvira tjera vas da se usredotočite na vlastiti poslovni kod i dobijete pomoć stručnjaka s okvirom kad god vam je potrebna.", + "ArchitecturalInfrastructure_Description": "SaaS aplikacije, modularni ili mikroservisni sustavi najčešće su korišteni modeli poslovnog softvera. Izgradnja takvih sustava ne zahtijeva samo dobro razumijevanje i iskustvo, već zahtijeva i jaku softversku infrastrukturu. Inače ćete morati uložiti mnogo truda da podržite ove arhitektonske detalje u svojoj bazi koda.", + "Modularity": "Modularnost", + "Modularity_THEPROBLEM_Description": "Izgradnja istinski modularnog sustava nije laka! Svi aspekti sustava (baza podataka, entiteti, API-ji, UI stranice/komponente) mogu se podijeliti u module, a svaki se modul može ponovno koristiti bez drugih. Obični ASP.NET Core ne pruža takvu modularnu arhitekturu. Ako vam treba, razmislite o tome od nule.", + "Modularity_ABPSOLUTION_Description": "ABP Framework je rođen da bude modularna struktura za razvoj aplikacija. Svaka značajka u okviru razvijena je da bude kompatibilna s modularnošću. Dokumentacija i vodiči objašnjavaju kako razviti module koji se mogu ponovno koristiti na standardni način.", + "SaaSMultiTenancy": "SaaS / Multi-Tenancy", + "SaaSMultiTenancy_THEPROBLEM_Description": "Multi-Tenancy je uobičajeni način implementacije SaaS sustava. Međutim, implementacija dosljedne infrastrukture s više stanara može postati komplicirana.", + "SaaSMultiTenancy_ABPSOLUTION_Description": "ABP Framework pruža kompletnu infrastrukturu s više korisnika i apstraktnu složenost iz vašeg poslovnog koda. Vaš aplikacijski kod će uglavnom biti svjestan više zakupaca, dok ABP Framework automatski izolira bazu podataka, predmemoriju i druge detalje zakupaca jedne od drugih. Podržava jedinstvenu bazu podataka, bazu podataka po stanarima i hibridne pristupe. Ispravno konfigurira biblioteke kao što su Microsoft Identity i OpenIddict, koje obično nisu kompatibilne s više korisnika.", + "Microservices": "Mikroservisi", + "Microservices_THEPROBLEM_Description": "Izgradnja sustava mikroservisa zahtijeva mnoge infrastrukturne detalje: autentifikacija i autorizacija aplikacija i mikroservisa te implementacija asinkronog slanja poruka i sinkronih (Rest/GRPC) komunikacijskih obrazaca između mikroservisa najosnovnija su pitanja.", + "Microservices_ABPSOLUTION_Description": "ABP Framework pruža usluge, vodiče i uzorke koji će vam pomoći implementirati vaše mikrouslužno rješenje pomoću standardnih alata za industriju.", + "Microservices_ABPSOLUTION_Description2": "ABP Commercial čak ide korak dalje i pruža potpuni predložak za pokretanje za pokretanje vašeg mikroservisnog rješenja.", + "PreBuiltModules": "Unaprijed izgrađeni moduli", + "PreBuiltModules_THEPROBLEM_Description": "Svi mi imamo slične ali pomalo različite poslovne zahtjeve. Međutim, svi bismo trebali ponovno izmisliti kotač jer ničiji kod ne može izravno funkcionirati u našem rješenju. Svi su oni ugrađeni dijelovi većeg rješenja.", + "PreBuiltModules_ABPSOLUTION_Description": "ABP Commercial modules pruža mnoštvo višekratno upotrebljivih aplikacijskih modula kao što su plaćanje, chat, upravljanje datotekama, izvješćivanje dnevnika revizije... itd. Svi ovi moduli lako se instaliraju u vaše rješenje i izravno rade. Stalno dodajemo nove module.", + "PreBuiltModules_ABPSOLUTION_Description2": "Svi moduli dizajnirani su tako da se mogu prilagoditi vašim poslovnim zahtjevima. Ako trebate potpunu kontrolu, možete preuzeti puni izvorni kod bilo kojeg modula i potpuno ga prilagoditi na temelju vaših specifičnih poslovnih zahtjeva.", + "ABPCommunity": "ABP zajednica", + "ABPCommunity_Description": "Naposljetku, biti u velikoj zajednici u kojoj svi slijede slične stilove kodiranja i načela te dijele zajedničku infrastrukturu donosi snagu kada imate problema ili trebate pomoć s odlukama o dizajnu. Budući da kod pišemo na sličan način, možemo puno bolje pomoći jedni drugima. ABP je projekt koji podržava zajednica s više od 10 tisuća zvjezdica na GitHubu.", + "ABPCommunity_Description2": "Lako je dijeliti kod ili čak biblioteke koje se mogu ponovno koristiti između ABP programera. Isječak koda koji radi za vas također će raditi za druge. Postoji mnogo uzoraka i vodiča koje možete izravno implementirati za svoju aplikaciju.", + "ABPCommunity_Description3": "Kada angažirate programera koji je prije radio s ABP arhitekturom, odmah će razumjeti vaše rješenje i započeti razvoj u vrlo kratkom roku.", + "WhyAbpIo_Page_Title": "Zašto ABP.IO platforma?", + "AbpStudio_Page_Title": "ABP studio", + "CampaignInfo": "Kupite novu licencu ili obnovite postojeću i dobijte dodatna 2 mjeseca bez dodatnih troškova! Ova ponuda vrijedi za sve licencne planove. Iskoristite ovu vremenski ograničenu promociju kako biste proširili svoj pristup premium značajkama i nadogradnjama.", + "HurryUpLastDay": "Požuri! Zadnji dan: {0}", + "CreatingCRUDPagesWithABPSuite": "Izrada CRUD stranica s ABP Suiteom", + "Testimonials": "Svjedočanstva", + "MultipleYearDiscount": "Višegodišnji popust", + "CampaignDiscountText": "Crni petak popust", + "CampaignDiscountName": "Crni petak", + "CampaignName:BlackFriday": "Crni petak" + } +} \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/ru.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/ru.json index 43b040dc6c..b62072c326 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/ru.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/ru.json @@ -205,16 +205,16 @@ "WhatHappensWhenLicenseEndsExplanation3": "Вы сможете получать обновления модулей и тем в вашей MINOR-версии (кроме версий RC или Preview). ", "WhatHappensWhenLicenseEndsExplanation4": "Вы не сможете устанавливать новые модули и темы, добавленные на коммерческую платформу ABP, после окончания срока действия вашей лицензии.", "WhatHappensWhenLicenseEndsExplanation5": "Вы не можете использовать ABP Suite.", - "WhatHappensWhenLicenseEndsExplanation6": "Вы не можете получить премиум-поддержка больше.", - "WhatHappensWhenLicenseEndsExplanation7": "Вы можете продлить (продлить) свою лицензию, если хотите продолжать получать эти преимущества. {3 дня после истечения срока действия вашей лицензии будут применены следующие скидки: Командная лицензия {0}; ", - "discountForYears": "Скидка {0} % на {1} лет.", - "WhatHappensWhenLicenseEndsExplanation8": "Созданные вами проекты ABP не хранятся на наших серверах. ", + "WhatHappensWhenLicenseEndsExplanation6": "Вы больше не сможете получать премиум-поддержку.", + "WhatHappensWhenLicenseEndsExplanation7": "Вы можете продлить (продлить) свою лицензию, если хотите продолжать получать эти преимущества. Если вы продлите свою лицензию в течение {3} дней после истечения срока действия лицензии, будут применены следующие скидки. : командная лицензия {0}; бизнес-лицензия {1}; корпоративная лицензия {2}.", + "discountForYears": "Скидка {0}% на {1} лет", + "WhatHappensWhenLicenseEndsExplanation8": "Созданные вами проекты ABP не хранятся на наших серверах. Поэтому вы несете ответственность за сохранение загружаемого вами исходного кода. Когда срок действия вашей лицензии истечет, вы не сможете получить исходный код созданного вами проекта ABP.", "WhenShouldIRenewMyLicense": "Когда мне следует продлить лицензию?", - "WhenShouldIRenewMyLicenseExplanation": "Если вы продлите лицензию в течение {3 дня после истечения срока действия вашей лицензии будут применены следующие скидки: Командная лицензия {0}; {3 дня после истечения срока действия вашей лицензии цена продления будет такой же, как цена покупки лицензии, и скидка на продление не будет действовать.", + "WhenShouldIRenewMyLicenseExplanation": "Если вы продлите свою лицензию в течение {3} дней после истечения срока ее действия, будут применены следующие скидки: командная лицензия {0}; бизнес-лицензия {1}; корпоративная лицензия {2 }. Однако если вы продлите лицензию по истечении {3} дней с даты истечения срока действия вашей лицензии, цена продления будет такой же, как цена покупки лицензии, и скидка на вашу лицензию не будет действовать. обновление.", "TrialPlan": "У вас есть пробный план?", - "TrialPlanExplanation": "Да, чтобы начать бесплатную пробную версию, свяжитесь маркетинг@volosoft.com. ", - "DoYouAcceptBankWireTransfer": "Вы принимаете банковские переводы?", - "DoYouAcceptBankWireTransferExplanation": "Да, мы принимаем банковские переводы.
После отправки лицензионного сбора банковским переводом отправьте квитанцию ​​и запрошенный тип лицензии на адрес account@volosoft.com.
Информация о нашем международном банковском счете:", + "TrialPlanExplanation": "Да, чтобы начать бесплатную пробную версию, свяжитесь с marketing@volosoft.com. Мы также предлагаем 30-дневную гарантию возврата денег за лицензию Team, без вопросов! Вы можете запросить полный возврат средств в течение первых 30 дней с момента покупки лицензии. Мы обеспечиваем возврат 60 % в течение 30 дней для лицензий Business и Enterprise. Это связано с тем, что лицензии Business и Enterprise содержат полный исходный код всех модулей и тем.", + "DoYouAcceptBankWireTransfer": "Принимаете ли вы банковские переводы?", + "DoYouAcceptBankWireTransferExplanation": "Да, мы принимаем банковские переводы.
После отправки лицензионного сбора банковским переводом отправьте квитанцию и запрошенный тип лицензии на адрес account@volosoft.com.
Информация о нашем международном банковском счете: ", "HowToUpgrade": "Как обновить существующие приложения, когда доступна новая версия?", "HowToUpgradeExplanation1": "Когда вы создаете новое приложение с помощью ABP Commercial, все модули и темы используются как пакеты NuGet и NPM. ", "HowToUpgradeExplanation2": "В дополнение к стандартным обновлениям NuGet/NPM, Интерфейс командной строки ABP предоставляет команду обновления, которая автоматически находит и обновляет все пакеты, связанные с ABP, в вашем решении.", @@ -899,8 +899,6 @@ "HavingTrouble": "Возникли проблемы?", "HavingTrouble_Description1": "Есть ли у вас проблемы с разработкой решения? ", "WeAreHereToHelp_Description1": "Вы можете просмотреть наши разделы справки или выполнить поиск по часто задаваемым вопросам,\n ", - "OtherModules": "Другие модули", - "OtherModules_Description1": "Учетная запись, ведение журнала аудита, чат, комплект CMS, управление файлами, формы, GDPR, идентификационные данные, управление языком, оплата, Saas и многое другое...", "HowItWorks_DatabaseProviderOptions": "Параметры поставщика базы данных", "SeeFAQ": "См. часто задаваемые вопросы", "ReleaseLogs": "Журналы релизов", diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/ar.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/ar.json index 84c3b34110..5cb4529fac 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/ar.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/ar.json @@ -13,7 +13,6 @@ "Status": "الحالة", "ContentSource": "مصدر المحتوى", "Details": "التفاصيل", - "Url": "عنوان الموقع", "Title": "العنوان", "CreationTime": "وقت الإنشاء", "Save": "حفظ", @@ -29,23 +28,22 @@ "ContributionGuide": "دليل المساهمة", "BugReport": "الإبلاغ عن خطأ", "SeeAllPosts": "انظر جميع المقالات", - "WelcomeToABPCommunity!": "مرحبًا بك في منتدى ABP!", - "MyProfile": "ملفى", - "MyOrganizations": "منظماتي", + "WelcomeToABP": "أهلا بكم في ABP", "EmailNotValid": "من فضلك أدخل بريد أليكترونى صحيح.", "FeatureRequest": "طلب خاصية جديدة", "CreatePostTitleInfo": "عنوان المقال الذي سيظهر في قائمة المقالات.", "CreatePostSummaryInfo": "ملخص قصير للمقال ليتم عرضه في قائمة المقالات.", - "CreatePostCoverInfo": "لإنشاء مقال فعال ، أضف صورة غلاف. لن يتم قبول سوى صور بنسبة عرض إلى ارتفاع تبلغ 9:16!", + "CreatePostCoverInfo": "لإنشاء منشور فعال ، أضف صورة غلاف. قم بتحميل صور بنسبة عرض إلى ارتفاع تبلغ 16: 9 للحصول على أفضل عرض. الحد الأقصى لحجم الملف: 1 ميغا بايت.", "ThisExtensionIsNotAllowed": "امتداد الملف غير مسموح.", "TheFileIsTooLarge": "مسار الملف طويل جداً", "GoToThePost": "الذهاب للمقال", + "GoToTheVideo": "انتقل إلى الفيديو", "Contribute": "ساهم", "OverallProgress": "التقدم الكلى", "Done": "تم", "Open": "افتح", "Closed": "أُغلق", - "LatestQuestionOnThe": "آخر سؤال فى", + "RecentQuestionFrom": "سؤال حديث من {0}", "Stackoverflow": "Stackoverflow", "Votes": "تصويتات", "Answer": "إجابة", @@ -59,7 +57,7 @@ "QuestionItemErrorMessage": "تعذر الحصول على أحدث تفاصيل السؤال من Stackoverflow.", "Oops": "عفواً!", "CreatePostSuccessMessage": "تم تقديم المقال بنجاح. سيتم نشره بعد مراجعة من إدارة الموقع.", - "ChooseCoverImage": "اختر صورة الغلاف...", + "Browse": "تصفح", "CoverImage": "صورة الغلاف", "ShareYourExperiencesWithTheABPFramework": "شارك خبراتك مع إطار عمل برنامج ABP!", "Optional": "اختيارى", @@ -88,6 +86,8 @@ "PostRequestFromGithubIssue": "لا توجد أي طلبات مقالات الآن.", "LatestPosts": "آخر المشاركات", "ArticleRequests": "طلبات المادة", + "ArticleRequestsDescription": "هل تريد رؤية محتوى محدد هنا؟ يمكنك أن تطلب من المجتمع إنشائه!", + "LatestContentRequests": "أحدث طلبات المحتوى", "AllPostRequests": "انظر جميع طلبات المادة", "SubscribeToTheNewsletter": "اشترك في النشرة الإخبارية", "NewsletterEmailDefinition": "احصل على معلومات حول الأحداث في ABP مثل الإصدارات الجديدة والمصادر المجانية والمقالات والمزيد.", @@ -115,7 +115,6 @@ "VideoUrl": "رابط الفيديو", "GithubPostUrl": "عنوان Url لمقال Github", "ExternalPostUrl": "عنوان URL للمادة الخارجية", - "CreatePostCoverInfo": "لإنشاء منشور فعال ، أضف صورة غلاف. قم بتحميل صور بنسبة عرض إلى ارتفاع تبلغ 16: 9 للحصول على أفضل عرض. الحد الأقصى لحجم الملف: 1 ميغا بايت.", "ThankYouForContribution": "شكرًا لك على المساهمة في منتدى ABP.", "GithubPost": "المادة جيثب", "GithubPostSubmitStepOne": " 1. اكتب مقالة في أي مستودع GitHub عام بتنسيق Markdown. مثال ", @@ -186,8 +185,76 @@ "Layout_MetaDescription": "منتدى ABP هو عبارة عن بيئة حيث يمكن للأشخاص مشاركة منشورات حول إطار عمل برنامج ABP ومتابعة المشاريع.", "Index_Page_CommunityIntroduction": "إن هذا محور لإطار عمل ABP و.NET وتطوير البرامج. يمكنك قراءة المقالات ومشاهدة مقاطع الفيديو التعليمية والحصول على معلومات حول تقدم تطوير ABP والأحداث المتعلقة بـ ABP ومساعدة المطورين الآخرين ومشاركة خبرتك مع منتدى ABP.", "TagsInArticle": "العلامات في المقال", - "WelcomeToABP": "أهلا بكم في ABP", "IConsentToMedium": ".https://medium.com/volosoft أوافق على نشر هذا المنشور على", - "DiscordPageTitle": "مجتمع ABP Discord" + "SearchResultsFor": "نتائج البحث عن "{0}"", + "SeeMoreVideos": "شاهد المزيد من الفيديوهات", + "DiscordPageTitle": "مجتمع ABP Discord", + "ViewVideo": "عرض الفيديو", + "AbpCommunityTitleContent": "مجتمع ABP - إطار عمل ABP مفتوح المصدر", + "CommunitySlogan": "منصة مجتمعية فريدة لعشاق ABP", + "RaffleIsNotActive": "السحب غير نشط", + "YouAreAlreadyJoinedToThisRaffle": "لقد انضممت بالفعل إلى هذا السحب", + "InvalidSubscriptionCode": "رمز الاشتراك غير صالح", + "Raffle:{0}": "السحب: {0}", + "Join": "ينضم", + "Leave": "يترك", + "LoginToJoin": "تسجيل الدخول للانضمام", + "ToEnd:": "إلى النهاية:", + "ToStart:": "للبدأ:", + "days": "أيام", + "hrs": "ساعة", + "min": "دقيقة", + "sec": "ثانية", + "Winners": "الفائزون", + "To{0}LuckyWinners": "إلى {0} فائزًا محظوظًا", + "ActiveRaffles": "رافلز النشطة", + "UpcomingRaffles": "رافلز القادمة", + "CompletedRaffles": "رافلز مكتمل", + "NoActiveRaffleTitle": "لا يوجد سحب نشط متاح في الوقت الراهن.", + "NoActiveRaffleDescription": "لا يوجد سحب نشط متاح في الوقت الراهن.", + "RaffleSubscriptionCodeInputMessage": "يتطلب هذا السحب رمز التسجيل. الرجاء إدخال رمز التسجيل أدناه:", + "RaffleSubscriptionCodeInputErrorMessage": "رمز التسجيل غير صحيح. حاول مرة اخرى.", + "GoodJob!": "أحسنت!", + "RaffleJoinSuccessMessage": "لقد تم تسجيلك بنجاح في السحب. سيتم إعلامك عبر البريد الإلكتروني إذا فزت بالجائزة!", + "RaffleLoginAndRegisterMessage": "يجب عليك تسجيل الدخول للانضمام إلى السحب. يمكنك إنشاء حساب مجانًا إذا لم تكن قد قمت بالتسجيل بعد.", + "Ok": "نعم", + "SeeDetails": "انظر التفاصيل", + "WaitingForTheDraw": "في انتظار القرعة", + "AllAttendees": "جميع الحضور", + "SeeRaffleDetail": "انظر تفاصيل السحب", + "SeeRaffle": "انظر السحب", + "ParticipationIsComplete!": "المشاركة كاملة!", + "ABPCoreDevelopmentTeam": "فريق التطوير الأساسي لبرنامج ABP", + "RegisterTheEvent": "سجل الحدث", + "GoToConferencePage": "انتقل إلى صفحة المؤتمر", + "BuyTicket": "اشتري تذكرة", + "SeeEvent": "انظر الحدث", + "PreviousEvents": "الأحداث السابقة", + "OtherLiveEvents": "الأحداث المباشرة الأخرى", + "SponsoredConferences": "المؤتمرات المدعومة", + "SponsoredConferencesDescription": "يشرفنا دعم مجتمعات وأحداث .NET لمطوري البرامج.", + "UpcomingEvents": "الأحداث القادمة", + "UpcomingCommunityTalkEventDescription": "العروض الحية، التي يستضيفها فريق برنامج الجسر الأكاديمي، عبارة عن جلسات غير رسمية مليئة بمحتوى المجتمع والعروض التوضيحية والأسئلة والأجوبة والمناقشات حول ما يحدث في برنامج الجسر الأكاديمي.", + "UpcomingConferenceEventDescription": "يعد مؤتمر ABP .NET حدثًا افتراضيًا لمجتمع مطوري .NET للالتقاء والاستماع إلى المحادثات حول عالم .NET وممارسات تطوير البرامج الشائعة وإطار عمل ABP مفتوح المصدر.", + "LastOneYear": "آخر سنة واحدة", + "AllTimes": "كل الأوقات", + "TopContributors": "من أبرز المساهمين", + "{0}Posts": "{0} المشاركات", + "LATESTPOSTS": "آخر المشاركات", + "NoContributorsFound": "لم يتم العثور على المساهمين!", + "LatestPost": "آخر مشاركة", + "MEMBERSINCE{0}": "عضو منذ {0}", + "CopyLink": "نسخ الوصلة", + "ShareOnTwitter": "حصة على التغريد", + "ShareOnLinkedIn": "شارك على لينكدإن", + "MoreFrom{0}": "المزيد من {0}", + "SeeAllFrom{0}": "شاهد الكل من {0}", + "MostWatched": "الأكثر مشاهدة", + "Articles({0})": "المقالات ({0})", + "Videos({0})": "مقاطع الفيديو ({0})", + "LatestArticles": "أحدث المقالات", + "RaffleHeader": "مرحبًا عضو مجتمع برنامج الجسر الأكاديمي!", + "RafflesInfo": "
هذه هي صفحة السحب المخصصة لإظهار تقديرنا لك لكونك عضوًا نشطًا في المجتمع. نحن نقوم بإجراء محادثات مجتمعية لبرنامج ABP ، ومؤتمر ABP .NET ، ونحضر أو نرعى الأحداث المتعلقة بـ .NET والتي نقدم فيها بعض الهدايا.

يمكنك متابعة هذه الصفحة لرؤية السحوبات القادمة أو حضورها أو الاطلاع على السحوبات السابقة التي قمنا بسحبها بما في ذلك الفائزين.

شكرا لكونك عضوا نشطا! نراكم في السحوبات القادمة.", + "RafflesInfoTitle": "سحوبات مجتمع ABP" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/cs.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/cs.json index 8364b1b4d4..146808545a 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/cs.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/cs.json @@ -13,7 +13,6 @@ "Status": "Postavení", "ContentSource": "Zdroj obsahu", "Details": "Podrobnosti", - "Url": "URL", "Title": "Titul", "CreationTime": "Čas vytvoření", "Save": "Uložit", @@ -29,23 +28,22 @@ "ContributionGuide": "Příspěvek průvodce", "BugReport": "Zpráva o chybě", "SeeAllPosts": "Zobrazit všechny příspěvky", - "WelcomeToABPCommunity!": "Vítejte v komunitě ABP!", - "MyProfile": "Můj profil", - "MyOrganizations": "Moje organizace", + "WelcomeToABP": "Vítejte v ABP", "EmailNotValid": "Prosím zadejte platnou emailovou adresu.", "FeatureRequest": "Budoucí žádost", "CreatePostTitleInfo": "Název příspěvku, který se zobrazí v seznamu příspěvků.", "CreatePostSummaryInfo": "Krátké shrnutí příspěvku, který se zobrazí v seznamu příspěvků.", - "CreatePostCoverInfo": "Pro vytvoření efektního článku přidejte titulní fotku. Pro nejlepší zobrazení nahrajte obrázky s poměrem stran 16:9. Maximální velikost souboru: 1 MB.", + "CreatePostCoverInfo": "Pro vytvoření efektního příspěvku přidejte titulní fotku. Pro nejlepší zobrazení nahrajte obrázky s poměrem stran 16:9. Maximální velikost souboru: 1 MB.", "ThisExtensionIsNotAllowed": "Toto rozšíření není povoleno.", "TheFileIsTooLarge": "Soubor je příliš velký.", "GoToThePost": "Přejděte na článek", + "GoToTheVideo": "Přejděte na Video", "Contribute": "Přispět", "OverallProgress": "Celkový postup", "Done": "Hotovo", "Open": "Otevřeno", "Closed": "Zavřeno", - "LatestQuestionOnThe": "Nejnovější otázka na The", + "RecentQuestionFrom": "Nedávná otázka od uživatele {0}", "Stackoverflow": "Přetečení zásobníku", "Votes": "hlasů", "Answer": "Odpovědět", @@ -59,7 +57,7 @@ "QuestionItemErrorMessage": "Nepodařilo se získat nejnovější podrobnosti otázky ze Stackoverflow.", "Oops": "Jejda!", "CreatePostSuccessMessage": "Článek byl úspěšně odeslán. Bude zveřejněn po kontrole od správce webu.", - "ChooseCoverImage": "Vyberte titulní obrázek...", + "Browse": "Procházet", "CoverImage": "Titulní obrázek", "ShareYourExperiencesWithTheABPFramework": "Podělte se o své zkušenosti s ABP Framework!", "Optional": "Volitelný", @@ -88,6 +86,8 @@ "PostRequestFromGithubIssue": "Nyní nejsou žádné požadavky na články.", "LatestPosts": "Nejnovější příspěvky", "ArticleRequests": "Žádosti o článek", + "ArticleRequestsDescription": "Chcete zde vidět konkrétní obsah? Můžete požádat komunitu, aby ji vytvořila!", + "LatestContentRequests": "Nejnovější požadavky na obsah", "AllPostRequests": "Viz Všechny požadavky na článek", "SubscribeToTheNewsletter": "Přihlaste se k odběru Newsletteru", "NewsletterEmailDefinition": "Získejte informace o dění v ABP, jako jsou nové verze, bezplatné zdroje, články a další.", @@ -115,7 +115,6 @@ "VideoUrl": "Adresa URL videa", "GithubPostUrl": "Adresa URL článku Github", "ExternalPostUrl": "Adresa URL externího článku", - "CreatePostCoverInfo": "Pro vytvoření efektního příspěvku přidejte titulní fotku. Pro nejlepší zobrazení nahrajte obrázky s poměrem stran 16:9. Maximální velikost souboru: 1 MB.", "ThankYouForContribution": "Děkujeme vám za příspěvek do komunity ABP.", "GithubPost": "Článek Github", "GithubPostSubmitStepOne": "1. Napište článek na libovolném veřejném úložišti GitHub ve formátu Markdown. příklad ", @@ -143,6 +142,119 @@ "Volo.AbpIo.Domain:060001": "Zdrojová adresa URL („{PostUrl}“) není adresa URL Github", "Volo.AbpIo.Domain:060002": "Obsah článku není dostupný ze zdroje Github(\"{PostUrl}\").", "Volo.AbpIo.Domain:060003": "Nebyl nalezen žádný obsah článku!", - "IConsentToMedium": "Souhlasím se zveřejněním tohoto příspěvku na https://medium.com/volosoft." + "SeeMore": "Vidět víc", + "JoinTheABPCommunity": "Připojte se ke komunitě ABP", + "ABPCommunityTalks": "Komunitní rozhovory ABP", + "LiveDemo": "Živá ukázka", + "GetLicense": "Získejte licenci", + "GetStarted": "Začít", + "SourceCode": "Zdrojový kód", + "LeaveComment": "Zanechat komentář", + "ShowMore": "Zobrazit více", + "NoPublishedPostsYet": "Zatím žádné publikované příspěvky.", + "Name": "název", + "Surname": "Příjmení", + "WebSite": "Webová stránka", + "FullURL": "Úplná adresa URL", + "JobTitle": "Pracovní pozice", + "Prev": "Předchozí", + "Previous": "Předchozí", + "Next": "další", + "Share": "Podíl", + "SortBy": "Seřazeno podle", + "NoPublishedEventsYet": "Zatím žádné zveřejněné události.", + "SubscribeYoutubeChannel": "Přihlaste se k odběru kanálu Youtube", + "Enum:EventType:0": "Rozhovory", + "MemberNotPublishedPostYet": "Tento člen ještě nepublikoval žádné příspěvky.", + "TimeAgo": "před {0}", + "Discord_Page_JoinCommunityMessage": "Připojte se ke komunitě ABP Discord", + "Discord_Page_Announce": "Jsme rádi, že můžeme oznámit ABP Community Discord Server!", + "Discord_Page_Description_1": "Komunita ABP od prvního dne roste. Chtěli jsme to posunout k dalšímu kroku vytvořením oficiálního serveru ABP Discord, aby komunita ABP mohla vzájemně komunikovat pomocí zázraků instant messagingu.", + "Discord_Page_Description_2": "ABP Community Discord Server je místo, kde můžete předvést své výtvory pomocí ABP Framework, sdílet tipy, které se vám osvědčily, sledovat nejnovější zprávy a oznámení o ABP Framework, jen chatovat s členy komunity, vyměňovat si nápady a bavit se!", + "Discord_Page_Description_3": "Tento ABP Community Discord Server je oficiální server s hlavním týmem ABP, který je přítomen na serveru ke sledování.", + "Discord_Page_JoinToServer": "Připojte se k ABP Discord Server", + "Events_Page_MetaTitle": "Komunitní akce ABP", + "Events_Page_MetaDescription": "Živá vystoupení, pořádaná týmem ABP, jsou neformální sezení plné komunitního obsahu, ukázek, otázek a odpovědí a diskusí o tom, co se děje v ABP.", + "Events_Page_Title": "Komunitní rozhovory ABP", + "Members_Page_WritingFromUser": "Přečtěte si psaní od {0} na komunitě ABP.", + "Post_Create_Page_MetaTitle": "Nový příspěvek", + "Post_Create_Page_MetaDescription": "Vytvořte svůj příspěvek pro sdílení vašich zkušeností s rámcem ABP a přispěním komunity ABP.", + "Post_Create_Page_CreateNewPost": "Vytvořit nový příspěvek", + "Post_Index_Page_MetaDescription": "Účelem komunity ABP je vytvořit prostředí pro příspěvky pro vývojáře, kteří používají rámec ABP.", + "Layout_Title": "{0} | Společenství ABP", + "Layout_MetaDescription": "Centrum pro ABP Framework, .NET a vývoj softwaru. Získejte přístup k článkům, návodům, zprávám a přispívejte do komunity ABP.", + "Index_Page_CommunityIntroduction": "Toto je centrum pro ABP Framework, .NET a vývoj softwaru. Můžete číst články, sledovat video tutoriály, získat informace o vývoji ABP a událostech souvisejících s ABP, pomáhat ostatním vývojářům a sdílet své odborné znalosti s komunitou ABP.", + "TagsInArticle": "Tagy v článku", + "IConsentToMedium": "Souhlasím se zveřejněním tohoto příspěvku na https://medium.com/volosoft.", + "SearchResultsFor": "Výsledky vyhledávání pro „{0}“", + "SeeMoreVideos": "Zobrazit další videa", + "DiscordPageTitle": "ABP Discord Community", + "ViewVideo": "Zobrazit video", + "AbpCommunityTitleContent": "Komunita ABP – Open Source ABP Framework", + "CommunitySlogan": "Jedinečná komunitní platforma pro milovníky ABP", + "RaffleIsNotActive": "Tombola není aktivní", + "YouAreAlreadyJoinedToThisRaffle": "Již jste zapojeni do této tomboly", + "InvalidSubscriptionCode": "Neplatný kód předplatného", + "Raffle:{0}": "Tombola: {0}", + "Join": "Připojit", + "Leave": "Odejít", + "LoginToJoin": "Chcete-li se připojit, přihlaste se", + "ToEnd:": "Do konce:", + "ToStart:": "Začít:", + "days": "dní", + "hrs": "hod", + "min": "min", + "sec": "sek", + "Winners": "Vítězové", + "To{0}LuckyWinners": "pro {0} šťastných výherců", + "ActiveRaffles": "Aktivní tomboly", + "UpcomingRaffles": "Nadcházející tomboly", + "CompletedRaffles": "Dokončené tomboly", + "NoActiveRaffleTitle": "Momentálně není k dispozici žádná aktivní tombola.", + "NoActiveRaffleDescription": "Momentálně není k dispozici žádná aktivní tombola.", + "RaffleSubscriptionCodeInputMessage": "Tato tombola vyžaduje registrační kód. Zadejte prosím registrační kód níže:", + "RaffleSubscriptionCodeInputErrorMessage": "Registrační kód je nesprávný. Prosím zkuste to znovu.", + "GoodJob!": "Dobrá práce!", + "RaffleJoinSuccessMessage": "Jste úspěšně zaregistrováni do slosování. V případě výhry budete informováni e-mailem!", + "RaffleLoginAndRegisterMessage": "Pro zapojení do slosování se musíte přihlásit. Účet si můžete vytvořit zdarma, pokud jste se ještě nezaregistrovali.", + "Ok": "OK", + "SeeDetails": "Prohlednout detaily", + "WaitingForTheDraw": "Čekání na losování", + "AllAttendees": "Všichni účastníci", + "SeeRaffleDetail": "Viz Detail tomboly", + "SeeRaffle": "Viz Tombola", + "ParticipationIsComplete!": "Účast je dokončena!", + "ABPCoreDevelopmentTeam": "Základní vývojový tým ABP", + "RegisterTheEvent": "Zaregistrujte událost", + "GoToConferencePage": "Přejděte na stránku konference", + "BuyTicket": "Koupit lístek", + "SeeEvent": "Viz Událost", + "PreviousEvents": "Předchozí události", + "OtherLiveEvents": "Další živé akce", + "SponsoredConferences": "Sponzorované konference", + "SponsoredConferencesDescription": "Je nám ctí podporovat komunity .NET a akce pro vývojáře softwaru.", + "UpcomingEvents": "Připravované akce", + "UpcomingCommunityTalkEventDescription": "Živá vystoupení, pořádaná týmem ABP, jsou neformální sezení plné komunitního obsahu, ukázek, otázek a odpovědí a diskusí o tom, co se děje v ABP.", + "UpcomingConferenceEventDescription": "Konference ABP .NET je virtuální událostí pro komunitu vývojářů .NET, kde se sejdou a vyslechnou si přednášky o světě .NET, běžných postupech vývoje softwaru a open source ABP Framework.", + "LastOneYear": "Poslední 1 rok", + "AllTimes": "Pořád", + "TopContributors": "Hlavní přispěvatelé", + "{0}Posts": "Příspěvky: {0}", + "LATESTPOSTS": "NEJNOVĚJŠÍ PŘÍSPĚVKY", + "NoContributorsFound": "Nebyli nalezeni žádní přispěvatelé!", + "LatestPost": "Poslední příspěvěk", + "MEMBERSINCE{0}": "ČLENEM OD {0}", + "CopyLink": "Kopírovat odkaz", + "ShareOnTwitter": "Sdílejte na Twitteru", + "ShareOnLinkedIn": "Sdílet na LinkedIn", + "MoreFrom{0}": "Více od uživatele {0}", + "SeeAllFrom{0}": "Zobrazit vše od {0}", + "MostWatched": "Nejsledovanější", + "Articles({0})": "Články ({0})", + "Videos({0})": "Videa ({0})", + "LatestArticles": "poslední články", + "RaffleHeader": "Dobrý den, člen komunity ABP!", + "RafflesInfo": "
Toto je stránka s losováním věnovaná tomu, abychom vám ukázali naše uznání za to, že jste aktivním členem komunity. Pořádáme ABP Community Talks , ABP .NET Conference , účastníme se nebo sponzorujeme akce související s .NET, ve kterých rozdáváme nějaké dárky.

Na této stránce můžete sledovat nadcházející tomboly, zúčastnit se jich nebo si prohlédnout předchozí tomboly, které losujeme, včetně výherců.

Děkujeme, že jste aktivním členem! Uvidíme se v nadcházejícím slosování.", + "RafflesInfoTitle": "Komunitní tomboly ABP" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/de.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/de.json index 6ff6eb1e89..3a9dab08a6 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/de.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/de.json @@ -13,7 +13,6 @@ "Status": "Status", "ContentSource": "Inhaltsquelle", "Details": "Details", - "Url": "URL", "Title": "Titel", "CreationTime": "Erstellungszeitpunkt", "Save": "Speichern", @@ -29,22 +28,22 @@ "ContributionGuide": "Leitfaden für Mitwirkende", "BugReport": "Fehler melden", "SeeAllPosts": "Alle Beiträge anzeigen", - "WelcomeToABPCommunity!": "Willkommen in der ABP Community!", - "MyProfile": "Mein Profil", - "MyOrganizations": "Meine Organisationen", + "WelcomeToABP": "Willkommen bei der ABP", "EmailNotValid": "Bitte geben Sie eine gültige E-Mail-Adresse ein.", "FeatureRequest": "Featureanfrage", "CreatePostTitleInfo": "Titel des Beitrags, der in der Beitragsliste angezeigt werden soll.", "CreatePostSummaryInfo": "Eine kurze Zusammenfassung des Beitrags, der in der Beitragsliste angezeigt werden soll.", + "CreatePostCoverInfo": "Um einen effektiven Beitrag zu erstellen, fügen Sie ein Titelbild hinzu. Laden Sie Bilder mit einem Seitenverhältnis von 16:9 hoch, um die beste Ansicht zu erhalten. Maximale Dateigröße: 1 MB.", "ThisExtensionIsNotAllowed": "Diese Erweiterung ist nicht zulässig.", "TheFileIsTooLarge": "Die Datei ist zu groß.", "GoToThePost": "Gehe zum Beitrag", + "GoToTheVideo": "Gehen Sie zum Video", "Contribute": "Beitragen", "OverallProgress": "Gesamtfortschritt", "Done": "Fertig", "Open": "Offen", "Closed": "Geschlossen", - "LatestQuestionOnThe": "Letzte Frage zum", + "RecentQuestionFrom": "Aktuelle Frage von {0}", "Stackoverflow": "Stackoverflow", "Votes": "Stimmen", "Answer": "Antwort", @@ -58,7 +57,7 @@ "QuestionItemErrorMessage": "Die neuesten Fragendetails konnten von Stackoverflow nicht abgerufen werden.", "Oops": "Hoppla!", "CreatePostSuccessMessage": "Der Beitrag wurde erfolgreich eingereicht. Er wird nach einer Überprüfung durch den Site-Administrator veröffentlicht.", - "ChooseCoverImage": "Ein Titelbild auswählen...", + "Browse": "Durchsuche", "CoverImage": "Titelbild", "ShareYourExperiencesWithTheABPFramework": "Ihre Erfahrungen mit dem ABP Framework teilen!", "Optional": "Optional", @@ -87,6 +86,8 @@ "PostRequestFromGithubIssue": "Es liegen noch keine Artikelanfragen vor.", "LatestPosts": "Neueste Beiträge", "ArticleRequests": "Artikelanfragen", + "ArticleRequestsDescription": "Möchten Sie hier einen bestimmten Inhalt sehen? Sie können die Community bitten, es zu erstellen!", + "LatestContentRequests": "Neueste Inhaltsanfragen", "AllPostRequests": "Alle Artikelanfragen anzeigen", "SubscribeToTheNewsletter": "Abonnieren Sie den Newsletter", "NewsletterEmailDefinition": "Erhalten Sie Informationen über Ereignisse in ABP wie Neuerscheinungen, kostenlose Quellen, Artikel und mehr.", @@ -114,7 +115,6 @@ "VideoUrl": "Video-URL", "GithubPostUrl": "Github-Artikel-URL", "ExternalPostUrl": "Externe Artikel-URL", - "CreatePostCoverInfo": "Um einen effektiven Beitrag zu erstellen, fügen Sie ein Titelbild hinzu. Laden Sie Bilder mit einem Seitenverhältnis von 16:9 hoch, um die beste Ansicht zu erhalten. Maximale Dateigröße: 1 MB.", "ThankYouForContribution": "Vielen Dank für Ihren Beitrag zur ABP-Community.", "GithubPost": "Github-Artikel", "GithubPostSubmitStepOne": "1. Schreiben Sie einen Artikel in einem öffentlichen GitHub-Repository im Markdown-Format. Beispiel ", @@ -143,6 +143,118 @@ "Volo.AbpIo.Domain:060002": "Artikelinhalt ist über die Github(\"{PostUrl}\")-Ressource nicht verfügbar.", "Volo.AbpIo.Domain:060003": "Kein Artikelinhalt gefunden!", "SeeMore": "Mehr Sehen", - "IConsentToMedium": "Ich stimme der Veröffentlichung dieses Beitrags auf https://medium.com/volosoft zu." + "JoinTheABPCommunity": "Treten Sie der ABP-Community bei", + "ABPCommunityTalks": "ABP-Community-Gespräche", + "LiveDemo": "Live-Demo", + "GetLicense": "Holen Sie sich eine Lizenz", + "GetStarted": "Loslegen", + "SourceCode": "Quellcode", + "LeaveComment": "Einen Kommentar hinterlassen", + "ShowMore": "Zeig mehr", + "NoPublishedPostsYet": "Noch keine veröffentlichten Beiträge.", + "Name": "Name", + "Surname": "Nachname", + "WebSite": "Webseite", + "FullURL": "Vollständige URL", + "JobTitle": "Berufsbezeichnung", + "Prev": "Vorher", + "Previous": "Vorherige", + "Next": "Nächste", + "Share": "Aktie", + "SortBy": "Sortiere nach", + "NoPublishedEventsYet": "Noch keine veröffentlichten Veranstaltungen.", + "SubscribeYoutubeChannel": "Abonnieren Sie den Youtube-Kanal", + "Enum:EventType:0": "Gespräche", + "MemberNotPublishedPostYet": "Dieses Mitglied hat noch keine Beiträge veröffentlicht.", + "TimeAgo": "Vor {0}", + "Discord_Page_JoinCommunityMessage": "Treten Sie der ABP Discord Community bei", + "Discord_Page_Announce": "Wir freuen uns, den ABP Community Discord Server bekannt zu geben!", + "Discord_Page_Description_1": "Die ABP-Community ist seit dem ersten Tag gewachsen. Wir wollten den nächsten Schritt gehen und einen offiziellen ABP Discord-Server erstellen, damit die ABP-Community über die Wunder des Instant Messaging miteinander interagieren kann.", + "Discord_Page_Description_2": "Der ABP Community Discord Server ist der Ort, an dem Sie Ihre Kreationen mit dem ABP Framework präsentieren, die Tipps teilen können, die für Sie funktioniert haben, sich über die neuesten Nachrichten und Ankündigungen zum ABP Framework informieren, einfach mit Community-Mitgliedern chatten, Ideen austauschen und Spaß haben können!", + "Discord_Page_Description_3": "Dieser ABP Community Discord Server ist der offizielle, auf dem das ABP Core Team zur Überwachung anwesend ist.", + "Discord_Page_JoinToServer": "Treten Sie dem ABP Discord Server bei", + "Events_Page_MetaTitle": "ABP-Community-Events", + "Events_Page_MetaDescription": "Die vom ABP-Team moderierten Live-Shows sind lockere Sitzungen voller Community-Inhalte, Demos, Fragen und Antworten und Diskussionen rund um das, was bei ABP passiert.", + "Events_Page_Title": "ABP- Community- Gespräche", + "Members_Page_WritingFromUser": "Lesen Sie den Text von {0} in der ABP-Community.", + "Post_Create_Page_MetaTitle": "Neuer Beitrag", + "Post_Create_Page_MetaDescription": "Erstellen Sie Ihren Beitrag, um Ihre Erfahrungen mit dem ABP-Framework zu teilen und einen Beitrag zur ABP-Community zu leisten.", + "Post_Create_Page_CreateNewPost": "Neuen Beitrag erstellen", + "Post_Index_Page_MetaDescription": "Der Zweck der ABP-Community besteht darin, eine Beitragsumgebung für Entwickler zu schaffen, die das ABP-Framework verwenden.", + "Layout_Title": "{0} | ABP-Community", + "Layout_MetaDescription": "Ein Hub für ABP Framework, .NET und Softwareentwicklung. Greifen Sie auf Artikel, Tutorials und Neuigkeiten zu und tragen Sie zur ABP-Community bei.", + "Index_Page_CommunityIntroduction": "Dies ist eine Drehscheibe für ABP Framework, .NET und Softwareentwicklung. Sie können die Artikel lesen, die Video-Tutorials ansehen, sich über den Entwicklungsfortschritt von ABP und ABP-bezogene Ereignisse informieren, anderen Entwicklern helfen und Ihr Fachwissen mit der ABP-Community teilen.", + "TagsInArticle": "Tags im Artikel", + "IConsentToMedium": "Ich stimme der Veröffentlichung dieses Beitrags auf https://medium.com/volosoft zu.", + "SearchResultsFor": "Suchergebnisse für „{0}“", + "SeeMoreVideos": "Sehen Sie mehr Videos", + "DiscordPageTitle": "ABP Discord-Community", + "ViewVideo": "Video ansehen", + "AbpCommunityTitleContent": "ABP-Community – Open-Source-ABP-Framework", + "CommunitySlogan": "Eine einzigartige Community-Plattform für ABP-Liebhaber", + "RaffleIsNotActive": "Das Gewinnspiel ist nicht aktiv", + "YouAreAlreadyJoinedToThisRaffle": "Sie haben bereits an dieser Verlosung teilgenommen", + "InvalidSubscriptionCode": "Ungültiger Abonnementcode", + "Raffle:{0}": "Gewinnspiel: {0}", + "Join": "Verbinden", + "Leave": "Verlassen", + "LoginToJoin": "Melden Sie sich an, um beizutreten", + "ToEnd:": "Beenden:", + "ToStart:": "Anfangen:", + "days": "Tage", + "hrs": "Std", + "min": "Mindest", + "sec": "Sek", + "Winners": "Gewinner", + "To{0}LuckyWinners": "an {0} glückliche Gewinner", + "ActiveRaffles": "Aktive Gewinnspiele", + "UpcomingRaffles": "Kommende Gewinnspiele", + "CompletedRaffles": "Verlosungen abgeschlossen", + "NoActiveRaffleTitle": "Zur Zeit ist kein aktives Gewinnspiel verfügbar.", + "NoActiveRaffleDescription": "Zur Zeit ist kein aktives Gewinnspiel verfügbar.", + "RaffleSubscriptionCodeInputMessage": "Für diese Verlosung ist ein Registrierungscode erforderlich. Bitte geben Sie unten den Registrierungscode ein:", + "RaffleSubscriptionCodeInputErrorMessage": "Der Registrierungscode ist falsch. Bitte versuche es erneut.", + "GoodJob!": "Gute Arbeit!", + "RaffleJoinSuccessMessage": "Sie haben sich erfolgreich für das Gewinnspiel angemeldet. Sie werden per E-Mail benachrichtigt, wenn Sie den Preis gewinnen!", + "RaffleLoginAndRegisterMessage": "Sie sollten sich anmelden, um an einer Verlosung teilzunehmen. Sie können kostenlos ein Konto erstellen, wenn Sie noch nicht registriert sind.", + "Ok": "OK", + "SeeDetails": "Siehe Einzelheiten", + "WaitingForTheDraw": "Warten auf die Auslosung", + "AllAttendees": "Alle Teilnehmer", + "SeeRaffleDetail": "Siehe Details zur Verlosung", + "SeeRaffle": "Siehe Tombola", + "ParticipationIsComplete!": "Die Teilnahme ist abgeschlossen!", + "ABPCoreDevelopmentTeam": "ABP-Kernentwicklungsteam", + "RegisterTheEvent": "Registrieren Sie die Veranstaltung", + "GoToConferencePage": "Gehen Sie zur Konferenzseite", + "BuyTicket": "Ticket kaufen", + "SeeEvent": "Siehe Veranstaltung", + "PreviousEvents": "Frühere Veranstaltungen", + "OtherLiveEvents": "Andere Live-Events", + "SponsoredConferences": "Gesponserte Konferenzen", + "SponsoredConferencesDescription": "Es ist uns eine Ehre, .NET-Communitys und Veranstaltungen für Softwareentwickler zu unterstützen.", + "UpcomingEvents": "Kommende Veranstaltungen", + "UpcomingCommunityTalkEventDescription": "Die vom ABP-Team moderierten Live-Shows sind lockere Sitzungen voller Community-Inhalte, Demos, Fragen und Antworten und Diskussionen rund um das, was bei ABP passiert.", + "UpcomingConferenceEventDescription": "Die ABP .NET-Konferenz ist eine virtuelle Veranstaltung für die .NET-Entwickler-Community, bei der sie zusammenkommt und sich Vorträge über die .NET-Welt, gängige Softwareentwicklungspraktiken und das Open-Source-ABP-Framework anhört.", + "LastOneYear": "Letztes 1 Jahr", + "AllTimes": "Jederzeit", + "TopContributors": "Top Anbieter", + "{0}Posts": "{0} Beiträge", + "LATESTPOSTS": "NEUESTE BEITRÄGE", + "NoContributorsFound": "Keine Mitwirkenden gefunden!", + "LatestPost": "Neuester Beitrag", + "MEMBERSINCE{0}": "MITGLIED SEIT {0}", + "CopyLink": "Link kopieren", + "ShareOnTwitter": "Auf Twitter teilen", + "ShareOnLinkedIn": "Auf LinkedIn teilen", + "MoreFrom{0}": "Mehr von {0}", + "SeeAllFrom{0}": "Alles von {0} ansehen", + "MostWatched": "Meist gesehen", + "Articles({0})": "Artikel ({0})", + "Videos({0})": "Videos ({0})", + "LatestArticles": "Neueste Artikel", + "RaffleHeader": "Hallo ABP-Community-Mitglied!", + "RafflesInfo": "
Auf dieser Verlosungsseite möchten wir Ihnen unsere Wertschätzung dafür zeigen, dass Sie ein aktives Community-Mitglied sind. Wir veranstalten ABP Community Talks und ABP .NET Conferences , nehmen an .NET-bezogenen Veranstaltungen teil oder sponsern diese, bei denen wir einige Geschenke verschenken.

Sie können dieser Seite folgen, um die bevorstehenden Verlosungen zu sehen, daran teilzunehmen oder frühere Verlosungen, die wir verlosen, einschließlich der Gewinner, anzusehen.

Vielen Dank, dass Sie ein aktives Mitglied sind! Wir sehen uns bei den kommenden Gewinnspielen.", + "RafflesInfoTitle": "ABP-Community- Verlosungen" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/es.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/es.json index f065ed2895..e6199fb7fb 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/es.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/es.json @@ -13,7 +13,6 @@ "Status": "Estado", "ContentSource": "Fuente de contenido", "Details": "Detalles", - "Url": "Url", "Title": "Título", "CreationTime": "Fecha de creación", "Save": "Guardar", @@ -29,23 +28,22 @@ "ContributionGuide": "Guía de contribución", "BugReport": "Informe de errores", "SeeAllPosts": "Ver todos los artículos", - "WelcomeToABPCommunity!": "Bienvenido a la comunidad ABP", - "MyProfile": "Mi perfil", - "MyOrganizations": "Mis organizaciones", + "WelcomeToABP": "Bienvenidos a la ABP", "EmailNotValid": "Por favor entra una dirección de email válida.", "FeatureRequest": "Solucitud de característica", "CreatePostTitleInfo": "Título del artículo para ser mostrado en la lista de artículos.", "CreatePostSummaryInfo": "Un pequeño resumen del artículo para ser mostrado en la lista de artículos.", - "CreatePostCoverInfo": "Para crear un artículo eficaz, agregue una foto de portada. Cargue imágenes con una relación de aspecto de 16: 9 para obtener la mejor vista.", + "CreatePostCoverInfo": "Para crear una publicación eficaz, agregue una foto de portada. Cargue imágenes con una relación de aspecto de 16: 9 para obtener la mejor vista. Tamaño máximo de archivo: 1 MB.", "ThisExtensionIsNotAllowed": "Esta extensión no está permitida.", "TheFileIsTooLarge": "El fichero es demasiado grande.", "GoToThePost": "Ir a el artículo", + "GoToTheVideo": "Ir al vídeo", "Contribute": "Contribuir", "OverallProgress": "Progreso general", "Done": "Hecho", "Open": "Abrir", "Closed": "Cerrado", - "LatestQuestionOnThe": "Última pregunta en la", + "RecentQuestionFrom": "Pregunta reciente de {0}", "Stackoverflow": "Stackoverflow", "Votes": "Votos", "Answer": "Respuesta", @@ -59,7 +57,7 @@ "QuestionItemErrorMessage": "no se pudieron obtener los detalles de pregunta actual en Stackoverflow.", "Oops": "Oops!", "CreatePostSuccessMessage": "El artículo se ha enviado correctamente. Se publicará después de una revisión del administrador del sitio.", - "ChooseCoverImage": "Elige una imagen de portada...", + "Browse": "Navegar", "CoverImage": "Imagen de portada", "ShareYourExperiencesWithTheABPFramework": "Comparte tus experiencias con el ABP Framework!", "Optional": "Opcional", @@ -88,6 +86,8 @@ "PostRequestFromGithubIssue": "No hay solicitudes de artículos ahora.", "LatestPosts": "últimas publicaciones", "ArticleRequests": "Solicitudes de artículos", + "ArticleRequestsDescription": "¿Quieres ver un contenido específico aquí? ¡Puedes pedirle a la comunidad que lo cree!", + "LatestContentRequests": "Últimas solicitudes de contenido", "AllPostRequests": "Ver todas las solicitudes de artículos", "SubscribeToTheNewsletter": "Suscríbete a la Newsletter", "NewsletterEmailDefinition": "Obtenga información sobre los acontecimientos en ABP, como nuevos lanzamientos, fuentes gratuitas, artículos y más.", @@ -115,7 +115,6 @@ "VideoUrl": "URL del vídeo", "GithubPostUrl": "URL del artículo de Github", "ExternalPostUrl": "URL del artículo externo", - "CreatePostCoverInfo": "Para crear una publicación eficaz, agregue una foto de portada. Cargue imágenes con una relación de aspecto de 16: 9 para obtener la mejor vista. Tamaño máximo de archivo: 1 MB.", "ThankYouForContribution": "Gracias por contribuir a la comunidad ABP.", "GithubPost": "Artículo de Github", "GithubPostSubmitStepOne": " 1. Escribe un artículo en cualquier repositorio público de GitHub con el formato Markdown. ejemplo ", @@ -144,6 +143,118 @@ "Volo.AbpIo.Domain:060002": "El contenido del artículo no está disponible en el recurso de Github (\"{PostUrl}\").", "Volo.AbpIo.Domain:060003": "¡No se encontró contenido del artículo!", "SeeMore": "Ver Más", - "IConsentToMedium": "Acepto la publicación de esta publicación en https://medium.com/volosoft." + "JoinTheABPCommunity": "Únase a la comunidad ABP", + "ABPCommunityTalks": "Charlas comunitarias de ABP", + "LiveDemo": "Demo en vivo", + "GetLicense": "Obtener una licencia", + "GetStarted": "Empezar", + "SourceCode": "Código fuente", + "LeaveComment": "Deje un comentario", + "ShowMore": "Mostrar más", + "NoPublishedPostsYet": "Aún no hay publicaciones publicadas.", + "Name": "Nombre", + "Surname": "Apellido", + "WebSite": "Sitio web", + "FullURL": "URL completa", + "JobTitle": "Título profesional", + "Prev": "Anterior", + "Previous": "Anterior", + "Next": "Próximo", + "Share": "Compartir", + "SortBy": "Ordenar por", + "NoPublishedEventsYet": "Aún no hay eventos publicados.", + "SubscribeYoutubeChannel": "Suscríbete al canal de Youtube", + "Enum:EventType:0": "Negociaciones", + "MemberNotPublishedPostYet": "Este miembro aún no ha publicado ninguna publicación.", + "TimeAgo": "Hace {0}", + "Discord_Page_JoinCommunityMessage": "Únase a la comunidad ABP Discord", + "Discord_Page_Announce": "¡Estamos felices de anunciar el servidor de discordia de la comunidad ABP!", + "Discord_Page_Description_1": "La comunidad ABP ha ido creciendo desde el primer día. Queríamos llevarlo al siguiente paso creando un servidor oficial de ABP Discord para que la comunidad ABP pueda interactuar entre sí utilizando las maravillas de la mensajería instantánea.", + "Discord_Page_Description_2": "ABP Community Discord Server es el lugar donde puede mostrar sus creaciones utilizando ABP Framework, compartir los consejos que le funcionaron, ponerse al día con las últimas noticias y anuncios sobre ABP Framework, simplemente chatear con miembros de la comunidad para intercambiar ideas y ¡diviértase!", + "Discord_Page_Description_3": "Este servidor de discordia de la comunidad ABP es el oficial y el equipo central de ABP está presente en el servidor para monitorear.", + "Discord_Page_JoinToServer": "Únase al servidor de discordia de ABP", + "Events_Page_MetaTitle": "Eventos de la comunidad ABP", + "Events_Page_MetaDescription": "Los shows en vivo, organizados por el equipo de ABP, son sesiones informales llenas de contenido comunitario, demostraciones, preguntas y respuestas y debates sobre lo que está sucediendo en ABP.", + "Events_Page_Title": "Charlas comunitarias de ABP", + "Members_Page_WritingFromUser": "Lea los escritos de {0} en la comunidad ABP.", + "Post_Create_Page_MetaTitle": "Nueva publicación", + "Post_Create_Page_MetaDescription": "Cree su publicación para compartir sus experiencias sobre el marco ABP y contribuir a la comunidad ABP.", + "Post_Create_Page_CreateNewPost": "Crear nueva publicación", + "Post_Index_Page_MetaDescription": "El propósito de la Comunidad ABP es crear un entorno de contribución para los desarrolladores que utilizan el marco ABP.", + "Layout_Title": "{0} | Comunidad ABP", + "Layout_MetaDescription": "Un centro para ABP Framework, .NET y desarrollo de software. Acceda a artículos, tutoriales, noticias y contribuya a la comunidad ABP.", + "Index_Page_CommunityIntroduction": "Este es un centro para ABP Framework, .NET y desarrollo de software. Puede leer los artículos, ver los tutoriales en vídeo, informarse sobre el progreso del desarrollo de ABP y los eventos relacionados con ABP, ayudar a otros desarrolladores y compartir su experiencia con la comunidad de ABP.", + "TagsInArticle": "Etiquetas en el artículo", + "IConsentToMedium": "Acepto la publicación de esta publicación en https://medium.com/volosoft.", + "SearchResultsFor": "Resultados de la búsqueda para "{0}"", + "SeeMoreVideos": "Ver más vídeos", + "DiscordPageTitle": "Comunidad de discordia ABP", + "ViewVideo": "Ver vídeo", + "AbpCommunityTitleContent": "Comunidad ABP - Marco ABP de código abierto", + "CommunitySlogan": "Una plataforma comunitaria única para los amantes de ABP", + "RaffleIsNotActive": "El sorteo no está activo.", + "YouAreAlreadyJoinedToThisRaffle": "Ya estas unido a este sorteo", + "InvalidSubscriptionCode": "Código de suscripción no válido", + "Raffle:{0}": "Sorteo: {0}", + "Join": "Unirse", + "Leave": "Dejar", + "LoginToJoin": "Inicia sesión para unirte", + "ToEnd:": "Para terminar:", + "ToStart:": "Para comenzar:", + "days": "días", + "hrs": "horas", + "min": "mín.", + "sec": "segundo", + "Winners": "Ganadores", + "To{0}LuckyWinners": "a {0} afortunado(s) ganador(es)", + "ActiveRaffles": "Rifas Activas", + "UpcomingRaffles": "Próximos sorteos", + "CompletedRaffles": "Rifas completadas", + "NoActiveRaffleTitle": "No hay ningún sorteo activo disponible en este momento.", + "NoActiveRaffleDescription": "No hay ningún sorteo activo disponible en este momento.", + "RaffleSubscriptionCodeInputMessage": "Este sorteo requiere un código de registro. Por favor ingrese el código de registro a continuación:", + "RaffleSubscriptionCodeInputErrorMessage": "El código de registro es incorrecto. Inténtalo de nuevo.", + "GoodJob!": "¡Buen trabajo!", + "RaffleJoinSuccessMessage": "Estás registrado exitosamente para el sorteo. ¡Se te informará por correo electrónico si ganas el premio!", + "RaffleLoginAndRegisterMessage": "Debes iniciar sesión para unirte a un sorteo. Puedes crear una cuenta gratis si aún no te has registrado.", + "Ok": "De acuerdo", + "SeeDetails": "Ver detalles", + "WaitingForTheDraw": "esperando el sorteo", + "AllAttendees": "Todos los asistentes", + "SeeRaffleDetail": "Ver Detalle del Sorteo", + "SeeRaffle": "Ver Sorteo", + "ParticipationIsComplete!": "¡La participación está completa!", + "ABPCoreDevelopmentTeam": "Equipo de desarrollo central de ABP", + "RegisterTheEvent": "Registra el evento", + "GoToConferencePage": "Ir a la página de la conferencia", + "BuyTicket": "Comprar boleto", + "SeeEvent": "Ver Evento", + "PreviousEvents": "Eventos anteriores", + "OtherLiveEvents": "Otros eventos en vivo", + "SponsoredConferences": "Conferencias patrocinadas", + "SponsoredConferencesDescription": "Es un honor para nosotros apoyar comunidades y eventos .NET para desarrolladores de software.", + "UpcomingEvents": "Próximos Eventos", + "UpcomingCommunityTalkEventDescription": "Los shows en vivo, organizados por el equipo de ABP, son sesiones informales llenas de contenido comunitario, demostraciones, preguntas y respuestas y debates sobre lo que está sucediendo en ABP.", + "UpcomingConferenceEventDescription": "La Conferencia ABP .NET es un evento virtual para que la comunidad de desarrolladores .NET se reúna y escuche charlas sobre el mundo .NET, prácticas comunes de desarrollo de software y el marco ABP de código abierto.", + "LastOneYear": "Último 1 año", + "AllTimes": "Todo el tiempo", + "TopContributors": "Mayores contribuyentes", + "{0}Posts": "{0} Publicaciones", + "LATESTPOSTS": "ÚLTIMAS PUBLICACIONES", + "NoContributorsFound": "¡No se encontraron contribuyentes!", + "LatestPost": "Última publicación", + "MEMBERSINCE{0}": "MIEMBRO DESDE {0}", + "CopyLink": "Copiar link", + "ShareOnTwitter": "Compartir en Twitter", + "ShareOnLinkedIn": "Compartir en LinkedIn", + "MoreFrom{0}": "Más de {0}", + "SeeAllFrom{0}": "Ver todo desde {0}", + "MostWatched": "El más visto", + "Articles({0})": "Artículos ({0})", + "Videos({0})": "Vídeos ({0})", + "LatestArticles": "últimos artículos", + "RaffleHeader": "¡Hola miembro de la comunidad ABP!", + "RafflesInfo": "
Esta es la página del sorteo dedicada a mostrarle nuestro agradecimiento por ser un miembro activo de la comunidad. Realizamos charlas comunitarias de ABP , conferencias ABP .NET , asistimos o patrocinamos eventos relacionados con .NET en los que regalamos algunos obsequios.

Puedes seguir esta página para ver los próximos sorteos, asistir a ellos o ver sorteos anteriores que sorteamos incluyendo a los ganadores.

¡Gracias por ser un miembro activo! Nos vemos en los próximos sorteos.", + "RafflesInfoTitle": "Rifas de la Comunidad ABP" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/fi.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/fi.json index d090608518..d7a9108249 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/fi.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/fi.json @@ -37,6 +37,7 @@ "ThisExtensionIsNotAllowed": "Tätä laajennusta ei sallita.", "TheFileIsTooLarge": "Tiedosto on liian suuri.", "GoToThePost": "Siirry artikkeliin", + "GoToTheVideo": "Siirry videoon", "Contribute": "Osallistu", "OverallProgress": "Kokonaisedistyminen", "Done": "Tehty", @@ -186,6 +187,74 @@ "TagsInArticle": "Tagit artikkelissa", "IConsentToMedium": "Hyväksyn tämän viestin julkaisemisen osoitteessa https://medium.com/volosoft.", "SearchResultsFor": "Hakutulokset haulle \"{0}\"", - "SeeMoreVideos": "Katso lisää videoita" + "SeeMoreVideos": "Katso lisää videoita", + "DiscordPageTitle": "ABP Discord -yhteisö", + "ViewVideo": "Katso video", + "AbpCommunityTitleContent": "ABP-yhteisö - avoimen lähdekoodin ABP-kehys", + "CommunitySlogan": "Ainutlaatuinen yhteisöalusta ABP-ystäville", + "RaffleIsNotActive": "Arvonta ei ole aktiivinen", + "YouAreAlreadyJoinedToThisRaffle": "Olet jo osallistunut tähän arvontaan", + "InvalidSubscriptionCode": "Virheellinen tilauskoodi", + "Raffle:{0}": "Arvonta: {0}", + "Join": "Liittyä seuraan", + "Leave": "Lähde", + "LoginToJoin": "Kirjaudu sisään liittyäksesi", + "ToEnd:": "Loppuun:", + "ToStart:": "Aloittaa:", + "days": "päivää", + "hrs": "tuntia", + "min": "min", + "sec": "sek", + "Winners": "Voittajat", + "To{0}LuckyWinners": "{0} onnekkaalle voittajalle", + "ActiveRaffles": "Aktiiviset arpajaiset", + "UpcomingRaffles": "Tulevat arpajaiset", + "CompletedRaffles": "Arpajaiset suoritettu", + "NoActiveRaffleTitle": "Aktiivista arvontaa ei ole tällä hetkellä saatavilla.", + "NoActiveRaffleDescription": "Aktiivista arvontaa ei ole tällä hetkellä saatavilla.", + "RaffleSubscriptionCodeInputMessage": "Tämä arvonta vaatii rekisteröintikoodin. Syötä alla oleva rekisteröintikoodi:", + "RaffleSubscriptionCodeInputErrorMessage": "Rekisteröintikoodi on virheellinen. Yritä uudelleen.", + "GoodJob!": "Hyvää työtä!", + "RaffleJoinSuccessMessage": "Olet onnistuneesti rekisteröitynyt arvontaan. Sinulle ilmoitetaan sähköpostitse, jos voitat palkinnon!", + "RaffleLoginAndRegisterMessage": "Sinun tulee kirjautua sisään osallistuaksesi arvontaan. Voit luoda tilin ilmaiseksi, jos et ole vielä rekisteröitynyt.", + "Ok": "Ok", + "SeeDetails": "Katso yksityiskohdat", + "WaitingForTheDraw": "Arvontaa odotellessa", + "AllAttendees": "Kaikki osallistujat", + "SeeRaffleDetail": "Katso arpajaiset", + "SeeRaffle": "Katso Arpajaiset", + "ParticipationIsComplete!": "Osallistuminen on valmis!", + "ABPCoreDevelopmentTeam": "ABP:n ydinkehitystiimi", + "RegisterTheEvent": "Ilmoittaudu tapahtumaan", + "GoToConferencePage": "Siirry konferenssisivulle", + "BuyTicket": "Osta lippu", + "SeeEvent": "Katso Tapahtuma", + "PreviousEvents": "Aiemmat tapahtumat", + "OtherLiveEvents": "Muut live-tapahtumat", + "SponsoredConferences": "Sponsoroidut konferenssit", + "SponsoredConferencesDescription": "Meillä on kunnia tukea .NET-yhteisöjä ja tapahtumia ohjelmistokehittäjille.", + "UpcomingEvents": "Tulevat tapahtumat", + "UpcomingCommunityTalkEventDescription": "ABP-tiimin isännöimät live-ohjelmat ovat rentoja istuntoja, jotka ovat täynnä yhteisöllistä sisältöä, demoja, kysymyksiä ja vastauksia sekä keskusteluja siitä, mitä ABP:ssä tapahtuu.", + "UpcomingConferenceEventDescription": "ABP .NET Conference on virtuaalinen tapahtuma, jossa .NET Developer -yhteisö kokoontuu ja kuuntelee puheita .NET-maailmasta, yleisistä ohjelmistokehityskäytännöistä ja avoimen lähdekoodin ABP Frameworkista.", + "LastOneYear": "Viimeinen 1 vuosi", + "AllTimes": "Kaikki ajat", + "TopContributors": "Ahkerat kirjoittajat", + "{0}Posts": "{0} viestiä", + "LATESTPOSTS": "VIIMEISET POSTIT", + "NoContributorsFound": "Osallistujia ei löytynyt!", + "LatestPost": "Viimeisin postaus", + "MEMBERSINCE{0}": "JÄSEN ALKAEN {0}", + "CopyLink": "Kopioi linkki", + "ShareOnTwitter": "Jaa Twitterissä", + "ShareOnLinkedIn": "Jaa LinkedInissä", + "MoreFrom{0}": "Lisää käyttäjältä {0}", + "SeeAllFrom{0}": "Näytä kaikki kohteesta {0}", + "MostWatched": "Katsotuimmat", + "Articles({0})": "Artikkelit ({0})", + "Videos({0})": "Videot ({0})", + "LatestArticles": "Viimeisimmät artikkelit", + "RaffleHeader": "Hei ABP-yhteisön jäsen!", + "RafflesInfo": "
Tämä on arvontasivu, joka on omistettu osoittamaan kiitollisuuttamme sinua kohtaan, että olet aktiivinen yhteisön jäsen. Teemme ABP Community Talksia , ABP .NET -konferenssia , osallistumme tai sponsoroimme .NET-tapahtumia, joissa annamme lahjoja.

Voit seurata tätä sivua nähdäksesi tulevat arvonnat, osallistua niihin tai nähdäksesi aiemmat arvonnamme, mukaan lukien voittajat.

Kiitos aktiivisesta jäsenyydestäsi! Nähdään tulevissa arvonnassa.", + "RafflesInfoTitle": "ABP-yhteisön arpajaiset" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/fr.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/fr.json index 9321c8511c..2142ccb0d1 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/fr.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/fr.json @@ -13,7 +13,6 @@ "Status": "Statut", "ContentSource": "Source du contenu", "Details": "Des détails", - "Url": "URL", "Title": "Titre", "CreationTime": "Temps de creation", "Save": "Sauvegarder", @@ -29,9 +28,7 @@ "ContributionGuide": "Guide de contribution", "BugReport": "Rapport d'erreur", "SeeAllPosts": "Voir tous les posts", - "WelcomeToABPCommunity!": "Bienvenue dans la communauté ABP!", - "MyProfile": "Mon profil", - "MyOrganizations": "Mes organisations", + "WelcomeToABP": "Bienvenue à l'ABP", "EmailNotValid": "S'il vous plaît, mettez une adresse email valide.", "FeatureRequest": "Demande de fonctionnalité", "CreatePostTitleInfo": "Titre du message à afficher dans la liste des messages.", @@ -40,12 +37,13 @@ "ThisExtensionIsNotAllowed": "Cette extension n'est pas autorisée.", "TheFileIsTooLarge": "Le fichier est trop volumineux.", "GoToThePost": "Aller à l'post", + "GoToTheVideo": "Aller à la vidéo", "Contribute": "Contribuer", "OverallProgress": "Les progrès d'ensemble", "Done": "Fait", "Open": "Ouvert", "Closed": "Fermé", - "LatestQuestionOnThe": "Dernière question sur le", + "RecentQuestionFrom": "Question récente de {0}", "Stackoverflow": "Stackoverflow", "Votes": "les votes", "Answer": "Répondre", @@ -59,7 +57,7 @@ "QuestionItemErrorMessage": "Impossible d'obtenir les derniers détails de la question de Stackoverflow.", "Oops": "Oops!", "CreatePostSuccessMessage": "L'post a été soumis avec succès. Il sera publié après un examen de l'administrateur du site.", - "ChooseCoverImage": "Choisissez une image de couverture...", + "Browse": "Parcourir", "CoverImage": "Image de couverture", "ShareYourExperiencesWithTheABPFramework": "Partagez vos expériences avec le Framework ABP!", "Optional": "Optionnel", @@ -88,6 +86,8 @@ "PostRequestFromGithubIssue": "Il n'y a actuellement aucune demande d'post.", "LatestPosts": "Derniers messages", "ArticleRequests": "Demandes d'posts", + "ArticleRequestsDescription": "Vous souhaitez voir un contenu spécifique ici ? Vous pouvez demander à la communauté de le créer !", + "LatestContentRequests": "Dernières demandes de contenu", "AllPostRequests": "Voir toutes les demandes d'posts", "SubscribeToTheNewsletter": "Abonnez-vous à la newsletter", "NewsletterEmailDefinition": "Obtenez des informations sur les événements d'ABP, comme les nouvelles versions, les sources gratuites, les posts, etc.", @@ -115,7 +115,6 @@ "VideoUrl": "URL de la vidéo", "GithubPostUrl": "URL de l'post Github", "ExternalPostUrl": "URL de l'post externe", - "CreatePostCoverInfo": "Pour créer un post efficace, ajoutez une photo de couverture. Téléchargez des images au format 16: 9 pour une meilleure vue. Taille maximale du fichier: 1 Mo.", "ThankYouForContribution": "Merci de contribuer à la communauté ABP.", "GithubPost": "Post Github", "GithubPostSubmitStepOne": " 1. Rédigez un post sur n'importe quel référentiel GitHub public au format Markdown. Exemple de ", @@ -144,6 +143,118 @@ "Volo.AbpIo.Domain:060002": "Le contenu de l'post n'est pas disponible à partir de la ressource Github(\"{PostUrl}\").", "Volo.AbpIo.Domain:060003": "Aucun contenu d'post trouvé !", "SeeMore": "Voir Plus", - "IConsentToMedium": "Je consens à la publication de cet article sur https://medium.com/volosoft." + "JoinTheABPCommunity": "Rejoignez la communauté ABP", + "ABPCommunityTalks": "Discussions communautaires ABP", + "LiveDemo": "Démo en direct", + "GetLicense": "Obtenez une licence", + "GetStarted": "Commencer", + "SourceCode": "Code source", + "LeaveComment": "Laisse un commentaire", + "ShowMore": "Montre plus", + "NoPublishedPostsYet": "Aucun article publié pour l'instant.", + "Name": "Nom", + "Surname": "Nom de famille", + "WebSite": "Site web", + "FullURL": "URL complète", + "JobTitle": "Titre d'emploi", + "Prev": "Précédent", + "Previous": "Précédent", + "Next": "Suivant", + "Share": "Partager", + "SortBy": "Trier par", + "NoPublishedEventsYet": "Aucun événement publié pour l'instant.", + "SubscribeYoutubeChannel": "Abonnez-vous à la chaîne Youtube", + "Enum:EventType:0": "Pourparlers", + "MemberNotPublishedPostYet": "Ce membre n'a pas encore publié de messages.", + "TimeAgo": "il y a {0}", + "Discord_Page_JoinCommunityMessage": "Rejoignez la communauté Discord ABP", + "Discord_Page_Announce": "Nous sommes heureux d'annoncer le serveur Discord communautaire ABP !", + "Discord_Page_Description_1": "La communauté ABP s'est développée depuis le premier jour. Nous voulions passer à l'étape suivante en créant un serveur ABP Discord officiel afin que la communauté ABP puisse interagir les unes avec les autres en utilisant les merveilles de la messagerie instantanée.", + "Discord_Page_Description_2": "ABP Community Discord Server est l'endroit où vous pouvez présenter vos créations à l'aide d'ABP Framework, partager les astuces qui ont fonctionné pour vous, vous tenir au courant des dernières nouvelles et annonces concernant ABP Framework, simplement discuter avec les membres de la communauté pour échanger des idées et vous amuser !", + "Discord_Page_Description_3": "Ce serveur Discord communautaire ABP est le serveur officiel avec l'équipe principale ABP présente sur le serveur à surveiller.", + "Discord_Page_JoinToServer": "Rejoignez le serveur Discord ABP", + "Events_Page_MetaTitle": "Événements communautaires ABP", + "Events_Page_MetaDescription": "Les émissions en direct, animées par l'équipe ABP, sont des sessions informelles pleines de contenu communautaire, de démos, de questions-réponses et de discussions sur ce qui se passe dans ABP.", + "Events_Page_Title": "Discussions communautaires ABP", + "Members_Page_WritingFromUser": "Lisez les écrits de {0} sur la communauté ABP.", + "Post_Create_Page_MetaTitle": "Nouveau poste", + "Post_Create_Page_MetaDescription": "Créez votre message pour partager vos expériences sur le cadre ABP et contribuer à la communauté ABP.", + "Post_Create_Page_CreateNewPost": "Créer un nouveau message", + "Post_Index_Page_MetaDescription": "L'objectif de la communauté ABP est de créer un environnement de contribution pour les développeurs qui utilisent le framework ABP.", + "Layout_Title": "{0} | Communauté ABP", + "Layout_MetaDescription": "Une plateforme pour ABP Framework, .NET et le développement de logiciels. Accédez à des articles, des tutoriels, des actualités et contribuez à la communauté ABP.", + "Index_Page_CommunityIntroduction": "Il s'agit d'une plaque tournante pour ABP Framework, .NET et le développement de logiciels. Vous pouvez lire les articles, regarder les didacticiels vidéo, être informé des progrès de développement d'ABP et des événements liés à ABP, aider d'autres développeurs et partager votre expertise avec la communauté ABP.", + "TagsInArticle": "Balises dans l'article", + "IConsentToMedium": "Je consens à la publication de cet article sur https://medium.com/volosoft.", + "SearchResultsFor": "Résultats de recherche pour "{0}"", + "SeeMoreVideos": "Voir plus de vidéos", + "DiscordPageTitle": "Communauté Discorde ABP", + "ViewVideo": "Voir la vidéo", + "AbpCommunityTitleContent": "Communauté ABP - Cadre ABP Open Source", + "CommunitySlogan": "Une plateforme communautaire unique pour les amateurs d'ABP", + "RaffleIsNotActive": "Le tirage au sort n'est pas actif", + "YouAreAlreadyJoinedToThisRaffle": "Vous êtes déjà inscrit à ce tirage au sort", + "InvalidSubscriptionCode": "Code d'abonnement invalide", + "Raffle:{0}": "Tirage au sort : {0}", + "Join": "Rejoindre", + "Leave": "Partir", + "LoginToJoin": "Connectez-vous pour rejoindre", + "ToEnd:": "Finir:", + "ToStart:": "Commencer:", + "days": "jours", + "hrs": "heures", + "min": "min", + "sec": "seconde", + "Winners": "Gagnants", + "To{0}LuckyWinners": "à {0} heureux gagnant(s)", + "ActiveRaffles": "Tirages au sort actifs", + "UpcomingRaffles": "Tirages au sort à venir", + "CompletedRaffles": "Tirages au sort terminés", + "NoActiveRaffleTitle": "Aucun tirage au sort actif n'est disponible pour le moment.", + "NoActiveRaffleDescription": "Aucun tirage au sort actif n'est disponible pour le moment.", + "RaffleSubscriptionCodeInputMessage": "Ce tirage au sort nécessite un code d'enregistrement. Veuillez saisir le code d'enregistrement ci-dessous :", + "RaffleSubscriptionCodeInputErrorMessage": "Le code d'enregistrement est incorrect. Veuillez réessayer.", + "GoodJob!": "Bon travail!", + "RaffleJoinSuccessMessage": "Vous êtes inscrit avec succès au tirage au sort. Vous serez informé par e-mail si vous gagnez le prix !", + "RaffleLoginAndRegisterMessage": "Vous devez vous connecter pour participer à un tirage au sort. Vous pouvez créer un compte gratuitement si vous n'êtes pas encore inscrit.", + "Ok": "D'accord", + "SeeDetails": "Voir les détails", + "WaitingForTheDraw": "En attendant le tirage au sort", + "AllAttendees": "Tous les participants", + "SeeRaffleDetail": "Voir les détails du tirage au sort", + "SeeRaffle": "Voir le tirage au sort", + "ParticipationIsComplete!": "La participation est terminée !", + "ABPCoreDevelopmentTeam": "Équipe de développement de base ABP", + "RegisterTheEvent": "Enregistrez l'événement", + "GoToConferencePage": "Aller à la page de la conférence", + "BuyTicket": "Acheter un billet", + "SeeEvent": "Voir l'événement", + "PreviousEvents": "Événements précédents", + "OtherLiveEvents": "Autres événements en direct", + "SponsoredConferences": "Conférences sponsorisées", + "SponsoredConferencesDescription": "Nous sommes honorés de soutenir les communautés et les événements .NET pour les développeurs de logiciels.", + "UpcomingEvents": "évènements à venir", + "UpcomingCommunityTalkEventDescription": "Les émissions en direct, animées par l'équipe ABP, sont des sessions informelles remplies de contenu communautaire, de démos, de questions-réponses et de discussions sur ce qui se passe dans ABP.", + "UpcomingConferenceEventDescription": "La conférence ABP .NET est un événement virtuel permettant à la communauté des développeurs .NET de se réunir et d'écouter des discussions sur le monde .NET, les pratiques courantes de développement de logiciels et le framework ABP open source.", + "LastOneYear": "1 an dernier", + "AllTimes": "Chaque fois", + "TopContributors": "Meilleurs contributeurs", + "{0}Posts": "{0} messages", + "LATESTPOSTS": "DERNIERS POSTES", + "NoContributorsFound": "Aucun contributeur trouvé !", + "LatestPost": "Dernier message", + "MEMBERSINCE{0}": "MEMBRE DEPUIS {0}", + "CopyLink": "Copier le lien", + "ShareOnTwitter": "Partager sur Twitter", + "ShareOnLinkedIn": "Partager sur LinkedIn", + "MoreFrom{0}": "Plus de {0}", + "SeeAllFrom{0}": "Tout voir de {0}", + "MostWatched": "Le plus regardé", + "Articles({0})": "Articles ({0})", + "Videos({0})": "Vidéos ({0})", + "LatestArticles": "Derniers articles", + "RaffleHeader": "Bonjour membre de la communauté ABP !", + "RafflesInfo": "
Ceci est la page de tirage au sort dédiée à vous montrer notre gratitude pour votre participation active à la communauté. Nous organisons des discussions communautaires ABP , des conférences ABP .NET , assistons ou sponsorisons des événements liés à .NET au cours desquels nous offrons des cadeaux.

Vous pouvez suivre cette page pour voir les tirages au sort à venir, y assister ou voir les tirages au sort précédents que nous tirons, y compris les gagnants.

Merci d'être un membre actif ! Rendez-vous lors des prochains tirages au sort.", + "RafflesInfoTitle": "Tirages au sort communautaires ABP" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/hi.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/hi.json index 5a5cf123f2..0f5964fe23 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/hi.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/hi.json @@ -13,7 +13,6 @@ "Status": "स्थिति", "ContentSource": "विषय - वस्तु का स्रोत", "Details": "विवरण", - "Url": "यूआरएल", "Title": "शीर्षक", "CreationTime": "रचना समय", "Save": "सहेजें", @@ -29,23 +28,22 @@ "ContributionGuide": "योगदान गाइड", "BugReport": "बग रिपोर्ट", "SeeAllPosts": "सभी पोस्ट देखें", - "WelcomeToABPCommunity!": "ABP समुदाय में आपका स्वागत है!", - "MyProfile": "मेरी प्रोफाइल", - "MyOrganizations": "मेरे संगठन", + "WelcomeToABP": "एबीपी में आपका स्वागत है", "EmailNotValid": "कृपया एक वैध ई - मेल एड्रेस डालें।", "FeatureRequest": "महत्वपूर्ण लेख मांगना", "CreatePostTitleInfo": "पोस्ट का शीर्षक पोस्ट सूची पर दिखाया जाना है।", "CreatePostSummaryInfo": "पोस्ट सूची पर दिखाए जाने वाले पोस्ट का संक्षिप्त सारांश।", - "CreatePostCoverInfo": "एक प्रभावी लेख बनाने के लिए, एक कवर फ़ोटो जोड़ें। सर्वश्रेष्ठ दृश्य के लिए 16: 9 पहलू अनुपात चित्र अपलोड करें। अधिकतम फ़ाइल आकार: 1 एमबी।", + "CreatePostCoverInfo": "एक प्रभावी पोस्ट बनाने के लिए, एक कवर फ़ोटो जोड़ें। सर्वश्रेष्ठ दृश्य के लिए 16: 9 पहलू अनुपात चित्र अपलोड करें। अधिकतम फ़ाइल आकार: 1 एमबी।", "ThisExtensionIsNotAllowed": "इस एक्सटेंशन की अनुमति नहीं है।", "TheFileIsTooLarge": "फ़ाइल बहुत बड़ी है।", "GoToThePost": "लेख पर जाएं", + "GoToTheVideo": "वीडियो पर जाएँ", "Contribute": "योगदान", "OverallProgress": "समग्र प्रगति", "Done": "किया हुआ", "Open": "खुला हुआ", "Closed": "बंद किया हुआ", - "LatestQuestionOnThe": "पर नवीनतम प्रश्न", + "RecentQuestionFrom": "{0} से हाल का प्रश्न", "Stackoverflow": "स्टैक ओवरफ़्लो", "Votes": "वोट", "Answer": "उत्तर", @@ -59,7 +57,7 @@ "QuestionItemErrorMessage": "Stackoverflow से नवीनतम प्रश्न विवरण प्राप्त नहीं कर सका।", "Oops": "उफ़!", "CreatePostSuccessMessage": "अनुच्छेद सफलतापूर्वक प्रस्तुत किया गया है। इसे साइट व्यवस्थापक से समीक्षा के बाद प्रकाशित किया जाएगा।", - "ChooseCoverImage": "कवर छवि चुनें...", + "Browse": "ब्राउज़", "CoverImage": "कवर छवि", "ShareYourExperiencesWithTheABPFramework": "ABP फ्रेमवर्क के साथ अपने अनुभव साझा करें!", "Optional": "ऐच्छिक", @@ -88,6 +86,8 @@ "PostRequestFromGithubIssue": "अब कोई लेख अनुरोध नहीं है।", "LatestPosts": "नवीनतम पोस्ट", "ArticleRequests": "लेख अनुरोध", + "ArticleRequestsDescription": "क्या आप यहां कोई विशिष्ट सामग्री देखना चाहते हैं? आप समुदाय से इसे बनाने के लिए कह सकते हैं!", + "LatestContentRequests": "नवीनतम सामग्री अनुरोध", "AllPostRequests": "सभी लेख अनुरोध देखें", "SubscribeToTheNewsletter": "न्यूज़लेटर की सदस्यता लें", "NewsletterEmailDefinition": "एबीपी में होने वाली घटनाओं के बारे में जानकारी प्राप्त करें जैसे नए रिलीज़, मुफ्त स्रोत, लेख, और बहुत कुछ।", @@ -115,7 +115,6 @@ "VideoUrl": "वीडियो यूआरएल", "GithubPostUrl": "गीथब लेख उराल", "ExternalPostUrl": "बाहरी लेख यूआरएल", - "CreatePostCoverInfo": "एक प्रभावी पोस्ट बनाने के लिए, एक कवर फ़ोटो जोड़ें। सर्वश्रेष्ठ दृश्य के लिए 16: 9 पहलू अनुपात चित्र अपलोड करें। अधिकतम फ़ाइल आकार: 1 एमबी।", "ThankYouForContribution": "ABP समुदाय में योगदान के लिए धन्यवाद।", "GithubPost": "गीथब लेख", "GithubPostSubmitStepOne": "1. मार्कडाउन प्रारूप के साथ किसी भी सार्वजनिक GitHub रिपॉजिटरी पर एक लेख लिखें। उदाहरण ", @@ -144,6 +143,118 @@ "Volo.AbpIo.Domain:060002": "लेख सामग्री Github (\"{PostUrl}\") संसाधन से उपलब्ध नहीं है।", "Volo.AbpIo.Domain:060003": "कोई लेख सामग्री नहीं मिली!", "SeeMore": "और देखें", - "IConsentToMedium": "मैं https://medium.com/volosoft पर इस पोस्ट के प्रकाशन के लिए सहमति देता/देती हूं।" + "JoinTheABPCommunity": "एबीपी समुदाय से जुड़ें", + "ABPCommunityTalks": "एबीपी समुदाय वार्ता", + "LiveDemo": "लाइव डेमो", + "GetLicense": "लाइसेंस प्राप्त करें", + "GetStarted": "शुरू हो जाओ", + "SourceCode": "सोर्स कोड", + "LeaveComment": "टिप्पणी दें", + "ShowMore": "और दिखाओ", + "NoPublishedPostsYet": "अभी तक कोई प्रकाशित पोस्ट नहीं.", + "Name": "नाम", + "Surname": "उपनाम", + "WebSite": "वेबसाइट", + "FullURL": "पूरा यूआरएल", + "JobTitle": "नौकरी का नाम", + "Prev": "पिछला", + "Previous": "पहले का", + "Next": "अगला", + "Share": "शेयर करना", + "SortBy": "इसके अनुसार क्रमबद्ध करें", + "NoPublishedEventsYet": "अभी तक कोई प्रकाशित ईवेंट नहीं.", + "SubscribeYoutubeChannel": "यूट्यूब चैनल को सब्सक्राइब करें", + "Enum:EventType:0": "बाते", + "MemberNotPublishedPostYet": "इस सदस्य ने अभी तक कोई पोस्ट प्रकाशित नहीं की है.", + "TimeAgo": "{0} पहले", + "Discord_Page_JoinCommunityMessage": "एबीपी डिस्कॉर्ड समुदाय से जुड़ें", + "Discord_Page_Announce": "हमें एबीपी कम्युनिटी डिस्कॉर्ड सर्वर की घोषणा करते हुए खुशी हो रही है!", + "Discord_Page_Description_1": "एबीपी समुदाय पहले दिन से ही बढ़ रहा है। हम एक आधिकारिक एबीपी डिस्कोर्ड सर्वर बनाकर इसे अगले चरण में ले जाना चाहते थे ताकि एबीपी समुदाय त्वरित मैसेजिंग के चमत्कारों का उपयोग करके एक-दूसरे के साथ बातचीत कर सके।", + "Discord_Page_Description_2": "एबीपी कम्युनिटी डिस्कॉर्ड सर्वर वह जगह है जहां आप एबीपी फ्रेमवर्क का उपयोग करके अपनी रचनाएं प्रदर्शित कर सकते हैं, आपके लिए काम करने वाली युक्तियां साझा कर सकते हैं, एबीपी फ्रेमवर्क के बारे में नवीनतम समाचार और घोषणाओं के बारे में जानकारी प्राप्त कर सकते हैं, विचारों का आदान-प्रदान करने के लिए समुदाय के सदस्यों के साथ चैट कर सकते हैं और आनंद ले सकते हैं!", + "Discord_Page_Description_3": "यह एबीपी कम्युनिटी डिस्कॉर्ड सर्वर आधिकारिक है और एबीपी कोर टीम निगरानी के लिए सर्वर पर मौजूद है।", + "Discord_Page_JoinToServer": "एबीपी डिस्कॉर्ड सर्वर से जुड़ें", + "Events_Page_MetaTitle": "एबीपी सामुदायिक कार्यक्रम", + "Events_Page_MetaDescription": "एबीपी टीम द्वारा आयोजित लाइव शो, सामुदायिक सामग्री, डेमो, प्रश्नोत्तरी और एबीपी में क्या हो रहा है, इसके बारे में चर्चाओं से भरे आकस्मिक सत्र हैं।", + "Events_Page_Title": "एबीपी समुदाय वार्ता", + "Members_Page_WritingFromUser": "एबीपी समुदाय पर {0} से लेखन पढ़ें।", + "Post_Create_Page_MetaTitle": "नई पोस्ट", + "Post_Create_Page_MetaDescription": "एबीपी ढांचे के बारे में अपने अनुभव साझा करने और एबीपी समुदाय में योगदान देने के लिए अपनी पोस्ट बनाएं।", + "Post_Create_Page_CreateNewPost": "नई पोस्ट बनाएं", + "Post_Index_Page_MetaDescription": "एबीपी समुदाय का उद्देश्य उन डेवलपर्स के लिए एक योगदान वातावरण बनाना है जो एबीपी ढांचे का उपयोग करते हैं।", + "Layout_Title": "{0} | एबीपी समुदाय", + "Layout_MetaDescription": "एबीपी फ्रेमवर्क, .NET और सॉफ्टवेयर विकास के लिए एक केंद्र। लेख, ट्यूटोरियल, समाचार तक पहुंचें और एबीपी समुदाय में योगदान करें।", + "Index_Page_CommunityIntroduction": "यह ABP फ्रेमवर्क, .NET और सॉफ्टवेयर डेवलपमेंट का केंद्र है। आप लेख पढ़ सकते हैं, वीडियो ट्यूटोरियल देख सकते हैं, एबीपी की विकास प्रगति और एबीपी से संबंधित घटनाओं के बारे में जानकारी प्राप्त कर सकते हैं, अन्य डेवलपर्स की मदद कर सकते हैं और एबीपी समुदाय के साथ अपनी विशेषज्ञता साझा कर सकते हैं।", + "TagsInArticle": "लेख में टैग", + "IConsentToMedium": "मैं https://medium.com/volosoft पर इस पोस्ट के प्रकाशन के लिए सहमति देता/देती हूं।", + "SearchResultsFor": ""{0}" के लिए खोज परिणाम", + "SeeMoreVideos": "और वीडियो देखें", + "DiscordPageTitle": "एबीपी कलह समुदाय", + "ViewVideo": "वीडियो देखें", + "AbpCommunityTitleContent": "एबीपी समुदाय - ओपन सोर्स एबीपी फ्रेमवर्क", + "CommunitySlogan": "एबीपी प्रेमियों के लिए एक अनोखा सामुदायिक मंच", + "RaffleIsNotActive": "रैफ़ल सक्रिय नहीं है", + "YouAreAlreadyJoinedToThisRaffle": "आप पहले से ही इस रैफ़ल में शामिल हो चुके हैं", + "InvalidSubscriptionCode": "अमान्य सदस्यता कोड", + "Raffle:{0}": "रैफ़ल: {0}", + "Join": "जोड़ना", + "Leave": "छुट्टी", + "LoginToJoin": "शामिल होने के लिए लॉगिन करें", + "ToEnd:": "कहानी समाप्त होना:", + "ToStart:": "आरंभ करना:", + "days": "दिन", + "hrs": "घंटे", + "min": "मिन", + "sec": "सेकंड", + "Winners": "विजेताओं", + "To{0}LuckyWinners": "{0} भाग्यशाली विजेताओं को", + "ActiveRaffles": "सक्रिय रैफल्स", + "UpcomingRaffles": "आगामी रैफल्स", + "CompletedRaffles": "रैफल्स पूर्ण", + "NoActiveRaffleTitle": "इस समय कोई सक्रिय रैफ़ल उपलब्ध नहीं है.", + "NoActiveRaffleDescription": "इस समय कोई सक्रिय रैफ़ल उपलब्ध नहीं है.", + "RaffleSubscriptionCodeInputMessage": "इस रैफ़ल के लिए एक पंजीकरण कोड की आवश्यकता है। कृपया नीचे पंजीकरण कोड दर्ज करें:", + "RaffleSubscriptionCodeInputErrorMessage": "पंजीकरण कोड ग़लत है. कृपया पुन: प्रयास करें।", + "GoodJob!": "अच्छा काम!", + "RaffleJoinSuccessMessage": "आप रैफ़ल के लिए सफलतापूर्वक पंजीकृत हैं। यदि आप पुरस्कार जीतते हैं तो आपको ईमेल के माध्यम से सूचित किया जाएगा!", + "RaffleLoginAndRegisterMessage": "रैफ़ल में शामिल होने के लिए आपको साइन इन करना चाहिए. यदि आपने अभी तक पंजीकरण नहीं कराया है तो आप निःशुल्क खाता बना सकते हैं।", + "Ok": "ठीक है", + "SeeDetails": "विस्तृत जानकारी देखें", + "WaitingForTheDraw": "ड्रा का इंतजार है", + "AllAttendees": "सभी उपस्थितगण", + "SeeRaffleDetail": "रैफ़ल विवरण देखें", + "SeeRaffle": "रैफ़ल देखें", + "ParticipationIsComplete!": "भागीदारी पूरी हो गई है!", + "ABPCoreDevelopmentTeam": "एबीपी कोर डेवलपमेंट टीम", + "RegisterTheEvent": "ईवेंट पंजीकृत करें", + "GoToConferencePage": "कॉन्फ़्रेंस पृष्ठ पर जाएँ", + "BuyTicket": "टिकट खरीदें", + "SeeEvent": "घटना देखें", + "PreviousEvents": "पिछली घटनाएँ", + "OtherLiveEvents": "अन्य लाइव इवेंट", + "SponsoredConferences": "प्रायोजित सम्मेलन", + "SponsoredConferencesDescription": "हम सॉफ्टवेयर डेवलपर्स के लिए .NET समुदायों और आयोजनों का समर्थन करने का सम्मान कर रहे हैं।", + "UpcomingEvents": "आगामी कार्यक्रम", + "UpcomingCommunityTalkEventDescription": "एबीपी टीम द्वारा आयोजित लाइव शो, सामुदायिक सामग्री, डेमो, प्रश्नोत्तरी और एबीपी में क्या हो रहा है, इसके बारे में चर्चाओं से भरे आकस्मिक सत्र हैं।", + "UpcomingConferenceEventDescription": "ABP .NET सम्मेलन .NET डेवलपर समुदाय के लिए एक साथ आने और .NET दुनिया, सामान्य सॉफ्टवेयर विकास प्रथाओं और ओपन सोर्स एबीपी फ्रेमवर्क के बारे में बातचीत सुनने के लिए एक आभासी कार्यक्रम है।", + "LastOneYear": "पिछले 1 वर्ष", + "AllTimes": "सभी समय", + "TopContributors": "शीर्ष योगदानकर्ता", + "{0}Posts": "{0} पोस्ट", + "LATESTPOSTS": "नवीनतम पोस्ट", + "NoContributorsFound": "कोई योगदानकर्ता नहीं मिला!", + "LatestPost": "नवीनतम लेख", + "MEMBERSINCE{0}": "{0} से सदस्य", + "CopyLink": "लिंक की प्रतिलिपि करें", + "ShareOnTwitter": "ट्विटर पर साझा करें", + "ShareOnLinkedIn": "लिंक्डइन पर साझा करें", + "MoreFrom{0}": "{0} से अधिक", + "SeeAllFrom{0}": "{0} से सभी देखें", + "MostWatched": "सबसे ज्यादा देखा गया", + "Articles({0})": "आलेख ({0})", + "Videos({0})": "वीडियो ({0})", + "LatestArticles": "नवीनतम लेख", + "RaffleHeader": "नमस्ते एबीपी समुदाय सदस्य!", + "RafflesInfo": "
यह रैफ़ल पेज है जो एक सक्रिय समुदाय सदस्य होने के लिए आपके प्रति हमारी सराहना दिखाने के लिए समर्पित है। हम एबीपी सामुदायिक वार्ता , एबीपी .NET सम्मेलन करते हैं, .NET से संबंधित कार्यक्रमों में भाग लेते हैं या प्रायोजित करते हैं जिसमें हम कुछ उपहार देते हैं।

आप आगामी रैफ़ल देखने, उनमें भाग लेने, या विजेताओं सहित हमारे द्वारा निकाले गए पिछले रैफ़ल देखने के लिए इस पृष्ठ का अनुसरण कर सकते हैं।

सक्रिय सदस्य बनने के लिए धन्यवाद! आगामी रैफ़ल में मिलते हैं।", + "RafflesInfoTitle": "एबीपी कम्युनिटी रैफल्स" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/hr.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/hr.json new file mode 100644 index 0000000000..521cc0ebb0 --- /dev/null +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/hr.json @@ -0,0 +1,260 @@ +{ + "culture": "hr", + "texts": { + "Permission:CommunityPost": "Objava zajednice", + "Permission:Edit": "Uredi", + "Waiting": "Čekanje", + "Approved": "Odobreno", + "Rejected": "Odbijen", + "Wait": "Čekati", + "Approve": "Odobriti", + "Reject": "Odbiti", + "ReadPost": "Pročitaj post", + "Status": "Status", + "ContentSource": "Izvor sadržaja", + "Details": "pojedinosti", + "Title": "Titula", + "CreationTime": "Vrijeme stvaranja", + "Save": "Uštedjeti", + "SameUrlAlreadyExist": "Isti url već postoji ako želite dodati ovaj post, trebate promijeniti url!", + "UrlIsNotValid": "URL nije valjan.", + "UrlNotFound": "Url nije pronađen.", + "UrlContentNotFound": "URL sadržaj nije pronađen.", + "Summary": "Sažetak", + "MostRead": "Najčitaniji", + "Latest": "Najnoviji", + "ContributeAbpCommunity": "Doprinesite ABP zajednici", + "SubmitYourPost": "Pošaljite svoju objavu", + "ContributionGuide": "Vodič za doprinose", + "BugReport": "Izvješće o pogrešci", + "SeeAllPosts": "Pogledajte sve postove", + "WelcomeToABP": "Dobrodošli u ABP", + "EmailNotValid": "Unesite važeću adresu e-pošte.", + "FeatureRequest": "Zahtjev za značajku", + "CreatePostTitleInfo": "Naslov posta koji će biti prikazan na popisu postova.", + "CreatePostSummaryInfo": "Kratki sažetak posta koji će biti prikazan na popisu postova. Najveća duljina: {0}", + "CreatePostCoverInfo": "Za stvaranje učinkovite objave dodajte naslovnu fotografiju. Učitajte slike omjera 16:9 za najbolji prikaz.
Maksimalna veličina datoteke: 1 MB.", + "ThisExtensionIsNotAllowed": "Ovo proširenje nije dopušteno.", + "TheFileIsTooLarge": "Datoteka je prevelika.", + "GoToThePost": "Idi na Post", + "GoToTheVideo": "Idite na Video", + "Contribute": "Doprinesite", + "OverallProgress": "Sveukupni napredak", + "Done": "Gotovo", + "Open": "Otvoren", + "Closed": "Zatvoreno", + "RecentQuestionFrom": "Nedavno pitanje od {0}", + "Stackoverflow": "Stackoverflow", + "Votes": "glasova", + "Answer": "Odgovor", + "Views": "pogleda", + "Answered": "Odgovoreno", + "WaitingForYourAnswer": "Čekam tvoj odgovor", + "Asked": "pitao", + "AllQuestions": "Sva pitanja", + "NextVersion": "Sljedeća verzija", + "MilestoneErrorMessage": "Nije moguće dobiti pojedinosti o trenutnoj prekretnici s Githuba.", + "QuestionItemErrorMessage": "Ne mogu dobiti najnovije pojedinosti o pitanju od Stackoverflowa.", + "Oops": "Ups!", + "CreatePostSuccessMessage": "Objava je uspješno poslana. Bit će objavljen nakon pregleda administratora stranice.", + "Browse": "pretraživati", + "CoverImage": "Naslovna slika", + "ShareYourExperiencesWithTheABPFramework": "Podijelite svoja iskustva s ABP okvirom!", + "Optional": "Neobavezno", + "UpdateUserWebSiteInfo": "Primjer: https://johndoe.com", + "UpdateUserTwitterInfo": "Primjer: johndoe", + "UpdateUserGithubInfo": "Primjer: johndoe", + "UpdateUserLinkedinInfo": "Primjer: https://www.linkedin.com/...", + "UpdateUserCompanyInfo": "Primjer: Volosoft", + "UpdateUserJobTitleInfo": "Primjer: programer softvera", + "UserName": "Korisničko ime", + "Company": "Društvo", + "PersonalWebsite": "Osobna web stranica", + "RegistrationDate": "Datum registracije", + "Social": "Društveni", + "Biography": "Biografija", + "HasNoPublishedPostsYet": "još nema objavljenih postova", + "Author": "Autor", + "LatestGithubAnnouncements": "Najnovije Github najave", + "SeeAllAnnouncements": "Pogledajte sve najave", + "LatestBlogPost": "Najnoviji post na blogu", + "Edit": "Uredi", + "ProfileImageChange": "Promijeni profilnu sliku", + "BlogItemErrorMessage": "Nije moguće dobiti najnovije pojedinosti o postu na blogu od ABP-a.", + "PlannedReleaseDate": "Planirani datum izlaska", + "CommunityPostRequestErrorMessage": "Nije moguće dobiti najnoviji zahtjev za objavu s Githuba.", + "PostRequestFromGithubIssue": "Trenutno nema zahtjeva za objavu.", + "LatestPosts": "Najnovije objave", + "ArticleRequests": "Zatražite sadržaj", + "ArticleRequestsDescription": "Želite li ovdje vidjeti određeni sadržaj? Možete zatražiti od zajednice da ga izradi!", + "LatestContentRequests": "Najnoviji zahtjevi za sadržaj", + "AllPostRequests": "Pogledajte sve zahtjeve za objavu", + "SubscribeToTheNewsletter": "Pretplatite se na Newsletter", + "NewsletterEmailDefinition": "Dobijte informacije o događanjima u ABP-u, kao što su nova izdanja, besplatni izvori, postovi i još mnogo toga.", + "NoThanks": "Ne hvala", + "MaybeLater": "Možda kasnije", + "JoinOurPostNewsletter": "Pridružite se našem post newsletteru", + "Community": "Zajednica", + "Marketing": "Marketing", + "CommunityPrivacyPolicyConfirmation": "Slažem se s Uvjetima i odredbama i Politikom privatnosti .", + "PostRequestMessageTitle": "Otvorite problem na GitHubu da zatražite objavu/vodič koji želite vidjeti na ovoj web stranici.", + "PostRequestMessageBody": "Evo popisa objava koje zajednica traži. Želite li napisati traženi post? Kliknite na zahtjev i pridružite se raspravi.", + "Language": "Jezik", + "CreatePostLanguageInfo": "Jezik za sadržaj objave.", + "VideoPost": "Video post", + "Post": "Post", + "Read": "Čitati", + "CreateGithubPostUrlInfo": "Puni URL Markdown datoteke na GitHubu ( primjer ).", + "CreateVideoContentUrlInfo": "Izvorni Youtube URL objave.", + "CreateExternalPostUrlInfo": "Izvorni vanjski URL objave.", + "VideoContentForm": "Pošaljite video na YouTube", + "GithubPostForm": "Pošalji objavu na GitHub", + "ExternalPostForm": "Pošaljite vanjski sadržaj", + "HowToPost": "Kako objaviti?", + "Posts": "Postovi", + "VideoUrl": "URL videozapisa", + "GithubPostUrl": "URL GitHub objave", + "ExternalPostUrl": "URL vanjske objave", + "ThankYouForContribution": "Hvala vam na doprinosu ABP zajednici.", + "GithubPost": "GitHub post", + "GithubPostSubmitStepOne": "1. Napišite post na bilo kojem javnom GitHub repozitoriju s formatom Markdown. primjer", + "GithubPostSubmitStepTwo": "2. Pošaljite URL svoje objave pomoću obrasca.", + "GithubPostSubmitStepThree": "3. Vaš će post biti prikazan na ovoj web stranici.", + "YoutubeVideo": "Youtube video", + "YoutubeVideoSubmitStepOne": "1. Objavite svoj video na YouTubeu.", + "YoutubeVideoSubmitStepTwo": "2. Pošaljite URL videozapisa pomoću obrasca.", + "YoutubeVideoSubmitStepThree": "3. Posjetitelji će moći gledati vaš video sadržaj izravno na ovoj web stranici.", + "ExternalContent": "Vanjski sadržaj", + "ExternalContentSubmitStepOne": "1. Stvorite sadržaj na bilo kojoj javnoj platformi (medij, vlastiti blog ili gdje god želite).", + "ExternalContentSubmitStepTwo": "2. Pošaljite URL svog sadržaja pomoću obrasca.", + "ExternalContentSubmitStepThree": "3. Posjetitelji se preusmjeravaju na sadržaj na originalnoj web stranici.", + "ChooseYourContentType": "Odaberite način na koji želite dodati svoj sadržaj.", + "PostContentViaGithub": "Želim dodati svoju objavu s GitHubom u skladu s pravilima markdowna.", + "PostContentViaYoutube": "Ovdje želim podijeliti svoje videozapise dostupne na Youtubeu .", + "PostContentViaExternalSource": "Ovdje želim dodati sadržaj koji sam objavio na drugoj platformi .", + "GitHubUserNameValidationMessage": "Vaše Github korisničko ime ne smije sadržavati razmake, provjerite je li vaše Github korisničko ime ispravno.", + "PersonalSiteUrlValidationMessage": "URL vašeg osobnog web-mjesta ne smije sadržavati razmake, provjerite je li URL vašeg osobnog web-mjesta točan.", + "TwitterUserNameValidationMessage": "Vaše korisničko ime za Twitter ne smije sadržavati razmake, provjerite je li vaše korisničko ime za Twitter ispravno.", + "LinkedinUrlValidationMessage": "Vaš Linkedin URL ne smije sadržavati razmake, provjerite je li vaš Linkedin URL točan.", + "NoPostsFound": "Nema pronađenih postova!", + "SearchInPosts": "Traži u objavama...", + "MinimumSearchContent": "Morate unijeti najmanje 3 znaka!", + "Volo.AbpIo.Domain:060001": "Izvorni URL("{PostUrl}") nije Github URL", + "Volo.AbpIo.Domain:060002": "Sadržaj objave nije dostupan s resursa Github("{PostUrl}").", + "Volo.AbpIo.Domain:060003": "Nije pronađen sadržaj objave!", + "SeeMore": "Vidi više", + "JoinTheABPCommunity": "Pridružite se ABP zajednici", + "ABPCommunityTalks": "Razgovori ABP zajednice", + "LiveDemo": "Demo uživo", + "GetLicense": "Nabavite licencu", + "GetStarted": "Započnite", + "SourceCode": "Izvorni kod", + "LeaveComment": "Ostavite komentar", + "ShowMore": "Prikaži više", + "NoPublishedPostsYet": "Još nema objavljenih postova.", + "Name": "Ime", + "Surname": "Prezime", + "WebSite": "Web stranica", + "FullURL": "Puni URL", + "JobTitle": "Naziv radnog mjesta", + "Prev": "Pret", + "Previous": "Prethodno", + "Next": "Sljedeći", + "Share": "Udio", + "SortBy": "Poredaj po", + "NoPublishedEventsYet": "Još nema objavljenih događaja.", + "SubscribeYoutubeChannel": "Pretplatite se na Youtube kanal", + "Enum:EventType:0": "Razgovori", + "MemberNotPublishedPostYet": "Ovaj član još nije objavio nijedan post.", + "TimeAgo": "prije {0}", + "Discord_Page_JoinCommunityMessage": "Pridružite se ABP Discord zajednici", + "Discord_Page_Announce": "Sretni smo što možemo najaviti ABP Community Discord Server!", + "Discord_Page_Description_1": "ABP zajednica raste od prvog dana. Htjeli smo napraviti sljedeći korak stvaranjem službenog ABP Discord poslužitelja kako bi ABP zajednica mogla komunicirati jedna s drugom koristeći čuda instant poruka.", + "Discord_Page_Description_2": "ABP Community Discord Server je mjesto gdje možete prikazati svoje kreacije koristeći ABP Framework, podijeliti savjete koji su vam pomogli, saznati najnovije vijesti i najave o ABP Frameworku, samo razgovarati s članovima zajednice za razmjenu ideja i zabaviti se!", + "Discord_Page_Description_3": "Ovaj ABP Community Discord Server je službeni s ABP Core Teamom koji je prisutan na poslužitelju za praćenje.", + "Discord_Page_JoinToServer": "Pridružite se ABP Discord poslužitelju", + "Events_Page_MetaTitle": "ABP događaji zajednice", + "Events_Page_MetaDescription": "Emisije uživo, koje vodi tim ABP-a, ležerne su sesije pune sadržaja zajednice, demonstracija, pitanja i odgovora i rasprava o tome što se događa u ABP-u.", + "Events_Page_Title": "Razgovori ABP zajednice", + "Members_Page_WritingFromUser": "Pročitajte pisanje {0} na ABP zajednici.", + "Post_Create_Page_MetaTitle": "Nova objava", + "Post_Create_Page_MetaDescription": "Napravite svoju objavu za dijeljenje svojih iskustava o ABP okviru i doprinos ABP zajednici.", + "Post_Create_Page_CreateNewPost": "Napravi novi post", + "Post_Index_Page_MetaDescription": "Svrha ABP zajednice je stvoriti okruženje doprinosa za programere koji koriste ABP okvir.", + "Layout_Title": "{0} | ABP zajednica", + "Layout_MetaDescription": "Središte za ABP Framework, .NET i razvoj softvera. Pristupite člancima, uputama, vijestima i doprinesite ABP zajednici.", + "Index_Page_CommunityIntroduction": "Ovo je središte za ABP Framework, .NET i razvoj softvera. Možete čitati članke, gledati video upute, informirati se o napretku razvoja ABP-a i događajima povezanim s ABP-om, pomoći drugim programerima i podijeliti svoju stručnost s ABP zajednicom.", + "TagsInArticle": "Oznake u članku", + "IConsentToMedium": "Pristajem na objavu ovog posta na https://medium.com/volosoft.", + "SearchResultsFor": "Rezultati pretraživanja za "{0}"", + "SeeMoreVideos": "Pogledajte više videa", + "DiscordPageTitle": "ABP Discord zajednica", + "ViewVideo": "Pogledaj Video", + "AbpCommunityTitleContent": "ABP zajednica - Open Source ABP Framework", + "CommunitySlogan": "Jedinstvena platforma zajednice za ljubitelje ABP-a", + "RaffleIsNotActive": "Nagradna igra nije aktivna", + "YouAreAlreadyJoinedToThisRaffle": "Već ste se pridružili ovoj nagradnoj igri", + "InvalidSubscriptionCode": "Nevažeći kod pretplate", + "Raffle:{0}": "Izvlačenje: {0}", + "Join": "Pridružiti", + "Leave": "Napustiti", + "LoginToJoin": "Prijavite se za pridruživanje", + "ToEnd:": "Do kraja:", + "ToStart:": "Početi:", + "days": "dana", + "hrs": "sati", + "min": "min", + "sec": "sek", + "Winners": "Pobjednici", + "To{0}LuckyWinners": "za {0} sretnih dobitnika", + "ActiveRaffles": "Aktivna nagradna igra", + "UpcomingRaffles": "Nadolazeće nagradne igre", + "CompletedRaffles": "Završene nagradne igre", + "NoActiveRaffleTitle": "Trenutno nije dostupna aktivna nagradna igra.", + "NoActiveRaffleDescription": "Trenutno nije dostupna aktivna nagradna igra.", + "RaffleSubscriptionCodeInputMessage": "Ova nagradna igra zahtijeva registracijski kod. Unesite registracijski kod ispod:", + "RaffleSubscriptionCodeInputErrorMessage": "Registracijski kod je netočan. Molim te pokušaj ponovno.", + "GoodJob!": "Dobar posao!", + "RaffleJoinSuccessMessage": "Uspješno ste registrirani za nagradnu igru. O osvajanju nagrade bit ćete obaviješteni putem e-pošte!", + "RaffleLoginAndRegisterMessage": "Morate se prijaviti da biste se pridružili nagradnoj igri. Račun možete kreirati besplatno ako se još niste registrirali.", + "Ok": "U redu", + "SeeDetails": "Pogledaj detalje", + "WaitingForTheDraw": "Čeka se izvlačenje", + "AllAttendees": "Svi Prisutni", + "SeeRaffleDetail": "Pogledajte detalje nagradne igre", + "SeeRaffle": "Vidi Raffle", + "ParticipationIsComplete!": "Sudjelovanje je završeno!", + "ABPCoreDevelopmentTeam": "ABP glavni razvojni tim", + "RegisterTheEvent": "Prijavite događaj", + "GoToConferencePage": "Idite na stranicu konferencije", + "BuyTicket": "Kupi ulaznicu", + "SeeEvent": "Vidi Događaj", + "PreviousEvents": "Prethodni događaji", + "OtherLiveEvents": "Ostali događaji uživo", + "SponsoredConferences": "Sponzorirane konferencije", + "SponsoredConferencesDescription": "Čast nam je podržati .NET zajednice i događaje za programere softvera.", + "UpcomingEvents": "Nadolazeći događaji", + "UpcomingCommunityTalkEventDescription": "Emisije uživo, koje vodi tim ABP-a, ležerne su sesije pune sadržaja zajednice, demonstracija, pitanja i odgovora i rasprava o tome što se događa u ABP-u.", + "UpcomingConferenceEventDescription": "ABP .NET konferencija je virtualni događaj za zajednicu .NET Developera na kojoj se okupljaju i slušaju razgovore o .NET svijetu, uobičajenim praksama razvoja softvera i open source ABP Frameworku.", + "LastOneYear": "Posljednja 1 godina", + "AllTimes": "Sva vremena", + "TopContributors": "Najaktivniji suradnici", + "{0}Posts": "{0} postova", + "LATESTPOSTS": "NAJNOVIJE OBJAVE", + "NoContributorsFound": "Nije pronađen nijedan suradnik!", + "LatestPost": "Najnoviji post", + "MEMBERSINCE{0}": "ČLAN OD {0}", + "CopyLink": "Kopiraj link", + "ShareOnTwitter": "Podijelite na Twitteru", + "ShareOnLinkedIn": "Podijelite na LinkedInu", + "MoreFrom{0}": "Više od {0}", + "SeeAllFrom{0}": "Vidi sve od {0}", + "MostWatched": "Najgledaniji", + "Articles({0})": "Članci ({0})", + "Videos({0})": "Videozapisi ({0})", + "LatestArticles": "Najnoviji članci", + "RaffleHeader": "Pozdrav članu ABP zajednice!", + "RafflesInfo": "
Ovo je stranica za nagradnu igru namijenjena da vam pokažemo našu zahvalnost što ste aktivni član zajednice. Vodimo razgovore o ABP zajednici , ABP .NET konferenciji , prisustvujemo ili sponzoriramo događaje vezane uz .NET na kojima dijelimo neke darove.

Možete pratiti ovu stranicu kako biste vidjeli nadolazeće nagradne igre, prisustvovali im ili vidjeli prethodne nagradne igre koje izvlačimo uključujući dobitnike.

Hvala vam što ste aktivan član! Vidimo se u nadolazećim nagradnim igrama.", + "RafflesInfoTitle": "Izvlačenje nagradne igre zajednice ABP" + } +} \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/hu.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/hu.json index 71d65ec88f..6829656470 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/hu.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/hu.json @@ -13,7 +13,6 @@ "Status": "Állapot", "ContentSource": "Tartalomforrás", "Details": "Részletek", - "Url": "URL", "Title": "Cím", "CreationTime": "Teremtés ideje", "Save": "Megment", @@ -38,6 +37,7 @@ "ThisExtensionIsNotAllowed": "Ez a bővítmény nem engedélyezett.", "TheFileIsTooLarge": "A fájl túl nagy.", "GoToThePost": "Ugrás a cikkre", + "GoToTheVideo": "Ugrás a Videóhoz", "Contribute": "Hozzájárul", "OverallProgress": "Összesített előrehaladás", "Done": "Kész", @@ -185,6 +185,76 @@ "Layout_MetaDescription": "Az ABP Community egy olyan környezet, ahol az emberek megoszthatnak bejegyzéseket az ABP keretrendszerről, és követhetik a projekteket.", "Index_Page_CommunityIntroduction": "Ez az ABP Framework, a .NET és a szoftverfejlesztés központja. Elolvashatja a cikkeket, megnézheti az oktatóvideókat, tájékozódhat az ABP fejlesztési előrehaladásáról és az ABP-vel kapcsolatos eseményekről, segíthet más fejlesztőknek, és megoszthatja szakértelmét az ABP közösséggel.", "TagsInArticle": "Címkék a cikkben", - "IConsentToMedium": "Hozzájárulok a bejegyzés közzétételéhez a https://medium.com/volosoft oldalon." + "IConsentToMedium": "Hozzájárulok a bejegyzés közzétételéhez a https://medium.com/volosoft oldalon.", + "SearchResultsFor": "Keresési eredmények a következőre : "{0}"", + "SeeMoreVideos": "További videók megtekintése", + "DiscordPageTitle": "ABP Discord közösség", + "ViewVideo": "Videó megtekintése", + "AbpCommunityTitleContent": "ABP Community – Nyílt forráskódú ABP-keretrendszer", + "CommunitySlogan": "Egyedülálló közösségi platform az ABP szerelmeseinek", + "RaffleIsNotActive": "A tombola nem aktív", + "YouAreAlreadyJoinedToThisRaffle": "Már csatlakoztál ehhez a nyereményjátékhoz", + "InvalidSubscriptionCode": "Érvénytelen előfizetési kód", + "Raffle:{0}": "Tombola: {0}", + "Join": "Csatlakozik", + "Leave": "Elhagy", + "LoginToJoin": "A csatlakozáshoz jelentkezzen be", + "ToEnd:": "Befejezni:", + "ToStart:": "Kezdeni:", + "days": "napok", + "hrs": "óra", + "min": "min", + "sec": "mp", + "Winners": "Nyertesek", + "To{0}LuckyWinners": "{0} szerencsés nyertesnek", + "ActiveRaffles": "Aktív tombolasorsolás", + "UpcomingRaffles": "Közelgő tombolák", + "CompletedRaffles": "Befejezett tombola", + "NoActiveRaffleTitle": "Jelenleg nincs aktív nyereményjáték.", + "NoActiveRaffleDescription": "Jelenleg nincs aktív nyereményjáték.", + "RaffleSubscriptionCodeInputMessage": "A sorsoláshoz regisztrációs kód szükséges. Kérjük, írja be az alábbi regisztrációs kódot:", + "RaffleSubscriptionCodeInputErrorMessage": "A regisztrációs kód helytelen. Kérlek próbáld újra.", + "GoodJob!": "Szép munka!", + "RaffleJoinSuccessMessage": "Sikeresen regisztráltál a nyereményjátékra. A nyeremény megnyeréséről e-mailben értesítünk!", + "RaffleLoginAndRegisterMessage": "A sorsoláson való részvételhez be kell jelentkeznie. Ingyenesen létrehozhat fiókot, ha még nem regisztrált.", + "Ok": "Rendben", + "SeeDetails": "Lásd a részleteket", + "WaitingForTheDraw": "Várjuk a sorsolást", + "AllAttendees": "Minden résztvevő", + "SeeRaffleDetail": "Lásd a nyereményjáték részleteit", + "SeeRaffle": "Lásd: Tombola", + "ParticipationIsComplete!": "A részvétel teljes!", + "ABPCoreDevelopmentTeam": "ABP Core Development Team", + "RegisterTheEvent": "Regisztrálja az Eseményt", + "GoToConferencePage": "Menjen a konferencia oldalára", + "BuyTicket": "Jegyet vásárolni", + "SeeEvent": "Lásd: Esemény", + "PreviousEvents": "Korábbi események", + "OtherLiveEvents": "Egyéb élő események", + "SponsoredConferences": "Szponzorált konferenciák", + "SponsoredConferencesDescription": "Megtiszteltetés számunkra, hogy támogathatjuk a .NET közösségeket és a szoftverfejlesztők számára szervezett eseményeket.", + "UpcomingEvents": "Közelgő események", + "UpcomingCommunityTalkEventDescription": "Az ABP Team által rendezett élő műsorok hétköznapi előadások, tele közösségi tartalommal, demókkal, kérdésekkel és válaszokkal, valamint az ABP-ben zajló eseményekről szóló vitákkal.", + "UpcomingConferenceEventDescription": "Az ABP .NET Konferencia egy virtuális esemény a .NET fejlesztői közösség számára, hogy összejöjjenek és hallgassanak a .NET világáról, a közös szoftverfejlesztési gyakorlatokról és a nyílt forráskódú ABP-keretrendszerről szóló előadásokat.", + "LastOneYear": "Utolsó 1 év", + "AllTimes": "Mindig", + "TopContributors": "Kiemelt közreműködők", + "{0}Posts": "{0} bejegyzés", + "LATESTPOSTS": "LEGUTÓBBI BEJEGYZÉSEK", + "NoContributorsFound": "Nem találhatók közreműködők!", + "LatestPost": "Utolsó poszt", + "MEMBERSINCE{0}": "TAG ÓTA: {0}", + "CopyLink": "Link másolása", + "ShareOnTwitter": "Oszd meg a Twitteren", + "ShareOnLinkedIn": "Oszd meg a LinkedIn-en", + "MoreFrom{0}": "Továbbiak innen: {0}", + "SeeAllFrom{0}": "Az összes megtekintése innen: {0}", + "MostWatched": "Legtöbbször nézett", + "Articles({0})": "Cikkek ({0})", + "Videos({0})": "Videók ({0})", + "LatestArticles": "Legfrissebb cikkek", + "RaffleHeader": "Kedves ABP közösségi tag!", + "RafflesInfo": "
Ez az a sorsolási oldal, amelynek célja, hogy kifejezzük hálánkat feléd, amiért aktív közösségi tag vagy. Az ABP Community Talks-okat , az ABP .NET konferenciákat szervezzük, részt veszünk vagy szponzorálunk olyan .NET-hez kapcsolódó eseményeket, amelyeken ajándékokat adunk.

Ezt az oldalt követheti, hogy megtekinthesse a közelgő sorsolásokat, részt vegyen azokon, vagy megtekinthesse korábbi sorsolásainkat, beleértve a nyerteseket is.

Köszönjük, hogy aktív tag vagy! Találkozunk a sorsoláson.", + "RafflesInfoTitle": "ABP közösségi tombola" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/is.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/is.json index b2b7496e10..c7ade090af 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/is.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/is.json @@ -13,7 +13,6 @@ "Status": "Staða", "ContentSource": "Efnisuppspretta", "Details": "Nákvæmar upplýsingar", - "Url": "Slóð", "Title": "Titill", "CreationTime": "Sköpunartími", "Save": "Vista", @@ -29,23 +28,22 @@ "ContributionGuide": "Leiðbeiningar fyrir framlög", "BugReport": "Tilkynna galla", "SeeAllPosts": "Sjá allar greinar", - "WelcomeToABPCommunity!": "Velkomin í ABP samfélagið!", - "MyProfile": "Minn prófíll", - "MyOrganizations": "Skipulagsheildirnar mínar", + "WelcomeToABP": "Velkomin í ABP", "EmailNotValid": "Sláðu inn gilt netfang.", "FeatureRequest": "Ósk um nýja virkni", "CreatePostTitleInfo": "Heiti færslunnar sem birtist á póstlistanum.", "CreatePostSummaryInfo": "Stutt samantekt á færslunni sem birtist á póstlistanum.", - "CreatePostCoverInfo": "Til að búa til áhrifaríka grein skaltu bæta við forsíðumynd. Hladdu upp 16: 9 myndhlutföllum fyrir besta útsýnið. Hámarks skráarstærð: 1MB.", + "CreatePostCoverInfo": "Til að búa til áhrifaríka færslu skaltu bæta við forsíðumynd. Hladdu upp 16: 9 myndhlutföllum fyrir besta útsýnið. Hámarks skráarstærð: 1MB.", "ThisExtensionIsNotAllowed": "Þessi viðbót er ekki leyfð.", "TheFileIsTooLarge": "Skráin er of stór.", "GoToThePost": "Farðu í greinina", + "GoToTheVideo": "Farðu í myndbandið", "Contribute": "Leggðu þitt af mörkum", "OverallProgress": "Heildarframfarir", "Done": "Búið", "Open": "Opin", "Closed": "Lokuð", - "LatestQuestionOnThe": "Nýjasta spurningin um", + "RecentQuestionFrom": "Nýleg spurning frá {0}", "Stackoverflow": "Stackoverflow", "Votes": "atkvæði", "Answer": "Svör", @@ -59,7 +57,7 @@ "QuestionItemErrorMessage": "Ekki var hægt að fá nýjustu upplýsingar um spurningu frá Stackoverflow.", "Oops": "Úbbs!", "CreatePostSuccessMessage": "Greininni hefur verið skilað. Hún verður birt eftir yfirferð frá vefstjóra.", - "ChooseCoverImage": "Veldu forsíðumynd...", + "Browse": "Skoðaðu", "CoverImage": "Forsíðumynd", "ShareYourExperiencesWithTheABPFramework": "Deildu reynslu þinni af ABP!", "Optional": "Valkvæmt", @@ -88,6 +86,8 @@ "PostRequestFromGithubIssue": "Það eru engar greinarbeiðnir núna.", "LatestPosts": "Nýjustu færslur", "ArticleRequests": "Greinarbeiðnir", + "ArticleRequestsDescription": "Viltu sjá ákveðið efni hér? Þú getur beðið samfélagið um að búa það til!", + "LatestContentRequests": "Nýjustu efnisbeiðnir", "AllPostRequests": "Sjá allar greinarbeiðnir", "SubscribeToTheNewsletter": "Gerast áskrifandi að Fréttabréfinu", "NewsletterEmailDefinition": "Fáðu upplýsingar um atburði í ABP eins og nýjar útgáfur, ókeypis heimildir, greinar og fleira.", @@ -115,7 +115,6 @@ "VideoUrl": "Videó slóð", "GithubPostUrl": "Github greina slóð", "ExternalPostUrl": "Ytri slóð á grein", - "CreatePostCoverInfo": "Til að búa til áhrifaríka færslu skaltu bæta við forsíðumynd. Hladdu upp 16: 9 myndhlutföllum fyrir besta útsýnið. Hámarks skráarstærð: 1MB.", "ThankYouForContribution": "Þakka þér fyrir að leggja þitt af mörkum til ABP samfélagsins.", "GithubPost": "Github Greinar", "GithubPostSubmitStepOne": " 1. Skrifaðu grein á hvaða opinbera GitHub geymslu sem er með markdown sniðinu. dæmi ", @@ -144,6 +143,118 @@ "Volo.AbpIo.Domain:060002": "Innihald greinar er ekki fáanlegt frá Github (\"{PostUrl} \") resoursum.", "Volo.AbpIo.Domain:060003": "Innihald greinar fannst ekki!", "SeeMore": "Sjá Meira", - "IConsentToMedium": "Ég samþykki birtingu þessarar færslu á https://medium.com/volosoft." + "JoinTheABPCommunity": "Skráðu þig í ABP samfélagið", + "ABPCommunityTalks": "ABP samfélagsviðræður", + "LiveDemo": "Sýning í beinni", + "GetLicense": "Fáðu leyfi", + "GetStarted": "Byrja", + "SourceCode": "Upprunakóði", + "LeaveComment": "Skildu eftir athugasemd", + "ShowMore": "Sýndu meira", + "NoPublishedPostsYet": "Engar birtar færslur ennþá.", + "Name": "Nafn", + "Surname": "Eftirnafn", + "WebSite": "Vefsíða", + "FullURL": "Full URL", + "JobTitle": "Starfsheiti", + "Prev": "Fyrri", + "Previous": "Fyrri", + "Next": "Næst", + "Share": "Deila", + "SortBy": "Raða eftir", + "NoPublishedEventsYet": "Engir birtir viðburðir ennþá.", + "SubscribeYoutubeChannel": "Gerast áskrifandi að Youtube rásinni", + "Enum:EventType:0": "Viðræður", + "MemberNotPublishedPostYet": "Þessi meðlimur hefur ekki birt neinar færslur ennþá.", + "TimeAgo": "fyrir {0} síðan", + "Discord_Page_JoinCommunityMessage": "Skráðu þig í ABP Discord Community", + "Discord_Page_Announce": "Við erum ánægð að tilkynna ABP Community Discord Server!", + "Discord_Page_Description_1": "ABP samfélagið hefur farið vaxandi frá fyrsta degi. Við vildum taka það í næsta skref með því að búa til opinberan ABP Discord netþjón svo ABP samfélagið geti átt samskipti sín á milli með því að nota undur spjallskilaboða.", + "Discord_Page_Description_2": "ABP Community Discord Server er staðurinn þar sem þú getur sýnt sköpun þína með ABP Framework, deilt ráðunum sem virkuðu fyrir þig, fylgst með nýjustu fréttum og tilkynningum um ABP Framework, bara spjallað við samfélagsmeðlimi til að skiptast á hugmyndum og skemmtu þér!", + "Discord_Page_Description_3": "Þessi ABP Community Discord Server er opinberi með ABP Core Team er til staðar á þjóninum til að fylgjast með.", + "Discord_Page_JoinToServer": "Skráðu þig í ABP Discord Server", + "Events_Page_MetaTitle": "ABP samfélagsviðburðir", + "Events_Page_MetaDescription": "Lifandi þættirnir, sem hýst eru af ABP teyminu, eru afslappaðir fundir fullir af samfélagsefni, kynningum, spurningum og svörum og umræðum um það sem er að gerast í ABP.", + "Events_Page_Title": "ABP samfélagsviðræður", + "Members_Page_WritingFromUser": "Lestu skrif frá {0} á ABP samfélaginu.", + "Post_Create_Page_MetaTitle": "Ný færsla", + "Post_Create_Page_MetaDescription": "Búðu til færsluna þína til að deila reynslu þinni um ABP ramma og leggja sitt af mörkum til ABP samfélagsins.", + "Post_Create_Page_CreateNewPost": "Búa til nýja færslu", + "Post_Index_Page_MetaDescription": "Tilgangur ABP Community er að búa til framlagsumhverfi fyrir forritara sem nota ABP ramma.", + "Layout_Title": "{0} | ABP samfélag", + "Layout_MetaDescription": "Miðstöð fyrir ABP Framework, .NET og hugbúnaðarþróun. Fáðu aðgang að greinum, námskeiðum, fréttum og leggðu þitt af mörkum til ABP samfélagsins.", + "Index_Page_CommunityIntroduction": "Þetta er miðstöð fyrir ABP Framework, .NET og hugbúnaðarþróun. Þú getur lesið greinarnar, horft á kennslumyndböndin, fengið upplýsingar um þróun ABP og ABP tengda viðburði, hjálpað öðrum forriturum og deilt sérþekkingu þinni með ABP samfélaginu.", + "TagsInArticle": "Merki í grein", + "IConsentToMedium": "Ég samþykki birtingu þessarar færslu á https://medium.com/volosoft.", + "SearchResultsFor": "Leitarniðurstöður fyrir „{0}“", + "SeeMoreVideos": "Sjá fleiri myndbönd", + "DiscordPageTitle": "ABP Discord samfélag", + "ViewVideo": "Skoða myndband", + "AbpCommunityTitleContent": "ABP Community - Open Source ABP Framework", + "CommunitySlogan": "Einstakur samfélagsvettvangur fyrir ABP Lovers", + "RaffleIsNotActive": "Happdrætti er ekki virkt", + "YouAreAlreadyJoinedToThisRaffle": "Þú hefur nú þegar tekið þátt í þessari happdrætti", + "InvalidSubscriptionCode": "Ógildur áskriftarkóði", + "Raffle:{0}": "Happdrætti: {0}", + "Join": "Vertu með", + "Leave": "Farðu", + "LoginToJoin": "Skráðu þig inn til að taka þátt", + "ToEnd:": "Að enda:", + "ToStart:": "Að byrja:", + "days": "daga", + "hrs": "klst", + "min": "mín", + "sec": "sek", + "Winners": "Sigurvegarar", + "To{0}LuckyWinners": "til {0} heppinna vinningshafa", + "ActiveRaffles": "Virkar happdrættir", + "UpcomingRaffles": "Happdrætti á næstunni", + "CompletedRaffles": "Happdrætti lokið", + "NoActiveRaffleTitle": "Engin virk happdrætti er í boði eins og er.", + "NoActiveRaffleDescription": "Engin virk happdrætti er í boði eins og er.", + "RaffleSubscriptionCodeInputMessage": "Þessi happdrætti krefst skráningarkóða. Vinsamlegast sláðu inn skráningarkóðann hér að neðan:", + "RaffleSubscriptionCodeInputErrorMessage": "Skráningarkóði er rangur. Vinsamlegast reyndu aftur.", + "GoodJob!": "Gott starf!", + "RaffleJoinSuccessMessage": "Þú hefur skráð þig í happdrættið. Þér verður tilkynnt með tölvupósti ef þú vinnur vinninginn!", + "RaffleLoginAndRegisterMessage": "Þú ættir að skrá þig inn til að taka þátt í happdrætti. Þú getur búið til reikning ókeypis ef þú hefur ekki skráð þig ennþá.", + "Ok": "Allt í lagi", + "SeeDetails": "Sjá nánari upplýsingar", + "WaitingForTheDraw": "Bíð eftir drættinum", + "AllAttendees": "Allir fundarmenn", + "SeeRaffleDetail": "Sjá upplýsingar um happdrætti", + "SeeRaffle": "Sjá Happdrætti", + "ParticipationIsComplete!": "Þátttöku er lokið!", + "ABPCoreDevelopmentTeam": "ABP Core Development Team", + "RegisterTheEvent": "Skráðu viðburðinn", + "GoToConferencePage": "Farðu á ráðstefnusíðu", + "BuyTicket": "Kaupa miða", + "SeeEvent": "Sjá Viðburður", + "PreviousEvents": "Fyrri viðburðir", + "OtherLiveEvents": "Aðrir viðburðir í beinni", + "SponsoredConferences": "Styrktar ráðstefnur", + "SponsoredConferencesDescription": "Okkur er heiður að styðja .NET samfélög og viðburði fyrir hugbúnaðarframleiðendur.", + "UpcomingEvents": "Viðburðir á næstunni", + "UpcomingCommunityTalkEventDescription": "Lifandi þættirnir, sem hýst eru af ABP teyminu, eru afslappaðir fundir fullir af samfélagsefni, kynningum, spurningum og svörum og umræðum um það sem er að gerast í ABP.", + "UpcomingConferenceEventDescription": "ABP .NET Conference er sýndarviðburður fyrir .NET þróunarsamfélagið til að koma saman og hlusta á erindi um .NET heiminn, algengar aðferðir við hugbúnaðarþróun og opinn uppspretta ABP Framework.", + "LastOneYear": "Síðasta 1 ár", + "AllTimes": "Allir tímar", + "TopContributors": "Helstu þátttakendur", + "{0}Posts": "{0} Færslur", + "LATESTPOSTS": "NÝJUSTU færslur", + "NoContributorsFound": "Engir þátttakendur fundust!", + "LatestPost": "Nýjasta færslan", + "MEMBERSINCE{0}": "MEÐLIÐUR SÍÐAN {0}", + "CopyLink": "Afritaðu hlekk", + "ShareOnTwitter": "Deildu á Twitter", + "ShareOnLinkedIn": "Deildu á LinkedIn", + "MoreFrom{0}": "Meira frá {0}", + "SeeAllFrom{0}": "Sjá allt frá {0}", + "MostWatched": "Mest áhorf", + "Articles({0})": "Greinar ({0})", + "Videos({0})": "Myndbönd ({0})", + "LatestArticles": "Nýjustu greinar", + "RaffleHeader": "Halló ABP samfélagsmeðlimur!", + "RafflesInfo": "
Þetta er happdrættisíðan sem er tileinkuð þér að þakka þér fyrir að vera virkur samfélagsmeðlimur. Við gerum ABP Community Talks , ABP .NET ráðstefnu , sækjum eða styrkjum .NET tengda viðburði þar sem við gefum nokkrar gjafir.

Þú getur fylgst með þessari síðu til að sjá komandi happdrætti, mæta á þær eða sjá fyrri happdrætti sem við drögum út, þar á meðal vinningshafa.

Þakka þér fyrir að vera virkur meðlimur! Sjáumst í komandi happdrætti.", + "RafflesInfoTitle": "ABP samfélagshappdrætti" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/it.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/it.json index 58dc93da4d..0c2d9f4648 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/it.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/it.json @@ -13,7 +13,6 @@ "Status": "Stato", "ContentSource": "Fonte contenuto", "Details": "Dettagli", - "Url": "Url", "Title": "Titolo", "CreationTime": "Orario di creazione", "Save": "Salva", @@ -29,23 +28,22 @@ "ContributionGuide": "Guida per i contributi", "BugReport": "Segnala un errore", "SeeAllPosts": "Vedi tutti i post", - "WelcomeToABPCommunity!": "Benvenuto nella comunità ABP!", - "MyProfile": "Il mio profilo", - "MyOrganizations": "Le mie organizzazioni", + "WelcomeToABP": "Benvenuti all'ABP", "EmailNotValid": "Si prega di inserire un indirizzo email valido.", "FeatureRequest": "Richiesta di funzionalità", "CreatePostTitleInfo": "Titolo del post da mostrare nell'elenco dei post.", "CreatePostSummaryInfo": "Un breve riassunto del post da mostrare nell'elenco dei post.", - "CreatePostCoverInfo": "Per creare un articolo efficace, aggiungi una foto di copertina. Carica immagini in formato 16: 9 per una visualizzazione migliore. Dimensione massima del file: 1MB.", + "CreatePostCoverInfo": "Per creare un post efficace, aggiungi una foto di copertina. Carica immagini in formato 16: 9 per una visualizzazione migliore. Dimensione massima del file: 1MB.", "ThisExtensionIsNotAllowed": "Questa estensione non è consentita.", "TheFileIsTooLarge": "Il file è troppo grande.", "GoToThePost": "Vai all'articolo", + "GoToTheVideo": "Vai al video", "Contribute": "Contribuisci", "OverallProgress": "Progressi generali", "Done": "Fatto", "Open": "Aperto", "Closed": "Chiuso", - "LatestQuestionOnThe": "Ultima domanda su", + "RecentQuestionFrom": "Domanda recente da {0}", "Stackoverflow": "Stackoverflow", "Votes": "voti", "Answer": "Risposta", @@ -59,7 +57,7 @@ "QuestionItemErrorMessage": "Impossibile ottenere gli ultimi dettagli della domanda da Stackoverflow.", "Oops": "Ops!", "CreatePostSuccessMessage": "L'articolo è stato inviato con successo. Verrà pubblicato dopo una revisione da parte dell'amministratore del sito.", - "ChooseCoverImage": "Scegli un'immagine di copertina...", + "Browse": "Navigare", "CoverImage": "Immagine di copertina", "ShareYourExperiencesWithTheABPFramework": "Condividi le tue esperienze con ABP Framework!", "Optional": "Opzionale", @@ -88,6 +86,8 @@ "PostRequestFromGithubIssue": "Non ci sono richieste di articoli al momento.", "LatestPosts": "ultimi post", "ArticleRequests": "Richieste di articoli", + "ArticleRequestsDescription": "Vuoi vedere un contenuto specifico qui? Puoi chiedere alla community di crearlo!", + "LatestContentRequests": "Ultime richieste di contenuti", "AllPostRequests": "Vedi tutte le richieste di articoli", "SubscribeToTheNewsletter": "Iscriviti alla Newsletter", "NewsletterEmailDefinition": "Ottieni informazioni sugli eventi in ABP come nuove versioni, fonti gratuite, articoli e altro ancora.", @@ -115,7 +115,6 @@ "VideoUrl": "URL video", "GithubPostUrl": "URL articolo Github", "ExternalPostUrl": "URL articolo esterno", - "CreatePostCoverInfo": "Per creare un post efficace, aggiungi una foto di copertina. Carica immagini in formato 16: 9 per una visualizzazione migliore. Dimensione massima del file: 1MB.", "ThankYouForContribution": "Grazie per aver contribuito alla comunità ABP.", "GithubPost": "Articolo GitHub", "GithubPostSubmitStepOne": "1. Scrivi un articolo su qualsiasi repository GitHub pubblico con il formato Markdown.esempio", @@ -144,6 +143,118 @@ "Volo.AbpIo.Domain:060002": "Il contenuto dell'articolo non è disponibile dalla risorsa Github(\"{PostUrl}\").", "Volo.AbpIo.Domain:060003": "Nessun contenuto dell'articolo trovato!", "SeeMore": "Vedi Altro", - "IConsentToMedium": "Acconsento alla pubblicazione di questo post su https://medium.com/volosoft." + "JoinTheABPCommunity": "Unisciti alla comunità ABP", + "ABPCommunityTalks": "Colloqui della comunità ABP", + "LiveDemo": "Dimostrazione dal vivo", + "GetLicense": "Ottieni una licenza", + "GetStarted": "Iniziare", + "SourceCode": "Codice sorgente", + "LeaveComment": "Lascia un commento", + "ShowMore": "Mostra di più", + "NoPublishedPostsYet": "Nessun post ancora pubblicato.", + "Name": "Nome", + "Surname": "Cognome", + "WebSite": "Sito web", + "FullURL": "URL completo", + "JobTitle": "Titolo di lavoro", + "Prev": "Prec", + "Previous": "Precedente", + "Next": "Prossimo", + "Share": "Condividere", + "SortBy": "Ordina per", + "NoPublishedEventsYet": "Nessun evento ancora pubblicato.", + "SubscribeYoutubeChannel": "Iscriviti al canale Youtube", + "Enum:EventType:0": "Discorsi", + "MemberNotPublishedPostYet": "Questo membro non ha ancora pubblicato alcun post.", + "TimeAgo": "{0} fa", + "Discord_Page_JoinCommunityMessage": "Unisciti alla comunità ABP Discord", + "Discord_Page_Announce": "Siamo lieti di annunciare ABP Community Discord Server!", + "Discord_Page_Description_1": "La comunità ABP è cresciuta sin dal primo giorno. Volevamo fare il passo successivo creando un server Discord ABP ufficiale in modo che la comunità ABP possa interagire tra loro utilizzando le meraviglie della messaggistica istantanea.", + "Discord_Page_Description_2": "ABP Community Discord Server è il luogo in cui puoi mostrare le tue creazioni utilizzando ABP Framework, condividere i suggerimenti che hanno funzionato per te, aggiornarti sulle ultime notizie e annunci su ABP Framework, semplicemente chattare con i membri della community per scambiare idee e divertirti!", + "Discord_Page_Description_3": "Questo ABP Community Discord Server è quello ufficiale con l'ABP Core Team presente sul server da monitorare.", + "Discord_Page_JoinToServer": "Unisciti al server ABP Discord", + "Events_Page_MetaTitle": "Eventi della comunità ABP", + "Events_Page_MetaDescription": "Gli spettacoli dal vivo, ospitati dal team ABP, sono sessioni informali piene di contenuti della community, demo, domande e risposte e discussioni su ciò che sta accadendo in ABP.", + "Events_Page_Title": "Colloqui della comunità ABP", + "Members_Page_WritingFromUser": "Leggi gli scritti di {0} sulla community ABP.", + "Post_Create_Page_MetaTitle": "Nuovo messaggio", + "Post_Create_Page_MetaDescription": "Crea il tuo post per condividere le tue esperienze sul framework ABP e contribuire alla community ABP.", + "Post_Create_Page_CreateNewPost": "Crea nuovo messaggio", + "Post_Index_Page_MetaDescription": "Lo scopo della comunità ABP è creare un ambiente di contributo per gli sviluppatori che utilizzano il framework ABP.", + "Layout_Title": "{0} | Comunità ABP", + "Layout_MetaDescription": "Un hub per ABP Framework, .NET e sviluppo software. Accedi ad articoli, tutorial, notizie e contribuisci alla comunità ABP.", + "Index_Page_CommunityIntroduction": "Questo è un hub per ABP Framework, .NET e sviluppo software. Puoi leggere gli articoli, guardare i tutorial video, essere informato sui progressi dello sviluppo di ABP e sugli eventi correlati ad ABP, aiutare altri sviluppatori e condividere la tua esperienza con la comunità ABP.", + "TagsInArticle": "Tag nell'articolo", + "IConsentToMedium": "Acconsento alla pubblicazione di questo post su https://medium.com/volosoft.", + "SearchResultsFor": "Risultati della ricerca per "{0}"", + "SeeMoreVideos": "Guarda altri video", + "DiscordPageTitle": "Comunità ABP Discord", + "ViewVideo": "Visualizza video", + "AbpCommunityTitleContent": "Comunità ABP - Framework ABP open source", + "CommunitySlogan": "Una piattaforma comunitaria unica per gli amanti dell'ABP", + "RaffleIsNotActive": "La lotteria non è attiva", + "YouAreAlreadyJoinedToThisRaffle": "Sei già iscritto a questa lotteria", + "InvalidSubscriptionCode": "Codice di abbonamento non valido", + "Raffle:{0}": "Lotteria: {0}", + "Join": "Giuntura", + "Leave": "Partire", + "LoginToJoin": "Accedi per iscriverti", + "ToEnd:": "Finire:", + "ToStart:": "Iniziare:", + "days": "giorni", + "hrs": "ore", + "min": "min", + "sec": "sez", + "Winners": "Vincitori", + "To{0}LuckyWinners": "a {0} fortunati vincitori", + "ActiveRaffles": "Lotterie attive", + "UpcomingRaffles": "Prossime lotterie", + "CompletedRaffles": "Lotterie completate", + "NoActiveRaffleTitle": "Al momento non è disponibile alcuna lotteria attiva.", + "NoActiveRaffleDescription": "Al momento non è disponibile alcuna lotteria attiva.", + "RaffleSubscriptionCodeInputMessage": "Questa lotteria richiede un codice di registrazione. Inserisci il codice di registrazione qui sotto:", + "RaffleSubscriptionCodeInputErrorMessage": "Il codice di registrazione non è corretto. Per favore riprova.", + "GoodJob!": "Buon lavoro!", + "RaffleJoinSuccessMessage": "Ti sei registrato con successo alla lotteria. Se vinci il premio sarai informato via email!", + "RaffleLoginAndRegisterMessage": "Dovresti accedere per partecipare a una lotteria. Puoi creare un account gratuitamente se non sei ancora registrato.", + "Ok": "OK", + "SeeDetails": "Guarda i detagli", + "WaitingForTheDraw": "In attesa del sorteggio", + "AllAttendees": "Tutti i partecipanti", + "SeeRaffleDetail": "Vedi i dettagli della lotteria", + "SeeRaffle": "Vedi Lotteria", + "ParticipationIsComplete!": "La partecipazione è completa!", + "ABPCoreDevelopmentTeam": "Team di sviluppo principale dell'ABP", + "RegisterTheEvent": "Registra l'Evento", + "GoToConferencePage": "Vai alla pagina della conferenza", + "BuyTicket": "Comprare un biglietto", + "SeeEvent": "Vedi Evento", + "PreviousEvents": "Eventi precedenti", + "OtherLiveEvents": "Altri eventi dal vivo", + "SponsoredConferences": "Conferenze sponsorizzate", + "SponsoredConferencesDescription": "Siamo onorati di supportare le comunità e gli eventi .NET per gli sviluppatori di software.", + "UpcomingEvents": "Prossimi eventi", + "UpcomingCommunityTalkEventDescription": "Gli spettacoli dal vivo, ospitati dal team ABP, sono sessioni informali piene di contenuti della community, demo, domande e risposte e discussioni su ciò che sta accadendo in ABP.", + "UpcomingConferenceEventDescription": "ABP .NET Conference è un evento virtuale in cui la comunità degli sviluppatori .NET può riunirsi e ascoltare discorsi sul mondo .NET, sulle pratiche comuni di sviluppo software e sul framework ABP open source.", + "LastOneYear": "Lo scorso 1 anno", + "AllTimes": "Sempre", + "TopContributors": "Collaboratori principali", + "{0}Posts": "{0} post", + "LATESTPOSTS": "ULTIMI POST", + "NoContributorsFound": "Nessun contributore trovato!", + "LatestPost": "L'ultimo post", + "MEMBERSINCE{0}": "MEMBRO DAL {0}", + "CopyLink": "Copia link", + "ShareOnTwitter": "Condividi su Twitter", + "ShareOnLinkedIn": "Condividi su LinkedIn", + "MoreFrom{0}": "Altro da {0}", + "SeeAllFrom{0}": "Vedi tutto da {0}", + "MostWatched": "I più visti", + "Articles({0})": "Articoli ({0})", + "Videos({0})": "Video ({0})", + "LatestArticles": "Articoli Recenti", + "RaffleHeader": "Ciao membro della comunità ABP!", + "RafflesInfo": "
Questa è la pagina della lotteria dedicata a mostrare il nostro apprezzamento nei tuoi confronti per essere un membro attivo della comunità. Organizziamo ABP Community Talks , ABP .NET Conference , partecipiamo o sponsorizziamo eventi relativi a .NET in cui regaliamo alcuni regali.

Puoi seguire questa pagina per vedere le prossime lotterie, parteciparvi o vedere le lotterie precedenti che estraiamo, compresi i vincitori.

Grazie per essere un membro attivo! Ci vediamo alle prossime lotterie.", + "RafflesInfoTitle": "Lotterie comunitarie ABP" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/nl.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/nl.json index f5a183deb5..f8ba6cf5f0 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/nl.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/nl.json @@ -13,7 +13,6 @@ "Status": "Toestand", "ContentSource": "Inhoud bron", "Details": "Details", - "Url": "URL", "Title": "Titel", "CreationTime": "Aanmaaktijd", "Save": "Opslaan", @@ -29,23 +28,22 @@ "ContributionGuide": "Bijdragegids", "BugReport": "Bug report", "SeeAllPosts": "Bekijk alle berichten", - "WelcomeToABPCommunity!": "Welkom bij de ABP-community!", - "MyProfile": "Mijn profiel", - "MyOrganizations": "Mijn organisaties", + "WelcomeToABP": "Welkom bij het ABP", "EmailNotValid": "Vul een geldig e-mailadres in.", "FeatureRequest": "Functieverzoek:", "CreatePostTitleInfo": "Titel van het bericht dat op de berichtenlijst moet worden weergegeven.", "CreatePostSummaryInfo": "Een korte samenvatting van het bericht dat op de berichtenlijst moet worden weergegeven.", - "CreatePostCoverInfo": "Voeg een omslagfoto toe om een effectief artikel te maken. Upload afbeeldingen met een beeldverhouding van 16:9 voor de beste weergave. Maximale bestandsgrootte: 1 MB.", + "CreatePostCoverInfo": "Voeg een omslagfoto toe om een effectieve post te maken. Upload afbeeldingen met een beeldverhouding van 16:9 voor de beste weergave. Maximale bestandsgrootte: 1 MB.", "ThisExtensionIsNotAllowed": "Deze extensie is niet toegestaan.", "TheFileIsTooLarge": "Het bestand is te groot.", "GoToThePost": "Ga naar het artikel", + "GoToTheVideo": "Ga naar de video", "Contribute": "Bijdrage leveren", "OverallProgress": "Algemene vooruitgang", "Done": "Gedaan", "Open": "Open", "Closed": "Gesloten", - "LatestQuestionOnThe": "Laatste vraag over de", + "RecentQuestionFrom": "Recente vraag van {0}", "Stackoverflow": "Stapeloverloop", "Votes": "stemmen", "Answer": "Antwoord geven", @@ -59,7 +57,7 @@ "QuestionItemErrorMessage": "Kon de laatste vraagdetails niet ophalen van Stackoverflow.", "Oops": "Oeps!", "CreatePostSuccessMessage": "Het artikel is succesvol ingediend. Het wordt gepubliceerd na een beoordeling door de sitebeheerder.", - "ChooseCoverImage": "Kies een omslagafbeelding...", + "Browse": "Blader", "CoverImage": "Omslagfoto", "ShareYourExperiencesWithTheABPFramework": "Deel jouw ervaringen met het ABP Kader!", "Optional": "Optioneel", @@ -88,6 +86,8 @@ "PostRequestFromGithubIssue": "Er zijn nu geen artikelverzoeken.", "LatestPosts": "Laatste berichten", "ArticleRequests": "Artikelverzoeken", + "ArticleRequestsDescription": "Wilt u hier specifieke inhoud zien? Je kunt de community vragen om het te maken!", + "LatestContentRequests": "Laatste inhoudsverzoeken", "AllPostRequests": "Bekijk alle artikelverzoeken", "SubscribeToTheNewsletter": "Abonneer u op de nieuwsbrief", "NewsletterEmailDefinition": "Krijg informatie over gebeurtenissen in ABP zoals nieuwe releases, gratis bronnen, artikelen en meer.", @@ -115,7 +115,6 @@ "VideoUrl": "Video URL", "GithubPostUrl": "Github-artikel-url", "ExternalPostUrl": "Externe artikel-url", - "CreatePostCoverInfo": "Voeg een omslagfoto toe om een effectieve post te maken. Upload afbeeldingen met een beeldverhouding van 16:9 voor de beste weergave. Maximale bestandsgrootte: 1 MB.", "ThankYouForContribution": "Bedankt voor uw bijdrage aan de ABP-community.", "GithubPost": "Github-artikel", "GithubPostSubmitStepOne": "1. Schrijf een artikel op een openbare GitHub-repository met het Markdown-formaat. voorbeeld ", @@ -143,6 +142,119 @@ "Volo.AbpIo.Domain:060001": "Bron-URL (\"{PostUrl}\") is geen Github-URL", "Volo.AbpIo.Domain:060002": "Artikelinhoud is niet beschikbaar via Github(\"{PostUrl}\") bron.", "Volo.AbpIo.Domain:060003": "Geen artikelinhoud gevonden!", - "IConsentToMedium": "Ik stem in met de publicatie van dit bericht op https://medium.com/volosoft." + "SeeMore": "Bekijk meer", + "JoinTheABPCommunity": "Sluit u aan bij de ABP-gemeenschap", + "ABPCommunityTalks": "ABP-gemeenschapsgesprekken", + "LiveDemo": "Live demonstratie", + "GetLicense": "Verkrijg een licentie", + "GetStarted": "Begin", + "SourceCode": "Broncode", + "LeaveComment": "Laat reactie achter", + "ShowMore": "Laat meer zien", + "NoPublishedPostsYet": "Nog geen gepubliceerde berichten.", + "Name": "Naam", + "Surname": "Achternaam", + "WebSite": "Website", + "FullURL": "Volledige URL", + "JobTitle": "Functietitel", + "Prev": "Vorige", + "Previous": "Vorig", + "Next": "Volgende", + "Share": "Deel", + "SortBy": "Sorteer op", + "NoPublishedEventsYet": "Nog geen gepubliceerde evenementen.", + "SubscribeYoutubeChannel": "Abonneer je op het Youtube-kanaal", + "Enum:EventType:0": "Gesprekken", + "MemberNotPublishedPostYet": "Dit lid heeft nog geen berichten gepubliceerd.", + "TimeAgo": "{0} geleden", + "Discord_Page_JoinCommunityMessage": "Word lid van de ABP Discord-community", + "Discord_Page_Announce": "Met trots kondigen wij ABP Community Discord Server aan!", + "Discord_Page_Description_1": "ABP Community groeit sinds dag één. We wilden een volgende stap zetten door een officiële ABP Discord-server te creëren, zodat de ABP-gemeenschap met elkaar kan communiceren via de wonderen van instant messaging.", + "Discord_Page_Description_2": "ABP Community Discord Server is de plek waar u uw creaties kunt presenteren met behulp van ABP Framework, de tips kunt delen die voor u hebben gewerkt, het laatste nieuws en aankondigingen over ABP Framework kunt lezen, gewoon met communityleden kunt chatten om ideeën uit te wisselen en plezier kunt hebben!", + "Discord_Page_Description_3": "Deze ABP Community Discord Server is de officiële server waarbij het ABP Core Team aanwezig is op de server om te monitoren.", + "Discord_Page_JoinToServer": "Word lid van ABP Discord Server", + "Events_Page_MetaTitle": "ABP-gemeenschapsevenementen", + "Events_Page_MetaDescription": "De liveshows, georganiseerd door het ABP-team, zijn informele sessies vol community-inhoud, demo's, vragen en antwoorden en discussies over wat er gebeurt bij ABP.", + "Events_Page_Title": "ABP- gemeenschapsgesprekken", + "Members_Page_WritingFromUser": "Lees het schrijven van {0} op de ABP Community.", + "Post_Create_Page_MetaTitle": "Nieuw bericht", + "Post_Create_Page_MetaDescription": "Creëer uw bericht om uw ervaringen over het ABP-framework te delen en bij te dragen aan de ABP-gemeenschap.", + "Post_Create_Page_CreateNewPost": "Nieuw bericht maken", + "Post_Index_Page_MetaDescription": "Het doel van ABP Community is om een bijdrageomgeving te creëren voor ontwikkelaars die het ABP-framework gebruiken.", + "Layout_Title": "{0} | ABP-gemeenschap", + "Layout_MetaDescription": "Een hub voor ABP Framework, .NET en softwareontwikkeling. Krijg toegang tot artikelen, tutorials en nieuws en draag bij aan de ABP-gemeenschap.", + "Index_Page_CommunityIntroduction": "Dit is een hub voor ABP Framework, .NET en softwareontwikkeling. U kunt de artikelen lezen, de video-tutorials bekijken, geïnformeerd worden over de ontwikkelingsvoortgang van ABP en ABP-gerelateerde evenementen, andere ontwikkelaars helpen en uw expertise delen met de ABP-gemeenschap.", + "TagsInArticle": "Labels in artikel", + "IConsentToMedium": "Ik stem in met de publicatie van dit bericht op https://medium.com/volosoft.", + "SearchResultsFor": "Zoekresultaten voor "{0}"", + "SeeMoreVideos": "Bekijk meer video's", + "DiscordPageTitle": "ABP Discord-gemeenschap", + "ViewVideo": "Bekijk video", + "AbpCommunityTitleContent": "ABP-gemeenschap - Open source ABP-framework", + "CommunitySlogan": "Een uniek communityplatform voor ABP Lovers", + "RaffleIsNotActive": "Loterij is niet actief", + "YouAreAlreadyJoinedToThisRaffle": "Je doet al mee aan deze loterij", + "InvalidSubscriptionCode": "Ongeldige abonnementscode", + "Raffle:{0}": "Loterij: {0}", + "Join": "Meedoen", + "Leave": "Vertrekken", + "LoginToJoin": "Log in om mee te doen", + "ToEnd:": "Beëindigen:", + "ToStart:": "Beginnen:", + "days": "dagen", + "hrs": "uur", + "min": "min", + "sec": "sec", + "Winners": "Winnaars", + "To{0}LuckyWinners": "aan {0} gelukkige winnaar(s)", + "ActiveRaffles": "Actieve loterijen", + "UpcomingRaffles": "Aankomende loterijen", + "CompletedRaffles": "Voltooide loterijen", + "NoActiveRaffleTitle": "Er is momenteel geen actieve loterij beschikbaar.", + "NoActiveRaffleDescription": "Er is momenteel geen actieve loterij beschikbaar.", + "RaffleSubscriptionCodeInputMessage": "Voor deze loterij is een registratiecode vereist. Vul hieronder de registratiecode in:", + "RaffleSubscriptionCodeInputErrorMessage": "De registratiecode is onjuist. Probeer het opnieuw.", + "GoodJob!": "Goed gedaan!", + "RaffleJoinSuccessMessage": "U bent succesvol ingeschreven voor de loterij. Als u de prijs wint, wordt u per e-mail geïnformeerd!", + "RaffleLoginAndRegisterMessage": "Om deel te nemen aan een loterij moet u zich aanmelden. U kunt gratis een account aanmaken als u zich nog niet heeft geregistreerd.", + "Ok": "OK", + "SeeDetails": "Zie de details", + "WaitingForTheDraw": "Wachten op de loting", + "AllAttendees": "Alle aanwezigen", + "SeeRaffleDetail": "Zie loterijdetails", + "SeeRaffle": "Zie loterij", + "ParticipationIsComplete!": "Deelname is voltooid!", + "ABPCoreDevelopmentTeam": "Kernontwikkelingsteam van ABP", + "RegisterTheEvent": "Registreer het evenement", + "GoToConferencePage": "Ga naar de conferentiepagina", + "BuyTicket": "Koop ticket", + "SeeEvent": "Zie Evenement", + "PreviousEvents": "Vorige evenementen", + "OtherLiveEvents": "Andere live-evenementen", + "SponsoredConferences": "Gesponsorde conferenties", + "SponsoredConferencesDescription": "We zijn er trots op dat we .NET-gemeenschappen en evenementen voor softwareontwikkelaars mogen ondersteunen.", + "UpcomingEvents": "aankomende evenementen", + "UpcomingCommunityTalkEventDescription": "De liveshows, georganiseerd door het ABP-team, zijn informele sessies vol community-inhoud, demo's, vragen en antwoorden en discussies over wat er gebeurt bij ABP.", + "UpcomingConferenceEventDescription": "ABP .NET Conference is een virtueel evenement waar de .NET Developer-gemeenschap samenkomt en luistert naar gesprekken over de .NET-wereld, algemene softwareontwikkelingspraktijken en het open source ABP Framework.", + "LastOneYear": "Laatste 1 jaar", + "AllTimes": "Alle tijden", + "TopContributors": "top bijdragers", + "{0}Posts": "{0} Berichten", + "LATESTPOSTS": "LAATSTE BERICHTEN", + "NoContributorsFound": "Geen bijdragers gevonden!", + "LatestPost": "Laatste bericht", + "MEMBERSINCE{0}": "LID SINDS {0}", + "CopyLink": "Kopieer link", + "ShareOnTwitter": "Delen op Twitter", + "ShareOnLinkedIn": "Deel op LinkedIn", + "MoreFrom{0}": "Meer van {0}", + "SeeAllFrom{0}": "Bekijk alles van {0}", + "MostWatched": "Meest bekeken", + "Articles({0})": "Artikelen ({0})", + "Videos({0})": "Video's ({0})", + "LatestArticles": "Laatste artikels", + "RaffleHeader": "Hallo ABP Community-lid!", + "RafflesInfo": "
Dit is de loterijpagina die bedoeld is om onze waardering voor u te tonen omdat u een actief lid van de community bent. We houden ABP Community Talks , ABP .NET Conference , wonen of sponsoren de .NET-gerelateerde evenementen bij waarin we een aantal geschenken weggeven.

U kunt deze pagina volgen om de komende loterijen te zien, deze bij te wonen of eerdere loterijen te zien die we trekken, inclusief de winnaars.

Bedankt dat u een actief lid bent! Tot ziens bij de komende loterijen.", + "RafflesInfoTitle": "ABP- gemeenschaploterijen" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/pl-PL.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/pl-PL.json index 300050adaf..7704c8f5f0 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/pl-PL.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/pl-PL.json @@ -13,7 +13,6 @@ "Status": "Status", "ContentSource": "Źródło treści", "Details": "Detale", - "Url": "URL", "Title": "Tytuł", "CreationTime": "Czas utworzenia", "Save": "Zapisać", @@ -29,23 +28,22 @@ "ContributionGuide": "Przewodnik dotyczący wkładu", "BugReport": "Zgłoszenie błędu", "SeeAllPosts": "Zobacz wszystkie posty", - "WelcomeToABPCommunity!": "Witamy w społeczności ABP!", - "MyProfile": "Mój profil", - "MyOrganizations": "Moje organizacje", + "WelcomeToABP": "Witamy w ABP", "EmailNotValid": "Proszę wpisać aktualny adres e-mail.", "FeatureRequest": "Prośba o funkcję", "CreatePostTitleInfo": "Tytuł postu do wyświetlenia na liście postów.", "CreatePostSummaryInfo": "Krótkie podsumowanie postu do wyświetlenia na liście postów.", - "CreatePostCoverInfo": "Aby stworzyć efektowny artykuł, dodaj zdjęcie na okładkę. Prześlij zdjęcia o proporcjach 16:9, aby uzyskać najlepszy widok. Maksymalny rozmiar pliku: 1 MB.", + "CreatePostCoverInfo": "Aby stworzyć efektowny post, dodaj zdjęcie na okładkę. Prześlij zdjęcia o proporcjach 16:9, aby uzyskać najlepszy widok. Maksymalny rozmiar pliku: 1 MB.", "ThisExtensionIsNotAllowed": "To rozszerzenie jest niedozwolone.", "TheFileIsTooLarge": "Plik jest za duży.", "GoToThePost": "Przejdź do artykułu", + "GoToTheVideo": "Przejdź do filmu", "Contribute": "Brać w czymś udział", "OverallProgress": "Ogólny postęp", "Done": "Gotowe", "Open": "otwarty", "Closed": "Zamknięte", - "LatestQuestionOnThe": "Najnowsze pytanie na temat", + "RecentQuestionFrom": "Ostatnie pytanie od: {0}", "Stackoverflow": "Przepełnienie stosu", "Votes": "głosów", "Answer": "Odpowiedź", @@ -59,7 +57,7 @@ "QuestionItemErrorMessage": "Nie udało się uzyskać najnowszych szczegółów pytania z Stackoverflow.", "Oops": "Ups!", "CreatePostSuccessMessage": "Artykuł został pomyślnie przesłany. Zostanie on opublikowany po recenzji ze strony administratora strony.", - "ChooseCoverImage": "Wybierz zdjęcie na okładkę...", + "Browse": "Przeglądać", "CoverImage": "Okładka", "ShareYourExperiencesWithTheABPFramework": "Podziel się swoimi doświadczeniami z ABP Framework!", "Optional": "Opcjonalny", @@ -88,6 +86,8 @@ "PostRequestFromGithubIssue": "Obecnie nie ma żadnych próśb o artykuły.", "LatestPosts": "Najnowsze posty", "ArticleRequests": "Żądania artykułów", + "ArticleRequestsDescription": "Chcesz zobaczyć tutaj konkretną treść? Możesz poprosić społeczność o jego utworzenie!", + "LatestContentRequests": "Najnowsze żądania treści", "AllPostRequests": "Zobacz wszystkie prośby o artykuły", "SubscribeToTheNewsletter": "Zapisz się do Newslettera", "NewsletterEmailDefinition": "Uzyskaj informacje o wydarzeniach w ABP, takich jak nowe wydania, bezpłatne źródła, artykuły i nie tylko.", @@ -115,7 +115,6 @@ "VideoUrl": "URL wideo", "GithubPostUrl": "Adres URL artykułu na Github", "ExternalPostUrl": "Zewnętrzny adres URL artykułu", - "CreatePostCoverInfo": "Aby stworzyć efektowny post, dodaj zdjęcie na okładkę. Prześlij zdjęcia o proporcjach 16:9, aby uzyskać najlepszy widok. Maksymalny rozmiar pliku: 1 MB.", "ThankYouForContribution": "Dziękujemy za udział w społeczności ABP.", "GithubPost": "Artykuł na Github", "GithubPostSubmitStepOne": "1. Napisz artykuł w dowolnym publicznym repozytorium GitHub w formacie Markdown. przykład ", @@ -143,6 +142,119 @@ "Volo.AbpIo.Domain:060001": "Źródłowy adres URL („{PostUrl}”) nie jest adresem URL Github", "Volo.AbpIo.Domain:060002": "Treść artykułu nie jest dostępna w zasobach Github(\"{PostUrl}\").", "Volo.AbpIo.Domain:060003": "Nie znaleziono treści artykułu!", - "IConsentToMedium": "Wyrażam zgodę na publikację tego posta na stronie https://medium.com/volosoft." + "SeeMore": "Zobacz więcej", + "JoinTheABPCommunity": "Dołącz do społeczności ABP", + "ABPCommunityTalks": "Rozmowy społeczności ABP", + "LiveDemo": "Demo na żywo", + "GetLicense": "Zdobądź licencję", + "GetStarted": "Zaczynaj", + "SourceCode": "Kod źródłowy", + "LeaveComment": "Zostaw komentarz", + "ShowMore": "Pokaż więcej", + "NoPublishedPostsYet": "Nie ma jeszcze opublikowanych postów.", + "Name": "Nazwa", + "Surname": "Nazwisko", + "WebSite": "Strona internetowa", + "FullURL": "Pełny adres URL", + "JobTitle": "Stanowisko", + "Prev": "Poprzednia", + "Previous": "Poprzedni", + "Next": "Następny", + "Share": "Udział", + "SortBy": "Sortuj według", + "NoPublishedEventsYet": "Nie ma jeszcze opublikowanych wydarzeń.", + "SubscribeYoutubeChannel": "Subskrybuj kanał Youtube", + "Enum:EventType:0": "Rozmowy", + "MemberNotPublishedPostYet": "Ten użytkownik nie opublikował jeszcze żadnych postów.", + "TimeAgo": "{0} temu", + "Discord_Page_JoinCommunityMessage": "Dołącz do społeczności Discord firmy ABP", + "Discord_Page_Announce": "Z przyjemnością ogłaszamy serwer Discord społeczności ABP!", + "Discord_Page_Description_1": "Społeczność ABP rośnie od pierwszego dnia. Chcieliśmy przejść do następnego kroku, tworząc oficjalny serwer ABP Discord, aby społeczność ABP mogła ze sobą współdziałać za pomocą komunikatorów internetowych.", + "Discord_Page_Description_2": "Serwer Discord społeczności ABP to miejsce, w którym możesz zaprezentować swoje dzieła za pomocą ABP Framework, podzielić się wskazówkami, które sprawdziły się w Twoim przypadku, nadrobić zaległości w najnowszych wiadomościach i ogłoszeniach na temat ABP Framework, po prostu porozmawiać z członkami społeczności, aby wymienić się pomysłami i dobrze się bawić!", + "Discord_Page_Description_3": "Ten serwer Discord społeczności ABP jest oficjalnym serwerem, którego główny zespół ABP jest obecny na serwerze w celu monitorowania.", + "Discord_Page_JoinToServer": "Dołącz do serwera Discord firmy ABP", + "Events_Page_MetaTitle": "Wydarzenia społecznościowe ABP", + "Events_Page_MetaDescription": "Pokazy na żywo, prowadzone przez zespół ABP, to swobodne sesje pełne treści społecznościowych, demonstracji, pytań i odpowiedzi oraz dyskusji na temat tego, co dzieje się w ABP.", + "Events_Page_Title": "Rozmowy społeczności ABP", + "Members_Page_WritingFromUser": "Przeczytaj tekst od {0} w społeczności ABP.", + "Post_Create_Page_MetaTitle": "Nowy post", + "Post_Create_Page_MetaDescription": "Utwórz swój post, aby podzielić się swoimi doświadczeniami na temat struktury ABP i wnieść swój wkład do społeczności ABP.", + "Post_Create_Page_CreateNewPost": "Utwórz nowy post", + "Post_Index_Page_MetaDescription": "Celem społeczności ABP jest stworzenie środowiska współpracy dla programistów korzystających ze środowiska ABP.", + "Layout_Title": "{0} | Społeczność ABP", + "Layout_MetaDescription": "Centrum ABP Framework, .NET i tworzenia oprogramowania. Uzyskaj dostęp do artykułów, samouczków, aktualności i współtwórz społeczność ABP.", + "Index_Page_CommunityIntroduction": "Jest to centrum ABP Framework, .NET i rozwoju oprogramowania. Możesz czytać artykuły, oglądać samouczki wideo, otrzymywać informacje o postępie rozwoju ABP i wydarzeniach związanych z ABP, pomagać innym programistom i dzielić się swoją wiedzą ze społecznością ABP.", + "TagsInArticle": "Tagi w artykule", + "IConsentToMedium": "Wyrażam zgodę na publikację tego posta na stronie https://medium.com/volosoft.", + "SearchResultsFor": "Wyniki wyszukiwania dla „{0}”", + "SeeMoreVideos": "Zobacz więcej filmów", + "DiscordPageTitle": "Społeczność Discorda ABP", + "ViewVideo": "Pokaż wideo", + "AbpCommunityTitleContent": "Społeczność ABP — platforma ABP o otwartym kodzie źródłowym", + "CommunitySlogan": "Unikalna platforma społecznościowa dla miłośników ABP", + "RaffleIsNotActive": "Loteria nie jest aktywna", + "YouAreAlreadyJoinedToThisRaffle": "Już dołączyłeś do tej loterii", + "InvalidSubscriptionCode": "Nieprawidłowy kod subskrypcji", + "Raffle:{0}": "Loteria: {0}", + "Join": "Dołączyć", + "Leave": "Wyjechać", + "LoginToJoin": "Zaloguj się, aby dołączyć", + "ToEnd:": "Do końca:", + "ToStart:": "Zacząć:", + "days": "dni", + "hrs": "godz", + "min": "min", + "sec": "sek", + "Winners": "Zwycięzcy", + "To{0}LuckyWinners": "do {0} szczęśliwych zwycięzców", + "ActiveRaffles": "Aktywne loterie", + "UpcomingRaffles": "Nadchodzące loterie", + "CompletedRaffles": "Ukończone loterie", + "NoActiveRaffleTitle": "W tej chwili nie jest dostępna żadna aktywna loteria.", + "NoActiveRaffleDescription": "W tej chwili nie jest dostępna żadna aktywna loteria.", + "RaffleSubscriptionCodeInputMessage": "Ta loteria wymaga kodu rejestracyjnego. Proszę wpisać poniżej kod rejestracyjny:", + "RaffleSubscriptionCodeInputErrorMessage": "Kod rejestracyjny jest nieprawidłowy. Proszę spróbuj ponownie.", + "GoodJob!": "Dobra robota!", + "RaffleJoinSuccessMessage": "Udało Ci się zarejestrować do loterii. Jeśli wygrasz nagrodę, zostaniesz poinformowany e-mailem!", + "RaffleLoginAndRegisterMessage": "Aby wziąć udział w loterii, należy się zalogować. Możesz założyć konto za darmo, jeśli jeszcze się nie zarejestrowałeś.", + "Ok": "OK", + "SeeDetails": "Patrz szczegóły", + "WaitingForTheDraw": "Czekam na losowanie", + "AllAttendees": "Wszyscy Uczestnicy", + "SeeRaffleDetail": "Zobacz szczegóły loterii", + "SeeRaffle": "Zobacz Loterię", + "ParticipationIsComplete!": "Udział jest zakończony!", + "ABPCoreDevelopmentTeam": "Główny zespół programistów ABP", + "RegisterTheEvent": "Zarejestruj wydarzenie", + "GoToConferencePage": "Przejdź do strony konferencji", + "BuyTicket": "Kup bilet", + "SeeEvent": "Zobacz Wydarzenie", + "PreviousEvents": "Poprzednie wydarzenia", + "OtherLiveEvents": "Inne wydarzenia na żywo", + "SponsoredConferences": "Konferencje sponsorowane", + "SponsoredConferencesDescription": "Mamy zaszczyt wspierać społeczności i wydarzenia .NET dla twórców oprogramowania.", + "UpcomingEvents": "nadchodzące wydarzenia", + "UpcomingCommunityTalkEventDescription": "Pokazy na żywo, prowadzone przez zespół ABP, to swobodne sesje pełne treści społecznościowych, demonstracji, pytań i odpowiedzi oraz dyskusji na temat tego, co dzieje się w ABP.", + "UpcomingConferenceEventDescription": "Konferencja ABP .NET to wirtualne wydarzenie dla społeczności programistów .NET, podczas którego można spotkać się i wysłuchać rozmów na temat świata .NET, powszechnych praktyk tworzenia oprogramowania i otwartego oprogramowania ABP Framework.", + "LastOneYear": "Ostatni 1 rok", + "AllTimes": "Wszystkie czasy", + "TopContributors": "czołowi kontrybutorzy", + "{0}Posts": "{0} Posty", + "LATESTPOSTS": "NAJNOWSZE POSTY", + "NoContributorsFound": "Nie znaleziono autorów!", + "LatestPost": "Najnowszy post", + "MEMBERSINCE{0}": "CZŁONKOWIE OD {0}", + "CopyLink": "Skopiuj link", + "ShareOnTwitter": "Podziel się na Twitterze", + "ShareOnLinkedIn": "Udostępnij na LinkedIn", + "MoreFrom{0}": "Więcej od {0}", + "SeeAllFrom{0}": "Zobacz wszystko od {0}", + "MostWatched": "Najczęściej oglądane", + "Articles({0})": "Artykuły ({0})", + "Videos({0})": "Filmy ({0})", + "LatestArticles": "ostatnie artykuły", + "RaffleHeader": "Witaj, członku społeczności ABP!", + "RafflesInfo": "
To jest strona loterii, której celem jest wyrażenie naszego uznania dla Ciebie za bycie aktywnym członkiem społeczności. Prowadzimy rozmowy społecznościowe ABP , konferencje ABP .NET , uczestniczymy lub sponsorujemy wydarzenia związane z .NET, podczas których rozdajemy prezenty.

Możesz śledzić tę stronę, aby zobaczyć nadchodzące loterie, wziąć w nich udział lub zobaczyć poprzednie loterie, które losowaliśmy, w tym zwycięzców.

Dziękujemy za bycie aktywnym członkiem! Do zobaczenia w nadchodzących loteriach.", + "RafflesInfoTitle": "Loterie społecznościowe ABP" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/pt-BR.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/pt-BR.json index 5297799f76..88689b5c1a 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/pt-BR.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/pt-BR.json @@ -13,7 +13,6 @@ "Status": "Status", "ContentSource": "Origem do conteúdo", "Details": "Detalhes", - "Url": "Url", "Title": "Título", "CreationTime": "Tempo de criação", "Save": "Salve ", @@ -29,23 +28,22 @@ "ContributionGuide": "Guia de contribuição", "BugReport": "Relatório de erro", "SeeAllPosts": "Ver todas as postagens", - "WelcomeToABPCommunity!": "Bem-vindo à Comunidade ABP!", - "MyProfile": "Meu perfil", - "MyOrganizations": "Minhas organizações", + "WelcomeToABP": "Bem-vindo à ABP", "EmailNotValid": "Por favor insira um endereço de e-mail válido.", "FeatureRequest": "Solicitação de recurso", "CreatePostTitleInfo": "Título da postagem a ser mostrado na lista de postagens.", "CreatePostSummaryInfo": "Um breve resumo da postagem a ser mostrado na lista de postagens.", - "CreatePostCoverInfo": "Para criar um artigo eficaz, adicione uma foto de capa. Carregue imagens de proporção de 16: 9 para a melhor visualização. Tamanho máximo do arquivo: 1 MB.", + "CreatePostCoverInfo": "Para criar uma postagem eficaz, adicione uma foto de capa. Carregue imagens de proporção de 16: 9 para a melhor visualização. Tamanho máximo do arquivo: 1 MB.", "ThisExtensionIsNotAllowed": "Esta extensão não é permitida.", "TheFileIsTooLarge": "O arquivo é muito grande.", "GoToThePost": "Vá para o artigo", + "GoToTheVideo": "Vá para o vídeo", "Contribute": "Contribuir", "OverallProgress": "Progresso geral", "Done": "Feito", "Open": "Abrir", "Closed": "Fechadas", - "LatestQuestionOnThe": "Última pergunta sobre o", + "RecentQuestionFrom": "Pergunta recente de {0}", "Stackoverflow": "Stackoverflow", "Votes": "votos", "Answer": "Responder", @@ -59,7 +57,7 @@ "QuestionItemErrorMessage": "Não foi possível obter os detalhes da pergunta mais recente do Stackoverflow.", "Oops": "Ops!", "CreatePostSuccessMessage": "O artigo foi enviado com sucesso. Ele será publicado após uma revisão do administrador do site.", - "ChooseCoverImage": "Escolha uma imagem de capa ...", + "Browse": "Navegar", "CoverImage": "Imagem de capa", "ShareYourExperiencesWithTheABPFramework": "Compartilhe suas experiências com o ABP Framework!", "Optional": "Opcional", @@ -88,6 +86,8 @@ "PostRequestFromGithubIssue": "Não há nenhum pedido de artigo agora.", "LatestPosts": "últimas postagens", "ArticleRequests": "Pedidos de artigos", + "ArticleRequestsDescription": "Quer ver um conteúdo específico aqui? Você pode pedir à comunidade para criá-lo!", + "LatestContentRequests": "Últimas solicitações de conteúdo", "AllPostRequests": "Veja todas as solicitações de artigos", "SubscribeToTheNewsletter": "Assine o boletim informativo", "NewsletterEmailDefinition": "Obtenha informações sobre os acontecimentos na ABP, como novos lançamentos, fontes gratuitas, artigos e muito mais.", @@ -115,7 +115,6 @@ "VideoUrl": "URL do vídeo", "GithubPostUrl": "URL do artigo do Github", "ExternalPostUrl": "URL de artigo externo", - "CreatePostCoverInfo": "Para criar uma postagem eficaz, adicione uma foto de capa. Carregue imagens de proporção de 16: 9 para a melhor visualização. Tamanho máximo do arquivo: 1 MB.", "ThankYouForContribution": "Obrigado por contribuir com a Comunidade ABP.", "GithubPost": "Artigo Github", "GithubPostSubmitStepOne": " 1. Escreva um artigo em qualquer repositório GitHub público com o formato Markdown. exemplo ", @@ -143,6 +142,119 @@ "Volo.AbpIo.Domain:060001": "O URL da fonte (\"{PostUrl}\") não é o URL do Github", "Volo.AbpIo.Domain:060002": "O conteúdo do artigo não está disponível no recurso Github (\"{PostUrl}\").", "Volo.AbpIo.Domain:060003": "Nenhum conteúdo do artigo encontrado!", - "IConsentToMedium": "Eu concordo com a publicação deste post em https://medium.com/volosoft." + "SeeMore": "Ver mais", + "JoinTheABPCommunity": "Junte-se à comunidade ABP", + "ABPCommunityTalks": "Palestras da Comunidade ABP", + "LiveDemo": "Demonstração ao vivo", + "GetLicense": "Obtenha uma licença", + "GetStarted": "Iniciar", + "SourceCode": "Código fonte", + "LeaveComment": "Deixe comentário", + "ShowMore": "Mostre mais", + "NoPublishedPostsYet": "Nenhuma postagem publicada ainda.", + "Name": "Nome", + "Surname": "Sobrenome", + "WebSite": "Local na rede Internet", + "FullURL": "URL completo", + "JobTitle": "Cargo", + "Prev": "Anterior", + "Previous": "Anterior", + "Next": "Próximo", + "Share": "Compartilhar", + "SortBy": "Ordenar por", + "NoPublishedEventsYet": "Nenhum evento publicado ainda.", + "SubscribeYoutubeChannel": "Inscreva-se no canal do Youtube", + "Enum:EventType:0": "Palestras", + "MemberNotPublishedPostYet": "Este membro ainda não publicou nenhuma postagem.", + "TimeAgo": "{0} atrás", + "Discord_Page_JoinCommunityMessage": "Junte-se à comunidade ABP Discord", + "Discord_Page_Announce": "Temos o prazer de anunciar o Servidor Discord da Comunidade ABP!", + "Discord_Page_Description_1": "A Comunidade ABP tem crescido desde o primeiro dia. Queríamos dar o próximo passo, criando um servidor oficial do ABP Discord para que a comunidade ABP pudesse interagir entre si usando as maravilhas das mensagens instantâneas.", + "Discord_Page_Description_2": "ABP Community Discord Server é o lugar onde você pode mostrar suas criações usando o ABP Framework, compartilhar as dicas que funcionaram para você, ficar por dentro das últimas notícias e anúncios sobre o ABP Framework, apenas conversar com os membros da comunidade para trocar ideias e se divertir!", + "Discord_Page_Description_3": "Este ABP Community Discord Server é o oficial e o ABP Core Team está presente no servidor para monitorar.", + "Discord_Page_JoinToServer": "Junte-se ao servidor ABP Discord", + "Events_Page_MetaTitle": "Eventos da comunidade ABP", + "Events_Page_MetaDescription": "Os shows ao vivo, organizados pela equipe da ABP, são sessões casuais repletas de conteúdo da comunidade, demonstrações, perguntas e respostas e discussões sobre o que está acontecendo na ABP.", + "Events_Page_Title": "Palestras da Comunidade ABP", + "Members_Page_WritingFromUser": "Leia o texto de {0} na Comunidade ABP.", + "Post_Create_Page_MetaTitle": "Nova postagem", + "Post_Create_Page_MetaDescription": "Crie sua postagem para compartilhar suas experiências sobre a estrutura ABP e contribuir com a comunidade ABP.", + "Post_Create_Page_CreateNewPost": "Criar nova postagem", + "Post_Index_Page_MetaDescription": "O objetivo da Comunidade ABP é criar um ambiente de contribuição para desenvolvedores que usam a estrutura ABP.", + "Layout_Title": "{0} | Comunidade ABP", + "Layout_MetaDescription": "Um hub para ABP Framework, .NET e desenvolvimento de software. Acesse artigos, tutoriais, notícias e contribua com a comunidade ABP.", + "Index_Page_CommunityIntroduction": "Este é um hub para ABP Framework, .NET e desenvolvimento de software. Você pode ler os artigos, assistir aos tutoriais em vídeo, informar-se sobre o progresso do desenvolvimento da ABP e eventos relacionados à ABP, ajudar outros desenvolvedores e compartilhar sua experiência com a comunidade ABP.", + "TagsInArticle": "Tags no artigo", + "IConsentToMedium": "Eu concordo com a publicação deste post em https://medium.com/volosoft.", + "SearchResultsFor": "Resultados da pesquisa para "{0}"", + "SeeMoreVideos": "Veja mais vídeos", + "DiscordPageTitle": "Comunidade de Discord da ABP", + "ViewVideo": "Ver vídeo", + "AbpCommunityTitleContent": "Comunidade ABP - Estrutura ABP de código aberto", + "CommunitySlogan": "Uma plataforma comunitária exclusiva para amantes da ABP", + "RaffleIsNotActive": "O sorteio não está ativo", + "YouAreAlreadyJoinedToThisRaffle": "Você já está participando deste sorteio", + "InvalidSubscriptionCode": "Código de assinatura inválido", + "Raffle:{0}": "Sorteio: {0}", + "Join": "Juntar", + "Leave": "Deixar", + "LoginToJoin": "Faça login para participar", + "ToEnd:": "Para finalizar:", + "ToStart:": "Para iniciar:", + "days": "dias", + "hrs": "horas", + "min": "min", + "sec": "segundo", + "Winners": "Vencedores", + "To{0}LuckyWinners": "para {0} sortudo(s) ganhador(es)", + "ActiveRaffles": "Sorteios Ativos", + "UpcomingRaffles": "Próximos sorteios", + "CompletedRaffles": "Sorteios concluídos", + "NoActiveRaffleTitle": "Nenhum sorteio ativo está disponível no momento.", + "NoActiveRaffleDescription": "Nenhum sorteio ativo está disponível no momento.", + "RaffleSubscriptionCodeInputMessage": "Este sorteio requer um código de registro. Por favor insira o código de registro abaixo:", + "RaffleSubscriptionCodeInputErrorMessage": "O código de registro está incorreto. Por favor, tente novamente.", + "GoodJob!": "Bom trabalho!", + "RaffleJoinSuccessMessage": "Você foi cadastrado com sucesso no sorteio. Você será informado por e-mail se ganhar o prêmio!", + "RaffleLoginAndRegisterMessage": "Você deve fazer login para participar de um sorteio. Você pode criar uma conta gratuitamente se ainda não tiver se registrado.", + "Ok": "OK", + "SeeDetails": "Veja detalhes", + "WaitingForTheDraw": "Esperando o sorteio", + "AllAttendees": "Todos os participantes", + "SeeRaffleDetail": "Veja detalhes do sorteio", + "SeeRaffle": "Ver sorteio", + "ParticipationIsComplete!": "A participação está completa!", + "ABPCoreDevelopmentTeam": "Equipe principal de desenvolvimento da ABP", + "RegisterTheEvent": "Registre o Evento", + "GoToConferencePage": "Ir para a página da conferência", + "BuyTicket": "Comprar bilhete", + "SeeEvent": "Ver Evento", + "PreviousEvents": "Eventos anteriores", + "OtherLiveEvents": "Outros eventos ao vivo", + "SponsoredConferences": "Conferências patrocinadas", + "SponsoredConferencesDescription": "Temos a honra de apoiar comunidades e eventos .NET para desenvolvedores de software.", + "UpcomingEvents": "próximos eventos", + "UpcomingCommunityTalkEventDescription": "Os shows ao vivo, organizados pela equipe da ABP, são sessões casuais repletas de conteúdo da comunidade, demonstrações, perguntas e respostas e discussões sobre o que está acontecendo na ABP.", + "UpcomingConferenceEventDescription": "ABP .NET Conference é um evento virtual para a comunidade de desenvolvedores .NET se reunir e ouvir palestras sobre o mundo .NET, práticas comuns de desenvolvimento de software e o ABP Framework de código aberto.", + "LastOneYear": "Último 1 ano", + "AllTimes": "Todas as vezes", + "TopContributors": "Principais contribuidores", + "{0}Posts": "{0} Postagens", + "LATESTPOSTS": "ÚLTIMAS POSTAGENS", + "NoContributorsFound": "Nenhum contribuidor encontrado!", + "LatestPost": "Última postagem", + "MEMBERSINCE{0}": "MEMBRO DESDE {0}", + "CopyLink": "Link de cópia", + "ShareOnTwitter": "Compartilhar no Twitter", + "ShareOnLinkedIn": "Compartilhe no LinkedIn", + "MoreFrom{0}": "Mais de {0}", + "SeeAllFrom{0}": "Ver tudo de {0}", + "MostWatched": "Mais assistidos", + "Articles({0})": "Artigos ({0})", + "Videos({0})": "Vídeos ({0})", + "LatestArticles": "Artigos Mais Recentes", + "RaffleHeader": "Olá, membro da comunidade ABP!", + "RafflesInfo": "
Esta é a página do sorteio dedicada a mostrar nosso agradecimento por você ser um membro ativo da comunidade. Fazemos ABP Community Talks , ABP .NET Conference , participamos ou patrocinamos eventos relacionados ao .NET nos quais distribuímos alguns presentes.

Você pode seguir esta página para ver os próximos sorteios, participar deles ou ver os sorteios anteriores que sorteamos, incluindo os vencedores.

Obrigado por ser um membro ativo! Nos vemos nos próximos sorteios.", + "RafflesInfoTitle": "Sorteios da Comunidade ABP" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/ro-RO.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/ro-RO.json index e0ea7b8a5e..f9c4e99bf1 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/ro-RO.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/ro-RO.json @@ -13,13 +13,12 @@ "Status": "Starea", "ContentSource": "Sursa conţinutului", "Details": "Detalii", - "Url": "Url", "Title": "Titlu", "CreationTime": "Data creării", "Save": "Salvează", "SameUrlAlreadyExist": "Dacă doriţi să adăugaţi acest articol, ar trebui să schimbaţi adresa Url, întrucât aceeaşi adresa url există deja!", "UrlIsNotValid": "Url-ul nu este valid.", - "UrlNotFound" : "Url nu a fost găsit.", + "UrlNotFound": "Url nu a fost găsit.", "UrlContentNotFound": "Conţinutul url-ului nu a fost găsit.", "Summary": "Rezumat", "MostRead": "Cele mai citite", @@ -29,9 +28,7 @@ "ContributionGuide": "Ghid de contribuţie", "BugReport": "Raportează eroare", "SeeAllPosts": "Vezi toate postările", - "WelcomeToABPCommunity!": "Bun venit în comunitatea ABP!", - "MyProfile": "Profilul meu", - "MyOrganizations": "Organizaţia mea", + "WelcomeToABP": "Bine ați venit la ABP", "EmailNotValid": "Vă rugăm să introduceţi o adresa de email validă.", "FeatureRequest": "Cerere de funcţionalitate", "CreatePostTitleInfo": "Titlul postării care va apărea în lista postărilor.", @@ -40,12 +37,13 @@ "ThisExtensionIsNotAllowed": "Această extensie nu este permisă.", "TheFileIsTooLarge": "Dimensiunea fişierului este prea mare.", "GoToThePost": "Vezi articolul", + "GoToTheVideo": "Accesați videoclipul", "Contribute": "Contribuie", "OverallProgress": "Progres total", "Done": "Gata", "Open": "Deschide", "Closed": "Închis", - "LatestQuestionOnThe": "Ultima întrebare de pe", + "RecentQuestionFrom": "Întrebare recentă de la {0}", "Stackoverflow": "Stackoverflow", "Votes": "voturi", "Answer": "Răspunde", @@ -59,7 +57,7 @@ "QuestionItemErrorMessage": "Nu s-au putut obţine detaliile de referinţă actuale de pe Stackoverflow.", "Oops": "Oops!", "CreatePostSuccessMessage": "Articolul a fost trimis cu succes. Va fi publicat după ce va fi revizuit de un administrator al site-ului.", - "ChooseCoverImage": "Alegeţi o poză de copertă...", + "Browse": "Naviga", "CoverImage": "Poză de copertă", "ShareYourExperiencesWithTheABPFramework": "Împărtăşiţi-vă experienţele cu ABP Framework!", "Optional": "Opţional", @@ -88,6 +86,8 @@ "PostRequestFromGithubIssue": "Momentan nu există cereri de articole.", "LatestPosts": "Ultimele postări", "ArticleRequests": "Cereri de articole", + "ArticleRequestsDescription": "Doriți să vedeți un anumit conținut aici? Puteți cere comunității să-l creeze!", + "LatestContentRequests": "Cele mai recente solicitări de conținut", "AllPostRequests": "Vedeţi toate cererile de articole", "SubscribeToTheNewsletter": "Abonaţi-vă la newsletter-ul nostru", "NewsletterEmailDefinition": "Obţineţi informaţii despre evenimentele din ABP, cum ar fi lansări noi, surse gratuite, articole şi multe altele.", @@ -115,7 +115,6 @@ "VideoUrl": "Url Video", "GithubPostUrl": "Adresa Url articol Github", "ExternalPostUrl": "Adresa Url externă Post", - "CreatePostCoverInfo": "Pentru crearea unei postări eficace, adăugaţi o poză de copertă. Încărcaţi imagini cu raport de aspect 16:9 pentru cea mai bună vizualizare. Dimensiunea maximă a fişierului: 1MB.", "ThankYouForContribution": "Vă mulţumim pentru că aţi contribuit la comunitatea ABP.", "GithubPost": "Articol GitHub", "GithubPostSubmitStepOne": "1. Scrieţi un articol pe orice repository GitHub folosind formatul Markup. exemplu", @@ -144,6 +143,118 @@ "Volo.AbpIo.Domain:060002": "Conţinutul articolului nu este disponibil din resursa de pe GitHub(\"{PostUrl}\").", "Volo.AbpIo.Domain:060003": "Nu a fost găsit conţinutul articolului!", "SeeMore": "Vezi mai mult", - "IConsentToMedium": "Sunt de acord cu publicarea acestei postări la https://medium.com/volosoft." + "JoinTheABPCommunity": "Alăturați-vă comunității ABP", + "ABPCommunityTalks": "Discuții comunitare ABP", + "LiveDemo": "Demo live", + "GetLicense": "Obțineți o licență", + "GetStarted": "Incepe", + "SourceCode": "Cod sursa", + "LeaveComment": "Lasă un comentariu", + "ShowMore": "Afișați mai multe", + "NoPublishedPostsYet": "Nicio postare publicată încă.", + "Name": "Nume", + "Surname": "Nume de familie", + "WebSite": "Site Web", + "FullURL": "Adresa URL completă", + "JobTitle": "Denumirea funcției", + "Prev": "Prev", + "Previous": "Anterior", + "Next": "Următorul", + "Share": "Acțiune", + "SortBy": "Filtrează după", + "NoPublishedEventsYet": "Niciun eveniment publicat încă.", + "SubscribeYoutubeChannel": "Abonați-vă la canalul Youtube", + "Enum:EventType:0": "Discuții", + "MemberNotPublishedPostYet": "Acest membru nu a publicat încă nicio postare.", + "TimeAgo": "acum {0}", + "Discord_Page_JoinCommunityMessage": "Alăturați-vă comunității ABP Discord", + "Discord_Page_Announce": "Suntem bucuroși să anunțăm ABP Community Discord Server!", + "Discord_Page_Description_1": "Comunitatea ABP a crescut din prima zi. Am vrut să trecem la pasul următor prin crearea unui server oficial ABP Discord, astfel încât Comunitatea ABP să poată interacționa între ele folosind minunile mesageriei instantanee.", + "Discord_Page_Description_2": "ABP Community Discord Server este locul în care vă puteți prezenta creațiile folosind ABP Framework, puteți împărtăși sfaturile care au funcționat pentru dvs., puteți afla cele mai recente știri și anunțuri despre ABP Framework, trebuie doar să discutați cu membrii comunității pentru a face schimb de idei și să vă distrați!", + "Discord_Page_Description_3": "Acest server ABP Community Discord este cel oficial, echipa principală ABP este prezentă pe server pentru a fi monitorizată.", + "Discord_Page_JoinToServer": "Alăturați-vă ABP Discord Server", + "Events_Page_MetaTitle": "Evenimente comunitare ABP", + "Events_Page_MetaDescription": "Emisiunile live, găzduite de echipa ABP, sunt sesiuni ocazionale pline de conținut comunitar, demonstrații, întrebări și răspunsuri și discuții despre ceea ce se întâmplă în ABP.", + "Events_Page_Title": "Discuții comunitare ABP", + "Members_Page_WritingFromUser": "Citiți scrisul de la {0} pe Comunitatea ABP.", + "Post_Create_Page_MetaTitle": "Postare noua", + "Post_Create_Page_MetaDescription": "Creați-vă postarea pentru a vă împărtăși experiențele despre cadrul ABP și pentru a contribui la Comunitatea ABP.", + "Post_Create_Page_CreateNewPost": "Creați o postare nouă", + "Post_Index_Page_MetaDescription": "Scopul comunității ABP este de a crea un mediu de contribuție pentru dezvoltatorii care utilizează cadrul ABP.", + "Layout_Title": "{0} | Comunitatea ABP", + "Layout_MetaDescription": "Un hub pentru ABP Framework, .NET și dezvoltare de software. Accesați articole, tutoriale, știri și contribuiți la comunitatea ABP.", + "Index_Page_CommunityIntroduction": "Acesta este un hub pentru ABP Framework, .NET și dezvoltarea de software. Puteți citi articolele, viziona tutorialele video, puteți să vă informați despre progresul dezvoltării ABP și despre evenimentele legate de ABP, să ajutați alți dezvoltatori și să vă împărtășiți experiența cu comunitatea ABP.", + "TagsInArticle": "Etichete în articol", + "IConsentToMedium": "Sunt de acord cu publicarea acestei postări la https://medium.com/volosoft.", + "SearchResultsFor": "Rezultatele căutării pentru „{0}”", + "SeeMoreVideos": "Vezi mai multe videoclipuri", + "DiscordPageTitle": "Comunitatea ABP Discord", + "ViewVideo": "Vizualizați videoclipul", + "AbpCommunityTitleContent": "Comunitatea ABP - Cadru ABP Open Source", + "CommunitySlogan": "O platformă comunitară unică pentru iubitorii de ABP", + "RaffleIsNotActive": "Tombola nu este activă", + "YouAreAlreadyJoinedToThisRaffle": "Ești deja alăturat acestei tombole", + "InvalidSubscriptionCode": "Cod de abonament nevalid", + "Raffle:{0}": "Tombolă: {0}", + "Join": "A te alatura", + "Leave": "Părăsi", + "LoginToJoin": "Conectați-vă pentru a vă alătura", + "ToEnd:": "A se termina:", + "ToStart:": "A începe:", + "days": "zile", + "hrs": "ore", + "min": "min", + "sec": "sec", + "Winners": "Câștigători", + "To{0}LuckyWinners": "către {0} câștigător(i) norocos", + "ActiveRaffles": "Tombole active", + "UpcomingRaffles": "Tombole viitoare", + "CompletedRaffles": "Tombole finalizate", + "NoActiveRaffleTitle": "Nu este disponibilă nicio tombolă activă momentan.", + "NoActiveRaffleDescription": "Nu este disponibilă nicio tombolă activă momentan.", + "RaffleSubscriptionCodeInputMessage": "Această tombolă necesită un cod de înregistrare. Vă rugăm să introduceți codul de înregistrare mai jos:", + "RaffleSubscriptionCodeInputErrorMessage": "Codul de înregistrare este incorect. Vă rugăm să încercați din nou.", + "GoodJob!": "Loc de muncă bun!", + "RaffleJoinSuccessMessage": "Te-ai înscris cu succes la tombolă. Veți fi informat prin e-mail dacă câștigați premiul!", + "RaffleLoginAndRegisterMessage": "Ar trebui să vă conectați pentru a participa la o tombolă. Vă puteți crea un cont gratuit dacă nu v-ați înregistrat încă.", + "Ok": "Bine", + "SeeDetails": "Vezi detalii", + "WaitingForTheDraw": "În așteptarea tragerii la sorți", + "AllAttendees": "Toți participanții", + "SeeRaffleDetail": "Vezi Detaliul Tombolei", + "SeeRaffle": "Vezi tombola", + "ParticipationIsComplete!": "Participarea este completă!", + "ABPCoreDevelopmentTeam": "Echipa de dezvoltare principală ABP", + "RegisterTheEvent": "Înregistrați evenimentul", + "GoToConferencePage": "Accesați pagina conferinței", + "BuyTicket": "Cumpără bilet", + "SeeEvent": "Vezi Eveniment", + "PreviousEvents": "Evenimente anterioare", + "OtherLiveEvents": "Alte evenimente live", + "SponsoredConferences": "Conferințe sponsorizate", + "SponsoredConferencesDescription": "Suntem onorați să sprijinim comunitățile și evenimentele .NET pentru dezvoltatorii de software.", + "UpcomingEvents": "evenimente viitoare", + "UpcomingCommunityTalkEventDescription": "Emisiunile live, găzduite de echipa ABP, sunt sesiuni ocazionale pline de conținut comunitar, demonstrații, întrebări și răspunsuri și discuții despre ceea ce se întâmplă în ABP.", + "UpcomingConferenceEventDescription": "Conferința ABP .NET este un eveniment virtual pentru comunitatea dezvoltatorilor .NET pentru a se reuni și a asculta discuții despre lumea .NET, practicile comune de dezvoltare de software și framework-ul ABP open source.", + "LastOneYear": "Ultimul 1 an", + "AllTimes": "Toate timpurile", + "TopContributors": "Colaboratori de top", + "{0}Posts": "{0} Postări", + "LATESTPOSTS": "ULTIMELE POSTĂRI", + "NoContributorsFound": "Nu s-au găsit colaboratori!", + "LatestPost": "Ultima postare", + "MEMBERSINCE{0}": "MEMBRU DIN {0}", + "CopyLink": "Copiază legătură", + "ShareOnTwitter": "Distribuie pe Twitter", + "ShareOnLinkedIn": "Distribuie pe LinkedIn", + "MoreFrom{0}": "Mai multe de la {0}", + "SeeAllFrom{0}": "Vedeți tot de la {0}", + "MostWatched": "Cele mai vizionate", + "Articles({0})": "Articole ({0})", + "Videos({0})": "Videoclipuri ({0})", + "LatestArticles": "ultimele articole", + "RaffleHeader": "Bună ziua, membru al comunității ABP!", + "RafflesInfo": "
Aceasta este pagina de tombolă dedicată pentru a arăta aprecierea noastră față de dvs. pentru că sunteți un membru activ al comunității. Facem ABP Community Talks , ABP .NET Conference , participăm sau sponsorizăm evenimentele legate de .NET în care oferim câteva cadouri.

Puteți urmări această pagină pentru a vedea tombolele viitoare, a participa la ele sau pentru a vedea tombolele anterioare pe care le extragem, inclusiv câștigătorii.

Vă mulțumim că sunteți un membru activ! Ne vedem la tombolele viitoare.", + "RafflesInfoTitle": "Tombole comunitare ABP" } -} +} \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/sk.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/sk.json index 3cb4d88c69..b869378681 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/sk.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/sk.json @@ -13,7 +13,6 @@ "Status": "Stav", "ContentSource": "Zdroj obsahu", "Details": "Podrobnosti", - "Url": "URL", "Title": "Názov", "CreationTime": "Čas vytvorenia", "Save": "Uložiť", @@ -29,23 +28,22 @@ "ContributionGuide": "Sprievodca príspevkami", "BugReport": "Bug report", "SeeAllPosts": "Zobraziť všetky príspevky", - "WelcomeToABPCommunity!": "Vitajte v ABP komunite!", - "MyProfile": "Môj profil", - "MyOrganizations": "Moje organizácie", + "WelcomeToABP": "Vitajte v ABP", "EmailNotValid": "Zadajte platnú e-mailovú adresu.", "FeatureRequest": "Nová funkčnosť", "CreatePostTitleInfo": "Názov príspevku, ktorý sa má zobraziť nad zoznamom príspevkov.", "CreatePostSummaryInfo": "Krátke zhrnutie príspevku, ktoré sa zobrazí nad zoznamom príspevkov.", - "CreatePostCoverInfo": "Ak chcete vytvoriť efektívny článok, pridajte titulnú fotografiu. Pre optimálne zobrazenie nahrávajte obrázky s pomerom strán 16:9. Maximálna veľkosť súboru: 1 MB.", + "CreatePostCoverInfo": "Ak chcete vytvoriť efektívny príspevok, pridajte titulnú fotografiu. Pre optimálne zobrazenie nahrávajte obrázky s pomerom strán 16:9. Maximálna veľkosť súboru: 1 MB.", "ThisExtensionIsNotAllowed": "Toto rozšírenie nie je povolené.", "TheFileIsTooLarge": "Súbor je príliš veľký.", "GoToThePost": "Prejsť na článok", + "GoToTheVideo": "Prejdite na Video", "Contribute": "Prispieť", "OverallProgress": "Celkový pokrok", "Done": "Hotovo", "Open": "Otvoriť", "Closed": "Uzavreté", - "LatestQuestionOnThe": "Posledná otázka", + "RecentQuestionFrom": "Najnovšia otázka od používateľa {0}", "Stackoverflow": "Pretečenie zásobníka", "Votes": "hlasy", "Answer": "Odpoveď", @@ -59,7 +57,7 @@ "QuestionItemErrorMessage": "Z dôvodu pretečenia zísobníka nie je možné načítať detaily poslednej otázky.", "Oops": "Ups!", "CreatePostSuccessMessage": "Článok bol úspešne odoslaný. Bude uverejnený po kontrole administrátorom stránky.", - "ChooseCoverImage": "Vyberte si titulný obrázok...", + "Browse": "Prehľadávať", "CoverImage": "Obrázok obálky", "ShareYourExperiencesWithTheABPFramework": "Podeľte sa o svoje skúsenosti s ABP frameworkom!", "Optional": "Voliteľné", @@ -88,6 +86,8 @@ "PostRequestFromGithubIssue": "Nie sú žiadne žiadosti o článok.", "LatestPosts": "Posledne pridané príspevky", "ArticleRequests": "Žiadané články", + "ArticleRequestsDescription": "Chcete tu vidieť konkrétny obsah? Môžete požiadať komunitu, aby ju vytvorila!", + "LatestContentRequests": "Najnovšie žiadosti o obsah", "AllPostRequests": "Zobraziť všetky žiadosti o články", "SubscribeToTheNewsletter": "Prihlásiť sa k odberu noviniek", "NewsletterEmailDefinition": "Získajte informácie o dianí v ABP, ako sú nové vydania, bezplatné zdroje, články a ďalšie.", @@ -115,7 +115,6 @@ "VideoUrl": "URL adresa videa", "GithubPostUrl": "URL článku na Githube ", "ExternalPostUrl": "URL externého článku", - "CreatePostCoverInfo": "Ak chcete vytvoriť efektívny príspevok, pridajte titulnú fotografiu. Pre optimálne zobrazenie nahrávajte obrázky s pomerom strán 16:9. Maximálna veľkosť súboru: 1 MB.", "ThankYouForContribution": "Ďakujeme, že ste prispeli do ABP komunity.", "GithubPost": "Článok na Githube", "GithubPostSubmitStepOne": "1. Napíšte článok v ľubovoľnom verejnom repozitári GitHub vo formáte Markdown. príklad", @@ -144,6 +143,118 @@ "Volo.AbpIo.Domain:060002": "Obsah článku nie je dostupný v Github zdroji(\"{PostUrl}\").", "Volo.AbpIo.Domain:060003": "Nenašiel sa žiadny obsah článku!", "SeeMore": "Vidět Víc", - "IConsentToMedium": "Súhlasím so zverejnením tohto príspevku na https://medium.com/volosoft." + "JoinTheABPCommunity": "Pripojte sa ku komunite ABP", + "ABPCommunityTalks": "Komunitné rozhovory ABP", + "LiveDemo": "Živá ukážka", + "GetLicense": "Získajte licenciu", + "GetStarted": "Začať", + "SourceCode": "Zdrojový kód", + "LeaveComment": "Zanechajte komentár", + "ShowMore": "Zobraziť viac", + "NoPublishedPostsYet": "Zatiaľ žiadne zverejnené príspevky.", + "Name": "názov", + "Surname": "Priezvisko", + "WebSite": "Webové stránky", + "FullURL": "Úplná adresa URL", + "JobTitle": "Názov práce", + "Prev": "Predch", + "Previous": "Predchádzajúce", + "Next": "Ďalšie", + "Share": "zdieľam", + "SortBy": "Triediť podľa", + "NoPublishedEventsYet": "Zatiaľ žiadne zverejnené udalosti.", + "SubscribeYoutubeChannel": "Prihláste sa na odber kanála Youtube", + "Enum:EventType:0": "Rozhovory", + "MemberNotPublishedPostYet": "Tento člen ešte nepublikoval žiadne príspevky.", + "TimeAgo": "pred {0}", + "Discord_Page_JoinCommunityMessage": "Pripojte sa ku komunite ABP Discord", + "Discord_Page_Announce": "S radosťou oznamujeme ABP Community Discord Server!", + "Discord_Page_Description_1": "Komunita ABP rastie od prvého dňa. Chceli sme to posunúť k ďalšiemu kroku vytvorením oficiálneho servera ABP Discord, aby komunita ABP mohla navzájom komunikovať pomocou zázrakov okamžitých správ.", + "Discord_Page_Description_2": "ABP Community Discord Server je miesto, kde môžete prezentovať svoje výtvory pomocou ABP Framework, zdieľať tipy, ktoré sa vám osvedčili, sledovať najnovšie správy a oznámenia o ABP Framework, len chatovať s členmi komunity, vymieňať si nápady a baviť sa!", + "Discord_Page_Description_3": "Tento ABP Community Discord Server je oficiálny, pričom na serveri je prítomný hlavný tím ABP, ktorý ho monitoruje.", + "Discord_Page_JoinToServer": "Pripojte sa k ABP Discord Server", + "Events_Page_MetaTitle": "Komunitné podujatia ABP", + "Events_Page_MetaDescription": "Živé relácie, ktoré organizuje tím ABP, sú neformálne stretnutia plné komunitného obsahu, ukážok, otázok a odpovedí a diskusií o dianí v ABP.", + "Events_Page_Title": "Komunitné rozhovory ABP", + "Members_Page_WritingFromUser": "Prečítajte si písanie od {0} v komunite ABP.", + "Post_Create_Page_MetaTitle": "Nový príspevok", + "Post_Create_Page_MetaDescription": "Vytvorte svoj príspevok na zdieľanie svojich skúseností s rámcom ABP a prispievaním do komunity ABP.", + "Post_Create_Page_CreateNewPost": "Vytvoriť nový príspevok", + "Post_Index_Page_MetaDescription": "Účelom komunity ABP je vytvoriť prostredie na príspevky pre vývojárov, ktorí používajú rámec ABP.", + "Layout_Title": "{0} | Spoločenstvo ABP", + "Layout_MetaDescription": "Centrum pre ABP Framework, .NET a vývoj softvéru. Získajte prístup k článkom, návodom, novinkám a prispievajte do komunity ABP.", + "Index_Page_CommunityIntroduction": "Toto je centrum pre ABP Framework, .NET a vývoj softvéru. Môžete si prečítať články, pozrieť si videonávody, získať informácie o pokroku vo vývoji ABP a udalostiach súvisiacich s ABP, pomôcť ostatným vývojárom a podeliť sa o svoje odborné znalosti s komunitou ABP.", + "TagsInArticle": "Značky v článku", + "IConsentToMedium": "Súhlasím so zverejnením tohto príspevku na https://medium.com/volosoft.", + "SearchResultsFor": "Výsledky vyhľadávania pre „{0}“", + "SeeMoreVideos": "Pozrite si ďalšie videá", + "DiscordPageTitle": "ABP Discord Community", + "ViewVideo": "Zobraziť video", + "AbpCommunityTitleContent": "ABP Community – Open Source ABP Framework", + "CommunitySlogan": "Jedinečná komunitná platforma pre milovníkov ABP", + "RaffleIsNotActive": "Tombola nie je aktívna", + "YouAreAlreadyJoinedToThisRaffle": "Už ste zaradení do tejto tomboly", + "InvalidSubscriptionCode": "Neplatný kód predplatného", + "Raffle:{0}": "Tombola: {0}", + "Join": "Pripojte sa", + "Leave": "Odísť", + "LoginToJoin": "Ak sa chcete pripojiť, prihláste sa", + "ToEnd:": "Do konca:", + "ToStart:": "Začať:", + "days": "dni", + "hrs": "hod", + "min": "min", + "sec": "sek", + "Winners": "Víťazi", + "To{0}LuckyWinners": "pre {0} šťastných výhercov", + "ActiveRaffles": "Aktívne tomboly", + "UpcomingRaffles": "Nadchádzajúce tomboly", + "CompletedRaffles": "Dokončené tomboly", + "NoActiveRaffleTitle": "Momentálne nie je k dispozícii žiadna aktívna tombola.", + "NoActiveRaffleDescription": "Momentálne nie je k dispozícii žiadna aktívna tombola.", + "RaffleSubscriptionCodeInputMessage": "Táto tombola vyžaduje registračný kód. Zadajte prosím registračný kód nižšie:", + "RaffleSubscriptionCodeInputErrorMessage": "Registračný kód je nesprávny. Prosím skúste znova.", + "GoodJob!": "Dobrá práca!", + "RaffleJoinSuccessMessage": "Úspešne ste sa zaregistrovali do tomboly. O výhre budete informovaní e-mailom!", + "RaffleLoginAndRegisterMessage": "Ak sa chcete zapojiť do tomboly, musíte sa prihlásiť. Účet si môžete vytvoriť zadarmo, ak ste sa ešte nezaregistrovali.", + "Ok": "Dobre", + "SeeDetails": "Pozri detaily", + "WaitingForTheDraw": "Čaká sa na žrebovanie", + "AllAttendees": "Všetci účastníci", + "SeeRaffleDetail": "Pozrite si detail tomboly", + "SeeRaffle": "Pozri Tombola", + "ParticipationIsComplete!": "Účasť je dokončená!", + "ABPCoreDevelopmentTeam": "ABP Core Development Team", + "RegisterTheEvent": "Zaregistrujte udalosť", + "GoToConferencePage": "Prejdite na stránku konferencie", + "BuyTicket": "Kúpiť lístok", + "SeeEvent": "Pozri Udalosť", + "PreviousEvents": "Predchádzajúce udalosti", + "OtherLiveEvents": "Ďalšie živé podujatia", + "SponsoredConferences": "Sponzorované konferencie", + "SponsoredConferencesDescription": "Je nám cťou podporovať komunity .NET a podujatia pre vývojárov softvéru.", + "UpcomingEvents": "Pripravované akcie", + "UpcomingCommunityTalkEventDescription": "Živé relácie, ktoré organizuje tím ABP, sú neformálne stretnutia plné komunitného obsahu, ukážok, otázok a odpovedí a diskusií o dianí v ABP.", + "UpcomingConferenceEventDescription": "Konferencia ABP .NET je virtuálna udalosť pre komunitu vývojárov .NET, aby sa stretli a vypočuli si rozhovory o svete .NET, bežných postupoch vývoja softvéru a open source ABP Framework.", + "LastOneYear": "Posledný 1 rok", + "AllTimes": "Stále", + "TopContributors": "Hlavní prispievatelia", + "{0}Posts": "Počet príspevkov: {0}", + "LATESTPOSTS": "NAJNOVŠIE PRÍSPEVKY", + "NoContributorsFound": "Nenašli sa žiadni prispievatelia!", + "LatestPost": "Najnovší príspevok", + "MEMBERSINCE{0}": "ČLENOM OD {0}", + "CopyLink": "Skopírovať odkaz", + "ShareOnTwitter": "Zdieľať na Twitteri", + "ShareOnLinkedIn": "Zdieľať na LinkedIn", + "MoreFrom{0}": "Viac od používateľa {0}", + "SeeAllFrom{0}": "Zobraziť všetko od používateľa {0}", + "MostWatched": "Najsledovanejšie", + "Articles({0})": "Články ({0})", + "Videos({0})": "Videá ({0})", + "LatestArticles": "Najnovšie články", + "RaffleHeader": "Dobrý deň, člen komunity ABP!", + "RafflesInfo": "
Toto je stránka žrebovania venovaná na vyjadrenie nášho uznania vám za to, že ste aktívnym členom komunity. Robíme ABP Community Talks , ABP .NET konferenciu , zúčastňujeme sa alebo sponzorujeme podujatia súvisiace s .NET, na ktorých rozdávame nejaké darčeky.

Na tejto stránke si môžete pozrieť pripravované tomboly, zúčastniť sa ich alebo si pozrieť predchádzajúce žrebovanie, ktoré vyžrebujeme vrátane výhercov.

Ďakujeme, že ste aktívnym členom! Vidíme sa v najbližšom žrebovaní.", + "RafflesInfoTitle": "Komunitné tomboly ABP" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/sl.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/sl.json index 78c6471697..924c92d5cc 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/sl.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/sl.json @@ -13,7 +13,6 @@ "Status": "Stanje", "ContentSource": "Vir vsebine", "Details": "Podrobnosti", - "Url": "URL", "Title": "Naslov", "CreationTime": "Čas ustvarjanja", "Save": "Shrani", @@ -29,23 +28,22 @@ "ContributionGuide": "Vodnik za prispevke", "BugReport": "Poročilo o napaki", "SeeAllPosts": "Poglej vse objave", - "WelcomeToABPCommunity!": "Dobrodošli v skupnosti ABP!", - "MyProfile": "Moj profil", - "MyOrganizations": "Moje organizacije", + "WelcomeToABP": "Dobrodošli v ABP", "EmailNotValid": "Vnesite veljaven elektronski naslov.", "FeatureRequest": "Zahteva za funkcijo", "CreatePostTitleInfo": "Naslov objave, ki bo prikazan na seznamu objav.", "CreatePostSummaryInfo": "Kratek povzetek objave, ki bo prikazan na seznamu objav.", - "CreatePostCoverInfo": "Če želite ustvariti učinkovit članek, dodajte naslovno fotografijo. Naložite slike v razmerju stranic 16:9 za najboljši pogled. Največja velikost datoteke: 1 MB.", + "CreatePostCoverInfo": "Če želite ustvariti učinkovito objavo, dodajte naslovno fotografijo. Naložite slike v razmerju stranic 16:9 za najboljši pogled. Največja velikost datoteke: 1 MB.", "ThisExtensionIsNotAllowed": "Ta razširitev ni dovoljena.", "TheFileIsTooLarge": "Datoteka je prevelika.", "GoToThePost": "Pojdite na članek", + "GoToTheVideo": "Pojdite na Video", "Contribute": "Prispevajte", "OverallProgress": "Splošni napredek", "Done": "Končano", "Open": "Odprto", "Closed": "Zaprto", - "LatestQuestionOnThe": "Najnovejše vprašanje o", + "RecentQuestionFrom": "Zadnje vprašanje osebe {0}", "Stackoverflow": "Preobremenitev", "Votes": "glasov", "Answer": "Odgovori", @@ -59,7 +57,7 @@ "QuestionItemErrorMessage": "Od Stackoverflowa ni bilo mogoče dobiti najnovejših podrobnosti vprašanja.", "Oops": "Ups!", "CreatePostSuccessMessage": "Članek je bil uspešno oddan. Objavljeno bo po pregledu skrbnika spletnega mesta.", - "ChooseCoverImage": "Izberite naslovno sliko ...", + "Browse": "Prebrskaj", "CoverImage": "Naslovna slika", "ShareYourExperiencesWithTheABPFramework": "Delite svoje izkušnje z ABP Framework!", "Optional": "Neobvezno", @@ -88,6 +86,8 @@ "PostRequestFromGithubIssue": "Zdaj ni nobenih zahtev za članke.", "LatestPosts": "Najnovejše objave", "ArticleRequests": "Zahteve za člen", + "ArticleRequestsDescription": "Želite tukaj videti določeno vsebino? Lahko prosite skupnost, da ga ustvari!", + "LatestContentRequests": "Najnovejše zahteve po vsebini", "AllPostRequests": "Oglejte si vse zahteve za članke", "SubscribeToTheNewsletter": "Naročite se na glasilo", "NewsletterEmailDefinition": "Pridobite informacije o dogajanju v ABP, kot so nove izdaje, brezplačni viri, članki in drugo.", @@ -115,7 +115,6 @@ "VideoUrl": "URL videoposnetka", "GithubPostUrl": "URL članka Github", "ExternalPostUrl": "Zunanji URL članka", - "CreatePostCoverInfo": "Če želite ustvariti učinkovito objavo, dodajte naslovno fotografijo. Naložite slike v razmerju stranic 16:9 za najboljši pogled. Največja velikost datoteke: 1 MB.", "ThankYouForContribution": "Hvala za prispevek k skupnosti ABP.", "GithubPost": "Članek Github", "GithubPostSubmitStepOne": "1. Napišite članek v katerem koli javnem repozitoriju GitHub z obliko Markdown. primer ", @@ -143,6 +142,119 @@ "Volo.AbpIo.Domain:060001": "Izvorni URL (\"{PostUrl}\") ni URL Github", "Volo.AbpIo.Domain:060002": "Vsebina članka ni na voljo iz vira Github(\"{PostUrl}\").", "Volo.AbpIo.Domain:060003": "Vsebina članka ni bila najdena!", - "IConsentToMedium": "Soglašam z objavo te objave na https://medium.com/volosoft." + "SeeMore": "Poglej več", + "JoinTheABPCommunity": "Pridružite se skupnosti ABP", + "ABPCommunityTalks": "Pogovori skupnosti ABP", + "LiveDemo": "Demo v živo", + "GetLicense": "Pridobite licenco", + "GetStarted": "Začeti", + "SourceCode": "Izvorna koda", + "LeaveComment": "Pustite komentar", + "ShowMore": "Pokaži več", + "NoPublishedPostsYet": "Ni še objavljenih objav.", + "Name": "Ime", + "Surname": "Priimek", + "WebSite": "Spletna stran", + "FullURL": "Celoten URL", + "JobTitle": "Naziv delovnega mesta", + "Prev": "Prejšnji", + "Previous": "Prejšnja", + "Next": "Naslednji", + "Share": "Deliti", + "SortBy": "Razvrsti po", + "NoPublishedEventsYet": "Ni še objavljenih dogodkov.", + "SubscribeYoutubeChannel": "Naročite se na Youtube kanal", + "Enum:EventType:0": "Pogovori", + "MemberNotPublishedPostYet": "Ta član še ni objavil nobene objave.", + "TimeAgo": "pred {0}", + "Discord_Page_JoinCommunityMessage": "Pridružite se skupnosti ABP Discord", + "Discord_Page_Announce": "Z veseljem najavljamo ABP Community Discord Server!", + "Discord_Page_Description_1": "Skupnost ABP raste od prvega dne. Želeli smo narediti naslednji korak z ustvarjanjem uradnega strežnika ABP Discord, tako da lahko skupnost ABP komunicira med seboj s pomočjo čudes neposrednega sporočanja.", + "Discord_Page_Description_2": "ABP Community Discord Server je kraj, kjer lahko predstavite svoje stvaritve z uporabo ogrodja ABP, delite nasvete, ki so vam koristili, spremljate najnovejše novice in objave o ogrodju ABP, samo klepetate s člani skupnosti za izmenjavo idej in se zabavate!", + "Discord_Page_Description_3": "Ta strežnik ABP Community Discord je uradni strežnik z ABP Core Team, ki je prisotna na strežniku za spremljanje.", + "Discord_Page_JoinToServer": "Pridružite se strežniku ABP Discord", + "Events_Page_MetaTitle": "Dogodki skupnosti ABP", + "Events_Page_MetaDescription": "Oddaje v živo, ki jih gosti ekipa ABP, so priložnostne seje, polne vsebine skupnosti, predstavitev, vprašanj in odgovorov ter razprav o tem, kaj se dogaja v ABP.", + "Events_Page_Title": "Pogovori skupnosti ABP", + "Members_Page_WritingFromUser": "Preberite pisanje osebe {0} v skupnosti ABP.", + "Post_Create_Page_MetaTitle": "Nova objava", + "Post_Create_Page_MetaDescription": "Ustvarite svojo objavo za izmenjavo izkušenj o ogrodju ABP in prispevanje k skupnosti ABP.", + "Post_Create_Page_CreateNewPost": "Ustvari novo objavo", + "Post_Index_Page_MetaDescription": "Namen skupnosti ABP je ustvariti okolje za prispevke za razvijalce, ki uporabljajo ogrodje ABP.", + "Layout_Title": "{0} | Skupnost ABP", + "Layout_MetaDescription": "Središče za ABP Framework, .NET in razvoj programske opreme. Dostopajte do člankov, vadnic, novic in prispevajte k skupnosti ABP.", + "Index_Page_CommunityIntroduction": "To je središče za ABP Framework, .NET in razvoj programske opreme. Preberete lahko članke, si ogledate video vadnice, se obveščate o napredku razvoja ABP in dogodkih, povezanih z ABP, pomagate drugim razvijalcem in delite svoje strokovno znanje s skupnostjo ABP.", + "TagsInArticle": "Oznake v članku", + "IConsentToMedium": "Soglašam z objavo te objave na https://medium.com/volosoft.", + "SearchResultsFor": "Rezultati iskanja za "{0}"", + "SeeMoreVideos": "Oglejte si več videoposnetkov", + "DiscordPageTitle": "Skupnost ABP Discord", + "ViewVideo": "Ogled videa", + "AbpCommunityTitleContent": "Skupnost ABP – odprtokodno ogrodje ABP", + "CommunitySlogan": "Edinstvena platforma skupnosti za ljubitelje ABP", + "RaffleIsNotActive": "Nagradna igra ni aktivna", + "YouAreAlreadyJoinedToThisRaffle": "Temu žrebanju ste se že pridružili", + "InvalidSubscriptionCode": "Neveljavna naročniška koda", + "Raffle:{0}": "Žrebanje: {0}", + "Join": "Pridruži se", + "Leave": "Pusti", + "LoginToJoin": "Prijavite se za pridružitev", + "ToEnd:": "Na konec:", + "ToStart:": "Začeti:", + "days": "dnevi", + "hrs": "ure", + "min": "min", + "sec": "sek", + "Winners": "Zmagovalci", + "To{0}LuckyWinners": "{0} srečnim zmagovalcem", + "ActiveRaffles": "Aktivne nagradne igre", + "UpcomingRaffles": "Prihajajoče nagradne igre", + "CompletedRaffles": "Dokončane žrebanja", + "NoActiveRaffleTitle": "Trenutno ni na voljo nobena aktivna nagradna igra.", + "NoActiveRaffleDescription": "Trenutno ni na voljo nobena aktivna nagradna igra.", + "RaffleSubscriptionCodeInputMessage": "Za to nagradno igro je potrebna registracijska koda. Prosimo vnesite registracijsko kodo spodaj:", + "RaffleSubscriptionCodeInputErrorMessage": "Registracijska koda je napačna. Prosim poskusite ponovno.", + "GoodJob!": "Dobro opravljeno!", + "RaffleJoinSuccessMessage": "Uspešno ste prijavljeni na nagradno igro. O prejemu nagrade boste obveščeni po elektronski pošti!", + "RaffleLoginAndRegisterMessage": "Za sodelovanje v žrebanju se morate prijaviti. Račun lahko ustvarite brezplačno, če še niste registrirani.", + "Ok": "V redu", + "SeeDetails": "Glej Podrobnosti", + "WaitingForTheDraw": "Čakanje na žreb", + "AllAttendees": "Vsi udeleženci", + "SeeRaffleDetail": "Oglejte si podrobnosti žrebanja", + "SeeRaffle": "Glej nagradna igra", + "ParticipationIsComplete!": "Sodelovanje je zaključeno!", + "ABPCoreDevelopmentTeam": "ABP Core Development Team", + "RegisterTheEvent": "Prijavite dogodek", + "GoToConferencePage": "Pojdite na stran konference", + "BuyTicket": "Nakup vstopnice", + "SeeEvent": "Glej Dogodek", + "PreviousEvents": "Prejšnji dogodki", + "OtherLiveEvents": "Drugi dogodki v živo", + "SponsoredConferences": "Sponzorirane konference", + "SponsoredConferencesDescription": "V čast nam je podpreti skupnosti .NET in dogodke za razvijalce programske opreme.", + "UpcomingEvents": "Prihajajoči dogodki", + "UpcomingCommunityTalkEventDescription": "Oddaje v živo, ki jih gosti ekipa ABP, so priložnostne seje, polne vsebine skupnosti, predstavitev, vprašanj in odgovorov ter razprav o tem, kaj se dogaja v ABP.", + "UpcomingConferenceEventDescription": "Konferenca ABP .NET je virtualni dogodek za skupnost razvijalcev .NET, ki se zbere in posluša pogovore o svetu .NET, običajnih praksah razvoja programske opreme in odprtokodnem ogrodju ABP.", + "LastOneYear": "Zadnje 1 leto", + "AllTimes": "Vsi časi", + "TopContributors": "Najboljši sodelavci", + "{0}Posts": "{0} Objave", + "LATESTPOSTS": "ZADNJE OBJAVE", + "NoContributorsFound": "Ni sodelujočih!", + "LatestPost": "Najnovejša objava", + "MEMBERSINCE{0}": "ČLAN OD {0}", + "CopyLink": "Kopiraj povezavo", + "ShareOnTwitter": "Delite na Twitterju", + "ShareOnLinkedIn": "Delite na LinkedInu", + "MoreFrom{0}": "Več od {0}", + "SeeAllFrom{0}": "Oglejte si vse od {0}", + "MostWatched": "Najbolj gledano", + "Articles({0})": "Članki ({0})", + "Videos({0})": "Videoposnetki ({0})", + "LatestArticles": "Najnovejši članki", + "RaffleHeader": "Pozdravljeni član skupnosti ABP!", + "RafflesInfo": "
To je stran za nagradno igro, namenjena izkazovanju naše hvaležnosti do vas, ker ste aktivni član skupnosti. Izvajamo ABP Community Talks , ABP .NET Conference , se udeležujemo ali sponzoriramo dogodke, povezane z .NET, na katerih podarimo nekaj daril.

To stran lahko spremljate in si ogledate prihajajoče nagradne igre, se jih udeležite ali si ogledate prejšnje nagradne igre, ki smo jih izžrebali, vključno z zmagovalci.

Hvala, ker ste aktivni član! Se vidimo na prihajajočih nagradnih igrah.", + "RafflesInfoTitle": "Žrebanje skupnosti ABP" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/vi.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/vi.json index d3b8cd2d4b..f6f794223e 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/vi.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/vi.json @@ -13,7 +13,6 @@ "Status": "Trạng thái", "ContentSource": "Nguồn nội dung", "Details": "Thông tin chi tiết", - "Url": "Url", "Title": "Tiêu đề", "CreationTime": "Thời gian sáng tạo", "Save": "Cứu", @@ -29,23 +28,22 @@ "ContributionGuide": "Hướng dẫn đóng góp", "BugReport": "Báo cáo lỗi", "SeeAllPosts": "Xem tất cả các bài viết", - "WelcomeToABPCommunity!": "Chào mừng đến với Cộng đồng ABP!", - "MyProfile": "Thông tin của tôi", - "MyOrganizations": "Tổ chức của tôi", + "WelcomeToABP": "Chào mừng đến với ABP", "EmailNotValid": "Vui lòng nhập một địa chỉ email hợp lệ.", "FeatureRequest": "Yêu cầu tính năng", "CreatePostTitleInfo": "Tiêu đề của bài đăng sẽ được hiển thị trên danh sách bài đăng.", "CreatePostSummaryInfo": "Một bản tóm tắt ngắn của bài đăng sẽ được hiển thị trên danh sách bài đăng.", - "CreatePostCoverInfo": "Để tạo một bài viết hiệu quả, hãy thêm ảnh bìa. Tải lên hình ảnh tỷ lệ khung hình 16: 9 để có chế độ xem tốt nhất. Kích thước tệp tối đa: 1MB.", + "CreatePostCoverInfo": "Để tạo một bài đăng hiệu quả, hãy thêm ảnh bìa. Tải lên hình ảnh tỷ lệ khung hình 16: 9 để có chế độ xem tốt nhất. Kích thước tệp tối đa: 1MB.", "ThisExtensionIsNotAllowed": "Phần mở rộng này không được phép.", "TheFileIsTooLarge": "Tệp quá lớn.", "GoToThePost": "Đi tới Bài báo", + "GoToTheVideo": "Đi tới Video", "Contribute": "Đóng góp", "OverallProgress": "Tiến độ tổng thể", "Done": "Xong", "Open": "Mở ra", "Closed": "Đã đóng cửa", - "LatestQuestionOnThe": "Câu hỏi mới nhất về", + "RecentQuestionFrom": "Câu hỏi gần đây từ {0}", "Stackoverflow": "Stackoverflow", "Votes": "phiếu bầu", "Answer": "Bài giải", @@ -59,7 +57,7 @@ "QuestionItemErrorMessage": "Không thể nhận chi tiết câu hỏi mới nhất từ Stackoverflow.", "Oops": "Giáo sư!", "CreatePostSuccessMessage": "Bài báo đã được gửi thành công. Nó sẽ được xuất bản sau khi nhận xét từ quản trị viên trang web.", - "ChooseCoverImage": "Chọn ảnh bìa ...", + "Browse": "Duyệt qua", "CoverImage": "Ảnh bìa", "ShareYourExperiencesWithTheABPFramework": "Chia sẻ kinh nghiệm của bạn với ABP Framework!", "Optional": "Không bắt buộc", @@ -88,6 +86,8 @@ "PostRequestFromGithubIssue": "Không có bất kỳ yêu cầu bài viết bây giờ.", "LatestPosts": "Bài viết mới nhất", "ArticleRequests": "Yêu cầu bài viết", + "ArticleRequestsDescription": "Bạn muốn xem một nội dung cụ thể ở đây? Bạn có thể yêu cầu cộng đồng tạo ra nó!", + "LatestContentRequests": "Yêu cầu nội dung mới nhất", "AllPostRequests": "Xem tất cả các yêu cầu bài viết", "SubscribeToTheNewsletter": "Đăng ký nhận bản tin", "NewsletterEmailDefinition": "Nhận thông tin về các diễn biến trong ABP như các bản phát hành mới, các nguồn miễn phí, các bài báo và hơn thế nữa.", @@ -115,7 +115,6 @@ "VideoUrl": "Url video", "GithubPostUrl": "Url bài viết trên Github", "ExternalPostUrl": "Url bài viết bên ngoài", - "CreatePostCoverInfo": "Để tạo một bài đăng hiệu quả, hãy thêm ảnh bìa. Tải lên hình ảnh tỷ lệ khung hình 16: 9 để có chế độ xem tốt nhất. Kích thước tệp tối đa: 1MB.", "ThankYouForContribution": "Cảm ơn bạn đã đóng góp cho Cộng đồng ABP.", "GithubPost": "Bài báo trên Github", "GithubPostSubmitStepOne": " 1. Viết một bài báo trên bất kỳ kho lưu trữ GitHub công khai nào với định dạng Markdown. ví dụ ", @@ -143,6 +142,119 @@ "Volo.AbpIo.Domain:060001": "URL nguồn (\"{PostUrl}\") không phải là URL Github", "Volo.AbpIo.Domain:060002": "Nội dung Bài viết không có sẵn từ tài nguyên Github (\"{PostUrl}\").", "Volo.AbpIo.Domain:060003": "Không tìm thấy nội dung bài viết!", - "IConsentToMedium": "Tôi đồng ý với việc xuất bản bài đăng này tại https://medium.com/volosoft." + "SeeMore": "Xem thêm", + "JoinTheABPCommunity": "Tham gia cộng đồng ABP", + "ABPCommunityTalks": "Tọa đàm cộng đồng ABP", + "LiveDemo": "Bản thử trực tiếp", + "GetLicense": "Nhận giấy phép", + "GetStarted": "Bắt đầu", + "SourceCode": "Mã nguồn", + "LeaveComment": "Để lại bình luận", + "ShowMore": "Cho xem nhiều hơn", + "NoPublishedPostsYet": "Chưa có bài viết nào được xuất bản.", + "Name": "Tên", + "Surname": "Họ", + "WebSite": "Trang mạng", + "FullURL": "URL đầy đủ", + "JobTitle": "Chức danh", + "Prev": "Trước đó", + "Previous": "Trước", + "Next": "Kế tiếp", + "Share": "Chia sẻ", + "SortBy": "Sắp xếp theo", + "NoPublishedEventsYet": "Chưa có sự kiện nào được công bố.", + "SubscribeYoutubeChannel": "Đăng ký kênh Youtube", + "Enum:EventType:0": "Cuộc nói chuyện", + "MemberNotPublishedPostYet": "Thành viên này chưa xuất bản bất kỳ bài viết nào.", + "TimeAgo": "{0} trước", + "Discord_Page_JoinCommunityMessage": "Tham gia cộng đồng bất hòa ABP", + "Discord_Page_Announce": "Chúng tôi vui mừng thông báo về Máy chủ bất hòa cộng đồng ABP!", + "Discord_Page_Description_1": "Cộng đồng ABP đã phát triển kể từ ngày đầu tiên. Chúng tôi muốn tiến tới bước tiếp theo bằng cách tạo máy chủ ABP Discord chính thức để Cộng đồng ABP có thể tương tác với nhau bằng cách sử dụng tính năng nhắn tin tức thời tuyệt vời.", + "Discord_Page_Description_2": "ABP Community Discord Server là nơi bạn có thể giới thiệu các sáng tạo của mình bằng ABP Framework, chia sẻ các mẹo hiệu quả với bạn, cập nhật những tin tức và thông báo mới nhất về ABP Framework, chỉ cần trò chuyện với các thành viên cộng đồng để trao đổi ý tưởng và giải trí!", + "Discord_Page_Description_3": "Máy chủ Discord Cộng đồng ABP này là máy chủ chính thức có Nhóm cốt lõi ABP có mặt trên máy chủ để giám sát.", + "Discord_Page_JoinToServer": "Tham gia máy chủ bất hòa ABP", + "Events_Page_MetaTitle": "Sự kiện cộng đồng ABP", + "Events_Page_MetaDescription": "Các chương trình trực tiếp do Nhóm ABP tổ chức là các phiên thông thường có đầy đủ nội dung cộng đồng, trình diễn, hỏi đáp và thảo luận xung quanh những gì đang diễn ra trong ABP.", + "Events_Page_Title": "Tọa đàm cộng đồng ABP", + "Members_Page_WritingFromUser": "Đọc bài viết của {0} trên Cộng đồng ABP.", + "Post_Create_Page_MetaTitle": "Bài viết mới", + "Post_Create_Page_MetaDescription": "Tạo bài đăng của bạn để chia sẻ kinh nghiệm của bạn về khung ABP và đóng góp cho Cộng đồng ABP.", + "Post_Create_Page_CreateNewPost": "Tạo bài đăng mới", + "Post_Index_Page_MetaDescription": "Mục đích của Cộng đồng ABP là tạo ra môi trường đóng góp cho các nhà phát triển sử dụng khung ABP.", + "Layout_Title": "{0} | Cộng đồng ABP", + "Layout_MetaDescription": "Một trung tâm dành cho ABP Framework, .NET và phát triển phần mềm. Truy cập các bài viết, hướng dẫn, tin tức và đóng góp cho cộng đồng ABP.", + "Index_Page_CommunityIntroduction": "Đây là trung tâm dành cho ABP Framework, .NET và phát triển phần mềm. Bạn có thể đọc các bài viết, xem video hướng dẫn, nhận thông tin về tiến trình phát triển của ABP và các sự kiện liên quan đến ABP, giúp đỡ các nhà phát triển khác và chia sẻ kiến thức chuyên môn của bạn với cộng đồng ABP.", + "TagsInArticle": "Thẻ trong bài viết", + "IConsentToMedium": "Tôi đồng ý với việc xuất bản bài đăng này tại https://medium.com/volosoft.", + "SearchResultsFor": "Kết quả tìm kiếm cho "{0}"", + "SeeMoreVideos": "Xem thêm video", + "DiscordPageTitle": "Cộng đồng bất hòa ABP", + "ViewVideo": "Xem video", + "AbpCommunityTitleContent": "Cộng đồng ABP - Khung ABP mã nguồn mở", + "CommunitySlogan": "Một nền tảng cộng đồng độc đáo dành cho những người yêu thích ABP", + "RaffleIsNotActive": "Xổ số không hoạt động", + "YouAreAlreadyJoinedToThisRaffle": "Bạn đã tham gia xổ số này", + "InvalidSubscriptionCode": "Mã đăng ký không hợp lệ", + "Raffle:{0}": "Xổ số: {0}", + "Join": "Tham gia", + "Leave": "Rời khỏi", + "LoginToJoin": "Đăng nhập để tham gia", + "ToEnd:": "Để kết thúc:", + "ToStart:": "Để bắt đầu:", + "days": "ngày", + "hrs": "giờ", + "min": "phút", + "sec": "giây", + "Winners": "Người chiến thắng", + "To{0}LuckyWinners": "tới {0} người chiến thắng may mắn", + "ActiveRaffles": "Xổ số đang hoạt động", + "UpcomingRaffles": "Xổ số sắp tới", + "CompletedRaffles": "Xổ số đã hoàn thành", + "NoActiveRaffleTitle": "Không có xổ số hoạt động có sẵn tại thời điểm này.", + "NoActiveRaffleDescription": "Không có xổ số hoạt động có sẵn tại thời điểm này.", + "RaffleSubscriptionCodeInputMessage": "Xổ số này yêu cầu mã đăng ký. Vui lòng nhập mã đăng ký bên dưới:", + "RaffleSubscriptionCodeInputErrorMessage": "Mã đăng ký không chính xác. Vui lòng thử lại.", + "GoodJob!": "Làm tốt lắm!", + "RaffleJoinSuccessMessage": "Bạn đã đăng ký tham gia xổ số thành công. Bạn sẽ được thông báo qua email nếu bạn giành được giải thưởng!", + "RaffleLoginAndRegisterMessage": "Bạn nên đăng nhập để tham gia xổ số. Bạn có thể tạo một tài khoản miễn phí nếu chưa đăng ký.", + "Ok": "Được rồi", + "SeeDetails": "Xem chi tiết", + "WaitingForTheDraw": "Chờ bốc thăm", + "AllAttendees": "Tất cả người tham dự", + "SeeRaffleDetail": "Xem chi tiết xổ số", + "SeeRaffle": "Xem xổ số", + "ParticipationIsComplete!": "Việc tham gia đã hoàn tất!", + "ABPCoreDevelopmentTeam": "Nhóm phát triển cốt lõi của ABP", + "RegisterTheEvent": "Đăng ký sự kiện", + "GoToConferencePage": "Tới trang hội nghị", + "BuyTicket": "Mua vé", + "SeeEvent": "Xem sự kiện", + "PreviousEvents": "Sự kiện trước đó", + "OtherLiveEvents": "Sự kiện trực tiếp khác", + "SponsoredConferences": "Hội nghị được tài trợ", + "SponsoredConferencesDescription": "Chúng tôi rất vinh dự được hỗ trợ các cộng đồng và sự kiện .NET dành cho các nhà phát triển phần mềm.", + "UpcomingEvents": "sự kiện sắp tới", + "UpcomingCommunityTalkEventDescription": "Các chương trình trực tiếp do Nhóm ABP tổ chức là các phiên thông thường có đầy đủ nội dung cộng đồng, trình diễn, hỏi đáp và thảo luận xung quanh những gì đang diễn ra trong ABP.", + "UpcomingConferenceEventDescription": "Hội nghị ABP .NET là một sự kiện ảo dành cho cộng đồng Nhà phát triển .NET cùng nhau lắng nghe các cuộc nói chuyện về thế giới .NET, các phương pháp phát triển phần mềm phổ biến và ABP Framework nguồn mở.", + "LastOneYear": "1 năm qua", + "AllTimes": "Tất cả thời gian", + "TopContributors": "những người đóng góp hàng đầu", + "{0}Posts": "{0} bài đăng", + "LATESTPOSTS": "BÀI VIẾT MỚI NHẤT", + "NoContributorsFound": "Không tìm thấy người đóng góp!", + "LatestPost": "Bài đăng Mới nhất", + "MEMBERSINCE{0}": "THÀNH VIÊN KỂ TỪ {0}", + "CopyLink": "Sao chép đường dẫn", + "ShareOnTwitter": "Chia sẽ trên Twitter", + "ShareOnLinkedIn": "Chia sẻ trên LinkedIn", + "MoreFrom{0}": "Thông tin khác từ {0}", + "SeeAllFrom{0}": "Xem tất cả từ {0}", + "MostWatched": "Xem nhiều nhất", + "Articles({0})": "Bài viết ({0})", + "Videos({0})": "Video ({0})", + "LatestArticles": "Bài viết mới nhất", + "RaffleHeader": "Xin chào Thành viên Cộng đồng ABP!", + "RafflesInfo": "
Đây là trang xổ số dành riêng để thể hiện sự đánh giá cao của chúng tôi đối với bạn vì đã trở thành Thành viên cộng đồng tích cực. Chúng tôi tổ chức các buổi nói chuyện cộng đồng ABP , Hội nghị ABP .NET , tham dự hoặc tài trợ cho các sự kiện liên quan đến .NET mà trong đó chúng tôi tặng một số quà tặng.

Bạn có thể theo dõi trang này để xem các cuộc xổ số sắp tới, tham dự hoặc xem các cuộc xổ số trước đây mà chúng tôi rút ra bao gồm cả những người chiến thắng.

Cảm ơn bạn đã là thành viên tích cực! Hẹn gặp lại các bạn trong đợt xổ số sắp tới.", + "RafflesInfoTitle": "Xổ số cộng đồng ABP" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/zh-Hans.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/zh-Hans.json index 6d2083ed76..42fe514b09 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/zh-Hans.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/zh-Hans.json @@ -37,6 +37,7 @@ "ThisExtensionIsNotAllowed": "不允许此扩展名.", "TheFileIsTooLarge": "文件过大.", "GoToThePost": "转到文章", + "GoToTheVideo": "前往视频", "Contribute": "贡献", "OverallProgress": "总体流程", "Done": "完成", @@ -187,6 +188,73 @@ "IConsentToMedium": "我同意在 https://medium.com/volosoft 上发布这篇文章。", "SearchResultsFor": " span class=\"fw-bold\">\"{0}\"的搜索结果", "SeeMoreVideos": "查看更多视频", - "DiscordPageTitle": "ABP Discord社区" + "DiscordPageTitle": "ABP Discord社区", + "ViewVideo": "观看视频", + "AbpCommunityTitleContent": "ABP 社区 - 开源 ABP 框架", + "CommunitySlogan": "一个独特的ABP 爱好者社区平台", + "RaffleIsNotActive": "抽奖未激活", + "YouAreAlreadyJoinedToThisRaffle": "您已经参加了本次抽奖", + "InvalidSubscriptionCode": "订阅代码无效", + "Raffle:{0}": "抽奖:{0}", + "Join": "加入", + "Leave": "离开", + "LoginToJoin": "登录加入", + "ToEnd:": "结束:", + "ToStart:": "开始:", + "days": "天", + "hrs": "小时", + "min": "分钟", + "sec": "秒", + "Winners": "获奖者", + "To{0}LuckyWinners": "致 {0} 位幸运获奖者", + "ActiveRaffles": "活跃的莱佛士", + "UpcomingRaffles": "即将开业的莱佛士酒店", + "CompletedRaffles": "莱佛士竣工", + "NoActiveRaffleTitle": "目前没有有效的抽奖活动。", + "NoActiveRaffleDescription": "目前没有有效的抽奖活动。", + "RaffleSubscriptionCodeInputMessage": "本次抽奖需要注册码。请输入以下注册码:", + "RaffleSubscriptionCodeInputErrorMessage": "注册码不正确。请再试一次。", + "GoodJob!": "好工作!", + "RaffleJoinSuccessMessage": "您已成功注册参加抽奖。如果您获奖,我们将通过电子邮件通知您!", + "RaffleLoginAndRegisterMessage": "您应该登录才能参加抽奖。如果您尚未注册,可以免费创建一个帐户。", + "Ok": "好的", + "SeeDetails": "查看具体信息", + "WaitingForTheDraw": "等待抽奖", + "AllAttendees": "所有与会者", + "SeeRaffleDetail": "查看抽奖详情", + "SeeRaffle": "查看抽奖活动", + "ParticipationIsComplete!": "参与完毕!", + "ABPCoreDevelopmentTeam": "ABP核心开发团队", + "RegisterTheEvent": "注册活动", + "GoToConferencePage": "进入会议页面", + "BuyTicket": "买票", + "SeeEvent": "查看活动", + "PreviousEvents": "往届活动", + "OtherLiveEvents": "其他现场活动", + "SponsoredConferences": "赞助会议", + "SponsoredConferencesDescription": "我们很荣幸为软件开发人员支持 .NET 社区和活动。", + "UpcomingEvents": "即将举行的活动", + "UpcomingCommunityTalkEventDescription": "现场表演由 ABP 团队主持,是休闲会议,充满社区内容、演示、问答以及围绕 ABP 发生的事情的讨论。", + "UpcomingConferenceEventDescription": "ABP .NET 会议是 .NET 开发人员社区聚集在一起聆听有关 .NET 世界、常见软件开发实践和开源 ABP 框架的讨论的虚拟活动。", + "LastOneYear": "过去 1 年", + "AllTimes": "一直", + "TopContributors": "杰出贡献者", + "{0}Posts": "{0} 条帖子", + "LATESTPOSTS": "最新帖子", + "NoContributorsFound": "未找到贡献者!", + "LatestPost": "最新的帖子", + "MEMBERSINCE{0}": "自 {0} 起成为会员", + "CopyLink": "复制链接", + "ShareOnTwitter": "分享到Twitter", + "ShareOnLinkedIn": "在领英上分享", + "MoreFrom{0}": "来自{0}的更多内容", + "SeeAllFrom{0}": "查看来自{0}的全部内容", + "MostWatched": "最受关注", + "Articles({0})": "文章 ({0})", + "Videos({0})": "视频 ({0})", + "LatestArticles": "最新的文章", + "RaffleHeader": "ABP 社区成员您好!", + "RafflesInfo": "
这是抽奖页面,旨在表达我们对您作为活跃社区成员的感谢。我们举办ABP 社区讲座、ABP .NET 会议、参加或赞助 .NET 相关活动,并在活动中赠送一些礼物。

您可以关注此页面查看即将举行的抽奖活动、参加抽奖活动或查看我们之前抽奖的抽奖活动(包括获奖者)。

感谢您成为活跃会员!在即将到来的抽奖活动中再见。", + "RafflesInfoTitle": "ABP 社区莱佛士" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/zh-Hant.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/zh-Hant.json index 4ac910d98a..62159a4d21 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/zh-Hant.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/zh-Hant.json @@ -13,7 +13,6 @@ "Status": "地位", "ContentSource": "內容來源", "Details": "細節", - "Url": "網址", "Title": "標題", "CreationTime": "創建時間", "Save": "節省", @@ -29,23 +28,22 @@ "ContributionGuide": "貢獻指南", "BugReport": "錯誤報告", "SeeAllPosts": "查看所有帖子", - "WelcomeToABPCommunity!": "歡迎來到 ABP 社區!", - "MyProfile": "我的簡歷", - "MyOrganizations": "我的組織", + "WelcomeToABP": "歡迎來到總部基地", "EmailNotValid": "請輸入有效的電子郵件地址。", "FeatureRequest": "功能要求", "CreatePostTitleInfo": "要在帖子列表中顯示的帖子的標題。", "CreatePostSummaryInfo": "要在帖子列表中顯示的帖子的簡短摘要。", - "CreatePostCoverInfo": "要創建有效的文章,請添加封面照片。上傳 16:9 縱橫比的圖片以獲得最佳觀看效果。最大文件大小:1MB。", + "CreatePostCoverInfo": "要創建有效的帖子,請添加封面照片。上傳 16:9 縱橫比的圖片以獲得最佳觀看效果。最大文件大小:1MB。", "ThisExtensionIsNotAllowed": "不允許使用此擴展名。", "TheFileIsTooLarge": "文件太大。", "GoToThePost": "轉到文章", + "GoToTheVideo": "前往視頻", "Contribute": "貢獻", "OverallProgress": "總體進程", "Done": "完畢", "Open": "打開", "Closed": "關閉", - "LatestQuestionOnThe": "最新問題", + "RecentQuestionFrom": "{0} 最近提出的問題", "Stackoverflow": "堆棧溢出", "Votes": "選票", "Answer": "回答", @@ -59,7 +57,7 @@ "QuestionItemErrorMessage": "無法從 Stackoverflow 獲取最新的問題詳細信息。", "Oops": "哎呀!", "CreatePostSuccessMessage": "文章已成功提交。它將在站點管理員審核後發布。", - "ChooseCoverImage": "選擇封面圖片...", + "Browse": "瀏覽", "CoverImage": "封面圖片", "ShareYourExperiencesWithTheABPFramework": "分享您使用 ABP 框架的經驗!", "Optional": "可選的", @@ -88,6 +86,8 @@ "PostRequestFromGithubIssue": "現在沒有任何文章請求。", "LatestPosts": "最新帖子", "ArticleRequests": "文章請求", + "ArticleRequestsDescription": "想在這裡查看具體內容嗎?您可以要求社區創建它!", + "LatestContentRequests": "最新內容請求", "AllPostRequests": "查看所有文章請求", "SubscribeToTheNewsletter": "訂閱時事通訊", "NewsletterEmailDefinition": "獲取有關 ABP 中發生的事件的信息,例如新版本、免費資源、文章等。", @@ -115,7 +115,6 @@ "VideoUrl": "視頻網址", "GithubPostUrl": "Github 文章網址", "ExternalPostUrl": "外部文章網址", - "CreatePostCoverInfo": "要創建有效的帖子,請添加封面照片。上傳 16:9 縱橫比的圖片以獲得最佳觀看效果。最大文件大小:1MB。", "ThankYouForContribution": "感謝您為 ABP 社區做出貢獻。", "GithubPost": "Github 文章", "GithubPostSubmitStepOne": "1. 用 Markdown 格式在任何公共 GitHub 存儲庫上寫一篇文章。 示例", @@ -142,6 +141,120 @@ "MinimumSearchContent": "您必須輸入至少 3 個字符!", "Volo.AbpIo.Domain:060001": "源 URL(\"{PostUrl}\") 不是 Github URL", "Volo.AbpIo.Domain:060002": "文章內容無法從 Github(\"{PostUrl}\") 資源中獲得。", - "Volo.AbpIo.Domain:060003": "沒有找到文章內容!" + "Volo.AbpIo.Domain:060003": "沒有找到文章內容!", + "SeeMore": "看更多", + "JoinTheABPCommunity": "加入 ABP 社區", + "ABPCommunityTalks": "ABP 社區講座", + "LiveDemo": "現場演示", + "GetLicense": "獲得許可證", + "GetStarted": "開始使用", + "SourceCode": "原始碼", + "LeaveComment": "發表評論", + "ShowMore": "展示更多", + "NoPublishedPostsYet": "尚未發布貼文。", + "Name": "姓名", + "Surname": "姓", + "WebSite": "網站", + "FullURL": "完整網址", + "JobTitle": "職稱", + "Prev": "上一篇", + "Previous": "以前的", + "Next": "下一個", + "Share": "分享", + "SortBy": "排序方式", + "NoPublishedEventsYet": "尚未發布事件。", + "SubscribeYoutubeChannel": "訂閱 YouTube 頻道", + "Enum:EventType:0": "會談", + "MemberNotPublishedPostYet": "該會員尚未發表任何貼文。", + "TimeAgo": "{0}前", + "Discord_Page_JoinCommunityMessage": "加入 ABP Discord 社區", + "Discord_Page_Announce": "我們很高興宣布 ABP 社群 Discord 伺服器!", + "Discord_Page_Description_1": "ABP 社群從第一天起就一直在發展。我們希望更進一步,創建一個官方的 ABP Discord 伺服器,以便 ABP 社群可以利用即時訊息的奇妙功能相互互動。", + "Discord_Page_Description_2": "ABP 社群 Discord Server 是您使用 ABP 框架展示您的創作、分享對您有用的技巧、了解有關 ABP 框架的最新新聞和公告的地方,只需與社群成員聊天交流想法,並玩得開心!", + "Discord_Page_Description_3": "該 ABP 社群 Discord 伺服器是官方伺服器,ABP 核心團隊在該伺服器上進行監控。", + "Discord_Page_JoinToServer": "加入 ABP Discord 伺服器", + "Events_Page_MetaTitle": "ABP 社區活動", + "Events_Page_MetaDescription": "現場表演由 ABP 團隊主持,是休閒會議,充滿社區內容、演示、問答以及圍繞 ABP 發生的事情的討論。", + "Events_Page_Title": "ABP社區講座", + "Members_Page_WritingFromUser": "在 ABP 社群上閱讀 {0} 的文章。", + "Post_Create_Page_MetaTitle": "最新貼文", + "Post_Create_Page_MetaDescription": "建立貼文來分享您有關 ABP 框架的經驗並為 ABP 社群做出貢獻。", + "Post_Create_Page_CreateNewPost": "建立新帖子", + "Post_Index_Page_MetaDescription": "ABP社群的宗旨是為使用ABP框架的開發者創造一個貢獻環境。", + "Layout_Title": "{0} |總部社區", + "Layout_MetaDescription": "ABP 架構、.NET 和軟體開發中心。造訪文章、教學、新聞並為 ABP 社群做出貢獻。", + "Index_Page_CommunityIntroduction": "這是 ABP 框架、.NET 和軟體開發的中心。您可以閱讀文章、觀看影片教學、了解 ABP 的開發進度和 ABP 相關活動、幫助其他開發者並與 ABP 社群分享您的專業知識。", + "TagsInArticle": "文章中的標籤", + "IConsentToMedium": "我同意在 https://medium.com/volosoft 上發布這篇文章。", + "SearchResultsFor": "“{0}”的搜尋結果", + "SeeMoreVideos": "看更多視頻", + "DiscordPageTitle": "ABP 不和諧社區", + "ViewVideo": "觀看影片", + "AbpCommunityTitleContent": "ABP 社群 - 開源 ABP 框架", + "CommunitySlogan": "一個獨特的ABP 愛好者社群平台", + "RaffleIsNotActive": "抽獎未激活", + "YouAreAlreadyJoinedToThisRaffle": "您已經參加了本次抽獎", + "InvalidSubscriptionCode": "訂閱代碼無效", + "Raffle:{0}": "抽獎:{0}", + "Join": "加入", + "Leave": "離開", + "LoginToJoin": "登入加入", + "ToEnd:": "結束:", + "ToStart:": "開始:", + "days": "天", + "hrs": "小時", + "min": "分分鐘", + "sec": "秒", + "Winners": "得獎者", + "To{0}LuckyWinners": "致 {0} 位幸運得獎者", + "ActiveRaffles": "活躍的萊佛士", + "UpcomingRaffles": "即將開幕的萊佛士酒店", + "CompletedRaffles": "萊佛士完工", + "NoActiveRaffleTitle": "目前沒有有效的抽獎活動。", + "NoActiveRaffleDescription": "目前沒有有效的抽獎活動。", + "RaffleSubscriptionCodeInputMessage": "本次抽獎需註冊碼。請輸入以下註冊碼:", + "RaffleSubscriptionCodeInputErrorMessage": "註冊碼不正確。請再試一次。", + "GoodJob!": "好工作!", + "RaffleJoinSuccessMessage": "您已成功註冊參加抽獎。如果您獲獎,我們將透過電子郵件通知您!", + "RaffleLoginAndRegisterMessage": "您應該登入才能參加抽獎。如果您尚未註冊,可以免費建立帳戶。", + "Ok": "好的", + "SeeDetails": "查看具體資訊", + "WaitingForTheDraw": "等待抽獎", + "AllAttendees": "所有與會者", + "SeeRaffleDetail": "看抽獎詳情", + "SeeRaffle": "查看抽獎活動", + "ParticipationIsComplete!": "參與完畢!", + "ABPCoreDevelopmentTeam": "ABP核心開發團隊", + "RegisterTheEvent": "註冊活動", + "GoToConferencePage": "進入會議頁面", + "BuyTicket": "買票", + "SeeEvent": "查看活動", + "PreviousEvents": "往屆活動", + "OtherLiveEvents": "其他現場活動", + "SponsoredConferences": "贊助會議", + "SponsoredConferencesDescription": "我們很榮幸為軟體開發人員支援 .NET 社群和活動。", + "UpcomingEvents": "即將舉行的活動", + "UpcomingCommunityTalkEventDescription": "現場表演由 ABP 團隊主持,是休閒會議,充滿社區內容、演示、問答以及圍繞 ABP 發生的事情的討論。", + "UpcomingConferenceEventDescription": "ABP .NET 會議是 .NET 開發人員社群聚集在一起聆聽有關 .NET 世界、常見軟體開發實踐和開源 ABP 框架的討論的虛擬活動。", + "LastOneYear": "過去 1 年", + "AllTimes": "一直", + "TopContributors": "傑出貢獻者", + "{0}Posts": "{0} 篇帖子", + "LATESTPOSTS": "最新貼文", + "NoContributorsFound": "未找到貢獻者!", + "LatestPost": "最新的帖子", + "MEMBERSINCE{0}": "自 {0} 起成為會員", + "CopyLink": "複製連結", + "ShareOnTwitter": "分享到Twitter", + "ShareOnLinkedIn": "在領英上分享", + "MoreFrom{0}": "更多來自{0}的內容", + "SeeAllFrom{0}": "看來自{0}的全部內容", + "MostWatched": "最受關注", + "Articles({0})": "文章 ({0})", + "Videos({0})": "影片 ({0})", + "LatestArticles": "最新的文章", + "RaffleHeader": "ABP 社群成員您好!", + "RafflesInfo": "
這是抽獎頁面,旨在表達我們對您作為活躍社區成員的感謝。我們舉辦ABP 社群講座、ABP .NET 會議、參加或贊助 .NET 相關活動,並在活動中贈送一些禮物。

您可以關注此頁面查看即將舉行的抽獎活動、參加抽獎活動或查看我們之前抽獎的抽獎活動(包括獲獎者)。

感謝您成為活躍會員!在即將到來的抽獎活動中再見。", + "RafflesInfoTitle": "ABP 社區萊佛士" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Docs/Localization/Resources/ar.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Docs/Localization/Resources/ar.json new file mode 100644 index 0000000000..1bebde4237 --- /dev/null +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Docs/Localization/Resources/ar.json @@ -0,0 +1,9 @@ +{ + "culture": "ar", + "texts": { + "Buy": "يشتري", + "SeeBookDetails": "انظر تفاصيل الكتاب", + "MasteringAbpFrameworkEBookDescription": "سيساعدك هذا الكتاب على اكتساب فهم كامل لإطار العمل وتقنيات تطوير تطبيقات الويب الحديثة.", + "Feedback": "تعليق" + } +} \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Docs/Localization/Resources/cs.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Docs/Localization/Resources/cs.json new file mode 100644 index 0000000000..22693b986d --- /dev/null +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Docs/Localization/Resources/cs.json @@ -0,0 +1,9 @@ +{ + "culture": "cs", + "texts": { + "Buy": "Koupit", + "SeeBookDetails": "Viz Podrobnosti knihy", + "MasteringAbpFrameworkEBookDescription": "Tato kniha vám pomůže získat úplné pochopení rámce a moderních technik vývoje webových aplikací.", + "Feedback": "Zpětná vazba" + } +} \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Docs/Localization/Resources/de.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Docs/Localization/Resources/de.json new file mode 100644 index 0000000000..ce0acdd3b3 --- /dev/null +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Docs/Localization/Resources/de.json @@ -0,0 +1,9 @@ +{ + "culture": "de", + "texts": { + "Buy": "Kaufen", + "SeeBookDetails": "Siehe Buchdetails", + "MasteringAbpFrameworkEBookDescription": "Dieses Buch wird Ihnen helfen, ein umfassendes Verständnis des Frameworks und moderner Webanwendungsentwicklungstechniken zu erlangen.", + "Feedback": "Rückmeldung" + } +} \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Docs/Localization/Resources/es.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Docs/Localization/Resources/es.json new file mode 100644 index 0000000000..3411569bf1 --- /dev/null +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Docs/Localization/Resources/es.json @@ -0,0 +1,9 @@ +{ + "culture": "es", + "texts": { + "Buy": "Comprar", + "SeeBookDetails": "Ver detalles del libro", + "MasteringAbpFrameworkEBookDescription": "Este libro le ayudará a obtener una comprensión completa del marco y las técnicas modernas de desarrollo de aplicaciones web.", + "Feedback": "Comentario" + } +} \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Docs/Localization/Resources/fi.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Docs/Localization/Resources/fi.json index 201c63e800..b498b993c8 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Docs/Localization/Resources/fi.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Docs/Localization/Resources/fi.json @@ -1,6 +1,9 @@ { "culture": "fi", "texts": { - "Buy": "Osta" + "Buy": "Osta", + "SeeBookDetails": "Katso kirjan tiedot", + "MasteringAbpFrameworkEBookDescription": "Tämä kirja auttaa sinua saamaan täydellisen käsityksen puitteista ja nykyaikaisista verkkosovelluskehitystekniikoista.", + "Feedback": "Palaute" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Docs/Localization/Resources/fr.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Docs/Localization/Resources/fr.json new file mode 100644 index 0000000000..c298593b37 --- /dev/null +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Docs/Localization/Resources/fr.json @@ -0,0 +1,9 @@ +{ + "culture": "fr", + "texts": { + "Buy": "Acheter", + "SeeBookDetails": "Voir les détails du livre", + "MasteringAbpFrameworkEBookDescription": "Ce livre vous aidera à acquérir une compréhension complète du framework et des techniques modernes de développement d'applications Web.", + "Feedback": "Retour" + } +} \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Docs/Localization/Resources/hi.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Docs/Localization/Resources/hi.json new file mode 100644 index 0000000000..894216af42 --- /dev/null +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Docs/Localization/Resources/hi.json @@ -0,0 +1,9 @@ +{ + "culture": "hi", + "texts": { + "Buy": "खरीदना", + "SeeBookDetails": "पुस्तक विवरण देखें", + "MasteringAbpFrameworkEBookDescription": "यह पुस्तक आपको रूपरेखा और आधुनिक वेब एप्लिकेशन विकास तकनीकों की पूरी समझ हासिल करने में मदद करेगी।", + "Feedback": "प्रतिक्रिया" + } +} \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Docs/Localization/Resources/hr.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Docs/Localization/Resources/hr.json new file mode 100644 index 0000000000..4eb859b919 --- /dev/null +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Docs/Localization/Resources/hr.json @@ -0,0 +1,9 @@ +{ + "culture": "hr", + "texts": { + "Buy": "Kupiti", + "SeeBookDetails": "Pogledajte pojedinosti o knjizi", + "MasteringAbpFrameworkEBookDescription": "Ova knjiga pomoći će vam da steknete potpuno razumijevanje okvira i modernih tehnika razvoja web aplikacija.", + "Feedback": "Povratne informacije" + } +} \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Docs/Localization/Resources/hu.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Docs/Localization/Resources/hu.json new file mode 100644 index 0000000000..31434eb820 --- /dev/null +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Docs/Localization/Resources/hu.json @@ -0,0 +1,9 @@ +{ + "culture": "hu", + "texts": { + "Buy": "megvesz", + "SeeBookDetails": "Lásd a könyv részleteit", + "MasteringAbpFrameworkEBookDescription": "Ez a könyv segít a keretrendszer és a modern webalkalmazás-fejlesztési technikák teljes megértésében.", + "Feedback": "Visszacsatolás" + } +} \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Docs/Localization/Resources/is.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Docs/Localization/Resources/is.json new file mode 100644 index 0000000000..7b050e1833 --- /dev/null +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Docs/Localization/Resources/is.json @@ -0,0 +1,9 @@ +{ + "culture": "is", + "texts": { + "Buy": "Kaupa", + "SeeBookDetails": "Sjá Upplýsingar um bók", + "MasteringAbpFrameworkEBookDescription": "Þessi bók mun hjálpa þér að öðlast fullkominn skilning á umgjörðinni og nútíma þróunartækni á vefforritum.", + "Feedback": "Endurgjöf" + } +} \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Docs/Localization/Resources/it.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Docs/Localization/Resources/it.json new file mode 100644 index 0000000000..3116bb4fe1 --- /dev/null +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Docs/Localization/Resources/it.json @@ -0,0 +1,9 @@ +{ + "culture": "it", + "texts": { + "Buy": "Acquistare", + "SeeBookDetails": "Vedi i dettagli del libro", + "MasteringAbpFrameworkEBookDescription": "Questo libro ti aiuterà ad acquisire una comprensione completa del framework e delle moderne tecniche di sviluppo di applicazioni web.", + "Feedback": "Feedback" + } +} \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Docs/Localization/Resources/nl.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Docs/Localization/Resources/nl.json new file mode 100644 index 0000000000..bc5228e6e7 --- /dev/null +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Docs/Localization/Resources/nl.json @@ -0,0 +1,9 @@ +{ + "culture": "nl", + "texts": { + "Buy": "Kopen", + "SeeBookDetails": "Zie Boekdetails", + "MasteringAbpFrameworkEBookDescription": "Dit boek zal u helpen een volledig inzicht te krijgen in het raamwerk en de moderne ontwikkelingstechnieken voor webapplicaties.", + "Feedback": "Feedback" + } +} \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Docs/Localization/Resources/pl-PL.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Docs/Localization/Resources/pl-PL.json new file mode 100644 index 0000000000..24b5b3eb4e --- /dev/null +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Docs/Localization/Resources/pl-PL.json @@ -0,0 +1,9 @@ +{ + "culture": "pl-PL", + "texts": { + "Buy": "Kupić", + "SeeBookDetails": "Zobacz Szczegóły książki", + "MasteringAbpFrameworkEBookDescription": "Ta książka pomoże Ci w pełni zrozumieć framework i nowoczesne techniki tworzenia aplikacji internetowych.", + "Feedback": "Informacja zwrotna" + } +} \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Docs/Localization/Resources/pt-BR.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Docs/Localization/Resources/pt-BR.json index 2012b4c128..e91c1b3ac7 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Docs/Localization/Resources/pt-BR.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Docs/Localization/Resources/pt-BR.json @@ -1,5 +1,9 @@ { "culture": "pt-BR", "texts": { + "Buy": "Comprar", + "SeeBookDetails": "Ver detalhes do livro", + "MasteringAbpFrameworkEBookDescription": "Este livro o ajudará a obter uma compreensão completa da estrutura e das técnicas modernas de desenvolvimento de aplicativos da web.", + "Feedback": "Opinião" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Docs/Localization/Resources/ro-RO.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Docs/Localization/Resources/ro-RO.json index c5a76c1617..5822d5f366 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Docs/Localization/Resources/ro-RO.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Docs/Localization/Resources/ro-RO.json @@ -1,5 +1,9 @@ { "culture": "ro-RO", "texts": { + "Buy": "Cumpără", + "SeeBookDetails": "Vedeți detaliile cărții", + "MasteringAbpFrameworkEBookDescription": "Această carte vă va ajuta să obțineți o înțelegere completă a cadrului și a tehnicilor moderne de dezvoltare a aplicațiilor web.", + "Feedback": "Părere" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Docs/Localization/Resources/sk.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Docs/Localization/Resources/sk.json new file mode 100644 index 0000000000..3a607be0c7 --- /dev/null +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Docs/Localization/Resources/sk.json @@ -0,0 +1,9 @@ +{ + "culture": "sk", + "texts": { + "Buy": "Kúpiť", + "SeeBookDetails": "Pozri Podrobnosti knihy", + "MasteringAbpFrameworkEBookDescription": "Táto kniha vám pomôže získať úplné pochopenie rámca a moderných techník vývoja webových aplikácií.", + "Feedback": "Spätná väzba" + } +} \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Docs/Localization/Resources/sl.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Docs/Localization/Resources/sl.json index 103359cbc2..3e21f0ce66 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Docs/Localization/Resources/sl.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Docs/Localization/Resources/sl.json @@ -1,5 +1,9 @@ { "culture": "sl", "texts": { + "Buy": "Nakup", + "SeeBookDetails": "Glejte podrobnosti o knjigi", + "MasteringAbpFrameworkEBookDescription": "Ta knjiga vam bo pomagala pridobiti popolno razumevanje ogrodja in sodobnih tehnik razvoja spletnih aplikacij.", + "Feedback": "Povratne informacije" } -} +} \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Docs/Localization/Resources/vi.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Docs/Localization/Resources/vi.json new file mode 100644 index 0000000000..331f2abd1f --- /dev/null +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Docs/Localization/Resources/vi.json @@ -0,0 +1,9 @@ +{ + "culture": "vi", + "texts": { + "Buy": "Mua", + "SeeBookDetails": "Xem chi tiết sách", + "MasteringAbpFrameworkEBookDescription": "Cuốn sách này sẽ giúp bạn có được sự hiểu biết đầy đủ về framework và các kỹ thuật phát triển ứng dụng web hiện đại.", + "Feedback": "Nhận xét" + } +} \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Docs/Localization/Resources/zh-Hans.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Docs/Localization/Resources/zh-Hans.json index 2bbfd5b749..a4fc830c69 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Docs/Localization/Resources/zh-Hans.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Docs/Localization/Resources/zh-Hans.json @@ -1,6 +1,9 @@ { "culture": "zh-Hans", "texts": { - "Buy": "购买" + "Buy": "购买", + "SeeBookDetails": "查看书籍详情", + "MasteringAbpFrameworkEBookDescription": "本书将帮助您全面了解框架和现代 Web 应用程序开发技术。", + "Feedback": "反馈" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Docs/Localization/Resources/zh-Hant.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Docs/Localization/Resources/zh-Hant.json index 7de3798218..ac0c951172 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Docs/Localization/Resources/zh-Hant.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Docs/Localization/Resources/zh-Hant.json @@ -1,5 +1,9 @@ { "culture": "zh-Hant", "texts": { + "Buy": "買", + "SeeBookDetails": "查看書籍詳情", + "MasteringAbpFrameworkEBookDescription": "本書將幫助您全面了解框架和現代 Web 應用程式開發技術。", + "Feedback": "回饋" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Support/Localization/Resources/ar.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Support/Localization/Resources/ar.json new file mode 100644 index 0000000000..d6c7767655 --- /dev/null +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Support/Localization/Resources/ar.json @@ -0,0 +1,6 @@ +{ + "culture": "ar", + "texts": { + "FAQ": "التعليمات" + } +} \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Support/Localization/Resources/cs.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Support/Localization/Resources/cs.json new file mode 100644 index 0000000000..b415d30d55 --- /dev/null +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Support/Localization/Resources/cs.json @@ -0,0 +1,6 @@ +{ + "culture": "cs", + "texts": { + "FAQ": "FAQ" + } +} \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Support/Localization/Resources/de.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Support/Localization/Resources/de.json new file mode 100644 index 0000000000..af4f2e077d --- /dev/null +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Support/Localization/Resources/de.json @@ -0,0 +1,6 @@ +{ + "culture": "de", + "texts": { + "FAQ": "FAQ" + } +} \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Support/Localization/Resources/es.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Support/Localization/Resources/es.json new file mode 100644 index 0000000000..be41176560 --- /dev/null +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Support/Localization/Resources/es.json @@ -0,0 +1,6 @@ +{ + "culture": "es", + "texts": { + "FAQ": "Preguntas más frecuentes" + } +} \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Support/Localization/Resources/fr.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Support/Localization/Resources/fr.json new file mode 100644 index 0000000000..48a6020a62 --- /dev/null +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Support/Localization/Resources/fr.json @@ -0,0 +1,6 @@ +{ + "culture": "fr", + "texts": { + "FAQ": "FAQ" + } +} \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Support/Localization/Resources/hi.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Support/Localization/Resources/hi.json new file mode 100644 index 0000000000..808ebcb351 --- /dev/null +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Support/Localization/Resources/hi.json @@ -0,0 +1,6 @@ +{ + "culture": "hi", + "texts": { + "FAQ": "सामान्य प्रश्न" + } +} \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Support/Localization/Resources/hr.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Support/Localization/Resources/hr.json new file mode 100644 index 0000000000..7371df2891 --- /dev/null +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Support/Localization/Resources/hr.json @@ -0,0 +1,6 @@ +{ + "culture": "hr", + "texts": { + "FAQ": "Pitanja" + } +} \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Support/Localization/Resources/is.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Support/Localization/Resources/is.json new file mode 100644 index 0000000000..76fb4c1adc --- /dev/null +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Support/Localization/Resources/is.json @@ -0,0 +1,6 @@ +{ + "culture": "is", + "texts": { + "FAQ": "Algengar spurningar" + } +} \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Support/Localization/Resources/it.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Support/Localization/Resources/it.json new file mode 100644 index 0000000000..7fd03eb092 --- /dev/null +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Support/Localization/Resources/it.json @@ -0,0 +1,6 @@ +{ + "culture": "it", + "texts": { + "FAQ": "FAQ" + } +} \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Support/Localization/Resources/nl.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Support/Localization/Resources/nl.json new file mode 100644 index 0000000000..1fcd53aeea --- /dev/null +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Support/Localization/Resources/nl.json @@ -0,0 +1,6 @@ +{ + "culture": "nl", + "texts": { + "FAQ": "FAQ" + } +} \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Support/Localization/Resources/pl-PL.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Support/Localization/Resources/pl-PL.json new file mode 100644 index 0000000000..ad12dfab61 --- /dev/null +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Support/Localization/Resources/pl-PL.json @@ -0,0 +1,6 @@ +{ + "culture": "pl-PL", + "texts": { + "FAQ": "Często zadawane pytania" + } +} \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Support/Localization/Resources/ru.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Support/Localization/Resources/ru.json new file mode 100644 index 0000000000..6cb1ac98df --- /dev/null +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Support/Localization/Resources/ru.json @@ -0,0 +1,6 @@ +{ + "culture": "ru", + "texts": { + "FAQ": "Часто задаваемые вопросы" + } +} \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Support/Localization/Resources/sk.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Support/Localization/Resources/sk.json new file mode 100644 index 0000000000..ee2cfd7d92 --- /dev/null +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Support/Localization/Resources/sk.json @@ -0,0 +1,6 @@ +{ + "culture": "sk", + "texts": { + "FAQ": "FAQ" + } +} \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Support/Localization/Resources/vi.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Support/Localization/Resources/vi.json new file mode 100644 index 0000000000..ba0f8a7973 --- /dev/null +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Support/Localization/Resources/vi.json @@ -0,0 +1,6 @@ +{ + "culture": "vi", + "texts": { + "FAQ": "Câu hỏi thường gặp" + } +} \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/ar.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/ar.json index 26fd7af520..50bf186c22 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/ar.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/ar.json @@ -174,6 +174,8 @@ "CreateProjectWizard": "ينشئ هذا المعالج مشروعًا جديدًا من قالب بدء التشغيل الذي تم تكوينه بشكل صحيح لبدء الانتقال إلى مشروعك.", "TieredOption": "ينشئ حلاً متدرجًا حيث يتم فصل طبقات واجهة برمجة تطبيقات الويب و Http فعليًا. إذا لم يتم تحديده ، يتم إنشاء حل متعدد الطبقات يكون أقل تعقيدًا ومناسبًا لمعظم السيناريوهات.", "SeparateIdentityServerOption": "يفصل جانب الخادم إلى تطبيقين: الأول مخصص لخادم الهوية والآخر مخصص لواجهة برمجة تطبيقات HTTP من جانب الخادم.", + "SeparateAuthenticationServerOption": "يفصل جانب الخادم إلى تطبيقين: الأول مخصص لخادم المصادقة والثاني مخصص لواجهة برمجة تطبيقات HTTP من جانب الخادم الخاص بك.", + "ProgressiveWebApplicationOption": "يحدد المشروع كتطبيق ويب تقدمي", "UseslatestPreVersion": "يستخدم أحدث نسخة تجريبية", "ReadTheDocumentation": " اقرأ المستندات ", "Documentation": "المستندات", @@ -214,7 +216,11 @@ "SeeDocs": "انظر المستندات", "None": "لا يوجد", "Application": "تطبيق", + "ApplicationExplanation": "ينشئ حلاً متعدد الطبقات بناءً على ممارسات التصميم المستندة إلى المجال. يوصى به للمشاريع طويلة المدى التي تحتاج إلى قاعدة تعليمات برمجية قابلة للصيانة وقابلة للتوسيع.", + "ApplicationNoLayer": "التطبيق (طبقة واحدة)", + "ApplicationNoLayerExplanation": "إنشاء تطبيق ويب أحادي الطبقة. يوصى به لإنشاء تطبيق ذو بنية أبسط وسهلة الفهم.", "Module": "وحدة", + "ModuleExplanation": "إنشاء حل وحدة تطبيق ذو طبقات كاملة وقابل لإعادة الاستخدام. يمكنك استخدام هذا الخيار لإنشاء وحدات نمطية لتطبيقك المعياري.", "PackageName": "اسم الحزمة", "LicenseURL": "رابط الرخصة", "License": "رخصة", @@ -291,6 +297,7 @@ "EnterYouEmailToGetNews": "أدخل بريدك الإلكتروني للحصول على آخر الأخبار حول إطار عمل ABP", "Tiered": "متدرج", "SeparateIdentityServer": "خادم هوية منفصل", + "SeparateAuthenticationServer": "خادم مصادقة منفصل", "ProgressiveWebApplication": "تطبيق ويب تقدمي", "Preview": "معاينة", "CreateANewSolution": "قم بإنشاء حل جديد", @@ -402,11 +409,37 @@ "SingleLayerApplicationExplanation2": "موصى به لبناء تطبيق بمعمارية أبسط وأسهل في الفهم.", "ApplicationModule": "وحدة
التطبيق", "SeeTheScreenshot": "انظر الى الصورة", - "Details": "التفاصيل", "ApplicationModuleExplanation1": "إنشاء حل وحدة تطبيق ذات طبقات كاملة وقابلة لإعادة الاستخدام.", "ApplicationModuleExplanation2": "يمكنك استخدام هذا الخيار لإنشاء وحدات نمطية لتطبيقك المعياري.", + "Expert_": "خبير", + "Partner_": "شراكة", + "WebSite": "موقع إلكتروني", + "Expert_Year": "سنة الخبرة", + "CompanyInfo": "معلومات الشركة", + "Date": "تاريخ", + "WhoWeAre_Partner": "من نحن", + "WhoWeAre_Expert": "ْعَنِّي", "CreateSolutionFolder": "إنشاء مجلد الحل", "CreateSolutionFolderOption": "يحدد ما إذا كان المشروع سيكون في مجلد جديد في مجلد الإخراج أو مجلد الإخراج مباشرة.", - "BooksPageTitle": "كتب ABP" + "BooksPageTitle": "كتب ABP", + "PackageDetailPage_NuGetPackageInstallationOptions": "هناك ثلاث طرق لتثبيت حزمة {0} NuGet على مشروعك", + "PackageDetailPage_InstallingWithABPCLI": "1: التثبيت باستخدام ABP CLI", + "PackageDetailPage_InstallingWithABPCLIDescription1": "إذا لم تقم بتثبيت ABP CLI ، فقم بالتثبيت أولاً عن طريق تنفيذ الأمر التالي في محطة سطر الأوامر", + "PackageDetailPage_InstallingWithABPCLIDescription2": "بمجرد تثبيت ABP CLI، افتح محطة سطر الأوامر في موقع المشروع (ملف .csproj ) الذي تريد تثبيته وقم بتنفيذ الأمر التالي", + "PackageDetailPage_InstallingWithABPCLIDescription3": "سيضيف مرجع الحزمة {0} إلى مشروعك والتبعية {1} إلى فئة الوحدة النمطية الخاصة بك.", + "PackageDetailPage_ManualInstallation": "2: التثبيت باستخدام Dotnet CLI", + "PackageDetailPage_ManualInstallationDescription1": "أضف {0} مرجع حزمة NuGet إلى مشروعك باستخدام IDE الخاص بك أو تنفيذ الأمر التالي", + "PackageDetailPage_ManualInstallationDescription2": "ثم قم بإضافة تبعية {0} إلى فئة الوحدة الخاصة بك كما هو موضح في المثال التالي", + "PackageDetailPage_SeeDocumentation": "راجع الوثائق لمعرفة كيفية استخدام هذه الحزمة في تطبيقاتك.", + "PackageDetailPage_InstallingUsingPMC": "3: التثبيت باستخدام وحدة تحكم إدارة الحزم", + "PackageDetailPage_InstallingUsingPMCDescription1": "افتح وحدة تحكم إدارة الحزم في Visual Studio (أدوات -> Nuget Package Manager -> وحدة تحكم إدارة الحزم) وقم بتنفيذ الأمر التالي", + "UIOptions": "خيارات واجهة المستخدم", + "Testimonials": "الشهادات - التوصيات", + "CoolestCompaniesUseABPFramework": "أروع الشركات تستخدم إطار عمل ABP", + "Index_Page_Testimonial_1": "إن ABP Framework ليس مجرد أداة ولكنه حافز ساعد في تسريع نموي كمطور. لقد مكنني من إنشاء ميزات جديدة بشكل أسرع من أي وقت مضى، مما يذكرنا بتجارب المستخدمين الآخرين. لقد أدى نمط البرمجة الموحد إلى تبسيط مشاريعي، مما أتاح لي مزيدًا من الوقت للتركيز على الإنشاء بدلاً من استكشاف الأخطاء وإصلاحها. \n أود أن أقول إن إطار عمل برنامج الجسر الأكاديمي كان بمثابة حجر الزاوية في رحلتي المهنية المبكرة. لقد سهّل انتقالي من مطور طموح إلى محترف واثق ومستعد لترك بصمة في عالم البرمجيات. إنني أتطلع إلى المشاريع المثيرة التي تنتظرني، مع العلم أن برنامج الجسر الأكاديمي سيكون هناك لإرشادي. إنه أكثر من مجرد منتج؛ فهو شريك في النجاح.", + "Index_Page_Testimonial_2": "إطار عمل ABP ليس مجرد إطار عمل، بل هو أيضًا دليل لتطوير/إدارة المشروع، لأنه يوفر تدريبات DDD وGenericRepository وDI وMicroservice وModularity. حتى لو كنت لن تستخدم إطار العمل نفسه، يمكنك تطوير نفسك باستخدام docs.abp.io الذي تم إعداده جيدًا واحترافيًا. (OpenIddict، وRedis، وQuartz، وما إلى ذلك) \n نظرًا لأن العديد من الأشياء تم إنشاؤها مسبقًا، فإنها تقلل من وقت تطوير المشروع بشكل كبير. (مثل صفحة تسجيل الدخول، ومعالجة الاستثناءات، وتصفية البيانات، وتسجيل التدقيق، والترجمة، ووحدة التحكم التلقائية في API وما إلى ذلك) \n كمثال من تطبيقنا، استخدمت ناقل الأحداث المحلي للتحكم في المخزون. لذلك، أنا قادر على إدارة حركات الطلب عن طريق كتابة معالج الأسهم. \n إنه لأمر رائع ألا نضيع الوقت في CreationTime، CreatorId. يتم ملؤها تلقائيًا.", + "VideosLoginAndRegisterMessage": "يجب عليك تسجيل الدخول لمشاهدة مقاطع الفيديو. يمكنك إنشاء حساب للمشاهدة إذا لم تقم بذلك.", + "Filter": "منقي", + "VideoCourses": "دورات الفيديو" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/cs.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/cs.json index 09e87ba3be..cf6c910ab1 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/cs.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/cs.json @@ -174,6 +174,8 @@ "CreateProjectWizard": "Tento průvodce vytvoří nový projekt ze spouštěcí šablony, která je správně nakonfigurována tak, aby spustila váš projekt.", "TieredOption": "Vytvoří vrstvené řešení, kde jsou vrstvy Web a Http API fyzicky odděleny. Pokud není zaškrtnuto, vytvoří vrstvené řešení, které je méně složité a vhodné pro většinu scénářů.", "SeparateIdentityServerOption": "Rozděluje stranu serveru na dvě aplikace: První je pro server identity a druhá je pro HTTP API na straně serveru.", + "SeparateAuthenticationServerOption": "Rozděluje stranu serveru na dvě aplikace: První je pro ověřovací server a druhá je pro HTTP API na straně serveru.", + "ProgressiveWebApplicationOption": "Určuje projekt jako progresivní webovou aplikaci", "UseslatestPreVersion": "Používá nejnovější předběžnou verzi", "ReadTheDocumentation": "Přečíst Dokumentaci", "Documentation": "Dokumentace", @@ -214,7 +216,11 @@ "SeeDocs": "Viz Dokumenty", "None": "Žádný", "Application": "aplikace", + "ApplicationExplanation": "Vytváří plně vrstvené řešení založené na postupech Domain Driven Design. Doporučeno pro dlouhodobé projekty, které potřebují udržovatelnou a rozšiřitelnou kódovou základnu.", + "ApplicationNoLayer": "Aplikace (jedna vrstva)", + "ApplicationNoLayerExplanation": "Vytvoří jednovrstvou webovou aplikaci. Doporučeno pro vytváření aplikací s jednodušší a srozumitelnější architekturou.", "Module": "Modul", + "ModuleExplanation": "Vytváří znovu použitelné, plně vrstvené řešení aplikačního modulu. Tuto možnost můžete použít k vytvoření modulů pro vaši modulární aplikaci.", "PackageName": "Název balíčku", "LicenseURL": "Adresa URL licence", "License": "Licence", @@ -274,8 +280,166 @@ "FirstEdition": "První vydání", "ThankYou": "Děkuji!", "CheckboxMandatory": "Chcete-li pokračovat, musíte toto zaškrtnout!", + "UserInterface": "Uživatelské rozhraní", + "APIGateway": "Brána API", + "Database": "Databáze", + "Saas": "Saas", + "OpenSourceWebApp": "Open source
webová aplikace", + "Framework": "Rámec", + "AuditLoggingExplanation": "Automaticky sledujte všechny operace a změny dat ve vašem systému.", + "AbpNewCommandExplanation": "Vytváří nová řešení pomocí spouštěcích šablon ABP.", + "AbpAddModuleCommandExplanation": "Nainstaluje do vašeho řešení předpřipravené aplikační moduly", + "AbpUpdateCommandExplanation": "Automaticky aktualizuje všechny balíčky NuGet a NPM související s ABP ve vašem řešení.", + "ExploreAllCLICommands": "Prozkoumat všechny příkazy CLI", + "ExploreDocumentationAndGuides": "Prozkoumejte komplexní dokumentaci a průvodce.", + "Documentations": "Dokumentace", + "Views": "Pohledy", + "EnterYouEmailToGetNews": "Zadejte svůj e-mail a získejte nejnovější zprávy o ABP Framework", + "Tiered": "Víceúrovňový", + "SeparateIdentityServer": "Samostatný server identity", + "SeparateAuthenticationServer": "Samostatný autentizační server", + "ProgressiveWebApplication": "Progresivní webová aplikace", + "Preview": "Náhled", + "CreateANewSolution": "Vytvořte nové řešení", + "ABPFrameworkFeatures": "Funkce rámce ABP", + "Commercial": "Komerční", + "ThirdPartyTools": "Nástroje třetích stran", + "Back": "Zadní", + "Community": "Společenství", + "SeeMore": "Vidět víc", + "DetailsOfTheEBook": "Podrobnosti e-knihy", + "JoinOurMarketingNewsletter": "Připojte se k našemu marketingovému zpravodaji", + "FrameworkNewsletterConfirmationMessage": "Souhlasím s Podmínkami a Zásadami ochrany osobních údajů .", + "GetYourFreeEBook": "Získejte zdarma e-knihu DDD", + "EverythingYouNeedToKnow": "Vše, co potřebujete vědět.", + "PreOrderNow": "Předobjednat nyní", + "UITheming": "Motiv uživatelského rozhraní", + "UIThemingExplanation": "Vytvářejte opakovaně použitelné motivy a rozvržení uživatelského rozhraní nebo použijte jeden z předem vytvořených motivů uživatelského rozhraní.", + "DataFilteringExplanation2": "Automaticky filtrujte dotazy z databáze a snadno implementujte vzory, jako je soft-delete a multi-tenancy.", + "NeedHelp": "Potřebovat pomoc?", + "GiveYourProjectAName": "Pojmenujte svůj projekt", + "SelectProjectType": "Vyberte Typ projektu", + "SelectUIFramework": "Vyberte UI Framework", + "SelectDatabaseProvider": "Vyberte Poskytovatel databáze", + "SelectDatabaseManagementSystem": "Vyberte Systém správy databáze", + "InstallingTheABPCLI": "Instalace ABP CLI", + "CreateYourProjectNow": "Vytvořte svůj projekt hned teď", + "OrderOn": "Objednejte na {0}", + "DownloadFreeDDDBook": "Stáhněte si zdarma DDD knihu", + "WhatIsABPFramework": "Co je rámec ABP?", + "TenantDatabase": "Databáze nájemců {0}", + "SharedDatabase": "Sdílená databáze", + "ConnectionResolver": "Connection Resolver", + "TenantBasedDataFilter": "Filtr dat podle nájemců", + "ApplicationCode": "Kód aplikace", + "TenantResolution": "Usnesení nájemce", + "TenantUser": "Uživatel nájemce {0}", + "CardTitle": "Název karty", + "View": "Pohled", + "Model": "Modelka", + "Email": "E-mailem", + "Password": "Heslo", + "Address": "Adresa", + "Gender": "Rod", + "Male": "mužský", + "Female": "ženský", + "Submit": "Předložit", + "Unspecified": "Nespecifikováno", + "StaticFileMiddleware": "Middleware statických souborů", + "RazorViewEngine": "Razor View Engine", + "PhysicalFiles": "Fyzické soubory (wwwroot)", + "EmbeddedFiles": "Vložené soubory (DLL)", + "DynamicFiles": "Dynamické soubory (paměť)", + "BuildSolutionsWithAbp": "Vytvářejte udržovatelná řešení .NET podle osvědčených postupů vývoje softwaru pomocí ABP.", + "BuyOnAmazon": "Koupit na Amazonu", + "BuyOnPackt": "Koupit na Packt", + "Discounted": "Zlevněné", + "MasteringAbpFramework_Book_KeyFeatures": "Klíčové vlastnosti", + "MasteringAbpFramework_Book_Key_Features_Description_1": "Vytvářejte robustní, udržovatelná, modulární a škálovatelná softwarová řešení pomocí ABP Framework.", + "MasteringAbpFramework_Book_Key_Features_Description_2": "Naučte se implementovat principy SOLID a doménově řízený design ve vašich webových aplikacích.", + "MasteringAbpFramework_Book_Key_Features_Description_3": "Zjistěte, jak ABP Framework urychluje váš vývojový cyklus automatizací opakujících se úloh.", + "MasteringAbpFramework_Book_Description": "Popis knihy", + "MasteringAbpFramework_Book_Description_Details_1": "ABP Framework je kompletní infrastruktura pro vytváření moderních webových aplikací podle osvědčených postupů a konvencí vývoje softwaru \n . S rámcem a ekosystémem ABP na vysoké úrovni můžete \n implementovat princip Don't Repeat Yourself (DRY) a soustředit se na svůj obchodní kód.", + "MasteringAbpFramework_Book_Description_Details_2": "Tato kniha, kterou napsal tvůrce ABP Framework, vám pomůže získat úplné pochopení rámce \n a moderních technik vývoje webových aplikací. S podrobným vysvětlením základních konceptů \n a praktickými příklady pochopíte požadavky moderního webového řešení a pochopíte, jak vám ABP \n Framework usnadňuje vývoj vašich vlastních řešení. Objevíte běžné požadavky na vývoj podnikových webových aplikací \n a prozkoumáte infrastrukturu poskytovanou ABP. V celé knize \n se seznámíte s osvědčenými postupy vývoje softwaru pro vytváření udržovatelných a modulárních webových řešení \n .", + "MasteringAbpFramework_Book_Description_Details_3": "Na konci této knihy budete schopni vytvořit kompletní webové řešení, které lze snadno vyvíjet, udržovat a testovat \n .", + "MasteringAbpFramework_Book_WhatYouWillLearn": "Co se naučíte", + "MasteringAbpFramework_Book_What_You_Will_Learn_1": "Nastavte vývojové prostředí a začněte s ABP Framework.", + "MasteringAbpFramework_Book_What_You_Will_Learn_2": "Spolupracujte s Entity Framework Core a MongoDB na vývoji své vrstvy přístupu k datům.", + "MasteringAbpFramework_Book_What_You_Will_Learn_3": "Pochopte průřezové problémy a jak ABP automatizuje opakující se úkoly.", + "MasteringAbpFramework_Book_What_You_Will_Learn_4": "Naučte se implementovat doménově řízený design pomocí ABP Framework.", + "MasteringAbpFramework_Book_What_You_Will_Learn_5": "Vytvářejte stránky a komponenty uživatelského rozhraní pomocí ASP.NET Core MVC (Razor Pages) a Blazor.", + "MasteringAbpFramework_Book_What_You_Will_Learn_6": "Vytvářejte modulární webové aplikace pomocí multi-tenancy.", + "MasteringAbpFramework_Book_What_You_Will_Learn_7": "Pochopte modularitu a vytvořte opakovaně použitelné aplikační moduly.", + "MasteringAbpFramework_Book_What_You_Will_Learn_8": "Napište testy jednotek, integrace a uživatelského rozhraní pomocí ABP Framework.", + "MasteringAbpFramework_Book_WhoIsThisBookFor": "Pro koho je tato kniha", + "MasteringAbpFramework_Book_WhoIsThisBookFor_Description": "Tato kniha je určena webovým vývojářům, kteří se chtějí naučit softwarové architektury a osvědčené postupy pro vytváření udržovatelných webových řešení \n pomocí technologií Microsoft a ABP Framework. K tomu, abyste mohli začít s touto knihou, jsou nezbytné základní znalosti C# \n a ASP.NET Core.", + "ComputersAndTechnology": "Počítače a technologie", + "BuildingMicroserviceSolutions": "Budování Microservice Solutions", + "MicroserviceBookPracticalGuide": "Tato kniha je referenčním průvodcem pro vývoj a správu aplikací založených na mikroslužbách pomocí ABP Framework. Odkazuje na ukázkovou referenční aplikaci .NET Microservice : eShopOnContainers a popisuje architektonický návrh a implementační přístupy pomocí ABP Framework. Na konci této knihy se dozvíte, jak ABP přistupuje k běžným složitostem mikroslužeb, jako je autorizace, distribuované transakce, komunikace mezi mikroslužbami, nasazení atd.", + "IntroducingTheSolution": "Představujeme řešení eShopOnAbp", + "RunningTheSolution": "Spuštění řešení", + "UnderstandingTheAuthenticationSystem": "Pochopení autentizačního systému", + "ExploringTheApplications": "Prozkoumávání aplikací", + "UnderstandingTheAPIGateways": "Pochopení brány API", + "DevelopingTheMicroservices": "Rozvoj mikroslužeb", + "UnderstandingTheInfrastructure": "Porozumění infrastruktuře", + "DiggingInTheUseCases": "Hledání v případech použití", + "DeployingTheSolution": "Nasazení řešení", + "ThisBookIsInDraftStageAndIsNotCompletedYet": "Tato kniha je ve fázi návrhu a ještě není dokončena.", + "Authors": "Autoři", + "MicroserviceEBook": "Elektronická kniha mikroservisu", "SelectUITheme": "Vyberte téma uživatelského rozhraní", + "LeptonXLiteTheme": "Téma LeptonX Lite", + "BasicTheme": "Základní téma", + "LeptonXLiteThemeInfo": "Moderní a stylové téma uživatelského rozhraní Bootstrap. Ideální, pokud chcete mít téma uživatelského rozhraní připravené na produkci. Toto je nejnovější téma a je výchozí.", + "BasicThemeInfo": "Minimalistický motiv uživatelského rozhraní s jednoduchými barvami a styly Bootstrapu. Ideální, pokud si vytvoříte vlastní téma uživatelského rozhraní.", + "SeeDocumentation": "Viz dokumentace .", + "SeeFullScreen": "🖼️ Podívejte se na snímek obrazovky", + "BuildingMicroserviceSolutionsShortDescription": "Tato kniha je referenčním průvodcem pro vývoj a správu aplikací založených na mikroslužbách pomocí ABP Framework.", + "InstallAbpCliMessage": "Nainstalujte ABP CLI do terminálu příkazového řádku, pokud jste jej nenainstalovali dříve:", + "Terminal": "Terminál", + "Copy": "kopírovat", + "RunTheFollowingCommand": "Spusťte následující příkaz v terminálu příkazového řádku:", + "ChangeSolutionOptionsBelow": "Níže můžete změnit možnosti řešení.", + "MultiLayerApplication": "Vícevrstvé
aplikace", + "MultiLayerApplicationExplanation1": "Vytváří plně vrstvené řešení založené na postupech Domain Driven Design.", + "MultiLayerApplicationExplanation2": "Doporučeno pro dlouhodobé projekty, které potřebují udržovatelnou a rozšiřitelnou kódovou základnu.", + "SingleLayerApplication": "Jedna vrstva
aplikace", + "SingleLayerApplicationExplanation1": "Vytvoří jednovrstvou webovou aplikaci.", + "SingleLayerApplicationExplanation2": "Doporučeno pro vytváření aplikací s jednodušší a srozumitelnější architekturou.", + "ApplicationModule": "aplikace
Modul", + "SeeTheScreenshot": "Viz snímek obrazovky", + "ApplicationModuleExplanation1": "Vytváří znovu použitelné, plně vrstvené řešení aplikačního modulu.", + "ApplicationModuleExplanation2": "Tuto možnost můžete použít k vytvoření modulů pro vaši modulární aplikaci.", + "Expert_": "Expert", + "Partner_": "Partnerství", + "WebSite": "Webová stránka", + "Expert_Year": "Rok odbornosti", + "CompanyInfo": "firemní informace", + "Date": "datum", + "WhoWeAre_Partner": "Kdo jsme", + "WhoWeAre_Expert": "O mně", "CreateSolutionFolder": "Vytvořit složku řešení", - "CreateSolutionFolderOption": "Určuje, zda bude projekt v nové složce ve výstupní složce nebo přímo výstupní složce." + "CreateSolutionFolderOption": "Určuje, zda bude projekt v nové složce ve výstupní složce nebo přímo výstupní složce.", + "BooksPageTitle": "Knihy ABP", + "PackageDetailPage_NuGetPackageInstallationOptions": "Existují tři způsoby, jak nainstalovat balíček NuGet {0} do vašeho projektu", + "PackageDetailPage_InstallingWithABPCLI": "1: Instalace pomocí ABP CLI", + "PackageDetailPage_InstallingWithABPCLIDescription1": "Pokud jste nenainstalovali ABP CLI , nejprve nainstalujte provedením následujícího příkazu v terminálu příkazového řádku", + "PackageDetailPage_InstallingWithABPCLIDescription2": "Jakmile nainstalujete ABP CLI, otevřete terminál příkazového řádku v umístění projektu (soubor .csproj ), do kterého jej chcete nainstalovat, a spusťte následující příkaz", + "PackageDetailPage_InstallingWithABPCLIDescription3": "Přidá odkaz na balíček {0} do vašeho projektu a závislost {1} do vaší třídy modulů.", + "PackageDetailPage_ManualInstallation": "2: Instalace pomocí rozhraní CLI Dotnet", + "PackageDetailPage_ManualInstallationDescription1": "Přidejte do projektu odkaz na balíček NuGet {0} pomocí vašeho IDE nebo provedením následujícího příkazu", + "PackageDetailPage_ManualInstallationDescription2": "Poté přidejte závislost {0} do své třídy modulu , jak je znázorněno v následujícím příkladu", + "PackageDetailPage_SeeDocumentation": "Informace o použití tohoto balíčku ve vašich aplikacích naleznete v dokumentaci .", + "PackageDetailPage_InstallingUsingPMC": "3: Instalace pomocí konzoly Správce balíčků", + "PackageDetailPage_InstallingUsingPMCDescription1": "Otevřete konzolu Správce balíčků v sadě Visual Studio (Nástroje -> Správce balíčků Nuget -> Konzola správce balíčků) a spusťte následující příkaz", + "UIOptions": "Možnosti uživatelského rozhraní", + "Testimonials": "Posudky", + "CoolestCompaniesUseABPFramework": "Nejlepší společnosti používají rámec ABP", + "Index_Page_Testimonial_1": "ABP Framework není jen nástroj, ale katalyzátor, který urychlil můj vývojový růst. Umožnilo mi to vytvářet nové funkce rychleji než kdy předtím, připomínající zkušenosti ostatních uživatelů. Jednotný vzor kódování zefektivnil mé projekty a dal mi více času soustředit se spíše na vytváření než na řešení problémů. \n Řekl bych, že ABP Framework byl základním kamenem mé rané profesní cesty. Usnadnilo mi to přechod z ctižádostivého vývojáře na sebevědomého profesionála připraveného udělat značku ve světě softwaru. Těším se na vzrušující projekty, které mě čekají, protože vím, že ABP mě bude vést. Je to víc než jen produkt; je to partner úspěchu.", + "Index_Page_Testimonial_2": "ABP Framework není jen rámec, je to také návod pro vývoj/řízení projektů, protože poskytuje školení DDD, GenericRepository, DI, Microservice, Modularity. I když se nechystáte používat samotný framework, můžete se vyvíjet s docs.abp.io, který je dobře a profesionálně připraven. (OpenIddict, Redis, Quartz atd.) \n Protože je mnoho věcí předpřipravených, výrazně to zkracuje dobu vývoje projektu. (Jako přihlašovací stránka, zpracování výjimek, filtrování dat-seedování, protokolování auditu, lokalizace, automatický api řadič atd.) \n Jako příklad z naší aplikace jsem pro řízení zásob použil místní sběrnici událostí. Takže jsem schopen řídit pohyby objednávek psaním skladového manipulátoru. \n Je skvělé neztrácet čas pro CreationTime, CreatorId. Vyplňují se automaticky.", + "VideosLoginAndRegisterMessage": "Chcete-li sledovat videa, musíte se přihlásit. Můžete si vytvořit účet pro hodinky, pokud ještě nemáte.", + "Filter": "Filtr", + "VideoCourses": "Video kurzy" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/de.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/de.json index 5c9855d4ac..b3c2dc3291 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/de.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/de.json @@ -174,6 +174,8 @@ "CreateProjectWizard": "Dieser Assistent erstellt ein neues Projekt aus der Startvorlage, die ordnungsgemäß konfiguriert ist, um Ihr Projekt zu starten.", "TieredOption": "Erstellt eine Tiered Lösung, bei der Web- und HTTP-API-Ebenen physisch getrennt sind. Wenn diese Option nicht aktiviert ist, wird eine mehrschichtige Lösung erstellt, die weniger komplex und für die meisten Szenarien geeignet ist.", "SeparateIdentityServerOption": "Trennt die Serverseite in zwei Anwendungen: Die erste ist für den Identitätsserver und die zweite für die serverseitige HTTP-API.", + "SeparateAuthenticationServerOption": "Unterteilt die Serverseite in zwei Anwendungen: Die erste ist für den Authentifizierungsserver und die zweite für Ihre serverseitige HTTP-API.", + "ProgressiveWebApplicationOption": "Gibt das Projekt als Progressive Web Application an", "UseslatestPreVersion": "Verwendet die neueste Vorabversion", "ReadTheDocumentation": "Lesen SieDie Dokumentation", "Documentation": "Dokumentation", @@ -214,7 +216,11 @@ "SeeDocs": "Siehe Docs", "None": "Keiner", "Application": "Anwendung", + "ApplicationExplanation": "Erstellt eine vollständig geschichtete Lösung basierend auf Domain Driven Design-Praktiken. Empfohlen für Langzeitprojekte, die eine wartbare und erweiterbare Codebasis benötigen.", + "ApplicationNoLayer": "Auftragen (einschichtig)", + "ApplicationNoLayerExplanation": "Erstellt eine einschichtige Webanwendung. Empfohlen zum Erstellen einer Anwendung mit einer einfacheren und leicht verständlichen Architektur.", "Module": "Modul", + "ModuleExplanation": "Erstellt eine wiederverwendbare, vollständig geschichtete Anwendungsmodullösung. Mit dieser Option können Sie Module für Ihre modulare Anwendung erstellen.", "PackageName": "Paketnamen", "LicenseURL": "Lizenz-URL", "License": "Lizenz", @@ -274,8 +280,166 @@ "FirstEdition": "Erste Ausgabe", "ThankYou": "Dankeschön!", "CheckboxMandatory": "Sie müssen dies überprüfen, um fortzufahren!", + "UserInterface": "Benutzeroberfläche", + "APIGateway": "API-Gateway", + "Database": "Datenbank", + "Saas": "Saas", + "OpenSourceWebApp": "Open Source
Internetanwendung", + "Framework": "Rahmen", + "AuditLoggingExplanation": "Verfolgen Sie automatisch alle Vorgänge und Datenänderungen in Ihrem System.", + "AbpNewCommandExplanation": "Erstellt neue Lösungen mithilfe der ABP-Startup-Vorlagen.", + "AbpAddModuleCommandExplanation": "Installiert vorgefertigte Anwendungsmodule für Ihre Lösung", + "AbpUpdateCommandExplanation": "Aktualisiert automatisch alle ABP-bezogenen NuGet- und NPM-Pakete in Ihrer Lösung.", + "ExploreAllCLICommands": "Entdecken Sie alle CLI-Befehle", + "ExploreDocumentationAndGuides": "Entdecken Sie die umfassende Dokumentation und Anleitungen.", + "Documentations": "Dokumentation", + "Views": "Ansichten", + "EnterYouEmailToGetNews": "Geben Sie Ihre E-Mail-Adresse ein, um die neuesten Nachrichten zum ABP Framework zu erhalten", + "Tiered": "Abgestuft", + "SeparateIdentityServer": "Separater Identitätsserver", + "SeparateAuthenticationServer": "Separater Authentifizierungsserver", + "ProgressiveWebApplication": "Progressive Webanwendung", + "Preview": "Vorschau", + "CreateANewSolution": "Erstellen Sie eine neue Lösung", + "ABPFrameworkFeatures": "ABP-Framework- Funktionen", + "Commercial": "Kommerziell", + "ThirdPartyTools": "Tools von Drittanbietern", + "Back": "Zurück", + "Community": "Gemeinschaft", + "SeeMore": "Mehr sehen", + "DetailsOfTheEBook": "Details zum E-Book", + "JoinOurMarketingNewsletter": "Abonnieren Sie unseren Marketing-Newsletter", + "FrameworkNewsletterConfirmationMessage": "Ich stimme den Allgemeinen Geschäftsbedingungen und der Datenschutzerklärung zu.", + "GetYourFreeEBook": "Holen Sie sich Ihr kostenloses DDD-E-Book", + "EverythingYouNeedToKnow": "Alles, was Sie wissen müssen.", + "PreOrderNow": "Jetzt vorbestellen", + "UITheming": "UI-Design", + "UIThemingExplanation": "Erstellen Sie wiederverwendbare UI-Themen und -Layouts oder verwenden Sie eines der vorgefertigten UI-Themen.", + "DataFilteringExplanation2": "Filtern Sie automatisch nach Abfragen aus der Datenbank, um Muster wie Soft-Delete und Mandantenfähigkeit einfach zu implementieren.", + "NeedHelp": "Brauchen Sie Hilfe?", + "GiveYourProjectAName": "Geben Sie Ihrem Projekt einen Namen", + "SelectProjectType": "Wählen Sie Projekttyp", + "SelectUIFramework": "Wählen Sie UI-Framework", + "SelectDatabaseProvider": "Wählen Sie Datenbankanbieter aus", + "SelectDatabaseManagementSystem": "Wählen Sie Datenbankverwaltungssystem", + "InstallingTheABPCLI": "Installieren der ABP-CLI", + "CreateYourProjectNow": "Erstellen Sie jetzt Ihr Projekt", + "OrderOn": "Bestellen Sie am {0}", + "DownloadFreeDDDBook": "Laden Sie das kostenlose DDD-Buch herunter", + "WhatIsABPFramework": "Was ist das ABP-Framework?", + "TenantDatabase": "Datenbank des Mandanten {0}", + "SharedDatabase": "Gemeinsame Datenbank", + "ConnectionResolver": "Verbindungslöser", + "TenantBasedDataFilter": "Mandantenbasierter Datenfilter", + "ApplicationCode": "Anwendungscode", + "TenantResolution": "Mieterbeschluss", + "TenantUser": "Mandant {0} Benutzer", + "CardTitle": "Kartentitel", + "View": "Sicht", + "Model": "Modell", + "Email": "Email", + "Password": "Passwort", + "Address": "Adresse", + "Gender": "Geschlecht", + "Male": "Männlich", + "Female": "Weiblich", + "Submit": "Einreichen", + "Unspecified": "Nicht spezifiziert", + "StaticFileMiddleware": "Statische Datei-Middleware", + "RazorViewEngine": "Razor View Engine", + "PhysicalFiles": "Physische Dateien (wwwroot)", + "EmbeddedFiles": "Eingebettete Dateien (DLL)", + "DynamicFiles": "Dynamische Dateien (Speicher)", + "BuildSolutionsWithAbp": "Erstellen Sie wartbare .NET-Lösungen, indem Sie Best Practices für die Softwareentwicklung mit ABP befolgen.", + "BuyOnAmazon": "Bei Amazon kaufen", + "BuyOnPackt": "Kaufen Sie bei Packt", + "Discounted": "Ermäßigt", + "MasteringAbpFramework_Book_KeyFeatures": "Hauptmerkmale", + "MasteringAbpFramework_Book_Key_Features_Description_1": "Erstellen Sie mit dem ABP Framework robuste, wartbare, modulare und skalierbare Softwarelösungen.", + "MasteringAbpFramework_Book_Key_Features_Description_2": "Erfahren Sie, wie Sie SOLID-Prinzipien und domänengesteuertes Design in Ihren Webanwendungen implementieren.", + "MasteringAbpFramework_Book_Key_Features_Description_3": "Entdecken Sie, wie ABP Framework Ihren Entwicklungszyklus beschleunigt, indem es sich wiederholende Aufgaben automatisiert.", + "MasteringAbpFramework_Book_Description": "Buchbeschreibung", + "MasteringAbpFramework_Book_Description_Details_1": "ABP Framework ist eine vollständige Infrastruktur zum Erstellen moderner Webanwendungen unter Befolgung der Best Practices und Konventionen für die Software- \n Entwicklung. Mit dem High-Level-Framework und Ökosystem von ABP können Sie \n das Don't Repeat Yourself (DRY)-Prinzip umsetzen und sich auf Ihren Geschäftscode konzentrieren.", + "MasteringAbpFramework_Book_Description_Details_2": "Dieses vom Erfinder des ABP Framework verfasste Buch hilft Ihnen dabei, ein umfassendes Verständnis des \n Frameworks und moderner Webanwendungsentwicklungstechniken zu erlangen. Mit Schritt-für-Schritt-Erklärungen wesentlicher \n Konzepte und praktischen Beispielen verstehen Sie die Anforderungen einer modernen Weblösung und wie ABP \n Framework die Entwicklung eigener Lösungen zum Vergnügen macht. Sie lernen die allgemeinen Anforderungen der \n Entwicklung von Unternehmens-Webanwendungen kennen und erkunden die von ABP bereitgestellte Infrastruktur. Im gesamten \n Buch lernen Sie Best Practices für die Softwareentwicklung kennen, um wartbare und modulare \n Weblösungen zu erstellen.", + "MasteringAbpFramework_Book_Description_Details_3": "Am Ende dieses Buches werden Sie in der Lage sein, eine vollständige Weblösung zu erstellen, die einfach zu entwickeln, \n warten und zu testen ist.", + "MasteringAbpFramework_Book_WhatYouWillLearn": "Was du lernen wirst", + "MasteringAbpFramework_Book_What_You_Will_Learn_1": "Richten Sie die Entwicklungsumgebung ein und beginnen Sie mit dem ABP Framework.", + "MasteringAbpFramework_Book_What_You_Will_Learn_2": "Arbeiten Sie mit Entity Framework Core und MongoDB, um Ihre Datenzugriffsschicht zu entwickeln.", + "MasteringAbpFramework_Book_What_You_Will_Learn_3": "Verstehen Sie übergreifende Anliegen und wie ABP sich wiederholende Aufgaben automatisiert.", + "MasteringAbpFramework_Book_What_You_Will_Learn_4": "Machen Sie sich mit der Implementierung von domänengesteuertem Design mit ABP Framework vertraut.", + "MasteringAbpFramework_Book_What_You_Will_Learn_5": "Erstellen Sie UI-Seiten und Komponenten mit ASP.NET Core MVC (Razor Pages) und Blazor.", + "MasteringAbpFramework_Book_What_You_Will_Learn_6": "Arbeiten Sie mit Mandantenfähigkeit, um modulare Webanwendungen zu erstellen.", + "MasteringAbpFramework_Book_What_You_Will_Learn_7": "Modularität verstehen und wiederverwendbare Anwendungsmodule erstellen.", + "MasteringAbpFramework_Book_What_You_Will_Learn_8": "Schreiben Sie Unit-, Integrations- und UI-Tests mit dem ABP Framework.", + "MasteringAbpFramework_Book_WhoIsThisBookFor": "Für wen ist dieses Buch?", + "MasteringAbpFramework_Book_WhoIsThisBookFor_Description": "Dieses Buch richtet sich an Webentwickler, die Softwarearchitekturen und Best Practices zum Erstellen wartbarer webbasierter \n -Lösungen unter Verwendung von Microsoft-Technologien und ABP Framework kennenlernen möchten. Für den Einstieg in dieses Buch sind Grundkenntnisse in C# \n und ASP.NET Core erforderlich.", + "ComputersAndTechnology": "Computer und Technologie", + "BuildingMicroserviceSolutions": "Aufbau von Microservice-Lösungen", + "MicroserviceBookPracticalGuide": "Dieses Buch ist ein Referenzhandbuch für die Entwicklung und Verwaltung von Microservice-basierten Anwendungen mithilfe des ABP Framework. Es verweist auf die .NET Microservice-Beispielreferenzanwendung : eShopOnContainers und erörtert die architektonischen Entwurfs- und Implementierungsansätze unter Verwendung des ABP-Frameworks. Am Ende dieses Buchs erfahren Sie, wie ABP mit den allgemeinen Komplexitäten von Microservices umgeht, z. B. Autorisierung, verteilte Transaktionen, Kommunikation zwischen Microservices, Bereitstellung usw.", + "IntroducingTheSolution": "Vorstellung der eShopOnAbp-Lösung", + "RunningTheSolution": "Ausführen der Lösung", + "UnderstandingTheAuthenticationSystem": "Das Authentifizierungssystem verstehen", + "ExploringTheApplications": "Erkundung der Anwendungen", + "UnderstandingTheAPIGateways": "Die API-Gateways verstehen", + "DevelopingTheMicroservices": "Entwicklung der Microservices", + "UnderstandingTheInfrastructure": "Die Infrastruktur verstehen", + "DiggingInTheUseCases": "Eintauchen in die Anwendungsfälle", + "DeployingTheSolution": "Bereitstellen der Lösung", + "ThisBookIsInDraftStageAndIsNotCompletedYet": "Dieses Buch befindet sich im Entwurfsstadium und ist noch nicht fertig.", + "Authors": "Autoren", + "MicroserviceEBook": "Microservice-E-Book", "SelectUITheme": "Wählen Sie UI-Design aus", + "LeptonXLiteTheme": "LeptonX Lite-Theme", + "BasicTheme": "Grundthema", + "LeptonXLiteThemeInfo": "Ein modernes und stilvolles Bootstrap-UI-Theme. Ideal, wenn Sie ein produktionsbereites UI-Theme haben möchten. Dies ist das neueste Theme und die Standardeinstellung.", + "BasicThemeInfo": "Minimalistisches UI-Theme mit einfachen Bootstrap-Farben und -Stilen. Ideal, wenn Sie Ihr eigenes UI-Theme erstellen.", + "SeeDocumentation": "Siehe Dokumentation .", + "SeeFullScreen": "🖼️ Siehe Screenshot", + "BuildingMicroserviceSolutionsShortDescription": "Dieses Buch ist ein Referenzhandbuch für die Entwicklung und Verwaltung von Microservice-basierten Anwendungen mithilfe des ABP Framework.", + "InstallAbpCliMessage": "Installieren Sie die ABP-CLI in einem Befehlszeilenterminal, falls Sie sie noch nicht installiert haben:", + "Terminal": "Terminal", + "Copy": "Kopieren", + "RunTheFollowingCommand": "Führen Sie den folgenden Befehl in einem Befehlszeilenterminal aus:", + "ChangeSolutionOptionsBelow": "Sie können die Lösungsoptionen unten ändern.", + "MultiLayerApplication": "Mehrschichtig
Anwendung", + "MultiLayerApplicationExplanation1": "Erstellt eine vollständig geschichtete Lösung basierend auf Domain Driven Design-Praktiken.", + "MultiLayerApplicationExplanation2": "Empfohlen für Langzeitprojekte, die eine wartbare und erweiterbare Codebasis benötigen.", + "SingleLayerApplication": "Einzelne Schicht
Anwendung", + "SingleLayerApplicationExplanation1": "Erstellt eine einschichtige Webanwendung.", + "SingleLayerApplicationExplanation2": "Empfohlen zum Erstellen einer Anwendung mit einer einfacheren und leicht verständlichen Architektur.", + "ApplicationModule": "Anwendung
Modul", + "SeeTheScreenshot": "Siehe den Screenshot", + "ApplicationModuleExplanation1": "Erstellt eine wiederverwendbare, vollständig geschichtete Anwendungsmodullösung.", + "ApplicationModuleExplanation2": "Mit dieser Option können Sie Module für Ihre modulare Anwendung erstellen.", + "Expert_": "Experte", + "Partner_": "Partnerschaft", + "WebSite": "Webseite", + "Expert_Year": "Kompetenzjahr", + "CompanyInfo": "Firmeninfo", + "Date": "Datum", + "WhoWeAre_Partner": "Wer wir sind", + "WhoWeAre_Expert": "Über mich", "CreateSolutionFolder": "Lösungsordner erstellen", - "CreateSolutionFolderOption": "Gibt an, ob sich das Projekt in einem neuen Ordner im Ausgabeordner oder direkt im Ausgabeordner befindet." + "CreateSolutionFolderOption": "Gibt an, ob sich das Projekt in einem neuen Ordner im Ausgabeordner oder direkt im Ausgabeordner befindet.", + "BooksPageTitle": "ABP-Bücher", + "PackageDetailPage_NuGetPackageInstallationOptions": "Es gibt drei Möglichkeiten, das NuGet-Paket {0} in Ihrem Projekt zu installieren", + "PackageDetailPage_InstallingWithABPCLI": "1: Installation mit der ABP-CLI", + "PackageDetailPage_InstallingWithABPCLIDescription1": "Wenn Sie die ABP-CLI nicht installiert haben, installieren Sie sie zunächst, indem Sie den folgenden Befehl in einem Befehlszeilenterminal ausführen", + "PackageDetailPage_InstallingWithABPCLIDescription2": "Nachdem Sie die ABP-CLI installiert haben, öffnen Sie ein Befehlszeilenterminal am Speicherort des Projekts ( .csproj Datei), in dem Sie es installieren möchten, und führen Sie den folgenden Befehl aus", + "PackageDetailPage_InstallingWithABPCLIDescription3": "Dadurch wird die Paketreferenz {0} zu Ihrem Projekt und die Abhängigkeit {1} zu Ihrer Modulklasse hinzugefügt.", + "PackageDetailPage_ManualInstallation": "2: Installation mit der Dotnet-CLI", + "PackageDetailPage_ManualInstallationDescription1": "Fügen Sie Ihrem Projekt einen {0} NuGet-Paketverweis hinzu, indem Sie Ihre IDE verwenden oder den folgenden Befehl ausführen", + "PackageDetailPage_ManualInstallationDescription2": "Fügen Sie dann die {0} -Abhängigkeit zu Ihrer Modulklasse hinzu, wie im folgenden Beispiel gezeigt", + "PackageDetailPage_SeeDocumentation": "In der Dokumentation erfahren Sie, wie Sie dieses Paket in Ihren Anwendungen verwenden.", + "PackageDetailPage_InstallingUsingPMC": "3: Installation mit der Package Manager-Konsole", + "PackageDetailPage_InstallingUsingPMCDescription1": "Öffnen Sie die Paket-Manager-Konsole in Visual Studio (Extras -> Nuget-Paket-Manager -> Paket-Manager-Konsole) und führen Sie den folgenden Befehl aus", + "UIOptions": "UI-Optionen", + "Testimonials": "Referenzen", + "CoolestCompaniesUseABPFramework": "Die coolsten Unternehmen nutzen das ABP Framework", + "Index_Page_Testimonial_1": "ABP Framework ist nicht nur ein Werkzeug, sondern ein Katalysator, der mein Wachstum als Entwickler beschleunigt hat. Es hat es mir ermöglicht, schneller als je zuvor neue Funktionen zu entwickeln, die an die Erfahrungen anderer Benutzer erinnern. Das einheitliche Codierungsmuster hat meine Projekte rationalisiert und mir mehr Zeit gegeben, mich auf die Erstellung statt auf die Fehlerbehebung zu konzentrieren. \n Ich würde sagen, dass das ABP Framework der Grundstein meiner frühen beruflichen Laufbahn war. Es hat mir den Übergang von einem aufstrebenden Entwickler zu einem selbstbewussten Profi erleichtert, der bereit ist, in der Softwarewelt Zeichen zu setzen. Ich freue mich auf die spannenden Projekte, die auf mich warten, in dem Wissen, dass ABP mich begleiten wird. Es ist mehr als nur ein Produkt; Es ist ein Partner für den Erfolg.", + "Index_Page_Testimonial_2": "ABP Framework ist nicht nur ein Framework, sondern auch eine Anleitung für die Projektentwicklung/-verwaltung, da es DDD-, GenericRepository-, DI-, Microservice- und Modularitätsschulungen bereitstellt. Auch wenn Sie das Framework selbst nicht verwenden, können Sie sich mit docs.abp.io selbst entwickeln, das gut und professionell vorbereitet ist. (OpenIddict, Redis, Quartz usw.) \n Da viele Dinge vorgefertigt sind, verkürzt es die Projektentwicklungszeit erheblich. (Zum Beispiel Anmeldeseite, Ausnahmebehandlung, Datenfilterung/Seeding, Audit-Protokollierung, Lokalisierung, automatischer API-Controller usw.) \n Als Beispiel aus unserer App habe ich Local Event Bus für die Bestandskontrolle verwendet. Daher bin ich in der Lage, Auftragsbewegungen zu verwalten, indem ich „Stock Handler“ schreibe. \n Es ist wunderbar, keine Zeit für CreationTime und CreatorId zu verlieren. Sie werden automatisch ausgefüllt.", + "VideosLoginAndRegisterMessage": "Sie müssen sich anmelden, um Videos anzusehen. Sie können ein Konto für die Uhr erstellen, wenn Sie noch kein Konto haben.", + "Filter": "Filter", + "VideoCourses": "Videokurse" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/es.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/es.json index b2d6020e46..167f1c7092 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/es.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/es.json @@ -174,6 +174,8 @@ "CreateProjectWizard": "Este asistente crea un nuevo proyecto a partir de la plantilla de inicio que está correctamente configurado para comenzar con su proyecto.", "TieredOption": "Crea una solución por niveles en la que las capas de API Web y HTTP están separadas físicamente. Si no se marca, crea una solución en capas que es menos compleja y adecuada para la mayoría de los escenarios.", "SeparateIdentityServerOption": "Separa el lado del servidor en dos aplicaciones: la primera es para el servidor de identidad y la segunda es para la API HTTP del lado del servidor.", + "SeparateAuthenticationServerOption": "Separa el lado del servidor en dos aplicaciones: la primera es para el servidor de autenticación y la segunda es para la API HTTP del lado del servidor.", + "ProgressiveWebApplicationOption": "Especifica el proyecto como aplicación web progresiva.", "UseslatestPreVersion": "Usar la última versión pre-release", "ReadTheDocumentation": "LeerLa Documentación", "Documentation": "Documentación", @@ -214,7 +216,11 @@ "SeeDocs": "Ver documentos", "None": "Ninguno", "Application": "Solicitud", + "ApplicationExplanation": "Crea una solución completamente en capas basada en prácticas de diseño impulsado por dominio. Recomendado para proyectos a largo plazo que necesitan una base de código extensible y mantenible.", + "ApplicationNoLayer": "Aplicación (una sola capa)", + "ApplicationNoLayerExplanation": "Crea una aplicación web de una sola capa. Recomendado para crear una aplicación con una arquitectura más simple y fácil de entender.", "Module": "Módulo", + "ModuleExplanation": "Crea una solución de módulo de aplicación reutilizable y completamente en capas. Puede utilizar esta opción para crear módulos para su aplicación modular.", "PackageName": "Nombre del paquete", "LicenseURL": "URL de licencia", "License": "Licencia", @@ -274,8 +280,166 @@ "FirstEdition": "Primera edición", "ThankYou": "¡Gracias!", "CheckboxMandatory": "¡Debes marcar esto para continuar!", + "UserInterface": "Interfaz de usuario", + "APIGateway": "Puerta de enlace API", + "Database": "Base de datos", + "Saas": "Saas", + "OpenSourceWebApp": "Fuente abierta
Aplicación web", + "Framework": "Estructura", + "AuditLoggingExplanation": "Rastree automáticamente todas las operaciones y cambios de datos en su sistema.", + "AbpNewCommandExplanation": "Crea nuevas soluciones utilizando las plantillas de inicio de ABP.", + "AbpAddModuleCommandExplanation": "Instala módulos de aplicaciones prediseñados en su solución", + "AbpUpdateCommandExplanation": "Actualiza automáticamente todos los paquetes NuGet y NPM relacionados con ABP en su solución.", + "ExploreAllCLICommands": "Explora todos los comandos CLI", + "ExploreDocumentationAndGuides": "Explore la documentación y las guías completas.", + "Documentations": "Documentación", + "Views": "Puntos de vista", + "EnterYouEmailToGetNews": "Ingrese su correo electrónico para recibir las últimas noticias sobre el Marco ABP", + "Tiered": "escalonado", + "SeparateIdentityServer": "Servidor de identidad separado", + "SeparateAuthenticationServer": "Servidor de autenticación independiente", + "ProgressiveWebApplication": "Aplicación web progresiva", + "Preview": "Avance", + "CreateANewSolution": "Crear una nueva solución", + "ABPFrameworkFeatures": "Características del marco ABP", + "Commercial": "Comercial", + "ThirdPartyTools": "Herramientas de terceros", + "Back": "Atrás", + "Community": "Comunidad", + "SeeMore": "Ver más", + "DetailsOfTheEBook": "Detalles del libro electrónico", + "JoinOurMarketingNewsletter": "Únase a nuestro boletín de marketing", + "FrameworkNewsletterConfirmationMessage": "Acepto los Términos y condiciones y la Política de privacidad .", + "GetYourFreeEBook": "Obtenga su libro electrónico DDD gratuito", + "EverythingYouNeedToKnow": "Todo lo que necesitas saber.", + "PreOrderNow": "Reserva ahora", + "UITheming": "Tematización de la interfaz de usuario", + "UIThemingExplanation": "Cree temas y diseños de interfaz de usuario reutilizables o utilice uno de los temas de interfaz de usuario prediseñados.", + "DataFilteringExplanation2": "Filtre automáticamente las consultas desde la base de datos para implementar fácilmente patrones como eliminación temporal y multiinquilino.", + "NeedHelp": "¿Necesitas ayuda?", + "GiveYourProjectAName": "Dale un nombre a tu proyecto", + "SelectProjectType": "Seleccione el tipo de proyecto", + "SelectUIFramework": "Seleccione el marco de la interfaz de usuario", + "SelectDatabaseProvider": "Seleccionar proveedor de base de datos", + "SelectDatabaseManagementSystem": "Seleccione el sistema de gestión de bases de datos", + "InstallingTheABPCLI": "Instalación de la CLI de ABP", + "CreateYourProjectNow": "Crea tu proyecto ahora", + "OrderOn": "Orden en {0}", + "DownloadFreeDDDBook": "Descargar Libro DDD Gratis", + "WhatIsABPFramework": "¿Qué es el Marco ABP?", + "TenantDatabase": "Base de datos del inquilino {0}", + "SharedDatabase": "Base de datos compartida", + "ConnectionResolver": "Resolución de conexión", + "TenantBasedDataFilter": "Filtro de datos basado en inquilinos", + "ApplicationCode": "Código de aplicación", + "TenantResolution": "Resolución de inquilinos", + "TenantUser": "Inquilino {0} Usuario", + "CardTitle": "Título de la tarjeta", + "View": "Vista", + "Model": "Modelo", + "Email": "Correo electrónico", + "Password": "Contraseña", + "Address": "DIRECCIÓN", + "Gender": "Género", + "Male": "Masculino", + "Female": "Femenino", + "Submit": "Entregar", + "Unspecified": "No especificado", + "StaticFileMiddleware": "Middleware de archivos estáticos", + "RazorViewEngine": "Motor de vista de afeitar", + "PhysicalFiles": "Archivos físicos (wwwroot)", + "EmbeddedFiles": "Archivos incrustados (DLL)", + "DynamicFiles": "Archivos dinámicos (memoria)", + "BuildSolutionsWithAbp": "Cree soluciones .NET mantenibles siguiendo las mejores prácticas de desarrollo de software utilizando ABP.", + "BuyOnAmazon": "Comprar en Amazon", + "BuyOnPackt": "Comprar en paquete", + "Discounted": "Con descuento", + "MasteringAbpFramework_Book_KeyFeatures": "Características clave", + "MasteringAbpFramework_Book_Key_Features_Description_1": "Cree soluciones de software sólidas, mantenibles, modulares y escalables utilizando ABP Framework.", + "MasteringAbpFramework_Book_Key_Features_Description_2": "Aprenda a implementar principios SOLID y diseño basado en dominios en sus aplicaciones web.", + "MasteringAbpFramework_Book_Key_Features_Description_3": "Descubra cómo ABP Framework acelera su ciclo de desarrollo al automatizar tareas repetitivas.", + "MasteringAbpFramework_Book_Description": "Descripción del libro", + "MasteringAbpFramework_Book_Description_Details_1": "ABP Framework es una infraestructura completa para crear aplicaciones web modernas siguiendo las mejores prácticas y convenciones de desarrollo de software \n . Con el marco y el ecosistema de alto nivel de ABP, puede \n implementar el principio No repetirse (DRY) y concentrarse en su código comercial.", + "MasteringAbpFramework_Book_Description_Details_2": "Escrito por el creador de ABP Framework, este libro le ayudará a obtener una comprensión completa del marco \n y las técnicas modernas de desarrollo de aplicaciones web. Con explicaciones paso a paso de los conceptos esenciales \n y ejemplos prácticos, comprenderá los requisitos de una solución web moderna y cómo ABP \n Framework hace que sea divertido desarrollar sus propias soluciones. Descubrirá los requisitos comunes del desarrollo de aplicaciones web empresariales \n y explorará la infraestructura proporcionada por ABP. A lo largo del libro \n , se familiarizará con las mejores prácticas de desarrollo de software para crear soluciones web \n modulares y mantenibles.", + "MasteringAbpFramework_Book_Description_Details_3": "Al final de este libro, podrá crear una solución web completa que sea fácil de desarrollar, mantener y probar \n .", + "MasteringAbpFramework_Book_WhatYouWillLearn": "Lo que vas a aprender", + "MasteringAbpFramework_Book_What_You_Will_Learn_1": "Configure el entorno de desarrollo y comience con ABP Framework.", + "MasteringAbpFramework_Book_What_You_Will_Learn_2": "Trabaje con Entity Framework Core y MongoDB para desarrollar su capa de acceso a datos.", + "MasteringAbpFramework_Book_What_You_Will_Learn_3": "Comprenda las preocupaciones transversales y cómo ABP automatiza tareas repetitivas.", + "MasteringAbpFramework_Book_What_You_Will_Learn_4": "Familiarícese con la implementación de un diseño basado en dominios con ABP Framework.", + "MasteringAbpFramework_Book_What_You_Will_Learn_5": "Cree páginas y componentes de interfaz de usuario con ASP.NET Core MVC (Razor Pages) y Blazor.", + "MasteringAbpFramework_Book_What_You_Will_Learn_6": "Trabaje con multiinquilino para crear aplicaciones web modulares.", + "MasteringAbpFramework_Book_What_You_Will_Learn_7": "Comprenda la modularidad y cree módulos de aplicaciones reutilizables.", + "MasteringAbpFramework_Book_What_You_Will_Learn_8": "Escriba pruebas unitarias, de integración y de interfaz de usuario utilizando ABP Framework.", + "MasteringAbpFramework_Book_WhoIsThisBookFor": "¿Para quién es este libro?", + "MasteringAbpFramework_Book_WhoIsThisBookFor_Description": "Este libro está dirigido a desarrolladores web que desean aprender arquitecturas de software y mejores prácticas para crear soluciones basadas en web mantenibles \n utilizando tecnologías de Microsoft y ABP Framework. Es necesario tener conocimientos básicos de C# \n y ASP.NET Core para comenzar con este libro.", + "ComputersAndTechnology": "Computadoras y tecnología", + "BuildingMicroserviceSolutions": "Creación de soluciones de microservicios", + "MicroserviceBookPracticalGuide": "Este libro es una guía de referencia para desarrollar y administrar aplicaciones basadas en microservicios utilizando ABP Framework. Hace referencia a la aplicación de referencia de muestra de microservicios .NET : eShopOnContainers y analiza el diseño arquitectónico y los enfoques de implementación utilizando ABP Framework. Al final de este libro, aprenderá cómo ABP aborda las complejidades comunes de los microservicios, como la autorización, las transacciones distribuidas, las comunicaciones entre microservicios, la implementación, etc.", + "IntroducingTheSolution": "Presentamos la solución eShopOnAbp", + "RunningTheSolution": "Ejecutando la solución", + "UnderstandingTheAuthenticationSystem": "Comprender el sistema de autenticación", + "ExploringTheApplications": "Explorando las aplicaciones", + "UnderstandingTheAPIGateways": "Comprender las puertas de enlace API", + "DevelopingTheMicroservices": "Desarrollando los microservicios", + "UnderstandingTheInfrastructure": "Comprender la infraestructura", + "DiggingInTheUseCases": "Profundizando en los casos de uso", + "DeployingTheSolution": "Implementación de la solución", + "ThisBookIsInDraftStageAndIsNotCompletedYet": "Este libro está en etapa de borrador y aún no está terminado.", + "Authors": "Autores", + "MicroserviceEBook": "Libro electrónico de microservicios", "SelectUITheme": "Seleccione el tema de la interfaz de usuario", + "LeptonXLiteTheme": "Tema LeptonX Lite", + "BasicTheme": "Tema básico", + "LeptonXLiteThemeInfo": "Un tema de interfaz de usuario Bootstrap moderno y elegante. Ideal si desea tener un tema de interfaz de usuario listo para producción. Este es el tema más nuevo y el predeterminado.", + "BasicThemeInfo": "Tema de interfaz de usuario minimalista con colores y estilos simples de Bootstrap. Ideal si vas a crear tu propio tema de interfaz de usuario.", + "SeeDocumentation": "Ver documentación .", + "SeeFullScreen": "🖼️ Ver la captura de pantalla", + "BuildingMicroserviceSolutionsShortDescription": "Este libro es una guía de referencia para desarrollar y administrar aplicaciones basadas en microservicios utilizando ABP Framework.", + "InstallAbpCliMessage": "Instale la CLI de ABP en una terminal de línea de comandos, si no la ha instalado antes:", + "Terminal": "Terminal", + "Copy": "Copiar", + "RunTheFollowingCommand": "Ejecute el siguiente comando en una terminal de línea de comando:", + "ChangeSolutionOptionsBelow": "Puede cambiar las opciones de solución a continuación.", + "MultiLayerApplication": "multicapa
Solicitud", + "MultiLayerApplicationExplanation1": "Crea una solución completamente en capas basada en prácticas de diseño impulsado por dominio.", + "MultiLayerApplicationExplanation2": "Recomendado para proyectos a largo plazo que necesitan una base de código extensible y mantenible.", + "SingleLayerApplication": "Una sola capa
Solicitud", + "SingleLayerApplicationExplanation1": "Crea una aplicación web de una sola capa.", + "SingleLayerApplicationExplanation2": "Recomendado para crear una aplicación con una arquitectura más simple y fácil de entender.", + "ApplicationModule": "Solicitud
Módulo", + "SeeTheScreenshot": "Ver la captura de pantalla", + "ApplicationModuleExplanation1": "Crea una solución de módulo de aplicación reutilizable y completamente en capas.", + "ApplicationModuleExplanation2": "Puede utilizar esta opción para crear módulos para su aplicación modular.", + "Expert_": "Experto", + "Partner_": "Camaradería", + "WebSite": "Sitio web", + "Expert_Year": "Año de experiencia", + "CompanyInfo": "Información de la compañía", + "Date": "Fecha", + "WhoWeAre_Partner": "Quienes somos", + "WhoWeAre_Expert": "Acerca de mí", "CreateSolutionFolder": "Crear carpeta de soluciones", - "CreateSolutionFolderOption": "Especifica si el proyecto estará en una nueva carpeta en la carpeta de salida o directamente en la carpeta de salida." + "CreateSolutionFolderOption": "Especifica si el proyecto estará en una nueva carpeta en la carpeta de salida o directamente en la carpeta de salida.", + "BooksPageTitle": "Libros ABP", + "PackageDetailPage_NuGetPackageInstallationOptions": "Hay tres formas de instalar el paquete {0} NuGet en su proyecto", + "PackageDetailPage_InstallingWithABPCLI": "1: Instalación con la CLI de ABP", + "PackageDetailPage_InstallingWithABPCLIDescription1": "Si no ha instalado la CLI de ABP , primero instálela ejecutando el siguiente comando en una terminal de línea de comandos", + "PackageDetailPage_InstallingWithABPCLIDescription2": "Una vez que haya instalado la CLI de ABP, abra una terminal de línea de comandos en la ubicación del proyecto (archivo .csproj ) que desea instalar y ejecute el siguiente comando", + "PackageDetailPage_InstallingWithABPCLIDescription3": "Agregará la referencia del paquete {0} a su proyecto y la dependencia {1} a su clase de módulo.", + "PackageDetailPage_ManualInstallation": "2: Instalación con Dotnet CLI", + "PackageDetailPage_ManualInstallationDescription1": "Agregue {0} referencia del paquete NuGet a su proyecto usando su IDE o ejecutando el siguiente comando", + "PackageDetailPage_ManualInstallationDescription2": "Luego agregue la dependencia {0} a su clase de módulo como se muestra en el siguiente ejemplo", + "PackageDetailPage_SeeDocumentation": "Consulte la documentación para aprender cómo utilizar este paquete en sus aplicaciones.", + "PackageDetailPage_InstallingUsingPMC": "3: Instalación con la consola del administrador de paquetes", + "PackageDetailPage_InstallingUsingPMCDescription1": "Abra la Consola del Administrador de paquetes en Visual Studio (Herramientas -> Administrador de paquetes Nuget -> Consola del Administrador de paquetes) y ejecute el siguiente comando", + "UIOptions": "Opciones de interfaz de usuario", + "Testimonials": "Testimonios", + "CoolestCompaniesUseABPFramework": "Las mejores empresas utilizan el marco ABP", + "Index_Page_Testimonial_1": "ABP Framework no es sólo una herramienta sino un catalizador que ha acelerado mi crecimiento como desarrollador. Me ha permitido crear nuevas funciones más rápido que nunca, que recuerdan las experiencias de otros usuarios. El patrón de codificación unificado ha simplificado mis proyectos, dándome más tiempo para concentrarme en crear en lugar de solucionar problemas. \n Yo diría que ABP Framework ha sido la piedra angular de mi trayectoria profesional inicial. Ha facilitado mi transición de un aspirante a desarrollador a un profesional seguro y listo para dejar una huella en el mundo del software. Espero con ansias los proyectos apasionantes que me esperan y sé que ABP estará allí para guiarme. Es más que un simple producto; es un socio en el éxito.", + "Index_Page_Testimonial_2": "ABP Framework no es solo un marco, también es una guía para el desarrollo/gestión de proyectos, porque proporciona capacitaciones sobre DDD, GenericRepository, DI, Microservice y Modularity. Incluso si no va a utilizar el marco en sí, puede desarrollarlo usted mismo con docs.abp.io, que está bien preparado y profesionalmente. (OpenIddict, Redis, Quartz, etc.) \n Debido a que muchos elementos están prediseñados, acorta significativamente el tiempo de desarrollo del proyecto. (Como página de inicio de sesión, manejo de excepciones, filtrado y siembra de datos, registro de auditoría, localización, controlador de API automático, etc.) \n Como ejemplo de nuestra aplicación, he utilizado Local Event Bus para el control de existencias. Por lo tanto, puedo gestionar los movimientos de pedidos escribiendo el controlador de stock. \n Es maravilloso no perder tiempo con CreationTime, CreatorId. Se llenan automáticamente.", + "VideosLoginAndRegisterMessage": "Debes iniciar sesión para ver videos. Puedes crear una cuenta para ver si aún no lo has hecho.", + "Filter": "Filtrar", + "VideoCourses": "Cursos en vídeo" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/fi.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/fi.json index db08a3479a..aa221679e9 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/fi.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/fi.json @@ -174,6 +174,7 @@ "CreateProjectWizard": "Tämä ohjattu toiminto luo uuden projektin käynnistysmallista, joka on määritetty oikein aloittamaan projekti.", "TieredOption": "Luo monikerros ratkaisun, jossa Web- ja Http-API-kerrokset erotetaan fyysisesti. Jos sitä ei ole valittu, luodaan kerrostettu ratkaisu, joka on vähemmän monimutkainen ja sopii useimpiin tilanteisiin.", "SeparateIdentityServerOption": "Erottaa palvelinpuolen kahteen sovellukseen: Ensimmäinen on identiteettipalvelimelle ja toinen palvelinpuolen HTTP-sovellusliittymälle.", + "SeparateAuthenticationServerOption": "Erottelee palvelinpuolen kahdeksi sovellukseksi: Ensimmäinen on todennuspalvelimelle ja toinen palvelinpuolen HTTP API:lle.", "ProgressiveWebApplicationOption": "Määrittää projektin progressiiviseksi verkkosovellukseksi (PWA)", "UseslatestPreVersion": "Käyttää uusinta julkaisua edeltävää versiota", "ReadTheDocumentation": " Lue Dokumentaatio ", @@ -279,8 +280,6 @@ "FirstEdition": "Ensimmäinen painos", "ThankYou": "Kiitos!", "CheckboxMandatory": "Sinun on tarkistettava tämä jatkaaksesi!", - "CreateSolutionFolder": "Luo ratkaisukansio", - "CreateSolutionFolderOption": "Määrittää, onko projekti tuloskansion uudessa kansiossa vai suoraan tulostekansiossa.", "UserInterface": "Käyttöliittymä", "APIGateway": "API-yhdyskäytävä", "Database": "Tietokanta", @@ -298,6 +297,7 @@ "EnterYouEmailToGetNews": "Kirjoita sähköpostiosoitteesi saadaksesi viimeisimmät uutiset ABP Frameworkista", "Tiered": "Monikerros", "SeparateIdentityServer": "Erillinen identiteettipalvelin", + "SeparateAuthenticationServer": "Erillinen todennuspalvelin", "ProgressiveWebApplication": "Progressiivinen verkkosovellus", "Preview": "Esikatsele", "CreateANewSolution": "Luo uusi ratkaisu", @@ -418,6 +418,28 @@ "CompanyInfo": "Yritystiedot", "Date": "Päivämäärä", "WhoWeAre_Partner": "Keitä olemme", - "WhoWeAre_Expert": "Minusta" + "WhoWeAre_Expert": "Minusta", + "CreateSolutionFolder": "Luo ratkaisukansio", + "CreateSolutionFolderOption": "Määrittää, onko projekti tuloskansion uudessa kansiossa vai suoraan tulostekansiossa.", + "BooksPageTitle": "ABP kirjat", + "PackageDetailPage_NuGetPackageInstallationOptions": "On kolme tapaa asentaa {0} NuGet-paketti projektiisi", + "PackageDetailPage_InstallingWithABPCLI": "1: Asennus ABP CLI:n avulla", + "PackageDetailPage_InstallingWithABPCLIDescription1": "Jos et ole asentanut ABP CLI:tä , asenna ensin suorittamalla seuraava komento komentorivipäätteessä", + "PackageDetailPage_InstallingWithABPCLIDescription2": "Kun olet asentanut ABP CLI:n, avaa komentorivipääte sen projektin sijaintiin ( .csproj tiedosto), jonka haluat asentaa sen ja suorita seuraava komento", + "PackageDetailPage_InstallingWithABPCLIDescription3": "Se lisää pakettiviittauksen {0} projektiisi ja {1} -riippuvuuden moduuliluokkaasi.", + "PackageDetailPage_ManualInstallation": "2: Asennus Dotnet CLI:llä", + "PackageDetailPage_ManualInstallationDescription1": "Lisää {0} NuGet-pakettiviittaus projektiisi käyttämällä IDE:täsi tai suorittamalla seuraava komento", + "PackageDetailPage_ManualInstallationDescription2": "Lisää sitten {0} -riippuvuus moduuliluokkaasi seuraavan esimerkin mukaisesti", + "PackageDetailPage_SeeDocumentation": "Katso dokumentaatio oppiaksesi käyttämään tätä pakettia sovelluksissasi.", + "PackageDetailPage_InstallingUsingPMC": "3: Asennus Package Manager -konsolin avulla", + "PackageDetailPage_InstallingUsingPMCDescription1": "Avaa Package Manager -konsoli Visual Studiossa (Työkalut -> Nuget Package Manager -> Package Manager Console) ja suorita seuraava komento", + "UIOptions": "Käyttöliittymän asetukset", + "Testimonials": "Suositukset", + "CoolestCompaniesUseABPFramework": "Tyylikkäimmät yritykset käyttävät ABP Frameworkia", + "Index_Page_Testimonial_1": "ABP Framework ei ole vain työkalu, vaan katalysaattori, joka on nopeuttanut kasvuani kehittäjänä. Sen ansiosta olen pystynyt rakentamaan uusia ominaisuuksia nopeammin kuin koskaan ennen, muistuttaen muiden käyttäjien kokemuksia. Yhtenäinen koodausmalli on virtaviivaistanut projektejani ja antanut minulle enemmän aikaa keskittyä luomiseen vianmäärityksen sijaan. \n Sanoisin, että ABP Framework on ollut varhaisen ammatillisen matkani kulmakivi. Se on helpottanut siirtymistäni pyrkivästä kehittäjästä itsevarmaksi ammattilaiseksi, joka on valmis tekemään jälkensä ohjelmistomaailmassa. Odotan innolla minua odottavia jännittäviä projekteja, koska tiedän, että ABP on paikalla opastamaan minua. Se on enemmän kuin pelkkä tuote; se on menestyksen kumppani.", + "Index_Page_Testimonial_2": "ABP Framework ei ole vain viitekehys, se on myös opastus projektien kehittämiseen/hallintaan, koska se tarjoaa DDD-, GenericRepository-, DI-, Microservice- ja Modularity-koulutuksia. Vaikka et itse käyttäisikään kehystä, voit kehittää itseäsi docs.abp.io:lla, joka on hyvin ja ammattimaisesti valmisteltu. (OpenIddict, Redis, Quartz jne.) \n Koska monet asiat on rakennettu valmiiksi, se lyhentää projektin kehitysaikaa merkittävästi. (Kuten kirjautumissivu, poikkeusten käsittely, tietojen suodatus-kylvö, tarkastusloki, lokalisointi, automaattinen api-ohjain jne.) \n Esimerkkinä sovelluksestamme, olen käyttänyt Local Event Busia varaston hallintaan. Pystyn siis hallitsemaan tilausliikkeitä kirjoittamalla varastokäsittelijäksi. \n On hienoa olla hukkaamatta aikaa CreationTime, CreatorId. Ne täytetään automaattisesti.", + "VideosLoginAndRegisterMessage": "Sinun on kirjauduttava sisään katsoaksesi videoita. Voit luoda tilin kellolle, jos et ole vielä tehnyt sitä.", + "Filter": "Suodattaa", + "VideoCourses": "Videokurssit" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/fr.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/fr.json index 376fd9a728..8d4a5a3fc9 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/fr.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/fr.json @@ -174,6 +174,8 @@ "CreateProjectWizard": "Cet assistant crée un nouveau projet à partir du modèle de démarrage qui est correctement configuré pour démarrer rapidement votre projet.", "TieredOption": "Crée une solution à plusieurs niveaux dans laquelle les couches API Web et Http sont physiquement séparées. Si elle n'est pas cochée, crée une solution en couches qui est moins complexe et adaptée à la plupart des scénarios.", "SeparateIdentityServerOption": "Sépare le côté serveur en deux applications: la première est pour le serveur d'identité et la seconde pour votre API HTTP côté serveur.", + "SeparateAuthenticationServerOption": "Sépare le côté serveur en deux applications : la première est destinée au serveur d'authentification et la seconde est destinée à l'API HTTP côté serveur.", + "ProgressiveWebApplicationOption": "Spécifie le projet en tant qu'application Web progressive", "UseslatestPreVersion": "Utilise la dernière version préliminaire", "ReadTheDocumentation": " Lire La documentation ", "Documentation": "Documentation", @@ -214,7 +216,11 @@ "SeeDocs": "Voir la documentation", "None": "Rien", "Application": "Application", + "ApplicationExplanation": "Crée une solution entièrement en couches basée sur les pratiques de Domain Driven Design. Recommandé pour les projets à long terme nécessitant une base de code maintenable et extensible.", + "ApplicationNoLayer": "Application (monocouche)", + "ApplicationNoLayerExplanation": "Crée une application Web monocouche. Recommandé pour créer une application avec une architecture plus simple et facile à comprendre.", "Module": "Module", + "ModuleExplanation": "Crée une solution de module d'application réutilisable et entièrement en couches. Vous pouvez utiliser cette option pour créer des modules pour votre application modulaire.", "PackageName": "Nom du paquet", "LicenseURL": "URL de licence", "License": "Licence", @@ -274,8 +280,166 @@ "FirstEdition": "Première édition", "ThankYou": "Merci!", "CheckboxMandatory": "Vous devez vérifier cela pour continuer !", + "UserInterface": "Interface utilisateur", + "APIGateway": "Passerelle API", + "Database": "Base de données", + "Saas": "Saas", + "OpenSourceWebApp": "Open source
application Web", + "Framework": "Cadre", + "AuditLoggingExplanation": "Suivez automatiquement toutes les opérations et modifications de données dans votre système.", + "AbpNewCommandExplanation": "Crée de nouvelles solutions à l'aide des modèles de démarrage ABP.", + "AbpAddModuleCommandExplanation": "Installe des modules d'application prédéfinis sur votre solution", + "AbpUpdateCommandExplanation": "Met automatiquement à jour tous les packages NuGet et NPM liés à ABP dans votre solution.", + "ExploreAllCLICommands": "Explorez toutes les commandes CLI", + "ExploreDocumentationAndGuides": "Explorez la documentation et les guides complets.", + "Documentations": "Documentation", + "Views": "Vues", + "EnterYouEmailToGetNews": "Entrez votre e-mail pour recevoir les dernières nouvelles sur le cadre ABP", + "Tiered": "À plusieurs niveaux", + "SeparateIdentityServer": "Serveur d'identité séparé", + "SeparateAuthenticationServer": "Serveur d'authentification séparé", + "ProgressiveWebApplication": "Application Web progressive", + "Preview": "Aperçu", + "CreateANewSolution": "Créer une nouvelle solution", + "ABPFrameworkFeatures": "Fonctionnalités du cadre ABP", + "Commercial": "Commercial", + "ThirdPartyTools": "Outils tiers", + "Back": "Dos", + "Community": "Communauté", + "SeeMore": "Voir plus", + "DetailsOfTheEBook": "Détails du livre électronique", + "JoinOurMarketingNewsletter": "Rejoignez notre newsletter marketing", + "FrameworkNewsletterConfirmationMessage": "J'accepte les conditions générales et la politique de confidentialité .", + "GetYourFreeEBook": "Obtenez votre livre électronique DDD gratuit", + "EverythingYouNeedToKnow": "Tout ce que tu as besoin de savoir.", + "PreOrderNow": "Pré commandez maintenant", + "UITheming": "Thème de l'interface utilisateur", + "UIThemingExplanation": "Créez des thèmes et des mises en page d'interface utilisateur réutilisables ou utilisez l'un des thèmes d'interface utilisateur prédéfinis.", + "DataFilteringExplanation2": "Filtrez automatiquement les requêtes de la base de données pour implémenter facilement des modèles tels que la suppression logicielle et la multi-location.", + "NeedHelp": "Besoin d'aide?", + "GiveYourProjectAName": "Donnez un nom à votre projet", + "SelectProjectType": "Sélectionnez le type de projet", + "SelectUIFramework": "Sélectionnez le cadre d'interface utilisateur", + "SelectDatabaseProvider": "Sélectionnez le fournisseur de base de données", + "SelectDatabaseManagementSystem": "Sélectionnez le système de gestion de base de données", + "InstallingTheABPCLI": "Installation de l'ABP-CLI", + "CreateYourProjectNow": "Créez votre projet maintenant", + "OrderOn": "Commandez le {0}", + "DownloadFreeDDDBook": "Téléchargez le livre DDD gratuit", + "WhatIsABPFramework": "Qu’est-ce que le cadre ABP ?", + "TenantDatabase": "Base de données du locataire {0}", + "SharedDatabase": "Base de données partagée", + "ConnectionResolver": "Résolveur de connexion", + "TenantBasedDataFilter": "Filtre de données basé sur le locataire", + "ApplicationCode": "Code de demande", + "TenantResolution": "Résolution des locataires", + "TenantUser": "Locataire {0} Utilisateur", + "CardTitle": "Titre de la carte", + "View": "Voir", + "Model": "Modèle", + "Email": "E-mail", + "Password": "Mot de passe", + "Address": "Adresse", + "Gender": "Genre", + "Male": "Mâle", + "Female": "Femelle", + "Submit": "Soumettre", + "Unspecified": "Non spécifié", + "StaticFileMiddleware": "Middleware de fichiers statiques", + "RazorViewEngine": "Moteur de vue Razor", + "PhysicalFiles": "Fichiers physiques (wwwroot)", + "EmbeddedFiles": "Fichiers intégrés (DLL)", + "DynamicFiles": "Fichiers dynamiques (mémoire)", + "BuildSolutionsWithAbp": "Créez des solutions .NET maintenables en suivant les meilleures pratiques de développement logiciel à l’aide d’ABP.", + "BuyOnAmazon": "Acheter sur Amazon", + "BuyOnPackt": "Acheter sur Packt", + "Discounted": "À prix réduit", + "MasteringAbpFramework_Book_KeyFeatures": "Principales caractéristiques", + "MasteringAbpFramework_Book_Key_Features_Description_1": "Créez des solutions logicielles robustes, maintenables, modulaires et évolutives à l’aide d’ABP Framework.", + "MasteringAbpFramework_Book_Key_Features_Description_2": "Découvrez comment mettre en œuvre les principes SOLID et la conception axée sur le domaine dans vos applications Web.", + "MasteringAbpFramework_Book_Key_Features_Description_3": "Découvrez comment ABP Framework accélère votre cycle de développement en automatisant les tâches répétitives.", + "MasteringAbpFramework_Book_Description": "Description du livre", + "MasteringAbpFramework_Book_Description_Details_1": "ABP Framework est une infrastructure complète pour créer des applications Web modernes en suivant les meilleures pratiques et conventions de développement du logiciel \n . Grâce au cadre et à l'écosystème de haut niveau d'ABP, vous pouvez \n implémenter le principe Don't Repeat Yourself (DRY) et vous concentrer sur votre code métier.", + "MasteringAbpFramework_Book_Description_Details_2": "Écrit par le créateur d'ABP Framework, ce livre vous aidera à acquérir une compréhension complète du framework \n et des techniques modernes de développement d'applications Web. Avec des explications étape par étape des concepts essentiels \n et des exemples pratiques, vous comprendrez les exigences d'une solution Web moderne et comment ABP \n Framework rend agréable le développement de vos propres solutions. Vous découvrirez les exigences courantes du développement d’applications Web d’entreprise \n et explorerez l’infrastructure fournie par ABP. Tout au long du livre \n , vous découvrirez les meilleures pratiques de développement logiciel pour créer des solutions Web \n maintenables et modulaires.", + "MasteringAbpFramework_Book_Description_Details_3": "À la fin de ce livre, vous serez en mesure de créer une solution Web complète facile à développer, à maintenir et à tester par \n .", + "MasteringAbpFramework_Book_WhatYouWillLearn": "Ce que vous apprendrez", + "MasteringAbpFramework_Book_What_You_Will_Learn_1": "Configurez l’environnement de développement et démarrez avec ABP Framework.", + "MasteringAbpFramework_Book_What_You_Will_Learn_2": "Travaillez avec Entity Framework Core et MongoDB pour développer votre couche d'accès aux données.", + "MasteringAbpFramework_Book_What_You_Will_Learn_3": "Comprendre les préoccupations transversales et comment ABP automatise les tâches répétitives.", + "MasteringAbpFramework_Book_What_You_Will_Learn_4": "Familiarisez-vous avec la mise en œuvre de la conception axée sur le domaine avec ABP Framework.", + "MasteringAbpFramework_Book_What_You_Will_Learn_5": "Créez des pages et des composants d'interface utilisateur avec ASP.NET Core MVC (Razor Pages) et Blazor.", + "MasteringAbpFramework_Book_What_You_Will_Learn_6": "Travaillez en multilocation pour créer des applications Web modulaires.", + "MasteringAbpFramework_Book_What_You_Will_Learn_7": "Comprendre la modularité et créer des modules d'application réutilisables.", + "MasteringAbpFramework_Book_What_You_Will_Learn_8": "Écrivez des tests unitaires, d'intégration et d'interface utilisateur à l'aide d'ABP Framework.", + "MasteringAbpFramework_Book_WhoIsThisBookFor": "À qui est destiné ce livre", + "MasteringAbpFramework_Book_WhoIsThisBookFor_Description": "Ce livre est destiné aux développeurs Web qui souhaitent apprendre les architectures logicielles et les meilleures pratiques pour créer des solutions Web maintenables \n à l'aide des technologies Microsoft et du framework ABP. Une connaissance de base de C# \n et d'ASP.NET Core est nécessaire pour démarrer avec ce livre.", + "ComputersAndTechnology": "Informatique et technologie", + "BuildingMicroserviceSolutions": "Création de solutions de microservices", + "MicroserviceBookPracticalGuide": "Ce livre est un guide de référence pour le développement et la gestion d'applications basées sur des microservices à l'aide du framework ABP. Il fait référence à l' exemple d'application de référence de microservice .NET : eShopOnContainers et discute des approches de conception architecturale et de mise en œuvre à l'aide du framework ABP. À la fin de ce livre, vous apprendrez comment ABP aborde les complexités courantes des microservices telles que l'autorisation, les transactions distribuées, les communications inter-microservices, le déploiement, etc.", + "IntroducingTheSolution": "Présentation de la solution eShopOnAbp", + "RunningTheSolution": "Exécuter la solution", + "UnderstandingTheAuthenticationSystem": "Comprendre le système d'authentification", + "ExploringTheApplications": "Explorer les applications", + "UnderstandingTheAPIGateways": "Comprendre les passerelles API", + "DevelopingTheMicroservices": "Développer les microservices", + "UnderstandingTheInfrastructure": "Comprendre l'infrastructure", + "DiggingInTheUseCases": "Creuser les cas d'utilisation", + "DeployingTheSolution": "Déployer la solution", + "ThisBookIsInDraftStageAndIsNotCompletedYet": "Ce livre est au stade de projet et n’est pas encore terminé.", + "Authors": "Auteurs", + "MicroserviceEBook": "Livre électronique sur les microservices", "SelectUITheme": "Sélectionnez le thème de l'interface utilisateur", + "LeptonXLiteTheme": "Thème LeptonX Lite", + "BasicTheme": "Thème de base", + "LeptonXLiteThemeInfo": "Un thème d'interface utilisateur Bootstrap moderne et élégant. Idéal si vous souhaitez disposer d’un thème d’interface utilisateur prêt pour la production. Il s'agit du thème le plus récent et celui par défaut.", + "BasicThemeInfo": "Thème d'interface utilisateur minimaliste avec des couleurs et des styles Bootstrap simples. Idéal si vous souhaitez créer votre propre thème d'interface utilisateur.", + "SeeDocumentation": "Voir la documentation .", + "SeeFullScreen": "🖼️ Voir la capture d'écran", + "BuildingMicroserviceSolutionsShortDescription": "Ce livre est un guide de référence pour le développement et la gestion d'applications basées sur des microservices à l'aide du framework ABP.", + "InstallAbpCliMessage": "Installez l'ABP CLI dans un terminal de ligne de commande, si vous ne l'avez pas encore installé :", + "Terminal": "Terminal", + "Copy": "Copie", + "RunTheFollowingCommand": "Exécutez la commande suivante dans un terminal de ligne de commande :", + "ChangeSolutionOptionsBelow": "Vous pouvez modifier les options de solution ci-dessous.", + "MultiLayerApplication": "Multicouche
Application", + "MultiLayerApplicationExplanation1": "Crée une solution entièrement en couches basée sur les pratiques de Domain Driven Design.", + "MultiLayerApplicationExplanation2": "Recommandé pour les projets à long terme nécessitant une base de code maintenable et extensible.", + "SingleLayerApplication": "Une seule couche
Application", + "SingleLayerApplicationExplanation1": "Crée une application Web monocouche.", + "SingleLayerApplicationExplanation2": "Recommandé pour créer une application avec une architecture plus simple et facile à comprendre.", + "ApplicationModule": "Application
Module", + "SeeTheScreenshot": "Voir la capture d'écran", + "ApplicationModuleExplanation1": "Crée une solution de module d'application réutilisable et entièrement en couches.", + "ApplicationModuleExplanation2": "Vous pouvez utiliser cette option pour créer des modules pour votre application modulaire.", + "Expert_": "Expert", + "Partner_": "Partenariat", + "WebSite": "Site web", + "Expert_Year": "Année d'expertise", + "CompanyInfo": "Information d'entreprise", + "Date": "Date", + "WhoWeAre_Partner": "Qui nous sommes", + "WhoWeAre_Expert": "Sur moi", "CreateSolutionFolder": "Créer un dossier de solutions", - "CreateSolutionFolderOption": "Spécifie si le projet sera dans un nouveau dossier dans le dossier de sortie ou directement dans le dossier de sortie." + "CreateSolutionFolderOption": "Spécifie si le projet sera dans un nouveau dossier dans le dossier de sortie ou directement dans le dossier de sortie.", + "BooksPageTitle": "Livres ABP", + "PackageDetailPage_NuGetPackageInstallationOptions": "Il existe trois façons d'installer le package {0} NuGet sur votre projet", + "PackageDetailPage_InstallingWithABPCLI": "1 : Installation avec l'ABP CLI", + "PackageDetailPage_InstallingWithABPCLIDescription1": "Si vous n'avez pas installé l' ABP CLI , installez-la d'abord en exécutant la commande suivante dans un terminal de ligne de commande", + "PackageDetailPage_InstallingWithABPCLIDescription2": "Une fois que vous avez installé l'ABP CLI, ouvrez un terminal de ligne de commande à l'emplacement du projet (fichier .csproj ) que vous souhaitez installer et exécutez la commande suivante", + "PackageDetailPage_InstallingWithABPCLIDescription3": "Il ajoutera la référence du package {0} à votre projet et la dépendance {1} à votre classe de module.", + "PackageDetailPage_ManualInstallation": "2 : Installation avec la CLI Dotnet", + "PackageDetailPage_ManualInstallationDescription1": "Ajoutez {0} la référence du package NuGet à votre projet à l'aide de votre IDE ou en exécutant la commande suivante", + "PackageDetailPage_ManualInstallationDescription2": "Ajoutez ensuite la dépendance {0} à votre classe de module comme indiqué dans l'exemple suivant", + "PackageDetailPage_SeeDocumentation": "Consultez la documentation pour savoir comment utiliser ce package dans vos applications.", + "PackageDetailPage_InstallingUsingPMC": "3 : Installation avec la console du gestionnaire de packages", + "PackageDetailPage_InstallingUsingPMCDescription1": "Ouvrez la console du gestionnaire de packages dans Visual Studio (Outils -> Nuget Package Manager -> Package Manager Console) et exécutez la commande suivante", + "UIOptions": "Options de l'interface utilisateur", + "Testimonials": "Témoignages", + "CoolestCompaniesUseABPFramework": "Les entreprises les plus cool utilisent le cadre ABP", + "Index_Page_Testimonial_1": "ABP Framework n'est pas seulement un outil mais un catalyseur qui a accéléré ma croissance en tant que développeur. Cela m'a permis de créer de nouvelles fonctionnalités plus rapidement que jamais, rappelant les expériences d'autres utilisateurs. Le modèle de codage unifié a rationalisé mes projets, me donnant plus de temps pour me concentrer sur la création plutôt que sur le dépannage. \n Je dirais que l'ABP Framework a été la pierre angulaire de mes débuts professionnels. Cela a facilité ma transition d'un développeur en herbe à un professionnel confiant, prêt à laisser sa marque dans le monde du logiciel. J'attends avec impatience les projets passionnants qui m'attendent, sachant qu'ABP sera là pour me guider. C'est plus qu'un simple produit ; c'est un partenaire de réussite.", + "Index_Page_Testimonial_2": "ABP Framework n'est pas seulement un framework, c'est aussi un guide pour le développement/gestion de projets, car il propose des formations DDD, GenericRepository, DI, Microservice, Modularité. Même si vous n'utilisez pas le framework lui-même, vous pouvez vous développer avec docs.abp.io qui est bien préparé de manière professionnelle. (OpenIddict, Redis, Quartz, etc.) \n Parce que de nombreux éléments sont pré-construits, cela réduit considérablement le temps de développement du projet. (Tels que la page de connexion, la gestion des exceptions, le filtrage-ensemencement des données, la journalisation d'audit, la localisation, le contrôleur API automatique, etc.) \n À titre d'exemple de notre application, j'ai utilisé Local Event Bus pour le contrôle des stocks. Ainsi, je suis capable de gérer les mouvements de commandes en écrivant stock handler. \n C'est merveilleux de ne pas perdre de temps pour CreationTime, CreatorId. Ils sont remplis automatiquement.", + "VideosLoginAndRegisterMessage": "Vous devez vous connecter pour regarder des vidéos. Vous pouvez créer un compte pour regarder si vous ne l'avez pas encore fait.", + "Filter": "Filtre", + "VideoCourses": "Cours vidéo" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/hi.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/hi.json index c101c8bdf9..69a8679150 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/hi.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/hi.json @@ -174,6 +174,8 @@ "CreateProjectWizard": "यह विज़ार्ड स्टार्टअप टेम्प्लेट से एक नई परियोजना बनाता है जो आपकी परियोजना को शुरू करने के लिए ठीक से कॉन्फ़िगर किया गया है।", "TieredOption": "एक ऐसा समाधान तैयार करता है जहाँ वेब और Http API परतें शारीरिक रूप से अलग हो जाती हैं। यदि जांच नहीं की जाती है, तो एक स्तरित समाधान बनाता है जो कम जटिल है और अधिकांश परिदृश्यों के लिए उपयुक्त है।", "SeparateIdentityServerOption": "सर्वर एप्लिकेशन को दो अनुप्रयोगों में अलग करता है: पहला पहचान सर्वर के लिए है और दूसरा आपके सर्वर साइड HTTP एपीआई के लिए है।", + "SeparateAuthenticationServerOption": "सर्वर साइड को दो अनुप्रयोगों में अलग करता है: पहला प्रमाणीकरण सर्वर के लिए है और दूसरा आपके सर्वर साइड HTTP एपीआई के लिए है।", + "ProgressiveWebApplicationOption": "प्रोजेक्ट को प्रगतिशील वेब एप्लिकेशन के रूप में निर्दिष्ट करता है", "UseslatestPreVersion": "नवीनतम पूर्व-रिलीज़ संस्करण का उपयोग करता है", "ReadTheDocumentation": "पढ़ेंदस्तावेज़ीकरण", "Documentation": "प्रलेखन", @@ -214,7 +216,11 @@ "SeeDocs": "डॉक्स देखें", "None": "कोई नहीं", "Application": "आवेदन", + "ApplicationExplanation": "डोमेन संचालित डिज़ाइन प्रथाओं के आधार पर एक पूरी तरह से स्तरित समाधान बनाता है। दीर्घकालिक परियोजनाओं के लिए अनुशंसित जिन्हें रखरखाव योग्य और विस्तार योग्य कोडबेस की आवश्यकता होती है।", + "ApplicationNoLayer": "अनुप्रयोग (एकल परत)", + "ApplicationNoLayerExplanation": "सिंगल-लेयर वेब एप्लिकेशन बनाता है। सरल और समझने में आसान आर्किटेक्चर वाला एप्लिकेशन बनाने के लिए अनुशंसित।", "Module": "मापांक", + "ModuleExplanation": "एक पुन: प्रयोज्य, पूरी तरह से स्तरित एप्लिकेशन मॉड्यूल समाधान बनाता है। आप अपने मॉड्यूलर एप्लिकेशन के लिए मॉड्यूल बनाने के लिए इस विकल्प का उपयोग कर सकते हैं।", "PackageName": "पैकेज का नाम", "LicenseURL": "लाइसेंस यूआरएल", "License": "लाइसेंस", @@ -274,8 +280,166 @@ "FirstEdition": "प्रथम संस्करण", "ThankYou": "शुक्रिया!", "CheckboxMandatory": "आगे बढ़ने के लिए आपको इसे जांचना होगा!", + "UserInterface": "प्रयोक्ता इंटरफ़ेस", + "APIGateway": "एपीआई गेटवे", + "Database": "डेटाबेस", + "Saas": "सास", + "OpenSourceWebApp": "खुला स्त्रोत
वेब अनुप्रयोग", + "Framework": "रूपरेखा", + "AuditLoggingExplanation": "आपके सिस्टम में सभी परिचालनों और डेटा परिवर्तनों को स्वचालित रूप से ट्रैक करें।", + "AbpNewCommandExplanation": "ABP स्टार्टअप टेम्प्लेट का उपयोग करके नए समाधान बनाता है।", + "AbpAddModuleCommandExplanation": "आपके समाधान में पूर्व-निर्मित एप्लिकेशन मॉड्यूल स्थापित करता है", + "AbpUpdateCommandExplanation": "आपके समाधान में सभी ABP संबंधित NuGet और NPM पैकेजों को स्वचालित रूप से अपडेट करता है।", + "ExploreAllCLICommands": "सभी सीएलआई कमांड का अन्वेषण करें", + "ExploreDocumentationAndGuides": "व्यापक दस्तावेज़ीकरण और मार्गदर्शिकाएँ देखें।", + "Documentations": "प्रलेखन", + "Views": "दृश्य", + "EnterYouEmailToGetNews": "एबीपी फ्रेमवर्क के बारे में नवीनतम समाचार प्राप्त करने के लिए अपना ईमेल दर्ज करें", + "Tiered": "स्तरित", + "SeparateIdentityServer": "अलग पहचान सर्वर", + "SeparateAuthenticationServer": "अलग प्रमाणीकरण सर्वर", + "ProgressiveWebApplication": "प्रगतिशील वेब अनुप्रयोग", + "Preview": "पूर्व दर्शन", + "CreateANewSolution": "एक नया समाधान बनाएं", + "ABPFrameworkFeatures": "एबीपी फ्रेमवर्क विशेषताएं", + "Commercial": "व्यावसायिक", + "ThirdPartyTools": "तृतीय पक्ष उपकरण", + "Back": "पीछे", + "Community": "समुदाय", + "SeeMore": "और देखें", + "DetailsOfTheEBook": "ई-बुक का विवरण", + "JoinOurMarketingNewsletter": "हमारे मार्केटिंग न्यूज़लेटर से जुड़ें", + "FrameworkNewsletterConfirmationMessage": "मैं नियम एवं शर्तों और गोपनीयता नीति से सहमत हूं।", + "GetYourFreeEBook": "अपनी निःशुल्क डीडीडी ई-पुस्तक प्राप्त करें", + "EverythingYouNeedToKnow": "सब कुछ जो आपके लिए जानना ज़रूरी है।", + "PreOrderNow": "पूर्व आदेश अब", + "UITheming": "यूआई थीमिंग", + "UIThemingExplanation": "पुन: प्रयोज्य यूआई थीम और लेआउट बनाएं या पूर्व-निर्मित यूआई थीम में से एक का उपयोग करें।", + "DataFilteringExplanation2": "सॉफ्ट-डिलीट और मल्टी-टेनेंसी जैसे पैटर्न को आसानी से लागू करने के लिए डेटाबेस से क्वेरी करने पर स्वचालित रूप से फ़िल्टर करें।", + "NeedHelp": "मदद की ज़रूरत है?", + "GiveYourProjectAName": "अपने प्रोजेक्ट को एक नाम दें", + "SelectProjectType": "प्रोजेक्ट प्रकार चुनें", + "SelectUIFramework": "यूआई फ्रेमवर्क चुनें", + "SelectDatabaseProvider": "डेटाबेस प्रदाता का चयन करें", + "SelectDatabaseManagementSystem": "डेटाबेस प्रबंधन प्रणाली का चयन करें", + "InstallingTheABPCLI": "एबीपी सीएलआई स्थापित करना", + "CreateYourProjectNow": "अभी अपना प्रोजेक्ट बनाएं", + "OrderOn": "{0} पर ऑर्डर करें", + "DownloadFreeDDDBook": "नि:शुल्क डीडीडी पुस्तक डाउनलोड करें", + "WhatIsABPFramework": "एबीपी फ्रेमवर्क क्या है?", + "TenantDatabase": "किरायेदार {0} डेटाबेस", + "SharedDatabase": "साझा डेटाबेस", + "ConnectionResolver": "कनेक्शन रिज़ॉल्वर", + "TenantBasedDataFilter": "किरायेदार आधारित डेटा फ़िल्टर", + "ApplicationCode": "आवेदन कोड", + "TenantResolution": "किरायेदार संकल्प", + "TenantUser": "किरायेदार {0} उपयोगकर्ता", + "CardTitle": "कार्ड का शीर्षक", + "View": "देखना", + "Model": "नमूना", + "Email": "ईमेल", + "Password": "पासवर्ड", + "Address": "पता", + "Gender": "लिंग", + "Male": "पुरुष", + "Female": "महिला", + "Submit": "जमा करना", + "Unspecified": "अनिर्दिष्ट", + "StaticFileMiddleware": "स्टेटिक फ़ाइल मिडलवेयर", + "RazorViewEngine": "रेजर व्यू इंजन", + "PhysicalFiles": "भौतिक फ़ाइलें (wwwroot)", + "EmbeddedFiles": "एंबेडेड फ़ाइलें (डीएलएल)", + "DynamicFiles": "गतिशील फ़ाइलें (मेमोरी)", + "BuildSolutionsWithAbp": "एबीपी का उपयोग करके सॉफ्टवेयर विकास की सर्वोत्तम प्रथाओं का पालन करके रखरखाव योग्य .NET समाधान बनाएं।", + "BuyOnAmazon": "अमेज़न पर खरीदें", + "BuyOnPackt": "पैकेट पर खरीदें", + "Discounted": "रियायती", + "MasteringAbpFramework_Book_KeyFeatures": "प्रमुख विशेषताऐं", + "MasteringAbpFramework_Book_Key_Features_Description_1": "एबीपी फ्रेमवर्क का उपयोग करके मजबूत, रखरखाव योग्य, मॉड्यूलर और स्केलेबल सॉफ़्टवेयर समाधान बनाएं।", + "MasteringAbpFramework_Book_Key_Features_Description_2": "जानें कि अपने वेब अनुप्रयोगों में SOLID सिद्धांतों और डोमेन-संचालित डिज़ाइन को कैसे लागू करें।", + "MasteringAbpFramework_Book_Key_Features_Description_3": "जानें कि कैसे एबीपी फ्रेमवर्क दोहराए जाने वाले कार्यों को स्वचालित करके आपके विकास चक्र को गति देता है।", + "MasteringAbpFramework_Book_Description": "पुस्तक विवरण", + "MasteringAbpFramework_Book_Description_Details_1": "एबीपी फ्रेमवर्क सॉफ्टवेयर \n विकास की सर्वोत्तम प्रथाओं और परंपराओं का पालन करके आधुनिक वेब एप्लिकेशन बनाने के लिए एक संपूर्ण बुनियादी ढांचा है। एबीपी के उच्च-स्तरीय ढांचे और पारिस्थितिकी तंत्र के साथ, आप \n डोंट रिपीट योरसेल्फ (डीआरवाई) सिद्धांत को लागू कर सकते हैं और अपने बिजनेस कोड पर ध्यान केंद्रित कर सकते हैं।", + "MasteringAbpFramework_Book_Description_Details_2": "एबीपी फ्रेमवर्क के निर्माता द्वारा लिखित, यह पुस्तक आपको \n फ्रेमवर्क और आधुनिक वेब एप्लिकेशन डेवलपमेंट तकनीकों की पूरी समझ हासिल करने में मदद करेगी। आवश्यक \n अवधारणाओं और व्यावहारिक उदाहरणों के चरण-दर-चरण स्पष्टीकरण के साथ, आप एक आधुनिक वेब समाधान की आवश्यकताओं को समझेंगे और कैसे एबीपी \n फ्रेमवर्क आपके स्वयं के समाधान विकसित करना आनंददायक बनाता है। आप \n एंटरप्राइज़ वेब एप्लिकेशन डेवलपमेंट की सामान्य आवश्यकताओं की खोज करेंगे और ABP द्वारा प्रदान किए गए बुनियादी ढांचे का पता लगाएंगे। \n पुस्तक के दौरान, आप रखरखाव योग्य और मॉड्यूलर \n वेब समाधान बनाने के लिए सॉफ़्टवेयर विकास की सर्वोत्तम प्रथाओं से परिचित हो जाएंगे।", + "MasteringAbpFramework_Book_Description_Details_3": "इस पुस्तक के अंत तक, आप एक संपूर्ण वेब समाधान बनाने में सक्षम होंगे जिसे विकसित करना, \n रखरखाव और परीक्षण करना आसान है।", + "MasteringAbpFramework_Book_WhatYouWillLearn": "आप क्या सीखेंगे", + "MasteringAbpFramework_Book_What_You_Will_Learn_1": "विकास परिवेश स्थापित करें और एबीपी फ्रेमवर्क के साथ शुरुआत करें।", + "MasteringAbpFramework_Book_What_You_Will_Learn_2": "अपनी डेटा एक्सेस परत विकसित करने के लिए एंटिटी फ्रेमवर्क कोर और MongoDB के साथ काम करें।", + "MasteringAbpFramework_Book_What_You_Will_Learn_3": "क्रॉस-कटिंग चिंताओं को समझें और एबीपी दोहराए जाने वाले कार्यों को कैसे स्वचालित करता है।", + "MasteringAbpFramework_Book_What_You_Will_Learn_4": "एबीपी फ्रेमवर्क के साथ डोमेन-संचालित डिज़ाइन को लागू करने में महारत हासिल करें।", + "MasteringAbpFramework_Book_What_You_Will_Learn_5": "ASP.NET Core MVC (रेज़र पेज) और ब्लेज़र के साथ UI पेज और घटक बनाएं।", + "MasteringAbpFramework_Book_What_You_Will_Learn_6": "मॉड्यूलर वेब एप्लिकेशन बनाने के लिए मल्टी-टेनेंसी के साथ काम करें।", + "MasteringAbpFramework_Book_What_You_Will_Learn_7": "मॉड्यूलैरिटी को समझें और पुन: प्रयोज्य एप्लिकेशन मॉड्यूल बनाएं।", + "MasteringAbpFramework_Book_What_You_Will_Learn_8": "एबीपी फ्रेमवर्क का उपयोग करके यूनिट, एकीकरण और यूआई परीक्षण लिखें।", + "MasteringAbpFramework_Book_WhoIsThisBookFor": "यह किताब किसके लिए है", + "MasteringAbpFramework_Book_WhoIsThisBookFor_Description": "यह पुस्तक उन वेब डेवलपर्स के लिए है जो माइक्रोसॉफ्ट तकनीकों और एबीपी फ्रेमवर्क का उपयोग करके \n रखरखाव योग्य वेब-आधारित समाधान बनाने के लिए सॉफ्टवेयर आर्किटेक्चर और सर्वोत्तम प्रथाओं को सीखना चाहते हैं। इस पुस्तक के साथ आरंभ करने के लिए C# \n और ASP.NET Core का बुनियादी ज्ञान आवश्यक है।", + "ComputersAndTechnology": "कंप्यूटर एवं प्रौद्योगिकी", + "BuildingMicroserviceSolutions": "माइक्रोसर्विस समाधान का निर्माण", + "MicroserviceBookPracticalGuide": "यह पुस्तक एबीपी फ्रेमवर्क का उपयोग करके माइक्रोसर्विस-आधारित अनुप्रयोगों के विकास और प्रबंधन के लिए एक संदर्भ मार्गदर्शिका है। यह .NET माइक्रोसर्विस नमूना संदर्भ एप्लिकेशन : eShopOnContainers का संदर्भ देता है और एबीपी फ्रेमवर्क का उपयोग करके वास्तुशिल्प डिजाइन और कार्यान्वयन दृष्टिकोण पर चर्चा करता है। इस पुस्तक के अंत तक, आप सीखेंगे कि एबीपी सामान्य माइक्रोसर्विस जटिलताओं जैसे प्राधिकरण, वितरित लेनदेन, अंतर-माइक्रोसर्विस संचार, तैनाती इत्यादि से कैसे निपटता है।", + "IntroducingTheSolution": "पेश है eShopOnAbp सॉल्यूशन", + "RunningTheSolution": "समाधान चला रहा है", + "UnderstandingTheAuthenticationSystem": "प्रमाणीकरण प्रणाली को समझना", + "ExploringTheApplications": "अनुप्रयोगों की खोज", + "UnderstandingTheAPIGateways": "एपीआई गेटवे को समझना", + "DevelopingTheMicroservices": "माइक्रोसर्विसेज का विकास करना", + "UnderstandingTheInfrastructure": "इन्फ्रास्ट्रक्चर को समझना", + "DiggingInTheUseCases": "उपयोग के मामलों में खुदाई", + "DeployingTheSolution": "समाधान तैनात करना", + "ThisBookIsInDraftStageAndIsNotCompletedYet": "यह पुस्तक मसौदा चरण में है और अभी तक पूरी नहीं हुई है।", + "Authors": "लेखक", + "MicroserviceEBook": "माइक्रोसर्विस ई-बुक", "SelectUITheme": "यूआई थीम का चयन करें", + "LeptonXLiteTheme": "लेप्टनएक्स लाइट थीम", + "BasicTheme": "मूल विषय", + "LeptonXLiteThemeInfo": "एक आधुनिक और स्टाइलिश बूटस्ट्रैप यूआई थीम। आदर्श यदि आप उत्पादन के लिए तैयार यूआई थीम चाहते हैं। यह नवीनतम थीम है और डिफ़ॉल्ट है.", + "BasicThemeInfo": "सादे बूटस्ट्रैप रंगों और शैलियों के साथ न्यूनतम यूआई थीम। आदर्श यदि आप अपनी स्वयं की यूआई थीम बनाएंगे।", + "SeeDocumentation": "दस्तावेज़ देखें.", + "SeeFullScreen": "🖼️ स्क्रीनशॉट देखें", + "BuildingMicroserviceSolutionsShortDescription": "यह पुस्तक एबीपी फ्रेमवर्क का उपयोग करके माइक्रोसर्विस-आधारित अनुप्रयोगों के विकास और प्रबंधन के लिए एक संदर्भ मार्गदर्शिका है।", + "InstallAbpCliMessage": "यदि आपने इसे पहले स्थापित नहीं किया है, तो कमांड लाइन टर्मिनल में एबीपी सीएलआई स्थापित करें:", + "Terminal": "टर्मिनल", + "Copy": "प्रतिलिपि", + "RunTheFollowingCommand": "कमांड लाइन टर्मिनल में निम्नलिखित कमांड चलाएँ:", + "ChangeSolutionOptionsBelow": "आप नीचे दिए गए समाधान विकल्प बदल सकते हैं.", + "MultiLayerApplication": "बहु परत
आवेदन", + "MultiLayerApplicationExplanation1": "डोमेन संचालित डिज़ाइन प्रथाओं के आधार पर एक पूरी तरह से स्तरित समाधान बनाता है।", + "MultiLayerApplicationExplanation2": "दीर्घकालिक परियोजनाओं के लिए अनुशंसित जिन्हें रखरखाव योग्य और विस्तार योग्य कोडबेस की आवश्यकता होती है।", + "SingleLayerApplication": "एकल परत
आवेदन", + "SingleLayerApplicationExplanation1": "सिंगल-लेयर वेब एप्लिकेशन बनाता है।", + "SingleLayerApplicationExplanation2": "सरल और समझने में आसान आर्किटेक्चर वाला एप्लिकेशन बनाने के लिए अनुशंसित।", + "ApplicationModule": "आवेदन
मापांक", + "SeeTheScreenshot": "स्क्रीनशॉट देखें", + "ApplicationModuleExplanation1": "एक पुन: प्रयोज्य, पूरी तरह से स्तरित एप्लिकेशन मॉड्यूल समाधान बनाता है।", + "ApplicationModuleExplanation2": "आप अपने मॉड्यूलर एप्लिकेशन के लिए मॉड्यूल बनाने के लिए इस विकल्प का उपयोग कर सकते हैं।", + "Expert_": "विशेषज्ञ", + "Partner_": "साझेदारी", + "WebSite": "वेबसाइट", + "Expert_Year": "विशेषज्ञता वर्ष", + "CompanyInfo": "कंपनी की जानकारी", + "Date": "तारीख", + "WhoWeAre_Partner": "हम जो हैं", + "WhoWeAre_Expert": "मेरे बारे में", "CreateSolutionFolder": "समाधान फ़ोल्डर बनाएँ", - "CreateSolutionFolderOption": "निर्दिष्ट करता है कि प्रोजेक्ट आउटपुट फ़ोल्डर या सीधे आउटपुट फ़ोल्डर में एक नए फ़ोल्डर में होगा या नहीं।" + "CreateSolutionFolderOption": "निर्दिष्ट करता है कि प्रोजेक्ट आउटपुट फ़ोल्डर या सीधे आउटपुट फ़ोल्डर में एक नए फ़ोल्डर में होगा या नहीं।", + "BooksPageTitle": "एबीपी पुस्तकें", + "PackageDetailPage_NuGetPackageInstallationOptions": "आपके प्रोजेक्ट में {0} NuGet पैकेज स्थापित करने के तीन तरीके हैं", + "PackageDetailPage_InstallingWithABPCLI": "1: एबीपी सीएलआई के साथ इंस्टाल करना", + "PackageDetailPage_InstallingWithABPCLIDescription1": "यदि आपने एबीपी सीएलआई स्थापित नहीं किया है, तो पहले कमांड-लाइन टर्मिनल में निम्नलिखित कमांड निष्पादित करके इंस्टॉल करें", + "PackageDetailPage_InstallingWithABPCLIDescription2": "एक बार जब आप एबीपी सीएलआई स्थापित कर लेते हैं, तो प्रोजेक्ट के स्थान ( .csproj फ़ाइल) में एक कमांड-लाइन टर्मिनल खोलें, जिसे आप इंस्टॉल करना चाहते हैं और निम्न कमांड निष्पादित करें", + "PackageDetailPage_InstallingWithABPCLIDescription3": "यह आपके प्रोजेक्ट में {0} पैकेज संदर्भ और आपके मॉड्यूल वर्ग में {1} निर्भरता जोड़ देगा।", + "PackageDetailPage_ManualInstallation": "2: डॉटनेट सीएलआई के साथ इंस्टाल करना", + "PackageDetailPage_ManualInstallationDescription1": "अपनी IDE का उपयोग करके या निम्न आदेश निष्पादित करके अपने प्रोजेक्ट में {0} NuGet पैकेज संदर्भ जोड़ें", + "PackageDetailPage_ManualInstallationDescription2": "फिर अपने मॉड्यूल वर्ग में {0} निर्भरता जोड़ें जैसा कि निम्नलिखित उदाहरण में दिखाया गया है", + "PackageDetailPage_SeeDocumentation": "अपने अनुप्रयोगों में इस पैकेज का उपयोग कैसे करें यह जानने के लिए दस्तावेज़ देखें ।", + "PackageDetailPage_InstallingUsingPMC": "3: पैकेज मैनेजर कंसोल के साथ इंस्टाल करना", + "PackageDetailPage_InstallingUsingPMCDescription1": "विजुअल स्टूडियो में पैकेज मैनेजर कंसोल खोलें (टूल्स -> नुगेट पैकेज मैनेजर -> पैकेज मैनेजर कंसोल) और निम्नलिखित कमांड निष्पादित करें", + "UIOptions": "यूआई विकल्प", + "Testimonials": "प्रशंसापत्र", + "CoolestCompaniesUseABPFramework": "सबसे अच्छी कंपनियां एबीपी फ्रेमवर्क का उपयोग करती हैं", + "Index_Page_Testimonial_1": "एबीपी फ्रेमवर्क सिर्फ एक उपकरण नहीं है बल्कि एक उत्प्रेरक है जिसने एक डेवलपर के रूप में मेरे विकास को गति दी है। इसने मेरे लिए पहले से कहीं अधिक तेजी से अन्य उपयोगकर्ताओं के अनुभवों की याद दिलाते हुए नई सुविधाएँ बनाना संभव बना दिया है। एकीकृत कोडिंग पैटर्न ने मेरी परियोजनाओं को सुव्यवस्थित कर दिया है, जिससे मुझे समस्या निवारण के बजाय निर्माण पर ध्यान केंद्रित करने के लिए अधिक समय मिल गया है। \n मैं कहूंगा कि एबीपी फ्रेमवर्क मेरी शुरुआती पेशेवर यात्रा की आधारशिला रहा है। इसने एक महत्वाकांक्षी डेवलपर से सॉफ्टवेयर की दुनिया में अपनी पहचान बनाने के लिए तैयार आत्मविश्वासी पेशेवर बनने में मेरे बदलाव को आसान बना दिया है। मैं उन रोमांचक परियोजनाओं का इंतजार कर रहा हूं जो मेरा इंतजार कर रही हैं, यह जानते हुए कि एबीपी मेरा मार्गदर्शन करने के लिए मौजूद रहेगा। यह सिर्फ एक उत्पाद से कहीं अधिक है; यह सफलता में भागीदार है.", + "Index_Page_Testimonial_2": "एबीपी फ्रेमवर्क न केवल एक ढांचा है, यह परियोजना विकास/प्रबंधन के लिए एक मार्गदर्शन भी है, क्योंकि यह डीडीडी, जेनेरिक रिपोजिटरी, डीआई, माइक्रोसर्विस, मॉड्यूलरिटी प्रशिक्षण प्रदान करता है। भले ही आप स्वयं फ्रेमवर्क का उपयोग नहीं करने जा रहे हैं, आप docs.abp.io के साथ स्वयं को विकसित कर सकते हैं जो अच्छी तरह से और पेशेवर रूप से तैयार है। (OpenIddict, Redis, Quartz आदि) \n चूंकि कई चीजें पहले से निर्मित होती हैं, इसलिए यह परियोजना के विकास के समय को काफी कम कर देता है। (जैसे लॉगिन पेज, अपवाद हैंडलिंग, डेटा फ़िल्टरिंग-सीडिंग, ऑडिट लॉगिंग, स्थानीयकरण, ऑटो एपीआई नियंत्रक इत्यादि) \n हमारे ऐप से एक उदाहरण के रूप में, मैंने स्टॉक नियंत्रण के लिए स्थानीय इवेंट बस का उपयोग किया है। इसलिए, मैं स्टॉक हैंडलर लिखकर ऑर्डर मूवमेंट को प्रबंधित करने में सक्षम हूं। \n CreationTime, CreatorId के लिए समय न बर्बाद करना अद्भुत है। वे स्वचालित रूप से भर जाते हैं.", + "VideosLoginAndRegisterMessage": "वीडियो देखने के लिए आपको साइन इन करना होगा. यदि आपने नहीं बनाया है तो आप घड़ी के लिए एक खाता बना सकते हैं।", + "Filter": "फ़िल्टर", + "VideoCourses": "वीडियो पाठ्यक्रम" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/hr.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/hr.json new file mode 100644 index 0000000000..1fd22e6ad9 --- /dev/null +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/hr.json @@ -0,0 +1,445 @@ +{ + "culture": "hr", + "texts": { + "GetStarted": "Započnite", + "Create": "Stvoriti", + "NewProject": "Novi projekt", + "DirectDownload": "Direktno skidanje", + "ProjectName": "Naziv projekta", + "ProjectType": "Vrsta projekta", + "DatabaseProvider": "Davatelj baze podataka", + "DatabaseManagementSystem": "Sustav za upravljanje bazom podataka", + "NTier": "N-razina", + "IncludeUserInterface": "Uključi korisničko sučelje", + "CreateNow": "Kreirajte sada", + "TheStartupProject": "Startup projekt", + "Tutorial": "Tutorial", + "UsingCLI": "Korištenje CLI-ja", + "SeeDetails": "Pogledaj detalje", + "AbpShortDescription": "ABP Framework je cjelovita infrastruktura za izradu softverskih rješenja s modernom arhitekturom temeljenom na ASP.NET Core platformi.", + "SourceCodeUpper": "IZVORNI KOD", + "LatestReleaseLogs": "Dnevnici najnovijih izdanja", + "Infrastructure": "Infrastruktura", + "Architecture": "Arhitektura", + "Modular": "Modularni", + "DontRepeatYourself": "Nemojte se ponavljati", + "DeveloperFocused": "Usmjeren na razvojnog programera", + "FullStackApplicationInfrastructure": "Infrastruktura pune aplikacije.", + "DomainDrivenDesign": "Dizajn vođen domenom", + "DomainDrivenDesignExplanation": "Dizajniran i razvijen na temelju DDD obrazaca i načela. Pruža slojeviti model za vašu aplikaciju.", + "Authorization": "Autorizacija", + "AuthorizationExplanation": "Napredna autorizacija s korisnikom, ulogom i preciznim sustavom dopuštenja. Izgrađen na biblioteci Microsoft Identity.", + "MultiTenancy": "Multi-Tenancy", + "MultiTenancyExplanationShort": "SaaS aplikacije su postale jednostavne! Integrirano višenamjensko korištenje od baze podataka do korisničkog sučelja.", + "CrossCuttingConcerns": "Međusobne brige", + "CrossCuttingConcernsExplanationShort": "Kompletna infrastruktura za autorizaciju, provjeru valjanosti, rukovanje iznimkama, predmemoriju, revizijsko bilježenje, upravljanje transakcijama i više.", + "BuiltInBundlingMinification": "Ugrađeno grupiranje i smanjivanje", + "BuiltInBundlingMinificationExplanation": "Nema potrebe za korištenjem vanjskih alata za grupiranje i smanjivanje. ABP nudi jednostavniji, dinamičniji, snažniji, modularni i ugrađeni način!", + "VirtualFileSystem": "Virtualni datotečni sustav", + "VirtualFileSystemExplanation": "Ugradite prikaze, skripte, stilove, slike... u pakete/biblioteke i ponovno ih upotrijebite u različitim aplikacijama.", + "Theming": "Tematiziranje", + "ThemingExplanationShort": "Upotrijebite i prilagodite standardnu temu korisničkog sučelja koja se temelji na pokretanju ili izradite vlastitu.", + "BootstrapTagHelpersDynamicForms": "Bootstrap Tag Helpers & Dynamic Forms", + "BootstrapTagHelpersDynamicFormsExplanation": "Umjesto ručnog pisanja ponavljajućih detalja komponenti pokretanja sustava, upotrijebite ABP-ove pomoćnike oznaka da ih pojednostavite i iskoristite IntelliSense. Brzo izradite obrasce korisničkog sučelja temeljene na C# modelu pomoću pomoćnika dinamičke oznake obrasca.", + "HTTPAPIsDynamicProxies": "HTTP API-ji i dinamički proxyji", + "HTTPAPIsDynamicProxiesExplanation": "Automatski izložite aplikacijske usluge kao HTTP API-je u REST stilu i koristite ih s dinamičkim JavaScript i C# proxyjima.", + "CompleteArchitectureInfo": "Moderna arhitektura za stvaranje softverskih rješenja koja se mogu održavati.", + "DomainDrivenDesignBasedLayeringModelExplanation": "Pomaže implementirati slojevitu arhitekturu temeljenu na DDD-u i izgraditi bazu koda koja se može održavati.", + "DomainDrivenDesignBasedLayeringModelExplanationCont": "Pruža predloške za pokretanje, apstrakcije, osnovne klase, usluge, dokumentaciju i vodiče koji će vam pomoći da razvijete svoju aplikaciju na temelju DDD obrazaca i principa.", + "MicroserviceCompatibleModelExplanation": "Osnovni okvir i unaprijed izgrađeni moduli dizajnirani su imajući na umu arhitekturu mikroservisa.", + "MicroserviceCompatibleModelExplanationCont": "Pruža infrastrukturu, integracije, uzorke i dokumentaciju za lakšu implementaciju mikroservisnih rješenja, a pritom ne donosi dodatnu složenost ako želite monolitnu aplikaciju.", + "ModularInfo": "ABP pruža sustav modula koji vam omogućuje da razvijete aplikacijske module za višekratnu upotrebu, povežete s događajima životnog ciklusa aplikacije i izrazite ovisnosti između ključnih dijelova vašeg sustava.", + "PreBuiltModulesThemes": "Unaprijed izgrađeni moduli i teme", + "PreBuiltModulesThemesExplanation": "Open source i komercijalni moduli i teme spremni su za korištenje u vašoj poslovnoj aplikaciji.", + "NuGetNPMPackages": "NuGet & NPM paketi", + "NuGetNPMPackagesExplanation": "Distribuiraju se kao NuGet & NPM paketi. Jednostavan za instalaciju i nadogradnju.", + "ExtensibleReplaceable": "Proširivo/zamjenjivo", + "ExtensibleReplaceableExplanation": "Sve usluge i moduli dizajnirani su imajući na umu mogućnost proširivanja. Možete zamijeniti usluge, stranice, stilove i komponente.", + "CrossCuttingConcernsExplanation2": "Neka vaša baza kodova bude manja kako biste se mogli usredotočiti na kod koji je specifičan za vašu tvrtku.", + "CrossCuttingConcernsExplanation3": "Nemojte trošiti vrijeme na implementaciju uobičajenih zahtjeva za aplikacije na više projekata.", + "AuthenticationAuthorization": "Autentifikacija i autorizacija", + "ExceptionHandling": "Rukovanje iznimkama", + "Validation": "Validacija", + "DatabaseConnection": "Veza s bazom podataka", + "TransactionManagement": "Upravljanje transakcijama", + "AuditLogging": "Zapisivanje revizije", + "Caching": "Predmemoriranje", + "Multitenancy": "Višestanarstvo", + "DataFiltering": "Filtriranje podataka", + "ConventionOverConfiguration": "Konvencija nad konfiguracijom", + "ConventionOverConfigurationExplanation": "ABP prema zadanim postavkama implementira uobičajene konvencije aplikacija s minimalnom ili nultom konfiguracijom.", + "ConventionOverConfigurationExplanationList1": "Automatski registrira poznate usluge za uvođenje ovisnosti.", + "ConventionOverConfigurationExplanationList2": "Izlaže aplikacijske usluge kao HTTP API-je konvencijama imenovanja.", + "ConventionOverConfigurationExplanationList3": "Stvara dinamičke HTTP proxy klijente za C# i JavaScript.", + "ConventionOverConfigurationExplanationList4": "Pruža zadana spremišta za vaše entitete.", + "ConventionOverConfigurationExplanationList5": "Upravlja jedinicom rada po web zahtjevu ili metodi usluge aplikacije.", + "ConventionOverConfigurationExplanationList6": "Objavljuje događaje stvaranja, ažuriranja i brisanja za vaše entitete.", + "BaseClasses": "Bazne klase", + "BaseClassesExplanation": "Unaprijed izgrađene osnovne klase za uobičajene obrasce primjene.", + "DeveloperFocusedExplanation": "ABP je za programere.", + "DeveloperFocusedExplanationCont": "Cilj mu je pojednostaviti vaš svakodnevni razvoj softvera, a pritom vas ne ograničava u pisanju koda niske razine.", + "SeeAllFeatures": "Pogledajte sve značajke", + "CLI_CommandLineInterface": "CLI (sučelje naredbenog retka)", + "CLI_CommandLineInterfaceExplanation": "Uključuje CLI koji vam pomaže automatizirati stvaranje novih projekata i dodavanje novih modula.", + "StartupTemplates": "Predlošci za pokretanje", + "StartupTemplatesExplanation": "ABP-ov predložak za pokretanje aplikacije pruža potpuno konfigurirano rješenje za početak vašeg razvoja.", + "BasedOnFamiliarTools": "Na temelju poznatih alata", + "BasedOnFamiliarToolsExplanation": "Izgrađen i integriran s popularnim alatima koje već poznajete. Niska krivulja učenja, laka prilagodba, ugodan razvoj.", + "ORMIndependent": "ORM Neovisan", + "ORMIndependentExplanation": "Temeljni okvir neovisan je o ORM-u/bazi podataka i može raditi s bilo kojim izvorom podataka. Ponuđači Entity Framework Core i MongoDB već su dostupni.", + "Features": "Istražite značajke ABP okvira", + "ABPCLI": "ABP CLI", + "Modularity": "Modularnost", + "BootstrapTagHelpers": "Bootstrap Tag Helpers", + "DynamicForms": "Dinamički oblici", + "BundlingMinification": "Grupiranje i smanjivanje", + "BackgroundJobs": "Pozadinski poslovi", + "BackgroundJobsExplanation": "Definirajte jednostavne klase za izvršavanje poslova u pozadini dok su u redu. Koristite ugrađeni upravitelj poslova ili integrirajte vlastiti. Integracije Hangfire & RabbitMQ već su dostupne.", + "DDDInfrastructure": "DDD Infrastruktura", + "DomainDrivenDesignInfrastructure": "Infrastruktura dizajna vođena domenom", + "AutoRESTAPIs": "Automatski REST API-ji", + "DynamicClientProxies": "Proxy dinamički klijent", + "DistributedEventBus": "Distribuirana sabirnica događaja", + "DistributedEventBusWithRabbitMQIntegration": "Distribuirana sabirnica događaja s RabbitMQ integracijom", + "TestInfrastructure": "Testna infrastruktura", + "AuditLoggingEntityHistories": "Zapisivanje revizije i povijest entiteta", + "ObjectToObjectMapping": "Mapiranje objekta u objekt", + "ObjectToObjectMappingExplanation": "Apstrakcija preslikavanja objekta na objekt s integracijom AutoMappera.", + "EmailSMSAbstractions": "Apstrakcije e-pošte i SMS-a", + "EmailSMSAbstractionsWithTemplatingSupport": "Apstrakcije e-pošte i SMS-a s podrškom za predloške", + "Localization": "Lokalizacija", + "SettingManagement": "Upravljanje postavkama", + "ExtensionMethods": "Metode proširenja", + "ExtensionMethodsHelpers": "Metode proširenja i pomoćnici", + "AspectOrientedProgramming": "Aspektno orijentirano programiranje", + "DependencyInjection": "Injekcija ovisnosti", + "DependencyInjectionByConventions": "Uvođenje ovisnosti prema konvencijama", + "ABPCLIExplanation": "ABP CLI (sučelje naredbenog retka) alat je naredbenog retka za automatizaciju nekih uobičajenih operacija za rješenja temeljena na ABP-u.", + "ModularityExplanation": "ABP pruža kompletnu infrastrukturu za izgradnju vlastitih aplikacijskih modula koji mogu imati entitete, usluge, integraciju baze podataka, API-je, UI komponente i tako dalje.", + "MultiTenancyExplanation": "ABP okvir ne samo da podržava razvoj multi-tenant aplikacija, već također čini da vaš kod uglavnom nije svjestan multi-tenant-a.", + "MultiTenancyExplanation2": "Može automatski odrediti trenutnog stanara, izolirati podatke različitih stanara jedne od drugih.", + "MultiTenancyExplanation3": "Podržava jedinstvenu bazu podataka, bazu podataka po zakupcu i hibridne pristupe.", + "MultiTenancyExplanation4": "Fokusirate se na svoj poslovni kod i prepuštate okviru da umjesto vas upravlja multi-stanarstvom.", + "BootstrapTagHelpersExplanation": "Umjesto ručnog pisanja ponavljajućih detalja komponenti pokretanja sustava, upotrijebite ABP-ove pomoćnike oznaka da to pojednostavite i iskoristite IntelliSense. Definitivno možete koristiti Bootstrap kad god vam zatreba.", + "DynamicFormsExplanation": "Pomoćnici dinamičkih obrazaca i oznaka za unos mogu stvoriti potpuni obrazac iz C# klase kao modela.", + "AuthenticationAuthorizationExplanation": "Bogate opcije provjere autentičnosti i autorizacije integrirane u ASP.NET Core Identity & IdentityServer4. Omogućuje proširiv i detaljan sustav dopuštenja.", + "CrossCuttingConcernsExplanation": "Nemojte se ponavljati kako biste iznova i iznova implementirali sve ove uobičajene stvari. Usredotočite se na svoj poslovni kod i dopustite ABP-u da ih automatizira prema konvencijama.", + "DatabaseConnectionTransactionManagement": "Povezivanje baze podataka i upravljanje transakcijama", + "CorrelationIdTracking": "Praćenje ID-a korelacije", + "BundlingMinificationExplanation": "ABP nudi jednostavan, dinamičan, moćan, modularan i ugrađen sustav povezivanja i smanjivanja.", + "VirtualFileSystemnExplanation": "Virtualni datotečni sustav omogućuje upravljanje datotekama koje fizički ne postoje na datotečnom sustavu (disku). Uglavnom se koristi za ugradnju datoteka (js, css, slika, cshtml...) u sklopove i njihovu upotrebu kao fizičke datoteke tijekom izvođenja.", + "ThemingExplanation": "Sustav temiranja omogućuje razvoj vaše aplikacije i modula neovisno o temi definiranjem skupa zajedničkih osnovnih biblioteka i izgleda, temeljenih na najnovijem okviru Bootstrap.", + "DomainDrivenDesignInfrastructureExplanation": "Potpuna infrastruktura za izgradnju slojevitih aplikacija temeljenih na obrascima i principima dizajna vođenog domenom;", + "Specification": "Specifikacija", + "Repository": "Spremište", + "DomainService": "Usluga domene", + "ValueObject": "Vrijednost objekta", + "ApplicationService": "Usluga aplikacije", + "DataTransferObject": "Objekt prijenosa podataka", + "AggregateRootEntity": "Skupni korijen, entitet", + "AutoRESTAPIsExplanation": "ABP može automatski konfigurirati vaše aplikacijske usluge kao API kontrolere prema konvenciji.", + "DynamicClientProxiesExplanation": "Lako koristite svoje API-je iz JavaScript i C# klijenata.", + "DistributedEventBusWithRabbitMQIntegrationExplanation": "Jednostavno objavite i konzumirajte distribuirane događaje pomoću ugrađene Distribuirane sabirnice događaja s dostupnom RabbitMQ integracijom.", + "TestInfrastructureExplanation": "Okvir je razvijen imajući na umu jedinično i integracijsko testiranje. Pruža vam osnovne klase za lakše. Predlošci za pokretanje dolaze unaprijed konfigurirani za testiranje.", + "AuditLoggingEntityHistoriesExplanation": "Ugrađeno revizijsko bilježenje za poslovne aplikacije. Zahtjev, usluga, bilježenje revizije na razini metode i povijest entiteta s detaljima na razini svojstva.", + "EmailSMSAbstractionsWithTemplatingSupportExplanation": "Apstrakcije IEmailSender i ISmsSender odvajaju logiku vaše aplikacije od infrastrukture. Napredni sustav predložaka e-pošte omogućuje stvaranje i lokalizaciju predložaka e-pošte i jednostavnu upotrebu kad god je potrebno.", + "LocalizationExplanation": "Sustav lokalizacije omogućuje stvaranje resursa u običnim JSON datotekama i koristi ih za lokalizaciju vašeg korisničkog sučelja. Podržava napredne scenarije kao što su nasljeđivanje, proširenja i JavaScript integracija dok je u potpunosti kompatibilan sa sustavom lokalizacije AspNet Core.", + "SettingManagementExplanation": "Definirajte postavke za svoju aplikaciju i dobijte vrijednosti u vremenu izvođenja na temelju trenutne konfiguracije, stanara i korisnika.", + "ExtensionMethodsHelpersExplanation": "Nemojte se ponavljati čak ni za trivijalne dijelove koda. Proširenja i pomoćnici za standardne tipove čine vaš kod mnogo čišćim i lakšim za pisanje.", + "AspectOrientedProgrammingExplanation": "Pruža udobnu infrastrukturu za stvaranje dinamičkih proxyja i implementaciju aspektno orijentiranog programiranja. Presretnite bilo koju klasu i izvršite svoj kod prije i poslije svakog izvođenja metode.", + "DependencyInjectionByConventionsExplanation": "Nema potrebe da ručno registrirate svoje razrede na ubrizgavanje ovisnosti. Automatski registrira uobičajene vrste usluga prema konvenciji. Za druge vrste usluga možete koristiti sučelja i atribute kako biste ih učinili lakšim i na mjestu.", + "DataFilteringExplanation": "Definirajte i koristite filtere podataka koji se automatski primjenjuju kada postavljate upite entitetima iz baze podataka. Soft Delete & MultiTenant filteri dostupni su odmah nakon implementacije jednostavnih sučelja.", + "PublishEvents": "Objavite događaje", + "HandleEvents": "Rukovanje događajima", + "AndMore": "i više...", + "Code": "Kodirati", + "Result": "Proizlaziti", + "SeeTheDocumentForMoreInformation": "Više informacija potražite u dokumentu {0}", + "IndexPageHeroSection": "web aplikacija otvorenog koda
Okvir
za asp.net jezgru", + "UiFramework": "UI okvir", + "EmailAddress": "Email adresa", + "Mobile": "Mobilni", + "ReactNative": "React Native", + "Strong": "Jaka", + "Complete": "Kompletan", + "BasedLayeringModel": "Temeljeni model slojevitosti", + "Microservice": "Mikroservis", + "Compatible": "Kompatibilan", + "MeeTTheABPCommunityInfo": "Naša je misija stvoriti okruženje u kojem programeri mogu pomoći jedni drugima s objavama, uputama, studijama slučaja itd. i upoznati ljude istomišljenika.", + "JoinTheABPCommunityInfo": "Uključite se u živahnu zajednicu i postanite suradnik ABP okvira!", + "AllPosts": "Sve objave", + "SubmitYourPost": "Pošaljite svoju objavu", + "DynamicClientProxyDocument": "Provjerite proxy dokumentaciju dinamičkog klijenta za JavaScript & C# .", + "EmailSMSAbstractionsDocument": "Više informacija potražite u dokumentima za slanje e-poštom i SMS-om.", + "CreateProjectWizard": "Ovaj čarobnjak stvara novi projekt iz predloška za pokretanje koji je ispravno konfiguriran za brzo pokretanje vašeg projekta.", + "TieredOption": "Stvara višeslojno rješenje gdje su web i Http API slojevi fizički odvojeni. Ako nije označeno, stvara slojevito rješenje koje je manje složeno i prikladno za većinu scenarija.", + "SeparateIdentityServerOption": "Razdvaja stranu poslužitelja u dvije aplikacije: prva je za poslužitelj identiteta, a druga je za HTTP API na strani poslužitelja.", + "SeparateAuthenticationServerOption": "Odvaja poslužiteljsku stranu u dvije aplikacije: prva je za poslužitelj za provjeru autentičnosti, a druga je za HTTP API na strani poslužitelja.", + "ProgressiveWebApplicationOption": "Određuje projekt kao progresivnu web aplikaciju", + "UseslatestPreVersion": "Koristi najnoviju verziju prije izdanja", + "ReadTheDocumentation": "Pročitajte dokumentaciju", + "Documentation": "Dokumentacija", + "GettingStartedTutorial": "Vodič za početak rada", + "ApplicationDevelopmentTutorial": "Vodič za razvoj aplikacija", + "TheStartupTemplate": "Predložak za pokretanje", + "InstallABPCLIInfo": "ABP CLI je najbrži način za pokretanje novog rješenja s okvirom ABP. Instalirajte ABP CLI pomoću prozora naredbenog retka:", + "DifferentLevelOfNamespaces": "Možete koristiti različite razine prostora imena; npr. BookStore, Acme.BookStore ili Acme.Retail.BookStore.", + "ABPCLIExamplesInfo": "Nova naredba stvara slojevitu MVC aplikaciju s Entity Framework Core kao pružateljem baze podataka. Međutim, ima dodatne mogućnosti.", + "SeeCliDocumentForMoreInformation": "Više opcija potražite u dokumentu ABP CLI ili odaberite gornju karticu "Izravno preuzimanje".", + "Optional": "Neobavezno", + "LocalFrameworkRef": "Zadržite lokalne reference projekta za okvirne pakete.", + "BlobStoring": "BLOB pohranjivanje", + "BlobStoringExplanation": "Sustav za pohranu BLOB-ova pruža apstrakciju za rad s BLOB-ovima. ABP pruža neke unaprijed izgrađene integracije pružatelja usluga pohrane (Azure, AWS, File System, Database itd.) koje možete jednostavno koristiti u svojim aplikacijama.", + "TextTemplating": "Tekst šablona", + "TextTemplatingExplanation": "Predložak teksta koristi se za dinamičko prikazivanje sadržaja na temelju predloška i modela (podatkovnog objekta). Na primjer, možete ga koristiti za stvaranje dinamičkog sadržaja e-pošte s unaprijed izrađenim predloškom.", + "MultipleUIOptions": "Više opcija korisničkog sučelja", + "MultipleDBOptions": "Više pružatelja baza podataka", + "MultipleUIOptionsExplanation": "Temeljni okvir dizajniran je kao neovisno o korisničkom sučelju i može raditi s bilo kojom vrstom korisničkog sučelja, dok postoji više unaprijed izgrađenih i integriranih opcija koje se isporučuju odmah.", + "MultipleDBOptionsExplanation": "Okvir može raditi s bilo kojim izvorom podataka, a službeno su razvijeni i podržani sljedeći pružatelji usluga:", + "SelectLanguage": "Izaberi jezik", + "LatestPostOnCommunity": "Najnoviji post na ABP zajednici", + "Register": "Registar", + "IsDownloadable": "Može se preuzeti", + "DatabaseOptions": "Opcije baze podataka", + "BackToPackagesPage": "Povratak na stranicu Paketi", + "HowToInstall": "Kako instalirati", + "SeeOnNpm": "Pogledajte na NPM", + "SeeOnNuget": "Pogledajte na Nugetu", + "MVCGulpCommandExplanation": "Ako koristite MVC (Razor Pages) korisničko sučelje, pokrenite naredbu "gulp" nakon instalacije paketa.", + "UsingABPCLI": "Korištenje Abp CLI", + "WithoutABPCLI": "Bez ABP CLI", + "ABPCLIModuleDependency": "Abp Cli automatski dodaje ovisnost modula.", + "AddModuleDependency": "Zatim dodajte ovisnost modula", + "Packages": "Paketi", + "NugetPackages": "Nuget paketi", + "NPMPackages": "NPM paketi", + "SeeDocs": "Vidi dokumente", + "None": "Nijedan", + "Application": "Primjena", + "ApplicationExplanation": "Stvara potpuno slojevito rješenje temeljeno na praksi dizajna vođenog domenom. Preporuča se za dugoročne projekte kojima je potrebna baza koda koja se može održavati i proširivati.", + "ApplicationNoLayer": "Primjena (jedan sloj)", + "ApplicationNoLayerExplanation": "Stvara jednoslojnu web aplikaciju. Preporuča se za izradu aplikacija s jednostavnijom i lako razumljivom arhitekturom.", + "Module": "Modul", + "ModuleExplanation": "Stvara višekratno, potpuno slojevito rješenje aplikacijskog modula. Ovu opciju možete koristiti za izradu modula za svoju modularnu aplikaciju.", + "PackageName": "Naziv paketa", + "LicenseURL": "URL licence", + "License": "Licenca", + "ProjectCreationSuccessMessage": "Vaš projekt je uspješno kreiran", + "HowToRunSolution": "Kako pokrenuti svoje rješenje?", + "GettingStartedMessage": "Pogledajte dokument za početak kako biste saznali kako konfigurirati i pokrenuti svoje rješenje.", + "WebAppDevTutorial": "Vodič za razvoj web aplikacija", + "WebAppDevTutorialMessage": "Pogledajte dokument s uputama za razvoj web aplikacija za uzorak razvoja korak po korak.", + "CommunityPosts": "Objave zajednice", + "CommunityPostMessage": "Provjerite ABP platformu zajednice kako biste pročitali korisne postove za ABP Framework.", + "InvestigateSolutionDetails": "Provjerite pojedinosti rješenja", + "StartupTemplateDocumentationMessage": "Pogledajte dokument s predloškom za pokretanje aplikacije kako biste saznali arhitekturu i strukturu svog rješenja.", + "ClientSideDevelopment": "Razvoj na strani klijenta", + "ClientSideDevelopmentDocumentationMessage": "Pogledajte dokument {0} da biste saznali ključne točke za razvoj korisničkog sučelja (na strani klijenta).", + "DatabaseProviderDocumentationMessage": "Pogledajte dokument {0} da biste saznali ključne točke za razvoj sloja baze podataka.", + "ABPCommercialExplanationMessage": "ABP Commercial pruža premium module, teme, alate i podršku za ABP Framework.", + "ImplementingDDD": "Implementacija dizajna vođenog domenom", + "DDDBookExplanation": "Praktični vodič za implementaciju dizajna vođenog domenom s ABP okvirom.", + "Overview": "Pregled", + "DDDBookPracticalGuide": "Ovo je praktični vodič za implementaciju dizajna vođenog domenom (DDD). Iako se detalji implementacije temelje na infrastrukturi ABP Framework, osnovni koncepti, principi i modeli mogu se primijeniti na bilo koje rješenje, čak i ako to nije .NET rješenje.", + "TableOfContents": "Sadržaj", + "IntroductionToImplementingDDD": "Uvod u implementaciju dizajna vođenog domenom", + "WhatIsDDD": "Što je dizajn vođen domenom?", + "Implementation": "Provedba", + "TheBigPicture": "Velika slika", + "TheBuildingBlock": "Building Block", + "ExampleUseCase": "Primjer upotrebe", + "DomainAndApplicationLogic": "Logika domene i logika aplikacije", + "Author": "Autor", + "Pages": "Stranice", + "PublishedOn": "Objavljeno na", + "FreeEBook": "Besplatna e-knjiga", + "Download": "preuzimanje datoteka", + "EBookSignInForDownload": "Za preuzimanje e-knjige prijavite se", + "SignIn": "Prijaviti se", + "Or": "Ili", + "TellUsAboutYourself": "Recite nam nešto o sebi", + "Name": "Ime", + "Surname": "Prezime", + "CompanyName": "Naziv tvrtke", + "DoYouAgreePrivacyPolicy": "Slažem se s Uvjetima i odredbama i Politikom privatnosti .", + "Free": "Besplatno", + "DDDEBook": "DDD E-knjiga", + "PracticalGuideForImplementingDDD": "Ova je knjiga praktični vodič za implementaciju dizajna vođenog domenom s ABP okvirom.", + "IntroducingDDD": "Predstavljamo dizajn vođen domenom", + "DDDLayersAndCleanArchitecture": "DDD slojevi i čista arhitektura", + "LayeringOfADotnetSolution": "Raslojavanje .NET rješenja", + "ImplementingDDDBuildingBlocks": "Implementacija DDD gradivnih blokova", + "DomainVsApplicationLogic": "Logika domene nasuprot logici aplikacije", + "SamplesAndDiscussions": "Uzorci i rasprave", + "EmailNotValid": "Unesite važeću adresu e-pošte.", + "WeWillSendYouADownloadLink": "Veza za preuzimanje e-knjige poslana je na {0}. Provjerite svoju pristiglu poštu, pretince za smeće ili neželjenu poštu!", + "GoHome": "Idi kući", + "InvalidFormInputs": "Molimo unesite valjane podatke navedene na obrascu.", + "DDDBookEmailBody": "Hvala vam.
Za preuzimanje svoje knjige kliknite ovdje .", + "SubscribeToNewsletter": "Pretplatite se na bilten kako biste primali informacije o događanjima na platformi ABP.IO, poput novih izdanja, postova, ponuda i više.", + "FirstEdition": "Prvo izdanje", + "ThankYou": "Hvala vam!", + "CheckboxMandatory": "Ovo morate provjeriti da biste nastavili!", + "UserInterface": "Korisničko sučelje", + "APIGateway": "API Gateway", + "Database": "Baza podataka", + "Saas": "Saas", + "OpenSourceWebApp": "Otvoreni izvor
web aplikacija", + "Framework": "Okvir", + "AuditLoggingExplanation": "Automatski pratite sve operacije i promjene podataka u vašem sustavu.", + "AbpNewCommandExplanation": "Stvara nova rješenja pomoću ABP predložaka za pokretanje.", + "AbpAddModuleCommandExplanation": "Instalira unaprijed izgrađene aplikacijske module u vaše rješenje", + "AbpUpdateCommandExplanation": "Automatski ažurira sve NuGet i NPM pakete povezane s ABP-om u vašem rješenju.", + "ExploreAllCLICommands": "Istražite sve CLI naredbe", + "ExploreDocumentationAndGuides": "Istražite opsežnu dokumentaciju i vodiče.", + "Documentations": "Dokumentacija", + "Views": "Pogledi", + "EnterYouEmailToGetNews": "Unesite svoju e-poštu kako biste primali najnovije vijesti o ABP okviru", + "Tiered": "Umoran", + "SeparateIdentityServer": "Odvojeni poslužitelj identiteta", + "SeparateAuthenticationServer": "Odvojeni autentifikacijski poslužitelj", + "ProgressiveWebApplication": "Progresivna web aplikacija", + "Preview": "Pregled", + "CreateANewSolution": "Napravite novo rješenje", + "ABPFrameworkFeatures": "Značajke ABP okvira", + "Commercial": "Komercijalni", + "ThirdPartyTools": "Alati trećih strana", + "Back": "leđa", + "Community": "Zajednica", + "SeeMore": "Vidi više", + "DetailsOfTheEBook": "Pojedinosti o E-knjigi", + "JoinOurMarketingNewsletter": "Pridružite se našem marketinškom biltenu", + "FrameworkNewsletterConfirmationMessage": "Slažem se s Uvjetima i odredbama i Politikom privatnosti .", + "GetYourFreeEBook": "Nabavite svoju besplatnu DDD e-knjigu", + "EverythingYouNeedToKnow": "Sve što trebate znati.", + "PreOrderNow": "Naručite odmah", + "UITheming": "Tematiziranje korisničkog sučelja", + "UIThemingExplanation": "Stvorite teme i izglede korisničkog sučelja za višekratnu upotrebu ili upotrijebite jednu od unaprijed izgrađenih tema korisničkog sučelja.", + "DataFilteringExplanation2": "Automatski filtrirajte upite iz baze podataka kako biste jednostavno implementirali obrasce kao što su meko brisanje i višenamjensko korištenje.", + "NeedHelp": "Trebate pomoć?", + "GiveYourProjectAName": "Dajte naziv svom projektu", + "SelectProjectType": "Odaberite vrstu projekta", + "SelectUIFramework": "Odaberite UI Framework", + "SelectDatabaseProvider": "Odaberite pružatelja baze podataka", + "SelectDatabaseManagementSystem": "Odaberite Sustav upravljanja bazom podataka", + "InstallingTheABPCLI": "Instaliranje ABP CLI", + "CreateYourProjectNow": "Kreirajte svoj projekt sada", + "OrderOn": "Naručite na {0}", + "DownloadFreeDDDBook": "Preuzmite besplatnu DDD knjigu", + "WhatIsABPFramework": "Što je ABP okvir?", + "TenantDatabase": "Baza podataka zakupca {0}", + "SharedDatabase": "Zajednička baza podataka", + "ConnectionResolver": "Razrješavač veze", + "TenantBasedDataFilter": "Filtar podataka temeljen na stanarima", + "ApplicationCode": "Aplikacijski kod", + "TenantResolution": "Rješenje stanara", + "TenantUser": "Stanar {0} Korisnik", + "CardTitle": "Naslov kartice", + "View": "Pogled", + "Model": "Model", + "Email": "E-mail", + "Password": "Lozinka", + "Address": "Adresa", + "Gender": "Spol", + "Male": "Muški", + "Female": "Žena", + "Submit": "podnijeti", + "Unspecified": "Neodređeno", + "StaticFileMiddleware": "Static File Middleware", + "RazorViewEngine": "Razor View Engine", + "PhysicalFiles": "Fizičke datoteke (wwwroot)", + "EmbeddedFiles": "Ugrađene datoteke (DLL)", + "DynamicFiles": "Dinamičke datoteke (memorija)", + "BuildSolutionsWithAbp": "Izgradite .NET rješenja koja se mogu održavati slijedeći najbolju praksu razvoja softvera koristeći ABP.", + "BuyOnAmazon": "Kupite na Amazonu", + "BuyOnPackt": "Kupite na Packt", + "Discounted": "Sniženo", + "MasteringAbpFramework_Book_KeyFeatures": "Glavne značajke", + "MasteringAbpFramework_Book_Key_Features_Description_1": "Izgradite robusna, održiva, modularna i skalabilna softverska rješenja koristeći ABP Framework.", + "MasteringAbpFramework_Book_Key_Features_Description_2": "Naučite kako implementirati načela SOLID-a i dizajn usmjeren na domenu u svoje web aplikacije.", + "MasteringAbpFramework_Book_Key_Features_Description_3": "Otkrijte kako ABP Framework ubrzava vaš razvojni ciklus automatiziranjem zadataka koji se ponavljaju.", + "MasteringAbpFramework_Book_Description": "Opis knjige", + "MasteringAbpFramework_Book_Description_Details_1": "ABP Framework cjelovita je infrastruktura za stvaranje modernih web aplikacija slijedeći najbolje prakse i konvencije razvoja softvera \n . S ABP-ovim okvirom i ekosustavom visoke razine, \n možete implementirati princip Don't Repeat Yourself (DRY) i usredotočiti se na svoj poslovni kod.", + "MasteringAbpFramework_Book_Description_Details_2": "Napisao ju je tvorac ABP okvira, a ova će vam knjiga pomoći da steknete potpuno razumijevanje okvira \n i modernih tehnika razvoja web aplikacija. Uz detaljna objašnjenja osnovnih koncepata \n i praktičnih primjera, razumjet ćete zahtjeve modernog web rješenja i kako ABP \n Framework čini ugodnim razvijanje vlastitih rješenja. Otkrit ćete uobičajene zahtjeve razvoja poslovnih web aplikacija \n i istražiti infrastrukturu koju pruža ABP. Kroz knjigu \n upoznat ćete se s najboljom praksom razvoja softvera za izgradnju modularnih web rješenja \n koja se mogu održavati.", + "MasteringAbpFramework_Book_Description_Details_3": "Do kraja ove knjige moći ćete stvoriti cjelovito web rješenje koje je lako razviti, \n održavati i testirati.", + "MasteringAbpFramework_Book_WhatYouWillLearn": "Što ćete naučiti", + "MasteringAbpFramework_Book_What_You_Will_Learn_1": "Postavite razvojno okruženje i počnite koristiti ABP Framework.", + "MasteringAbpFramework_Book_What_You_Will_Learn_2": "Radite s Entity Framework Core i MongoDB da biste razvili svoj sloj pristupa podacima.", + "MasteringAbpFramework_Book_What_You_Will_Learn_3": "Shvatite višesektorske probleme i kako ABP automatizira zadatke koji se ponavljaju.", + "MasteringAbpFramework_Book_What_You_Will_Learn_4": "Uhvatite se u koštac s implementacijom dizajna vođenog domenom uz ABP Framework.", + "MasteringAbpFramework_Book_What_You_Will_Learn_5": "Izgradite UI stranice i komponente s ASP.NET Core MVC (Razor Pages) i Blazor.", + "MasteringAbpFramework_Book_What_You_Will_Learn_6": "Radite s multi-tenance za stvaranje modularnih web aplikacija.", + "MasteringAbpFramework_Book_What_You_Will_Learn_7": "Razumijevanje modularnosti i stvaranje aplikacijskih modula za višekratnu upotrebu.", + "MasteringAbpFramework_Book_What_You_Will_Learn_8": "Napišite jedinične, integracijske i UI testove koristeći ABP Framework.", + "MasteringAbpFramework_Book_WhoIsThisBookFor": "Za koga je ova knjiga", + "MasteringAbpFramework_Book_WhoIsThisBookFor_Description": "Ova je knjiga namijenjena web programerima koji žele naučiti softverske arhitekture i najbolje prakse za izgradnju \n rješenja temeljenih na webu koja se mogu održavati koristeći Microsoftove tehnologije i ABP Framework. Za početak rada s ovom knjigom potrebno je osnovno poznavanje C# \n i ASP.NET Core.", + "ComputersAndTechnology": "Računala i tehnologija", + "BuildingMicroserviceSolutions": "Izgradnja mikroservisnih rješenja", + "MicroserviceBookPracticalGuide": "Ova je knjiga referentni vodič za razvoj i upravljanje aplikacijama temeljenim na mikroservisima pomoću ABP okvira. Referencira .NET Microservice Sample Reference Application : eShopOnContainers i raspravlja o arhitektonskom dizajnu i pristupima implementacije pomoću ABP Frameworka. Do kraja ove knjige naučit ćete kako ABP pristupa uobičajenim složenostima mikroservisa kao što su autorizacija, distribuirane transakcije, komunikacije između mikroservisa, implementacija itd.", + "IntroducingTheSolution": "Predstavljamo rješenje eShopOnAbp", + "RunningTheSolution": "Pokretanje rješenja", + "UnderstandingTheAuthenticationSystem": "Razumijevanje sustava autentifikacije", + "ExploringTheApplications": "Istraživanje aplikacija", + "UnderstandingTheAPIGateways": "Razumijevanje API pristupnika", + "DevelopingTheMicroservices": "Razvoj mikroservisa", + "UnderstandingTheInfrastructure": "Razumijevanje infrastrukture", + "DiggingInTheUseCases": "Kopanje po slučajevima upotrebe", + "DeployingTheSolution": "Implementacija rješenja", + "ThisBookIsInDraftStageAndIsNotCompletedYet": "Ova je knjiga u fazi nacrta i još nije dovršena.", + "Authors": "Autori", + "MicroserviceEBook": "Mikroservisna e-knjiga", + "SelectUITheme": "Odaberite temu korisničkog sučelja", + "LeptonXLiteTheme": "LeptonX Lite tema", + "BasicTheme": "Osnovna tema", + "LeptonXLiteThemeInfo": "Moderna i elegantna Bootstrap UI tema. Idealno ako želite imati UI temu spremnu za proizvodnju. Ovo je najnovija tema i zadana je.", + "BasicThemeInfo": "Minimalistička tema korisničkog sučelja s jednostavnim Bootstrap bojama i stilovima. Idealno ako ćete izraditi vlastitu temu korisničkog sučelja.", + "SeeDocumentation": "Pogledajte dokumentaciju .", + "SeeFullScreen": "🖼️ Pogledajte snimak zaslona", + "BuildingMicroserviceSolutionsShortDescription": "Ova je knjiga referentni vodič za razvoj i upravljanje aplikacijama temeljenim na mikroservisima pomoću ABP okvira.", + "InstallAbpCliMessage": "Instalirajte ABP CLI u terminal naredbenog retka, ako ga prije niste instalirali:", + "Terminal": "Terminal", + "Copy": "Kopirati", + "RunTheFollowingCommand": "Izvedite sljedeću naredbu u terminalu naredbenog retka:", + "ChangeSolutionOptionsBelow": "U nastavku možete promijeniti opcije rješenja.", + "MultiLayerApplication": "Višeslojno
Primjena", + "MultiLayerApplicationExplanation1": "Stvara potpuno slojevito rješenje temeljeno na praksi dizajna vođenog domenom.", + "MultiLayerApplicationExplanation2": "Preporuča se za dugoročne projekte kojima je potrebna baza koda koja se može održavati i proširivati.", + "SingleLayerApplication": "Jednoslojni
Primjena", + "SingleLayerApplicationExplanation1": "Stvara jednoslojnu web aplikaciju.", + "SingleLayerApplicationExplanation2": "Preporuča se za izradu aplikacija s jednostavnijom i lako razumljivom arhitekturom.", + "ApplicationModule": "Primjena
Modul", + "SeeTheScreenshot": "Pogledajte snimak zaslona", + "ApplicationModuleExplanation1": "Stvara višekratno, potpuno slojevito rješenje aplikacijskog modula.", + "ApplicationModuleExplanation2": "Ovu opciju možete koristiti za izradu modula za svoju modularnu aplikaciju.", + "Expert_": "Stručnjak", + "Partner_": "Partnerstvo", + "WebSite": "Web stranica", + "Expert_Year": "Vještačenje God", + "CompanyInfo": "Informacije o tvrtki", + "Date": "Datum", + "WhoWeAre_Partner": "Tko smo mi", + "WhoWeAre_Expert": "O meni", + "CreateSolutionFolder": "Stvorite mapu rješenja", + "CreateSolutionFolderOption": "Određuje hoće li projekt biti u novoj mapi u izlaznoj mapi ili izravno u izlaznoj mapi.", + "BooksPageTitle": "ABP knjige", + "PackageDetailPage_NuGetPackageInstallationOptions": "Postoje tri načina za instaliranje {0} NuGet paketa na vaš projekt", + "PackageDetailPage_InstallingWithABPCLI": "1: Instalacija s ABP CLI", + "PackageDetailPage_InstallingWithABPCLIDescription1": "Ako niste instalirali ABP CLI , prvo instalirajte izvršavanjem sljedeće naredbe u terminalu naredbenog retka", + "PackageDetailPage_InstallingWithABPCLIDescription2": "Nakon što instalirate ABP CLI, otvorite terminal naredbenog retka na lokaciji projekta ( .csproj datoteka) koju želite instalirati i izvršite sljedeću naredbu", + "PackageDetailPage_InstallingWithABPCLIDescription3": "Dodat će referencu paketa {0} vašem projektu i ovisnost {1} vašoj klasi modula.", + "PackageDetailPage_ManualInstallation": "2: Instalacija s Dotnet CLI", + "PackageDetailPage_ManualInstallationDescription1": "Dodajte referencu paketa {0} NuGet u svoj projekt koristeći svoj IDE ili izvođenjem sljedeće naredbe", + "PackageDetailPage_ManualInstallationDescription2": "Zatim dodajte ovisnost {0} vašoj klasi modula kao što je prikazano u sljedećem primjeru", + "PackageDetailPage_SeeDocumentation": "Pogledajte dokumentaciju kako biste saznali kako koristiti ovaj paket u svojim aplikacijama.", + "PackageDetailPage_InstallingUsingPMC": "3: Instalacija pomoću konzole upravitelja paketa", + "PackageDetailPage_InstallingUsingPMCDescription1": "Otvorite konzolu Package Manager u Visual Studio (Alati -> Nuget Package Manager -> Package Manager Console) i izvršite sljedeću naredbu", + "UIOptions": "Opcije korisničkog sučelja", + "Testimonials": "Svjedočanstva", + "CoolestCompaniesUseABPFramework": "Najbolje tvrtke koriste ABP Framework", + "Index_Page_Testimonial_1": "ABP Framework nije samo alat već i katalizator koji je ubrzao moj razvoj kao programera. Omogućio mi je da izgradim nove značajke brže nego ikad prije, podsjećajući na iskustva drugih korisnika. Objedinjeni obrazac kodiranja pojednostavnio je moje projekte, dajući mi više vremena da se usredotočim na stvaranje umjesto na rješavanje problema. \n Rekao bih da je ABP okvir bio kamen temeljac mog ranog profesionalnog putovanja. To mi je olakšalo prijelaz iz ambicioznog programera u samouvjerenog profesionalca spremnog ostaviti trag u svijetu softvera. Radujem se uzbudljivim projektima koji me očekuju, znajući da će ABP biti tu da me vodi. To je više od samog proizvoda; to je partner u uspjehu.", + "Index_Page_Testimonial_2": "ABP Framework nije samo okvir, već je i smjernica za razvoj/upravljanje projektom, jer pruža DDD, GenericRepository, DI, Microservice, Modularity treninge. Čak i ako nećete koristiti sam framework, možete se razvijati s docs.abp.io koji je dobro i profesionalno pripremljen. (OpenIddict, Redis, Quartz itd.) \n Budući da su mnoge stvari unaprijed izgrađene, značajno skraćuje vrijeme razvoja projekta. (Kao što je stranica za prijavu, rukovanje iznimkama, filtriranje-sijanje podataka, bilježenje revizije, lokalizacija, automatski API kontroler itd.) \n Kao primjer iz naše aplikacije, koristio sam lokalnu sabirnicu događaja za kontrolu zaliha. Dakle, mogu upravljati kretanjem narudžbi pisanjem rukovatelja zalihama. \n Divno je ne gubiti vrijeme za CreationTime, CreatorId. Pune se automatski.", + "VideosLoginAndRegisterMessage": "Morate se prijaviti za gledanje videa. Možete stvoriti račun za sat ako niste.", + "Filter": "filtar", + "VideoCourses": "Video tečajevi" + } +} \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/hu.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/hu.json index 2dfae14e99..c0ba9ea767 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/hu.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/hu.json @@ -174,6 +174,7 @@ "CreateProjectWizard": "Ez a varázsló új projektet hoz létre az indítási sablonból, amely megfelelően be van állítva a projekt elindításához.", "TieredOption": "Létrehoz egy többszintű megoldást, ahol a webes és a HTTP API-rétegek fizikailag el vannak választva. Ha nincs bejelölve, réteges megoldást hoz létre, amely kevésbé bonyolult és a legtöbb forgatókönyvhöz megfelelő.", "SeparateIdentityServerOption": "A szerveroldalt két alkalmazásra választja szét: az első az identitáskiszolgálóhoz, a második pedig a szerveroldali HTTP API-hoz való.", + "SeparateAuthenticationServerOption": "A szerveroldalt két alkalmazásra választja szét: az első a hitelesítési kiszolgálóhoz, a második pedig a szerveroldali HTTP API-hoz való.", "ProgressiveWebApplicationOption": "Progresszív webalkalmazásként határozza meg a projektet", "UseslatestPreVersion": "A legújabb kiadás előtti verziót használja", "ReadTheDocumentation": "Olvassa el a dokumentációt", @@ -296,6 +297,7 @@ "EnterYouEmailToGetNews": "Adja meg e-mail címét, hogy megkapja a legfrissebb híreket az ABP-keretrendszerrel kapcsolatban", "Tiered": "Többszintű", "SeparateIdentityServer": "Külön identitásszerver", + "SeparateAuthenticationServer": "Külön hitelesítési szerver", "ProgressiveWebApplication": "Progresszív webes alkalmazás", "Preview": "Előnézet", "CreateANewSolution": "Hozzon létre egy új megoldást", @@ -393,7 +395,51 @@ "BasicThemeInfo": "Minimalista felhasználói felület téma egyszerű Bootstrap színekkel és stílusokkal. Ideális, ha saját felhasználói felület témát készít.", "SeeDocumentation": "Lásd a dokumentációt .", "SeeFullScreen": "🖼️ Nézze meg a képernyőképet", + "BuildingMicroserviceSolutionsShortDescription": "Ez a könyv egy referencia útmutató a mikroszolgáltatás alapú alkalmazások fejlesztéséhez és kezeléséhez az ABP Framework segítségével.", + "InstallAbpCliMessage": "Telepítse az ABP CLI-t egy parancssori terminálba, ha korábban még nem telepítette:", + "Terminal": "Terminál", + "Copy": "Másolat", + "RunTheFollowingCommand": "Futtassa a következő parancsot egy parancssori terminálban:", + "ChangeSolutionOptionsBelow": "Az alábbiakban módosíthatja a megoldási lehetőségeket.", + "MultiLayerApplication": "Többrétegű
Alkalmazás", + "MultiLayerApplicationExplanation1": "Teljesen rétegzett megoldást hoz létre a tartományvezérelt tervezési gyakorlatok alapján.", + "MultiLayerApplicationExplanation2": "Olyan hosszú távú projektekhez ajánlott, amelyek karbantartható és bővíthető kódbázist igényelnek.", + "SingleLayerApplication": "Egyrétegű
Alkalmazás", + "SingleLayerApplicationExplanation1": "Egyrétegű webalkalmazást hoz létre.", + "SingleLayerApplicationExplanation2": "Egyszerűbb és könnyen érthető architektúrájú alkalmazás készítéséhez ajánlott.", + "ApplicationModule": "Alkalmazás
Modul", + "SeeTheScreenshot": "Lásd a képernyőképet", + "ApplicationModuleExplanation1": "Újrafelhasználható, teljesen rétegzett alkalmazásmodul-megoldást hoz létre.", + "ApplicationModuleExplanation2": "Ezzel a lehetőséggel modulokat hozhat létre a moduláris alkalmazásához.", + "Expert_": "Szakértő", + "Partner_": "Partnerség", + "WebSite": "Weboldal", + "Expert_Year": "Szakértői év", + "CompanyInfo": "Cégadatok", + "Date": "Dátum", + "WhoWeAre_Partner": "Kik vagyunk", + "WhoWeAre_Expert": "Rólam", "CreateSolutionFolder": "Hozzon létre megoldási mappát", - "CreateSolutionFolderOption": "Meghatározza, hogy a projekt egy új mappában legyen-e a kimeneti mappában vagy közvetlenül a kimeneti mappában." + "CreateSolutionFolderOption": "Meghatározza, hogy a projekt egy új mappában legyen-e a kimeneti mappában vagy közvetlenül a kimeneti mappában.", + "BooksPageTitle": "ABP Books", + "PackageDetailPage_NuGetPackageInstallationOptions": "Háromféleképpen telepítheti a {0} NuGet-csomagot a projektbe", + "PackageDetailPage_InstallingWithABPCLI": "1: Telepítés az ABP CLI-vel", + "PackageDetailPage_InstallingWithABPCLIDescription1": "Ha még nem telepítette az ABP CLI-t , először telepítse a következő parancs végrehajtásával egy parancssori terminálban", + "PackageDetailPage_InstallingWithABPCLIDescription2": "Miután telepítette az ABP CLI-t, nyisson meg egy parancssori terminált a telepíteni kívánt projekt helyén ( .csproj fájl), és hajtsa végre a következő parancsot", + "PackageDetailPage_InstallingWithABPCLIDescription3": "Hozzáadja a {0} csomaghivatkozást a projekthez és a {1} függőséget a modulosztályhoz.", + "PackageDetailPage_ManualInstallation": "2: Telepítés a Dotnet CLI-vel", + "PackageDetailPage_ManualInstallationDescription1": "Adja hozzá a {0} NuGet csomaghivatkozást a projekthez az IDE használatával vagy a következő parancs végrehajtásával", + "PackageDetailPage_ManualInstallationDescription2": "Ezután adja hozzá a {0} függőséget a modulosztályához a következő példában látható módon", + "PackageDetailPage_SeeDocumentation": "Tekintse meg a dokumentációt , hogy megtudja, hogyan használhatja ezt a csomagot az alkalmazásokban.", + "PackageDetailPage_InstallingUsingPMC": "3: Telepítés a Package Manager konzollal", + "PackageDetailPage_InstallingUsingPMCDescription1": "Nyissa meg a Package Manager konzolt a Visual Studióban (Eszközök -> Nuget Package Manager -> Package Manager Console), és hajtsa végre a következő parancsot", + "UIOptions": "UI beállítások", + "Testimonials": "Beszámolók", + "CoolestCompaniesUseABPFramework": "A legmenőbb cégek ABP keretrendszert használnak", + "Index_Page_Testimonial_1": "Az ABP Framework nem csak egy eszköz, hanem egy katalizátor, amely felgyorsította a fejlődésemet fejlesztőként. Ez lehetővé tette számomra, hogy minden eddiginél gyorsabban építsek új funkciókat, amelyek más felhasználók tapasztalataira emlékeztetnek. Az egységes kódolási minta leegyszerűsítette a projektjeimet, így több időm maradt arra, hogy a hibaelhárítás helyett a létrehozásra koncentráljak. \n Azt mondanám, hogy az ABP Framework volt a korai szakmai utam sarokköve. Ez megkönnyítette az átmenetemet a törekvő fejlesztőből egy magabiztos szakemberré, aki készen áll arra, hogy nyomot hagyjon a szoftvervilágban. Alig várom a rám váró izgalmas projekteket, tudván, hogy az ABP ott lesz, hogy irányítson. Ez több, mint egy termék; ez partner a sikerben.", + "Index_Page_Testimonial_2": "Az ABP Framework nem csak keretrendszer, hanem útmutató is a projektfejlesztéshez/menedzsmenthez, mert DDD, GenericRepository, DI, Microservice, Modularity képzéseket biztosít. Még ha nem is magát a keretrendszert használja, fejlesztheti magát a docs.abp.io segítségével, amely jól és szakmailag felkészült. (OpenIddict, Redis, Quartz stb.) \n Mivel sok minden előre be van építve, jelentősen lerövidíti a projektfejlesztési időt. (Például bejelentkezési oldal, kivételkezelés, adatszűrés-seeding, audit naplózás, lokalizáció, automatikus api-vezérlő stb.) \n Alkalmazásunkból példaként a Local Event Bus-t használtam készletkezelésre. Így a rendelési mozgásokat készletkezelő írással tudom kezelni. \n Csodálatos, hogy nem veszít időt a CreationTime, CreatorId használatára. Automatikusan kitöltődnek.", + "VideosLoginAndRegisterMessage": "A videók megtekintéséhez be kell jelentkeznie. Ha még nem tette meg, létrehozhat fiókot az órához.", + "Filter": "Szűrő", + "VideoCourses": "Videó tanfolyamok" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/is.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/is.json index f044092f19..7d5b7fd1ff 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/is.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/is.json @@ -174,6 +174,8 @@ "CreateProjectWizard": "Þessi gandalfur býr til nýtt verkefni úr gangsetningarsniðmátinu sem er rétt stillt til að byrja á verkefninu þínu.", "TieredOption": "Býr til þrepalausn þar sem vef- og HTTP API lög eru físískt aðskilin. Ef það er ekki merkt, er búin til lagskipt lausn sem er minna flókin og hentar fyrir flestar aðstæður.", "SeparateIdentityServerOption": "Aðgreinir miðlara (server) hliðina í tvö forrit: Fyrsta er fyrir auðkennisþjóninn og annað fyrir HTTP API netþjónsins.", + "SeparateAuthenticationServerOption": "Aðskilur miðlarahliðina í tvö forrit: Það fyrra er fyrir auðkenningarþjóninn og hið síðara er fyrir HTTP API á netþjóninum þínum.", + "ProgressiveWebApplicationOption": "Tilgreinir verkefnið sem Progressive Web Application", "UseslatestPreVersion": "Notar nýjustu for-útgáfu ", "ReadTheDocumentation": "Lesa skjölunina", "Documentation": "Skjölun", @@ -214,7 +216,11 @@ "SeeDocs": "Sjá leiðbeiningar", "None": "Ekkert", "Application": "Forrit", + "ApplicationExplanation": "Býr til fullkomlega lagskipt lausn byggða á lénsdrifinni hönnunaraðferðum. Mælt með fyrir langtímaverkefni sem þarfnast viðhalds og stækkans kóðagrunns.", + "ApplicationNoLayer": "Umsókn (eitt lag)", + "ApplicationNoLayerExplanation": "Býr til eins lags vefforrit. Mælt er með því að byggja upp forrit með einfaldari og auðskiljanlegri arkitektúr.", "Module": "Eining", + "ModuleExplanation": "Býr til endurnýtanlega, fullkomlega lagskiptu umsóknareiningu lausn. Þú getur notað þennan valkost til að búa til einingar fyrir einingarforritið þitt.", "PackageName": "Pakka nafn", "LicenseURL": "Leyfis slóð", "License": "Leyfi", @@ -274,8 +280,166 @@ "FirstEdition": "Fyrsta útgáfa", "ThankYou": "Þakka þér!", "CheckboxMandatory": "Þú þarft að smella hér til að halda áfram!", + "UserInterface": "Notendaviðmót", + "APIGateway": "API hlið", + "Database": "Gagnagrunnur", + "Saas": "Saas", + "OpenSourceWebApp": "Opinn uppspretta
vefforrit", + "Framework": "Umgjörð", + "AuditLoggingExplanation": "Rekja sjálfkrafa allar aðgerðir og gagnabreytingar í kerfinu þínu.", + "AbpNewCommandExplanation": "Býr til nýjar lausnir með því að nota ABP ræsingarsniðmát.", + "AbpAddModuleCommandExplanation": "Setur upp fyrirframbyggðum forritaeiningum í lausnina þína", + "AbpUpdateCommandExplanation": "Uppfærir sjálfkrafa alla ABP tengda NuGet og NPM pakka í lausninni þinni.", + "ExploreAllCLICommands": "Kannaðu allar CLI skipanir", + "ExploreDocumentationAndGuides": "Skoðaðu yfirgripsmikil skjöl og leiðbeiningar.", + "Documentations": "Skjöl", + "Views": "Útsýni", + "EnterYouEmailToGetNews": "Sláðu inn tölvupóstinn þinn til að fá nýjustu fréttir um ABP Framework", + "Tiered": "Lagskipt", + "SeparateIdentityServer": "Aðskilinn auðkennisþjónn", + "SeparateAuthenticationServer": "Aðskilinn auðkenningarþjónn", + "ProgressiveWebApplication": "Framsækið vefforrit", + "Preview": "Forskoðun", + "CreateANewSolution": "Búðu til nýja lausn", + "ABPFrameworkFeatures": "ABP Framework Eiginleikar", + "Commercial": "Auglýsing", + "ThirdPartyTools": "Verkfæri þriðja aðila", + "Back": "Til baka", + "Community": "Samfélag", + "SeeMore": "Sjá meira", + "DetailsOfTheEBook": "Upplýsingar um rafbókina", + "JoinOurMarketingNewsletter": "Skráðu þig í markaðsfréttabréfið okkar", + "FrameworkNewsletterConfirmationMessage": "Ég samþykki skilmálana og persónuverndarstefnuna .", + "GetYourFreeEBook": "Fáðu ókeypis DDD rafbókina þína", + "EverythingYouNeedToKnow": "Allt sem þú þarft að vita.", + "PreOrderNow": "Forpanta núna", + "UITheming": "Þema HÍ", + "UIThemingExplanation": "Búðu til margnota þemu og útlit eða notaðu eitt af forbyggðu viðmótsþemunum.", + "DataFilteringExplanation2": "Sía sjálfkrafa eftir fyrirspurnum úr gagnagrunninum til að innleiða mynstur eins og mjúkan eyðingu og fjölleigu á auðveldan hátt.", + "NeedHelp": "Þurfa hjálp?", + "GiveYourProjectAName": "Gefðu verkefninu þínu nafn", + "SelectProjectType": "Veldu Verkefnagerð", + "SelectUIFramework": "Veldu UI Framework", + "SelectDatabaseProvider": "Veldu Gagnagrunnsveitu", + "SelectDatabaseManagementSystem": "Veldu Gagnagrunnsstjórnunarkerfi", + "InstallingTheABPCLI": "Að setja upp ABP CLI", + "CreateYourProjectNow": "Búðu til verkefnið þitt núna", + "OrderOn": "Panta á {0}", + "DownloadFreeDDDBook": "Sækja ókeypis DDD bók", + "WhatIsABPFramework": "Hvað er ABP Framework?", + "TenantDatabase": "Gagnagrunnur leigjanda {0}", + "SharedDatabase": "Sameiginlegur gagnagrunnur", + "ConnectionResolver": "Tengingarlausni", + "TenantBasedDataFilter": "Gagnasía sem byggir á leigjanda", + "ApplicationCode": "Umsóknarkóði", + "TenantResolution": "Ályktun leigjanda", + "TenantUser": "Leigjandi {0} notandi", + "CardTitle": "Titill korts", + "View": "Útsýni", + "Model": "Fyrirmynd", + "Email": "Tölvupóstur", + "Password": "Lykilorð", + "Address": "Heimilisfang", + "Gender": "Kyn", + "Male": "Karlkyns", + "Female": "Kvenkyns", + "Submit": "Sendu inn", + "Unspecified": "Ótilgreint", + "StaticFileMiddleware": "Static File Middleware", + "RazorViewEngine": "Razor View Engine", + "PhysicalFiles": "Líkamlegar skrár (wwwroot)", + "EmbeddedFiles": "Innbyggðar skrár (DLL)", + "DynamicFiles": "Dynamic Files (Minni)", + "BuildSolutionsWithAbp": "Búðu til viðhaldshæfar .NET lausnir með því að fylgja bestu starfsvenjum hugbúnaðarþróunar með því að nota ABP.", + "BuyOnAmazon": "Kaupa á Amazon", + "BuyOnPackt": "Kaupa á Packt", + "Discounted": "Afsláttur", + "MasteringAbpFramework_Book_KeyFeatures": "Lykil atriði", + "MasteringAbpFramework_Book_Key_Features_Description_1": "Búðu til öflugar, viðhaldanlegar, mátlegar og stigstærðar hugbúnaðarlausnir með ABP Framework.", + "MasteringAbpFramework_Book_Key_Features_Description_2": "Lærðu hvernig á að innleiða SOLID meginreglur og lénadrifna hönnun í vefforritunum þínum.", + "MasteringAbpFramework_Book_Key_Features_Description_3": "Uppgötvaðu hvernig ABP Framework flýtir fyrir þróunarferlinu þínu með því að gera endurtekin verkefni sjálfvirk.", + "MasteringAbpFramework_Book_Description": "Bókarlýsing", + "MasteringAbpFramework_Book_Description_Details_1": "ABP Framework er fullkominn innviði til að búa til nútíma vefforrit með því að fylgja bestu starfsvenjum og venjum við þróun hugbúnaðar \n . Með umgjörð og vistkerfi ABP á háu stigi geturðu \n innleitt „Don't Repeat Yourself“ (DRY) meginregluna og einbeitt þér að viðskiptakóðanum þínum.", + "MasteringAbpFramework_Book_Description_Details_2": "Þessi bók er skrifuð af skapara ABP Framework og mun hjálpa þér að öðlast fullan skilning á \n ramma og nútíma þróunartækni vefforrita. Með skref-fyrir-skref útskýringum á mikilvægum \n hugtökum og hagnýtum dæmum, munt þú skilja kröfur nútíma veflausnar og hvernig ABP \n Framework gerir það skemmtilegt að þróa þínar eigin lausnir. Þú munt uppgötva algengar kröfur um þróun \n fyrirtækjavefforrita og kanna innviði sem ABP býður upp á. Í gegnum \n bókina munt þú ná tökum á bestu starfsvenjum hugbúnaðarþróunar til að búa til viðhalds- og einingakerfi \n veflausna.", + "MasteringAbpFramework_Book_Description_Details_3": "Í lok þessarar bókar muntu geta búið til heildar veflausn sem auðvelt er að þróa, viðhalda og prófa \n .", + "MasteringAbpFramework_Book_WhatYouWillLearn": "Það sem þú munt læra", + "MasteringAbpFramework_Book_What_You_Will_Learn_1": "Settu upp þróunarumhverfið og byrjaðu með ABP Framework.", + "MasteringAbpFramework_Book_What_You_Will_Learn_2": "Vinna með Entity Framework Core og MongoDB til að þróa gagnaaðgangslagið þitt.", + "MasteringAbpFramework_Book_What_You_Will_Learn_3": "Skilja þverlægar áhyggjur og hvernig ABP gerir endurtekin verkefni sjálfvirk.", + "MasteringAbpFramework_Book_What_You_Will_Learn_4": "Náðu tökum á innleiðingu lénsdrifna hönnunar með ABP Framework.", + "MasteringAbpFramework_Book_What_You_Will_Learn_5": "Byggðu UI síður og íhluti með ASP.NET Core MVC (Razor Pages) og Blazor.", + "MasteringAbpFramework_Book_What_You_Will_Learn_6": "Vinna með fjölleigu til að búa til mát vefforrit.", + "MasteringAbpFramework_Book_What_You_Will_Learn_7": "Skilja mát og búa til endurnýtanlegar forritaeiningar.", + "MasteringAbpFramework_Book_What_You_Will_Learn_8": "Skrifaðu eininga-, samþættingar- og notendapróf með ABP Framework.", + "MasteringAbpFramework_Book_WhoIsThisBookFor": "Fyrir hverja er þessi bók", + "MasteringAbpFramework_Book_WhoIsThisBookFor_Description": "Þessi bók er fyrir vefhönnuði sem vilja læra hugbúnaðararkitektúr og bestu starfsvenjur til að byggja upp \n viðhaldanlegar veflausnir með Microsoft tækni og ABP Framework. Grunnþekking á C# \n og ASP.NET Core er nauðsynleg til að byrja með þessa bók.", + "ComputersAndTechnology": "Tölvur og tækni", + "BuildingMicroserviceSolutions": "Byggja örþjónustulausnir", + "MicroserviceBookPracticalGuide": "Þessi bók er tilvísunarleiðbeiningar til að þróa og stjórna forritum sem byggjast á örþjónustu með ABP ramma. Það vísar til .NET Microservice Sample Reference Application : eShopOnContainers og fjallar um byggingarhönnun og útfærsluaðferðir með því að nota ABP Framework. Í lok þessarar bókar muntu læra hvernig ABP nálgast algengar örþjónustuflækjur eins og heimildir, dreifð viðskipti, samskipti milli örþjónustu, dreifing osfrv.", + "IntroducingTheSolution": "Við kynnum eShopOnAbp lausnina", + "RunningTheSolution": "Keyrir lausnina", + "UnderstandingTheAuthenticationSystem": "Að skilja auðkenningarkerfið", + "ExploringTheApplications": "Að kanna forritin", + "UnderstandingTheAPIGateways": "Skilningur á API gáttum", + "DevelopingTheMicroservices": "Þróun örþjónustunnar", + "UnderstandingTheInfrastructure": "Að skilja innviðina", + "DiggingInTheUseCases": "Að grafa í notkunarmálum", + "DeployingTheSolution": "Að dreifa lausninni", + "ThisBookIsInDraftStageAndIsNotCompletedYet": "Þessi bók er í drögum og er ekki lokið enn.", + "Authors": "Höfundar", + "MicroserviceEBook": "Microservice rafbók", "SelectUITheme": "Veldu UI þema", + "LeptonXLiteTheme": "LeptonX Lite þema", + "BasicTheme": "Grunnþema", + "LeptonXLiteThemeInfo": "Nútímalegt og stílhrein Bootstrap UI þema. Tilvalið ef þú vilt hafa framleiðslutilbúið UI þema. Þetta er nýjasta þemað og er sjálfgefið.", + "BasicThemeInfo": "Minimalist UI þema með látlausum Bootstrap litum og stílum. Tilvalið ef þú ætlar að búa til þitt eigið UI þema.", + "SeeDocumentation": "Sjá skjöl .", + "SeeFullScreen": "🖼️ Sjá skjáskotið", + "BuildingMicroserviceSolutionsShortDescription": "Þessi bók er tilvísunarleiðbeiningar til að þróa og stjórna forritum sem byggjast á örþjónustu með ABP ramma.", + "InstallAbpCliMessage": "Settu upp ABP CLI í skipanalínustöð, ef þú hefur ekki sett það upp áður:", + "Terminal": "Flugstöð", + "Copy": "Afrita", + "RunTheFollowingCommand": "Keyrðu eftirfarandi skipun í skipanalínustöðinni:", + "ChangeSolutionOptionsBelow": "Þú getur breytt lausnarmöguleikum hér að neðan.", + "MultiLayerApplication": "Marglaga
Umsókn", + "MultiLayerApplicationExplanation1": "Býr til fullkomlega lagskipt lausn byggða á lénsdrifinni hönnunaraðferðum.", + "MultiLayerApplicationExplanation2": "Mælt með fyrir langtímaverkefni sem þarfnast viðhalds og stækkans kóðagrunns.", + "SingleLayerApplication": "Eitt lag
Umsókn", + "SingleLayerApplicationExplanation1": "Býr til eins lags vefforrit.", + "SingleLayerApplicationExplanation2": "Mælt er með því að byggja upp forrit með einfaldari og auðskiljanlegri arkitektúr.", + "ApplicationModule": "Umsókn
Eining", + "SeeTheScreenshot": "Sjá skjáskotið", + "ApplicationModuleExplanation1": "Býr til endurnýtanlega, fullkomlega lagskiptu umsóknareiningu lausn.", + "ApplicationModuleExplanation2": "Þú getur notað þennan valkost til að búa til einingar fyrir einingarforritið þitt.", + "Expert_": "Sérfræðingur", + "Partner_": "Samstarf", + "WebSite": "Vefsíða", + "Expert_Year": "Sérfræðiár", + "CompanyInfo": "Fyrirtækjaupplýsingar", + "Date": "Dagsetning", + "WhoWeAre_Partner": "Hver við erum", + "WhoWeAre_Expert": "Um mig", "CreateSolutionFolder": "Búðu til lausnarmöppu", - "CreateSolutionFolderOption": "Tilgreinir hvort verkefnið verður í nýrri möppu í úttaksmöppunni eða beint í framleiðslumöppunni." + "CreateSolutionFolderOption": "Tilgreinir hvort verkefnið verður í nýrri möppu í úttaksmöppunni eða beint í framleiðslumöppunni.", + "BooksPageTitle": "ABP bækur", + "PackageDetailPage_NuGetPackageInstallationOptions": "Það eru þrjár leiðir til að setja upp {0} NuGet pakkann í verkefnið þitt", + "PackageDetailPage_InstallingWithABPCLI": "1: Uppsetning með ABP CLI", + "PackageDetailPage_InstallingWithABPCLIDescription1": "Ef þú hefur ekki sett upp ABP CLI skaltu fyrst setja upp með því að framkvæma eftirfarandi skipun í skipanalínu", + "PackageDetailPage_InstallingWithABPCLIDescription2": "Þegar þú hefur sett upp ABP CLI skaltu opna skipanalínustöð á staðsetningu verkefnisins ( .csproj skrá) sem þú vilt setja það upp og framkvæma eftirfarandi skipun", + "PackageDetailPage_InstallingWithABPCLIDescription3": "Það mun bæta {0} pakkatilvísuninni við verkefnið þitt og {1} ósjálfstæði við einingaflokkinn þinn.", + "PackageDetailPage_ManualInstallation": "2: Uppsetning með Dotnet CLI", + "PackageDetailPage_ManualInstallationDescription1": "Bættu {0} NuGet pakkatilvísun við verkefnið þitt með því að nota IDE eða framkvæma eftirfarandi skipun", + "PackageDetailPage_ManualInstallationDescription2": "Bættu síðan við {0} ósjálfstæði við einingaflokkinn þinn eins og sýnt er í eftirfarandi dæmi", + "PackageDetailPage_SeeDocumentation": "Skoðaðu skjölin til að læra hvernig á að nota þennan pakka í forritunum þínum.", + "PackageDetailPage_InstallingUsingPMC": "3: Uppsetning með Package Manager Console", + "PackageDetailPage_InstallingUsingPMCDescription1": "Opnaðu Package Manager Console í Visual Studio (Tools -> Nuget Package Manager -> Package Manager Console) og keyrðu eftirfarandi skipun", + "UIOptions": "HÍ Valkostir", + "Testimonials": "Vitnisburður", + "CoolestCompaniesUseABPFramework": "Flottustu fyrirtækin nota ABP Framework", + "Index_Page_Testimonial_1": "ABP Framework er ekki bara tæki heldur hvati sem hefur flýtt fyrir vexti mínum sem þróunaraðila. Það hefur gert mér kleift að byggja nýja eiginleika hraðar en nokkru sinni fyrr, sem minnir á reynslu annarra notenda. Sameinaða kóðunarmynstrið hefur straumlínulagað verkefnin mín, gefið mér meiri tíma til að einbeita mér að því að búa til frekar en bilanaleit. \n Ég myndi segja að ABP Framework hafi verið hornsteinninn í fyrstu atvinnuferð minni. Það hefur auðveldað umskipti mína úr upprennandi þróunaraðila yfir í öruggan fagmann sem er tilbúinn að setja mark á hugbúnaðarheiminn. Ég hlakka til spennandi verkefna sem bíða mín, vitandi að ABP mun vera til staðar til að leiðbeina mér. Það er meira en bara vara; það er félagi í velgengni.", + "Index_Page_Testimonial_2": "ABP Framework er ekki aðeins rammi, það er líka leiðsögn fyrir þróun/stjórnun verkefna, vegna þess að það veitir DDD, GenericRepository, DI, Microservice, Modularity þjálfun. Jafnvel þó þú ætlir ekki að nota ramma sjálfan þig geturðu þróað sjálfan þig með docs.abp.io sem er vel og faglega undirbúið. (OpenIddict, Redis, Quartz o.s.frv.) \n Þar sem margt er forsmíðað styttir það þróunartíma verkefna verulega. (Svo sem innskráningarsíðu, undantekningarmeðferð, gagnasíun-sáningu, endurskoðunarskráningu, staðfærslu, sjálfvirkan API stjórnandi o.s.frv.) \n Sem dæmi úr appinu okkar hef ég notað Local Event Bus fyrir lagerstýringu. Þannig að ég get stjórnað pöntunarhreyfingum með því að skrifa lager meðhöndlun. \n Það er dásamlegt að missa ekki tíma fyrir CreationTime, CreatorId. Þau fyllast sjálfkrafa.", + "VideosLoginAndRegisterMessage": "Þú verður að skrá þig inn til að horfa á myndbönd. Þú getur búið til reikning fyrir úrið ef þú hefur ekki gert það.", + "Filter": "Sía", + "VideoCourses": "Vídeónámskeið" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/it.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/it.json index 959159e373..ba22641de8 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/it.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/it.json @@ -174,6 +174,8 @@ "CreateProjectWizard": "Questa procedura guidata crea un nuovo progetto dal modello di avvio che è configurato correttamente per avviare rapidamente il progetto.", "TieredOption": "Crea una soluzione a più livelli in cui i livelli API Web e Http sono fisicamente separati. Se non selezionata, crea una soluzione a più livelli meno complessa e adatta alla maggior parte degli scenari.", "SeparateIdentityServerOption": "Separa il lato server in due applicazioni: la prima è per il server di identità e la seconda è per l'API HTTP lato server.", + "SeparateAuthenticationServerOption": "Separa il lato server in due applicazioni: la prima è per il server di autenticazione e la seconda è per l'API HTTP lato server.", + "ProgressiveWebApplicationOption": "Specifica il progetto come applicazione Web progressiva", "UseslatestPreVersion": "Utilizza l'ultima versione pre-rilascio", "ReadTheDocumentation": "LeggiLa documentazione", "Documentation": "Documentazione", @@ -214,7 +216,11 @@ "SeeDocs": "Vedi Documentazione", "None": "Nessuno", "Application": "Applicazione", + "ApplicationExplanation": "Crea una soluzione completamente stratificata basata su pratiche di progettazione guidata dal dominio. Consigliato per progetti a lungo termine che necessitano di una base di codice gestibile ed estensibile.", + "ApplicationNoLayer": "Applicazione (strato singolo)", + "ApplicationNoLayerExplanation": "Crea un'applicazione Web a livello singolo. Consigliato per creare un'applicazione con un'architettura più semplice e di facile comprensione.", "Module": "Moduli", + "ModuleExplanation": "Crea una soluzione di moduli applicativi riutilizzabili e completamente stratificati. Puoi utilizzare questa opzione per creare moduli per la tua applicazione modulare.", "PackageName": "Nome Pacchetto", "LicenseURL": "URL Licenza", "License": "Licenza", @@ -274,8 +280,166 @@ "FirstEdition": "Prima Edizione", "ThankYou": "Grazie!", "CheckboxMandatory": "Devi mettere la spunta su questo per procedere!", + "UserInterface": "Interfaccia utente", + "APIGateway": "Gateway API", + "Database": "Banca dati", + "Saas": "Saas", + "OpenSourceWebApp": "Fonte aperta
applicazione web", + "Framework": "Struttura", + "AuditLoggingExplanation": "Traccia automaticamente tutte le operazioni e le modifiche ai dati nel tuo sistema.", + "AbpNewCommandExplanation": "Crea nuove soluzioni utilizzando i modelli di avvio ABP.", + "AbpAddModuleCommandExplanation": "Installa moduli applicativi predefiniti nella tua soluzione", + "AbpUpdateCommandExplanation": "Aggiorna automaticamente tutti i pacchetti NuGet e NPM correlati a ABP nella soluzione.", + "ExploreAllCLICommands": "Esplora tutti i comandi CLI", + "ExploreDocumentationAndGuides": "Esplora la documentazione e le guide complete.", + "Documentations": "Documentazione", + "Views": "Visualizzazioni", + "EnterYouEmailToGetNews": "Inserisci la tua email per ricevere le ultime novità sull'ABP Framework", + "Tiered": "Stanco", + "SeparateIdentityServer": "Server di identità separato", + "SeparateAuthenticationServer": "Server di autenticazione separato", + "ProgressiveWebApplication": "Applicazione Web progressiva", + "Preview": "Anteprima", + "CreateANewSolution": "Creare una nuova soluzione", + "ABPFrameworkFeatures": "Caratteristiche della struttura ABP", + "Commercial": "Commerciale", + "ThirdPartyTools": "Strumenti di terze parti", + "Back": "Indietro", + "Community": "Comunità", + "SeeMore": "Vedi altro", + "DetailsOfTheEBook": "Dettagli dell'e-book", + "JoinOurMarketingNewsletter": "Iscriviti alla nostra newsletter di marketing", + "FrameworkNewsletterConfirmationMessage": "Accetto i Termini e Condizioni e l'Informativa sulla Privacy .", + "GetYourFreeEBook": "Ottieni il tuo e-book DDD gratuito", + "EverythingYouNeedToKnow": "Tutto quello che devi sapere", + "PreOrderNow": "Preordinalo ora", + "UITheming": "Temi dell'interfaccia utente", + "UIThemingExplanation": "Crea temi e layout dell'interfaccia utente riutilizzabili o utilizza uno dei temi dell'interfaccia utente predefiniti.", + "DataFilteringExplanation2": "Filtra automaticamente le query dal database per implementare facilmente modelli come l'eliminazione temporanea e la multi-tenancy.", + "NeedHelp": "Ho bisogno di aiuto?", + "GiveYourProjectAName": "Dai un nome al tuo progetto", + "SelectProjectType": "Seleziona Tipo di progetto", + "SelectUIFramework": "Seleziona Struttura dell'interfaccia utente", + "SelectDatabaseProvider": "Seleziona Fornitore di database", + "SelectDatabaseManagementSystem": "Seleziona Sistema di gestione del database", + "InstallingTheABPCLI": "Installazione della CLI ABP", + "CreateYourProjectNow": "Crea il tuo progetto ora", + "OrderOn": "Ordina su {0}", + "DownloadFreeDDDBook": "Scarica il libro DDD gratuito", + "WhatIsABPFramework": "Cos'è il quadro ABP?", + "TenantDatabase": "Database inquilino {0}", + "SharedDatabase": "Banca dati condivisa", + "ConnectionResolver": "Risolutore di connessione", + "TenantBasedDataFilter": "Filtro dati basato sul tenant", + "ApplicationCode": "Codice dell'applicazione", + "TenantResolution": "Risoluzione dell'inquilino", + "TenantUser": "Utente tenant {0}", + "CardTitle": "Titolo della carta", + "View": "Visualizzazione", + "Model": "Modello", + "Email": "E-mail", + "Password": "Parola d'ordine", + "Address": "Indirizzo", + "Gender": "Genere", + "Male": "Maschio", + "Female": "Femmina", + "Submit": "Invia", + "Unspecified": "Non specificato", + "StaticFileMiddleware": "Middleware di file statici", + "RazorViewEngine": "Motore di visualizzazione Razor", + "PhysicalFiles": "File fisici (wwwroot)", + "EmbeddedFiles": "File incorporati (DLL)", + "DynamicFiles": "File dinamici (memoria)", + "BuildSolutionsWithAbp": "Crea soluzioni .NET gestibili seguendo le migliori pratiche di sviluppo software utilizzando ABP.", + "BuyOnAmazon": "Acquista su Amazon", + "BuyOnPackt": "Acquista su Packt", + "Discounted": "Scontato", + "MasteringAbpFramework_Book_KeyFeatures": "Caratteristiche principali", + "MasteringAbpFramework_Book_Key_Features_Description_1": "Crea soluzioni software robuste, manutenibili, modulari e scalabili utilizzando ABP Framework.", + "MasteringAbpFramework_Book_Key_Features_Description_2": "Scopri come implementare i principi SOLID e la progettazione basata sul dominio nelle tue applicazioni web.", + "MasteringAbpFramework_Book_Key_Features_Description_3": "Scopri come ABP Framework accelera il ciclo di sviluppo automatizzando le attività ripetitive.", + "MasteringAbpFramework_Book_Description": "Descrizione del libro", + "MasteringAbpFramework_Book_Description_Details_1": "ABP Framework è un'infrastruttura completa per la creazione di applicazioni Web moderne seguendo le migliori pratiche e convenzioni di sviluppo del software \n . Con il framework e l'ecosistema di alto livello di ABP, puoi \n implementare il principio Don't Repeat Yourself (DRY) e concentrarti sul codice aziendale.", + "MasteringAbpFramework_Book_Description_Details_2": "Scritto dal creatore di ABP Framework, questo libro ti aiuterà ad acquisire una comprensione completa del framework \n e delle moderne tecniche di sviluppo di applicazioni web. Con spiegazioni dettagliate dei concetti essenziali di \n ed esempi pratici, comprenderai i requisiti di una soluzione Web moderna e in che modo ABP \n Framework rende divertente lo sviluppo delle tue soluzioni. Scoprirai i requisiti comuni dello sviluppo di applicazioni Web aziendali \n ed esplorerai l'infrastruttura fornita da ABP. Nel libro \n verranno illustrate le migliori pratiche di sviluppo software per la creazione di soluzioni Web \n manutenibili e modulari.", + "MasteringAbpFramework_Book_Description_Details_3": "Entro la fine di questo libro sarai in grado di creare una soluzione Web completa facile da sviluppare, mantenere e testare \n .", + "MasteringAbpFramework_Book_WhatYouWillLearn": "Cosa imparerai", + "MasteringAbpFramework_Book_What_You_Will_Learn_1": "Configura l'ambiente di sviluppo e inizia a utilizzare ABP Framework.", + "MasteringAbpFramework_Book_What_You_Will_Learn_2": "Collabora con Entity Framework Core e MongoDB per sviluppare il tuo livello di accesso ai dati.", + "MasteringAbpFramework_Book_What_You_Will_Learn_3": "Comprendere le preoccupazioni trasversali e il modo in cui l'ABP automatizza le attività ripetitive.", + "MasteringAbpFramework_Book_What_You_Will_Learn_4": "Impara a implementare la progettazione basata sul dominio con ABP Framework.", + "MasteringAbpFramework_Book_What_You_Will_Learn_5": "Crea pagine e componenti dell'interfaccia utente con ASP.NET Core MVC (Razor Pages) e Blazor.", + "MasteringAbpFramework_Book_What_You_Will_Learn_6": "Lavora con multi-tenancy per creare applicazioni web modulari.", + "MasteringAbpFramework_Book_What_You_Will_Learn_7": "Comprendere la modularità e creare moduli applicativi riutilizzabili.", + "MasteringAbpFramework_Book_What_You_Will_Learn_8": "Scrivi test unitari, di integrazione e dell'interfaccia utente utilizzando ABP Framework.", + "MasteringAbpFramework_Book_WhoIsThisBookFor": "Per chi è questo libro", + "MasteringAbpFramework_Book_WhoIsThisBookFor_Description": "Questo libro è rivolto agli sviluppatori Web che desiderano apprendere le architetture software e le migliori pratiche per creare soluzioni basate sul Web gestibili \n utilizzando le tecnologie Microsoft e ABP Framework. Per iniziare a leggere questo libro è necessaria una conoscenza di base di C# \n e ASP.NET Core.", + "ComputersAndTechnology": "Computer e tecnologia", + "BuildingMicroserviceSolutions": "Creazione di soluzioni di microservizi", + "MicroserviceBookPracticalGuide": "Questo libro è una guida di riferimento per lo sviluppo e la gestione di applicazioni basate su microservizi utilizzando il framework ABP. Fa riferimento all'applicazione di riferimento di esempio di microservizi .NET : eShopOnContainers e illustra la progettazione dell'architettura e gli approcci di implementazione utilizzando il framework ABP. Alla fine di questo libro imparerai come ABP affronta le complessità comuni dei microservizi come l'autorizzazione, le transazioni distribuite, le comunicazioni tra microservizi, la distribuzione e così via.", + "IntroducingTheSolution": "Presentazione della soluzione eShopOnAbp", + "RunningTheSolution": "Esecuzione della soluzione", + "UnderstandingTheAuthenticationSystem": "Comprendere il sistema di autenticazione", + "ExploringTheApplications": "Esplorare le applicazioni", + "UnderstandingTheAPIGateways": "Comprendere i gateway API", + "DevelopingTheMicroservices": "Sviluppo dei microservizi", + "UnderstandingTheInfrastructure": "Comprendere l'infrastruttura", + "DiggingInTheUseCases": "Scavando nei casi d'uso", + "DeployingTheSolution": "Distribuzione della soluzione", + "ThisBookIsInDraftStageAndIsNotCompletedYet": "Questo libro è in fase di bozza e non è ancora stato completato.", + "Authors": "Autori", + "MicroserviceEBook": "E-book sui microservizi", "SelectUITheme": "Seleziona Tema dell'interfaccia utente", + "LeptonXLiteTheme": "Tema LeptonX Lite", + "BasicTheme": "Tema di base", + "LeptonXLiteThemeInfo": "Un tema dell'interfaccia utente Bootstrap moderno ed elegante. Ideale se desideri avere un tema dell'interfaccia utente pronto per la produzione. Questo è il tema più recente ed è quello predefinito.", + "BasicThemeInfo": "Tema dell'interfaccia utente minimalista con colori e stili Bootstrap semplici. Ideale se costruirai il tuo tema dell'interfaccia utente.", + "SeeDocumentation": "Vedi la documentazione .", + "SeeFullScreen": "🖼️ Guarda lo screenshot", + "BuildingMicroserviceSolutionsShortDescription": "Questo libro è una guida di riferimento per lo sviluppo e la gestione di applicazioni basate su microservizi utilizzando il framework ABP.", + "InstallAbpCliMessage": "Installa la CLI ABP in un terminale della riga di comando, se non l'hai mai installata prima:", + "Terminal": "terminale", + "Copy": "copia", + "RunTheFollowingCommand": "Esegui il seguente comando in un terminale della riga di comando:", + "ChangeSolutionOptionsBelow": "Puoi modificare le opzioni della soluzione di seguito.", + "MultiLayerApplication": "Multistrato
Applicazione", + "MultiLayerApplicationExplanation1": "Crea una soluzione completamente stratificata basata su pratiche di progettazione guidata dal dominio.", + "MultiLayerApplicationExplanation2": "Consigliato per progetti a lungo termine che necessitano di una base di codice gestibile ed estensibile.", + "SingleLayerApplication": "Singolo strato
Applicazione", + "SingleLayerApplicationExplanation1": "Crea un'applicazione Web a livello singolo.", + "SingleLayerApplicationExplanation2": "Consigliato per creare un'applicazione con un'architettura più semplice e di facile comprensione.", + "ApplicationModule": "Applicazione
Modulo", + "SeeTheScreenshot": "Guarda lo screenshot", + "ApplicationModuleExplanation1": "Crea una soluzione di moduli applicativi riutilizzabili e completamente stratificati.", + "ApplicationModuleExplanation2": "Puoi utilizzare questa opzione per creare moduli per la tua applicazione modulare.", + "Expert_": "Esperto", + "Partner_": "Associazione", + "WebSite": "Sito web", + "Expert_Year": "Anno di competenza", + "CompanyInfo": "Informazioni sull'azienda", + "Date": "Data", + "WhoWeAre_Partner": "Chi siamo", + "WhoWeAre_Expert": "Su di me", "CreateSolutionFolder": "Crea cartella della soluzione", - "CreateSolutionFolderOption": "Specifica se il progetto si troverà in una nuova cartella nella cartella di output o direttamente nella cartella di output." + "CreateSolutionFolderOption": "Specifica se il progetto si troverà in una nuova cartella nella cartella di output o direttamente nella cartella di output.", + "BooksPageTitle": "Libri ABP", + "PackageDetailPage_NuGetPackageInstallationOptions": "Esistono tre modi per installare il pacchetto NuGet {0} nel tuo progetto", + "PackageDetailPage_InstallingWithABPCLI": "1: Installazione con la CLI ABP", + "PackageDetailPage_InstallingWithABPCLIDescription1": "Se non hai installato la CLI ABP , installala innanzitutto eseguendo il seguente comando in un terminale della riga di comando", + "PackageDetailPage_InstallingWithABPCLIDescription2": "Dopo aver installato la CLI ABP, apri un terminale della riga di comando nella posizione del progetto (file .csproj ) che desideri installarlo ed esegui il comando seguente", + "PackageDetailPage_InstallingWithABPCLIDescription3": "Aggiungerà il riferimento al pacchetto {0} al tuo progetto e la dipendenza {1} alla classe del tuo modulo.", + "PackageDetailPage_ManualInstallation": "2: installazione con la CLI di Dotnet", + "PackageDetailPage_ManualInstallationDescription1": "Aggiungi {0} riferimento al pacchetto NuGet al tuo progetto utilizzando l'IDE o eseguendo il comando seguente", + "PackageDetailPage_ManualInstallationDescription2": "Quindi aggiungi la dipendenza {0} alla classe del tuo modulo come mostrato nell'esempio seguente", + "PackageDetailPage_SeeDocumentation": "Consulta la documentazione per sapere come utilizzare questo pacchetto nelle tue applicazioni.", + "PackageDetailPage_InstallingUsingPMC": "3: installazione con la console di gestione pacchetti", + "PackageDetailPage_InstallingUsingPMCDescription1": "Aprire la console di gestione pacchetti in Visual Studio (Strumenti -> Gestione pacchetti Nuget -> Console di gestione pacchetti) ed eseguire il comando seguente", + "UIOptions": "Opzioni dell'interfaccia utente", + "Testimonials": "Testimonianze", + "CoolestCompaniesUseABPFramework": "Le aziende più interessanti utilizzano il framework ABP", + "Index_Page_Testimonial_1": "ABP Framework non è solo uno strumento ma un catalizzatore che ha accelerato la mia crescita come sviluppatore. Mi ha permesso di creare nuove funzionalità più velocemente che mai, ricordando le esperienze di altri utenti. Il modello di codifica unificato ha semplificato i miei progetti, dandomi più tempo per concentrarmi sulla creazione piuttosto che sulla risoluzione dei problemi. \n Direi che il framework ABP è stato la pietra angolare del mio primo percorso professionale. Ha facilitato la mia transizione da aspirante sviluppatore a professionista fiducioso pronto a lasciare un segno nel mondo del software. Attendo con ansia gli entusiasmanti progetti che mi aspettano, sapendo che ABP sarà lì per guidarmi. È più di un semplice prodotto; è un partner di successo.", + "Index_Page_Testimonial_2": "ABP Framework non è solo un framework, è anche una guida per lo sviluppo/gestione del progetto, poiché fornisce corsi di formazione su DDD, GenericRepository, DI, Microservice e Modularità. Anche se non utilizzerai il framework stesso, puoi svilupparti con docs.abp.io che è ben preparato e professionalmente. (OpenIddict, Redis, Quartz ecc.) \n Poiché molte cose sono precostruite, riduce significativamente i tempi di sviluppo del progetto. (Come pagina di accesso, gestione delle eccezioni, seeding del filtraggio dei dati, registrazione di controllo, localizzazione, controller API automatico ecc.) \n Come esempio tratto dalla nostra app, ho utilizzato Local Event Bus per il controllo delle scorte. Quindi, sono in grado di gestire i movimenti degli ordini scrivendo stock handler. \n È meraviglioso non perdere tempo con CreationTime, CreatorId. Si riempiono automaticamente.", + "VideosLoginAndRegisterMessage": "Devi accedere per guardare i video. Se non lo hai già fatto, puoi creare un account per Watch.", + "Filter": "Filtro", + "VideoCourses": "Videocorsi" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/nl.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/nl.json index cd656a3cc2..7869c80a60 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/nl.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/nl.json @@ -174,6 +174,8 @@ "CreateProjectWizard": "Deze wizard maakt een nieuw project van de opstartsjabloon die correct is geconfigureerd om snel van start te gaan met uw project.", "TieredOption": "Creëert een gelaagde oplossing waarbij web- en HTTP-API-lagen fysiek zijn gescheiden. Indien niet aangevinkt, ontstaat er een gelaagde oplossing die minder complex is en geschikt is voor de meeste scenario's.", "SeparateIdentityServerOption": "Scheidt server-side in twee toepassingen: de eerste is voor de identiteitsserver en de tweede is voor uw server-side HTTP API.", + "SeparateAuthenticationServerOption": "Verdeelt de serverzijde in twee toepassingen: de eerste is voor de authenticatieserver en de tweede is voor uw HTTP API aan de serverzijde.", + "ProgressiveWebApplicationOption": "Specificeert het project als Progressive Web Application", "UseslatestPreVersion": "Gebruikt de nieuwste pre-releaseversie", "ReadTheDocumentation": "Leesde documentatie", "Documentation": "Documentatie", @@ -214,7 +216,11 @@ "SeeDocs": "Documenten bekijken", "None": "Geen", "Application": "Sollicitatie", + "ApplicationExplanation": "Creëert een volledig gelaagde oplossing op basis van Domain Driven Design-praktijken. Aanbevolen voor langetermijnprojecten die een onderhoudbare en uitbreidbare codebasis nodig hebben.", + "ApplicationNoLayer": "Applicatie (enkele laag)", + "ApplicationNoLayerExplanation": "Creëert een enkellaagse webapplicatie. Aanbevolen voor het bouwen van een applicatie met een eenvoudiger en gemakkelijk te begrijpen architectuur.", "Module": "module", + "ModuleExplanation": "Creëert een herbruikbare, volledig gelaagde applicatiemodule-oplossing. U kunt deze optie gebruiken om modules voor uw modulaire toepassing te maken.", "PackageName": "Verpakkingsnaam", "LicenseURL": "Licentie-URL", "License": "Vergunning", @@ -274,8 +280,166 @@ "FirstEdition": "Eerste editie", "ThankYou": "Bedankt!", "CheckboxMandatory": "Je moet dit aanvinken om verder te gaan!", + "UserInterface": "Gebruikersomgeving", + "APIGateway": "API-gateway", + "Database": "Database", + "Saas": "Saas", + "OpenSourceWebApp": "Open source
web applicatie", + "Framework": "Kader", + "AuditLoggingExplanation": "Traceer automatisch alle bewerkingen en gegevenswijzigingen in uw systeem.", + "AbpNewCommandExplanation": "Creëert nieuwe oplossingen met behulp van de ABP-opstartsjablonen.", + "AbpAddModuleCommandExplanation": "Installeert kant-en-klare applicatiemodules in uw oplossing", + "AbpUpdateCommandExplanation": "Werkt automatisch alle ABP-gerelateerde NuGet- en NPM-pakketten in uw oplossing bij.", + "ExploreAllCLICommands": "Ontdek alle CLI-opdrachten", + "ExploreDocumentationAndGuides": "Ontdek de uitgebreide documentatie en handleidingen.", + "Documentations": "Documentatie", + "Views": "Keer bekeken", + "EnterYouEmailToGetNews": "Voer uw e-mailadres in om het laatste nieuws over het ABP Framework te ontvangen", + "Tiered": "Moe", + "SeparateIdentityServer": "Aparte identiteitsserver", + "SeparateAuthenticationServer": "Aparte authenticatieserver", + "ProgressiveWebApplication": "Progressieve webapplicatie", + "Preview": "Voorbeeld", + "CreateANewSolution": "Creëer een nieuwe oplossing", + "ABPFrameworkFeatures": "ABP Framework -functies", + "Commercial": "Reclame", + "ThirdPartyTools": "Hulpmiddelen van derden", + "Back": "Rug", + "Community": "Gemeenschap", + "SeeMore": "Bekijk meer", + "DetailsOfTheEBook": "Details van het e-boek", + "JoinOurMarketingNewsletter": "Schrijf u in voor onze marketingnieuwsbrief", + "FrameworkNewsletterConfirmationMessage": "Ik ga akkoord met de Algemene Voorwaarden en het Privacybeleid .", + "GetYourFreeEBook": "Ontvang uw gratis DDD e-boek", + "EverythingYouNeedToKnow": "Alles wat u moet weten.", + "PreOrderNow": "Bestel nu vooraf", + "UITheming": "UI-thema", + "UIThemingExplanation": "Creëer herbruikbare UI-thema's en lay-outs of gebruik een van de kant-en-klare UI-thema's.", + "DataFilteringExplanation2": "Filter automatisch op zoekopdrachten uit de database om eenvoudig patronen zoals voorlopig verwijderen en multi-tenancy te implementeren.", + "NeedHelp": "Hulp nodig?", + "GiveYourProjectAName": "Geef uw project een naam", + "SelectProjectType": "Selecteer Projecttype", + "SelectUIFramework": "Selecteer UI-framework", + "SelectDatabaseProvider": "Selecteer Databaseprovider", + "SelectDatabaseManagementSystem": "Selecteer Databasebeheersysteem", + "InstallingTheABPCLI": "De ABP CLI installeren", + "CreateYourProjectNow": "Creëer nu uw project", + "OrderOn": "Bestel op {0}", + "DownloadFreeDDDBook": "Download het gratis DDD-boek", + "WhatIsABPFramework": "Wat is het ABP-raamwerk?", + "TenantDatabase": "Tenant {0}-database", + "SharedDatabase": "Gedeelde database", + "ConnectionResolver": "Verbindingsoplosser", + "TenantBasedDataFilter": "Op huurder gebaseerd gegevensfilter", + "ApplicationCode": "Applicatiecode", + "TenantResolution": "Huurder resolutie", + "TenantUser": "Huurder {0} Gebruiker", + "CardTitle": "Kaarttitel", + "View": "Weergave", + "Model": "Model", + "Email": "E-mail", + "Password": "Wachtwoord", + "Address": "Adres", + "Gender": "Geslacht", + "Male": "Mannelijk", + "Female": "Vrouwelijk", + "Submit": "Indienen", + "Unspecified": "Niet gespecificeerd", + "StaticFileMiddleware": "Statische bestandsmiddleware", + "RazorViewEngine": "Razor View-engine", + "PhysicalFiles": "Fysieke bestanden (wwwroot)", + "EmbeddedFiles": "Ingesloten bestanden (DLL)", + "DynamicFiles": "Dynamische bestanden (geheugen)", + "BuildSolutionsWithAbp": "Bouw onderhoudbare .NET-oplossingen door de best practices voor softwareontwikkeling te volgen met behulp van ABP.", + "BuyOnAmazon": "Koop op Amazon", + "BuyOnPackt": "Koop op Packt", + "Discounted": "Met korting", + "MasteringAbpFramework_Book_KeyFeatures": "Belangrijkste kenmerken", + "MasteringAbpFramework_Book_Key_Features_Description_1": "Bouw robuuste, onderhoudbare, modulaire en schaalbare softwareoplossingen met behulp van ABP Framework.", + "MasteringAbpFramework_Book_Key_Features_Description_2": "Leer hoe u SOLID-principes en domeingestuurd ontwerp in uw webapplicaties kunt implementeren.", + "MasteringAbpFramework_Book_Key_Features_Description_3": "Ontdek hoe ABP Framework uw ontwikkelingscyclus versnelt door repetitieve taken te automatiseren.", + "MasteringAbpFramework_Book_Description": "Boek beschrijving", + "MasteringAbpFramework_Book_Description_Details_1": "ABP Framework is een complete infrastructuur voor het creëren van moderne webapplicaties door het volgen van best practices en conventies voor de ontwikkeling van software \n . Met het hoogwaardige raamwerk en ecosysteem van ABP kunt u \n het Don't Repeat Yourself (DRY)-principe implementeren en u concentreren op uw bedrijfscode.", + "MasteringAbpFramework_Book_Description_Details_2": "Dit boek, geschreven door de maker van ABP Framework, zal u helpen een volledig inzicht te krijgen in het \n framework en moderne technieken voor de ontwikkeling van webapplicaties. Met stapsgewijze uitleg van essentiële \n concepten en praktische voorbeelden begrijpt u de vereisten van een moderne weboplossing en hoe het ABP \n Framework het leuk maakt om uw eigen oplossingen te ontwikkelen. U ontdekt de algemene vereisten voor de ontwikkeling van \n webapplicaties voor ondernemingen en verkent de infrastructuur van ABP. In het \n boek krijgt u inzicht in de best practices voor softwareontwikkeling voor het bouwen van onderhoudbare en modulaire \n weboplossingen.", + "MasteringAbpFramework_Book_Description_Details_3": "Aan het einde van dit boek bent u in staat een complete weboplossing te creëren die eenvoudig te ontwikkelen, te onderhouden en te testen is \n .", + "MasteringAbpFramework_Book_WhatYouWillLearn": "Wat je gaat leren", + "MasteringAbpFramework_Book_What_You_Will_Learn_1": "Richt de ontwikkelomgeving in en ga aan de slag met ABP Framework.", + "MasteringAbpFramework_Book_What_You_Will_Learn_2": "Werk met Entity Framework Core en MongoDB om uw gegevenstoegangslaag te ontwikkelen.", + "MasteringAbpFramework_Book_What_You_Will_Learn_3": "Begrijp de transversale problemen en hoe ABP repetitieve taken automatiseert.", + "MasteringAbpFramework_Book_What_You_Will_Learn_4": "Krijg grip op het implementeren van domeingestuurd ontwerp met ABP Framework.", + "MasteringAbpFramework_Book_What_You_Will_Learn_5": "Bouw UI-pagina's en componenten met ASP.NET Core MVC (Razor Pages) en Blazor.", + "MasteringAbpFramework_Book_What_You_Will_Learn_6": "Werk met multi-tenancy om modulaire webapplicaties te creëren.", + "MasteringAbpFramework_Book_What_You_Will_Learn_7": "Begrijp de modulariteit en creëer herbruikbare applicatiemodules.", + "MasteringAbpFramework_Book_What_You_Will_Learn_8": "Schrijf unit-, integratie- en UI-tests met behulp van ABP Framework.", + "MasteringAbpFramework_Book_WhoIsThisBookFor": "Voor wie is dit boek bedoeld", + "MasteringAbpFramework_Book_WhoIsThisBookFor_Description": "Dit boek is bedoeld voor webontwikkelaars die software-architecturen en best practices willen leren voor het bouwen van onderhoudbare webgebaseerde oplossingen \n met behulp van Microsoft-technologieën en ABP Framework. Basiskennis van C# \n en ASP.NET Core is noodzakelijk om met dit boek aan de slag te gaan.", + "ComputersAndTechnology": "Computers en technologie", + "BuildingMicroserviceSolutions": "Microservice-oplossingen bouwen", + "MicroserviceBookPracticalGuide": "Dit boek is een naslaggids voor het ontwikkelen en beheren van op microservices gebaseerde applicaties met behulp van het ABP Framework. Het verwijst naar de .NET Microservice Sample Reference Application : eShopOnContainers en bespreekt de architecturale ontwerp- en implementatiebenaderingen met behulp van het ABP Framework. Aan het einde van dit boek leert u hoe ABP de veelvoorkomende complexiteiten van microservices aanpakt, zoals autorisatie, gedistribueerde transacties, communicatie tussen microservices, implementatie, enz.", + "IntroducingTheSolution": "Introductie van de eShopOnAbp-oplossing", + "RunningTheSolution": "De oplossing uitvoeren", + "UnderstandingTheAuthenticationSystem": "Het authenticatiesysteem begrijpen", + "ExploringTheApplications": "De toepassingen verkennen", + "UnderstandingTheAPIGateways": "De API-gateways begrijpen", + "DevelopingTheMicroservices": "Het ontwikkelen van de microservices", + "UnderstandingTheInfrastructure": "De infrastructuur begrijpen", + "DiggingInTheUseCases": "Graven in de gebruiksscenario's", + "DeployingTheSolution": "De oplossing implementeren", + "ThisBookIsInDraftStageAndIsNotCompletedYet": "Dit boek bevindt zich in de conceptfase en is nog niet voltooid.", + "Authors": "Auteurs", + "MicroserviceEBook": "E-boek voor microservices", "SelectUITheme": "Selecteer UI-thema", + "LeptonXLiteTheme": "LeptonX Lite-thema", + "BasicTheme": "Basis thema", + "LeptonXLiteThemeInfo": "Een modern en stijlvol Bootstrap UI-thema. Ideaal als u een productieklaar UI-thema wilt hebben. Dit is het nieuwste thema en is de standaard.", + "BasicThemeInfo": "Minimalistisch UI-thema met effen Bootstrap-kleuren en -stijlen. Ideaal als u uw eigen UI-thema gaat bouwen.", + "SeeDocumentation": "Zie documentatie .", + "SeeFullScreen": "🖼️ Zie de schermafbeelding", + "BuildingMicroserviceSolutionsShortDescription": "Dit boek is een naslaggids voor het ontwikkelen en beheren van op microservices gebaseerde applicaties met behulp van het ABP Framework.", + "InstallAbpCliMessage": "Installeer de ABP CLI in een opdrachtregelterminal, als u deze nog niet eerder hebt geïnstalleerd:", + "Terminal": "Terminal", + "Copy": "Kopiëren", + "RunTheFollowingCommand": "Voer de volgende opdracht uit in een opdrachtregelterminal:", + "ChangeSolutionOptionsBelow": "Hieronder kunt u de oplossingsopties wijzigen.", + "MultiLayerApplication": "Meerlaags
Sollicitatie", + "MultiLayerApplicationExplanation1": "Creëert een volledig gelaagde oplossing op basis van Domain Driven Design-praktijken.", + "MultiLayerApplicationExplanation2": "Aanbevolen voor langetermijnprojecten die een onderhoudbare en uitbreidbare codebasis nodig hebben.", + "SingleLayerApplication": "Een laag
Sollicitatie", + "SingleLayerApplicationExplanation1": "Creëert een enkellaagse webapplicatie.", + "SingleLayerApplicationExplanation2": "Aanbevolen voor het bouwen van een applicatie met een eenvoudigere en gemakkelijk te begrijpen architectuur.", + "ApplicationModule": "Sollicitatie
Module", + "SeeTheScreenshot": "Zie de schermafbeelding", + "ApplicationModuleExplanation1": "Creëert een herbruikbare, volledig gelaagde applicatiemodule-oplossing.", + "ApplicationModuleExplanation2": "U kunt deze optie gebruiken om modules voor uw modulaire toepassing te maken.", + "Expert_": "Deskundige", + "Partner_": "Vennootschap", + "WebSite": "Website", + "Expert_Year": "Expertisejaar", + "CompanyInfo": "Bedrijfsinfo", + "Date": "Datum", + "WhoWeAre_Partner": "Wie we zijn", + "WhoWeAre_Expert": "Over mij", "CreateSolutionFolder": "Oplossingsmap maken", - "CreateSolutionFolderOption": "Geeft aan of het project zich in een nieuwe map in de uitvoermap bevindt of direct in de uitvoermap." + "CreateSolutionFolderOption": "Geeft aan of het project zich in een nieuwe map in de uitvoermap bevindt of direct in de uitvoermap.", + "BooksPageTitle": "ABP-boeken", + "PackageDetailPage_NuGetPackageInstallationOptions": "Er zijn drie manieren om het NuGet-pakket van {0} in uw project te installeren", + "PackageDetailPage_InstallingWithABPCLI": "1: Installeren met de ABP CLI", + "PackageDetailPage_InstallingWithABPCLIDescription1": "Als u de ABP CLI nog niet hebt geïnstalleerd, installeer deze dan eerst door de volgende opdracht uit te voeren in een opdrachtregelterminal", + "PackageDetailPage_InstallingWithABPCLIDescription2": "Nadat u de ABP CLI hebt geïnstalleerd, opent u een opdrachtregelterminal op de locatie van het project ( .csproj -bestand) dat u wilt installeren en voert u de volgende opdracht uit", + "PackageDetailPage_InstallingWithABPCLIDescription3": "Het voegt de pakketreferentie {0} toe aan uw project en de afhankelijkheid {1} aan uw moduleklasse.", + "PackageDetailPage_ManualInstallation": "2: Installeren met de Dotnet CLI", + "PackageDetailPage_ManualInstallationDescription1": "Voeg {0} NuGet-pakketreferentie toe aan uw project met behulp van uw IDE of door de volgende opdracht uit te voeren", + "PackageDetailPage_ManualInstallationDescription2": "Voeg vervolgens de afhankelijkheid {0} toe aan uw moduleklasse , zoals weergegeven in het volgende voorbeeld", + "PackageDetailPage_SeeDocumentation": "Raadpleeg de documentatie om te leren hoe u dit pakket in uw toepassingen kunt gebruiken.", + "PackageDetailPage_InstallingUsingPMC": "3: Installeren met de Package Manager Console", + "PackageDetailPage_InstallingUsingPMCDescription1": "Open de Package Manager Console in Visual Studio (Extra -> Nuget Package Manager -> Package Manager Console) en voer de volgende opdracht uit", + "UIOptions": "UI-opties", + "Testimonials": "Getuigenissen", + "CoolestCompaniesUseABPFramework": "Coolste bedrijven gebruiken ABP Framework", + "Index_Page_Testimonial_1": "ABP Framework is niet alleen een hulpmiddel, maar een katalysator die mijn groei als ontwikkelaar heeft versneld. Het heeft het voor mij mogelijk gemaakt om sneller dan ooit nieuwe functies te bouwen, die doen denken aan de ervaringen van andere gebruikers. Het uniforme coderingspatroon heeft mijn projecten gestroomlijnd, waardoor ik meer tijd heb om me te concentreren op het maken in plaats van op het oplossen van problemen. \n Ik zou zeggen dat het ABP Framework de hoeksteen is geweest van mijn vroege professionele reis. Het heeft mijn transitie vergemakkelijkt van een aspirant-ontwikkelaar naar een zelfverzekerde professional die klaar is om een stempel te drukken in de softwarewereld. Ik kijk uit naar de spannende projecten die mij te wachten staan, wetende dat ABP er zal zijn om mij te begeleiden. Het is meer dan alleen een product; het is een partner in succes.", + "Index_Page_Testimonial_2": "ABP Framework is niet alleen een raamwerk, het is ook een leidraad voor projectontwikkeling/management, omdat het DDD, GenericRepository, DI, Microservice, Modularity trainingen biedt. Zelfs als je het framework zelf niet gaat gebruiken, kun je jezelf ontwikkelen met docs.abp.io dat goed en professioneel is voorbereid. (OpenIddict, Redis, Quartz etc.) \n Omdat veel dingen vooraf zijn gebouwd, verkort dit de projectontwikkelingstijd aanzienlijk. (Zoals inlogpagina, afhandeling van uitzonderingen, gegevensfiltering-zaaien, auditlogboekregistratie, lokalisatie, automatische API-controller enz.) \n Als voorbeeld uit onze app heb ik Local Event Bus gebruikt voor voorraadbeheer. Ik kan dus orderbewegingen beheren door voorraadbeheer te schrijven. \n Het is geweldig om geen tijd te verliezen voor CreationTime, CreatorId. Ze worden automatisch gevuld.", + "VideosLoginAndRegisterMessage": "Je moet inloggen om video's te bekijken. Als u dat nog niet heeft gedaan, kunt u een account voor Watch aanmaken.", + "Filter": "Filter", + "VideoCourses": "Videocursussen" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/pl-PL.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/pl-PL.json index 04d3bdb07a..40615ec1af 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/pl-PL.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/pl-PL.json @@ -174,6 +174,8 @@ "CreateProjectWizard": "Ten kreator tworzy nowy projekt z szablonu startowego, który jest prawidłowo skonfigurowany do szybkiego startu projektu.", "TieredOption": "Tworzy rozwiązanie warstwowe, w którym warstwy interfejsu API sieci Web i HTTP są fizycznie oddzielone. Jeśli nie jest zaznaczone, tworzy rozwiązanie warstwowe, które jest mniej złożone i odpowiednie dla większości scenariuszy.", "SeparateIdentityServerOption": "Rozdziela stronę serwera na dwie aplikacje: pierwsza jest przeznaczona dla serwera tożsamości, a druga dla interfejsu API HTTP po stronie serwera.", + "SeparateAuthenticationServerOption": "Dzieli stronę serwera na dwie aplikacje: pierwsza przeznaczona jest dla serwera uwierzytelniania, a druga dla interfejsu API HTTP po stronie serwera.", + "ProgressiveWebApplicationOption": "Określa projekt jako progresywną aplikację internetową", "UseslatestPreVersion": "Używa najnowszej wersji przedpremierowej", "ReadTheDocumentation": "PrzeczytajDokumentację", "Documentation": "Dokumentacja", @@ -214,7 +216,11 @@ "SeeDocs": "Zobacz dokumenty", "None": "Nic", "Application": "Podanie", + "ApplicationExplanation": "Tworzy w pełni warstwowe rozwiązanie w oparciu o praktyki projektowania opartego na domenie. Zalecane do długoterminowych projektów, które wymagają łatwej w utrzymaniu i rozszerzalnej bazy kodu.", + "ApplicationNoLayer": "Aplikacja (jedna warstwa)", + "ApplicationNoLayerExplanation": "Tworzy jednowarstwową aplikację internetową. Zalecany do budowania aplikacji o prostszej i łatwej do zrozumienia architekturze.", "Module": "Moduł", + "ModuleExplanation": "Tworzy w pełni warstwowe moduły aplikacji wielokrotnego użytku. Możesz użyć tej opcji, aby utworzyć moduły dla swojej aplikacji modułowej.", "PackageName": "Nazwa pakietu", "LicenseURL": "URL licencji", "License": "Licencja", @@ -274,8 +280,166 @@ "FirstEdition": "Pierwsza edycja", "ThankYou": "Dziękuję Ci!", "CheckboxMandatory": "Musisz to sprawdzić, aby kontynuować!", + "UserInterface": "Interfejs użytkownika", + "APIGateway": "Brama API", + "Database": "Baza danych", + "Saas": "Saasa", + "OpenSourceWebApp": "Otwarte źródło
Aplikacja internetowa", + "Framework": "Struktura", + "AuditLoggingExplanation": "Automatycznie śledź wszystkie operacje i zmiany danych w swoim systemie.", + "AbpNewCommandExplanation": "Tworzy nowe rozwiązania wykorzystując szablony startowe ABP.", + "AbpAddModuleCommandExplanation": "Instaluje w rozwiązaniu gotowe moduły aplikacji", + "AbpUpdateCommandExplanation": "Automatycznie aktualizuje wszystkie pakiety NuGet i NPM powiązane z ABP w Twoim rozwiązaniu.", + "ExploreAllCLICommands": "Przeglądaj wszystkie polecenia CLI", + "ExploreDocumentationAndGuides": "Zapoznaj się z obszerną dokumentacją i przewodnikami.", + "Documentations": "Dokumentacja", + "Views": "Wyświetlenia", + "EnterYouEmailToGetNews": "Wpisz swój adres e-mail, aby otrzymywać najświeższe informacje na temat Ramy ABP", + "Tiered": "Wielopoziomowe", + "SeparateIdentityServer": "Oddzielny serwer tożsamości", + "SeparateAuthenticationServer": "Oddzielny serwer uwierzytelniający", + "ProgressiveWebApplication": "Progresywna aplikacja internetowa", + "Preview": "Zapowiedź", + "CreateANewSolution": "Utwórz nowe rozwiązanie", + "ABPFrameworkFeatures": "Funkcje struktury ABP", + "Commercial": "Handlowy", + "ThirdPartyTools": "Narzędzia stron trzecich", + "Back": "Z powrotem", + "Community": "Wspólnota", + "SeeMore": "Zobacz więcej", + "DetailsOfTheEBook": "Szczegóły e-booka", + "JoinOurMarketingNewsletter": "Dołącz do naszego newslettera marketingowego", + "FrameworkNewsletterConfirmationMessage": "Zgadzam się z Regulaminem i Polityką Prywatności .", + "GetYourFreeEBook": "Zdobądź darmowy e-book DDD", + "EverythingYouNeedToKnow": "Wszystko co musisz wiedzieć.", + "PreOrderNow": "Zamów teraz w przedsprzedaży", + "UITheming": "Motyw interfejsu użytkownika", + "UIThemingExplanation": "Twórz motywy i układy interfejsu użytkownika do wielokrotnego użytku lub użyj jednego z gotowych motywów interfejsu użytkownika.", + "DataFilteringExplanation2": "Automatycznie filtruj zapytania z bazy danych, aby łatwo wdrażać wzorce, takie jak usuwanie nietrwałe i wielodostępność.", + "NeedHelp": "Potrzebuję pomocy?", + "GiveYourProjectAName": "Nazwij swój projekt", + "SelectProjectType": "Wybierz typ projektu", + "SelectUIFramework": "Wybierz opcję Struktura interfejsu użytkownika", + "SelectDatabaseProvider": "Wybierz dostawcę bazy danych", + "SelectDatabaseManagementSystem": "Wybierz System zarządzania bazami danych", + "InstallingTheABPCLI": "Instalowanie interfejsu wiersza polecenia ABP", + "CreateYourProjectNow": "Utwórz swój projekt teraz", + "OrderOn": "Zamów na {0}", + "DownloadFreeDDDBook": "Pobierz bezpłatną książkę DDD", + "WhatIsABPFramework": "Czym są ramy ABP?", + "TenantDatabase": "Baza danych najemców {0}", + "SharedDatabase": "Wspólna baza danych", + "ConnectionResolver": "Narzędzie do rozpoznawania połączeń", + "TenantBasedDataFilter": "Filtr danych oparty na dzierżawcach", + "ApplicationCode": "Kod aplikacji", + "TenantResolution": "Uchwała najemcy", + "TenantUser": "Najemca {0} Użytkownik", + "CardTitle": "Tytuł karty", + "View": "Pogląd", + "Model": "Model", + "Email": "E-mail", + "Password": "Hasło", + "Address": "Adres", + "Gender": "Płeć", + "Male": "Mężczyzna", + "Female": "Kobieta", + "Submit": "Składać", + "Unspecified": "Nieokreślony", + "StaticFileMiddleware": "Oprogramowanie pośredniczące plików statycznych", + "RazorViewEngine": "Silnik widoku Razor", + "PhysicalFiles": "Pliki fizyczne (wwwroot)", + "EmbeddedFiles": "Pliki osadzone (DLL)", + "DynamicFiles": "Pliki dynamiczne (pamięć)", + "BuildSolutionsWithAbp": "Twórz łatwe w utrzymaniu rozwiązania .NET, postępując zgodnie z najlepszymi praktykami tworzenia oprogramowania przy użyciu ABP.", + "BuyOnAmazon": "Kup na Amazonie", + "BuyOnPackt": "Kup na Packt", + "Discounted": "Przeceniony", + "MasteringAbpFramework_Book_KeyFeatures": "Kluczowe cechy", + "MasteringAbpFramework_Book_Key_Features_Description_1": "Twórz solidne, łatwe w utrzymaniu, modułowe i skalowalne rozwiązania programowe przy użyciu ABP Framework.", + "MasteringAbpFramework_Book_Key_Features_Description_2": "Dowiedz się, jak wdrożyć zasady SOLID i projektowanie oparte na domenie w swoich aplikacjach internetowych.", + "MasteringAbpFramework_Book_Key_Features_Description_3": "Odkryj, jak ABP Framework przyspiesza cykl programowania poprzez automatyzację powtarzalnych zadań.", + "MasteringAbpFramework_Book_Description": "Opis książki", + "MasteringAbpFramework_Book_Description_Details_1": "ABP Framework to kompletna infrastruktura do tworzenia nowoczesnych aplikacji internetowych zgodnie z najlepszymi praktykami i konwencjami programistycznymi \n . Dzięki frameworkowi i ekosystemowi wysokiego poziomu ABP możesz wdrożyć \n zasadę „Nie powtarzaj się” (DRY) i skupić się na kodzie biznesowym.", + "MasteringAbpFramework_Book_Description_Details_2": "Napisana przez twórcę ABP Framework, ta książka pomoże ci w pełni zrozumieć framework \n i nowoczesne techniki tworzenia aplikacji internetowych. Dzięki wyjaśnieniom krok po kroku podstawowych koncepcji \n i praktycznym przykładom zrozumiesz wymagania nowoczesnego rozwiązania internetowego i zrozumiesz, w jaki sposób ABP \n Framework sprawia, że tworzenie własnych rozwiązań staje się przyjemne. Poznasz typowe wymagania dotyczące tworzenia aplikacji internetowych dla przedsiębiorstw \n i poznasz infrastrukturę zapewnianą przez firmę ABP. W książce \n poznasz najlepsze praktyki tworzenia oprogramowania służące do tworzenia łatwych w utrzymaniu i modułowych rozwiązań internetowych \n .", + "MasteringAbpFramework_Book_Description_Details_3": "Pod koniec tej książki będziesz w stanie stworzyć kompletne rozwiązanie internetowe, które jest łatwe w opracowywaniu, utrzymaniu i testowaniu \n .", + "MasteringAbpFramework_Book_WhatYouWillLearn": "Czego się nauczysz", + "MasteringAbpFramework_Book_What_You_Will_Learn_1": "Skonfiguruj środowisko programistyczne i rozpocznij pracę z ABP Framework.", + "MasteringAbpFramework_Book_What_You_Will_Learn_2": "Współpracuj z Entity Framework Core i MongoDB, aby opracować warstwę dostępu do danych.", + "MasteringAbpFramework_Book_What_You_Will_Learn_3": "Zrozumienie problemów przekrojowych i sposobu, w jaki ABP automatyzuje powtarzalne zadania.", + "MasteringAbpFramework_Book_What_You_Will_Learn_4": "Zajmij się wdrażaniem projektowania opartego na domenie za pomocą ABP Framework.", + "MasteringAbpFramework_Book_What_You_Will_Learn_5": "Twórz strony interfejsu użytkownika i składniki za pomocą ASP.NET Core MVC (Razor Pages) i Blazor.", + "MasteringAbpFramework_Book_What_You_Will_Learn_6": "Pracuj z wieloma dzierżawcami, aby tworzyć modułowe aplikacje internetowe.", + "MasteringAbpFramework_Book_What_You_Will_Learn_7": "Zrozum modułowość i twórz moduły aplikacji wielokrotnego użytku.", + "MasteringAbpFramework_Book_What_You_Will_Learn_8": "Pisz testy jednostkowe, integracyjne i UI przy użyciu ABP Framework.", + "MasteringAbpFramework_Book_WhoIsThisBookFor": "Dla kogo jest ta książka", + "MasteringAbpFramework_Book_WhoIsThisBookFor_Description": "Ta książka jest przeznaczona dla twórców stron internetowych, którzy chcą poznać architektury oprogramowania i najlepsze praktyki tworzenia łatwych w utrzymaniu rozwiązań internetowych \n przy użyciu technologii Microsoft i ABP Framework. Aby rozpocząć pracę z tą książką, niezbędna jest podstawowa znajomość języków C# \n i ASP.NET Core.", + "ComputersAndTechnology": "Komputery i technologia", + "BuildingMicroserviceSolutions": "Budowanie rozwiązań mikroserwisowych", + "MicroserviceBookPracticalGuide": "Ta książka jest podręcznikiem dotyczącym tworzenia aplikacji opartych na mikrousługach i zarządzania nimi przy użyciu środowiska ABP. Odwołuje się do przykładowej aplikacji referencyjnej .NET Microservice : eShopOnContainers i omawia podejście do projektowania architektury i implementacji przy użyciu ABP Framework. Pod koniec tej książki dowiesz się, jak ABP podchodzi do typowych złożoności mikrousług, takich jak autoryzacja, transakcje rozproszone, komunikacja między mikrousługami, wdrażanie itp.", + "IntroducingTheSolution": "Przedstawiamy rozwiązanie eShopOnAbp", + "RunningTheSolution": "Uruchamianie rozwiązania", + "UnderstandingTheAuthenticationSystem": "Zrozumienie systemu uwierzytelniania", + "ExploringTheApplications": "Odkrywanie zastosowań", + "UnderstandingTheAPIGateways": "Zrozumienie bram API", + "DevelopingTheMicroservices": "Rozwój Mikroserwisów", + "UnderstandingTheInfrastructure": "Zrozumienie infrastruktury", + "DiggingInTheUseCases": "Kopanie w przypadkach użycia", + "DeployingTheSolution": "Wdrażanie rozwiązania", + "ThisBookIsInDraftStageAndIsNotCompletedYet": "Książka jest w fazie roboczej i nie jest jeszcze ukończona.", + "Authors": "Autorski", + "MicroserviceEBook": "Książka elektroniczna o mikroserwisach", "SelectUITheme": "Wybierz motyw interfejsu", + "LeptonXLiteTheme": "Motyw LeptonX Lite", + "BasicTheme": "Podstawowy motyw", + "LeptonXLiteThemeInfo": "Nowoczesny i stylowy motyw interfejsu Bootstrap. Idealny, jeśli chcesz mieć motyw interfejsu użytkownika gotowy do produkcji. To jest najnowszy motyw i jest domyślny.", + "BasicThemeInfo": "Minimalistyczny motyw interfejsu użytkownika z prostymi kolorami i stylami Bootstrap. Idealny, jeśli zbudujesz własny motyw interfejsu użytkownika.", + "SeeDocumentation": "Zobacz dokumentację .", + "SeeFullScreen": "🖼️ Zobacz zrzut ekranu", + "BuildingMicroserviceSolutionsShortDescription": "Ta książka jest podręcznikiem dotyczącym tworzenia aplikacji opartych na mikrousługach i zarządzania nimi przy użyciu środowiska ABP.", + "InstallAbpCliMessage": "Zainstaluj interfejs wiersza polecenia ABP w terminalu wiersza poleceń, jeśli nie instalowałeś go wcześniej:", + "Terminal": "Terminal", + "Copy": "Kopiuj", + "RunTheFollowingCommand": "Uruchom następujące polecenie w terminalu wiersza poleceń:", + "ChangeSolutionOptionsBelow": "Poniżej możesz zmienić opcje rozwiązania.", + "MultiLayerApplication": "Wielowarstwowe
Aplikacja", + "MultiLayerApplicationExplanation1": "Tworzy w pełni warstwowe rozwiązanie w oparciu o praktyki projektowania opartego na domenie.", + "MultiLayerApplicationExplanation2": "Zalecane do długoterminowych projektów, które wymagają łatwej w utrzymaniu i rozszerzalnej bazy kodu.", + "SingleLayerApplication": "Pojedyncza warstwa
Aplikacja", + "SingleLayerApplicationExplanation1": "Tworzy jednowarstwową aplikację internetową.", + "SingleLayerApplicationExplanation2": "Zalecany do budowania aplikacji o prostszej i łatwej do zrozumienia architekturze.", + "ApplicationModule": "Aplikacja
Moduł", + "SeeTheScreenshot": "Zobacz zrzut ekranu", + "ApplicationModuleExplanation1": "Tworzy w pełni warstwowe moduły aplikacji wielokrotnego użytku.", + "ApplicationModuleExplanation2": "Możesz użyć tej opcji, aby utworzyć moduły dla swojej aplikacji modułowej.", + "Expert_": "Ekspert", + "Partner_": "Współpraca", + "WebSite": "Strona internetowa", + "Expert_Year": "Rok wiedzy specjalistycznej", + "CompanyInfo": "Informacje o firmie", + "Date": "Data", + "WhoWeAre_Partner": "Kim jesteśmy", + "WhoWeAre_Expert": "O mnie", "CreateSolutionFolder": "Utwórz folder rozwiązania", - "CreateSolutionFolderOption": "Określa, czy projekt znajdzie się w nowym folderze w folderze wyjściowym, czy bezpośrednio w folderze wyjściowym." + "CreateSolutionFolderOption": "Określa, czy projekt znajdzie się w nowym folderze w folderze wyjściowym, czy bezpośrednio w folderze wyjściowym.", + "BooksPageTitle": "Książki ABP", + "PackageDetailPage_NuGetPackageInstallationOptions": "Istnieją trzy sposoby zainstalowania pakietu NuGet {0} w projekcie", + "PackageDetailPage_InstallingWithABPCLI": "1: Instalacja za pomocą interfejsu ABP CLI", + "PackageDetailPage_InstallingWithABPCLIDescription1": "Jeśli nie zainstalowałeś interfejsu ABP CLI , najpierw zainstaluj, wykonując następujące polecenie w terminalu wiersza poleceń", + "PackageDetailPage_InstallingWithABPCLIDescription2": "Po zainstalowaniu interfejsu wiersza polecenia ABP otwórz terminal wiersza poleceń w lokalizacji projektu (plik .csproj ), w którym chcesz go zainstalować, i wykonaj następujące polecenie", + "PackageDetailPage_InstallingWithABPCLIDescription3": "Doda odwołanie do pakietu {0} do twojego projektu i zależność {1} do klasy modułu.", + "PackageDetailPage_ManualInstallation": "2: Instalacja za pomocą interfejsu wiersza polecenia Dotnet", + "PackageDetailPage_ManualInstallationDescription1": "Dodaj odwołanie do pakietu NuGet {0} do swojego projektu, używając środowiska IDE lub wykonując następujące polecenie", + "PackageDetailPage_ManualInstallationDescription2": "Następnie dodaj zależność {0} do klasy modułu , jak pokazano w poniższym przykładzie", + "PackageDetailPage_SeeDocumentation": "Zapoznaj się z dokumentacją, aby dowiedzieć się, jak używać tego pakietu w swoich aplikacjach.", + "PackageDetailPage_InstallingUsingPMC": "3: Instalacja za pomocą konsoli Menedżera pakietów", + "PackageDetailPage_InstallingUsingPMCDescription1": "Otwórz konsolę Menedżera pakietów w Visual Studio (Narzędzia -> Menedżer pakietów Nuget -> Konsola menedżera pakietów) i wykonaj następujące polecenie", + "UIOptions": "Opcje interfejsu", + "Testimonials": "Referencje", + "CoolestCompaniesUseABPFramework": "Najfajniejsze firmy korzystają z platformy ABP", + "Index_Page_Testimonial_1": "ABP Framework to nie tylko narzędzie, ale katalizator, który przyspieszył mój rozwój jako programisty. Dzięki temu mogłem tworzyć nowe funkcje szybciej niż kiedykolwiek wcześniej, przypominając doświadczenia innych użytkowników. Ujednolicony wzorzec kodowania usprawnił moje projekty, dając mi więcej czasu na skupienie się na tworzeniu, a nie na rozwiązywaniu problemów. \n Powiedziałbym, że struktura ABP była kamieniem węgielnym mojej wczesnej ścieżki zawodowej. Ułatwiło mi to przejście od początkującego programisty do pewnego siebie profesjonalisty, gotowego zostawić ślad w świecie oprogramowania. Nie mogę się doczekać ekscytujących projektów, które na mnie czekają, wiedząc, że ABP będzie mnie wspierać. To coś więcej niż tylko produkt; to partner w sukcesie.", + "Index_Page_Testimonial_2": "ABP Framework to nie tylko framework, to także wytyczne dotyczące opracowywania/zarządzania projektami, ponieważ zapewnia szkolenia z DDD, GenericRepository, DI, Microservice, Modularity. Nawet jeśli nie będziesz korzystał z samego frameworka, możesz rozwijać się dzięki dobrze i profesjonalnie przygotowanemu docs.abp.io. (OpenIddict, Redis, Quartz itp.) \n Ponieważ wiele rzeczy jest gotowych, znacznie skraca to czas opracowywania projektu. (Takie jak strona logowania, obsługa wyjątków, filtrowanie danych, rejestrowanie audytu, lokalizacja, automatyczny kontroler API itp.) \n Jako przykład z naszej aplikacji użyłem lokalnej magistrali zdarzeń do kontroli zapasów. Mogę więc zarządzać ruchami zamówień, pisząc moduł obsługi zapasów. \n Wspaniale jest nie tracić czasu na CreationTime, CreatorId. Są one wypełniane automatycznie.", + "VideosLoginAndRegisterMessage": "Aby oglądać filmy, musisz się zalogować. Jeśli jeszcze tego nie zrobiłeś, możesz utworzyć konto na zegarku.", + "Filter": "Filtr", + "VideoCourses": "Kursy wideo" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/pt-BR.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/pt-BR.json index 7fd68de3be..ccc57bc6b6 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/pt-BR.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/pt-BR.json @@ -174,6 +174,8 @@ "CreateProjectWizard": "Este assistente cria um novo projeto a partir do modelo de inicialização que está configurado corretamente para iniciar o seu projeto.", "TieredOption": "Cria uma solução em camadas em que as camadas da API Web e Http são fisicamente separadas. Se não marcado, cria uma solução em camadas que é menos complexa e adequada para a maioria dos cenários.", "SeparateIdentityServerOption": "Separa o lado do servidor em dois aplicativos: o primeiro é para o servidor de identidade e o segundo é para a API HTTP do lado do servidor.", + "SeparateAuthenticationServerOption": "Separa o lado do servidor em dois aplicativos: o primeiro é para o servidor de autenticação e o segundo é para a API HTTP do lado do servidor.", + "ProgressiveWebApplicationOption": "Especifica o projeto como Progressive Web Application", "UseslatestPreVersion": "Usa a última versão de pré-lançamento", "ReadTheDocumentation": " Leia a documentação ", "Documentation": "Documentação", @@ -214,7 +216,11 @@ "SeeDocs": "Ver Docs", "None": "Nenhum", "Application": "Aplicativo", + "ApplicationExplanation": "Cria uma solução totalmente em camadas baseada em práticas de Domain Driven Design. Recomendado para projetos de longo prazo que precisam de uma base de código extensível e sustentável.", + "ApplicationNoLayer": "Aplicação (camada única)", + "ApplicationNoLayerExplanation": "Cria um aplicativo da web de camada única. Recomendado para construção de uma aplicação com arquitetura mais simples e de fácil entendimento.", "Module": "Módulo", + "ModuleExplanation": "Cria uma solução de módulo de aplicativo reutilizável e totalmente em camadas. Você pode usar esta opção para criar módulos para seu aplicativo modular.", "PackageName": "Nome do pacote", "LicenseURL": "URL de licença", "License": "Licença", @@ -274,8 +280,166 @@ "FirstEdition": "Primeira edição", "ThankYou": "Obrigado!", "CheckboxMandatory": "Você precisa verificar isso para continuar!", + "UserInterface": "Interface de usuário", + "APIGateway": "Gateway de API", + "Database": "Base de dados", + "Saas": "Saas", + "OpenSourceWebApp": "Código aberto
aplicação web", + "Framework": "Estrutura", + "AuditLoggingExplanation": "Rastreie automaticamente todas as operações e alterações de dados em seu sistema.", + "AbpNewCommandExplanation": "Cria novas soluções usando os modelos de inicialização da ABP.", + "AbpAddModuleCommandExplanation": "Instala módulos de aplicativos pré-construídos em sua solução", + "AbpUpdateCommandExplanation": "Atualiza automaticamente todos os pacotes NuGet e NPM relacionados ao ABP em sua solução.", + "ExploreAllCLICommands": "Explore todos os comandos CLI", + "ExploreDocumentationAndGuides": "Explore a documentação e os guias abrangentes.", + "Documentations": "Documentação", + "Views": "Visualizações", + "EnterYouEmailToGetNews": "Digite seu e-mail para receber as últimas notícias sobre o Framework ABP", + "Tiered": "Em camadas", + "SeparateIdentityServer": "Servidor de identidade separado", + "SeparateAuthenticationServer": "Servidor de autenticação separado", + "ProgressiveWebApplication": "Aplicativo Web Progressivo", + "Preview": "Visualização", + "CreateANewSolution": "Crie uma nova solução", + "ABPFrameworkFeatures": "Recursos da estrutura ABP", + "Commercial": "Comercial", + "ThirdPartyTools": "Ferramentas de terceiros", + "Back": "Voltar", + "Community": "Comunidade", + "SeeMore": "Ver mais", + "DetailsOfTheEBook": "Detalhes do e-book", + "JoinOurMarketingNewsletter": "Junte-se ao nosso boletim informativo de marketing", + "FrameworkNewsletterConfirmationMessage": "Concordo com os Termos e Condições e Política de Privacidade .", + "GetYourFreeEBook": "Obtenha seu e-book DDD grátis", + "EverythingYouNeedToKnow": "Tudo o que você precisa saber.", + "PreOrderNow": "Reserve agora", + "UITheming": "Tema da IU", + "UIThemingExplanation": "Crie temas e layouts de UI reutilizáveis ou use um dos temas de UI pré-construídos.", + "DataFilteringExplanation2": "Filtre automaticamente as consultas do banco de dados para implementar facilmente padrões como exclusão reversível e multilocação.", + "NeedHelp": "Preciso de ajuda?", + "GiveYourProjectAName": "Dê um nome ao seu projeto", + "SelectProjectType": "Selecione o tipo de projeto", + "SelectUIFramework": "Selecione a estrutura da interface do usuário", + "SelectDatabaseProvider": "Selecione o provedor de banco de dados", + "SelectDatabaseManagementSystem": "Selecione o sistema de gerenciamento de banco de dados", + "InstallingTheABPCLI": "Instalando a CLI do ABP", + "CreateYourProjectNow": "Crie seu projeto agora", + "OrderOn": "Encomende em {0}", + "DownloadFreeDDDBook": "Baixe grátis o livro DDD", + "WhatIsABPFramework": "O que é a estrutura ABP?", + "TenantDatabase": "Banco de dados de locatário {0}", + "SharedDatabase": "Banco de dados compartilhado", + "ConnectionResolver": "Resolvedor de conexão", + "TenantBasedDataFilter": "Filtro de dados baseado em locatário", + "ApplicationCode": "Código do aplicativo", + "TenantResolution": "Resolução do inquilino", + "TenantUser": "Locatário {0} Usuário", + "CardTitle": "Título do cartão", + "View": "Visualizar", + "Model": "Modelo", + "Email": "E-mail", + "Password": "Senha", + "Address": "Endereço", + "Gender": "Gênero", + "Male": "Macho", + "Female": "Fêmea", + "Submit": "Enviar", + "Unspecified": "Não especificado", + "StaticFileMiddleware": "Middleware de arquivo estático", + "RazorViewEngine": "Motor de visualização Razor", + "PhysicalFiles": "Arquivos físicos (wwwroot)", + "EmbeddedFiles": "Arquivos incorporados (DLL)", + "DynamicFiles": "Arquivos dinâmicos (memória)", + "BuildSolutionsWithAbp": "Crie soluções .NET sustentáveis seguindo as práticas recomendadas de desenvolvimento de software usando ABP.", + "BuyOnAmazon": "Compre na Amazon", + "BuyOnPackt": "Compre no Packt", + "Discounted": "Desconto", + "MasteringAbpFramework_Book_KeyFeatures": "Características principais", + "MasteringAbpFramework_Book_Key_Features_Description_1": "Crie soluções de software robustas, de fácil manutenção, modulares e escaláveis usando o ABP Framework.", + "MasteringAbpFramework_Book_Key_Features_Description_2": "Aprenda como implementar princípios SOLID e design orientado a domínio em seus aplicativos da web.", + "MasteringAbpFramework_Book_Key_Features_Description_3": "Descubra como o ABP Framework acelera seu ciclo de desenvolvimento automatizando tarefas repetitivas.", + "MasteringAbpFramework_Book_Description": "Descrição do livro", + "MasteringAbpFramework_Book_Description_Details_1": "ABP Framework é uma infraestrutura completa para a criação de aplicativos web modernos, seguindo as melhores práticas e convenções de desenvolvimento de software \n . Com a estrutura e ecossistema de alto nível da ABP, você pode \n implementar o princípio Don't Repeat Yourself (DRY) e focar em seu código de negócios.", + "MasteringAbpFramework_Book_Description_Details_2": "Escrito pelo criador do ABP Framework, este livro o ajudará a obter uma compreensão completa do framework \n e das técnicas modernas de desenvolvimento de aplicativos da web. Com explicações passo a passo dos conceitos essenciais \n e exemplos práticos, você entenderá os requisitos de uma solução web moderna e como o ABP \n Framework torna agradável o desenvolvimento de suas próprias soluções. Você descobrirá os requisitos comuns do desenvolvimento de aplicativos web corporativos \n e explorará a infraestrutura fornecida pela ABP. Ao longo do livro \n , você conhecerá as melhores práticas de desenvolvimento de software para construir soluções web \n modulares e sustentáveis.", + "MasteringAbpFramework_Book_Description_Details_3": "Ao final deste livro, você será capaz de criar uma solução web completa que seja fácil de desenvolver, manter e testar \n .", + "MasteringAbpFramework_Book_WhatYouWillLearn": "O que você aprenderá", + "MasteringAbpFramework_Book_What_You_Will_Learn_1": "Configure o ambiente de desenvolvimento e comece a usar o ABP Framework.", + "MasteringAbpFramework_Book_What_You_Will_Learn_2": "Trabalhe com Entity Framework Core e MongoDB para desenvolver sua camada de acesso a dados.", + "MasteringAbpFramework_Book_What_You_Will_Learn_3": "Entenda as preocupações transversais e como o ABP automatiza tarefas repetitivas.", + "MasteringAbpFramework_Book_What_You_Will_Learn_4": "Aprenda a implementar o design orientado a domínio com o ABP Framework.", + "MasteringAbpFramework_Book_What_You_Will_Learn_5": "Crie páginas e componentes de UI com ASP.NET Core MVC (Razor Pages) e Blazor.", + "MasteringAbpFramework_Book_What_You_Will_Learn_6": "Trabalhe com multilocação para criar aplicativos web modulares.", + "MasteringAbpFramework_Book_What_You_Will_Learn_7": "Entenda a modularidade e crie módulos de aplicativos reutilizáveis.", + "MasteringAbpFramework_Book_What_You_Will_Learn_8": "Escreva testes de unidade, integração e UI usando o ABP Framework.", + "MasteringAbpFramework_Book_WhoIsThisBookFor": "Para quem é este livro", + "MasteringAbpFramework_Book_WhoIsThisBookFor_Description": "Este livro é para desenvolvedores web que desejam aprender arquiteturas de software e práticas recomendadas para construir soluções baseadas na web \n sustentáveis usando tecnologias Microsoft e ABP Framework. É necessário conhecimento básico de C# \n e ASP.NET Core para começar a ler este livro.", + "ComputersAndTechnology": "Computadores e Tecnologia", + "BuildingMicroserviceSolutions": "Construindo soluções de microsserviços", + "MicroserviceBookPracticalGuide": "Este livro é um guia de referência para desenvolver e gerenciar aplicativos baseados em microsserviços usando o ABP Framework. Ele faz referência ao aplicativo de referência de amostra de microsserviço .NET : eShopOnContainers e discute o design arquitetônico e as abordagens de implementação usando a estrutura ABP. Ao final deste livro, você aprenderá como a ABP aborda as complexidades comuns de microsserviços, como autorização, transações distribuídas, comunicações entre microsserviços, implantação, etc.", + "IntroducingTheSolution": "Apresentando a solução eShopOnAbp", + "RunningTheSolution": "Executando a solução", + "UnderstandingTheAuthenticationSystem": "Compreendendo o sistema de autenticação", + "ExploringTheApplications": "Explorando os aplicativos", + "UnderstandingTheAPIGateways": "Compreendendo os gateways de API", + "DevelopingTheMicroservices": "Desenvolvendo os microsserviços", + "UnderstandingTheInfrastructure": "Compreendendo a infraestrutura", + "DiggingInTheUseCases": "Investigando os casos de uso", + "DeployingTheSolution": "Implantando a solução", + "ThisBookIsInDraftStageAndIsNotCompletedYet": "Este livro está em fase de rascunho e ainda não foi concluído.", + "Authors": "Autores", + "MicroserviceEBook": "E-book de microsserviços", "SelectUITheme": "Selecione o tema da interface do usuário", + "LeptonXLiteTheme": "Tema LeptonX Lite", + "BasicTheme": "Tema Básico", + "LeptonXLiteThemeInfo": "Um tema Bootstrap UI moderno e elegante. Ideal se você deseja ter um tema de UI pronto para produção. Este é o tema mais recente e é o padrão.", + "BasicThemeInfo": "Tema de UI minimalista com cores e estilos simples do Bootstrap. Ideal se você criar seu próprio tema de UI.", + "SeeDocumentation": "Veja a documentação .", + "SeeFullScreen": "🖼️ Veja a captura de tela", + "BuildingMicroserviceSolutionsShortDescription": "Este livro é um guia de referência para desenvolver e gerenciar aplicativos baseados em microsserviços usando o ABP Framework.", + "InstallAbpCliMessage": "Instale a CLI do ABP em um terminal de linha de comando, caso ainda não tenha instalado:", + "Terminal": "terminal", + "Copy": "cópia de", + "RunTheFollowingCommand": "Execute o seguinte comando em um terminal de linha de comando:", + "ChangeSolutionOptionsBelow": "Você pode alterar as opções de solução abaixo.", + "MultiLayerApplication": "Multicamada
Aplicativo", + "MultiLayerApplicationExplanation1": "Cria uma solução totalmente em camadas baseada em práticas de Domain Driven Design.", + "MultiLayerApplicationExplanation2": "Recomendado para projetos de longo prazo que precisam de uma base de código extensível e sustentável.", + "SingleLayerApplication": "Camada única
Aplicativo", + "SingleLayerApplicationExplanation1": "Cria um aplicativo da web de camada única.", + "SingleLayerApplicationExplanation2": "Recomendado para construção de uma aplicação com arquitetura mais simples e de fácil entendimento.", + "ApplicationModule": "Aplicativo
Módulo", + "SeeTheScreenshot": "Veja a captura de tela", + "ApplicationModuleExplanation1": "Cria uma solução de módulo de aplicativo reutilizável e totalmente em camadas.", + "ApplicationModuleExplanation2": "Você pode usar esta opção para criar módulos para seu aplicativo modular.", + "Expert_": "Especialista", + "Partner_": "Parceria", + "WebSite": "Local na rede Internet", + "Expert_Year": "Ano de especialização", + "CompanyInfo": "Informação da companhia", + "Date": "Data", + "WhoWeAre_Partner": "Quem nós somos", + "WhoWeAre_Expert": "Sobre mim", "CreateSolutionFolder": "Criar Pasta de Solução", - "CreateSolutionFolderOption": "Especifica se o projeto estará em uma nova pasta na pasta de saída ou diretamente na pasta de saída." + "CreateSolutionFolderOption": "Especifica se o projeto estará em uma nova pasta na pasta de saída ou diretamente na pasta de saída.", + "BooksPageTitle": "Livros ABP", + "PackageDetailPage_NuGetPackageInstallationOptions": "Há três maneiras de instalar o {0} pacote NuGet em seu projeto", + "PackageDetailPage_InstallingWithABPCLI": "1: Instalando com o ABP CLI", + "PackageDetailPage_InstallingWithABPCLIDescription1": "Se você não instalou o ABP CLI , primeiro instale executando o seguinte comando em um terminal de linha de comando", + "PackageDetailPage_InstallingWithABPCLIDescription2": "Depois de instalar o ABP CLI, abra um terminal de linha de comando no local do projeto (arquivo .csproj ) que deseja instalá-lo e execute o seguinte comando", + "PackageDetailPage_InstallingWithABPCLIDescription3": "Ele adicionará a referência do pacote {0} ao seu projeto e a dependência {1} à classe do seu módulo.", + "PackageDetailPage_ManualInstallation": "2: Instalando com a CLI Dotnet", + "PackageDetailPage_ManualInstallationDescription1": "Adicione {0} referência de pacote NuGet ao seu projeto usando seu IDE ou executando o seguinte comando", + "PackageDetailPage_ManualInstallationDescription2": "Em seguida, adicione a dependência {0} à classe do módulo , conforme mostrado no exemplo a seguir", + "PackageDetailPage_SeeDocumentation": "Consulte a documentação para saber como usar este pacote em suas aplicações.", + "PackageDetailPage_InstallingUsingPMC": "3: Instalando com o Console do Gerenciador de Pacotes", + "PackageDetailPage_InstallingUsingPMCDescription1": "Abra o Console do Gerenciador de Pacotes no Visual Studio (Ferramentas -> Gerenciador de Pacotes Nuget -> Console do Gerenciador de Pacotes) e execute o seguinte comando", + "UIOptions": "Opções de IU", + "Testimonials": "Depoimentos", + "CoolestCompaniesUseABPFramework": "As empresas mais legais usam a estrutura ABP", + "Index_Page_Testimonial_1": "O ABP Framework não é apenas uma ferramenta, mas um catalisador que acelerou meu crescimento como desenvolvedor. Isso me permitiu criar novos recursos com mais rapidez do que nunca, lembrando as experiências de outros usuários. O padrão de codificação unificado simplificou meus projetos, dando-me mais tempo para me concentrar na criação em vez de na solução de problemas. \n Eu diria que o ABP Framework foi a pedra angular da minha jornada profissional inicial. Isso facilitou minha transição de aspirante a desenvolvedor para um profissional confiante, pronto para deixar uma marca no mundo do software. Estou ansioso pelos projetos emocionantes que me aguardam, sabendo que a ABP estará lá para me orientar. É mais do que apenas um produto; é um parceiro de sucesso.", + "Index_Page_Testimonial_2": "O ABP Framework não é apenas um framework, é também uma orientação para desenvolvimento/gerenciamento de projetos, pois fornece treinamentos em DDD, GenericRepository, DI, Microservice, Modularidade. Mesmo que você não vá usar o framework em si, você pode se desenvolver com o docs.abp.io que está bem preparado e profissionalmente. (OpenIddict, Redis, Quartz etc.) \n Como muitas coisas são pré-construídas, ele reduz significativamente o tempo de desenvolvimento do projeto. (Como página de login, tratamento de exceções, propagação de filtragem de dados, registro de auditoria, localização, controlador automático de API, etc.) \n Como exemplo de nosso aplicativo, usei o Local Event Bus para controle de estoque. Portanto, sou capaz de gerenciar os movimentos dos pedidos escrevendo o gerenciador de estoque. \n É maravilhoso não perder tempo com CreationTime, CreatorId. Eles são preenchidos automaticamente.", + "VideosLoginAndRegisterMessage": "Você deve fazer login para assistir aos vídeos. Você pode criar uma conta para assistir, caso ainda não o tenha feito.", + "Filter": "Filtro", + "VideoCourses": "Cursos em vídeo" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/ro-RO.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/ro-RO.json index f501a0f6ef..86a9e9049d 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/ro-RO.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/ro-RO.json @@ -174,6 +174,8 @@ "CreateProjectWizard": "Acest formular crează un proiect nou începând cu şablonul de pornire, care este configurat corespunzător pentru a începe direct cu proiectul.", "TieredOption": "Crează o soluţie pe mai multe niveluri în care straturile Web API şi HTTP sunt separate fizic. Dacă nu este bifată, creează o soluţie stratificată mai puţin complexă şi potrivită pentru majoritatea scenariilor.", "SeparateIdentityServerOption": "Separă partea serverului în două aplicaţii: prima este pentru serverul de identitate, iar a doua pentru serverul dumneavoastră de HTTP API.", + "SeparateAuthenticationServerOption": "Separă partea de server în două aplicații: prima este pentru serverul de autentificare și a doua este pentru API-ul HTTP din partea serverului.", + "ProgressiveWebApplicationOption": "Specifică proiectul ca aplicație web progresivă", "UseslatestPreVersion": "Foloseşte ultima versiune pre-lansare", "ReadTheDocumentation": "Citiţi Documentaţia", "Documentation": "Documentaţie", @@ -214,7 +216,11 @@ "SeeDocs": "Consultaţi documentele", "None": "Niciuna", "Application": "Aplicaţie", + "ApplicationExplanation": "Creează o soluție complet stratificată bazată pe practicile de proiectare bazată pe domenii. Recomandat pentru proiecte pe termen lung care au nevoie de o bază de cod care poate fi întreținută și extensibilă.", + "ApplicationNoLayer": "Aplicare (un singur strat)", + "ApplicationNoLayerExplanation": "Creează o aplicație web cu un singur strat. Recomandat pentru construirea unei aplicații cu o arhitectură mai simplă și ușor de înțeles.", "Module": "Module", + "ModuleExplanation": "Creează o soluție de modul de aplicație reutilizabilă, complet stratificată. Puteți utiliza această opțiune pentru a crea module pentru aplicația dvs. modulară.", "PackageName": "Nume pachet", "LicenseURL": "URL licenţă", "License": "Licenţă", @@ -272,10 +278,168 @@ "DDDBookEmailBody": "Vă mulţumim.
Pentru a descărca cartea, click aici.", "SubscribeToNewsletter": "Abonaţi-vă la newsletter pentru a primi informaţii despre evnimentele din platforma ABP.IO, precum noi lansări, articole, oferte şi multe altele.", "FirstEdition": "Prima ediţie", - "ThankYou": "Vă mulţumim!", - "CheckboxMandatory": "Trebuie să bifaţi asta pentru a continua!", + "ThankYou": "Vă mulţumim!", + "CheckboxMandatory": "Trebuie să bifaţi asta pentru a continua!", + "UserInterface": "Interfața cu utilizatorul", + "APIGateway": "Gateway API", + "Database": "Bază de date", + "Saas": "Saas", + "OpenSourceWebApp": "Sursa deschisa
aplicatie web", + "Framework": "Cadru", + "AuditLoggingExplanation": "Urmăriți automat toate operațiunile și modificările datelor din sistemul dvs.", + "AbpNewCommandExplanation": "Creează soluții noi folosind șabloanele de pornire ABP.", + "AbpAddModuleCommandExplanation": "Instalează module de aplicație prefabricate în soluția dvs", + "AbpUpdateCommandExplanation": "Actualizează automat toate pachetele NuGet și NPM legate de ABP din soluția dvs.", + "ExploreAllCLICommands": "Explorați toate comenzile CLI", + "ExploreDocumentationAndGuides": "Explorați documentația și ghidurile cuprinzătoare.", + "Documentations": "Documentație", + "Views": "Vizualizări", + "EnterYouEmailToGetNews": "Introduceți e-mailul pentru a primi cele mai recente știri despre Cadrul ABP", + "Tiered": "Nivelate", + "SeparateIdentityServer": "Server de identitate separat", + "SeparateAuthenticationServer": "Server de autentificare separat", + "ProgressiveWebApplication": "Aplicație web progresivă", + "Preview": "previzualizare", + "CreateANewSolution": "Creați o nouă soluție", + "ABPFrameworkFeatures": "Caracteristicile cadrului ABP", + "Commercial": "Comercial", + "ThirdPartyTools": "Instrumente de la terți", + "Back": "Înapoi", + "Community": "Comunitate", + "SeeMore": "Vezi mai mult", + "DetailsOfTheEBook": "Detalii despre E-Book", + "JoinOurMarketingNewsletter": "Alăturați-vă buletinului nostru informativ de marketing", + "FrameworkNewsletterConfirmationMessage": "Sunt de acord cu Termenii și condițiile și cu Politica de confidențialitate .", + "GetYourFreeEBook": "Obțineți cartea electronică DDD gratuită", + "EverythingYouNeedToKnow": "Tot ce trebuie să știi.", + "PreOrderNow": "Comandă în avans acum", + "UITheming": "Tematica UI", + "UIThemingExplanation": "Creați teme și aspecte reutilizabile pentru interfața de utilizare sau utilizați una dintre temele de interfață de utilizare pre-construite.", + "DataFilteringExplanation2": "Filtrați automat interogările din baza de date pentru a implementa cu ușurință modele, cum ar fi ștergerea soft și multi-chiriere.", + "NeedHelp": "Nevoie de ajutor?", + "GiveYourProjectAName": "Dați un nume proiectului dvs", + "SelectProjectType": "Selectați tipul de proiect", + "SelectUIFramework": "Selectați UI Framework", + "SelectDatabaseProvider": "Selectați Furnizor de baze de date", + "SelectDatabaseManagementSystem": "Selectați Sistemul de gestionare a bazelor de date", + "InstallingTheABPCLI": "Instalarea ABP CLI", + "CreateYourProjectNow": "Creați-vă proiectul acum", + "OrderOn": "Comanda pe {0}", + "DownloadFreeDDDBook": "Descărcați cartea DDD gratuită", + "WhatIsABPFramework": "Ce este Cadrul ABP?", + "TenantDatabase": "Baza de date pentru locatar {0}", + "SharedDatabase": "Baza de date partajată", + "ConnectionResolver": "Rezolvator de conexiune", + "TenantBasedDataFilter": "Filtru de date bazat pe chiriași", + "ApplicationCode": "Cod aplicație", + "TenantResolution": "Rezoluția locatarului", + "TenantUser": "Utilizator locatar {0}", + "CardTitle": "Titlul cardului", + "View": "Vedere", + "Model": "Model", + "Email": "E-mail", + "Password": "Parola", + "Address": "Abordare", + "Gender": "Gen", + "Male": "Masculin", + "Female": "Femeie", + "Submit": "Trimite", + "Unspecified": "Nespecificat", + "StaticFileMiddleware": "Fișier static Middleware", + "RazorViewEngine": "Razor View Engine", + "PhysicalFiles": "Fișiere fizice (wwwroot)", + "EmbeddedFiles": "Fișiere încorporate (DLL)", + "DynamicFiles": "Fișiere dinamice (memorie)", + "BuildSolutionsWithAbp": "Construiți soluții .NET care pot fi întreținute urmând cele mai bune practici de dezvoltare software folosind ABP.", + "BuyOnAmazon": "Cumpărați pe Amazon", + "BuyOnPackt": "Cumpărați pe Packt", + "Discounted": "Reducere", + "MasteringAbpFramework_Book_KeyFeatures": "Caracteristici cheie", + "MasteringAbpFramework_Book_Key_Features_Description_1": "Creați soluții software robuste, mentenabile, modulare și scalabile folosind ABP Framework.", + "MasteringAbpFramework_Book_Key_Features_Description_2": "Aflați cum să implementați principiile SOLID și designul bazat pe domeniu în aplicațiile dvs. web.", + "MasteringAbpFramework_Book_Key_Features_Description_3": "Descoperiți cum ABP Framework vă accelerează ciclul de dezvoltare prin automatizarea sarcinilor repetitive.", + "MasteringAbpFramework_Book_Description": "Descrierea cărții", + "MasteringAbpFramework_Book_Description_Details_1": "ABP Framework este o infrastructură completă pentru crearea de aplicații web moderne, urmând cele mai bune practici și convenții de dezvoltare a software-ului \n . Cu cadrul și ecosistemul la nivel înalt ABP, puteți să implementați principiul Don’t Repeat Yourself (DRY) \n și să vă concentrați pe codul dvs. de afaceri.", + "MasteringAbpFramework_Book_Description_Details_2": "Scrisă de creatorul ABP Framework, această carte vă va ajuta să obțineți o înțelegere completă a cadrului \n și a tehnicilor moderne de dezvoltare a aplicațiilor web. Cu explicații pas cu pas ale conceptelor esențiale \n și exemple practice, veți înțelege cerințele unei soluții web moderne și modul în care ABP \n Framework face plăcută dezvoltarea propriilor soluții. Veți descoperi cerințele comune ale dezvoltării aplicațiilor web pentru întreprinderi \n și veți explora infrastructura oferită de ABP. De-a lungul cărții \n , vă veți familiariza cu cele mai bune practici de dezvoltare software pentru construirea de soluții web \n modulare și mentenabile.", + "MasteringAbpFramework_Book_Description_Details_3": "Până la sfârșitul acestei cărți, veți putea crea o soluție web completă, ușor de dezvoltat, întreținut și testat \n .", + "MasteringAbpFramework_Book_WhatYouWillLearn": "Ce vei invata", + "MasteringAbpFramework_Book_What_You_Will_Learn_1": "Configurați mediul de dezvoltare și începeți cu ABP Framework.", + "MasteringAbpFramework_Book_What_You_Will_Learn_2": "Lucrați cu Entity Framework Core și MongoDB pentru a vă dezvolta stratul de acces la date.", + "MasteringAbpFramework_Book_What_You_Will_Learn_3": "Înțelegeți preocupările transversale și modul în care ABP automatizează sarcinile repetitive.", + "MasteringAbpFramework_Book_What_You_Will_Learn_4": "Familiarizați-vă cu implementarea designului bazat pe domeniu cu ABP Framework.", + "MasteringAbpFramework_Book_What_You_Will_Learn_5": "Creați pagini și componente UI cu ASP.NET Core MVC (Razor Pages) și Blazor.", + "MasteringAbpFramework_Book_What_You_Will_Learn_6": "Lucrați cu multi-tenancy pentru a crea aplicații web modulare.", + "MasteringAbpFramework_Book_What_You_Will_Learn_7": "Înțelegeți modularitatea și creați module de aplicații reutilizabile.", + "MasteringAbpFramework_Book_What_You_Will_Learn_8": "Scrieți teste de unitate, de integrare și de IU folosind ABP Framework.", + "MasteringAbpFramework_Book_WhoIsThisBookFor": "Pentru cine este această carte", + "MasteringAbpFramework_Book_WhoIsThisBookFor_Description": "Această carte este pentru dezvoltatorii web care doresc să învețe arhitecturi software și cele mai bune practici pentru construirea de soluții bazate pe web care pot fi întreținute \n , folosind tehnologiile Microsoft și ABP Framework. Cunoștințele de bază despre C# \n și ASP.NET Core sunt necesare pentru a începe cu această carte.", + "ComputersAndTechnology": "Calculatoare și tehnologie", + "BuildingMicroserviceSolutions": "Construirea de soluții de microservicii", + "MicroserviceBookPracticalGuide": "Această carte este un ghid de referință pentru dezvoltarea și gestionarea aplicațiilor bazate pe microservicii folosind Cadrul ABP. Face referire la aplicația de referință exemplu .NET Microservice : eShopOnContainers și discută despre abordările de proiectare arhitecturală și implementare folosind Cadrul ABP. Până la sfârșitul acestei cărți, veți afla cum abordează ABP complexitățile comune ale microserviciilor, cum ar fi autorizarea, tranzacțiile distribuite, comunicațiile inter-microservicii, implementarea etc.", + "IntroducingTheSolution": "Vă prezentăm soluția eShopOnAbp", + "RunningTheSolution": "Rularea soluției", + "UnderstandingTheAuthenticationSystem": "Înțelegerea sistemului de autentificare", + "ExploringTheApplications": "Explorarea aplicațiilor", + "UnderstandingTheAPIGateways": "Înțelegerea gateway-urilor API", + "DevelopingTheMicroservices": "Dezvoltarea microserviciilor", + "UnderstandingTheInfrastructure": "Înțelegerea infrastructurii", + "DiggingInTheUseCases": "Săpat în cazurile de utilizare", + "DeployingTheSolution": "Implementarea soluției", + "ThisBookIsInDraftStageAndIsNotCompletedYet": "Această carte este în faza de proiect și nu este încă finalizată.", + "Authors": "Autorii", + "MicroserviceEBook": "Carte electronică pentru microservicii", "SelectUITheme": "Selectați Tema UI", + "LeptonXLiteTheme": "Tema LeptonX Lite", + "BasicTheme": "Tema de bază", + "LeptonXLiteThemeInfo": "O temă Bootstrap UI modernă și elegantă. Ideal dacă doriți să aveți o temă UI pregătită pentru producție. Aceasta este cea mai nouă temă și este cea implicită.", + "BasicThemeInfo": "Tema interfață de utilizare minimalistă cu culori și stiluri simple Bootstrap. Ideal dacă îți vei construi propria temă UI.", + "SeeDocumentation": "Vezi documentația .", + "SeeFullScreen": "🖼️ Vezi captura de ecran", + "BuildingMicroserviceSolutionsShortDescription": "Această carte este un ghid de referință pentru dezvoltarea și gestionarea aplicațiilor bazate pe microservicii folosind Cadrul ABP.", + "InstallAbpCliMessage": "Instalați CLI-ul ABP într-un terminal de linie de comandă, dacă nu l-ați instalat înainte:", + "Terminal": "Terminal", + "Copy": "Copie", + "RunTheFollowingCommand": "Rulați următoarea comandă într-un terminal de linie de comandă:", + "ChangeSolutionOptionsBelow": "Puteți modifica opțiunile de soluție de mai jos.", + "MultiLayerApplication": "Multi-strat
Aplicație", + "MultiLayerApplicationExplanation1": "Creează o soluție complet stratificată bazată pe practicile de proiectare bazată pe domenii.", + "MultiLayerApplicationExplanation2": "Recomandat pentru proiecte pe termen lung care au nevoie de o bază de cod care poate fi întreținută și extensibilă.", + "SingleLayerApplication": "Un singur strat
Aplicație", + "SingleLayerApplicationExplanation1": "Creează o aplicație web cu un singur strat.", + "SingleLayerApplicationExplanation2": "Recomandat pentru construirea unei aplicații cu o arhitectură mai simplă și ușor de înțeles.", + "ApplicationModule": "Aplicație
Modul", + "SeeTheScreenshot": "Vedeți captura de ecran", + "ApplicationModuleExplanation1": "Creează o soluție de modul de aplicație reutilizabilă, complet stratificată.", + "ApplicationModuleExplanation2": "Puteți utiliza această opțiune pentru a crea module pentru aplicația dvs. modulară.", + "Expert_": "Expert", + "Partner_": "Parteneriat", + "WebSite": "Site Web", + "Expert_Year": "Anul de expertiză", + "CompanyInfo": "Informații despre companie", + "Date": "Data", + "WhoWeAre_Partner": "Cine suntem noi", + "WhoWeAre_Expert": "Despre mine", "CreateSolutionFolder": "Creați folderul de soluții", - "CreateSolutionFolderOption": "Specifică dacă proiectul va fi într-un folder nou în folderul de ieșire sau direct folderul de ieșire." + "CreateSolutionFolderOption": "Specifică dacă proiectul va fi într-un folder nou în folderul de ieșire sau direct folderul de ieșire.", + "BooksPageTitle": "Cărți ABP", + "PackageDetailPage_NuGetPackageInstallationOptions": "Există trei moduri de a instala pachetul {0} NuGet în proiectul dvs", + "PackageDetailPage_InstallingWithABPCLI": "1: Instalare cu ABP CLI", + "PackageDetailPage_InstallingWithABPCLIDescription1": "Dacă nu ați instalat ABP CLI , mai întâi instalați executând următoarea comandă într-un terminal de linie de comandă", + "PackageDetailPage_InstallingWithABPCLIDescription2": "După ce ați instalat ABP CLI, deschideți un terminal de linie de comandă în locația proiectului (fișier .csproj ) pe care doriți să-l instalați și executați următoarea comandă", + "PackageDetailPage_InstallingWithABPCLIDescription3": "Acesta va adăuga referința pachetului {0} la proiectul dvs. și dependența {1} la clasa dvs. de modul.", + "PackageDetailPage_ManualInstallation": "2: Instalarea cu Dotnet CLI", + "PackageDetailPage_ManualInstallationDescription1": "Adăugați {0} referință la pachetul NuGet la proiect folosind IDE-ul dvs. sau executând următoarea comandă", + "PackageDetailPage_ManualInstallationDescription2": "Apoi adăugați dependența {0} la clasa dvs. de modul , așa cum se arată în exemplul următor", + "PackageDetailPage_SeeDocumentation": "Consultați documentația pentru a afla cum să utilizați acest pachet în aplicațiile dvs.", + "PackageDetailPage_InstallingUsingPMC": "3: Instalarea cu Consola Manager de pachete", + "PackageDetailPage_InstallingUsingPMCDescription1": "Deschideți Consola Manager de pachete în Visual Studio (Instrumente -> Manager de pachete Nuget -> Consola Manager de pachete) și executați următoarea comandă", + "UIOptions": "Opțiuni UI", + "Testimonials": "Mărturii", + "CoolestCompaniesUseABPFramework": "Cele mai tari companii folosesc cadrul ABP", + "Index_Page_Testimonial_1": "ABP Framework nu este doar un instrument, ci un catalizator care mi-a accelerat creșterea ca dezvoltator. Mi-a făcut posibil să construiesc noi funcții mai rapid decât oricând, amintind de experiențele altor utilizatori. Modelul de codificare unificat mi-a simplificat proiectele, oferindu-mi mai mult timp să mă concentrez pe creare, mai degrabă decât pe depanare. \n Aș spune că Cadrul ABP a fost piatra de temelie a călătoriei mele profesionale timpurii. Mi-a facilitat tranziția de la un dezvoltator aspirant la un profesionist încrezător, gata să-și pună amprenta în lumea software-ului. Aștept cu nerăbdare proiectele interesante care mă așteaptă, știind că ABP va fi acolo pentru a mă ghida. Este mai mult decât un simplu produs; este un partener în succes.", + "Index_Page_Testimonial_2": "ABP Framework nu este doar un cadru, este și un ghid pentru dezvoltarea/managementul proiectelor, deoarece oferă cursuri DDD, GenericRepository, DI, Microservice, Modularity. Chiar dacă nu veți folosi framework-ul în sine, vă puteți dezvolta cu docs.abp.io, care este bine și pregătit profesional. (OpenIddict, Redis, Quartz etc.) \n Deoarece multe lucruri pre-construite, scurtează semnificativ timpul de dezvoltare a proiectului. (De exemplu, pagina de autentificare, gestionarea excepțiilor, filtrarea datelor, înregistrarea auditului, localizarea, controlerul auto api etc.) \n Ca exemplu din aplicația noastră, am folosit Local Event Bus pentru controlul stocurilor. Așadar, pot gestiona mișcările comenzilor scriind handler de stoc. \n Este minunat să nu pierzi timp pentru CreationTime, CreatorId. Acestea sunt completate automat.", + "VideosLoginAndRegisterMessage": "Trebuie să vă conectați pentru a viziona videoclipuri. Puteți crea un cont pentru ceas dacă nu ați făcut-o.", + "Filter": "Filtru", + "VideoCourses": "Cursuri video" } -} +} \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/sk.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/sk.json index 59aa30362f..db2d12ec95 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/sk.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/sk.json @@ -174,6 +174,8 @@ "CreateProjectWizard": "Tento sprievodca vytvorí nový projekt zo štartovacej šablóny, ktorá je správne nakonfigurovaná na začatie vášho projektu.", "TieredOption": "Vytvára viacúrovňové riešenie, v ktorom sú Web a Http API vrstvy fyzicky oddelené. Ak nie je checkbox začiarknutý, vytvorí vrstvené riešenie, ktoré je menej zložité a vhodné pre väčšinu scenárov.", "SeparateIdentityServerOption": "Rozdeľuje stranu servera na dve aplikácie: Prvá je určená pre identity server a druhá pre vaše HTTP API na strane servera.", + "SeparateAuthenticationServerOption": "Rozdeľuje stranu servera na dve aplikácie: Prvá je pre autentifikačný server a druhá je pre HTTP API na strane servera.", + "ProgressiveWebApplicationOption": "Špecifikuje projekt ako progresívnu webovú aplikáciu", "UseslatestPreVersion": "Používa najnovšiu predprípravnú verziu", "ReadTheDocumentation": "Prečítajte siDokumentáciu", "Documentation": "Dokumentácia", @@ -214,7 +216,11 @@ "SeeDocs": "Pozrite si Dokumenty", "None": "žiadne", "Application": "Aplikácia", + "ApplicationExplanation": "Vytvára plne vrstvené riešenie založené na postupoch Domain Driven Design. Odporúča sa pre dlhodobé projekty, ktoré potrebujú udržiavateľnú a rozšíriteľnú kódovú základňu.", + "ApplicationNoLayer": "Aplikácia (jedna vrstva)", + "ApplicationNoLayerExplanation": "Vytvára jednovrstvovú webovú aplikáciu. Odporúča sa na vytváranie aplikácií s jednoduchšou a ľahko pochopiteľnou architektúrou.", "Module": "modul", + "ModuleExplanation": "Vytvára znovu použiteľné, plne vrstvené riešenie aplikačného modulu. Túto možnosť môžete použiť na vytvorenie modulov pre vašu modulárnu aplikáciu.", "PackageName": "Názov balíka", "LicenseURL": "Adresa URL licencie", "License": "Licencia", @@ -274,8 +280,166 @@ "FirstEdition": "Prvá edícia", "ThankYou": "Ďakujem!", "CheckboxMandatory": "Ak chcete pokračovať, musíte to skontrolovať!", + "UserInterface": "Používateľské rozhranie", + "APIGateway": "Brána API", + "Database": "Databáza", + "Saas": "Saas", + "OpenSourceWebApp": "Open source
webovú aplikáciu", + "Framework": "Rámec", + "AuditLoggingExplanation": "Automaticky sledujte všetky operácie a zmeny údajov vo vašom systéme.", + "AbpNewCommandExplanation": "Vytvára nové riešenia pomocou štartovacích šablón ABP.", + "AbpAddModuleCommandExplanation": "Nainštaluje do vášho riešenia vopred zostavené aplikačné moduly", + "AbpUpdateCommandExplanation": "Automaticky aktualizuje všetky balíky NuGet a NPM súvisiace s ABP vo vašom riešení.", + "ExploreAllCLICommands": "Preskúmajte všetky príkazy CLI", + "ExploreDocumentationAndGuides": "Preskúmajte komplexnú dokumentáciu a sprievodcov.", + "Documentations": "Dokumentácia", + "Views": "Názory", + "EnterYouEmailToGetNews": "Zadajte svoj e-mail a získajte najnovšie správy o rámci ABP", + "Tiered": "Viacúrovňový", + "SeparateIdentityServer": "Samostatný server identity", + "SeparateAuthenticationServer": "Samostatný autentifikačný server", + "ProgressiveWebApplication": "Progresívna webová aplikácia", + "Preview": "Náhľad", + "CreateANewSolution": "Vytvorte nové riešenie", + "ABPFrameworkFeatures": "Funkcie rámca ABP", + "Commercial": "Komerčný", + "ThirdPartyTools": "Nástroje tretích strán", + "Back": "späť", + "Community": "Spoločenstva", + "SeeMore": "Pozrieť viac", + "DetailsOfTheEBook": "Podrobnosti o e-knihe", + "JoinOurMarketingNewsletter": "Pridajte sa k nášmu marketingovému newsletteru", + "FrameworkNewsletterConfirmationMessage": "Súhlasím s obchodnými podmienkami a zásadami ochrany osobných údajov .", + "GetYourFreeEBook": "Získajte bezplatnú elektronickú knihu DDD", + "EverythingYouNeedToKnow": "Všetko, čo potrebujete vedieť.", + "PreOrderNow": "Vopred objednať teraz", + "UITheming": "Téma používateľského rozhrania", + "UIThemingExplanation": "Vytvorte opakovane použiteľné témy a rozloženia používateľského rozhrania alebo použite jednu z vopred vytvorených tém používateľského rozhrania.", + "DataFilteringExplanation2": "Automaticky filtrujte dopytovanie z databázy, aby ste mohli jednoducho implementovať vzory, ako je mäkké vymazanie a viacnásobný prenájom.", + "NeedHelp": "Potrebujete pomoc?", + "GiveYourProjectAName": "Pomenujte svoj projekt", + "SelectProjectType": "Vyberte Typ projektu", + "SelectUIFramework": "Vyberte UI Framework", + "SelectDatabaseProvider": "Vyberte Poskytovateľ databázy", + "SelectDatabaseManagementSystem": "Vyberte položku Systém správy databázy", + "InstallingTheABPCLI": "Inštalácia ABP CLI", + "CreateYourProjectNow": "Vytvorte si projekt", + "OrderOn": "Objednať na {0}", + "DownloadFreeDDDBook": "Stiahnite si zadarmo DDD knihu", + "WhatIsABPFramework": "Čo je rámec ABP?", + "TenantDatabase": "Databáza nájomníkov {0}", + "SharedDatabase": "Zdieľaná databáza", + "ConnectionResolver": "Riešenie pre pripojenie", + "TenantBasedDataFilter": "Filter údajov podľa nájomníkov", + "ApplicationCode": "Kód aplikácie", + "TenantResolution": "Uznesenie nájomcu", + "TenantUser": "Používateľ nájomníka {0}", + "CardTitle": "Názov karty", + "View": "vyhliadka", + "Model": "Model", + "Email": "Email", + "Password": "heslo", + "Address": "Adresa", + "Gender": "rod", + "Male": "Muž", + "Female": "Žena", + "Submit": "Predložiť", + "Unspecified": "Nešpecifikované", + "StaticFileMiddleware": "Stredný softvér statických súborov", + "RazorViewEngine": "Razor View Engine", + "PhysicalFiles": "Fyzické súbory (wwwroot)", + "EmbeddedFiles": "Vložené súbory (DLL)", + "DynamicFiles": "Dynamické súbory (pamäť)", + "BuildSolutionsWithAbp": "Vytvárajte udržiavateľné riešenia .NET dodržiavaním osvedčených postupov vývoja softvéru pomocou ABP.", + "BuyOnAmazon": "Kúpiť na Amazone", + "BuyOnPackt": "Kúpiť na Packt", + "Discounted": "Zľavnené", + "MasteringAbpFramework_Book_KeyFeatures": "Kľúčové vlastnosti", + "MasteringAbpFramework_Book_Key_Features_Description_1": "Vytvárajte robustné, udržiavateľné, modulárne a škálovateľné softvérové riešenia pomocou ABP Framework.", + "MasteringAbpFramework_Book_Key_Features_Description_2": "Zistite, ako implementovať princípy SOLID a doménou riadený dizajn vo vašich webových aplikáciách.", + "MasteringAbpFramework_Book_Key_Features_Description_3": "Zistite, ako ABP Framework zrýchľuje váš vývojový cyklus automatizáciou opakujúcich sa úloh.", + "MasteringAbpFramework_Book_Description": "Popis knihy", + "MasteringAbpFramework_Book_Description_Details_1": "ABP Framework je kompletná infraštruktúra na vytváranie moderných webových aplikácií dodržiavaním osvedčených postupov a konvencií vývoja softvéru \n . S rámcom a ekosystémom ABP na vysokej úrovni môžete \n implementovať princíp Don't Repeat Yourself (DRY) a zamerať sa na svoj obchodný kód.", + "MasteringAbpFramework_Book_Description_Details_2": "Táto kniha, ktorú napísal tvorca ABP Framework, vám pomôže získať úplné pochopenie rámca \n a moderných techník vývoja webových aplikácií. S podrobným vysvetlením základných konceptov \n a praktickými príkladmi pochopíte požiadavky moderného webového riešenia a pochopíte, ako vám ABP \n Framework spríjemňuje vývoj vašich vlastných riešení. Objavíte bežné požiadavky vývoja podnikových webových aplikácií \n a preskúmate infraštruktúru poskytovanú spoločnosťou ABP. V celej knihe \n sa zoznámite s osvedčenými postupmi vývoja softvéru na vytváranie udržiavateľných a modulárnych webových riešení \n .", + "MasteringAbpFramework_Book_Description_Details_3": "Na konci tejto knihy budete schopní vytvoriť kompletné webové riešenie, ktoré sa ľahko vyvíja, udržiava a testuje \n .", + "MasteringAbpFramework_Book_WhatYouWillLearn": "Čo sa naučíte", + "MasteringAbpFramework_Book_What_You_Will_Learn_1": "Nastavte vývojové prostredie a začnite s ABP Framework.", + "MasteringAbpFramework_Book_What_You_Will_Learn_2": "Spolupracujte s Entity Framework Core a MongoDB na vývoji svojej vrstvy prístupu k údajom.", + "MasteringAbpFramework_Book_What_You_Will_Learn_3": "Pochopte prierezové problémy a ako ABP automatizuje opakujúce sa úlohy.", + "MasteringAbpFramework_Book_What_You_Will_Learn_4": "Zoznámte sa s implementáciou dizajnu riadeného doménou pomocou rámca ABP.", + "MasteringAbpFramework_Book_What_You_Will_Learn_5": "Vytvárajte stránky používateľského rozhrania a komponenty pomocou ASP.NET Core MVC (Razor Pages) a Blazor.", + "MasteringAbpFramework_Book_What_You_Will_Learn_6": "Pri vytváraní modulárnych webových aplikácií pracujte s viacerými nájomcami.", + "MasteringAbpFramework_Book_What_You_Will_Learn_7": "Pochopte modularitu a vytvorte opakovane použiteľné aplikačné moduly.", + "MasteringAbpFramework_Book_What_You_Will_Learn_8": "Napíšte testy jednotiek, integrácie a používateľského rozhrania pomocou rámca ABP.", + "MasteringAbpFramework_Book_WhoIsThisBookFor": "Pre koho je táto kniha určená", + "MasteringAbpFramework_Book_WhoIsThisBookFor_Description": "Táto kniha je určená pre webových vývojárov, ktorí sa chcú naučiť softvérové architektúry a osvedčené postupy na vytváranie udržiavateľných webových riešení \n pomocou technológií spoločnosti Microsoft a rámca ABP. Aby ste mohli začať s touto knihou, sú potrebné základné znalosti C# \n a ASP.NET Core.", + "ComputersAndTechnology": "Počítače a technológie", + "BuildingMicroserviceSolutions": "Budovanie mikroservisných riešení", + "MicroserviceBookPracticalGuide": "Táto kniha je referenčnou príručkou pre vývoj a správu aplikácií založených na mikroslužbách pomocou rámca ABP. Odkazuje na .NET Microservice Sample Reference Application : eShopOnContainers a rozoberá architektonický dizajn a implementačné prístupy využívajúce ABP Framework. Na konci tejto knihy sa dozviete, ako ABP pristupuje k bežným zložitostiam mikroslužieb, ako sú autorizácia, distribuované transakcie, komunikácia medzi mikroslužbami, nasadenie atď.", + "IntroducingTheSolution": "Predstavujeme riešenie eShopOnAbp", + "RunningTheSolution": "Spustenie riešenia", + "UnderstandingTheAuthenticationSystem": "Pochopenie autentifikačného systému", + "ExploringTheApplications": "Skúmanie aplikácií", + "UnderstandingTheAPIGateways": "Pochopenie brán API", + "DevelopingTheMicroservices": "Rozvoj mikroslužieb", + "UnderstandingTheInfrastructure": "Pochopenie infraštruktúry", + "DiggingInTheUseCases": "Hľadanie v prípadoch použitia", + "DeployingTheSolution": "Nasadenie riešenia", + "ThisBookIsInDraftStageAndIsNotCompletedYet": "Táto kniha je v štádiu návrhu a ešte nie je dokončená.", + "Authors": "Autori", + "MicroserviceEBook": "Elektronická kniha mikroservisu", "SelectUITheme": "Vyberte tému používateľského rozhrania", + "LeptonXLiteTheme": "Téma LeptonX Lite", + "BasicTheme": "Základná téma", + "LeptonXLiteThemeInfo": "Moderná a štýlová téma používateľského rozhrania Bootstrap. Ideálne, ak chcete mať tému používateľského rozhrania pripravenú na výrobu. Toto je najnovšia téma a je predvolená.", + "BasicThemeInfo": "Minimalistická téma používateľského rozhrania s jednoduchými farbami a štýlmi Bootstrapu. Ideálne, ak si vytvoríte vlastnú tému používateľského rozhrania.", + "SeeDocumentation": "Pozrite si dokumentáciu .", + "SeeFullScreen": "🖼️ Pozrite si snímku obrazovky", + "BuildingMicroserviceSolutionsShortDescription": "Táto kniha je referenčnou príručkou pre vývoj a správu aplikácií založených na mikroslužbách pomocou rámca ABP.", + "InstallAbpCliMessage": "Nainštalujte ABP CLI do terminálu príkazového riadka, ak ste ho ešte nenainštalovali:", + "Terminal": "Terminál", + "Copy": "Kopírovať", + "RunTheFollowingCommand": "Spustite nasledujúci príkaz v termináli príkazového riadka:", + "ChangeSolutionOptionsBelow": "Nižšie môžete zmeniť možnosti riešenia.", + "MultiLayerApplication": "Viacvrstvové
Aplikácia", + "MultiLayerApplicationExplanation1": "Vytvára plne vrstvené riešenie založené na postupoch Domain Driven Design.", + "MultiLayerApplicationExplanation2": "Odporúča sa pre dlhodobé projekty, ktoré potrebujú udržiavateľnú a rozšíriteľnú kódovú základňu.", + "SingleLayerApplication": "Jednovrstvový
Aplikácia", + "SingleLayerApplicationExplanation1": "Vytvára jednovrstvovú webovú aplikáciu.", + "SingleLayerApplicationExplanation2": "Odporúča sa na vytváranie aplikácií s jednoduchšou a ľahko pochopiteľnou architektúrou.", + "ApplicationModule": "Aplikácia
modul", + "SeeTheScreenshot": "Pozrite si snímku obrazovky", + "ApplicationModuleExplanation1": "Vytvára znovu použiteľné, plne vrstvené riešenie aplikačného modulu.", + "ApplicationModuleExplanation2": "Túto možnosť môžete použiť na vytvorenie modulov pre vašu modulárnu aplikáciu.", + "Expert_": "Expert", + "Partner_": "partnerstvo", + "WebSite": "Webové stránky", + "Expert_Year": "Rok odbornosti", + "CompanyInfo": "Informácie o spoločnosti", + "Date": "Dátum", + "WhoWeAre_Partner": "Kto sme", + "WhoWeAre_Expert": "O mne", "CreateSolutionFolder": "Vytvorte priečinok riešení", - "CreateSolutionFolderOption": "Určuje, či bude projekt v novom priečinku vo výstupnom priečinku alebo priamo vo výstupnom priečinku." + "CreateSolutionFolderOption": "Určuje, či bude projekt v novom priečinku vo výstupnom priečinku alebo priamo vo výstupnom priečinku.", + "BooksPageTitle": "Knihy ABP", + "PackageDetailPage_NuGetPackageInstallationOptions": "Existujú tri spôsoby, ako nainštalovať balík NuGet {0} do vášho projektu", + "PackageDetailPage_InstallingWithABPCLI": "1: Inštalácia pomocou ABP CLI", + "PackageDetailPage_InstallingWithABPCLIDescription1": "Ak ste nenainštalovali ABP CLI , najprv nainštalujte vykonaním nasledujúceho príkazu v termináli príkazového riadka", + "PackageDetailPage_InstallingWithABPCLIDescription2": "Po nainštalovaní ABP CLI otvorte terminál príkazového riadka v umiestnení projektu (súbor .csproj ), do ktorého ho chcete nainštalovať, a vykonajte nasledujúci príkaz", + "PackageDetailPage_InstallingWithABPCLIDescription3": "Pridá odkaz na balík {0} do vášho projektu a závislosť {1} do vašej triedy modulov.", + "PackageDetailPage_ManualInstallation": "2: Inštalácia pomocou rozhrania CLI Dotnet", + "PackageDetailPage_ManualInstallationDescription1": "Pridajte odkaz na balík NuGet {0} do svojho projektu pomocou vášho IDE alebo spustením nasledujúceho príkazu", + "PackageDetailPage_ManualInstallationDescription2": "Potom pridajte závislosť {0} do svojej triedy modulov , ako je znázornené v nasledujúcom príklade", + "PackageDetailPage_SeeDocumentation": "Pozrite si dokumentáciu , kde sa dozviete, ako používať tento balík vo vašich aplikáciách.", + "PackageDetailPage_InstallingUsingPMC": "3: Inštalácia pomocou konzoly Package Manager Console", + "PackageDetailPage_InstallingUsingPMCDescription1": "Otvorte konzolu správcu balíkov v programe Visual Studio (Nástroje -> Správca balíkov Nuget -> Konzola správcu balíkov) a vykonajte nasledujúci príkaz", + "UIOptions": "Možnosti používateľského rozhrania", + "Testimonials": "Posudky", + "CoolestCompaniesUseABPFramework": "Najlepšie spoločnosti používajú rámec ABP", + "Index_Page_Testimonial_1": "ABP Framework nie je len nástroj, ale katalyzátor, ktorý urýchlil môj rast ako vývojára. Umožnil mi vytvárať nové funkcie rýchlejšie ako kedykoľvek predtým, pripomínajúce skúsenosti iných používateľov. Jednotný vzor kódovania zefektívnil moje projekty a dal mi viac času sústrediť sa na vytváranie, nie na riešenie problémov. \n Povedal by som, že ABP Framework bol základným kameňom mojej ranej profesionálnej cesty. Uľahčilo mi to prechod od ctižiadostivého vývojára k sebavedomému profesionálovi, ktorý je pripravený urobiť značku vo svete softvéru. Teším sa na vzrušujúce projekty, ktoré ma čakajú, s vedomím, že ABP ma bude sprevádzať. Je to viac ako len produkt; je to partner úspechu.", + "Index_Page_Testimonial_2": "ABP Framework nie je len rámec, je to aj návod na vývoj/riadenie projektov, pretože poskytuje školenia DDD, GenericRepository, DI, Microservice, Modularity. Aj keď samotný framework nebudete používať, môžete sa rozvíjať pomocou docs.abp.io, ktoré je dobre a profesionálne pripravené. (OpenIddict, Redis, Quartz atď.) \n Pretože je veľa vecí vopred vytvorených, výrazne to skracuje čas vývoja projektu. (Ako prihlasovacia stránka, spracovanie výnimiek, filtrovanie údajov, zaznamenávanie auditov, lokalizácia, automatický api ovládač atď.) \n Ako príklad z našej aplikácie som použil lokálnu zbernicu udalostí na riadenie zásob. Takže som schopný riadiť pohyby objednávok napísaním skladového manipulátora. \n Je úžasné nestrácať čas pre CreationTime, CreatorId. Plnia sa automaticky.", + "VideosLoginAndRegisterMessage": "Ak chcete pozerať videá, musíte sa prihlásiť. Ak ešte nemáte účet pre hodinky, môžete si ho vytvoriť.", + "Filter": "Filter", + "VideoCourses": "Video kurzy" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/sl.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/sl.json index 01c8683215..9535e28a2a 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/sl.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/sl.json @@ -174,6 +174,8 @@ "CreateProjectWizard": "Ta čarovnik iz zagonske predloge ustvari nov projekt, ki je pravilno konfiguriran za hitri začetek vašega projekta.", "TieredOption": "Ustvari večstopenjsko rešitev, kjer sta sloji Web in Http API fizično ločeni. Če ni izbrano, ustvari večplastno rešitev, ki je manj zapletena in primerna za večino scenarijev.", "SeparateIdentityServerOption": "Strani strežnika loči na dve aplikaciji: prva je za strežnik identitete, druga pa za vaš strežnik HTTP API.", + "SeparateAuthenticationServerOption": "Strežniško stran loči na dve aplikaciji: prva je za strežnik za preverjanje pristnosti, druga pa za HTTP API na strani vašega strežnika.", + "ProgressiveWebApplicationOption": "Določi projekt kot progresivno spletno aplikacijo", "UseslatestPreVersion": "Uporablja najnovejšo različico pred izdajo", "ReadTheDocumentation": "Preberite Dokumentacijo", "Documentation": "Dokumentacija", @@ -214,7 +216,11 @@ "SeeDocs": "Glejte Dokumenti", "None": "Nobena", "Application": "Aplikacija", + "ApplicationExplanation": "Ustvari popolnoma večplastno rešitev, ki temelji na praksah Domain Driven Design. Priporočljivo za dolgoročne projekte, ki potrebujejo vzdržljivo in razširljivo kodno zbirko.", + "ApplicationNoLayer": "Aplikacija (enoplastna)", + "ApplicationNoLayerExplanation": "Ustvari enoslojno spletno aplikacijo. Priporočljivo za izdelavo aplikacije s preprostejšo in lahko razumljivo arhitekturo.", "Module": "Modul", + "ModuleExplanation": "Ustvari rešitev aplikacijskega modula za večkratno uporabo, v celoti večplastno. To možnost lahko uporabite za ustvarjanje modulov za svojo modularno aplikacijo.", "PackageName": "Ime paketa", "LicenseURL": "URL licence", "License": "Licenca", @@ -274,8 +280,166 @@ "FirstEdition": "Prva izdaja", "ThankYou": "Hvala vam!", "CheckboxMandatory": "Za nadaljevanje morate to preveriti!", + "UserInterface": "Uporabniški vmesnik", + "APIGateway": "API Gateway", + "Database": "Baza podatkov", + "Saas": "Saas", + "OpenSourceWebApp": "Odprtokodno
spletno aplikacijo", + "Framework": "Okvir", + "AuditLoggingExplanation": "Samodejno sledite vsem operacijam in spremembam podatkov v vašem sistemu.", + "AbpNewCommandExplanation": "Ustvari nove rešitve z uporabo zagonskih predlog ABP.", + "AbpAddModuleCommandExplanation": "V vašo rešitev namesti vnaprej zgrajene aplikacijske module", + "AbpUpdateCommandExplanation": "Samodejno posodobi vse pakete NuGet in NPM, povezane z ABP, v vaši rešitvi.", + "ExploreAllCLICommands": "Raziščite vse ukaze CLI", + "ExploreDocumentationAndGuides": "Raziščite obsežno dokumentacijo in vodnike.", + "Documentations": "Dokumentacija", + "Views": "Pogledi", + "EnterYouEmailToGetNews": "Vnesite svoj e-poštni naslov, če želite prejemati najnovejše novice o ogrodju ABP", + "Tiered": "Večstopenjski", + "SeparateIdentityServer": "Ločen strežnik identitete", + "SeparateAuthenticationServer": "Ločen strežnik za preverjanje pristnosti", + "ProgressiveWebApplication": "Progresivna spletna aplikacija", + "Preview": "Predogled", + "CreateANewSolution": "Ustvarite novo rešitev", + "ABPFrameworkFeatures": "Funkcije ogrodja ABP", + "Commercial": "Komercialno", + "ThirdPartyTools": "Orodja tretjih oseb", + "Back": "Nazaj", + "Community": "Skupnost", + "SeeMore": "Poglej več", + "DetailsOfTheEBook": "Podrobnosti o e-knjigi", + "JoinOurMarketingNewsletter": "Pridružite se našemu marketinškemu glasilu", + "FrameworkNewsletterConfirmationMessage": "Strinjam se s pogoji in določili ter politiko zasebnosti .", + "GetYourFreeEBook": "Pridobite brezplačno e-knjigo DDD", + "EverythingYouNeedToKnow": "Vse, kar morate vedeti.", + "PreOrderNow": "Prednaročite zdaj", + "UITheming": "Tematiziranje uporabniškega vmesnika", + "UIThemingExplanation": "Ustvarite teme in postavitve uporabniškega vmesnika za večkratno uporabo ali uporabite eno od vnaprej izdelanih tem uporabniškega vmesnika.", + "DataFilteringExplanation2": "Samodejno filtriranje pri poizvedovanju iz baze podatkov za preprosto implementacijo vzorcev, kot sta mehko brisanje in večnajemništvo.", + "NeedHelp": "Rabim pomoč?", + "GiveYourProjectAName": "Poimenujte svoj projekt", + "SelectProjectType": "Izberite vrsto projekta", + "SelectUIFramework": "Izberite UI Framework", + "SelectDatabaseProvider": "Izberite Ponudnik baze podatkov", + "SelectDatabaseManagementSystem": "Izberite Sistem za upravljanje baz podatkov", + "InstallingTheABPCLI": "Namestitev ABP CLI", + "CreateYourProjectNow": "Ustvarite svoj projekt zdaj", + "OrderOn": "Naročilo na {0}", + "DownloadFreeDDDBook": "Prenesite brezplačno knjigo DDD", + "WhatIsABPFramework": "Kaj je okvir ABP?", + "TenantDatabase": "Baza podatkov najemnika {0}", + "SharedDatabase": "Skupna zbirka podatkov", + "ConnectionResolver": "Reševalec povezav", + "TenantBasedDataFilter": "Podatkovni filter na podlagi najemnika", + "ApplicationCode": "Koda aplikacije", + "TenantResolution": "Resolucija najemnika", + "TenantUser": "Uporabnik najemnika {0}", + "CardTitle": "Naslov kartice", + "View": "Pogled", + "Model": "Model", + "Email": "E-naslov", + "Password": "Geslo", + "Address": "Naslov", + "Gender": "Spol", + "Male": "moški", + "Female": "ženska", + "Submit": "Predloži", + "Unspecified": "Neopredeljeno", + "StaticFileMiddleware": "Vmesna programska oprema za statične datoteke", + "RazorViewEngine": "Razor View Engine", + "PhysicalFiles": "Fizične datoteke (wwwroot)", + "EmbeddedFiles": "Vdelane datoteke (DLL)", + "DynamicFiles": "Dinamične datoteke (pomnilnik)", + "BuildSolutionsWithAbp": "Zgradite vzdržljive rešitve .NET z upoštevanjem najboljših praks razvoja programske opreme z uporabo ABP.", + "BuyOnAmazon": "Kupite na Amazonu", + "BuyOnPackt": "Kupite na Packt", + "Discounted": "Znižano", + "MasteringAbpFramework_Book_KeyFeatures": "Ključne funkcije", + "MasteringAbpFramework_Book_Key_Features_Description_1": "Izdelajte robustne, vzdržljive, modularne in razširljive programske rešitve z uporabo ogrodja ABP.", + "MasteringAbpFramework_Book_Key_Features_Description_2": "Naučite se implementirati načela SOLID in oblikovanje, ki temelji na domeni, v vaših spletnih aplikacijah.", + "MasteringAbpFramework_Book_Key_Features_Description_3": "Odkrijte, kako ABP Framework pospeši vaš razvojni cikel z avtomatizacijo ponavljajočih se nalog.", + "MasteringAbpFramework_Book_Description": "Opis knjige", + "MasteringAbpFramework_Book_Description_Details_1": "ABP Framework je popolna infrastruktura za ustvarjanje sodobnih spletnih aplikacij z upoštevanjem najboljših praks in konvencij za razvoj programske opreme \n . Z ogrodjem in ekosistemom na visoki ravni ABP lahko \n implementirate načelo Ne ponavljaj se (DRY) in se osredotočite na svojo poslovno kodo.", + "MasteringAbpFramework_Book_Description_Details_2": "Ta knjiga, ki jo je napisal ustvarjalec ogrodja ABP, vam bo pomagala pridobiti popolno razumevanje ogrodja \n in sodobnih tehnik razvoja spletnih aplikacij. S postopnimi razlagami bistvenih konceptov \n in praktičnimi primeri boste razumeli zahteve sodobne spletne rešitve in kako ogrodje ABP \n omogoča prijetno razvijanje lastnih rešitev. Odkrili boste skupne zahteve za razvoj spletnih aplikacij podjetja \n in raziskali infrastrukturo, ki jo ponuja ABP. Skozi celotno knjigo \n se boste spoprijeli z najboljšimi praksami razvoja programske opreme za gradnjo vzdržljivih in modularnih spletnih rešitev \n .", + "MasteringAbpFramework_Book_Description_Details_3": "Do konca te knjige boste lahko ustvarili popolno spletno rešitev, ki jo je enostavno razviti, vzdrževati in testirati \n .", + "MasteringAbpFramework_Book_WhatYouWillLearn": "Kaj se boste naučili", + "MasteringAbpFramework_Book_What_You_Will_Learn_1": "Nastavite razvojno okolje in začnite uporabljati ABP Framework.", + "MasteringAbpFramework_Book_What_You_Will_Learn_2": "Sodelujte z Entity Framework Core in MongoDB, da razvijete svojo plast dostopa do podatkov.", + "MasteringAbpFramework_Book_What_You_Will_Learn_3": "Razumeti medsektorske pomisleke in kako ABP avtomatizira ponavljajoče se naloge.", + "MasteringAbpFramework_Book_What_You_Will_Learn_4": "Ukvarjajte se z implementacijo domensko usmerjenega oblikovanja z ogrodjem ABP.", + "MasteringAbpFramework_Book_What_You_Will_Learn_5": "Ustvarite strani in komponente uporabniškega vmesnika z ASP.NET Core MVC (Razor Pages) in Blazor.", + "MasteringAbpFramework_Book_What_You_Will_Learn_6": "Delajte z več najemniki za ustvarjanje modularnih spletnih aplikacij.", + "MasteringAbpFramework_Book_What_You_Will_Learn_7": "Razumeti modularnost in ustvariti aplikacijske module za večkratno uporabo.", + "MasteringAbpFramework_Book_What_You_Will_Learn_8": "Pišite teste enot, integracije in uporabniškega vmesnika z uporabo ogrodja ABP.", + "MasteringAbpFramework_Book_WhoIsThisBookFor": "Za koga je ta knjiga", + "MasteringAbpFramework_Book_WhoIsThisBookFor_Description": "Ta knjiga je namenjena spletnim razvijalcem, ki se želijo naučiti programske arhitekture in najboljših praks za gradnjo vzdržljivih spletnih rešitev \n z uporabo Microsoftovih tehnologij in ogrodja ABP. Za začetek s to knjigo je potrebno osnovno znanje C# \n in ASP.NET Core.", + "ComputersAndTechnology": "Računalništvo in tehnologija", + "BuildingMicroserviceSolutions": "Gradnja mikrostoritvenih rešitev", + "MicroserviceBookPracticalGuide": "Ta knjiga je referenčni vodnik za razvoj in upravljanje aplikacij, ki temeljijo na mikrostoritvah, z uporabo ogrodja ABP. Sklicuje se na vzorčno referenčno aplikacijo .NET Microservice : eShopOnContainers in obravnava pristope arhitekturne zasnove in implementacije z uporabo ogrodja ABP. Ob koncu te knjige boste izvedeli, kako se ABP približuje pogostim zapletenim mikrostoritvam, kot so avtorizacija, porazdeljene transakcije, komunikacije med mikrostoritvami, uvajanje itd.", + "IntroducingTheSolution": "Predstavljamo rešitev eShopOnAbp", + "RunningTheSolution": "Izvajanje rešitve", + "UnderstandingTheAuthenticationSystem": "Razumevanje sistema za preverjanje pristnosti", + "ExploringTheApplications": "Raziskovanje aplikacij", + "UnderstandingTheAPIGateways": "Razumevanje prehodov API", + "DevelopingTheMicroservices": "Razvoj mikrostoritev", + "UnderstandingTheInfrastructure": "Razumevanje infrastrukture", + "DiggingInTheUseCases": "Kopanje po primerih uporabe", + "DeployingTheSolution": "Uvajanje rešitve", + "ThisBookIsInDraftStageAndIsNotCompletedYet": "Ta knjiga je v osnutku in še ni dokončana.", + "Authors": "Avtorji", + "MicroserviceEBook": "E-knjiga Microservice", "SelectUITheme": "Izberite temo uporabniškega vmesnika", + "LeptonXLiteTheme": "Tema LeptonX Lite", + "BasicTheme": "Osnovna tema", + "LeptonXLiteThemeInfo": "Moderna in elegantna tema uporabniškega vmesnika Bootstrap. Idealno, če želite imeti temo uporabniškega vmesnika, pripravljeno za proizvodnjo. To je najnovejša tema in je privzeta.", + "BasicThemeInfo": "Minimalistična tema uporabniškega vmesnika z navadnimi barvami in slogi Bootstrap. Idealno, če boste zgradili lastno temo uporabniškega vmesnika.", + "SeeDocumentation": "Glej dokumentacijo .", + "SeeFullScreen": "🖼️ Oglejte si posnetek zaslona", + "BuildingMicroserviceSolutionsShortDescription": "Ta knjiga je referenčni vodnik za razvoj in upravljanje aplikacij, ki temeljijo na mikrostoritvah, z uporabo ogrodja ABP.", + "InstallAbpCliMessage": "Namestite ABP CLI v terminal ukazne vrstice, če ga še niste namestili:", + "Terminal": "Terminal", + "Copy": "Kopirati", + "RunTheFollowingCommand": "Zaženite naslednji ukaz v terminalu ukazne vrstice:", + "ChangeSolutionOptionsBelow": "Spodaj lahko spremenite možnosti rešitve.", + "MultiLayerApplication": "Večplastna
Aplikacija", + "MultiLayerApplicationExplanation1": "Ustvari popolnoma večplastno rešitev, ki temelji na praksah Domain Driven Design.", + "MultiLayerApplicationExplanation2": "Priporočljivo za dolgoročne projekte, ki potrebujejo vzdržljivo in razširljivo kodno zbirko.", + "SingleLayerApplication": "Enoslojni
Aplikacija", + "SingleLayerApplicationExplanation1": "Ustvari enoslojno spletno aplikacijo.", + "SingleLayerApplicationExplanation2": "Priporočljivo za izdelavo aplikacije s preprostejšo in lahko razumljivo arhitekturo.", + "ApplicationModule": "Aplikacija
Modul", + "SeeTheScreenshot": "Oglejte si posnetek zaslona", + "ApplicationModuleExplanation1": "Ustvari rešitev aplikacijskega modula za večkratno uporabo, v celoti večplastno.", + "ApplicationModuleExplanation2": "To možnost lahko uporabite za ustvarjanje modulov za svojo modularno aplikacijo.", + "Expert_": "Strokovnjak", + "Partner_": "Partnerstvo", + "WebSite": "Spletna stran", + "Expert_Year": "Strokovno leto", + "CompanyInfo": "Informacije o podjetju", + "Date": "Datum", + "WhoWeAre_Partner": "Kdo smo", + "WhoWeAre_Expert": "O meni", "CreateSolutionFolder": "Ustvarite mapo rešitev", - "CreateSolutionFolderOption": "Podaja, ali bo projekt v novi mapi v izhodni mapi ali neposredno v izhodni mapi." + "CreateSolutionFolderOption": "Podaja, ali bo projekt v novi mapi v izhodni mapi ali neposredno v izhodni mapi.", + "BooksPageTitle": "Knjige ABP", + "PackageDetailPage_NuGetPackageInstallationOptions": "Obstajajo trije načini za namestitev paketa {0} NuGet v vaš projekt", + "PackageDetailPage_InstallingWithABPCLI": "1: Namestitev z ABP CLI", + "PackageDetailPage_InstallingWithABPCLIDescription1": "Če še niste namestili ABP CLI , najprej namestite tako, da v terminalu ukazne vrstice izvedete naslednji ukaz", + "PackageDetailPage_InstallingWithABPCLIDescription2": "Ko namestite ABP CLI, odprite terminal ukazne vrstice na mestu projekta (datoteka .csproj ), ki ga želite namestiti, in izvedite naslednji ukaz", + "PackageDetailPage_InstallingWithABPCLIDescription3": "Dodal bo referenco paketa {0} v vaš projekt in odvisnost {1} v vaš razred modula.", + "PackageDetailPage_ManualInstallation": "2: Namestitev z Dotnet CLI", + "PackageDetailPage_ManualInstallationDescription1": "Dodajte sklic na paket {0} NuGet svojemu projektu s svojim IDE ali z izvajanjem naslednjega ukaza", + "PackageDetailPage_ManualInstallationDescription2": "Nato dodajte odvisnost {0} svojemu razredu modula , kot je prikazano v naslednjem primeru", + "PackageDetailPage_SeeDocumentation": "Oglejte si dokumentacijo, če želite izvedeti, kako uporabljati ta paket v svojih aplikacijah.", + "PackageDetailPage_InstallingUsingPMC": "3: Namestitev s konzolo Package Manager Console", + "PackageDetailPage_InstallingUsingPMCDescription1": "Odprite konzolo Package Manager v Visual Studio (Orodja -> Nuget Package Manager -> Package Manager Console) in izvedite naslednji ukaz", + "UIOptions": "Možnosti uporabniškega vmesnika", + "Testimonials": "Pričevanja", + "CoolestCompaniesUseABPFramework": "Najbolj kul podjetja uporabljajo ogrodje ABP", + "Index_Page_Testimonial_1": "ABP Framework ni samo orodje, ampak katalizator, ki je pospešil mojo rast kot razvijalca. Omogočil mi je gradnjo novih funkcij hitreje kot kdaj koli prej, kar spominja na izkušnje drugih uporabnikov. Enoten vzorec kodiranja je poenostavil moje projekte in mi dal več časa, da se osredotočim na ustvarjanje namesto na odpravljanje težav. \n Rekel bi, da je bil okvir ABP temelj moje zgodnje poklicne poti. To mi je olajšalo prehod iz ambicioznega razvijalca v samozavestnega strokovnjaka, pripravljenega narediti pečat v svetu programske opreme. Veselim se vznemirljivih projektov, ki me čakajo, saj vem, da bo ABP tam, da me vodi. Je več kot le izdelek; je partner pri uspehu.", + "Index_Page_Testimonial_2": "Ogrodje ABP ni le ogrodje, je tudi vodilo za razvoj/upravljanje projektov, saj zagotavlja usposabljanja DDD, GenericRepository, DI, Microservice, Modularity. Tudi če ne boste uporabljali samega ogrodja, se lahko razvijate z docs.abp.io, ki je dobro in strokovno pripravljen. (OpenIddict, Redis, Quartz itd.) \n Ker je veliko stvari vnaprej zgrajenih, znatno skrajša čas razvoja projekta. (Kot so prijavna stran, obravnavanje izjem, filtriranje-sejanje podatkov, revizijsko beleženje, lokalizacija, samodejni krmilnik api itd.) \n Kot primer iz naše aplikacije sem za nadzor zalog uporabil lokalno vodilo dogodkov. Tako lahko upravljam premike naročil s pisanjem programa za obdelavo zalog. \n Čudovito je ne izgubljati časa za CreationTime, CreatorId. Polnijo se samodejno.", + "VideosLoginAndRegisterMessage": "Za ogled videoposnetkov se morate prijaviti. Če ga še niste, lahko ustvarite račun za uro.", + "Filter": "Filter", + "VideoCourses": "Video tečaji" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/vi.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/vi.json index 1092c8d9c0..c94d99d592 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/vi.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/vi.json @@ -174,6 +174,8 @@ "CreateProjectWizard": "Trình hướng dẫn này tạo một dự án mới từ mẫu khởi động được định cấu hình thích hợp để bắt đầu dự án của bạn.", "TieredOption": "Tạo ra một giải pháp phân cấp trong đó các lớp API Web và Http được tách biệt về mặt vật lý. Nếu không được chọn, hãy tạo một giải pháp phân lớp ít phức tạp hơn và phù hợp với hầu hết các tình huống.", "SeparateIdentityServerOption": "Tách phía máy chủ thành hai ứng dụng: Ứng dụng đầu tiên dành cho máy chủ nhận dạng và ứng dụng thứ hai dành cho API HTTP phía máy chủ của bạn.", + "SeparateAuthenticationServerOption": "Tách phía máy chủ thành hai ứng dụng: Ứng dụng thứ nhất dành cho máy chủ xác thực và ứng dụng thứ hai dành cho API HTTP phía máy chủ của bạn.", + "ProgressiveWebApplicationOption": "Chỉ định dự án là Ứng dụng web lũy tiến", "UseslatestPreVersion": "Sử dụng phiên bản phát hành trước mới nhất", "ReadTheDocumentation": " Đọc Tài liệu ", "Documentation": "Tài liệu", @@ -214,7 +216,11 @@ "SeeDocs": "Xem tài liệu", "None": "Không có", "Application": "Ứng dụng", + "ApplicationExplanation": "Tạo giải pháp phân lớp đầy đủ dựa trên thực tiễn Thiết kế theo hướng miền. Được đề xuất cho các dự án dài hạn cần cơ sở mã có thể mở rộng và bảo trì.", + "ApplicationNoLayer": "Ứng dụng (một lớp)", + "ApplicationNoLayerExplanation": "Tạo một ứng dụng web một lớp. Được đề xuất để xây dựng một ứng dụng có kiến trúc đơn giản và dễ hiểu hơn.", "Module": "Mô-đun", + "ModuleExplanation": "Tạo ra một giải pháp mô-đun ứng dụng được phân lớp đầy đủ, có thể tái sử dụng. Bạn có thể sử dụng tùy chọn này để tạo mô-đun cho ứng dụng mô-đun của mình.", "PackageName": "Tên gói hàng", "LicenseURL": "URL giấy phép", "License": "Giấy phép", @@ -274,8 +280,166 @@ "FirstEdition": "Ấn bản đầu tiên", "ThankYou": "Cảm ơn bạn!", "CheckboxMandatory": "Bạn cần kiểm tra điều này để tiếp tục!", + "UserInterface": "Giao diện người dùng", + "APIGateway": "Cổng API", + "Database": "Cơ sở dữ liệu", + "Saas": "Saas", + "OpenSourceWebApp": "Mã nguồn mở
ứng dụng web", + "Framework": "Khung", + "AuditLoggingExplanation": "Tự động theo dõi tất cả các hoạt động và thay đổi dữ liệu trong hệ thống của bạn.", + "AbpNewCommandExplanation": "Tạo các giải pháp mới bằng cách sử dụng các mẫu khởi động ABP.", + "AbpAddModuleCommandExplanation": "Cài đặt các mô-đun ứng dụng dựng sẵn vào giải pháp của bạn", + "AbpUpdateCommandExplanation": "Tự động cập nhật tất cả các gói NuGet và NPM liên quan đến ABP trong giải pháp của bạn.", + "ExploreAllCLICommands": "Khám phá tất cả các lệnh CLI", + "ExploreDocumentationAndGuides": "Khám phá các tài liệu và hướng dẫn toàn diện.", + "Documentations": "Tài liệu", + "Views": "Lượt xem", + "EnterYouEmailToGetNews": "Nhập email của bạn để nhận tin tức mới nhất về ABP Framework", + "Tiered": "theo cấp bậc", + "SeparateIdentityServer": "Máy chủ nhận dạng riêng biệt", + "SeparateAuthenticationServer": "Máy chủ xác thực riêng biệt", + "ProgressiveWebApplication": "Ứng dụng web tiến bộ", + "Preview": "Xem trước", + "CreateANewSolution": "Tạo một giải pháp mới", + "ABPFrameworkFeatures": "Tính năng của khung ABP", + "Commercial": "Thuộc về thương mại", + "ThirdPartyTools": "Công cụ của bên thứ ba", + "Back": "Mặt sau", + "Community": "Cộng đồng", + "SeeMore": "Xem thêm", + "DetailsOfTheEBook": "Chi tiết về Sách điện tử", + "JoinOurMarketingNewsletter": "Tham gia bản tin tiếp thị của chúng tôi", + "FrameworkNewsletterConfirmationMessage": "Tôi đồng ý với Điều khoản & Điều kiệnChính sách quyền riêng tư .", + "GetYourFreeEBook": "Nhận sách điện tử DDD miễn phí của bạn", + "EverythingYouNeedToKnow": "Mọi thư bạn cân biêt.", + "PreOrderNow": "Đặt mua ngay", + "UITheming": "Chủ đề giao diện người dùng", + "UIThemingExplanation": "Tạo các chủ đề và bố cục giao diện người dùng có thể sử dụng lại hoặc sử dụng một trong các chủ đề giao diện người dùng được tạo sẵn.", + "DataFilteringExplanation2": "Tự động lọc truy vấn từ cơ sở dữ liệu để dễ dàng triển khai các mẫu như xóa mềm và nhiều bên thuê.", + "NeedHelp": "Cần giúp đỡ?", + "GiveYourProjectAName": "Đặt tên cho dự án của bạn", + "SelectProjectType": "Chọn loại dự án", + "SelectUIFramework": "Chọn khung giao diện người dùng", + "SelectDatabaseProvider": "Chọn nhà cung cấp cơ sở dữ liệu", + "SelectDatabaseManagementSystem": "Chọn hệ thống quản lý cơ sở dữ liệu", + "InstallingTheABPCLI": "Cài đặt ABP CLI", + "CreateYourProjectNow": "Tạo dự án của bạn ngay bây giờ", + "OrderOn": "Đặt hàng trên {0}", + "DownloadFreeDDDBook": "Tải xuống sách DDD miễn phí", + "WhatIsABPFramework": "Khung ABP là gì?", + "TenantDatabase": "Cơ sở dữ liệu về người thuê {0}", + "SharedDatabase": "Cơ sở dữ liệu dùng chung", + "ConnectionResolver": "Trình giải quyết kết nối", + "TenantBasedDataFilter": "Bộ lọc dữ liệu dựa trên đối tượng thuê", + "ApplicationCode": "Mã ứng dụng", + "TenantResolution": "Giải pháp của người thuê nhà", + "TenantUser": "Người thuê {0} người dùng", + "CardTitle": "Tiêu đề thẻ", + "View": "Xem", + "Model": "Người mẫu", + "Email": "E-mail", + "Password": "Mật khẩu", + "Address": "Địa chỉ", + "Gender": "Giới tính", + "Male": "Nam giới", + "Female": "Nữ giới", + "Submit": "Nộp", + "Unspecified": "Không xác định", + "StaticFileMiddleware": "Phần mềm trung gian tệp tĩnh", + "RazorViewEngine": "Công cụ xem dao cạo", + "PhysicalFiles": "Tệp vật lý (wwwroot)", + "EmbeddedFiles": "Tệp nhúng (DLL)", + "DynamicFiles": "Tệp động (Bộ nhớ)", + "BuildSolutionsWithAbp": "Xây dựng các giải pháp .NET có thể bảo trì bằng cách làm theo các phương pháp hay nhất về phát triển phần mềm bằng cách sử dụng ABP.", + "BuyOnAmazon": "Mua trên Amazon", + "BuyOnPackt": "Mua trên Packt", + "Discounted": "Giảm giá", + "MasteringAbpFramework_Book_KeyFeatures": "Các tính năng chính", + "MasteringAbpFramework_Book_Key_Features_Description_1": "Xây dựng các giải pháp phần mềm mạnh mẽ, có thể bảo trì, mô-đun và có thể mở rộng bằng ABP Framework.", + "MasteringAbpFramework_Book_Key_Features_Description_2": "Tìm hiểu cách triển khai các nguyên tắc RẮN và thiết kế theo hướng miền trong các ứng dụng web của bạn.", + "MasteringAbpFramework_Book_Key_Features_Description_3": "Khám phá cách ABP Framework tăng tốc chu kỳ phát triển của bạn bằng cách tự động hóa các tác vụ lặp đi lặp lại.", + "MasteringAbpFramework_Book_Description": "Mô tả cuốn sách", + "MasteringAbpFramework_Book_Description_Details_1": "ABP Framework là một cơ sở hạ tầng hoàn chỉnh để tạo các ứng dụng web hiện đại bằng cách tuân theo các quy ước và thực tiễn tốt nhất về phát triển phần mềm \n . Với khuôn khổ và hệ sinh thái cấp cao của ABP, bạn có thể \n triển khai nguyên tắc Đừng lặp lại chính mình (DRY) và tập trung vào mã doanh nghiệp của mình.", + "MasteringAbpFramework_Book_Description_Details_2": "Được viết bởi người tạo ra ABP Framework, cuốn sách này sẽ giúp bạn có được sự hiểu biết đầy đủ về khung \n và các kỹ thuật phát triển ứng dụng web hiện đại. Với phần giải thích từng bước về các khái niệm \n thiết yếu và các ví dụ thực tế, bạn sẽ hiểu các yêu cầu của giải pháp web hiện đại và cách ABP \n Framework khiến việc phát triển các giải pháp của riêng bạn trở nên thú vị như thế nào. Bạn sẽ khám phá các yêu cầu chung của việc phát triển ứng dụng web doanh nghiệp \n và khám phá cơ sở hạ tầng do ABP cung cấp. Xuyên suốt cuốn sách \n , bạn sẽ nắm bắt được các phương pháp hay nhất về phát triển phần mềm để xây dựng các giải pháp web \n theo mô-đun và có thể bảo trì.", + "MasteringAbpFramework_Book_Description_Details_3": "Đến cuối cuốn sách này, bạn sẽ có thể tạo một giải pháp web hoàn chỉnh, dễ phát triển, bảo trì và thử nghiệm \n .", + "MasteringAbpFramework_Book_WhatYouWillLearn": "Bạn sẽ học được gì", + "MasteringAbpFramework_Book_What_You_Will_Learn_1": "Thiết lập môi trường phát triển và bắt đầu với ABP Framework.", + "MasteringAbpFramework_Book_What_You_Will_Learn_2": "Làm việc với Entity Framework Core và MongoDB để phát triển lớp truy cập dữ liệu của bạn.", + "MasteringAbpFramework_Book_What_You_Will_Learn_3": "Hiểu các mối quan tâm xuyên suốt và cách ABP tự động hóa các nhiệm vụ lặp đi lặp lại.", + "MasteringAbpFramework_Book_What_You_Will_Learn_4": "Nắm bắt được cách triển khai thiết kế hướng miền với ABP Framework.", + "MasteringAbpFramework_Book_What_You_Will_Learn_5": "Xây dựng các trang và thành phần giao diện người dùng với ASP.NET Core MVC (Trang dao cạo) và Blazor.", + "MasteringAbpFramework_Book_What_You_Will_Learn_6": "Làm việc với nhiều bên thuê để tạo các ứng dụng web mô-đun.", + "MasteringAbpFramework_Book_What_You_Will_Learn_7": "Hiểu tính mô-đun và tạo các mô-đun ứng dụng có thể tái sử dụng.", + "MasteringAbpFramework_Book_What_You_Will_Learn_8": "Viết các bài kiểm tra đơn vị, tích hợp và giao diện người dùng bằng ABP Framework.", + "MasteringAbpFramework_Book_WhoIsThisBookFor": "Cuốn sách này dành cho ai", + "MasteringAbpFramework_Book_WhoIsThisBookFor_Description": "Cuốn sách này dành cho các nhà phát triển web muốn tìm hiểu kiến trúc phần mềm và các phương pháp hay nhất để xây dựng các giải pháp dựa trên web có thể bảo trì \n bằng cách sử dụng các công nghệ của Microsoft và ABP Framework. Kiến thức cơ bản về C# \n và ASP.NET Core là cần thiết để bắt đầu với cuốn sách này.", + "ComputersAndTechnology": "Máy tính & Công nghệ", + "BuildingMicroserviceSolutions": "Xây dựng giải pháp microservice", + "MicroserviceBookPracticalGuide": "Cuốn sách này là hướng dẫn tham khảo để phát triển và quản lý các ứng dụng dựa trên vi dịch vụ bằng Khung ABP. Nó tham khảo Ứng dụng tham chiếu mẫu .NET Microservice : eShopOnContainers và thảo luận về các phương pháp triển khai và thiết kế kiến trúc bằng cách sử dụng ABP Framework. Đến cuối cuốn sách này, bạn sẽ tìm hiểu cách ABP tiếp cận các vấn đề phức tạp phổ biến của vi dịch vụ như ủy quyền, giao dịch phân tán, liên lạc giữa các vi dịch vụ, triển khai, v.v.", + "IntroducingTheSolution": "Giới thiệu Giải pháp eShopOnAbp", + "RunningTheSolution": "Chạy giải pháp", + "UnderstandingTheAuthenticationSystem": "Hiểu hệ thống xác thực", + "ExploringTheApplications": "Khám phá các ứng dụng", + "UnderstandingTheAPIGateways": "Hiểu các cổng API", + "DevelopingTheMicroservices": "Phát triển microservice", + "UnderstandingTheInfrastructure": "Hiểu cơ sở hạ tầng", + "DiggingInTheUseCases": "Đào sâu vào các trường hợp sử dụng", + "DeployingTheSolution": "Triển khai giải pháp", + "ThisBookIsInDraftStageAndIsNotCompletedYet": "Cuốn sách này đang ở giai đoạn phác thảo và chưa hoàn thiện.", + "Authors": "tác giả", + "MicroserviceEBook": "Sách điện tử microservice", "SelectUITheme": "Chọn chủ đề giao diện người dùng", + "LeptonXLiteTheme": "Chủ đề LeptonX Lite", + "BasicTheme": "Chủ đề cơ bản", + "LeptonXLiteThemeInfo": "Một chủ đề giao diện người dùng Bootstrap hiện đại và phong cách. Lý tưởng nếu bạn muốn có một chủ đề giao diện người dùng sẵn sàng cho sản xuất. Đây là chủ đề mới nhất và là chủ đề mặc định.", + "BasicThemeInfo": "Chủ đề giao diện người dùng tối giản với màu sắc và kiểu dáng Bootstrap đơn giản. Lý tưởng nếu bạn xây dựng chủ đề giao diện người dùng của riêng mình.", + "SeeDocumentation": "Xem tài liệu .", + "SeeFullScreen": "🖼️ Xem ảnh chụp màn hình", + "BuildingMicroserviceSolutionsShortDescription": "Cuốn sách này là hướng dẫn tham khảo để phát triển và quản lý các ứng dụng dựa trên vi dịch vụ bằng Khung ABP.", + "InstallAbpCliMessage": "Cài đặt ABP CLI trong thiết bị đầu cuối dòng lệnh, nếu bạn chưa cài đặt nó trước đó:", + "Terminal": "Phần cuối", + "Copy": "Sao chép", + "RunTheFollowingCommand": "Chạy lệnh sau trong thiết bị đầu cuối dòng lệnh:", + "ChangeSolutionOptionsBelow": "Bạn có thể thay đổi các tùy chọn giải pháp bên dưới.", + "MultiLayerApplication": "Nhiều lớp
Ứng dụng", + "MultiLayerApplicationExplanation1": "Tạo giải pháp phân lớp đầy đủ dựa trên thực tiễn Thiết kế theo hướng miền.", + "MultiLayerApplicationExplanation2": "Được đề xuất cho các dự án dài hạn cần cơ sở mã có thể mở rộng và bảo trì.", + "SingleLayerApplication": "Lớp đơn
Ứng dụng", + "SingleLayerApplicationExplanation1": "Tạo một ứng dụng web một lớp.", + "SingleLayerApplicationExplanation2": "Được đề xuất để xây dựng một ứng dụng có kiến trúc đơn giản và dễ hiểu hơn.", + "ApplicationModule": "Ứng dụng
mô-đun", + "SeeTheScreenshot": "Xem ảnh chụp màn hình", + "ApplicationModuleExplanation1": "Tạo ra một giải pháp mô-đun ứng dụng được phân lớp đầy đủ, có thể tái sử dụng.", + "ApplicationModuleExplanation2": "Bạn có thể sử dụng tùy chọn này để tạo mô-đun cho ứng dụng mô-đun của mình.", + "Expert_": "Chuyên gia", + "Partner_": "quan hệ đối tác", + "WebSite": "Trang mạng", + "Expert_Year": "Năm chuyên môn", + "CompanyInfo": "Thông tin công ty", + "Date": "Ngày", + "WhoWeAre_Partner": "Chúng ta là ai", + "WhoWeAre_Expert": "Về tôi", "CreateSolutionFolder": "Tạo thư mục giải pháp", - "CreateSolutionFolderOption": "Chỉ định xem dự án sẽ nằm trong một thư mục mới trong thư mục đầu ra hay trực tiếp trong thư mục đầu ra." + "CreateSolutionFolderOption": "Chỉ định xem dự án sẽ nằm trong một thư mục mới trong thư mục đầu ra hay trực tiếp trong thư mục đầu ra.", + "BooksPageTitle": "Sách ABP", + "PackageDetailPage_NuGetPackageInstallationOptions": "Có ba cách để cài đặt gói NuGet {0} vào dự án của bạn", + "PackageDetailPage_InstallingWithABPCLI": "1: Cài đặt bằng ABP CLI", + "PackageDetailPage_InstallingWithABPCLIDescription1": "Nếu bạn chưa cài đặt ABP CLI , trước tiên hãy cài đặt bằng cách thực hiện lệnh sau trong thiết bị đầu cuối dòng lệnh", + "PackageDetailPage_InstallingWithABPCLIDescription2": "Sau khi bạn đã cài đặt ABP CLI, hãy mở một thiết bị đầu cuối dòng lệnh ở vị trí của dự án (tệp .csproj ) mà bạn muốn cài đặt và thực hiện lệnh sau", + "PackageDetailPage_InstallingWithABPCLIDescription3": "Nó sẽ thêm tham chiếu gói {0} vào dự án của bạn và phần phụ thuộc {1} vào lớp mô-đun của bạn.", + "PackageDetailPage_ManualInstallation": "2: Cài đặt bằng Dotnet CLI", + "PackageDetailPage_ManualInstallationDescription1": "Thêm tham chiếu gói NuGet {0} vào dự án của bạn bằng IDE hoặc thực thi lệnh sau", + "PackageDetailPage_ManualInstallationDescription2": "Sau đó thêm phần phụ thuộc {0} vào lớp mô-đun của bạn như trong ví dụ sau", + "PackageDetailPage_SeeDocumentation": "Xem tài liệu để tìm hiểu cách sử dụng gói này trong ứng dụng của bạn.", + "PackageDetailPage_InstallingUsingPMC": "3: Cài đặt bằng Bảng điều khiển quản lý gói", + "PackageDetailPage_InstallingUsingPMCDescription1": "Mở Bảng điều khiển quản lý gói trong Visual Studio (Công cụ -> Trình quản lý gói Nuget -> Bảng điều khiển quản lý gói) và thực hiện lệnh sau", + "UIOptions": "Tùy chọn giao diện người dùng", + "Testimonials": "Lời chứng thực", + "CoolestCompaniesUseABPFramework": "Các công ty tuyệt vời nhất sử dụng ABP Framework", + "Index_Page_Testimonial_1": "ABP Framework không chỉ là một công cụ mà còn là chất xúc tác đã thúc đẩy sự phát triển của tôi với tư cách là một nhà phát triển. Nó giúp tôi có thể xây dựng các tính năng mới nhanh hơn bao giờ hết, gợi nhớ đến trải nghiệm của những người dùng khác. Mẫu mã hóa hợp nhất đã sắp xếp hợp lý các dự án của tôi, giúp tôi có nhiều thời gian hơn để tập trung vào việc tạo thay vì xử lý sự cố. \n Tôi có thể nói rằng Khung ABP đã là nền tảng cho hành trình chuyên nghiệp ban đầu của tôi. Nó đã tạo điều kiện thuận lợi cho quá trình chuyển đổi của tôi từ một nhà phát triển đầy tham vọng trở thành một chuyên gia tự tin, sẵn sàng tạo dấu ấn trong thế giới phần mềm. Tôi rất mong chờ những dự án thú vị đang chờ đợi mình vì biết rằng ABP sẽ ở đó để hướng dẫn tôi. Nó không chỉ là một sản phẩm; đó là một đối tác trong sự thành công.", + "Index_Page_Testimonial_2": "ABP Framework không chỉ là một framework mà còn là một hướng dẫn để phát triển/quản lý dự án vì nó cung cấp các khóa đào tạo về DDD, GenericRepository, DI, Microservice, moduleity. Ngay cả khi bạn không sử dụng framework, bạn vẫn có thể tự phát triển với docs.abp.io được chuẩn bị kỹ lưỡng và chuyên nghiệp. (OpenIddict, Redis, Quartz, v.v.) \n Bởi vì có nhiều thứ được xây dựng sẵn nên nó rút ngắn đáng kể thời gian phát triển dự án. (Chẳng hạn như trang đăng nhập, xử lý ngoại lệ, lọc dữ liệu, ghi nhật ký kiểm tra, bản địa hóa, bộ điều khiển api tự động, v.v.) \n Là một ví dụ từ ứng dụng của chúng tôi, tôi đã sử dụng Local Event Bus để kiểm soát hàng tồn kho. Vì vậy, tôi có thể quản lý việc di chuyển đơn hàng bằng cách viết trình xử lý hàng tồn kho. \n Thật tuyệt vời khi không lãng phí thời gian cho CreationTime, CreatorId. Chúng được điền tự động.", + "VideosLoginAndRegisterMessage": "Bạn phải đăng nhập để xem video. Bạn có thể tạo một tài khoản để xem nếu chưa có.", + "Filter": "Lọc", + "VideoCourses": "Khóa học video" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/zh-Hans.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/zh-Hans.json index c189506dd1..9533cda441 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/zh-Hans.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/zh-Hans.json @@ -174,6 +174,7 @@ "CreateProjectWizard": "此向导让你从启动模板创建一个新项目,该启动模板已正确配置为可以快速启动你的项目.", "TieredOption": "创建一个分层解决方案,其中Web和Http API层在物理上是分离的. 如果没有选中则创建一个不那么复杂且适合大多数场景的分层解决方案.", "SeparateIdentityServerOption": "将服务器端分离为两个应用程序:第一个应用程序用于身份服务器,第二个应用程序用于服务器端HTTP API.", + "SeparateAuthenticationServerOption": "将服务器端分为两个应用程序:第一个用于身份验证服务器,第二个用于服务器端 HTTP API。", "ProgressiveWebApplicationOption": "将项目指定为渐进式 Web 应用程序", "UseslatestPreVersion": "使用最新的预发布版本", "ReadTheDocumentation": "阅读文档", @@ -296,6 +297,7 @@ "EnterYouEmailToGetNews": "输入您的电子邮件以获取有关 ABP 框架的最新消息", "Tiered": "分层", "SeparateIdentityServer": "独立的身份服务器", + "SeparateAuthenticationServer": "单独的身份验证服务器", "ProgressiveWebApplication": "渐进式 Web 应用程序", "Preview": "预览", "CreateANewSolution": "创建一个新的解决方案", @@ -419,6 +421,25 @@ "WhoWeAre_Expert": "关于我", "CreateSolutionFolder": "创建解决方案文件夹", "CreateSolutionFolderOption": "指定项目是位于输出文件夹中的新文件夹中,还是直接位于输出文件夹中。", - "BooksPageTitle": "ABP书籍" + "BooksPageTitle": "ABP书籍", + "PackageDetailPage_NuGetPackageInstallationOptions": "可通过三种方式将{0} NuGet 包安装到您的项目中", + "PackageDetailPage_InstallingWithABPCLI": "1:使用ABP CLI安装", + "PackageDetailPage_InstallingWithABPCLIDescription1": "如果您尚未安装ABP CLI ,请首先通过在命令行终端中执行以下命令进行安装", + "PackageDetailPage_InstallingWithABPCLIDescription2": "安装 ABP CLI 后,在要安装的项目( .csproj文件)位置打开命令行终端并执行以下命令", + "PackageDetailPage_InstallingWithABPCLIDescription3": "它会将{0}包引用添加到您的项目,并将{1}依赖项添加到您的模块类。", + "PackageDetailPage_ManualInstallation": "2:使用Dotnet CLI安装", + "PackageDetailPage_ManualInstallationDescription1": "使用 IDE 或执行以下命令将{0} NuGet 包引用添加到您的项目", + "PackageDetailPage_ManualInstallationDescription2": "然后将{0}依赖项添加到您的模块类,如以下示例所示", + "PackageDetailPage_SeeDocumentation": "请参阅文档以了解如何在应用程序中使用此包。", + "PackageDetailPage_InstallingUsingPMC": "3:使用包管理器控制台安装", + "PackageDetailPage_InstallingUsingPMCDescription1": "在 Visual Studio 中打开包管理器控制台(工具 -> Nuget 包管理器 -> 包管理器控制台)并执行以下命令", + "UIOptions": "用户界面选项", + "Testimonials": "感言", + "CoolestCompaniesUseABPFramework": "最酷的公司使用ABP 框架", + "Index_Page_Testimonial_1": "ABP 框架不仅仅是一个工具,更是加速我作为开发人员成长的催化剂。它使我能够比以往更快地构建新功能,让人想起其他用户的体验。统一的编码模式简化了我的项目,让我有更多的时间专注于创建而不是故障排除。 \n我想说 ABP 框架是我早期职业生涯的基石。它帮助我从一个有抱负的开发人员转变为一个自信的专业人士,准备在软件世界中留下自己的印记。我期待着等待着我的激动人心的项目,因为我知道 ABP 会在那里指导我。它不仅仅是一个产品;它更是一个产品。它是成功的伙伴。", + "Index_Page_Testimonial_2": "ABP Framework不仅仅是一个框架,它还是项目开发/管理的指南,因为它提供了DDD、GenericRepository、DI、Microservice、Modularity培训。即使您不打算使用框架本身,您也可以使用经过充分专业准备的 docs.abp.io 进行开发。 (OpenIddict、Redis、Quartz 等) \n由于许多东西是预先构建的,因此它大大缩短了项目开发时间。 (例如登录页面、异常处理、数据过滤播种、审核日志记录、本地化、自动 api 控制器等) \n作为我们应用程序的示例,我使用本地事件总线进行库存控制。因此,我可以通过编写库存处理程序来管理订单变动。 \n不为CreationTime、CreatorId浪费时间真是太好了。它们会自动填充。", + "VideosLoginAndRegisterMessage": "您必须登录才能观看视频。如果您还没有,您可以创建一个手表帐户。", + "Filter": "筛选", + "VideoCourses": "视频课程" } -} +} \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/zh-Hant.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/zh-Hant.json index 9e12b4801e..1987f93595 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/zh-Hant.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/zh-Hant.json @@ -174,6 +174,8 @@ "CreateProjectWizard": "此嚮導從啟動模板創建一個新項目,該模板已正確配置為跳轉到您的項目。", "TieredOption": "創建分層解決方案,其中 Web 和 Http API 層在物理上是分開的。如果未選中,則創建一個不太複雜且適用於大多數場景的分層解決方案。", "SeparateIdentityServerOption": "將服務器端分為兩個應用程序:第一個用於身份服務器,第二個用於您的服務器端 HTTP API。", + "SeparateAuthenticationServerOption": "將伺服器端分為兩個應用程式:第一個用於身份驗證伺服器,第二個用於伺服器端 HTTP API。", + "ProgressiveWebApplicationOption": "將專案指定為漸進式 Web 應用程式", "UseslatestPreVersion": "使用最新的預發布版本", "ReadTheDocumentation": "閱讀文檔", "Documentation": "文檔", @@ -214,7 +216,11 @@ "SeeDocs": "查看文檔", "None": "空", "Application": "應用程序", + "ApplicationExplanation": "基於領域驅動設計實踐創建完全分層的解決方案。推薦用於需要可維護和可擴展程式碼庫的長期專案。", + "ApplicationNoLayer": "應用(單層)", + "ApplicationNoLayerExplanation": "建立單層 Web 應用程式。推薦用於建立具有更簡單且易於理解的架構的應用程式。", "Module": "模塊", + "ModuleExplanation": "建立可重複使用、完全分層的應用程式模組解決方案。您可以使用此選項為您的模組化應用程式建立模組。", "PackageName": "包名稱", "LicenseURL": "許可URL", "License": "許可", @@ -274,8 +280,166 @@ "FirstEdition": "第一版", "ThankYou": "謝謝!", "CheckboxMandatory": "你需要檢查這個才能繼續!", + "UserInterface": "使用者介面", + "APIGateway": "API網關", + "Database": "資料庫", + "Saas": "薩斯", + "OpenSourceWebApp": "開源
Web應用程式", + "Framework": "框架", + "AuditLoggingExplanation": "自動追蹤系統中的所有操作和數據變化。", + "AbpNewCommandExplanation": "使用 ABP 啟動範本建立新的解決方案。", + "AbpAddModuleCommandExplanation": "將預先建置的應用程式模組安裝到您的解決方案中", + "AbpUpdateCommandExplanation": "自動更新解決方案中所有與 ABP 相關的 NuGet 和 NPM 套件。", + "ExploreAllCLICommands": "探索所有 CLI 指令", + "ExploreDocumentationAndGuides": "探索全面的文件和指南。", + "Documentations": "文件", + "Views": "意見", + "EnterYouEmailToGetNews": "輸入您的電子郵件以獲取有關 ABP 框架的最新消息", + "Tiered": "分層", + "SeparateIdentityServer": "獨立的身份伺服器", + "SeparateAuthenticationServer": "單獨的身份驗證伺服器", + "ProgressiveWebApplication": "漸進式網頁應用程式", + "Preview": "預覽", + "CreateANewSolution": "建立新的解決方案", + "ABPFrameworkFeatures": "ABP框架特點", + "Commercial": "商業的", + "ThirdPartyTools": "第三方工具", + "Back": "後退", + "Community": "社群", + "SeeMore": "看更多", + "DetailsOfTheEBook": "電子書的詳細信息", + "JoinOurMarketingNewsletter": "加入我們的行銷通訊", + "FrameworkNewsletterConfirmationMessage": "我同意條款和條件以及隱私權政策。", + "GetYourFreeEBook": "取得免費的 DDD 電子書", + "EverythingYouNeedToKnow": "您需要知道的一切。", + "PreOrderNow": "立即預訂", + "UITheming": "使用者介面主題", + "UIThemingExplanation": "建立可重複使用的 UI 主題和佈局,或使用預先建置的 UI 主題之一。", + "DataFilteringExplanation2": "自動過濾資料庫查詢,輕鬆實現軟刪除和多租用戶等模式。", + "NeedHelp": "需要幫忙?", + "GiveYourProjectAName": "為您的專案命名", + "SelectProjectType": "選擇項目類型", + "SelectUIFramework": "選擇使用者介面框架", + "SelectDatabaseProvider": "選擇資料庫提供者", + "SelectDatabaseManagementSystem": "選擇資料庫管理系統", + "InstallingTheABPCLI": "安裝 ABP CLI", + "CreateYourProjectNow": "立即建立您的項目", + "OrderOn": "訂購日期:{0}", + "DownloadFreeDDDBook": "下載免費的 DDD 書籍", + "WhatIsABPFramework": "什麼是ABP框架?", + "TenantDatabase": "租戶 {0} 資料庫", + "SharedDatabase": "共享資料庫", + "ConnectionResolver": "連接解析器", + "TenantBasedDataFilter": "基於租戶的數據過濾器", + "ApplicationCode": "應用程式碼", + "TenantResolution": "租戶決議", + "TenantUser": "租戶 {0} 用戶", + "CardTitle": "卡標題", + "View": "看法", + "Model": "模型", + "Email": "電子郵件", + "Password": "密碼", + "Address": "地址", + "Gender": "性別", + "Male": "男性", + "Female": "女性", + "Submit": "提交", + "Unspecified": "未指定", + "StaticFileMiddleware": "靜態文件中介軟體", + "RazorViewEngine": "Razor 視圖引擎", + "PhysicalFiles": "物理文件 (wwwroot)", + "EmbeddedFiles": "嵌入檔案 (DLL)", + "DynamicFiles": "動態文件(記憶體)", + "BuildSolutionsWithAbp": "使用 ABP 遵循軟體開發最佳實務來建立可維護的 .NET 解決方案。", + "BuyOnAmazon": "在亞馬遜上購買", + "BuyOnPackt": "在 Packt 上購買", + "Discounted": "折扣", + "MasteringAbpFramework_Book_KeyFeatures": "主要特徵", + "MasteringAbpFramework_Book_Key_Features_Description_1": "使用 ABP 框架建構健壯、可維護、模組化和可擴展的軟體解決方案。", + "MasteringAbpFramework_Book_Key_Features_Description_2": "了解如何在 Web 應用程式中實作 SOLID 原則和領域驅動設計。", + "MasteringAbpFramework_Book_Key_Features_Description_3": "了解 ABP 框架如何透過自動化重複任務來加快您的開發週期。", + "MasteringAbpFramework_Book_Description": "書籍說明", + "MasteringAbpFramework_Book_Description_Details_1": "ABP 框架是一個完整的基礎設施,用於透過遵循軟體\n開發最佳實踐和約定來創建現代 Web 應用程式。透過 ABP 的高層框架和生態系統,您可以透過\n實現 Don't Repeat Yourself (DRY) 原則,專注於您的業務代碼。", + "MasteringAbpFramework_Book_Description_Details_2": "本書由 ABP 框架的創建者撰寫,將幫助您全面了解\n框架和現代 Web 應用程式開發技術。透過對\n基本概念和實際範例的逐步解釋,您將了解現代 Web 解決方案的要求以及 ABP \n框架如何讓您輕鬆開發自己的解決方案。您將發現\n企業 Web 應用程式開發的常見要求,並探索 ABP 提供的基礎架構。在整個\n書中,您將掌握用於建立可維護和模組化的\n Web 解決方案的軟體開發最佳實踐。", + "MasteringAbpFramework_Book_Description_Details_3": "讀完本書後,您將能夠創建一個易於開發、 \n維護和測試的完整 Web 解決方案。", + "MasteringAbpFramework_Book_WhatYouWillLearn": "你將學到什麼", + "MasteringAbpFramework_Book_What_You_Will_Learn_1": "建構開發環境並開始使用ABP框架。", + "MasteringAbpFramework_Book_What_You_Will_Learn_2": "使用 Entity Framework Core 和 MongoDB 開發資料存取層。", + "MasteringAbpFramework_Book_What_You_Will_Learn_3": "了解跨領域關注點以及 ABP 如何自動執行重複任務。", + "MasteringAbpFramework_Book_What_You_Will_Learn_4": "掌握使用 ABP 框架實現領域驅動設計。", + "MasteringAbpFramework_Book_What_You_Will_Learn_5": "使用 ASP.NET Core MVC (Razor Pages) 和 Blazor 建立 UI 頁面和元件。", + "MasteringAbpFramework_Book_What_You_Will_Learn_6": "使用多租用戶建立模組化 Web 應用程式。", + "MasteringAbpFramework_Book_What_You_Will_Learn_7": "了解模組化並創建可重複使用的應用程式模組。", + "MasteringAbpFramework_Book_What_You_Will_Learn_8": "使用 ABP 框架編寫單元、整合和 UI 測試。", + "MasteringAbpFramework_Book_WhoIsThisBookFor": "這本書適合誰", + "MasteringAbpFramework_Book_WhoIsThisBookFor_Description": "本書適用於想要學習軟體架構和使用 Microsoft 技術和 ABP 框架建立\n可維護的基於 Web 的解決方案的軟體架構和最佳實踐的 Web 開發人員。開始學習本書需要具備 C# \n和 ASP.NET Core 的基礎知識。", + "ComputersAndTechnology": "電腦與技術", + "BuildingMicroserviceSolutions": "建構微服務解決方案", + "MicroserviceBookPracticalGuide": "本書是使用 ABP 框架開發和管理基於微服務的應用程式的參考指南。它引用了.NET微服務範例參考應用程式:eShopOnContainers,並討論了使用ABP框架的架構設計和實作方法。在閱讀本書時,您將了解 ABP 如何處理常見的微服務複雜性,例如授權、分散式事務、微服務間通訊、部署等。", + "IntroducingTheSolution": "eShopOnAbp 解決方案簡介", + "RunningTheSolution": "運行解決方案", + "UnderstandingTheAuthenticationSystem": "了解身份驗證系統", + "ExploringTheApplications": "探索應用", + "UnderstandingTheAPIGateways": "了解 API 網關", + "DevelopingTheMicroservices": "開發微服務", + "UnderstandingTheInfrastructure": "了解基礎設施", + "DiggingInTheUseCases": "挖掘用例", + "DeployingTheSolution": "部署解決方案", + "ThisBookIsInDraftStageAndIsNotCompletedYet": "本書正處於草稿階段,尚未完成。", + "Authors": "作者", + "MicroserviceEBook": "微服務電子書", "SelectUITheme": "選擇 UI 主題", + "LeptonXLiteTheme": "LeptonX Lite 主題", + "BasicTheme": "基本主題", + "LeptonXLiteThemeInfo": "現代時尚的 Bootstrap UI 主題。如果您想要一個可用於生產的 UI 主題,那麼這是理想的選擇。這是最新的主題,並且是預設主題。", + "BasicThemeInfo": "極簡 UI 主題,具有簡單的 Bootstrap 顏色和樣式。如果您要建立自己的 UI 主題,這是理想的選擇。", + "SeeDocumentation": "請參閱文件。", + "SeeFullScreen": "🖼️看截圖", + "BuildingMicroserviceSolutionsShortDescription": "本書是使用 ABP 框架開發和管理基於微服務的應用程式的參考指南。", + "InstallAbpCliMessage": "如果您之前沒有安裝過,請在命令列終端機中安裝 ABP CLI:", + "Terminal": "終端", + "Copy": "複製", + "RunTheFollowingCommand": "在命令列終端機中執行以下命令:", + "ChangeSolutionOptionsBelow": "您可以更改下面的解決方案選項。", + "MultiLayerApplication": "多層
應用", + "MultiLayerApplicationExplanation1": "基於領域驅動設計實踐創建完全分層的解決方案。", + "MultiLayerApplicationExplanation2": "推薦用於需要可維護和可擴展程式碼庫的長期專案。", + "SingleLayerApplication": "單層
應用", + "SingleLayerApplicationExplanation1": "建立單層 Web 應用程式。", + "SingleLayerApplicationExplanation2": "推薦用於建立具有更簡單且易於理解的架構的應用程式。", + "ApplicationModule": "應用
模組", + "SeeTheScreenshot": "看截圖", + "ApplicationModuleExplanation1": "建立可重複使用、完全分層的應用程式模組解決方案。", + "ApplicationModuleExplanation2": "您可以使用此選項為您的模組化應用程式建立模組。", + "Expert_": "專家", + "Partner_": "合夥", + "WebSite": "網站", + "Expert_Year": "專業知識年份", + "CompanyInfo": "公司資訊", + "Date": "日期", + "WhoWeAre_Partner": "我們是誰", + "WhoWeAre_Expert": "關於我", "CreateSolutionFolder": "創建解決方案文件夾", - "CreateSolutionFolderOption": "指定項目是位於輸出文件夾中的新文件夾中,還是直接位於輸出文件夾中。" + "CreateSolutionFolderOption": "指定項目是位於輸出文件夾中的新文件夾中,還是直接位於輸出文件夾中。", + "BooksPageTitle": "ABP 書籍", + "PackageDetailPage_NuGetPackageInstallationOptions": "可透過三種方式將{0} NuGet 套件安裝到您的專案中", + "PackageDetailPage_InstallingWithABPCLI": "1:使用ABP CLI安裝", + "PackageDetailPage_InstallingWithABPCLIDescription1": "如果您尚未安裝ABP CLI ,請先透過在命令列終端機中執行以下命令進行安裝", + "PackageDetailPage_InstallingWithABPCLIDescription2": "安裝 ABP CLI 後,在要安裝的專案( .csproj檔案)位置開啟命令列終端並執行下列命令", + "PackageDetailPage_InstallingWithABPCLIDescription3": "它會將{0}包引用新增至您的項目,並將{1}依賴項新增至您的模組類別。", + "PackageDetailPage_ManualInstallation": "2:使用Dotnet CLI安裝", + "PackageDetailPage_ManualInstallationDescription1": "使用 IDE 或執行以下命令將{0} NuGet 套件引用新增至您的項目", + "PackageDetailPage_ManualInstallationDescription2": "然後將{0}依賴項新增至您的模組類,如下列範例所示", + "PackageDetailPage_SeeDocumentation": "請參閱文件以了解如何在應用程式中使用此套件。", + "PackageDetailPage_InstallingUsingPMC": "3:使用套件管理器控制台安裝", + "PackageDetailPage_InstallingUsingPMCDescription1": "在 Visual Studio 中開啟套件管理器控制台(工具 -> Nuget 套件管理器 -> 套件管理器控制台)並執行下列命令", + "UIOptions": "使用者介面選項", + "Testimonials": "感言", + "CoolestCompaniesUseABPFramework": "最酷的公司使用ABP 框架", + "Index_Page_Testimonial_1": "ABP 框架不僅僅是一個工具,更是加速我作為開發人員成長的催化劑。它使我能夠比以往更快地建立新功能,讓人想起其他用戶的體驗。統一的編碼模式簡化了我的項目,讓我有更多的時間專注於創建而不是故障排除。 \n我想說 ABP 框架是我早期職業生涯的基石。它幫助我從一個有抱負的開發人員轉變為一個自信的專業人士,準備在軟體世界中留下自己的印記。我期待著等待我的激動人心的項目,因為我知道 ABP 會在那裡指導我。它不僅僅是一個產品;它是成功的夥伴。", + "Index_Page_Testimonial_2": "ABP Framework不只是一個框架,它也是專案開發/管理的指南,因為它提供了DDD、GenericRepository、DI、Microservice、Modularity培訓。即使您不打算使用框架本身,您也可以使用經過充分專業準備的 docs.abp.io 進行開發。 (OpenIddict、Redis、Quartz 等) \n由於許多東西是預先建造的,因此它大大縮短了專案開發時間。 (例如登入頁面、異常處理、資料過濾播種、審核日誌記錄、本地化、自動 api 控制器等) \n作為我們應用程式的範例,我使用本地事件總線進行庫存控制。因此,我可以透過編寫庫存處理程序來管理訂單變更。 \n不浪費時間給CreationTime、CreatorId真是太好了。它們會自動填充。", + "VideosLoginAndRegisterMessage": "您必須登入才能觀看影片。如果您還沒有,您可以建立手錶帳戶。", + "Filter": "篩選", + "VideoCourses": "視訊課程" } } \ No newline at end of file diff --git a/docs/en/Application-Startup.md b/docs/en/Application-Startup.md index fb87080653..afa13fd050 100644 --- a/docs/en/Application-Startup.md +++ b/docs/en/Application-Startup.md @@ -144,7 +144,7 @@ AbpApplicationFactory.CreateAsync(typeof(MyConsoleDemoModule)); Both overloads work exactly the same. So, you can use the second one if you don't know the module class type on development time and you (somehow) calculate it on runtime. -If you create one of the methods above, ABP creates an internal service collection (`IServiceCollection`) and an internal service provider (`IServiceProvider`) to setup the [dependency injection](Dependency-Injection.md) system internally. Notice that we've used the `application.ServiceProvider` property in the *Installing a Framework Package* section to resolve the `IEmailSender` service from the dependency injection system. +If you use one of the methods above, ABP creates an internal service collection (`IServiceCollection`) and an internal service provider (`IServiceProvider`) to setup the [dependency injection](Dependency-Injection.md) system internally. Notice that we've used the `application.ServiceProvider` property in the *Installing a Framework Package* section to resolve the `IEmailSender` service from the dependency injection system. The next overload gets an `IServiceCollection` parameter from you to allow you to setup the dependency injection system yourself, or integrate to another framework (like ASP.NET Core) that also sets up the dependency injection system internally. diff --git a/docs/en/Dependency-Injection.md b/docs/en/Dependency-Injection.md index 143ec8cc19..3e49c0814f 100644 --- a/docs/en/Dependency-Injection.md +++ b/docs/en/Dependency-Injection.md @@ -269,6 +269,21 @@ public class MyService : ITransientDependency } ```` +#### IInjectPropertiesService + +You can use the `IInjectPropertiesService` service to inject properties of an object. Generally, it is a service outside of DI, such as manually created services. + +````C# +var injectPropertiesService = serviceProvider.GetRequiredService(); +var instance = new TestService(); + +// Set any properties on instance that can be resolved by IServiceProvider. +injectPropertiesService.InjectProperties(instance); + +// Set any null-valued properties on instance that can be resolved by the IServiceProvider. +injectPropertiesService.InjectUnsetProperties(instance); +```` + ### Resolve Service from IServiceProvider You may want to resolve a service directly from ``IServiceProvider``. In that case, you can inject `IServiceProvider` into your class and use the ``GetService`` or the `GetRequiredService` method as shown below: diff --git a/docs/en/Entities.md b/docs/en/Entities.md index 124e0adab1..02631d3e0b 100644 --- a/docs/en/Entities.md +++ b/docs/en/Entities.md @@ -138,8 +138,8 @@ if (book1.EntityEquals(book2)) //Check equality ABP does not force you to use aggregate roots, you can in fact use the `Entity` class as defined before. However, if you want to implement the [Domain Driven Design](Domain-Driven-Design.md) and want to create aggregate root classes, there are some best practices you may want to consider: -* An aggregate root is responsible to preserve it's own integrity. This is also true for all entities, but aggregate root has responsibility for it's sub entities too. So, the aggregate root must always be in a valid state. -* An aggregate root can be referenced by it's Id. Do not reference it by it's navigation property. +* An aggregate root is responsible for preserving its own integrity. This is also true for all entities, but the aggregate root has responsibility for its sub-entities too. So, the aggregate root must always be in a valid state. +* An aggregate root can be referenced by its `Id`. Do not reference it by its navigation property. * An aggregate root is treated as a single unit. It's retrieved and updated as a single unit. It's generally considered as a transaction boundary. * Work with sub-entities over the aggregate root- do not modify them independently. @@ -241,7 +241,7 @@ While this example may not implement all the best practices of an aggregate root * `Order` has a public constructor that takes **minimal requirements** to construct an `Order` instance. So, it's not possible to create an order without an id and reference number. The **protected/private** constructor is only necessary to **deserialize** the object while reading from a data source. * `OrderLine` constructor is internal, so it is only allowed to be created by the domain layer. It's used inside of the `Order.AddProduct` method. * `Order.AddProduct` implements the business rule to add a product to an order. -* All properties have `protected` setters. This is to prevent the entity from arbitrary changes from outside of the entity. For example, it would be dangerous to set `TotalItemCount` without adding a new product to the order. It's value is maintained by the `AddProduct` method. +* All properties have `protected` setters. This is to prevent the entity from arbitrary changes from outside of the entity. For example, it would be dangerous to set `TotalItemCount` without adding a new product to the order. Its value is maintained by the `AddProduct` method. ABP Framework does not force you to apply any DDD rule or patterns. However, it tries to make it possible and easier when you do want to apply them. The documentation also follows the same principle. diff --git a/docs/en/Migration-Guides/Abp-8_0.md b/docs/en/Migration-Guides/Abp-8_0.md index 9285858501..ef45d2a79e 100644 --- a/docs/en/Migration-Guides/Abp-8_0.md +++ b/docs/en/Migration-Guides/Abp-8_0.md @@ -4,6 +4,12 @@ This document is a guide for upgrading ABP v7.x solutions to ABP v8.0. There are > ABP Framework upgraded to .NET 8.0, so you need to move your solutions to .NET 8.0 if you want to use the ABP 8.0. You can check the [Migrate from ASP.NET Core 7.0 to 8.0](https://learn.microsoft.com/en-us/aspnet/core/migration/70-80) documentation. +## Upgraded to OpenIddict to 5.0.0 + +The 5.0 release of OpenIddict is a major release that introduces breaking changes. + +See [OpenIddict 4.x to 5.x Migration Guide](OpenIddict4-to-5.md) for more information. + ## Injected the `IDistributedEventBus` Dependency into the `IdentityUserManager` In this version, `IDistributedEventBus` service has been injected to the `IdentityUserManager` service, to publish a distributed event when the email or username is changed for a user, this was needed because sometimes there may be scenarios where the old email/username is needed for the synchronization purposes. @@ -247,12 +253,12 @@ You can see the following list of NuGet libraries that have been upgraded with . | Npgsql.EntityFrameworkCore.PostgreSQL | 7.0.0 | 8.0.0 | | NSubstitute.Analyzers.CSharp | 1.0.15 | 1.0.16 | | Octokit | 0.50.0 | 9.0.0 | -| OpenIddict.Abstractions | 4.8.0 | 4.10.0 | -| OpenIddict.Core | 4.8.0 | 4.10.0 | -| OpenIddict.Server.AspNetCore | 4.8.0 | 4.10.0 | -| OpenIddict.Validation.AspNetCore | 4.8.0 | 4.10.0 | -| OpenIddict.Validation.ServerIntegration | 4.8.0 | 4.10.0 | -| Oracle.EntityFrameworkCore | 7.21.8 | 7.21.12 | +| OpenIddict.Abstractions | 4.8.0 | 5.0.0 | +| OpenIddict.Core | 4.8.0 | 5.0.0 | +| OpenIddict.Server.AspNetCore | 4.8.0 | 5.0.0 | +| OpenIddict.Validation.AspNetCore | 4.8.0 | 5.0.0 | +| OpenIddict.Validation.ServerIntegration | 4.8.0 | 5.0.0 | +| Oracle.EntityFrameworkCore | 7.21.8 | 8.21.121 | | Polly | 7.2.3 | 8.2.0 | | Pomelo.EntityFrameworkCore.MySql | 7.0.0 | 8.0.0-beta.2 | | Quartz | 3.4.0 | 3.7.0 | diff --git a/docs/en/Migration-Guides/OpenIddict4-to-5.md b/docs/en/Migration-Guides/OpenIddict4-to-5.md new file mode 100644 index 0000000000..b8eb1ffb87 --- /dev/null +++ b/docs/en/Migration-Guides/OpenIddict4-to-5.md @@ -0,0 +1,108 @@ +# OpenIddict 4.x to 5.x Migration Guide + +The 5.0 release of OpenIddict is a major release that introduces breaking changes. + +Check this blog [OpenIddict 5.0 general availability](https://kevinchalet.com/2023/12/18/openiddict-5-0-general-availability/) for the new features introduced in OpenIddict 5.0. + +I will show the changes you need to make to do the migration. + +> Please backup your database before doing the migration. + +## OpenIddictApplication changes + +1. The `Type(string)` of the `OpenIddictApplication` has been renamed to `ClientType(string)`. +2. The `ApplicationType(string)` has been added to the `OpenIddictApplication` entity. +3. The `JsonWebKeySet(string)` has been added to the `OpenIddictApplication` entity. +4. The `Settings(string)` has been added to the `OpenIddictApplication` entity. + +The new migration looks like this: + +````csharp +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace OpenIddict.Demo.Server.Migrations +{ + /// + public partial class openiddict5 : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.RenameColumn( + name: "Type", + table: "OpenIddictApplications", + newName: "ClientType"); + + migrationBuilder.AddColumn( + name: "ApplicationType", + table: "OpenIddictApplications", + type: "nvarchar(50)", + maxLength: 50, + nullable: true); + + migrationBuilder.AddColumn( + name: "JsonWebKeySet", + table: "OpenIddictApplications", + type: "nvarchar(max)", + nullable: true); + + migrationBuilder.AddColumn( + name: "Settings", + table: "OpenIddictApplications", + type: "nvarchar(max)", + nullable: true); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropColumn( + name: "ApplicationType", + table: "OpenIddictApplications"); + + migrationBuilder.DropColumn( + name: "JsonWebKeySet", + table: "OpenIddictApplications"); + + migrationBuilder.DropColumn( + name: "Settings", + table: "OpenIddictApplications"); + + migrationBuilder.RenameColumn( + name: "ClientType", + table: "OpenIddictApplications", + newName: "Type"); + } + } +} +```` + +## OpenIddictApplicationModel changes + +1. The `Type(string)` of the `OpenIddictApplicationModel` has been renamed to `ClientType(string)`. +2. The `ApplicationType(string)` has been added to the `OpenIddictApplicationModel` entity. +3. The `JsonWebKeySet`([JsonWebKeySet](https://learn.microsoft.com/en-us/dotnet/api/microsoft.identitymodel.tokens.jsonwebkeyset)) has been added to the `OpenIddictApplicationModel` entity. +4. The `Settings(string)` has been added to the `OpenIddictApplicationModel` entity. + +## OpenIddictApplicationDescriptor changes + +You have to change the `Type` to `ClientType` when creating a new `AbpApplicationDescriptor` or `OpenIddictApplicationDescriptor`. + +````csharp +var application = new AbpApplicationDescriptor { + ClientId = name, +- Type = type, ++ ClientType = type, + ClientSecret = secret, + ConsentType = consentType, + DisplayName = displayName, +```` + +## OpenIddict Pro module UI changes + +You can change the `ApplicationType` when creating/editing a OpenIddict's application, also set time life of the tokens for each application. + +![ropeniddict-pro-application-modal](images/openiddict-pro-application-modal.png) +![openiddict-pro-application-timelife-modal](images/openiddict-pro-application-timelife-modal.png) diff --git a/docs/en/Migration-Guides/images/openiddict-pro-application-modal.png b/docs/en/Migration-Guides/images/openiddict-pro-application-modal.png new file mode 100644 index 0000000000..10fe722053 Binary files /dev/null and b/docs/en/Migration-Guides/images/openiddict-pro-application-modal.png differ diff --git a/docs/en/Migration-Guides/images/openiddict-pro-application-timelife-modal.png b/docs/en/Migration-Guides/images/openiddict-pro-application-timelife-modal.png new file mode 100644 index 0000000000..b951c1f93d Binary files /dev/null and b/docs/en/Migration-Guides/images/openiddict-pro-application-timelife-modal.png differ diff --git a/docs/en/Repositories.md b/docs/en/Repositories.md index 03fb27ab50..8ed8fda63a 100644 --- a/docs/en/Repositories.md +++ b/docs/en/Repositories.md @@ -170,7 +170,7 @@ If your entity is a soft-delete entity, you can use the `HardDeleteAsync` method Some features (like soft-delete, multi-tenancy and audit logging) won't work, so use this method carefully when you need it. Use the `DeleteAsync` method if you need to these features. -> Currently only [EF Core supports it](https://learn.microsoft.com/en-us/ef/core/what-is-new/ef-core-7.0/whatsnew#basic-executedelete-examples), For the ORMs doesn't support direct delete, we will fallback to the existing `DeleteAsync` method. +> Currently only [EF Core supports it](https://learn.microsoft.com/en-us/ef/core/what-is-new/ef-core-7.0/whatsnew#basic-executedelete-examples), For the ORMs that don't support direct delete, we will fallback to the existing `DeleteAsync` method. ### Ensure Entities Exists diff --git a/docs/en/Themes/LeptonXLite/Angular.md b/docs/en/Themes/LeptonXLite/Angular.md index 3a82c77495..e7c8142bda 100644 --- a/docs/en/Themes/LeptonXLite/Angular.md +++ b/docs/en/Themes/LeptonXLite/Angular.md @@ -24,12 +24,13 @@ yarn add @abp/ng.theme.lepton-x yarn add bootstrap-icons ``` -- Then, we need to edit the styles array in `angular.json` to replace the existing style with the new one in the following link : +- Then, we need to edit the styles array in `angular.json` to replace the existing style with the new one in the following link : * [Styles - Angular UI](../../UI/Angular/Theme-Configurations.md) Note: You should remove the old theme styles from "angular.json" if you are switching from "ThemeBasic" or "Lepton." Look at the [Theme Configurations](../../UI/Angular/Theme-Configurations) list of styles. Depending on your theme, you can alter your styles in angular.json. + - Finally, remove `ThemeBasicModule` from `app.module.ts`, and import the related modules in `app.module.ts` ```js @@ -153,7 +154,7 @@ this.replaceableComponents.add({ ![Breadcrumb component](../../images/leptonxlite-breadcrumb-component.png) -## Sidebar Menu Component +## Navbar Component Sidebar menus have been used as a **directory for Related Pages** to a **Service** offering, **Navigation** items to a **specific service** or topic and even just as **Links** the user may be interested in. @@ -161,7 +162,7 @@ Sidebar menus have been used as a **directory for Related Pages** to a **Service ///... this.replaceableComponents.add({ component: YourNewSidebarComponent, - key: eThemeLeptonXComponents.Sidebar, + key: eThemeLeptonXComponents.Navbar, }); ///... ``` @@ -262,10 +263,9 @@ The Mobile User-Profile component key is `eThemeLeptonXComponents.MobileUserProf ![Angular Footer Component](../../images/angular-footer.png) The Footer is the section of content at the very bottom of the site. This section of the content can be modified. -Inject **FooterLinksService** and use the **setFooterInfo** method of **FooterLinksService** +Inject **FooterLinksService** and use the **setFooterInfo** method of **FooterLinksService** to assign path or link and description. -**descUrl** and **footerLinks** are nullable. Constant **footerLinks** are on the right side of footer. - +**descUrl** and **footerLinks** are nullable. Constant **footerLinks** are on the right side of footer. ```js ///... @@ -291,6 +291,7 @@ this.footerLinksService.setFooterInfo(footerInfo); ///... ``` + If you want to change the footer component, the key is `eThemeLeptonXComponents.Footer` ```js @@ -301,5 +302,3 @@ this.replaceableComponents.add({ }); ///... ``` - - diff --git a/docs/en/UI/Angular/Data-Table-Column-Extensions.md b/docs/en/UI/Angular/Data-Table-Column-Extensions.md index 7660ec5550..babb329feb 100644 --- a/docs/en/UI/Angular/Data-Table-Column-Extensions.md +++ b/docs/en/UI/Angular/Data-Table-Column-Extensions.md @@ -24,7 +24,7 @@ import { IdentityEntityPropContributors, IdentityUserDto, } from '@abp/ng.identity'; -import { EntityProp, EntityPropList, ePropType } from '@abp/ng.theme.shared/extensions'; +import { EntityProp, EntityPropList, ePropType } from '@abp/ng.components/extensible'; const nameProp = new EntityProp({ type: ePropType.String, @@ -93,7 +93,7 @@ import { IdentityEntityPropContributors, IdentityUserDto, } from '@abp/ng.identity'; -import { EntityProp, EntityPropList } from '@abp/ng.theme.shared/extensions'; +import { EntityProp, EntityPropList } from '@abp/ng.components/extensible'; import { of } from 'rxjs'; export function emailPropContributor(propList: EntityPropList) { diff --git a/docs/en/UI/Angular/Dynamic-Form-Extensions.md b/docs/en/UI/Angular/Dynamic-Form-Extensions.md index 1aab112c21..52a1f6cb86 100644 --- a/docs/en/UI/Angular/Dynamic-Form-Extensions.md +++ b/docs/en/UI/Angular/Dynamic-Form-Extensions.md @@ -25,7 +25,7 @@ import { IdentityCreateFormPropContributors, } from '@abp/ng.identity'; import { IdentityUserDto } from '@abp/ng.identity/proxy'; -import { ePropType, FormProp, FormPropList } from '@abp/ng.theme.shared/extensions'; +import { ePropType, FormProp, FormPropList } from '@abp/ng.components/extensible'; import { Validators } from '@angular/forms'; const birthdayProp = new FormProp({ @@ -248,7 +248,7 @@ import { EXTENSIBLE_FORM_VIEW_PROVIDER, EXTENSIONS_FORM_PROP, EXTENSIONS_FORM_PROP_DATA, -} from '@abp/ng.theme.shared/extensions'; +} from '@abp/ng.components/extensible'; @Component({ diff --git a/docs/en/UI/Angular/Entity-Action-Extensions.md b/docs/en/UI/Angular/Entity-Action-Extensions.md index d93b2045f6..b715479f12 100644 --- a/docs/en/UI/Angular/Entity-Action-Extensions.md +++ b/docs/en/UI/Angular/Entity-Action-Extensions.md @@ -21,7 +21,7 @@ The following code prepares a constant named `identityEntityActionContributors`, import { eIdentityComponents, IdentityEntityActionContributors } from '@abp/ng.identity'; import { IdentityUserDto } from '@abp/ng.identity/proxy'; -import { EntityAction, EntityActionList } from '@abp/ng.theme.shared/extensions'; +import { EntityAction, EntityActionList } from '@abp/ng.components/extensible'; const alertUserName = new EntityAction({ text: 'Click Me!', @@ -93,7 +93,7 @@ Let's employ dependency injection to extend the functionality of `IdentityModule IdentityEntityActionContributors, IdentityUserDto, } from '@abp/ng.identity'; - import { EntityAction, EntityActionList } from '@abp/ng.theme.shared/extensions'; + import { EntityAction, EntityActionList } from '@abp/ng.components/extensible'; import { IdentityExtendedComponent } from './identity-extended.component'; const quickViewAction = new EntityAction({ diff --git a/docs/en/UI/Angular/How-Replaceable-Components-Work-with-Extensions.md b/docs/en/UI/Angular/How-Replaceable-Components-Work-with-Extensions.md index d388e48ade..c617b89a14 100644 --- a/docs/en/UI/Angular/How-Replaceable-Components-Work-with-Extensions.md +++ b/docs/en/UI/Angular/How-Replaceable-Components-Work-with-Extensions.md @@ -25,7 +25,7 @@ import { EXTENSIONS_IDENTIFIER, FormPropData, generateFormFromProps -} from '@abp/ng.theme.shared/extensions'; +} from '@abp/ng.components/extensible'; import { Component, Injector, OnInit } from '@angular/core'; import { FormGroup } from '@angular/forms'; import { finalize } from 'rxjs/operators'; diff --git a/docs/en/UI/Angular/Page-Toolbar-Extensions.md b/docs/en/UI/Angular/Page-Toolbar-Extensions.md index 1edc9594fb..dbcc2a3c08 100644 --- a/docs/en/UI/Angular/Page-Toolbar-Extensions.md +++ b/docs/en/UI/Angular/Page-Toolbar-Extensions.md @@ -24,7 +24,7 @@ import { IdentityToolbarActionContributors } from '@abp/ng.identity'; import { IdentityUserDto } from '@abp/ng.identity/proxy'; -import { ToolbarAction, ToolbarActionList } from '@abp/ng.theme.shared/extensions'; +import { ToolbarAction, ToolbarActionList } from '@abp/ng.components/extensible'; const logUserNames = new ToolbarAction({ text: 'Click Me!', @@ -94,7 +94,7 @@ We need to have a component before we can pass it to the toolbar action contribu // src/app/click-me-button.component.ts import { IdentityUserDto } from '@abp/ng.identity/proxy'; -import { ActionData, EXTENSIONS_ACTION_DATA } from '@abp/ng.theme.shared/extensions'; +import { ActionData, EXTENSIONS_ACTION_DATA } from '@abp/ng.components/extensible'; import { Component, Inject } from '@angular/core'; @Component({ @@ -116,7 +116,7 @@ export class ClickMeButtonComponent { Here, `EXTENSIONS_ACTION_DATA` token provides us the context from the page toolbar. Therefore, we are able to reach the page data via `record`, which is an array of users, i.e. `IdentityUserDto[]`. -> We could also import `EXTENSIONS_ACTION_CALLBACK` from **@abp/ng.theme.shared/extensions** package, which is a higher order function that triggers the predefined `action` when called. It passes `ActionData` as the first parameter, so you do not have to pass it explicitly. In other words, `EXTENSIONS_ACTION_CALLBACK` can be called without any parameters and it will not fail. +> We could also import `EXTENSIONS_ACTION_CALLBACK` from **@abp/ng.components/extensible** package, which is a higher order function that triggers the predefined `action` when called. It passes `ActionData` as the first parameter, so you do not have to pass it explicitly. In other words, `EXTENSIONS_ACTION_CALLBACK` can be called without any parameters and it will not fail. ### Step 2. Create Toolbar Action Contributors @@ -130,7 +130,7 @@ import { IdentityToolbarActionContributors } from '@abp/ng.identity'; import { IdentityUserDto } from '@abp/ng.identity/proxy'; -import { ToolbarActionList, ToolbarComponent } from '@abp/ng.theme.shared/extensions'; +import { ToolbarActionList, ToolbarComponent } from '@abp/ng.components/extensible'; import { ClickMeButtonComponent } from './click-me-button.component'; const logUserNames = new ToolbarComponent({ diff --git a/docs/en/UI/Angular/Sorting-Navigation-Elements.md b/docs/en/UI/Angular/Sorting-Navigation-Elements.md index 3eac9901d6..6624bc39d1 100644 --- a/docs/en/UI/Angular/Sorting-Navigation-Elements.md +++ b/docs/en/UI/Angular/Sorting-Navigation-Elements.md @@ -1,46 +1,37 @@ # Sorting Navigation Elements -This documentation describes how the navigation elements are sorted and how to change this default behaviour. -When you want to add the `Navigation Element` you can use the `RoutesService`. For more details, see the [document](https://docs.abp.io/en/abp/latest/UI/Angular/Modifying-the-Menu#how-to-add-a-navigation-element). -However, in this documentation, we will talk more about how to sort the navigation elements with the `order` attribute from the `Routes Service`. +This documentation describes how the navigation elements are sorted and how to change this default behaviour. +- When you want to add the `Navigation Element` you can use the `RoutesService`. For more details, see the [document](https://docs.abp.io/en/abp/latest/UI/Angular/Modifying-the-Menu#how-to-add-a-navigation-element). +- However, in this documentation, we will talk more about how to sort the navigation elements. ### Order Property -- This parameter is optional and is used for sorting purposes. -- If you define this property it will be sorted by the default sorting function. -- You can edit this function. -**Default Compare Function;** -``compare-func.token.ts`` +- Normally, you are able to sort your routes with this property. But you can customize our default sorting algorithm. + +## Default Sorting algorithm + +- To see our default sorting algorithm [click](https://github.com/abpframework/abp/blob/dev/npm/ng-packs/packages/core/src/lib/tokens/compare-func.token.ts) here. + **What does this function do?** + - if the order property is defined, then it will be sorted by the order value. + - if both of the navigation elements have the same order value then it will be sorted by the name. + - If the order property is not defined, it will be the last element and the unordered navs will be sorted by name. + +# How to Customize + +**`in app.module.ts`** + ```ts -export const SORT_COMPARE_FUNC = new InjectionToken<0 | 1 | -1>('SORT_COMPARE_FUNC'); - -export function compareFuncFactory() { - const localizationService = inject(LocalizationService); - const fn = (a,b) => { - const aName = localizationService.instant(a.name); - const bName = localizationService.instant(b.name); - - const aNumber = a.order; - const bNumber = b.order; - - if (!Number.isInteger(aNumber)) return 1; - if (!Number.isInteger(bNumber)) return -1; - - if (aNumber > bNumber) return 1 - if (aNumber < bNumber) return -1 - - if (aName > bName ) return 1; - if (aName < bName ) return -1; - - return 0 - } - return fn; -} -``` -**What does this function do?** -- if the order property is defined, then it will be sorted by the order value. -- if both of the navigation elements have the same order value then it will be sorted by the name. -- If the order property is not defined, it will be the last element and the unordered navs will be sorted by name. +import { SORT_COMPARE_FUNC } from "@abp/ng.core"; -You can edit this sorting function behaviour as you wish. +@NgModule({ + providers: [ + ...{ + provide: SORT_COMPARE_FUNC, + useFactory: yourCompareFuncFactory, + }, + ], + // imports, declarations, and bootstrap +}) +export class AppModule {} +``` diff --git a/docs/en/UI/Blazor/Forms-Validation.md b/docs/en/UI/Blazor/Forms-Validation.md new file mode 100644 index 0000000000..da703d3921 --- /dev/null +++ b/docs/en/UI/Blazor/Forms-Validation.md @@ -0,0 +1,40 @@ +# Blazor UI: Forms & Validation + +ABP Framework Blazor UI is based on the [Blazorise](https://blazorise.com/docs) and does not have a built-in form validation infrastructure. However, you can use the [Blazorise validation infrastructure](https://blazorise.com/docs/components/validation) to validate your forms. + +## Sample + +_The example is provided by official Blazorise documentation._ + +```html + + + + Please enter the name. + Name is good. + Enter valid name! + + + + + + + + Please enter the email. + Email is good. + Enter valid email! + + + +@code{ + void ValidateEmail( ValidatorEventArgs e ) + { + var email = Convert.ToString( e.Value ); + + e.Status = string.IsNullOrEmpty( email ) ? ValidationStatus.None : + email.Contains( "@" ) ? ValidationStatus.Success : ValidationStatus.Error; + } +} +``` + +> Check the [Blazorise documentation](https://blazorise.com/docs/components/validation) for more information and examples. \ No newline at end of file diff --git a/docs/en/docs-nav.json b/docs/en/docs-nav.json index 23180bdb06..8e766c7430 100644 --- a/docs/en/docs-nav.json +++ b/docs/en/docs-nav.json @@ -878,6 +878,10 @@ "text": "Navigation / Menu", "path": "UI/Blazor/Navigation-Menu.md" }, + { + "text": "Forms & Validation", + "path": "UI/Blazor/Forms-Validation.md" + }, { "text": "Localization", "path": "UI/Blazor/Localization.md" diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/wwwroot/libs/abp/aspnetcore-mvc-ui-theme-shared/datatables/datatables-extensions.js b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/wwwroot/libs/abp/aspnetcore-mvc-ui-theme-shared/datatables/datatables-extensions.js index 15d290fa37..7060597756 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/wwwroot/libs/abp/aspnetcore-mvc-ui-theme-shared/datatables/datatables-extensions.js +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/wwwroot/libs/abp/aspnetcore-mvc-ui-theme-shared/datatables/datatables-extensions.js @@ -248,8 +248,6 @@ var abp = abp || {}; return; } - var cells = $(nRow).children("td"); - for (var colIndex = 0; colIndex < columns.length; colIndex++) { var column = columns[colIndex]; if (column.rowAction) { @@ -257,9 +255,16 @@ var abp = abp || {}; hideEmptyColumn($actionContainer, tableInstance, colIndex); if ($actionContainer) { - var $actionButton = $(cells[colIndex]).find(".abp-action-button"); - if ($actionButton.length === 0) { - $(cells[colIndex]).empty().append($actionContainer); + var cells = $(nRow).children("td"); + for (var i = 0; i < cells.length; i++) { + var cell = cells[i]; + if (cell._DT_CellIndex && cell._DT_CellIndex.row === iDisplayIndex && cell._DT_CellIndex.column === colIndex) { + var $actionButton = $(cell).find(".abp-action-button"); + if ($actionButton.length === 0) { + $(cell).empty().append($actionContainer); + }; + break; + } } } } diff --git a/framework/src/Volo.Abp.AspNetCore.SignalR/Volo/Abp/AspNetCore/SignalR/AbpAspNetCoreSignalRModule.cs b/framework/src/Volo.Abp.AspNetCore.SignalR/Volo/Abp/AspNetCore/SignalR/AbpAspNetCoreSignalRModule.cs index 541b36aa14..bbaa45a26e 100644 --- a/framework/src/Volo.Abp.AspNetCore.SignalR/Volo/Abp/AspNetCore/SignalR/AbpAspNetCoreSignalRModule.cs +++ b/framework/src/Volo.Abp.AspNetCore.SignalR/Volo/Abp/AspNetCore/SignalR/AbpAspNetCoreSignalRModule.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Linq; using System.Reflection; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Http.Connections; @@ -54,10 +55,17 @@ public class AbpAspNetCoreSignalRModule : AbpModule .GetRequiredService>() .Value; + var hubWithRoutePatterns = new List>(); foreach (var hubConfig in signalROptions.Hubs) { routePatterns.AddIfNotContains(hubConfig.RoutePattern); + if (hubWithRoutePatterns.Any(x => x.Key == hubConfig.HubType && x.Value == hubConfig.RoutePattern)) + { + throw new AbpException($"The hub type {hubConfig.HubType.FullName} is already registered with route pattern {hubConfig.RoutePattern}"); + } + + hubWithRoutePatterns.Add(new KeyValuePair(hubConfig.HubType, hubConfig.RoutePattern)); MapHubType( hubConfig.HubType, endpointContext.Endpoints, diff --git a/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Localization/de.json b/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Localization/de.json new file mode 100644 index 0000000000..1a924f008f --- /dev/null +++ b/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Localization/de.json @@ -0,0 +1,10 @@ +{ + "culture": "de", + "texts": { + "Volo.Authorization:010001": "Autorisation fehlgeschlagen! Die gegebene Richtlinie wurde nicht gewährt.", + "Volo.Authorization:010002": "Autorisation fehlgeschlagen! Die angegebene Richtlinie wurde nicht gewährt: {PolicyName}", + "Volo.Authorization:010003": "Autorisation fehlgeschlagen! Die angegebene Richtlinie wurde für die angegebene Ressource nicht gewährt: {ResourceName}", + "Volo.Authorization:010004": "Autorisation fehlgeschlagen! Die angegebene Anforderung wurde für die angegebene Ressource nicht erfüllt: {ResourceName}", + "Volo.Authorization:010005": "Autorisation fehlgeschlagen! Die angegebenen Anforderungen wurden für die angegebene Ressource nicht erfüllt: {ResourceName}" + } +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Localization/hr.json b/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Localization/hr.json new file mode 100644 index 0000000000..971e0a205d --- /dev/null +++ b/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Localization/hr.json @@ -0,0 +1,10 @@ +{ + "culture": "hr", + "texts": { + "Volo.Authorization:010001": "Autorizacija neuspjela! Dana politika nije odobrena.", + "Volo.Authorization:010002": "Autorizacija neuspjela! Dato pravilo nije odobreno: {PolicyName}", + "Volo.Authorization:010003": "Autorizacija neuspjela! Navedeno pravilo nije odobreno za navedeni resurs: {ResourceName}", + "Volo.Authorization:010004": "Autorizacija neuspjela! Navedeni zahtjev nije odobren za navedeni resurs: {ResourceName}", + "Volo.Authorization:010005": "Autorizacija neuspjela! Zadani zahtjevi nisu odobreni za navedeni resurs: {ResourceName}" + } +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.Autofac/Volo/Abp/Autofac/AutoFacInjectPropertiesService.cs b/framework/src/Volo.Abp.Autofac/Volo/Abp/Autofac/AutoFacInjectPropertiesService.cs new file mode 100644 index 0000000000..6209eafc48 --- /dev/null +++ b/framework/src/Volo.Abp.Autofac/Volo/Abp/Autofac/AutoFacInjectPropertiesService.cs @@ -0,0 +1,44 @@ +using System; +using Autofac; +using Autofac.Extensions.DependencyInjection; +using Volo.Abp.DependencyInjection; + +namespace Volo.Abp.Autofac; + +public class AutoFacInjectPropertiesService : IInjectPropertiesService, ITransientDependency +{ + protected IServiceProvider ServiceProvider { get; } + + public AutoFacInjectPropertiesService(IServiceProvider serviceProvider) + { + ServiceProvider = serviceProvider; + } + + public virtual TService InjectProperties(TService instance) where TService : notnull + { + return InjectProperties(instance, false); + } + + public virtual TService InjectUnsetProperties(TService instance) where TService : notnull + { + return InjectProperties(instance, true); + } + + protected virtual TService InjectProperties(TService instance, bool onlyForUnsetProperties) + where TService : notnull + { + if (instance == null) + { + throw new ArgumentNullException(nameof(instance)); + } + + if (ServiceProvider is not AutofacServiceProvider) + { + throw new AbpException($"The {nameof(ServiceProvider)} must be an instance of {nameof(AutofacServiceProvider)}!"); + } + + return onlyForUnsetProperties + ? ServiceProvider.As().LifetimeScope.InjectUnsetProperties(instance) + : ServiceProvider.As().LifetimeScope.InjectProperties(instance); + } +} diff --git a/framework/src/Volo.Abp.BackgroundWorkers.Hangfire/Volo/Abp/BackgroundWorkers/Hangfire/AbpBackgroundWorkersHangfireModule.cs b/framework/src/Volo.Abp.BackgroundWorkers.Hangfire/Volo/Abp/BackgroundWorkers/Hangfire/AbpBackgroundWorkersHangfireModule.cs index afe9a90a8a..5bfe6aad7c 100644 --- a/framework/src/Volo.Abp.BackgroundWorkers.Hangfire/Volo/Abp/BackgroundWorkers/Hangfire/AbpBackgroundWorkersHangfireModule.cs +++ b/framework/src/Volo.Abp.BackgroundWorkers.Hangfire/Volo/Abp/BackgroundWorkers/Hangfire/AbpBackgroundWorkersHangfireModule.cs @@ -19,7 +19,7 @@ public class AbpBackgroundWorkersHangfireModule : AbpModule context.Services.AddSingleton(typeof(HangfirePeriodicBackgroundWorkerAdapter<>)); } - public async override Task OnPreApplicationInitializationAsync(ApplicationInitializationContext context) + public override void OnPreApplicationInitialization(ApplicationInitializationContext context) { var options = context.ServiceProvider.GetRequiredService>().Value; if (!options.IsEnabled) @@ -28,14 +28,9 @@ public class AbpBackgroundWorkersHangfireModule : AbpModule hangfireOptions.BackgroundJobServerFactory = CreateOnlyEnqueueJobServer; } - await context.ServiceProvider - .GetRequiredService() - .StartAsync(); - } - - public override void OnPreApplicationInitialization(ApplicationInitializationContext context) - { - AsyncHelper.RunSync(() => OnPreApplicationInitializationAsync(context)); + context.ServiceProvider + .GetRequiredService() + .Initialize(); } private BackgroundJobServer? CreateOnlyEnqueueJobServer(IServiceProvider serviceProvider) diff --git a/framework/src/Volo.Abp.BackgroundWorkers.Hangfire/Volo/Abp/BackgroundWorkers/Hangfire/HangfireBackgroundWorkerManager.cs b/framework/src/Volo.Abp.BackgroundWorkers.Hangfire/Volo/Abp/BackgroundWorkers/Hangfire/HangfireBackgroundWorkerManager.cs index 4b6582d03d..d37583a119 100644 --- a/framework/src/Volo.Abp.BackgroundWorkers.Hangfire/Volo/Abp/BackgroundWorkers/Hangfire/HangfireBackgroundWorkerManager.cs +++ b/framework/src/Volo.Abp.BackgroundWorkers.Hangfire/Volo/Abp/BackgroundWorkers/Hangfire/HangfireBackgroundWorkerManager.cs @@ -12,6 +12,7 @@ using Volo.Abp.Threading; namespace Volo.Abp.BackgroundWorkers.Hangfire; [Dependency(ReplaceServices = true)] +[ExposeServices(typeof(IBackgroundWorkerManager), typeof(HangfireBackgroundWorkerManager))] public class HangfireBackgroundWorkerManager : BackgroundWorkerManager, ISingletonDependency { protected AbpHangfireBackgroundJobServer BackgroundJobServer { get; set; } = default!; @@ -22,10 +23,9 @@ public class HangfireBackgroundWorkerManager : BackgroundWorkerManager, ISinglet ServiceProvider = serviceProvider; } - public async override Task StartAsync(CancellationToken cancellationToken = default) + public void Initialize() { BackgroundJobServer = ServiceProvider.GetRequiredService(); - await base.StartAsync(cancellationToken); } public async override Task AddAsync(IBackgroundWorker worker, CancellationToken cancellationToken = default) diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/CliService.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/CliService.cs index e84c0d5de7..82d413052d 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/CliService.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/CliService.cs @@ -84,6 +84,7 @@ public class CliService : ITransientDependency catch (Exception ex) { Logger.LogException(ex); + throw; } } diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/BundleCommand.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/BundleCommand.cs index 9e3057b07e..9990d8b8ed 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/BundleCommand.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/BundleCommand.cs @@ -49,6 +49,7 @@ public class BundleCommand : IConsoleCommand, ITransientDependency catch (BundlingException ex) { Logger.LogError(ex.Message); + throw; } } diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/NewCommand.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/NewCommand.cs index 7c477da368..b6fd6e2075 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/NewCommand.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/NewCommand.cs @@ -124,7 +124,10 @@ public class NewCommand : ProjectCreationCommandBase, IConsoleCommand, ITransien await ConfigurePwaSupportForAngular(projectArgs); - OpenRelatedWebPage(projectArgs, template, isTiered, commandLineArgs); + if (!commandLineArgs.Options.ContainsKey(Options.NoOpenWebPage.Long)) + { + OpenRelatedWebPage(projectArgs, template, isTiered, commandLineArgs); + } } private Task CheckCreatingRequirements(ProjectBuildArgs projectArgs) @@ -162,8 +165,8 @@ public class NewCommand : ProjectCreationCommandBase, IConsoleCommand, ITransien requirementWarningMessages.AddFirst("NOTICE: The following tools are required to run your solution:"); await EventBus.PublishAsync(new ProjectPostRequirementsCheckedEvent - { - Message = requirementWarningMessages.JoinAsString(Environment.NewLine) + { + Message = requirementWarningMessages.JoinAsString(Environment.NewLine) }, false); foreach (var error in requirementWarningMessages) diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/ProjectCreationCommandBase.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/ProjectCreationCommandBase.cs index 1ad125b275..a2226fa6e2 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/ProjectCreationCommandBase.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/ProjectCreationCommandBase.cs @@ -425,7 +425,7 @@ public abstract class ProjectCreationCommandBase { return; } - + var isWebassembly = projectArgs.UiFramework == UiFramework.Blazor; var message = isWebassembly ? "Generating bundles for Blazor Wasm" : "Generating bundles for MAUI Blazor"; Logger.LogInformation(message + "..."); @@ -440,7 +440,7 @@ public abstract class ProjectCreationCommandBase { path = Path.Combine(path, "apps"); } - + var directory = Path.GetDirectoryName( Directory.GetFiles(path, isWebassembly ? "*.Blazor.csproj" : "*.MauiBlazor.csproj", SearchOption.AllDirectories).First() ); @@ -455,7 +455,7 @@ public abstract class ProjectCreationCommandBase { return true; } - + if (projectArgs.TemplateName == MicroserviceProTemplate.TemplateName && projectArgs.UiFramework is UiFramework.Blazor) { return true; @@ -907,5 +907,10 @@ public abstract class ProjectCreationCommandBase { public const string Long = "theme-style"; } + + public static class NoOpenWebPage + { + public const string Long = "no-open"; + } } } diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/CheckRedisPreRequirements.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/CheckRedisPreRequirements.cs similarity index 83% rename from framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/CheckRedisPreRequirements.cs rename to framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/CheckRedisPreRequirements.cs index aee6da8f99..a16e42d954 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/CheckRedisPreRequirements.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/CheckRedisPreRequirements.cs @@ -1,8 +1,7 @@ using System; using System.Linq; -using Volo.Abp.Cli.ProjectBuilding.Building; -namespace Volo.Abp.Cli.ProjectBuilding.Templates; +namespace Volo.Abp.Cli.ProjectBuilding.Building.Steps; public class CheckRedisPreRequirements : ProjectBuildPipelineStep { diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/TemplateInfo.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/TemplateInfo.cs index 8a59d2d8b1..c70fed4625 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/TemplateInfo.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/TemplateInfo.cs @@ -31,20 +31,14 @@ public abstract class TemplateInfo public virtual IEnumerable GetCustomSteps(ProjectBuildContext context) { var steps = new List(); - ConfigureCheckPreRequirements(context, steps); return steps; } - protected void ConfigureCheckPreRequirements(ProjectBuildContext context, List steps) - { - steps.Add(new CheckRedisPreRequirements()); - } - public bool IsPro() { return Name.EndsWith("-pro", StringComparison.OrdinalIgnoreCase); } - + public bool IsNoLayer() { return Name is AppNoLayersTemplate.TemplateName or AppNoLayersProTemplate.TemplateName; diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/TemplateProjectBuildPipelineBuilder.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/TemplateProjectBuildPipelineBuilder.cs index a453173095..ad0bd7dea4 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/TemplateProjectBuildPipelineBuilder.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/TemplateProjectBuildPipelineBuilder.cs @@ -1,6 +1,7 @@ using System; using NuGet.Versioning; using Volo.Abp.Cli.ProjectBuilding.Building.Steps; +using Volo.Abp.Cli.ProjectBuilding.Templates; using Volo.Abp.Cli.ProjectBuilding.Templates.App; using Volo.Abp.Cli.ProjectBuilding.Templates.Microservice; using Volo.Abp.Cli.ProjectBuilding.Templates.MvcModule; @@ -56,6 +57,8 @@ public static class TemplateProjectBuildPipelineBuilder pipeline.Steps.Add(new RemoveRootFolderStep()); } + pipeline.Steps.Add(new CheckRedisPreRequirements()); + pipeline.Steps.Add(new CreateProjectResultZipStep()); return pipeline; diff --git a/framework/src/Volo.Abp.Core/Volo/Abp/DependencyInjection/IInjectPropertiesService.cs b/framework/src/Volo.Abp.Core/Volo/Abp/DependencyInjection/IInjectPropertiesService.cs new file mode 100644 index 0000000000..76313efaaa --- /dev/null +++ b/framework/src/Volo.Abp.Core/Volo/Abp/DependencyInjection/IInjectPropertiesService.cs @@ -0,0 +1,16 @@ +using System; + +namespace Volo.Abp.DependencyInjection; + +public interface IInjectPropertiesService +{ + /// + /// Set any properties on that can be resolved by IServiceProvider. + /// + TService InjectProperties(TService instance) where TService : notnull; + + /// + /// Set any null-valued properties on that can be resolved by the IServiceProvider. + /// + TService InjectUnsetProperties(TService instance) where TService : notnull; +} diff --git a/framework/src/Volo.Abp.Core/Volo/Abp/DependencyInjection/NullInjectPropertiesService.cs b/framework/src/Volo.Abp.Core/Volo/Abp/DependencyInjection/NullInjectPropertiesService.cs new file mode 100644 index 0000000000..5ddfb8d53f --- /dev/null +++ b/framework/src/Volo.Abp.Core/Volo/Abp/DependencyInjection/NullInjectPropertiesService.cs @@ -0,0 +1,17 @@ +namespace Volo.Abp.DependencyInjection; + +[Dependency(TryRegister = true)] +public class NullInjectPropertiesService : IInjectPropertiesService, ITransientDependency +{ + public TService InjectProperties(TService instance) + where TService : notnull + { + return instance; + } + + public TService InjectUnsetProperties(TService instance) + where TService : notnull + { + return instance; + } +} diff --git a/framework/src/Volo.Abp.Ddd.Application.Contracts/Volo/Abp/Application/Localization/Resources/AbpDdd/hr.json b/framework/src/Volo.Abp.Ddd.Application.Contracts/Volo/Abp/Application/Localization/Resources/AbpDdd/hr.json new file mode 100644 index 0000000000..87a363a616 --- /dev/null +++ b/framework/src/Volo.Abp.Ddd.Application.Contracts/Volo/Abp/Application/Localization/Resources/AbpDdd/hr.json @@ -0,0 +1,6 @@ +{ + "culture": "hr", + "texts": { + "MaxResultCountExceededExceptionMessage": "{0} ne može biti veći od {1}! Povećajte {2}.{3} na strani poslužitelja kako biste omogućili više rezultata." + } +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.Ddd.Application/Volo/Abp/Application/Services/CrudAppService.cs b/framework/src/Volo.Abp.Ddd.Application/Volo/Abp/Application/Services/CrudAppService.cs index d8ccce3b73..672d85a2be 100644 --- a/framework/src/Volo.Abp.Ddd.Application/Volo/Abp/Application/Services/CrudAppService.cs +++ b/framework/src/Volo.Abp.Ddd.Application/Volo/Abp/Application/Services/CrudAppService.cs @@ -11,7 +11,6 @@ namespace Volo.Abp.Application.Services; public abstract class CrudAppService : CrudAppService where TEntity : class, IEntity - where TEntityDto : IEntityDto { protected CrudAppService(IRepository repository) : base(repository) @@ -23,7 +22,6 @@ public abstract class CrudAppService public abstract class CrudAppService : CrudAppService where TEntity : class, IEntity - where TEntityDto : IEntityDto { protected CrudAppService(IRepository repository) : base(repository) @@ -35,7 +33,6 @@ public abstract class CrudAppService public abstract class CrudAppService : CrudAppService where TEntity : class, IEntity - where TEntityDto : IEntityDto { protected CrudAppService(IRepository repository) : base(repository) @@ -47,7 +44,6 @@ public abstract class CrudAppService : CrudAppService where TEntity : class, IEntity - where TEntityDto : IEntityDto { protected CrudAppService(IRepository repository) : base(repository) @@ -69,8 +65,6 @@ public abstract class CrudAppService : AbstractKeyCrudAppService where TEntity : class, IEntity - where TGetOutputDto : IEntityDto - where TGetListOutputDto : IEntityDto { protected new IRepository Repository { get; } diff --git a/framework/src/Volo.Abp.Ddd.Application/Volo/Abp/Application/Services/ReadOnlyAppService.cs b/framework/src/Volo.Abp.Ddd.Application/Volo/Abp/Application/Services/ReadOnlyAppService.cs index b81455e1bb..867ca35ad4 100644 --- a/framework/src/Volo.Abp.Ddd.Application/Volo/Abp/Application/Services/ReadOnlyAppService.cs +++ b/framework/src/Volo.Abp.Ddd.Application/Volo/Abp/Application/Services/ReadOnlyAppService.cs @@ -11,7 +11,6 @@ namespace Volo.Abp.Application.Services; public abstract class ReadOnlyAppService : ReadOnlyAppService where TEntity : class, IEntity - where TEntityDto : IEntityDto { protected ReadOnlyAppService(IReadOnlyRepository repository) : base(repository) @@ -23,7 +22,6 @@ public abstract class ReadOnlyAppService public abstract class ReadOnlyAppService : ReadOnlyAppService where TEntity : class, IEntity - where TEntityDto : IEntityDto { protected ReadOnlyAppService(IReadOnlyRepository repository) : base(repository) @@ -35,8 +33,6 @@ public abstract class ReadOnlyAppService : AbstractKeyReadOnlyAppService where TEntity : class, IEntity - where TGetOutputDto : IEntityDto - where TGetListOutputDto : IEntityDto { protected IReadOnlyRepository Repository { get; } diff --git a/framework/src/Volo.Abp.Emailing/Volo/Abp/Emailing/Localization/de.json b/framework/src/Volo.Abp.Emailing/Volo/Abp/Emailing/Localization/de.json index b2de67d39e..ca22c54c87 100644 --- a/framework/src/Volo.Abp.Emailing/Volo/Abp/Emailing/Localization/de.json +++ b/framework/src/Volo.Abp.Emailing/Volo/Abp/Emailing/Localization/de.json @@ -18,6 +18,8 @@ "Description:Abp.Mailing.Smtp.Password": "Das Passwort für den Benutzernamen, der mit den Anmeldeinformationen verknüpft ist.", "Description:Abp.Mailing.Smtp.Domain": "Die Domäne oder der Computername, der die Anmeldeinformationen verifiziert.", "Description:Abp.Mailing.Smtp.EnableSsl": "Bestimmt, ob der SmptClient Secure Sockets Layer (SSL) zur Verschlüsselung der Verbindung verwendet.", - "Description:Abp.Mailing.Smtp.UseDefaultCredentials": "Bestimmt, ob die DefaultCredentials mit Anfragen gesendet werden." + "Description:Abp.Mailing.Smtp.UseDefaultCredentials": "Bestimmt, ob die DefaultCredentials mit Anfragen gesendet werden.", + "TextTemplate:StandardEmailTemplates.Layout": "Standard-E-Mail-Layoutvorlage", + "TextTemplate:StandardEmailTemplates.Message": "Einfache Nachrichtenvorlage für E-Mails" } } \ No newline at end of file diff --git a/framework/src/Volo.Abp.Emailing/Volo/Abp/Emailing/Localization/hr.json b/framework/src/Volo.Abp.Emailing/Volo/Abp/Emailing/Localization/hr.json new file mode 100644 index 0000000000..b9e14f38f6 --- /dev/null +++ b/framework/src/Volo.Abp.Emailing/Volo/Abp/Emailing/Localization/hr.json @@ -0,0 +1,25 @@ +{ + "culture": "hr", + "texts": { + "DisplayName:Abp.Mailing.DefaultFromAddress": "Zadana adresa", + "DisplayName:Abp.Mailing.DefaultFromDisplayName": "Zadano iz imena za prikaz", + "DisplayName:Abp.Mailing.Smtp.Host": "Domaćin", + "DisplayName:Abp.Mailing.Smtp.Port": "Luka", + "DisplayName:Abp.Mailing.Smtp.UserName": "Korisničko ime", + "DisplayName:Abp.Mailing.Smtp.Password": "Lozinka", + "DisplayName:Abp.Mailing.Smtp.Domain": "Domena", + "DisplayName:Abp.Mailing.Smtp.EnableSsl": "Omogući SSL", + "DisplayName:Abp.Mailing.Smtp.UseDefaultCredentials": "Koristite zadane vjerodajnice", + "Description:Abp.Mailing.DefaultFromAddress": "Zadana adresa pošiljatelja", + "Description:Abp.Mailing.DefaultFromDisplayName": "Zadani naziv za prikaz", + "Description:Abp.Mailing.Smtp.Host": "Naziv ili IP adresa glavnog računala koji se koristi za SMTP transakcije.", + "Description:Abp.Mailing.Smtp.Port": "Port koji se koristi za SMTP transakcije.", + "Description:Abp.Mailing.Smtp.UserName": "Korisničko ime povezano s vjerodajnicama.", + "Description:Abp.Mailing.Smtp.Password": "Lozinka za korisničko ime povezano s vjerodajnicama.", + "Description:Abp.Mailing.Smtp.Domain": "Naziv domene ili računala koji provjerava vjerodajnice.", + "Description:Abp.Mailing.Smtp.EnableSsl": "Koristi li SmtpClient Secure Sockets Layer (SSL) za šifriranje veze.", + "Description:Abp.Mailing.Smtp.UseDefaultCredentials": "Jesu li DefaultCredentials poslani sa zahtjevima.", + "TextTemplate:StandardEmailTemplates.Layout": "Zadani predložak izgleda e-pošte", + "TextTemplate:StandardEmailTemplates.Message": "Jednostavan predložak poruke za e-poštu" + } +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/es.json b/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/es.json index 3edc804e65..a62d214403 100644 --- a/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/es.json +++ b/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/es.json @@ -18,9 +18,9 @@ "UnhandledException": "Excepción no manejada!", "401Message": "No autorizado", "403Message": "Prohibido", - "404Message": "Página no encuentrada", + "404Message": "Página no encontrada", "500Message": "Error interno de servidor", "403MessageDetail": "Tu no estás autorizado para realizar esta operación!", "404MessageDetail": "Disculpa, no hay nada en esta dirección." } -} \ No newline at end of file +} diff --git a/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/hr.json b/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/hr.json new file mode 100644 index 0000000000..e3a247e093 --- /dev/null +++ b/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/hr.json @@ -0,0 +1,26 @@ +{ + "culture": "hr", + "texts": { + "InternalServerErrorMessage": "Došlo je do interne pogreške tijekom vašeg zahtjeva!", + "ValidationErrorMessage": "Vaš zahtjev nije valjan!", + "ValidationNarrativeErrorMessageTitle": "Tijekom provjere valjanosti otkrivene su sljedeće pogreške.", + "DefaultErrorMessage": "Došlo je do pogreške!", + "DefaultErrorMessageDetail": "Poslužitelj nije poslao pojedinosti o pogrešci.", + "DefaultErrorMessage401": "Niste ovjereni!", + "DefaultErrorMessage401Detail": "Morate se prijaviti za izvođenje ove operacije.", + "DefaultErrorMessage403": "Niste ovlašteni!", + "DefaultErrorMessage403Detail": "Nije vam dopušteno izvršiti ovu operaciju!", + "DefaultErrorMessage404": "Resurs nije pronađen!", + "DefaultErrorMessage404Detail": "Zatraženi resurs nije pronađen na poslužitelju!", + "EntityNotFoundErrorMessage": "Ne postoji entitet {0} s ID = {1}!", + "AbpDbConcurrencyErrorMessage": "Podatke koje ste dostavili već je promijenio drugi korisnik/klijent. Odbacite promjene koje ste napravili i pokušajte ispočetka.", + "Error": "Greška", + "UnhandledException": "Neobrađena iznimka!", + "401Message": "Neovlašteno", + "403Message": "Zabranjeno", + "404Message": "Stranica nije pronađena", + "500Message": "Interna pogreška poslužitelja", + "403MessageDetail": "Niste ovlašteni za izvođenje ove operacije!", + "404MessageDetail": "Nažalost, na ovoj adresi nema ničega." + } +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.Features/Volo/Abp/Features/Localization/de.json b/framework/src/Volo.Abp.Features/Volo/Abp/Features/Localization/de.json new file mode 100644 index 0000000000..7235f481c5 --- /dev/null +++ b/framework/src/Volo.Abp.Features/Volo/Abp/Features/Localization/de.json @@ -0,0 +1,8 @@ +{ + "culture": "de", + "texts": { + "Volo.Feature:010001": "Funktion ist nicht aktiviert: {FeatureName}", + "Volo.Feature:010002": "Erforderliche Funktionen sind nicht aktiviert. Alle diese Funktionen müssen aktiviert sein: {FeatureNames}", + "Volo.Feature:010003": "Erforderliche Funktionen sind nicht aktiviert. Mindestens eine dieser Funktionen muss aktiviert sein: {FeatureNames}" + } +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.Features/Volo/Abp/Features/Localization/hr.json b/framework/src/Volo.Abp.Features/Volo/Abp/Features/Localization/hr.json new file mode 100644 index 0000000000..f9a2b44d77 --- /dev/null +++ b/framework/src/Volo.Abp.Features/Volo/Abp/Features/Localization/hr.json @@ -0,0 +1,8 @@ +{ + "culture": "hr", + "texts": { + "Volo.Feature:010001": "Značajka nije omogućena: {FeatureName}", + "Volo.Feature:010002": "Potrebne značajke nisu omogućene. Sve ove značajke moraju biti omogućene: {FeatureNames}", + "Volo.Feature:010003": "Potrebne značajke nisu omogućene. Najmanje jedna od ovih značajki mora biti omogućena: {FeatureNames}" + } +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.GlobalFeatures/Volo/Abp/GlobalFeatures/Localization/hr.json b/framework/src/Volo.Abp.GlobalFeatures/Volo/Abp/GlobalFeatures/Localization/hr.json new file mode 100644 index 0000000000..7052465ff2 --- /dev/null +++ b/framework/src/Volo.Abp.GlobalFeatures/Volo/Abp/GlobalFeatures/Localization/hr.json @@ -0,0 +1,6 @@ +{ + "culture": "hr", + "texts": { + "Volo.GlobalFeature:010001": "Usluga '{ServiceName}' mora omogućiti značajku '{GlobalFeatureName}'." + } +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.Ldap.Abstractions/Volo/Abp/Ldap/Localization/de.json b/framework/src/Volo.Abp.Ldap.Abstractions/Volo/Abp/Ldap/Localization/de.json new file mode 100644 index 0000000000..7aca1fdc9e --- /dev/null +++ b/framework/src/Volo.Abp.Ldap.Abstractions/Volo/Abp/Ldap/Localization/de.json @@ -0,0 +1,19 @@ +{ + "culture": "de", + "texts": { + "DisplayName:Abp.Ldap.Ldaps": "LDAP über SSL", + "Description:Abp.Ldap.Ldaps": "LDAP über SSL", + "DisplayName:Abp.Ldap.ServerHost": "Serverhost", + "Description:Abp.Ldap.ServerHost": "Serverhost", + "DisplayName:Abp.Ldap.ServerPort": "Server Port", + "Description:Abp.Ldap.ServerPort": "Server Port", + "DisplayName:Abp.Ldap.BaseDc": "Basisdomänenkomponente", + "Description:Abp.Ldap.BaseDc": "Basisdomänenkomponente", + "DisplayName:Abp.Ldap.Domain": "Domain", + "Description:Abp.Ldap.Domain": "Domain", + "DisplayName:Abp.Ldap.UserName": "Nutzername", + "Description:Abp.Ldap.UserName": "Nutzername", + "DisplayName:Abp.Ldap.Password": "Passwort", + "Description:Abp.Ldap.Password": "Passwort" + } +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.Ldap.Abstractions/Volo/Abp/Ldap/Localization/hr.json b/framework/src/Volo.Abp.Ldap.Abstractions/Volo/Abp/Ldap/Localization/hr.json new file mode 100644 index 0000000000..624eab25ca --- /dev/null +++ b/framework/src/Volo.Abp.Ldap.Abstractions/Volo/Abp/Ldap/Localization/hr.json @@ -0,0 +1,19 @@ +{ + "culture": "hr", + "texts": { + "DisplayName:Abp.Ldap.Ldaps": "LDAP preko SSL-a", + "Description:Abp.Ldap.Ldaps": "LDAP preko SSL-a", + "DisplayName:Abp.Ldap.ServerHost": "Domaćin poslužitelja", + "Description:Abp.Ldap.ServerHost": "Domaćin poslužitelja", + "DisplayName:Abp.Ldap.ServerPort": "Port poslužitelja", + "Description:Abp.Ldap.ServerPort": "Port poslužitelja", + "DisplayName:Abp.Ldap.BaseDc": "Komponenta osnovne domene", + "Description:Abp.Ldap.BaseDc": "Komponenta osnovne domene", + "DisplayName:Abp.Ldap.Domain": "Domena", + "Description:Abp.Ldap.Domain": "Domena", + "DisplayName:Abp.Ldap.UserName": "Korisničko ime", + "Description:Abp.Ldap.UserName": "Korisničko ime", + "DisplayName:Abp.Ldap.Password": "Lozinka", + "Description:Abp.Ldap.Password": "Lozinka" + } +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.Localization/Volo/Abp/Localization/Resources/AbpLocalization/hr.json b/framework/src/Volo.Abp.Localization/Volo/Abp/Localization/Resources/AbpLocalization/hr.json new file mode 100644 index 0000000000..31595727b0 --- /dev/null +++ b/framework/src/Volo.Abp.Localization/Volo/Abp/Localization/Resources/AbpLocalization/hr.json @@ -0,0 +1,7 @@ +{ + "culture": "hr", + "texts": { + "DisplayName:Abp.Localization.DefaultLanguage": "Zadani jezik", + "Description:Abp.Localization.DefaultLanguage": "Zadani jezik aplikacije." + } +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.MultiTenancy.Abstractions/Volo/Abp/MultiTenancy/Localization/ar.json b/framework/src/Volo.Abp.MultiTenancy.Abstractions/Volo/Abp/MultiTenancy/Localization/ar.json new file mode 100644 index 0000000000..73d0d08951 --- /dev/null +++ b/framework/src/Volo.Abp.MultiTenancy.Abstractions/Volo/Abp/MultiTenancy/Localization/ar.json @@ -0,0 +1,9 @@ +{ + "culture": "ar", + "texts": { + "TenantNotFoundMessage": "لم يتم العثور على المستأجر!", + "TenantNotFoundDetails": "لا يوجد مستأجر بمعرف المستأجر أو اسمه: {0}", + "TenantNotActiveMessage": "المستأجر غير نشط!", + "TenantNotActiveDetails": "المستأجر غير نشط بمعرف المستأجر أو اسمه: {0}" + } +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.MultiTenancy.Abstractions/Volo/Abp/MultiTenancy/Localization/cs.json b/framework/src/Volo.Abp.MultiTenancy.Abstractions/Volo/Abp/MultiTenancy/Localization/cs.json new file mode 100644 index 0000000000..888edae097 --- /dev/null +++ b/framework/src/Volo.Abp.MultiTenancy.Abstractions/Volo/Abp/MultiTenancy/Localization/cs.json @@ -0,0 +1,9 @@ +{ + "culture": "cs", + "texts": { + "TenantNotFoundMessage": "Nájemce nenalezen!", + "TenantNotFoundDetails": "Neexistuje žádný tenant s ID nebo jménem tenanta: {0}", + "TenantNotActiveMessage": "Nájemce není aktivní!", + "TenantNotActiveDetails": "Tenant není aktivní s ID nebo jménem tenanta: {0}" + } +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.MultiTenancy.Abstractions/Volo/Abp/MultiTenancy/Localization/de.json b/framework/src/Volo.Abp.MultiTenancy.Abstractions/Volo/Abp/MultiTenancy/Localization/de.json new file mode 100644 index 0000000000..cc4c857370 --- /dev/null +++ b/framework/src/Volo.Abp.MultiTenancy.Abstractions/Volo/Abp/MultiTenancy/Localization/de.json @@ -0,0 +1,9 @@ +{ + "culture": "de", + "texts": { + "TenantNotFoundMessage": "Mieter nicht gefunden!", + "TenantNotFoundDetails": "Es gibt keinen Mandanten mit der Mandanten-ID oder dem Namen: {0}", + "TenantNotActiveMessage": "Mieter ist nicht aktiv!", + "TenantNotActiveDetails": "Der Mandant ist mit der Mandanten-ID oder dem Namen nicht aktiv: {0}" + } +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.MultiTenancy.Abstractions/Volo/Abp/MultiTenancy/Localization/es.json b/framework/src/Volo.Abp.MultiTenancy.Abstractions/Volo/Abp/MultiTenancy/Localization/es.json new file mode 100644 index 0000000000..53110914ec --- /dev/null +++ b/framework/src/Volo.Abp.MultiTenancy.Abstractions/Volo/Abp/MultiTenancy/Localization/es.json @@ -0,0 +1,9 @@ +{ + "culture": "es", + "texts": { + "TenantNotFoundMessage": "¡Inquilino no encontrado!", + "TenantNotFoundDetails": "No hay ningún inquilino con el ID o nombre del inquilino: {0}", + "TenantNotActiveMessage": "¡El inquilino no está activo!", + "TenantNotActiveDetails": "El inquilino no está activo con el ID o nombre del inquilino: {0}" + } +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.MultiTenancy.Abstractions/Volo/Abp/MultiTenancy/Localization/fi.json b/framework/src/Volo.Abp.MultiTenancy.Abstractions/Volo/Abp/MultiTenancy/Localization/fi.json new file mode 100644 index 0000000000..681889f03e --- /dev/null +++ b/framework/src/Volo.Abp.MultiTenancy.Abstractions/Volo/Abp/MultiTenancy/Localization/fi.json @@ -0,0 +1,9 @@ +{ + "culture": "fi", + "texts": { + "TenantNotFoundMessage": "Vuokralaista ei löydy!", + "TenantNotFoundDetails": "Ei ole vuokralaista, jolla on vuokralaisen tunnus tai nimi: {0}", + "TenantNotActiveMessage": "Vuokralainen ei ole aktiivinen!", + "TenantNotActiveDetails": "Vuokralainen ei ole aktiivinen vuokralaisen tunnuksella tai nimellä: {0}" + } +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.MultiTenancy.Abstractions/Volo/Abp/MultiTenancy/Localization/fr.json b/framework/src/Volo.Abp.MultiTenancy.Abstractions/Volo/Abp/MultiTenancy/Localization/fr.json new file mode 100644 index 0000000000..bc0978297a --- /dev/null +++ b/framework/src/Volo.Abp.MultiTenancy.Abstractions/Volo/Abp/MultiTenancy/Localization/fr.json @@ -0,0 +1,9 @@ +{ + "culture": "fr", + "texts": { + "TenantNotFoundMessage": "Locataire introuvable !", + "TenantNotFoundDetails": "Il n'existe aucun locataire portant l'ID ou le nom du locataire : {0}", + "TenantNotActiveMessage": "Le locataire n'est pas actif !", + "TenantNotActiveDetails": "Le locataire n'est pas actif avec l'ID ou le nom du locataire : {0}" + } +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.MultiTenancy.Abstractions/Volo/Abp/MultiTenancy/Localization/hi.json b/framework/src/Volo.Abp.MultiTenancy.Abstractions/Volo/Abp/MultiTenancy/Localization/hi.json new file mode 100644 index 0000000000..def8caba3d --- /dev/null +++ b/framework/src/Volo.Abp.MultiTenancy.Abstractions/Volo/Abp/MultiTenancy/Localization/hi.json @@ -0,0 +1,9 @@ +{ + "culture": "hi", + "texts": { + "TenantNotFoundMessage": "किरायेदार नहीं मिला!", + "TenantNotFoundDetails": "किरायेदार आईडी या नाम वाला कोई किरायेदार नहीं है: {0}", + "TenantNotActiveMessage": "किरायेदार सक्रिय नहीं है!", + "TenantNotActiveDetails": "किरायेदार, किरायेदार आईडी या नाम के साथ सक्रिय नहीं है: {0}" + } +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.MultiTenancy.Abstractions/Volo/Abp/MultiTenancy/Localization/hr.json b/framework/src/Volo.Abp.MultiTenancy.Abstractions/Volo/Abp/MultiTenancy/Localization/hr.json new file mode 100644 index 0000000000..3420719603 --- /dev/null +++ b/framework/src/Volo.Abp.MultiTenancy.Abstractions/Volo/Abp/MultiTenancy/Localization/hr.json @@ -0,0 +1,9 @@ +{ + "culture": "hr", + "texts": { + "TenantNotFoundMessage": "Stanar nije pronađen!", + "TenantNotFoundDetails": "Ne postoji stanar s ID-om ili imenom stanara: {0}", + "TenantNotActiveMessage": "Stanar nije aktivan!", + "TenantNotActiveDetails": "Stanar nije aktivan s ID-om ili imenom stanara: {0}" + } +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.MultiTenancy.Abstractions/Volo/Abp/MultiTenancy/Localization/hu.json b/framework/src/Volo.Abp.MultiTenancy.Abstractions/Volo/Abp/MultiTenancy/Localization/hu.json new file mode 100644 index 0000000000..d6ff7d431e --- /dev/null +++ b/framework/src/Volo.Abp.MultiTenancy.Abstractions/Volo/Abp/MultiTenancy/Localization/hu.json @@ -0,0 +1,9 @@ +{ + "culture": "hu", + "texts": { + "TenantNotFoundMessage": "Bérlő nem található!", + "TenantNotFoundDetails": "Nincs bérlő a következő bérlői azonosítóval vagy névvel: {0}", + "TenantNotActiveMessage": "A bérlő nem aktív!", + "TenantNotActiveDetails": "A bérlő nem aktív a következő bérlői azonosítóval vagy névvel: {0}" + } +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.MultiTenancy.Abstractions/Volo/Abp/MultiTenancy/Localization/is.json b/framework/src/Volo.Abp.MultiTenancy.Abstractions/Volo/Abp/MultiTenancy/Localization/is.json new file mode 100644 index 0000000000..44cf577820 --- /dev/null +++ b/framework/src/Volo.Abp.MultiTenancy.Abstractions/Volo/Abp/MultiTenancy/Localization/is.json @@ -0,0 +1,9 @@ +{ + "culture": "is", + "texts": { + "TenantNotFoundMessage": "Leigjandi fannst ekki!", + "TenantNotFoundDetails": "Það er enginn leigjandi með auðkenni eða nafn leigjanda: {0}", + "TenantNotActiveMessage": "Leigjandi er ekki virkur!", + "TenantNotActiveDetails": "Leigjandinn er ekki virkur með auðkenni eða nafn leigjanda: {0}" + } +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.MultiTenancy.Abstractions/Volo/Abp/MultiTenancy/Localization/it.json b/framework/src/Volo.Abp.MultiTenancy.Abstractions/Volo/Abp/MultiTenancy/Localization/it.json new file mode 100644 index 0000000000..01b3b4064b --- /dev/null +++ b/framework/src/Volo.Abp.MultiTenancy.Abstractions/Volo/Abp/MultiTenancy/Localization/it.json @@ -0,0 +1,9 @@ +{ + "culture": "it", + "texts": { + "TenantNotFoundMessage": "Inquilino non trovato!", + "TenantNotFoundDetails": "Non esiste alcun tenant con l'ID o il nome tenant: {0}", + "TenantNotActiveMessage": "L'inquilino non è attivo!", + "TenantNotActiveDetails": "Il tenant non è attivo con l'ID o il nome tenant: {0}" + } +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.MultiTenancy.Abstractions/Volo/Abp/MultiTenancy/Localization/nl.json b/framework/src/Volo.Abp.MultiTenancy.Abstractions/Volo/Abp/MultiTenancy/Localization/nl.json new file mode 100644 index 0000000000..c8260d3564 --- /dev/null +++ b/framework/src/Volo.Abp.MultiTenancy.Abstractions/Volo/Abp/MultiTenancy/Localization/nl.json @@ -0,0 +1,9 @@ +{ + "culture": "nl", + "texts": { + "TenantNotFoundMessage": "Huurder niet gevonden!", + "TenantNotFoundDetails": "Er is geen tenant met de tenant-ID of -naam: {0}", + "TenantNotActiveMessage": "Huurder is niet actief!", + "TenantNotActiveDetails": "De tenant is niet actief met de tenant-ID of -naam: {0}" + } +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.MultiTenancy.Abstractions/Volo/Abp/MultiTenancy/Localization/pl-PL.json b/framework/src/Volo.Abp.MultiTenancy.Abstractions/Volo/Abp/MultiTenancy/Localization/pl-PL.json new file mode 100644 index 0000000000..5abcba7c56 --- /dev/null +++ b/framework/src/Volo.Abp.MultiTenancy.Abstractions/Volo/Abp/MultiTenancy/Localization/pl-PL.json @@ -0,0 +1,9 @@ +{ + "culture": "pl-PL", + "texts": { + "TenantNotFoundMessage": "Nie znaleziono najemcy!", + "TenantNotFoundDetails": "Brak dzierżawcy o identyfikatorze lub nazwie dzierżawy: {0}", + "TenantNotActiveMessage": "Najemca nie jest aktywny!", + "TenantNotActiveDetails": "Najemca nie jest aktywny z identyfikatorem lub nazwą dzierżawcy: {0}" + } +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.MultiTenancy.Abstractions/Volo/Abp/MultiTenancy/Localization/pt-BR.json b/framework/src/Volo.Abp.MultiTenancy.Abstractions/Volo/Abp/MultiTenancy/Localization/pt-BR.json new file mode 100644 index 0000000000..700c8a63b5 --- /dev/null +++ b/framework/src/Volo.Abp.MultiTenancy.Abstractions/Volo/Abp/MultiTenancy/Localization/pt-BR.json @@ -0,0 +1,9 @@ +{ + "culture": "pt-BR", + "texts": { + "TenantNotFoundMessage": "Inquilino não encontrado!", + "TenantNotFoundDetails": "Não há inquilino com o ID ou nome do inquilino: {0}", + "TenantNotActiveMessage": "O inquilino não está ativo!", + "TenantNotActiveDetails": "O locatário não está ativo com o ID ou nome do locatário: {0}" + } +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.MultiTenancy.Abstractions/Volo/Abp/MultiTenancy/Localization/ro-RO.json b/framework/src/Volo.Abp.MultiTenancy.Abstractions/Volo/Abp/MultiTenancy/Localization/ro-RO.json new file mode 100644 index 0000000000..798b3a292f --- /dev/null +++ b/framework/src/Volo.Abp.MultiTenancy.Abstractions/Volo/Abp/MultiTenancy/Localization/ro-RO.json @@ -0,0 +1,9 @@ +{ + "culture": "ro-RO", + "texts": { + "TenantNotFoundMessage": "Chiriașul nu a fost găsit!", + "TenantNotFoundDetails": "Nu există niciun chiriaș cu ID-ul sau numele chiriașului: {0}", + "TenantNotActiveMessage": "Chiriașul nu este activ!", + "TenantNotActiveDetails": "Chiriașul nu este activ cu ID-ul sau numele chiriașului: {0}" + } +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.MultiTenancy.Abstractions/Volo/Abp/MultiTenancy/Localization/ru.json b/framework/src/Volo.Abp.MultiTenancy.Abstractions/Volo/Abp/MultiTenancy/Localization/ru.json new file mode 100644 index 0000000000..40bf2f71b1 --- /dev/null +++ b/framework/src/Volo.Abp.MultiTenancy.Abstractions/Volo/Abp/MultiTenancy/Localization/ru.json @@ -0,0 +1,9 @@ +{ + "culture": "ru", + "texts": { + "TenantNotFoundMessage": "Арендатор не найден!", + "TenantNotFoundDetails": "Нет клиента с идентификатором или именем клиента: {0}", + "TenantNotActiveMessage": "Арендатор не активен!", + "TenantNotActiveDetails": "Арендатор неактивен с идентификатором или именем арендатора: {0}" + } +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.MultiTenancy.Abstractions/Volo/Abp/MultiTenancy/Localization/sk.json b/framework/src/Volo.Abp.MultiTenancy.Abstractions/Volo/Abp/MultiTenancy/Localization/sk.json new file mode 100644 index 0000000000..5b2dcdd614 --- /dev/null +++ b/framework/src/Volo.Abp.MultiTenancy.Abstractions/Volo/Abp/MultiTenancy/Localization/sk.json @@ -0,0 +1,9 @@ +{ + "culture": "sk", + "texts": { + "TenantNotFoundMessage": "Nájomca sa nenašiel!", + "TenantNotFoundDetails": "Neexistuje žiadny nájomník s ID alebo menom nájomníka: {0}", + "TenantNotActiveMessage": "Nájomca nie je aktívny!", + "TenantNotActiveDetails": "Nájomník nie je aktívny s ID alebo menom nájomníka: {0}" + } +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.MultiTenancy.Abstractions/Volo/Abp/MultiTenancy/Localization/sl.json b/framework/src/Volo.Abp.MultiTenancy.Abstractions/Volo/Abp/MultiTenancy/Localization/sl.json new file mode 100644 index 0000000000..dd2a1a65ad --- /dev/null +++ b/framework/src/Volo.Abp.MultiTenancy.Abstractions/Volo/Abp/MultiTenancy/Localization/sl.json @@ -0,0 +1,9 @@ +{ + "culture": "sl", + "texts": { + "TenantNotFoundMessage": "Najemnika ni mogoče najti!", + "TenantNotFoundDetails": "Ni najemnika z ID-jem ali imenom najemnika: {0}", + "TenantNotActiveMessage": "Najemnik ni aktiven!", + "TenantNotActiveDetails": "Najemnik ni aktiven z ID-jem ali imenom najemnika: {0}" + } +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.MultiTenancy.Abstractions/Volo/Abp/MultiTenancy/Localization/vi.json b/framework/src/Volo.Abp.MultiTenancy.Abstractions/Volo/Abp/MultiTenancy/Localization/vi.json new file mode 100644 index 0000000000..af56e729e6 --- /dev/null +++ b/framework/src/Volo.Abp.MultiTenancy.Abstractions/Volo/Abp/MultiTenancy/Localization/vi.json @@ -0,0 +1,9 @@ +{ + "culture": "vi", + "texts": { + "TenantNotFoundMessage": "Không tìm thấy người thuê nhà!", + "TenantNotFoundDetails": "Không có đối tượng thuê nào có id hoặc tên đối tượng thuê: {0}", + "TenantNotActiveMessage": "Người thuê nhà không hoạt động!", + "TenantNotActiveDetails": "Đối tượng thuê không hoạt động với id hoặc tên đối tượng thuê: {0}" + } +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.Swashbuckle/Volo/Abp/Swashbuckle/AbpSwashbuckleEnumSchemaFilter.cs b/framework/src/Volo.Abp.Swashbuckle/Volo/Abp/Swashbuckle/AbpSwashbuckleEnumSchemaFilter.cs index f637fb005e..b6a20d2ad2 100644 --- a/framework/src/Volo.Abp.Swashbuckle/Volo/Abp/Swashbuckle/AbpSwashbuckleEnumSchemaFilter.cs +++ b/framework/src/Volo.Abp.Swashbuckle/Volo/Abp/Swashbuckle/AbpSwashbuckleEnumSchemaFilter.cs @@ -2,7 +2,6 @@ using Microsoft.OpenApi.Models; using Swashbuckle.AspNetCore.SwaggerGen; using System; -using System.Linq; namespace Volo.Abp.Swashbuckle; @@ -13,11 +12,12 @@ public class AbpSwashbuckleEnumSchemaFilter : ISchemaFilter if (context.Type.IsEnum) { schema.Enum.Clear(); - schema.Type = nameof(String); - schema.Format = nameof(String); - Enum.GetNames(context.Type) - .ToList() - .ForEach(name => schema.Enum.Add(new OpenApiString($"{name}"))); + schema.Type = "string"; + schema.Format = null; + foreach (var name in Enum.GetNames(context.Type)) + { + schema.Enum.Add(new OpenApiString($"{name}")); + } } } -} \ No newline at end of file +} diff --git a/framework/src/Volo.Abp.Timing/Volo/Abp/Timing/Localization/de.json b/framework/src/Volo.Abp.Timing/Volo/Abp/Timing/Localization/de.json new file mode 100644 index 0000000000..e6578f2857 --- /dev/null +++ b/framework/src/Volo.Abp.Timing/Volo/Abp/Timing/Localization/de.json @@ -0,0 +1,7 @@ +{ + "culture": "de", + "texts": { + "DisplayName:Abp.Timing.Timezone": "Zeitzone", + "Description:Abp.Timing.Timezone": "Zeitzone der Anwendung" + } +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.Timing/Volo/Abp/Timing/Localization/hr.json b/framework/src/Volo.Abp.Timing/Volo/Abp/Timing/Localization/hr.json new file mode 100644 index 0000000000..403020dc1c --- /dev/null +++ b/framework/src/Volo.Abp.Timing/Volo/Abp/Timing/Localization/hr.json @@ -0,0 +1,7 @@ +{ + "culture": "hr", + "texts": { + "DisplayName:Abp.Timing.Timezone": "Vremenska zona", + "Description:Abp.Timing.Timezone": "Vremenska zona aplikacije" + } +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/ar.json b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/ar.json index a7de87d5ef..a812779c0c 100644 --- a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/ar.json +++ b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/ar.json @@ -51,6 +51,12 @@ "ManageYourAccount": "إدارة حسابك", "OthersGroup": "آخرون", "Today": "اليوم", - "Apply": "يتقدم" + "Apply": "يتقدم", + "InternetConnectionInfo": "لا يمكن تنفيذ العملية. اتصالك بالإنترنت غير متوفر في الوقت الراهن.", + "CopiedToTheClipboard": "تم النسخ إلى الحافظة", + "AddNew": "اضف جديد", + "ProfilePicture": "الصوره الشخصيه", + "Theme": "سمة", + "NotAssigned": "غيرمعتمد" } -} +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/cs.json b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/cs.json index a1f1856c9e..3051f02eb5 100644 --- a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/cs.json +++ b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/cs.json @@ -51,6 +51,12 @@ "ManageYourAccount": "Spravujte svůj účet", "OthersGroup": "Jiný", "Today": "Dnes", - "Apply": "Aplikovat" + "Apply": "Aplikovat", + "InternetConnectionInfo": "Operaci nebylo možné provést. Vaše připojení k internetu není momentálně dostupné.", + "CopiedToTheClipboard": "Zkopírováno do schránky", + "AddNew": "Přidat nový", + "ProfilePicture": "Profilový obrázek", + "Theme": "Téma", + "NotAssigned": "Nepřiřazena" } -} +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/de.json b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/de.json index 22fddc3e27..e7f64a85de 100644 --- a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/de.json +++ b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/de.json @@ -49,8 +49,14 @@ "ItemWillBeDeletedMessageWithFormat": "{0} wird gelöscht!", "ItemWillBeDeletedMessage": "Dieses Element wird gelöscht!", "ManageYourAccount": "Verwalten Sie Ihr Benutzerkonto", - "OthersGroup":"Andere", + "OthersGroup": "Andere", "Today": "Heute", - "Apply": "Anwenden" + "Apply": "Anwenden", + "InternetConnectionInfo": "Der Vorgang konnte nicht ausgeführt werden. Ihre Internetverbindung ist im Moment nicht verfügbar.", + "CopiedToTheClipboard": "In die Zwischenablage kopiert", + "AddNew": "Neue hinzufügen", + "ProfilePicture": "Profilbild", + "Theme": "Thema", + "NotAssigned": "Nicht zugeordnet" } } \ No newline at end of file diff --git a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/es.json b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/es.json index abf136d87b..b5efa33449 100644 --- a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/es.json +++ b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/es.json @@ -51,6 +51,12 @@ "ManageYourAccount": "Administrar cuenta", "OthersGroup": "Otra", "Today": "Hoy", - "Apply": "Aplicar" + "Apply": "Aplicar", + "InternetConnectionInfo": "No se pudo realizar la operación. Tu conexión a Internet no está disponible en este momento.", + "CopiedToTheClipboard": "Copiado al portapapeles", + "AddNew": "Agregar nuevo", + "ProfilePicture": "Foto de perfil", + "Theme": "Tema", + "NotAssigned": "No asignado" } -} +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/fi.json b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/fi.json index 25ab3ee59a..13f1855235 100644 --- a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/fi.json +++ b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/fi.json @@ -51,6 +51,12 @@ "ManageYourAccount": "Hallitse tiliäsi", "OthersGroup": "Muut", "Today": "Tänään", - "Apply": "Käytä" + "Apply": "Käytä", + "InternetConnectionInfo": "Toimenpidettä ei voitu suorittaa. Internetyhteytesi ei ole tällä hetkellä käytettävissä.", + "CopiedToTheClipboard": "Kopioitu leikepöydälle", + "AddNew": "Lisää uusi", + "ProfilePicture": "Profiilikuva", + "Theme": "Teema", + "NotAssigned": "Ei määritetty" } -} +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/fr.json b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/fr.json index 6e5c67d2d6..b574c4e179 100644 --- a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/fr.json +++ b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/fr.json @@ -51,6 +51,12 @@ "ManageYourAccount": "Gérer votre compte", "OthersGroup": "Autre", "Today": "Aujourd'hui", - "Apply": "Appliquer" + "Apply": "Appliquer", + "InternetConnectionInfo": "L'opération n'a pas pu être effectuée. Votre connexion Internet n'est pas disponible pour le moment.", + "CopiedToTheClipboard": "Copié dans le presse-papiers", + "AddNew": "Ajouter un nouveau", + "ProfilePicture": "Image de profil", + "Theme": "Thème", + "NotAssigned": "Non attribué" } -} +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/hi.json b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/hi.json index 96b73848f5..a216d8bf0d 100644 --- a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/hi.json +++ b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/hi.json @@ -51,6 +51,12 @@ "ManageYourAccount": "अपने खाते का प्रबंधन", "OthersGroup": "अन्य", "Today": "आज", - "Apply": "आवेदन करना" + "Apply": "आवेदन करना", + "InternetConnectionInfo": "ऑपरेशन नहीं किया जा सका. आपका इंटरनेट कनेक्शन इस समय उपलब्ध नहीं है.", + "CopiedToTheClipboard": "क्लिपबोर्ड पर कॉपी किया गया", + "AddNew": "नया जोड़ो", + "ProfilePicture": "प्रोफ़ाइल फोटो", + "Theme": "विषय", + "NotAssigned": "सौंपा नहीं गया है" } -} +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/hr.json b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/hr.json index 3126f17bbf..7a5af21a9a 100644 --- a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/hr.json +++ b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/hr.json @@ -51,6 +51,12 @@ "ManageYourAccount": "Upravljaj korisničkim računom", "OthersGroup": "Drugi", "Today": "Danas", - "Apply": "primijeniti" + "Apply": "primijeniti", + "InternetConnectionInfo": "Operacija se nije mogla izvesti. Vaša internetska veza trenutačno nije dostupna.", + "CopiedToTheClipboard": "Kopirano u međuspremnik", + "AddNew": "Dodaj novi", + "ProfilePicture": "Profilna slika", + "Theme": "Tema", + "NotAssigned": "Nije dodijeljeno" } -} +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/hu.json b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/hu.json index f3e6454b5b..7b69f58cb2 100644 --- a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/hu.json +++ b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/hu.json @@ -51,6 +51,12 @@ "ManageYourAccount": "Kezelje fiókját", "OthersGroup": "Egyéb", "Today": "Ma", - "Apply": "Alkalmaz" + "Apply": "Alkalmaz", + "InternetConnectionInfo": "A műveletet nem lehetett végrehajtani. Internetkapcsolata jelenleg nem érhető el.", + "CopiedToTheClipboard": "A vágólapra másolva", + "AddNew": "Új hozzáadása", + "ProfilePicture": "Profil kép", + "Theme": "Téma", + "NotAssigned": "Nem kijelölt" } -} +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/is.json b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/is.json index 5a9d9eab54..6115bc6866 100644 --- a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/is.json +++ b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/is.json @@ -51,6 +51,12 @@ "ManageYourAccount": "Stillingar notandaaðgangs", "OthersGroup": "Annað", "Today": "Í dag", - "Apply": "Sækja um" + "Apply": "Sækja um", + "InternetConnectionInfo": "Ekki var hægt að framkvæma aðgerðina. Nettengingin þín er ekki tiltæk í augnablikinu.", + "CopiedToTheClipboard": "Afritað á klippiborðið", + "AddNew": "Bæta við nýju", + "ProfilePicture": "Forsíðumynd", + "Theme": "Þema", + "NotAssigned": "Ekki skráður" } -} +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/it.json b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/it.json index 171681980d..dfeff1d476 100644 --- a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/it.json +++ b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/it.json @@ -51,6 +51,12 @@ "ManageYourAccount": "Gestisci il tuo account", "OthersGroup": "Altra", "Today": "Oggi", - "Apply": "Fare domanda a" + "Apply": "Fare domanda a", + "InternetConnectionInfo": "Impossibile eseguire l'operazione. La tua connessione Internet non è disponibile al momento.", + "CopiedToTheClipboard": "Copiato negli appunti", + "AddNew": "Aggiungere nuova", + "ProfilePicture": "Immagine del profilo", + "Theme": "Tema", + "NotAssigned": "Non assegnato" } -} +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/nl.json b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/nl.json index 42d48d5900..98c7f0980d 100644 --- a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/nl.json +++ b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/nl.json @@ -51,6 +51,12 @@ "ManageYourAccount": "Beheer uw account", "OthersGroup": "Ander", "Today": "Vandaag", - "Apply": "Toepassen" + "Apply": "Toepassen", + "InternetConnectionInfo": "De bewerking kon niet worden uitgevoerd. Je internetverbinding is momenteel niet beschikbaar.", + "CopiedToTheClipboard": "Gekopieerd naar het klembord", + "AddNew": "Nieuw toevoegen", + "ProfilePicture": "Profielfoto", + "Theme": "Thema", + "NotAssigned": "Niet toegekend" } -} +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/pl-PL.json b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/pl-PL.json index bd7a6d5818..027957fec2 100644 --- a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/pl-PL.json +++ b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/pl-PL.json @@ -51,6 +51,12 @@ "ManageYourAccount": "Zarządzaj kontem", "OthersGroup": "Inny", "Today": "Dzisiaj", - "Apply": "Stosować" + "Apply": "Stosować", + "InternetConnectionInfo": "Nie można było wykonać operacji. Twoje połączenie internetowe nie jest w tej chwili dostępne.", + "CopiedToTheClipboard": "Skopiowano do schowka", + "AddNew": "Dodaj nowe", + "ProfilePicture": "Zdjęcie profilowe", + "Theme": "Temat", + "NotAssigned": "Nie przypisano" } -} +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/pt-BR.json b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/pt-BR.json index a205b9442a..d43cd75d94 100644 --- a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/pt-BR.json +++ b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/pt-BR.json @@ -51,6 +51,12 @@ "ManageYourAccount": "Gerenciar sua conta", "OthersGroup": "Outra", "Today": "Hoje", - "Apply": "Aplicar" + "Apply": "Aplicar", + "InternetConnectionInfo": "A operação não pôde ser executada. Sua conexão com a Internet não está disponível no momento.", + "CopiedToTheClipboard": "Copiado para a área de transferência", + "AddNew": "Adicionar novo", + "ProfilePicture": "Foto do perfil", + "Theme": "Tema", + "NotAssigned": "Não atribuído" } -} +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/ro-RO.json b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/ro-RO.json index 0edf60e833..53140c9f8e 100644 --- a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/ro-RO.json +++ b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/ro-RO.json @@ -51,6 +51,12 @@ "ManageYourAccount": "Administraţi-vă contul", "OthersGroup": "Alte", "Today": "Astăzi", - "Apply": "aplica" + "Apply": "aplica", + "InternetConnectionInfo": "Operația nu a putut fi efectuată. Conexiunea ta la internet nu este disponibilă momentan.", + "CopiedToTheClipboard": "Copiat în clipboard", + "AddNew": "Adăuga nou", + "ProfilePicture": "Poză de profil", + "Theme": "Temă", + "NotAssigned": "Nealocat" } -} +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/ru.json b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/ru.json index 53104c18f4..19c7f6e80c 100644 --- a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/ru.json +++ b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/ru.json @@ -51,6 +51,12 @@ "ManageYourAccount": "Настройте свой аккаунт", "OthersGroup": "Другой", "Today": "Сегодня", - "Apply": "Применять" + "Apply": "Применять", + "InternetConnectionInfo": "Операцию выполнить не удалось. Ваше интернет-соединение в данный момент недоступно.", + "CopiedToTheClipboard": "Скопировано в буфер обмена", + "AddNew": "Добавить новое", + "ProfilePicture": "Изображение профиля", + "Theme": "Тема", + "NotAssigned": "Не назначен" } -} +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/sk.json b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/sk.json index 313ce021de..ef823bfcd9 100644 --- a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/sk.json +++ b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/sk.json @@ -51,6 +51,12 @@ "ManageYourAccount": "Spravovať svoje konto", "OthersGroup": "Iné", "Today": "Dnes", - "Apply": "Použiť" + "Apply": "Použiť", + "InternetConnectionInfo": "Operáciu nebolo možné vykonať. Vaše internetové pripojenie momentálne nie je dostupné.", + "CopiedToTheClipboard": "Skopírované do schránky", + "AddNew": "Pridať nové", + "ProfilePicture": "Profilový obrázok", + "Theme": "Téma", + "NotAssigned": "Nepridelené" } -} +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/sl.json b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/sl.json index e7ff5ddc66..a9cb2aadd1 100644 --- a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/sl.json +++ b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/sl.json @@ -51,6 +51,12 @@ "ManageYourAccount": "Upravljajte svoj račun", "OthersGroup": "Ostalo", "Today": "Danes", - "Apply": "Prijavite se" + "Apply": "Prijavite se", + "InternetConnectionInfo": "Operacije ni bilo mogoče izvesti. Vaša internetna povezava trenutno ni na voljo.", + "CopiedToTheClipboard": "Kopirano v odložišče", + "AddNew": "Dodaj novo", + "ProfilePicture": "Profilna slika", + "Theme": "Tema", + "NotAssigned": "Ni dodeljena" } -} +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/vi.json b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/vi.json index 581964a9b8..d352b69ca2 100644 --- a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/vi.json +++ b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/vi.json @@ -51,6 +51,12 @@ "ManageYourAccount": "Quản lý tài khoản của bạn", "OthersGroup": "Khác", "Today": "Hôm nay", - "Apply": "Áp dụng" + "Apply": "Áp dụng", + "InternetConnectionInfo": "Các hoạt động không thể được thực hiện. Kết nối internet của bạn hiện không khả dụng.", + "CopiedToTheClipboard": "Đã sao chép vào bảng nhớ tạm", + "AddNew": "Thêm mới", + "ProfilePicture": "Ảnh đại diện", + "Theme": "chủ đề", + "NotAssigned": "Không được chỉ định" } -} +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/zh-Hans.json b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/zh-Hans.json index 51d5865924..cbc45a5a08 100644 --- a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/zh-Hans.json +++ b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/zh-Hans.json @@ -50,9 +50,13 @@ "ItemWillBeDeletedMessage": "此项将被删除!", "ManageYourAccount": "管理你的账户", "OthersGroup": "其他", - "CopiedToTheClipboard": "已复制到剪贴板", - "NotAssigned": "未分配", "Today": "今天", - "Apply": "应用" + "Apply": "应用", + "InternetConnectionInfo": "无法执行该操作。您的互联网连接目前不可用。", + "CopiedToTheClipboard": "已复制到剪贴板", + "AddNew": "添新", + "ProfilePicture": "个人资料图片", + "Theme": "主题", + "NotAssigned": "未分配" } -} +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/zh-Hant.json b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/zh-Hant.json index dac062d1cd..8223d79a43 100644 --- a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/zh-Hant.json +++ b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/zh-Hant.json @@ -50,9 +50,13 @@ "ItemWillBeDeletedMessage": "此項目將被刪除!", "ManageYourAccount": "管理個人帳號", "OthersGroup": "其他", - "CopiedToTheClipboard": "已复制到剪贴板", - "NotAssigned": "未分配", "Today": "今天", - "Apply": "應用" + "Apply": "應用", + "InternetConnectionInfo": "無法執行該操作。您的網路連線目前無法使用。", + "CopiedToTheClipboard": "已复制到剪贴板", + "AddNew": "添新", + "ProfilePicture": "個人資料圖片", + "Theme": "主題", + "NotAssigned": "未分配" } -} +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/ar.json b/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/ar.json index 252bee394f..ee6ff2b595 100644 --- a/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/ar.json +++ b/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/ar.json @@ -27,6 +27,8 @@ "ThisFieldMustBeAStringOrArrayTypeWithAMinimumLengthOf{0}": " هذا الحقل يجب أن يكون عبارة عن سلسلة أو صفيف طوله كحد أدنى '{0}'.", "ThisFieldIsNotAValidPhoneNumber.": "هذا الحقل لا يمثل رقم هاتف صالح.", "ThisFieldMustBeBetween{0}And{1}": "هذا الحقل يجب أن يكون بين {0} و {1}.", + "ThisFieldMustBeGreaterThanOrEqual{0}": "يجب أن يكون هذا الحقل أكبر من أو يساوي {0}.", + "ThisFieldMustBeLessOrEqual{0}": "يجب أن يكون هذا الحقل أقل من أو يساوي {0}.", "ThisFieldMustMatchTheRegularExpression{0}": "هذا الحقل يجب أن يتطابق مع التعبير النمطي '{0}'.", "ThisFieldIsRequired.": "هذا الحقل إجباري.", "ThisFieldMustBeAStringWithAMaximumLengthOf{0}": "هذا الحقل يجب أن يكون سلسلة أحرف طولها كحد أقصى {0}.", diff --git a/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/cs.json b/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/cs.json index 60e2113906..59184f33b0 100644 --- a/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/cs.json +++ b/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/cs.json @@ -27,6 +27,8 @@ "ThisFieldMustBeAStringOrArrayTypeWithAMinimumLengthOf{0}": "V poli musí být řežezec nebo řada o minimální délce '{0}'.", "ThisFieldIsNotAValidPhoneNumber.": "V poli není platné telefonní číslo.", "ThisFieldMustBeBetween{0}And{1}": "Pole musí být mezi {0} a {1}.", + "ThisFieldMustBeGreaterThanOrEqual{0}": "Toto pole musí být větší nebo rovno {0}.", + "ThisFieldMustBeLessOrEqual{0}": "Toto pole musí být menší nebo rovno {0}.", "ThisFieldMustMatchTheRegularExpression{0}": "Pole musí odpovídat regulérnímu výrazu '{0}'.", "ThisFieldIsRequired.": "Pole je povinné.", "ThisFieldMustBeAStringWithAMaximumLengthOf{0}": "Pole musí být řetězec o maximální délce {0}.", @@ -34,4 +36,4 @@ "ThisFieldIsNotAValidFullyQualifiedHttpHttpsOrFtpUrl": "Pole není platná plně kvalifikovaná adresa http, https, nebo ftp URL.", "ThisFieldIsInvalid.": "Pole je neplatné." } -} +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/de.json b/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/de.json index 209d8536ae..4e233c1107 100644 --- a/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/de.json +++ b/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/de.json @@ -27,6 +27,8 @@ "ThisFieldMustBeAStringOrArrayTypeWithAMinimumLengthOf{0}": "Dieses Feld muss ein String- oder Array-Typ mit einer Mindestlänge von '{0}' sein.", "ThisFieldIsNotAValidPhoneNumber.": "Dieses Feld ist keine gültige Telefonnummer.", "ThisFieldMustBeBetween{0}And{1}": "Dieses Feld muss zwischen {0} und {1} liegen.", + "ThisFieldMustBeGreaterThanOrEqual{0}": "Dieses Feld muss größer oder gleich {0} sein.", + "ThisFieldMustBeLessOrEqual{0}": "Dieses Feld muss kleiner oder gleich {0} sein.", "ThisFieldMustMatchTheRegularExpression{0}": "Dieses Feld muss mit dem regulären Ausdruck '{0}' übereinstimmen.", "ThisFieldIsRequired.": "Dieses Feld wird benötigt.", "ThisFieldMustBeAStringWithAMaximumLengthOf{0}": "Dieses Feld muss eine Zeichenfolge mit einer maximalen Länge von {0} sein.", diff --git a/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/es.json b/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/es.json index 969cb3f3a9..9ecba92ca0 100644 --- a/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/es.json +++ b/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/es.json @@ -27,6 +27,8 @@ "ThisFieldMustBeAStringOrArrayTypeWithAMinimumLengthOf{0}": "Este campo debe ser una cadena o lista con una longitud mínima de {1}.", "ThisFieldIsNotAValidPhoneNumber.": "Este campo no es un número de teléfono valido.", "ThisFieldMustBeBetween{0}And{1}": "Este campo debe estar entre {0} y {1}.", + "ThisFieldMustBeGreaterThanOrEqual{0}": "Este campo debe ser mayor o igual a {0}.", + "ThisFieldMustBeLessOrEqual{0}": "Este campo debe ser menor o igual a {0}.", "ThisFieldMustMatchTheRegularExpression{0}": "Este campo debe coincidir con la expresión regular '{0}'.", "ThisFieldIsRequired.": "Este campo es requerido", "ThisFieldMustBeAStringWithAMaximumLengthOf{0}": "Este campo debe ser una cadena con una longitud máxima de {1}.", diff --git a/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/fr.json b/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/fr.json index 0adf748127..baa8a96380 100644 --- a/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/fr.json +++ b/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/fr.json @@ -1,37 +1,39 @@ { - "culture": "fr", - "texts": { - "'{0}' and '{1}' do not match.": "'{0}' et '{1}' ne correspondent pas.", - "The {0} field is not a valid credit card number.": "Le champ {0} n'est pas un numéro de carte de crédit valide.", - "{0} is not valid.": "{0} n'est pas valide.", - "The {0} field is not a valid e-mail address.": "Le champ {0} n'est pas une adresse e-mail valide.", - "The {0} field only accepts files with the following extensions: {1}": "Le champ {0} accepte uniquement les fichiers avec les extensions suivantes: {1}", - "The field {0} must be a string or array type with a maximum length of '{1}'.": "Le champ {0} doit être une chaîne ou un type de tableau d'une longueur maximale de '{1}'.", - "The field {0} must be a string or array type with a minimum length of '{1}'.": "Le champ {0} doit être une chaîne ou un type de tableau d'une longueur minimale de '{1}'.", - "The {0} field is not a valid phone number.": "Le champ {0} n'est pas un numéro de téléphone valide.", - "The field {0} must be between {1} and {2}.": "Le champ {0} doit être compris entre {1} et {2}.", - "The field {0} must match the regular expression '{1}'.": "Le champ {0} ne correspond pas au format demandé.", - "The {0} field is required.": "Le champ {0} est obligatoire.", - "The field {0} must be a string with a maximum length of {1}.": "Le champ {0} doit être une chaîne d'une longueur maximale de {1}.", - "The field {0} must be a string with a minimum length of {2} and a maximum length of {1}.": "Le champ {0} doit être une chaîne d'une longueur minimale de {2} et d'une longueur maximale de {1}.", - "The {0} field is not a valid fully-qualified http, https, or ftp URL.": "Le champ {0} n'est pas une URL http, https ou ftp complète valide.", - "The field {0} is invalid.": "Le champ {0} n'est pas valide.", - "The value '{0}' is invalid.": "La valeur '{0}' n'est pas valide.", - "The field {0} must be a number.": "Le champ {0} doit être un nombre.", - "The field must be a number.": "Le champ doit être un nombre.", - "ThisFieldIsNotAValidCreditCardNumber.": "Ce champ n'est pas un numéro de carte de crédit valide.", - "ThisFieldIsNotValid.": "Ce champ n'est pas valide.", - "ThisFieldIsNotAValidEmailAddress.": "Ce champ n'est pas une adresse e-mail valide.", - "ThisFieldOnlyAcceptsFilesWithTheFollowingExtensions:{0}": "Ce champ accepte uniquement les fichiers avec les extensions suivantes: {0}", - "ThisFieldMustBeAStringOrArrayTypeWithAMaximumLengthOf{0}": "Ce champ doit être une chaîne ou un type de tableau d'une longueur maximale de '{0}'.", - "ThisFieldMustBeAStringOrArrayTypeWithAMinimumLengthOf{0}": "Ce champ doit être un type de chaîne ou de tableau d'une longueur minimale de '{0}'.", - "ThisFieldIsNotAValidPhoneNumber.": "Ce champ n'est pas un numéro de téléphone valide.", - "ThisFieldMustBeBetween{0}And{1}": "Ce champ doit être compris entre {0} et {1}.", - "ThisFieldMustMatchTheRegularExpression{0}": "Ce champ doit correspondre à l'expression régulière '{0}'.", - "ThisFieldIsRequired.": "Ce champ est requis.", - "ThisFieldMustBeAStringWithAMaximumLengthOf{0}": "Ce champ doit être une chaîne d'une longueur maximale de {0}.", - "ThisFieldMustBeAStringWithAMinimumLengthOf{1}AndAMaximumLengthOf{0}": "Ce champ doit être une chaîne d'une longueur minimale de {1} et d'une longueur maximale de {0}.", - "ThisFieldIsNotAValidFullyQualifiedHttpHttpsOrFtpUrl": "Ce champ n'est pas une URL http, https ou ftp complète valide.", - "ThisFieldIsInvalid.": "Ce champ n'est pas valide." - } + "culture": "fr", + "texts": { + "'{0}' and '{1}' do not match.": "'{0}' et '{1}' ne correspondent pas.", + "The {0} field is not a valid credit card number.": "Le champ {0} n'est pas un numéro de carte de crédit valide.", + "{0} is not valid.": "{0} n'est pas valide.", + "The {0} field is not a valid e-mail address.": "Le champ {0} n'est pas une adresse e-mail valide.", + "The {0} field only accepts files with the following extensions: {1}": "Le champ {0} accepte uniquement les fichiers avec les extensions suivantes: {1}", + "The field {0} must be a string or array type with a maximum length of '{1}'.": "Le champ {0} doit être une chaîne ou un type de tableau d'une longueur maximale de '{1}'.", + "The field {0} must be a string or array type with a minimum length of '{1}'.": "Le champ {0} doit être une chaîne ou un type de tableau d'une longueur minimale de '{1}'.", + "The {0} field is not a valid phone number.": "Le champ {0} n'est pas un numéro de téléphone valide.", + "The field {0} must be between {1} and {2}.": "Le champ {0} doit être compris entre {1} et {2}.", + "The field {0} must match the regular expression '{1}'.": "Le champ {0} ne correspond pas au format demandé.", + "The {0} field is required.": "Le champ {0} est obligatoire.", + "The field {0} must be a string with a maximum length of {1}.": "Le champ {0} doit être une chaîne d'une longueur maximale de {1}.", + "The field {0} must be a string with a minimum length of {2} and a maximum length of {1}.": "Le champ {0} doit être une chaîne d'une longueur minimale de {2} et d'une longueur maximale de {1}.", + "The {0} field is not a valid fully-qualified http, https, or ftp URL.": "Le champ {0} n'est pas une URL http, https ou ftp complète valide.", + "The field {0} is invalid.": "Le champ {0} n'est pas valide.", + "The value '{0}' is invalid.": "La valeur '{0}' n'est pas valide.", + "The field {0} must be a number.": "Le champ {0} doit être un nombre.", + "The field must be a number.": "Le champ doit être un nombre.", + "ThisFieldIsNotAValidCreditCardNumber.": "Ce champ n'est pas un numéro de carte de crédit valide.", + "ThisFieldIsNotValid.": "Ce champ n'est pas valide.", + "ThisFieldIsNotAValidEmailAddress.": "Ce champ n'est pas une adresse e-mail valide.", + "ThisFieldOnlyAcceptsFilesWithTheFollowingExtensions:{0}": "Ce champ accepte uniquement les fichiers avec les extensions suivantes: {0}", + "ThisFieldMustBeAStringOrArrayTypeWithAMaximumLengthOf{0}": "Ce champ doit être une chaîne ou un type de tableau d'une longueur maximale de '{0}'.", + "ThisFieldMustBeAStringOrArrayTypeWithAMinimumLengthOf{0}": "Ce champ doit être un type de chaîne ou de tableau d'une longueur minimale de '{0}'.", + "ThisFieldIsNotAValidPhoneNumber.": "Ce champ n'est pas un numéro de téléphone valide.", + "ThisFieldMustBeBetween{0}And{1}": "Ce champ doit être compris entre {0} et {1}.", + "ThisFieldMustBeGreaterThanOrEqual{0}": "Ce champ doit être supérieur ou égal à {0}.", + "ThisFieldMustBeLessOrEqual{0}": "Ce champ doit être inférieur ou égal à {0}.", + "ThisFieldMustMatchTheRegularExpression{0}": "Ce champ doit correspondre à l'expression régulière '{0}'.", + "ThisFieldIsRequired.": "Ce champ est requis.", + "ThisFieldMustBeAStringWithAMaximumLengthOf{0}": "Ce champ doit être une chaîne d'une longueur maximale de {0}.", + "ThisFieldMustBeAStringWithAMinimumLengthOf{1}AndAMaximumLengthOf{0}": "Ce champ doit être une chaîne d'une longueur minimale de {1} et d'une longueur maximale de {0}.", + "ThisFieldIsNotAValidFullyQualifiedHttpHttpsOrFtpUrl": "Ce champ n'est pas une URL http, https ou ftp complète valide.", + "ThisFieldIsInvalid.": "Ce champ n'est pas valide." + } } \ No newline at end of file diff --git a/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/hi.json b/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/hi.json index d7ae279c18..69995133fb 100644 --- a/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/hi.json +++ b/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/hi.json @@ -27,6 +27,8 @@ "ThisFieldMustBeAStringOrArrayTypeWithAMinimumLengthOf{0}": "यह फ़ील्ड '{0}' की न्यूनतम लंबाई के साथ एक स्ट्रिंग या सरणी प्रकार होनी चाहिए।", "ThisFieldIsNotAValidPhoneNumber.": "यह फ़ील्ड मान्य फ़ोन नंबर नहीं है।", "ThisFieldMustBeBetween{0}And{1}": "यह फ़ील्ड {0} और {1} के बीच होनी चाहिए।", + "ThisFieldMustBeGreaterThanOrEqual{0}": "यह फ़ील्ड {0} से बड़ी या उसके बराबर होनी चाहिए.", + "ThisFieldMustBeLessOrEqual{0}": "यह फ़ील्ड {0} से कम या उसके बराबर होनी चाहिए.", "ThisFieldMustMatchTheRegularExpression{0}": "यह फ़ील्ड नियमित अभिव्यक्ति '{0}' से मेल खाना चाहिए।", "ThisFieldIsRequired.": "यह फ़ील्ड आवश्यक है।", "ThisFieldMustBeAStringWithAMaximumLengthOf{0}": "यह फ़ील्ड {0} की अधिकतम लंबाई के साथ एक स्ट्रिंग होनी चाहिए।", diff --git a/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/is.json b/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/is.json index 1f9c858d2a..4aba8b9687 100644 --- a/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/is.json +++ b/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/is.json @@ -27,6 +27,8 @@ "ThisFieldMustBeAStringOrArrayTypeWithAMinimumLengthOf{0}": "Þessi reitur verður að vera strengur eða fylki með lágmarkslengd '{0}'.", "ThisFieldIsNotAValidPhoneNumber.": "Þessi reitur er ekki gilt símanúmer.", "ThisFieldMustBeBetween{0}And{1}": "Þessi reitur verður að vera á milli {0} og {1}.", + "ThisFieldMustBeGreaterThanOrEqual{0}": "Þessi reitur verður að vera stærri en eða jafn og {0}.", + "ThisFieldMustBeLessOrEqual{0}": "Þessi reitur verður að vera minni en eða jafn og {0}.", "ThisFieldMustMatchTheRegularExpression{0}": "Þessi reitur verður að passa við regexpressionið '{0}'.", "ThisFieldIsRequired.": "Þessi reitur er nauðsynlegur.", "ThisFieldMustBeAStringWithAMaximumLengthOf{0}": "Þessi reitur verður að vera strengur með hámarkslengd {0}.", diff --git a/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/it.json b/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/it.json index 4cf02600bc..ffc0ce9705 100644 --- a/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/it.json +++ b/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/it.json @@ -27,6 +27,8 @@ "ThisFieldMustBeAStringOrArrayTypeWithAMinimumLengthOf{0}": "Questo campo deve essere una stringa o un tipo di matrice con una lunghezza minima di '{0}'.", "ThisFieldIsNotAValidPhoneNumber.": "Questo campo non è un numero di telefono valido.", "ThisFieldMustBeBetween{0}And{1}": "Questo campo deve essere compreso tra {0} e {1}.", + "ThisFieldMustBeGreaterThanOrEqual{0}": "Questo campo deve essere maggiore o uguale a {0}.", + "ThisFieldMustBeLessOrEqual{0}": "Questo campo deve essere minore o uguale a {0}.", "ThisFieldMustMatchTheRegularExpression{0}": "Questo campo deve corrispondere all'espressione regolare '{0}'.", "ThisFieldIsRequired.": "Questo campo è obbligatorio.", "ThisFieldMustBeAStringWithAMaximumLengthOf{0}": "Questo campo deve essere una stringa con una lunghezza massima di {0}.", diff --git a/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/nl.json b/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/nl.json index 096d2fcbc3..f8bb9a2336 100644 --- a/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/nl.json +++ b/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/nl.json @@ -27,6 +27,8 @@ "ThisFieldMustBeAStringOrArrayTypeWithAMinimumLengthOf{0}": "Dit veld moet een tekenreeks- of arraytype zijn met een minimale lengte van '{0}'.", "ThisFieldIsNotAValidPhoneNumber.": "Dit veld is geen geldig telefoonnummer.", "ThisFieldMustBeBetween{0}And{1}": "Dit veld moet tussen {0} en {1} liggen.", + "ThisFieldMustBeGreaterThanOrEqual{0}": "Dit veld moet groter zijn dan of gelijk zijn aan {0}.", + "ThisFieldMustBeLessOrEqual{0}": "Dit veld moet kleiner dan of gelijk zijn aan {0}.", "ThisFieldMustMatchTheRegularExpression{0}": "Dit veld moet overeenkomen met de reguliere expressie '{0}'.", "ThisFieldIsRequired.": "Dit veld is verplicht.", "ThisFieldMustBeAStringWithAMaximumLengthOf{0}": "Dit veld moet een tekenreeks zijn met een maximale lengte van {0}.", diff --git a/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/pl-PL.json b/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/pl-PL.json index 29baf6efff..d6f801c03c 100644 --- a/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/pl-PL.json +++ b/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/pl-PL.json @@ -27,6 +27,8 @@ "ThisFieldMustBeAStringOrArrayTypeWithAMinimumLengthOf{0}": "To pole musi być ciągiem lub typem tablicy o minimalnej długości „{0}”.", "ThisFieldIsNotAValidPhoneNumber.": "To pole nie jest prawidłowym numerem telefonu.", "ThisFieldMustBeBetween{0}And{1}": "To pole musi zawierać się w przedziale od {0} do {1}.", + "ThisFieldMustBeGreaterThanOrEqual{0}": "To pole musi być większe lub równe {0}.", + "ThisFieldMustBeLessOrEqual{0}": "To pole musi być mniejsze lub równe {0}.", "ThisFieldMustMatchTheRegularExpression{0}": "To pole musi być zgodne z wyrażeniem regularnym „{0}”.", "ThisFieldIsRequired.": "To pole jest wymagane.", "ThisFieldMustBeAStringWithAMaximumLengthOf{0}": "To pole musi być ciągiem o maksymalnej długości {0}.", diff --git a/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/ro-RO.json b/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/ro-RO.json index 5fe4e459a2..27e16b7896 100644 --- a/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/ro-RO.json +++ b/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/ro-RO.json @@ -27,6 +27,8 @@ "ThisFieldMustBeAStringOrArrayTypeWithAMinimumLengthOf{0}": "Acest câmp trebuie să fie de tipul string sau arraz cu lungimea minimă de '{0}'.", "ThisFieldIsNotAValidPhoneNumber.": "Acest câmp nu este un număr de telefon valid.", "ThisFieldMustBeBetween{0}And{1}": "Acest câmp trebuie să fie între {0} şi {1}.", + "ThisFieldMustBeGreaterThanOrEqual{0}": "Acest câmp trebuie să fie mai mare sau egal cu {0}.", + "ThisFieldMustBeLessOrEqual{0}": "Acest câmp trebuie să fie mai mic sau egal cu {0}.", "ThisFieldMustMatchTheRegularExpression{0}": "Acest câmp trebuie să se potrivească cu expresia uzuală '{0}'.", "ThisFieldIsRequired.": "Acest câmp este obligatoriu.", "ThisFieldMustBeAStringWithAMaximumLengthOf{0}": "Acest câmp trebuie să fie un string cu lungimea maximă de {0}.", diff --git a/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/ru.json b/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/ru.json index a52c619933..fc31d1dc88 100644 --- a/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/ru.json +++ b/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/ru.json @@ -27,6 +27,8 @@ "ThisFieldMustBeAStringOrArrayTypeWithAMinimumLengthOf{0}": "Это поле должно иметь тип строки или массива с минимальной длиной '{0}'.", "ThisFieldIsNotAValidPhoneNumber.": "Это поле не содержит действительный номер телефона.", "ThisFieldMustBeBetween{0}And{1}": "Это поле должно быть между {0} и {1}.", + "ThisFieldMustBeGreaterThanOrEqual{0}": "Это поле должно быть больше или равно {0}.", + "ThisFieldMustBeLessOrEqual{0}": "Это поле должно быть меньше или равно {0}.", "ThisFieldMustMatchTheRegularExpression{0}": "Это поле должно соответствовать регулярному выражению '{0}'.", "ThisFieldIsRequired.": "Это обязательное поле.", "ThisFieldMustBeAStringWithAMaximumLengthOf{0}": "Это поле должно быть строкой с максимальной длиной {0}.", @@ -34,4 +36,4 @@ "ThisFieldIsNotAValidFullyQualifiedHttpHttpsOrFtpUrl": "Значение в поле не является действительным полным http, https или ftp адресом.", "ThisFieldIsInvalid.": "Значение в этом поле недопустимо." } -} +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/sk.json b/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/sk.json index 856124c31f..63f6647575 100644 --- a/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/sk.json +++ b/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/sk.json @@ -27,6 +27,8 @@ "ThisFieldMustBeAStringOrArrayTypeWithAMinimumLengthOf{0}": "Toto pole musí byť typu reťazec alebo pole s minimálnou dĺžkou '{0}'.", "ThisFieldIsNotAValidPhoneNumber.": "V tomto poli nie je platné telefónne číslo.", "ThisFieldMustBeBetween{0}And{1}": "Toto pole musí byť medzi {0} a {1}.", + "ThisFieldMustBeGreaterThanOrEqual{0}": "Toto pole musí byť väčšie alebo rovné {0}.", + "ThisFieldMustBeLessOrEqual{0}": "Toto pole musí byť menšie alebo rovné {0}.", "ThisFieldMustMatchTheRegularExpression{0}": "Toto pole musí zodpovedať regulárnemu výrazu '{0}'.", "ThisFieldIsRequired.": "Toto pole je povinné.", "ThisFieldMustBeAStringWithAMaximumLengthOf{0}": "Toto pole musí byť typu reťazec s maximálnou dĺžkou {0}.", diff --git a/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/sl.json b/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/sl.json index 0eaa31916b..349aaed68a 100644 --- a/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/sl.json +++ b/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/sl.json @@ -27,6 +27,8 @@ "ThisFieldMustBeAStringOrArrayTypeWithAMinimumLengthOf{0}": "To polje mora biti vrsta niza ali matrike z najmanjšo dolžino »{0}«.", "ThisFieldIsNotAValidPhoneNumber.": "To polje ni veljavna telefonska številka.", "ThisFieldMustBeBetween{0}And{1}": "To polje mora biti med {0} in {1}.", + "ThisFieldMustBeGreaterThanOrEqual{0}": "To polje mora biti večje ali enako {0}.", + "ThisFieldMustBeLessOrEqual{0}": "To polje mora biti manjše ali enako {0}.", "ThisFieldMustMatchTheRegularExpression{0}": "To polje se mora ujemati z regularnim izrazom »{0}«.", "ThisFieldIsRequired.": "To polje je obvezno.", "ThisFieldMustBeAStringWithAMaximumLengthOf{0}": "To polje mora biti niz z največjo dolžino {0}.", diff --git a/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/vi.json b/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/vi.json index 984f5c2e2b..88dffdfc6d 100644 --- a/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/vi.json +++ b/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/vi.json @@ -27,6 +27,8 @@ "ThisFieldMustBeAStringOrArrayTypeWithAMinimumLengthOf{0}": "Trường này phải là một kiểu chuỗi hoặc mảng có độ dài tối thiểu là '{0}'.", "ThisFieldIsNotAValidPhoneNumber.": "Trường này không phải là số điện thoại hợp lệ.", "ThisFieldMustBeBetween{0}And{1}": "Trường này phải nằm trong khoảng từ {0} đến {1}.", + "ThisFieldMustBeGreaterThanOrEqual{0}": "Trường này phải lớn hơn hoặc bằng {0}.", + "ThisFieldMustBeLessOrEqual{0}": "Trường này phải nhỏ hơn hoặc bằng {0}.", "ThisFieldMustMatchTheRegularExpression{0}": "Trường này phải khớp với biểu thức chính quy '{0}'.", "ThisFieldIsRequired.": "Trường này là bắt buộc.", "ThisFieldMustBeAStringWithAMaximumLengthOf{0}": "Trường này phải là một chuỗi có độ dài tối đa là {0}.", diff --git a/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/zh-Hant.json b/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/zh-Hant.json index 0f14ca2a40..f3a901f23a 100644 --- a/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/zh-Hant.json +++ b/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/zh-Hant.json @@ -27,6 +27,8 @@ "ThisFieldMustBeAStringOrArrayTypeWithAMinimumLengthOf{0}": "此欄位必須是最小長度為'{0}'的字串或陣列.", "ThisFieldIsNotAValidPhoneNumber.": "此欄位不是有效的電話號碼.", "ThisFieldMustBeBetween{0}And{1}": "此欄位值必須在{0}和{1}範圍內.", + "ThisFieldMustBeGreaterThanOrEqual{0}": "該字段必須大於或等於 {0}。", + "ThisFieldMustBeLessOrEqual{0}": "該欄位必須小於或等於 {0}。", "ThisFieldMustMatchTheRegularExpression{0}": "此欄位必須匹配正規表示式'{0}'.", "ThisFieldIsRequired.": "此欄位不可為空.", "ThisFieldMustBeAStringWithAMaximumLengthOf{0}": "此欄位必須是長度為{0}的字串.", diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/Localization/Resource/de.json b/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/Localization/Resource/de.json index f5c2e651b5..7dcc12a4b6 100644 --- a/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/Localization/Resource/de.json +++ b/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/Localization/Resource/de.json @@ -1,6 +1,9 @@ { "culture": "de", "texts": { + "DisplayName:PersonModel:BirthDate1": "Geburtsdatum1", + "DisplayName:BirthDate2": "Geburtsdatum2", + "PersonModel:BirthDate3": "Geburtsdatum3", "BirthDate": "Geburtsdatum", "Value1": "Wert Eins" } diff --git a/framework/test/Volo.Abp.AspNetCore.SignalR.Tests/Volo.Abp.AspNetCore.SignalR.Tests.csproj b/framework/test/Volo.Abp.AspNetCore.SignalR.Tests/Volo.Abp.AspNetCore.SignalR.Tests.csproj index cf784b8917..8a1bcfcb9e 100644 --- a/framework/test/Volo.Abp.AspNetCore.SignalR.Tests/Volo.Abp.AspNetCore.SignalR.Tests.csproj +++ b/framework/test/Volo.Abp.AspNetCore.SignalR.Tests/Volo.Abp.AspNetCore.SignalR.Tests.csproj @@ -14,7 +14,7 @@ - + diff --git a/framework/test/Volo.Abp.AspNetCore.SignalR.Tests/Volo/Abp/AspNetCore/SignalR/AbpAspNetCoreSignalRTestModule.cs b/framework/test/Volo.Abp.AspNetCore.SignalR.Tests/Volo/Abp/AspNetCore/SignalR/AbpAspNetCoreSignalRTestModule.cs index 4bb545007b..f0c056c784 100644 --- a/framework/test/Volo.Abp.AspNetCore.SignalR.Tests/Volo/Abp/AspNetCore/SignalR/AbpAspNetCoreSignalRTestModule.cs +++ b/framework/test/Volo.Abp.AspNetCore.SignalR.Tests/Volo/Abp/AspNetCore/SignalR/AbpAspNetCoreSignalRTestModule.cs @@ -1,14 +1,34 @@ -using Volo.Abp.Autofac; +using System; +using Microsoft.AspNetCore.Builder; +using Volo.Abp.AspNetCore.TestBase; +using Volo.Abp.Autofac; using Volo.Abp.Modularity; namespace Volo.Abp.AspNetCore.SignalR; [DependsOn( typeof(AbpAspNetCoreSignalRModule), - typeof(AbpTestBaseModule), + typeof(AbpAspNetCoreTestBaseModule), typeof(AbpAutofacModule) )] public class AbpAspNetCoreSignalRTestModule : AbpModule { + public static Exception UseConfiguredEndpointsException { get; set; } + public override void OnApplicationInitialization(ApplicationInitializationContext context) + { + var app = context.GetApplicationBuilder(); + + app.UseRouting(); + + UseConfiguredEndpointsException = null; + try + { + app.UseConfiguredEndpoints(); + } + catch (Exception e) + { + UseConfiguredEndpointsException = e; + } + } } diff --git a/framework/test/Volo.Abp.AspNetCore.SignalR.Tests/Volo/Abp/AspNetCore/SignalR/AbpSignalROptions_Tests.cs b/framework/test/Volo.Abp.AspNetCore.SignalR.Tests/Volo/Abp/AspNetCore/SignalR/AbpSignalROptions_Tests.cs index f0ee46594b..3cfc928b02 100644 --- a/framework/test/Volo.Abp.AspNetCore.SignalR.Tests/Volo/Abp/AspNetCore/SignalR/AbpSignalROptions_Tests.cs +++ b/framework/test/Volo.Abp.AspNetCore.SignalR.Tests/Volo/Abp/AspNetCore/SignalR/AbpSignalROptions_Tests.cs @@ -1,11 +1,13 @@ -using Microsoft.Extensions.Options; +using System.Linq; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Options; using Shouldly; using Volo.Abp.AspNetCore.SignalR.SampleHubs; using Xunit; namespace Volo.Abp.AspNetCore.SignalR; -public class AbpSignalROptions_Tests : AbpAspNetCoreSignalRTestBase +public class AbpSignalROptions_Tests : AbpAspNetCoreTestBase { private readonly AbpSignalROptions _options; @@ -14,12 +16,74 @@ public class AbpSignalROptions_Tests : AbpAspNetCoreSignalRTestBase _options = GetRequiredService>().Value; } - [Fact(Skip = "Can not run this test since AspNet Core environment has not been properly set!")] + protected override void ConfigureServices(IServiceCollection services) + { + services.AddTransient(); + services.AddTransient(); + services.AddTransient(); + services.AddTransient(); + } + + [Fact] public void Should_Auto_Add_Maps() { _options.Hubs.ShouldContain(h => h.HubType == typeof(RegularHub)); _options.Hubs.ShouldContain(h => h.HubType == typeof(RegularAbpHub)); _options.Hubs.ShouldNotContain(h => h.HubType == typeof(DisableConventionalRegistrationHub)); _options.Hubs.ShouldNotContain(h => h.HubType == typeof(DisableAutoHubMapHub)); + _options.Hubs.ShouldContain(h => h.HubType == typeof(RegularHubClass1)); + _options.Hubs.ShouldContain(h => h.HubType == typeof(RegularHubClass12)); + _options.Hubs.ShouldContain(h => h.HubType == typeof(RegularHubClass2)); + _options.Hubs.ShouldContain(h => h.HubType == typeof(RegularHubClass22)); + } +} + +[Collection("AbpAspNetCoreSignalR")] +public class AbpSignalSameRroutePattern_Tests : AbpAspNetCoreTestBase +{ + protected override void ConfigureServices(IServiceCollection services) + { + services.AddTransient(); + services.AddTransient(); + services.AddTransient(); + } + + [Fact] + public void Should_Throw_Exception_If_HubType_Has_Same_RoutePattern() + { + AbpAspNetCoreSignalRTestModule.UseConfiguredEndpointsException.ShouldNotBeNull(); + AbpAspNetCoreSignalRTestModule.UseConfiguredEndpointsException.Message.ShouldBe($"The hub type {typeof(RegularHubClass12).FullName} is already registered with route pattern {HubRouteAttribute.GetRoutePattern(typeof(RegularHubClass12))}"); + } +} + +[Collection("AbpAspNetCoreSignalR")] +public class AbpSignalDifferentRroutePattern_Tests : AbpAspNetCoreTestBase +{ + protected override void ConfigureServices(IServiceCollection services) + { + services.AddTransient(); + services.AddTransient(); + services.AddTransient(); + + services.Configure(options => + { + var firstHub = options.Hubs.FirstOrDefault(x => x.HubType == typeof(RegularHubClass22)); + if (firstHub != null) + { + firstHub.RoutePattern = "/signalr-hubs/regular-hub-class-22"; + } + + var lastHub = options.Hubs.LastOrDefault(x => x.HubType == typeof(RegularHubClass22)); + if (lastHub != null) + { + lastHub.RoutePattern = "/signalr-hubs/regular-hub-class-22-1"; + } + }); + } + + [Fact] + public void Should_Work_If_Same_HubType_Has_Different_RoutePattern() + { + AbpAspNetCoreSignalRTestModule.UseConfiguredEndpointsException.ShouldBeNull(); } } diff --git a/framework/test/Volo.Abp.AspNetCore.SignalR.Tests/Volo/Abp/AspNetCore/SignalR/Program.cs b/framework/test/Volo.Abp.AspNetCore.SignalR.Tests/Volo/Abp/AspNetCore/SignalR/Program.cs new file mode 100644 index 0000000000..b01b1eaf97 --- /dev/null +++ b/framework/test/Volo.Abp.AspNetCore.SignalR.Tests/Volo/Abp/AspNetCore/SignalR/Program.cs @@ -0,0 +1,10 @@ +using Microsoft.AspNetCore.Builder; +using Volo.Abp.AspNetCore.SignalR; +using Volo.Abp.AspNetCore.TestBase; + +var builder = WebApplication.CreateBuilder(); +await builder.RunAbpModuleAsync(); + +public partial class Program +{ +} diff --git a/framework/test/Volo.Abp.AspNetCore.SignalR.Tests/Volo/Abp/AspNetCore/SignalR/SampleHubs/RegularHubBase.cs b/framework/test/Volo.Abp.AspNetCore.SignalR.Tests/Volo/Abp/AspNetCore/SignalR/SampleHubs/RegularHubBase.cs new file mode 100644 index 0000000000..daf8cfe1e5 --- /dev/null +++ b/framework/test/Volo.Abp.AspNetCore.SignalR.Tests/Volo/Abp/AspNetCore/SignalR/SampleHubs/RegularHubBase.cs @@ -0,0 +1,37 @@ +using Microsoft.AspNetCore.SignalR; +using Volo.Abp.DependencyInjection; + +namespace Volo.Abp.AspNetCore.SignalR.SampleHubs; + +public abstract class RegularHubBase : Hub where THub : class +{ + +} + +[DisableConventionalRegistration] +[ExposeServices(typeof(RegularHubClass1))] +public class RegularHubClass1 : RegularHubBase +{ + +} + +[DisableConventionalRegistration] +[ExposeServices(typeof(RegularHubClass12), typeof(RegularHubClass1))] +public class RegularHubClass12 : RegularHubClass1 +{ + +} + +[DisableConventionalRegistration] +[ExposeServices(typeof(RegularHubClass2))] +public class RegularHubClass2 : RegularHubBase +{ + +} + +[DisableConventionalRegistration] +[ExposeServices(typeof(RegularHubClass22), typeof(RegularHubClass2))] +public class RegularHubClass22 : RegularHubClass2 +{ + +} diff --git a/framework/test/Volo.Abp.Autofac.Tests/Volo/Abp/Autofac/AutoFacInjectingPropertiesService_Tests.cs b/framework/test/Volo.Abp.Autofac.Tests/Volo/Abp/Autofac/AutoFacInjectingPropertiesService_Tests.cs new file mode 100644 index 0000000000..7766450feb --- /dev/null +++ b/framework/test/Volo.Abp.Autofac.Tests/Volo/Abp/Autofac/AutoFacInjectingPropertiesService_Tests.cs @@ -0,0 +1,67 @@ +using Microsoft.Extensions.DependencyInjection; +using Shouldly; +using Volo.Abp.Autofac.Interception; +using Volo.Abp.DependencyInjection; +using Xunit; + +namespace Volo.Abp.Autofac; + +public class AutoFacInjectingPropertiesService_Tests : Autofac_Interception_Test +{ + [Fact] + public void AutoFacInjectingPropertiesService_Should_Replaces_NullInjectingPropertiesService() + { + ServiceProvider.GetRequiredService().GetType().ShouldBe(typeof(AutoFacInjectPropertiesService)); + } + + [Fact] + public void InjectProperties() + { + var injectPropertiesService = ServiceProvider.GetRequiredService(); + var serviceB = new TestServiceB(); + injectPropertiesService.InjectProperties(serviceB); + + serviceB.NullTestServiceA.ShouldNotBeNull(); + serviceB.NullTestServiceA.Name.ShouldBe("Default Name"); + serviceB.NotNullTestServiceA.ShouldNotBeNull(); + serviceB.NotNullTestServiceA.Name.ShouldBe("Default Name"); + } + + [Fact] + public void InjectUnsetProperties() + { + var injectPropertiesService = ServiceProvider.GetRequiredService(); + var serviceB = new TestServiceB(); + injectPropertiesService.InjectUnsetProperties(serviceB); + + serviceB.NullTestServiceA.ShouldNotBeNull(); + serviceB.NullTestServiceA.Name.ShouldBe("Default Name"); + serviceB.NotNullTestServiceA.ShouldNotBeNull(); + serviceB.NotNullTestServiceA.Name.ShouldBe("My Name"); // This is not null property. + } +} + +interface ITestServiceA +{ + public string Name { get; set; } +} + +class TestServiceA : ITestServiceA, ITransientDependency +{ + public string Name { get; set; } = "Default Name"; +} + +interface ITestServiceB +{ + +} + +class TestServiceB : ITestServiceB, ITransientDependency +{ + public ITestServiceA NullTestServiceA { get; set; } + + public ITestServiceA NotNullTestServiceA { get; set; } = new TestServiceA() + { + Name = "My Name" + }; +} diff --git a/framework/test/Volo.Abp.Http.Client.Tests/Volo/Abp/Http/Localization/de.json b/framework/test/Volo.Abp.Http.Client.Tests/Volo/Abp/Http/Localization/de.json new file mode 100644 index 0000000000..cc61f45cf5 --- /dev/null +++ b/framework/test/Volo.Abp.Http.Client.Tests/Volo/Abp/Http/Localization/de.json @@ -0,0 +1,6 @@ +{ + "culture": "de", + "texts": { + "Volo.Abp.Http.DynamicProxying:10001": "Geschäftsausnahme mit Daten: {0}" + } +} \ No newline at end of file diff --git a/framework/test/Volo.Abp.Http.Client.Tests/Volo/Abp/Http/Localization/hr.json b/framework/test/Volo.Abp.Http.Client.Tests/Volo/Abp/Http/Localization/hr.json new file mode 100644 index 0000000000..68ab0aedb8 --- /dev/null +++ b/framework/test/Volo.Abp.Http.Client.Tests/Volo/Abp/Http/Localization/hr.json @@ -0,0 +1,6 @@ +{ + "culture": "hr", + "texts": { + "Volo.Abp.Http.DynamicProxying:10001": "Poslovni izuzetak s podacima: {0}" + } +} \ No newline at end of file diff --git a/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Base/Validation/FR.json b/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Base/Validation/FR.json index 32fac7bf02..75c6157a42 100644 --- a/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Base/Validation/FR.json +++ b/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Base/Validation/FR.json @@ -2,6 +2,11 @@ "culture": "fr", "texts": { "ThisFieldIsRequired": "Ce champ est requis", - "MaxLenghtErrorMessage": "Ce champ peut contenir au maximum \"{0}\" caractères" + "MaxLenghtErrorMessage": "Ce champ peut contenir au maximum \"{0}\" caractères", + "Enum:BookType.Undefined": "Non défini à partir de ValidationResource", + "Enum:BookType.0": "Non défini avec la valeur 0 de ValidationResource", + "BookType.Adventure": "Aventure de ValidationResource", + "BookType.1": "Aventure avec la valeur 1 de ValidationResource", + "Biography": "Biographie de ValidationResource" } } \ No newline at end of file diff --git a/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Base/Validation/ar.json b/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Base/Validation/ar.json index 3fc4fc5568..542732bd5f 100644 --- a/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Base/Validation/ar.json +++ b/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Base/Validation/ar.json @@ -2,6 +2,11 @@ "culture": "ar", "texts": { "ThisFieldIsRequired": "الحقل مطلوب", - "MaxLenghtErrorMessage": "اقصى طول للحقل '{0}' حرف" + "MaxLenghtErrorMessage": "اقصى طول للحقل '{0}' حرف", + "Enum:BookType.Undefined": "غير محدد من ValidationResource", + "Enum:BookType.0": "غير محدد بقيمة 0 من ValidationResource", + "BookType.Adventure": "مغامرة من ValidationResource", + "BookType.1": "مغامرة بقيمة 1 من ValidationResource", + "Biography": "السيرة الذاتية من ValidationResource" } } \ No newline at end of file diff --git a/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Base/Validation/cs.json b/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Base/Validation/cs.json index a6842039c3..56903e4391 100644 --- a/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Base/Validation/cs.json +++ b/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Base/Validation/cs.json @@ -2,6 +2,11 @@ "culture": "cs", "texts": { "ThisFieldIsRequired": "Toto pole je povinné", - "MaxLenghtErrorMessage": "Toto pole může mít nanejvýš '{0}' znaků" + "MaxLenghtErrorMessage": "Toto pole může mít nanejvýš '{0}' znaků", + "Enum:BookType.Undefined": "Nedefinováno z ValidationResource", + "Enum:BookType.0": "Nedefinováno s hodnotou 0 z ValidationResource", + "BookType.Adventure": "Dobrodružství z ValidationResource", + "BookType.1": "Dobrodružství s hodnotou 1 z ValidationResource", + "Biography": "Biografie z ValidationResource" } -} +} \ No newline at end of file diff --git a/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Base/Validation/de.json b/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Base/Validation/de.json index 22e395eb77..aa282c2af5 100644 --- a/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Base/Validation/de.json +++ b/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Base/Validation/de.json @@ -2,6 +2,11 @@ "culture": "de", "texts": { "ThisFieldIsRequired": "Dieses Feld ist ein Pflichtfeld", - "MaxLenghtErrorMessage": "Die Länge dieses Feldes kann maximal '{0}'-Zeichen betragen" + "MaxLenghtErrorMessage": "Die Länge dieses Feldes kann maximal '{0}'-Zeichen betragen", + "Enum:BookType.Undefined": "Nicht definiert von ValidationResource", + "Enum:BookType.0": "Undefiniert mit dem Wert 0 von ValidationResource", + "BookType.Adventure": "Abenteuer von ValidationResource", + "BookType.1": "Abenteuer mit Wert 1 von ValidationResource", + "Biography": "Biografie von ValidationResource" } } \ No newline at end of file diff --git a/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Base/Validation/es.json b/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Base/Validation/es.json index a83091e2c8..c6f651a9e0 100644 --- a/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Base/Validation/es.json +++ b/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Base/Validation/es.json @@ -2,6 +2,11 @@ "culture": "es", "texts": { "ThisFieldIsRequired": "El campo no puede estar vacío", - "MaxLenghtErrorMessage": "El campo puede tener un máximo de '{0}' caracteres" + "MaxLenghtErrorMessage": "El campo puede tener un máximo de '{0}' caracteres", + "Enum:BookType.Undefined": "Indefinido de ValidationResource", + "Enum:BookType.0": "Indefinido con valor 0 de ValidationResource", + "BookType.Adventure": "Aventura de ValidationResource", + "BookType.1": "Aventura con valor 1 de ValidationResource", + "Biography": "Biografía de ValidationResource" } } \ No newline at end of file diff --git a/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Base/Validation/hi.json b/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Base/Validation/hi.json index a1e297d853..ab8180f36d 100644 --- a/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Base/Validation/hi.json +++ b/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Base/Validation/hi.json @@ -2,6 +2,11 @@ "culture": "hi", "texts": { "ThisFieldIsRequired": "यह फ़ील्ड आवश्यक है", - "MaxLenghtErrorMessage": "यह क्षेत्र अधिकतम '{0}' वर्ण का हो सकता है" + "MaxLenghtErrorMessage": "यह क्षेत्र अधिकतम '{0}' वर्ण का हो सकता है", + "Enum:BookType.Undefined": "ValidationResource से अपरिभाषित", + "Enum:BookType.0": "ValidationResource से मान 0 के साथ अपरिभाषित", + "BookType.Adventure": "ValidationResource से साहसिक कार्य", + "BookType.1": "ValidationResource से मान 1 के साथ साहसिक कार्य", + "Biography": "ValidationResource से जीवनी" } } \ No newline at end of file diff --git a/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Base/Validation/hr.json b/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Base/Validation/hr.json index 09f68e9142..ba68d9ff2c 100644 --- a/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Base/Validation/hr.json +++ b/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Base/Validation/hr.json @@ -2,6 +2,11 @@ "culture": "hr", "texts": { "ThisFieldIsRequired": "Ovo polje je obavezno", - "MaxLenghtErrorMessage": "Ovo polje može imati najviše '{0}' znakova" + "MaxLenghtErrorMessage": "Ovo polje može imati najviše '{0}' znakova", + "Enum:BookType.Undefined": "Nedefinirano iz ValidationResource", + "Enum:BookType.0": "Nedefinirano s vrijednošću 0 iz ValidationResource", + "BookType.Adventure": "Avantura iz ValidationResource", + "BookType.1": "Avantura s vrijednošću 1 iz ValidationResource", + "Biography": "Biografija iz ValidationResource" } -} +} \ No newline at end of file diff --git a/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Base/Validation/hu.json b/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Base/Validation/hu.json index 204e26f7bf..124af777c8 100644 --- a/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Base/Validation/hu.json +++ b/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Base/Validation/hu.json @@ -2,6 +2,11 @@ "culture": "hu", "texts": { "ThisFieldIsRequired": "Ez a mező kötelező", - "MaxLenghtErrorMessage": "Ez a mező legfeljebb „{0}” karakter lehet" + "MaxLenghtErrorMessage": "Ez a mező legfeljebb „{0}” karakter lehet", + "Enum:BookType.Undefined": "Undefined from ValidationResource", + "Enum:BookType.0": "Undefined 0 értékkel a ValidationResource-ból", + "BookType.Adventure": "Kaland a ValidationResource-ból", + "BookType.1": "Kaland 1 értékkel a ValidationResource-ból", + "Biography": "Életrajz a ValidationResource-ból" } } \ No newline at end of file diff --git a/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Base/Validation/is.json b/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Base/Validation/is.json index 00cec7cd17..f0eac5222a 100644 --- a/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Base/Validation/is.json +++ b/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Base/Validation/is.json @@ -2,6 +2,11 @@ "culture": "is", "texts": { "ThisFieldIsRequired": "Þessi reitur er nauðsynlegur", - "MaxLenghtErrorMessage": "Þessi reitur getur að hámarki verið '{0}' stafir" + "MaxLenghtErrorMessage": "Þessi reitur getur að hámarki verið '{0}' stafir", + "Enum:BookType.Undefined": "Óskilgreint frá ValidationResource", + "Enum:BookType.0": "Óskilgreint með gildi 0 frá ValidationResource", + "BookType.Adventure": "Ævintýri frá ValidationResource", + "BookType.1": "Ævintýri með gildi 1 frá ValidationResource", + "Biography": "Ævisaga frá ValidationResource" } } \ No newline at end of file diff --git a/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Base/Validation/it.json b/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Base/Validation/it.json index ebdc2d622d..0f34a026f8 100644 --- a/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Base/Validation/it.json +++ b/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Base/Validation/it.json @@ -2,6 +2,11 @@ "culture": "it", "texts": { "ThisFieldIsRequired": "Questo campo è obbligatorio", - "MaxLenghtErrorMessage": "Questo campo può contenere un massimo di caratteri '{0}'" + "MaxLenghtErrorMessage": "Questo campo può contenere un massimo di caratteri '{0}'", + "Enum:BookType.Undefined": "Non definito da ValidationResource", + "Enum:BookType.0": "Non definito con valore 0 da ValidationResource", + "BookType.Adventure": "Avventura da ValidationResource", + "BookType.1": "Avventura con valore 1 da ValidationResource", + "Biography": "Biografia da ValidationResource" } } \ No newline at end of file diff --git a/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Base/Validation/nl.json b/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Base/Validation/nl.json index 825c54ffec..828f5b36ab 100644 --- a/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Base/Validation/nl.json +++ b/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Base/Validation/nl.json @@ -2,6 +2,11 @@ "culture": "nl", "texts": { "ThisFieldIsRequired": "Dit veld is verplicht", - "MaxLenghtErrorMessage": "Dit veld mag maximaal '{0}' tekens bevatten" + "MaxLenghtErrorMessage": "Dit veld mag maximaal '{0}' tekens bevatten", + "Enum:BookType.Undefined": "Niet gedefinieerd vanuit ValidationResource", + "Enum:BookType.0": "Niet gedefinieerd met waarde 0 van ValidationResource", + "BookType.Adventure": "Avontuur van ValidationResource", + "BookType.1": "Avontuur met waarde 1 van ValidationResource", + "Biography": "Biografie van ValidationResource" } } \ No newline at end of file diff --git a/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Base/Validation/pl-PL.json b/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Base/Validation/pl-PL.json index 85ae144ff0..bd0e0c7115 100644 --- a/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Base/Validation/pl-PL.json +++ b/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Base/Validation/pl-PL.json @@ -2,6 +2,11 @@ "culture": "pl-PL", "texts": { "ThisFieldIsRequired": "To pole jest wymagane", - "MaxLenghtErrorMessage": "To pole może mieć maksymalnie '{0}' znaków" + "MaxLenghtErrorMessage": "To pole może mieć maksymalnie '{0}' znaków", + "Enum:BookType.Undefined": "Niezdefiniowany z ValidationResource", + "Enum:BookType.0": "Niezdefiniowany z wartością 0 z ValidationResource", + "BookType.Adventure": "Przygoda z ValidationResource", + "BookType.1": "Przygoda o wartości 1 z ValidationResource", + "Biography": "Biografia z ValidationResource" } } \ No newline at end of file diff --git a/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Base/Validation/pt-BR.json b/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Base/Validation/pt-BR.json index ddda24d38f..292b498f49 100644 --- a/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Base/Validation/pt-BR.json +++ b/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Base/Validation/pt-BR.json @@ -2,6 +2,11 @@ "culture": "pt-BR", "texts": { "ThisFieldIsRequired": "Este campo é obrigatório", - "MaxLenghtErrorMessage": "Este campo pode ter no máximo '{0}' caracteres" + "MaxLenghtErrorMessage": "Este campo pode ter no máximo '{0}' caracteres", + "Enum:BookType.Undefined": "Indefinido de ValidationResource", + "Enum:BookType.0": "Indefinido com valor 0 de ValidationResource", + "BookType.Adventure": "Aventura de ValidationResource", + "BookType.1": "Aventura com valor 1 de ValidationResource", + "Biography": "Biografia de ValidationResource" } } \ No newline at end of file diff --git a/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Base/Validation/ro-RO.json b/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Base/Validation/ro-RO.json index 54ab2b90da..95a12f4f2b 100644 --- a/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Base/Validation/ro-RO.json +++ b/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Base/Validation/ro-RO.json @@ -2,6 +2,11 @@ "culture": "ro-RO", "texts": { "ThisFieldIsRequired": "Acest câmp este obligatoriu", - "MaxLenghtErrorMessage": "Acest câmp poate avea maximum „{0}” caractere" + "MaxLenghtErrorMessage": "Acest câmp poate avea maximum „{0}” caractere", + "Enum:BookType.Undefined": "Nedefinit din ValidationResource", + "Enum:BookType.0": "Nedefinit cu valoarea 0 din ValidationResource", + "BookType.Adventure": "Aventura de la ValidationResource", + "BookType.1": "Aventura cu valoarea 1 din ValidationResource", + "Biography": "Biografie de la ValidationResource" } } \ No newline at end of file diff --git a/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Base/Validation/ru.json b/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Base/Validation/ru.json index 631044d795..caeb0c3b0c 100644 --- a/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Base/Validation/ru.json +++ b/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Base/Validation/ru.json @@ -2,6 +2,11 @@ "culture": "ru", "texts": { "ThisFieldIsRequired": "Это поле обязательно к заполнению", - "MaxLenghtErrorMessage": "В этом поле может быть не более \"{0}\" символов." + "MaxLenghtErrorMessage": "В этом поле может быть не более \"{0}\" символов.", + "Enum:BookType.Undefined": "Не определено из ValidationResource", + "Enum:BookType.0": "Не определено со значением 0 из ValidationResource.", + "BookType.Adventure": "Приключение от ValidationResource", + "BookType.1": "Приключение со значением 1 из ValidationResource", + "Biography": "Биография от ValidationResource" } } \ No newline at end of file diff --git a/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Base/Validation/sk.json b/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Base/Validation/sk.json index 662572e908..dfb579ec6c 100644 --- a/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Base/Validation/sk.json +++ b/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Base/Validation/sk.json @@ -2,6 +2,11 @@ "culture": "sk", "texts": { "ThisFieldIsRequired": "Toto pole je povinné", - "MaxLenghtErrorMessage": "Toto pole môže mať maximálne '{0}' znakov" + "MaxLenghtErrorMessage": "Toto pole môže mať maximálne '{0}' znakov", + "Enum:BookType.Undefined": "Nedefinované z ValidationResource", + "Enum:BookType.0": "Nedefinované s hodnotou 0 z ValidationResource", + "BookType.Adventure": "Dobrodružstvo z ValidationResource", + "BookType.1": "Dobrodružstvo s hodnotou 1 z ValidationResource", + "Biography": "Životopis z ValidationResource" } } \ No newline at end of file diff --git a/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Base/Validation/sl.json b/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Base/Validation/sl.json index 2812523577..26dfcf1543 100644 --- a/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Base/Validation/sl.json +++ b/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Base/Validation/sl.json @@ -2,6 +2,11 @@ "culture": "sl", "texts": { "ThisFieldIsRequired": "to polje je obvezno", - "MaxLenghtErrorMessage": "To polje lahko vsebuje največ znakov »{0}«." + "MaxLenghtErrorMessage": "To polje lahko vsebuje največ znakov »{0}«.", + "Enum:BookType.Undefined": "Nedefinirano iz ValidationResource", + "Enum:BookType.0": "Nedefinirano z vrednostjo 0 iz ValidationResource", + "BookType.Adventure": "Pustolovščina iz ValidationResource", + "BookType.1": "Pustolovščina z vrednostjo 1 iz ValidationResource", + "Biography": "Življenjepis iz ValidationResource" } } \ No newline at end of file diff --git a/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Base/Validation/vi.json b/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Base/Validation/vi.json index 583eebab13..9eb18c7c62 100644 --- a/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Base/Validation/vi.json +++ b/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Base/Validation/vi.json @@ -2,6 +2,11 @@ "culture": "vi", "texts": { "ThisFieldIsRequired": "Trường này là bắt buộc", - "MaxLenghtErrorMessage": "Trường này có thể có tối đa là '{0}' kí tự" + "MaxLenghtErrorMessage": "Trường này có thể có tối đa là '{0}' kí tự", + "Enum:BookType.Undefined": "Không xác định từ tài nguyên xác thực", + "Enum:BookType.0": "Không xác định với giá trị 0 từ ValidationResource", + "BookType.Adventure": "Cuộc phiêu lưu từ tài nguyên xác thực", + "BookType.1": "Cuộc phiêu lưu với giá trị 1 từ ValidationResource", + "Biography": "Tiểu sử từ Nguồn xác thực" } -} +} \ No newline at end of file diff --git a/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Base/Validation/zh-Hans.json b/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Base/Validation/zh-Hans.json index 9d7b5324c9..70c1d6e828 100644 --- a/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Base/Validation/zh-Hans.json +++ b/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Base/Validation/zh-Hans.json @@ -3,10 +3,10 @@ "texts": { "ThisFieldIsRequired": "此字段是必填字段", "MaxLenghtErrorMessage": "该字段最多可包含'{0}'个字符", - "Enum:BookType.Undefined": "", - "Enum:BookType.0": "", - "BookType.Adventure": "", - "BookType.1": "", - "Biography": "" + "Enum:BookType.Undefined": "ValidationResource 中未定义", + "Enum:BookType.0": "未定义,来自 ValidationResource 的值为 0", + "BookType.Adventure": "ValidationResource 的冒险", + "BookType.1": "来自 ValidationResource 的值为 1 的 Adventure", + "Biography": "ValidationResource 的简介" } } \ No newline at end of file diff --git a/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Base/Validation/zh-Hant.json b/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Base/Validation/zh-Hant.json index 1c0f506d34..0c2498e1f3 100644 --- a/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Base/Validation/zh-Hant.json +++ b/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Base/Validation/zh-Hant.json @@ -2,6 +2,11 @@ "culture": "zh-Hant", "texts": { "ThisFieldIsRequired": "此欄位為必填欄位", - "MaxLenghtErrorMessage": "此欄位最多可包含'{0}'個字元" + "MaxLenghtErrorMessage": "此欄位最多可包含'{0}'個字元", + "Enum:BookType.Undefined": "ValidationResource 中未定義", + "Enum:BookType.0": "未定義,來自 ValidationResource 的值為 0", + "BookType.Adventure": "ValidationResource 的冒險", + "BookType.1": "來自 ValidationResource 的值為 1 的 Adventure", + "Biography": "ValidationResource 的簡介" } } \ No newline at end of file diff --git a/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Source/FR.json b/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Source/FR.json index ab5f63ad78..cbfe5f1aa6 100644 --- a/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Source/FR.json +++ b/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Source/FR.json @@ -6,6 +6,11 @@ "CarPlural": "Voitures", "MaxLenghtErrorMessage": "La longueur de ce champ peut être au maximum de \"{0}\" caractères", "Universe": "Univers", - "FortyTwo": "Quarante-deux" + "FortyTwo": "Quarante-deux", + "Enum:BookType.Undefined": "Indéfini", + "Enum:BookType.0": "Indéfini avec la valeur 0", + "BookType.Adventure": "Aventure", + "BookType.1": "Aventure avec valeur 1", + "Biography": "Biographie" } } \ No newline at end of file diff --git a/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Source/ar.json b/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Source/ar.json index 2b1d6c6317..24b62e438f 100644 --- a/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Source/ar.json +++ b/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Source/ar.json @@ -6,6 +6,11 @@ "CarPlural": "سيارات", "MaxLenghtErrorMessage": "اقصى طول للحقل '{0}' حرف", "Universe": "عالم", - "FortyTwo": "اثنان وأربعون" + "FortyTwo": "اثنان وأربعون", + "Enum:BookType.Undefined": "غير معرف", + "Enum:BookType.0": "غير محدد بقيمة 0", + "BookType.Adventure": "مفامرة", + "BookType.1": "مغامرة بقيمة 1", + "Biography": "سيرة شخصية" } } \ No newline at end of file diff --git a/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Source/cs.json b/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Source/cs.json index aa4bca6a86..0d95abed17 100644 --- a/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Source/cs.json +++ b/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Source/cs.json @@ -6,6 +6,11 @@ "CarPlural": "Auta", "MaxLenghtErrorMessage": "Toto pole může mít nanejvýš '{0}' znaků", "Universe": "Vesmír", - "FortyTwo": "Čtyřicet dva" + "FortyTwo": "Čtyřicet dva", + "Enum:BookType.Undefined": "Nedefinováno", + "Enum:BookType.0": "Nedefinováno s hodnotou 0", + "BookType.Adventure": "Dobrodružství", + "BookType.1": "Dobrodružství s hodnotou 1", + "Biography": "Životopis" } -} +} \ No newline at end of file diff --git a/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Source/de.json b/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Source/de.json index 4ef1655764..ee396f1341 100644 --- a/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Source/de.json +++ b/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Source/de.json @@ -6,6 +6,11 @@ "CarPlural": "Autos", "MaxLenghtErrorMessage": "Die Länge dieses Feldes kann maximal '{0}'-Zeichen betragen", "Universe": "Universum", - "FortyTwo": "Zweiundvierzig" + "FortyTwo": "Zweiundvierzig", + "Enum:BookType.Undefined": "Nicht definiert", + "Enum:BookType.0": "Undefiniert mit Wert 0", + "BookType.Adventure": "Abenteuer", + "BookType.1": "Abenteuer mit Wert 1", + "Biography": "Biografie" } } \ No newline at end of file diff --git a/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Source/es.json b/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Source/es.json index f68ed052c3..7ed0d49cf8 100644 --- a/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Source/es.json +++ b/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Source/es.json @@ -6,6 +6,11 @@ "CarPlural": "Autos", "MaxLenghtErrorMessage": "El campo puede tener un máximo de '{0}' caracteres", "Universe": "Universo", - "FortyTwo": "Curenta y dos" + "FortyTwo": "Curenta y dos", + "Enum:BookType.Undefined": "Indefinido", + "Enum:BookType.0": "Indefinido con valor 0", + "BookType.Adventure": "Aventura", + "BookType.1": "Aventura con valor 1", + "Biography": "Biografía" } } \ No newline at end of file diff --git a/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Source/hi.json b/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Source/hi.json index f0163a30ed..8d66de8b2c 100644 --- a/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Source/hi.json +++ b/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Source/hi.json @@ -6,6 +6,11 @@ "CarPlural": "कारों", "MaxLenghtErrorMessage": "इस क्षेत्र की लंबाई अधिकतम '{0}' वर्ण हो सकती है", "Universe": "ब्रम्हांड", - "FortyTwo": "बयालीस" + "FortyTwo": "बयालीस", + "Enum:BookType.Undefined": "अपरिभाषित", + "Enum:BookType.0": "मान 0 के साथ अपरिभाषित", + "BookType.Adventure": "साहसिक काम", + "BookType.1": "मूल्य 1 के साथ साहसिक कार्य", + "Biography": "जीवनी" } } \ No newline at end of file diff --git a/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Source/hr.json b/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Source/hr.json index c1fb8ad91c..edcb573b29 100644 --- a/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Source/hr.json +++ b/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Source/hr.json @@ -6,6 +6,11 @@ "CarPlural": "Auta", "MaxLenghtErrorMessage": "Dužina ovog polja može biti maksimalno '{0}' znakova", "Universe": "Univerzum", - "FortyTwo": "Četrdeset dva" + "FortyTwo": "Četrdeset dva", + "Enum:BookType.Undefined": "Nedefiniran", + "Enum:BookType.0": "Nedefinirano s vrijednošću 0", + "BookType.Adventure": "Avantura", + "BookType.1": "Avantura s vrijednošću 1", + "Biography": "Biografija" } -} +} \ No newline at end of file diff --git a/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Source/hu.json b/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Source/hu.json index dcf31962c6..4e2f36576d 100644 --- a/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Source/hu.json +++ b/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Source/hu.json @@ -6,6 +6,11 @@ "CarPlural": "Autók", "MaxLenghtErrorMessage": "Ennek a mezőnek a hossza legfeljebb „{0}” karakter lehet", "Universe": "Világegyetem", - "FortyTwo": "Negyvenkettő" + "FortyTwo": "Negyvenkettő", + "Enum:BookType.Undefined": "Határozatlan", + "Enum:BookType.0": "Undefined 0 értékkel", + "BookType.Adventure": "Kaland", + "BookType.1": "1-es értékű kaland", + "Biography": "Életrajz" } } \ No newline at end of file diff --git a/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Source/is.json b/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Source/is.json index 5786d7541d..fcbbf1101d 100644 --- a/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Source/is.json +++ b/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Source/is.json @@ -6,6 +6,11 @@ "CarPlural": "Bílar", "MaxLenghtErrorMessage": "Lengd þessa svæðis getur að hámarki verið að hámarki {0}", "Universe": "Alheimur", - "FortyTwo": "Fjörutíu og tveir" + "FortyTwo": "Fjörutíu og tveir", + "Enum:BookType.Undefined": "Óskilgreint", + "Enum:BookType.0": "Óskilgreint með gildi 0", + "BookType.Adventure": "Ævintýri", + "BookType.1": "Ævintýri með gildi 1", + "Biography": "Ævisaga" } } \ No newline at end of file diff --git a/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Source/it.json b/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Source/it.json index c847d0181e..f41871f887 100644 --- a/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Source/it.json +++ b/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Source/it.json @@ -6,6 +6,11 @@ "CarPlural": "Automobili", "MaxLenghtErrorMessage": "La lunghezza di questo campo può essere al massimo di caratteri '{0}'", "Universe": "Universo", - "FortyTwo": "Quarantadue" + "FortyTwo": "Quarantadue", + "Enum:BookType.Undefined": "Non definito", + "Enum:BookType.0": "Indefinito con valore 0", + "BookType.Adventure": "Avventura", + "BookType.1": "Avventura con valore 1", + "Biography": "Biografia" } } \ No newline at end of file diff --git a/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Source/nl.json b/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Source/nl.json index 804eaf76c9..6bf326d0fa 100644 --- a/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Source/nl.json +++ b/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Source/nl.json @@ -6,6 +6,11 @@ "CarPlural": "Auto's", "MaxLenghtErrorMessage": "De lengte van dit veld mag maximaal '{0}' tekens zijn", "Universe": "Universum", - "FortyTwo": "Tweeënveertig" + "FortyTwo": "Tweeënveertig", + "Enum:BookType.Undefined": "Ongedefinieerd", + "Enum:BookType.0": "Ongedefinieerd met waarde 0", + "BookType.Adventure": "Avontuur", + "BookType.1": "Avontuur met waarde 1", + "Biography": "Biografie" } } \ No newline at end of file diff --git a/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Source/pl-PL.json b/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Source/pl-PL.json index 304f60816e..a317cd422e 100644 --- a/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Source/pl-PL.json +++ b/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Source/pl-PL.json @@ -6,6 +6,11 @@ "CarPlural": "Samochody", "MaxLenghtErrorMessage": "To pole może mieć maksymalnie '{0}' znaków", "Universe": "Wszechświat", - "FortyTwo": "Czterdzieści dwa" + "FortyTwo": "Czterdzieści dwa", + "Enum:BookType.Undefined": "Nieokreślony", + "Enum:BookType.0": "Niezdefiniowany o wartości 0", + "BookType.Adventure": "Przygoda", + "BookType.1": "Przygoda o wartości 1", + "Biography": "Biografia" } } \ No newline at end of file diff --git a/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Source/pt-BR.json b/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Source/pt-BR.json index 7425a2f176..f7ad20a6e9 100644 --- a/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Source/pt-BR.json +++ b/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Source/pt-BR.json @@ -6,6 +6,11 @@ "CarPlural": "Carros", "MaxLenghtErrorMessage": "Este campo pode ter no máximo '{0}' caracteres", "Universe": "Universo", - "FortyTwo": "Quarenta e Dois" + "FortyTwo": "Quarenta e Dois", + "Enum:BookType.Undefined": "Indefinido", + "Enum:BookType.0": "Indefinido com valor 0", + "BookType.Adventure": "Aventura", + "BookType.1": "Aventura com valor 1", + "Biography": "Biografia" } } \ No newline at end of file diff --git a/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Source/ro-RO.json b/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Source/ro-RO.json index 1e644729d5..d12ae60f28 100644 --- a/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Source/ro-RO.json +++ b/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Source/ro-RO.json @@ -6,6 +6,11 @@ "CarPlural": "Mașini", "MaxLenghtErrorMessage": "Lungimea acestui câmp poate fi de maximum „{0}” caractere", "Universe": "Univers", - "FortyTwo": "Patruzeci si doi" + "FortyTwo": "Patruzeci si doi", + "Enum:BookType.Undefined": "Nedefinit", + "Enum:BookType.0": "Nedefinit cu valoarea 0", + "BookType.Adventure": "Aventură", + "BookType.1": "Aventura cu valoarea 1", + "Biography": "Biografie" } } \ No newline at end of file diff --git a/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Source/ru.json b/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Source/ru.json index c93cf8dcd9..065b95d0ff 100644 --- a/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Source/ru.json +++ b/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Source/ru.json @@ -6,6 +6,11 @@ "CarPlural": "Машины", "MaxLenghtErrorMessage": "Длина этого поля не может превышать \"{0}\" символов.", "Universe": "Вселенная", - "FortyTwo": "Сорок два" + "FortyTwo": "Сорок два", + "Enum:BookType.Undefined": "Неопределенный", + "Enum:BookType.0": "Не определено со значением 0", + "BookType.Adventure": "Приключение", + "BookType.1": "Приключение со стоимостью 1", + "Biography": "биография" } } \ No newline at end of file diff --git a/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Source/sk.json b/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Source/sk.json index 7705217be8..9cfd158650 100644 --- a/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Source/sk.json +++ b/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Source/sk.json @@ -6,6 +6,11 @@ "CarPlural": "Autá", "MaxLenghtErrorMessage": "Dĺžka tohto poľa môže byť maximálne '{0}' znakov", "Universe": "Vesmír", - "FortyTwo": "Štyridsaťdva" + "FortyTwo": "Štyridsaťdva", + "Enum:BookType.Undefined": "Nedefinované", + "Enum:BookType.0": "Nedefinované s hodnotou 0", + "BookType.Adventure": "Dobrodružstvo", + "BookType.1": "Dobrodružstvo s hodnotou 1", + "Biography": "Životopis" } } \ No newline at end of file diff --git a/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Source/sl.json b/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Source/sl.json index 5c5a0044c1..0d56f00b8a 100644 --- a/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Source/sl.json +++ b/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Source/sl.json @@ -6,6 +6,11 @@ "CarPlural": "Avtomobili", "MaxLenghtErrorMessage": "Dolžina tega polja je lahko največ »{0}« znakov", "Universe": "Vesolje", - "FortyTwo": "42" + "FortyTwo": "42", + "Enum:BookType.Undefined": "Nedoločeno", + "Enum:BookType.0": "Nedefinirano z vrednostjo 0", + "BookType.Adventure": "Pustolovščina", + "BookType.1": "Pustolovščina z vrednostjo 1", + "Biography": "Biografija" } } \ No newline at end of file diff --git a/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Source/vi.json b/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Source/vi.json index 6f5bff743c..807d832b3f 100644 --- a/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Source/vi.json +++ b/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Source/vi.json @@ -6,6 +6,11 @@ "CarPlural": "Cars", "MaxLenghtErrorMessage": "Kích thước trường này có tối đa '{0}' kí tự", "Universe": "Vũ trụ", - "FortyTwo": "Bốn mươi hai" + "FortyTwo": "Bốn mươi hai", + "Enum:BookType.Undefined": "Không xác định", + "Enum:BookType.0": "Không xác định với giá trị 0", + "BookType.Adventure": "Cuộc phiêu lưu", + "BookType.1": "Cuộc phiêu lưu có giá trị 1", + "Biography": "Tiểu sử" } -} +} \ No newline at end of file diff --git a/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Source/zh-Hans.json b/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Source/zh-Hans.json index f3828e90e2..863f13895b 100644 --- a/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Source/zh-Hans.json +++ b/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Source/zh-Hans.json @@ -8,9 +8,9 @@ "Universe": "宇宙", "FortyTwo": "四十二", "Enum:BookType.Undefined": "Undefined", - "Enum:BookType.0": "", - "BookType.Adventure": "", - "BookType.1": "", - "Biography": "" + "Enum:BookType.0": "未定义,值为 0", + "BookType.Adventure": "冒险", + "BookType.1": "冒险价值1", + "Biography": "传" } } \ No newline at end of file diff --git a/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Source/zh-Hant.json b/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Source/zh-Hant.json index 1aeb9cdf6f..5e749521a4 100644 --- a/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Source/zh-Hant.json +++ b/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Source/zh-Hant.json @@ -6,6 +6,11 @@ "CarPlural": "汽車", "MaxLenghtErrorMessage": "此欄位的長度最多'{0}'個字元", "Universe": "宇宙", - "FortyTwo": "四十二" + "FortyTwo": "四十二", + "Enum:BookType.Undefined": "不明確的", + "Enum:BookType.0": "未定義,值為 0", + "BookType.Adventure": "冒險", + "BookType.1": "冒險價值1", + "Biography": "傳" } -} +} \ No newline at end of file diff --git a/framework/test/Volo.Abp.TextTemplating.Tests/Volo/Abp/TextTemplating/Localization/hr.json b/framework/test/Volo.Abp.TextTemplating.Tests/Volo/Abp/TextTemplating/Localization/hr.json new file mode 100644 index 0000000000..2f89b2974d --- /dev/null +++ b/framework/test/Volo.Abp.TextTemplating.Tests/Volo/Abp/TextTemplating/Localization/hr.json @@ -0,0 +1,7 @@ +{ + "culture": "hr", + "texts": { + "HelloText": "Bok {0}", + "HowAreYou": "kako si?" + } +} \ No newline at end of file diff --git a/latest-versions.json b/latest-versions.json index 372ed08ffc..1dae5941de 100644 --- a/latest-versions.json +++ b/latest-versions.json @@ -1,6 +1,6 @@ [ { - "version": "7.4.2", + "version": "7.4.4", "releaseDate": "", "type": "stable", "message": "" diff --git a/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/ar.json b/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/ar.json index 4691a2268e..86d0ad8325 100644 --- a/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/ar.json +++ b/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/ar.json @@ -34,6 +34,8 @@ "DisplayName:PhoneNumber": "رقم الهاتف", "PersonalSettings": "الإعدادات الشخصية", "PersonalSettingsSaved": "تم حفظ الإعدادات الشخصية", + "PersonalSettingsChangedConfirmationModalTitle": "تغيرت المعلومات الشخصية", + "PersonalSettingsChangedConfirmationModalDescription": "إذا كنت تريد تطبيق هذه التغييرات، عليك تسجيل الدخول. هل ترغب بالخروج؟", "PasswordChanged": "تم تغيير كلمة المرور", "NewPasswordConfirmFailed": "يرجى تأكيد كلمة المرور الجديدة.", "NewPasswordSameAsOld": "يجب أن تكون كلمة المرور الجديدة مختلفة عن كلمة المرور الحالية.", diff --git a/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/cs.json b/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/cs.json index aeae890d54..aebaadc543 100644 --- a/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/cs.json +++ b/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/cs.json @@ -1,6 +1,7 @@ { "culture": "cs", "texts": { + "Menu:Account": "Účet", "UserName": "Uživatelské jméno", "EmailAddress": "Email", "UserNameOrEmailAddress": "Uživatelské jméno nebo email", @@ -33,6 +34,8 @@ "DisplayName:PhoneNumber": "Telefonní číslo", "PersonalSettings": "Osobní nastavení", "PersonalSettingsSaved": "Osobní nastavení uloženo", + "PersonalSettingsChangedConfirmationModalTitle": "Osobní údaje změněny", + "PersonalSettingsChangedConfirmationModalDescription": "Pokud chcete tyto změny použít, musíte se přihlásit. Chcete se odhlásit?", "PasswordChanged": "Heslo změněno", "NewPasswordConfirmFailed": "Potvrďte nové heslo.", "NewPasswordSameAsOld": "Nové heslo musí být odlišné od současného.", diff --git a/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/de.json b/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/de.json index 64c86e4abe..a6ff6d68c1 100644 --- a/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/de.json +++ b/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/de.json @@ -34,6 +34,8 @@ "DisplayName:PhoneNumber": "Telefonnummer", "PersonalSettings": "Persönliche Einstellungen", "PersonalSettingsSaved": "Persönliche Einstellungen gespeichert", + "PersonalSettingsChangedConfirmationModalTitle": "Persönliche Daten geändert", + "PersonalSettingsChangedConfirmationModalDescription": "Wenn Sie diese Änderungen übernehmen möchten, müssen Sie sich anmelden. Möchten Sie sich abmelden?", "PasswordChanged": "Passwort geändert", "NewPasswordConfirmFailed": "Bitte bestätigen Sie das neue Passwort.", "NewPasswordSameAsOld": "Das neue Passwort muss sich vom alten Passwort unterscheiden.", @@ -68,4 +70,4 @@ "OrRegisterWith": "Oder registrieren Sie sich mit:", "RegisterUsingYourProviderAccount": "Registrieren Sie sich mit Ihrem {0} Benutzerkonto" } -} +} \ No newline at end of file diff --git a/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/es.json b/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/es.json index 9fd52c8450..4f7fbf94d8 100644 --- a/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/es.json +++ b/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/es.json @@ -34,6 +34,8 @@ "DisplayName:PhoneNumber": "Número de teléfono", "PersonalSettings": "Configuración personal", "PersonalSettingsSaved": "Ajustes personales guardados", + "PersonalSettingsChangedConfirmationModalTitle": "La información personal cambió", + "PersonalSettingsChangedConfirmationModalDescription": "Si desea aplicar estos cambios, debe iniciar sesión. ¿Quieres cerrar sesión?", "PasswordChanged": "Cambiar la contraseña", "NewPasswordConfirmFailed": "Por favor, confirme la nueva contraseña.", "NewPasswordSameAsOld": "La nueva contraseña debe ser diferente de la contraseña actual.", diff --git a/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/fr.json b/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/fr.json index aa640abf1a..fbeec12787 100644 --- a/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/fr.json +++ b/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/fr.json @@ -34,6 +34,8 @@ "DisplayName:PhoneNumber": "Numéro de téléphone", "PersonalSettings": "Paramètres personnels", "PersonalSettingsSaved": "Paramètres personnels enregistrés", + "PersonalSettingsChangedConfirmationModalTitle": "Informations personnelles modifiées", + "PersonalSettingsChangedConfirmationModalDescription": "Si vous souhaitez appliquer ces modifications, vous devez vous connecter. Voulez-vous vous déconnecter ?", "PasswordChanged": "Mot de passe changé", "NewPasswordConfirmFailed": "Veuillez confirmer le nouveau mot de passe.", "NewPasswordSameAsOld": "Le nouveau mot de passe doit être différent de l'ancien.", @@ -68,4 +70,4 @@ "OrRegisterWith": "Or register with", "RegisterUsingYourProviderAccount": "Register using your {0} account" } -} +} \ No newline at end of file diff --git a/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/hi.json b/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/hi.json index a424deae00..9300e913f6 100644 --- a/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/hi.json +++ b/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/hi.json @@ -34,6 +34,8 @@ "DisplayName:PhoneNumber": "फ़ोन नंबर", "PersonalSettings": "व्यक्तिगत सेटिंग", "PersonalSettingsSaved": "व्यक्तिगत सेटिंग्स सहेजे गए", + "PersonalSettingsChangedConfirmationModalTitle": "व्यक्तिगत जानकारी बदल दी गई", + "PersonalSettingsChangedConfirmationModalDescription": "अगर आप इन बदलावों को लागू करना चाहते हैं तो आपको लॉगइन करना होगा। क्या आप लॉग आउट करना चाहते हैं?", "PasswordChanged": "पासवर्ड बदला गया", "NewPasswordConfirmFailed": "कृपया नए पासवर्ड की पुष्टि करें।", "NewPasswordSameAsOld": "नया पासवर्ड वर्तमान पासवर्ड से एक ही होना चाहिए।", diff --git a/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/hu.json b/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/hu.json index 481fa2733a..44e3794e24 100644 --- a/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/hu.json +++ b/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/hu.json @@ -34,6 +34,8 @@ "DisplayName:PhoneNumber": "Telefonszám", "PersonalSettings": "Személyes beállítások", "PersonalSettingsSaved": "Személyes beállítások mentve", + "PersonalSettingsChangedConfirmationModalTitle": "Személyes adatok megváltoztak", + "PersonalSettingsChangedConfirmationModalDescription": "Ha alkalmazni szeretné ezeket a változtatásokat, be kell jelentkeznie. Ki akar jelentkezni?", "PasswordChanged": "Jelszó megváltoztatva", "NewPasswordConfirmFailed": "Kérjük, erősítse meg az új jelszót.", "NewPasswordSameAsOld": "Az új jelszó nem lehet azonos a régi jelszóval.", diff --git a/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/is.json b/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/is.json index f33db6eadb..693e200e9f 100644 --- a/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/is.json +++ b/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/is.json @@ -1,6 +1,7 @@ { "culture": "is", "texts": { + "Menu:Account": "Reikningur", "UserName": "Notandanafn", "EmailAddress": "Netfang", "UserNameOrEmailAddress": "Notandanafn eða netfang", @@ -33,6 +34,8 @@ "DisplayName:PhoneNumber": "Símanúmer", "PersonalSettings": "Persónulegar stillingar", "PersonalSettingsSaved": "Persónulegar stillingar vistaðar", + "PersonalSettingsChangedConfirmationModalTitle": "Persónuupplýsingum breytt", + "PersonalSettingsChangedConfirmationModalDescription": "Ef þú vilt beita þessum breytingum þarftu að skrá þig inn. Viltu skrá þig út?", "PasswordChanged": "Lykilorði breytt", "NewPasswordConfirmFailed": "Vinsamlegast staðfestu nýja lykilorðið.", "NewPasswordSameAsOld": "Nýtt lykilorð verður að vera frábrugðið núverandi lykilorði.", diff --git a/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/it.json b/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/it.json index 0b5f3dbcf2..60157a574b 100644 --- a/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/it.json +++ b/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/it.json @@ -34,6 +34,8 @@ "DisplayName:PhoneNumber": "Numero di telefono", "PersonalSettings": "Impostazioni personali", "PersonalSettingsSaved": "Impostazioni personali salvate", + "PersonalSettingsChangedConfirmationModalTitle": "Le informazioni personali sono cambiate", + "PersonalSettingsChangedConfirmationModalDescription": "Se vuoi applicare queste modifiche devi effettuare il login. Vuoi disconnetterti?", "PasswordChanged": "Password cambiata", "NewPasswordConfirmFailed": "Conferma la nuova password.", "NewPasswordSameAsOld": "La nuova password deve essere diversa dalla vecchia.", @@ -68,4 +70,4 @@ "OrRegisterWith": "Oppure registrati con:", "RegisterUsingYourProviderAccount": "Registrati utilizzando il tuo account {0}" } -} +} \ No newline at end of file diff --git a/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/nl.json b/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/nl.json index d5d400277f..200d35210d 100644 --- a/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/nl.json +++ b/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/nl.json @@ -1,6 +1,7 @@ { "culture": "nl", "texts": { + "Menu:Account": "Rekening", "UserName": "Gebruikersnaam", "EmailAddress": "E-mailadres", "UserNameOrEmailAddress": "Gebruikersnaam of e-mailadres", @@ -33,6 +34,8 @@ "DisplayName:PhoneNumber": "Telefoonnummer", "PersonalSettings": "Persoonlijke instellingen", "PersonalSettingsSaved": "Persoonlijke instellingen opgeslagen", + "PersonalSettingsChangedConfirmationModalTitle": "Persoonlijke gegevens gewijzigd", + "PersonalSettingsChangedConfirmationModalDescription": "Als u deze wijzigingen wilt toepassen, moet u inloggen. Wilt u uitloggen?", "PasswordChanged": "Wachtwoord veranderd", "NewPasswordConfirmFailed": "Bevestig het nieuwe wachtwoord a.u.b.", "NewPasswordSameAsOld": "Het nieuwe wachtwoord moet verschillen van het huidige wachtwoord.", diff --git a/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/pl-PL.json b/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/pl-PL.json index 0fdab745de..dc5c7952c3 100644 --- a/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/pl-PL.json +++ b/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/pl-PL.json @@ -1,6 +1,7 @@ { "culture": "pl-PL", "texts": { + "Menu:Account": "Konto", "UserName": "Nazwa użytkownika", "EmailAddress": "Adres email", "UserNameOrEmailAddress": "Nazwa użytkownia lub adres email", @@ -33,6 +34,8 @@ "DisplayName:PhoneNumber": "Numer telefonu", "PersonalSettings": "Ustawienia osobiste", "PersonalSettingsSaved": "Zapisano ustawienia osobiste", + "PersonalSettingsChangedConfirmationModalTitle": "Dane osobowe uległy zmianie", + "PersonalSettingsChangedConfirmationModalDescription": "Jeżeli chcesz zastosować te zmiany musisz się zalogować. Czy chcesz się wylogować?", "PasswordChanged": "Hasło zostało zmienione", "NewPasswordConfirmFailed": "Potwierdź nowe hasło.", "NewPasswordSameAsOld": "Nowe hasło musi być inne niż poprzednie.", diff --git a/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/pt-BR.json b/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/pt-BR.json index 5b54bc91c5..3ea880a474 100644 --- a/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/pt-BR.json +++ b/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/pt-BR.json @@ -34,6 +34,8 @@ "DisplayName:PhoneNumber": "Telefone", "PersonalSettings": "Configurações pessoais", "PersonalSettingsSaved": "Configurações pessoais salvas", + "PersonalSettingsChangedConfirmationModalTitle": "Informações pessoais alteradas", + "PersonalSettingsChangedConfirmationModalDescription": "Se você quiser aplicar essas alterações, você deve fazer login. Você quer sair?", "PasswordChanged": "Senha alterada", "NewPasswordConfirmFailed": "Por favor, confirme a nova senha.", "NewPasswordSameAsOld": "A nova senha deve ser diferente da senha atual.", diff --git a/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/ro-RO.json b/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/ro-RO.json index 732a4103ec..b7dbc5c244 100644 --- a/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/ro-RO.json +++ b/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/ro-RO.json @@ -1,6 +1,7 @@ { "culture": "ro-RO", "texts": { + "Menu:Account": "Cont", "UserName": "Nume de utilizator", "EmailAddress": "Adresa de email", "UserNameOrEmailAddress": "Nume de utilizator sau adresa de email", @@ -33,6 +34,8 @@ "DisplayName:PhoneNumber": "Număr de telefon", "PersonalSettings": "Setări personale", "PersonalSettingsSaved": "Setări personale salvate", + "PersonalSettingsChangedConfirmationModalTitle": "Informațiile personale s-au schimbat", + "PersonalSettingsChangedConfirmationModalDescription": "Dacă doriți să aplicați aceste modificări, trebuie să vă autentificați. Doriți să vă deconectați?", "PasswordChanged": "Parola schimbată", "NewPasswordConfirmFailed": "Vă rugăm să confirmaţi noua parolă.", "NewPasswordSameAsOld": "Noua parolă trebuie să fie diferită de cea curentă.", @@ -67,4 +70,4 @@ "OrRegisterWith": "Sau înregistraţi-vă cu:", "RegisterUsingYourProviderAccount": "Înregistraţi-vă folosindu-vă contul {0}" } -} +} \ No newline at end of file diff --git a/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/ru.json b/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/ru.json index 8413c32831..d57b3c4e09 100644 --- a/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/ru.json +++ b/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/ru.json @@ -1,6 +1,7 @@ { "culture": "ru", "texts": { + "Menu:Account": "Счет", "UserName": "Имя пользователя", "EmailAddress": "Адрес электронной почты", "UserNameOrEmailAddress": "Имя пользователя или адрес электронной почты", @@ -33,6 +34,8 @@ "DisplayName:PhoneNumber": "Номер телефона", "PersonalSettings": "Персональные настройки", "PersonalSettingsSaved": "Персональные настройки сохранены", + "PersonalSettingsChangedConfirmationModalTitle": "Личная информация изменена", + "PersonalSettingsChangedConfirmationModalDescription": "Если вы хотите применить эти изменения, вам необходимо войти в систему. Вы хотите выйти из системы?", "PasswordChanged": "Пароль изменен", "NewPasswordConfirmFailed": "Пожалуйста подтвердите новый пароль.", "NewPasswordSameAsOld": "Новый пароль не должен совпадать со старым.", diff --git a/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/sk.json b/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/sk.json index d69c0da03e..cbaf2b4ee7 100644 --- a/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/sk.json +++ b/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/sk.json @@ -34,6 +34,8 @@ "DisplayName:PhoneNumber": "Telefónne číslo", "PersonalSettings": "Osobné nastavenia", "PersonalSettingsSaved": "Osobné nastavenia boli uložené", + "PersonalSettingsChangedConfirmationModalTitle": "Osobné údaje zmenené", + "PersonalSettingsChangedConfirmationModalDescription": "Ak chcete použiť tieto zmeny, musíte sa prihlásiť. Chcete sa odhlásiť?", "PasswordChanged": "Heslo bolo zmenené", "NewPasswordConfirmFailed": "Prosím potvrďte nové heslo.", "NewPasswordSameAsOld": "Nové heslo musí byť odlišné od aktuálneho.", diff --git a/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/sl.json b/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/sl.json index 4442227ad6..fae736de5f 100644 --- a/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/sl.json +++ b/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/sl.json @@ -34,6 +34,8 @@ "DisplayName:PhoneNumber": "Telefonska številka", "PersonalSettings": "Osebne nastavitve", "PersonalSettingsSaved": "Osebne nastavitve so shranjene", + "PersonalSettingsChangedConfirmationModalTitle": "Osebni podatki spremenjeni", + "PersonalSettingsChangedConfirmationModalDescription": "Če želite uporabiti te spremembe, se morate prijaviti. Se želite odjaviti?", "PasswordChanged": "Geslo je spremenjeno", "NewPasswordConfirmFailed": "Prosimo potrdite novo geslo.", "NewPasswordSameAsOld": "Novo geslo mora biti drugačno od starega.", diff --git a/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/vi.json b/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/vi.json index eae396b011..600ce9fa4f 100644 --- a/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/vi.json +++ b/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/vi.json @@ -1,6 +1,7 @@ { "culture": "vi", "texts": { + "Menu:Account": "Tài khoản", "UserName": "Tên đăng nhập", "EmailAddress": "Địa chỉ email", "UserNameOrEmailAddress": "Tên đăng nhập hoặc địa chỉ email", @@ -33,6 +34,8 @@ "DisplayName:PhoneNumber": "Số điện thoại", "PersonalSettings": "Thiết lập cá nhân", "PersonalSettingsSaved": "Đã lưu cài đặt cá nhân", + "PersonalSettingsChangedConfirmationModalTitle": "Thông tin cá nhân đã thay đổi", + "PersonalSettingsChangedConfirmationModalDescription": "Nếu bạn muốn áp dụng những thay đổi này, bạn phải đăng nhập. Bạn có muốn đăng xuất không?", "PasswordChanged": "mật khẩu đã được thay đổi", "NewPasswordConfirmFailed": "Vui lòng xác nhận mật khẩu mới.", "NewPasswordSameAsOld": "Mật khẩu mới không được giống như mật khẩu cũ.", diff --git a/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/zh-Hant.json b/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/zh-Hant.json index a782aa42dc..14cf84fc24 100644 --- a/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/zh-Hant.json +++ b/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/zh-Hant.json @@ -34,6 +34,8 @@ "DisplayName:PhoneNumber": "電話號碼", "PersonalSettings": "個人設置", "PersonalSettingsSaved": "個人設置已保存", + "PersonalSettingsChangedConfirmationModalTitle": "個人資訊已更改", + "PersonalSettingsChangedConfirmationModalDescription": "如果您想套用這些更改,您必須登入。您想退出嗎?", "PasswordChanged": "修改密碼", "NewPasswordConfirmFailed": "請確認新密碼", "NewPasswordSameAsOld": "新密碼不能與舊密碼相同", @@ -68,4 +70,4 @@ "OrRegisterWith": "或是註冊用:", "RegisterUsingYourProviderAccount": "使用你的{0}帳號註冊" } -} +} \ No newline at end of file diff --git a/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/ar.json b/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/ar.json index 700f8590b5..1f6d8fd608 100644 --- a/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/ar.json +++ b/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/ar.json @@ -39,6 +39,7 @@ "ExtraProperties": "خصائص اضافية", "MaxDuration": "الأعلى. مدة", "MinDuration": "دقيقة. مدة", + "MinMaxDuration": "المدة (الحد الأدنى - الحد الأقصى)", "{0}Milliseconds": "{0} مللي ثانية", "ExecutionTime": "زمن", "Parameters": "المعلمات", diff --git a/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/cs.json b/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/cs.json new file mode 100644 index 0000000000..0804c7e734 --- /dev/null +++ b/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/cs.json @@ -0,0 +1,83 @@ +{ + "culture": "cs", + "texts": { + "Permission:AuditLogging": "Protokolování auditu", + "Permission:AuditLogs": "Protokoly auditu", + "Menu:AuditLogging": "Protokoly auditu", + "AuditLogs": "Protokoly auditu", + "HttpStatus": "Stav HTTP", + "HttpMethod": "Metoda HTTP", + "HttpMethodFilter": "Filtr metody HTTP", + "HttpRequest": "HTTP požadavek", + "User": "Uživatel", + "UserNameFilter": "Uživatelský filtr", + "HasException": "Má výjimku", + "IpAddress": "IP adresa", + "Time": "Čas", + "Date": "datum", + "Duration": "Doba trvání", + "Detail": "Detail", + "Overall": "Celkově", + "Actions": "Akce", + "ClientIpAddress": "IP adresa klienta", + "ClientName": "jméno klienta", + "BrowserInfo": "Informace o prohlížeči", + "Url": "URL", + "UserName": "Uživatelské jméno", + "TenantImpersonator": "Nájemník imitátor", + "UserImpersonator": "Impersonátor uživatele", + "UrlFilter": "Filtr URL", + "Exceptions": "Výjimky", + "Comments": "Komentáře", + "HttpStatusCode": "Stavový kód HTTP", + "HttpStatusCodeFilter": "Filtr stavového kódu HTTP", + "ServiceName": "Servis", + "MethodName": "Metoda", + "CorrelationId": "Id korelace", + "ApplicationName": "název aplikace", + "ExecutionDuration": "Doba trvání", + "ExtraProperties": "Extra vlastnosti", + "MaxDuration": "Max. Doba trvání", + "MinDuration": "Min. Doba trvání", + "MinMaxDuration": "Délka (min. – max.)", + "{0}Milliseconds": "{0} milisekund", + "ExecutionTime": "Čas", + "Parameters": "Parametry", + "EntityTypeFullName": "Typ entity Celé jméno", + "Entity": "Entita", + "ChangeType": "Změnit typ", + "ChangeTime": "Čas", + "NewValue": "Nová hodnota", + "OriginalValue": "Původní hodnota", + "PropertyName": "Název vlastnosti", + "PropertyTypeFullName": "Typ vlastnosti Celé jméno", + "Yes": "Ano", + "No": "Ne", + "Changes": "Změny", + "AverageExecutionDurationInLogsPerDay": "Průměrná doba provádění", + "AverageExecutionDurationInMilliseconds": "Průměrná doba provádění v milisekundách", + "ErrorRateInLogs": "Chybovost v protokolech", + "Success": "Úspěch", + "Fault": "Chyba", + "NoChanges": "Žádné změny)", + "EntityChanges": "Změny entit", + "EntityId": "ID entity", + "EntityChangeStartTime": "Datum změny min", + "EntityChangeEndTime": "Datum maximální změny", + "EntityHistory": "Historie entity", + "DaysAgoTitle": "{0} {1}.", + "DaysAgoWithUserTitle": "{0} {1} od {2}.", + "Created": "Vytvořeno", + "Updated": "Aktualizováno", + "Deleted": "Smazáno", + "ChangeHistory": "Historie změn", + "FullChangeHistory": "Úplná historie změn", + "ChangeDetails": "Změnit podrobnosti", + "DurationMs": "Doba trvání (ms)", + "StartDate": "Datum zahájení", + "EndDate": "Datum ukončení", + "Feature:AuditLoggingGroup": "Protokolování auditu", + "Feature:AuditLoggingEnable": "Povolena stránka protokolování auditu", + "Feature:AuditLoggingEnableDescription": "Povolit stránku protokolování auditu v aplikaci." + } +} \ No newline at end of file diff --git a/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/de.json b/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/de.json new file mode 100644 index 0000000000..9b229eb182 --- /dev/null +++ b/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/de.json @@ -0,0 +1,83 @@ +{ + "culture": "de", + "texts": { + "Permission:AuditLogging": "Audit-Protokollierung", + "Permission:AuditLogs": "Audit-Protokolle", + "Menu:AuditLogging": "Audit-Protokolle", + "AuditLogs": "Audit-Protokolle", + "HttpStatus": "HTTP-Status", + "HttpMethod": "HTTP-Methode", + "HttpMethodFilter": "HTTP-Methodenfilter", + "HttpRequest": "HTTP-Anfrage", + "User": "Benutzer", + "UserNameFilter": "Benutzerfilter", + "HasException": "Hat eine Ausnahme", + "IpAddress": "IP Adresse", + "Time": "Zeit", + "Date": "Datum", + "Duration": "Dauer", + "Detail": "Detail", + "Overall": "Gesamt", + "Actions": "Aktionen", + "ClientIpAddress": "Client-IP-Adresse", + "ClientName": "Kundenname", + "BrowserInfo": "Browserinformationen", + "Url": "URL", + "UserName": "Nutzername", + "TenantImpersonator": "Mieter-Imitator", + "UserImpersonator": "Benutzer-Imitator", + "UrlFilter": "URL-Filter", + "Exceptions": "Ausnahmen", + "Comments": "Kommentare", + "HttpStatusCode": "HTTP-Statuscode", + "HttpStatusCodeFilter": "HTTP-Statuscodefilter", + "ServiceName": "Service", + "MethodName": "Methode", + "CorrelationId": "Korrelations-ID", + "ApplicationName": "Anwendungsname", + "ExecutionDuration": "Dauer", + "ExtraProperties": "Zusätzliche Eigenschaften", + "MaxDuration": "Max. Dauer", + "MinDuration": "Mindest. Dauer", + "MinMaxDuration": "Dauer (Min. - Max.)", + "{0}Milliseconds": "{0} Millisekunden", + "ExecutionTime": "Zeit", + "Parameters": "Parameter", + "EntityTypeFullName": "Vollständiger Name des Entitätstyps", + "Entity": "Juristische Person", + "ChangeType": "Typ ändern", + "ChangeTime": "Zeit", + "NewValue": "Neuer Wert", + "OriginalValue": "Originalwert", + "PropertyName": "Name des Anwesens", + "PropertyTypeFullName": "Vollständiger Name des Eigenschaftstyps", + "Yes": "Ja", + "No": "NEIN", + "Changes": "Änderungen", + "AverageExecutionDurationInLogsPerDay": "Durchschnittliche Ausführungsdauer", + "AverageExecutionDurationInMilliseconds": "Durchschnittliche Ausführungsdauer in Millisekunden", + "ErrorRateInLogs": "Fehlerrate in Protokollen", + "Success": "Erfolg", + "Fault": "Fehler", + "NoChanges": "Keine Änderungen)", + "EntityChanges": "Entitätsänderungen", + "EntityId": "Entitäts-ID", + "EntityChangeStartTime": "Min. Änderungsdatum", + "EntityChangeEndTime": "Maximales Änderungsdatum", + "EntityHistory": "Entitätsgeschichte", + "DaysAgoTitle": "{0} {1}.", + "DaysAgoWithUserTitle": "{0} {1} von {2}.", + "Created": "Erstellt", + "Updated": "Aktualisiert", + "Deleted": "Gelöscht", + "ChangeHistory": "Geschichte verändern", + "FullChangeHistory": "Vollständiger Änderungsverlauf", + "ChangeDetails": "Details ändern", + "DurationMs": "Dauer (ms)", + "StartDate": "Startdatum", + "EndDate": "Endtermin", + "Feature:AuditLoggingGroup": "Audit-Protokollierung", + "Feature:AuditLoggingEnable": "Aktivierte Audit-Logging-Seite", + "Feature:AuditLoggingEnableDescription": "Aktivieren Sie die Audit-Logging-Seite in der Anwendung." + } +} \ No newline at end of file diff --git a/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/en.json b/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/en.json index 3c2870646a..629710276a 100644 --- a/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/en.json +++ b/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/en.json @@ -1,18 +1,18 @@ { "culture": "en", "texts": { - "Permission:AuditLogging": "Audit Logging", - "Permission:AuditLogs": "Audit Logs", - "Menu:AuditLogging": "Audit Logs", - "AuditLogs": "Audit Logs", - "HttpStatus": "HTTP Status", - "HttpMethod": "HTTP Method", - "HttpMethodFilter": "HTTP Method Filter", + "Permission:AuditLogging": "Audit logging", + "Permission:AuditLogs": "Audit logs", + "Menu:AuditLogging": "Audit logs", + "AuditLogs": "Audit logs", + "HttpStatus": "HTTP status", + "HttpMethod": "HTTP method", + "HttpMethodFilter": "HTTP method filter", "HttpRequest": "HTTP Request", "User": "User", - "UserNameFilter": "User Filter", - "HasException": "Has Exception", - "IpAddress": "IP Address", + "UserNameFilter": "User filter", + "HasException": "Has exception", + "IpAddress": "IP address", "Time": "Time", "Date": "Date", "Duration": "Duration", @@ -23,60 +23,60 @@ "ClientName": "Client Name", "BrowserInfo": "Browser Info", "Url": "URL", - "UserName": "User Name", + "UserName": "User name", "TenantImpersonator": "Tenant Impersonator", "UserImpersonator": "User Impersonator", - "UrlFilter": "URL Filter", + "UrlFilter": "URL filter", "Exceptions": "Exceptions", "Comments": "Comments", - "HttpStatusCode": "HTTP Status Code", - "HttpStatusCodeFilter": "HTTP Status Code Filter", + "HttpStatusCode": "HTTP status code", + "HttpStatusCodeFilter": "HTTP status code filter", "ServiceName": "Service", "MethodName": "Method", "CorrelationId": "Correlation Id", - "ApplicationName": "Application Name", + "ApplicationName": "Application name", "ExecutionDuration": "Duration", "ExtraProperties": "Extra properties", - "MaxDuration": "Max. Duration", - "MinDuration": "Min. Duration", + "MaxDuration": "Max. duration", + "MinDuration": "Min. duration", "MinMaxDuration": "Duration (Min. - Max.)", "{0}Milliseconds": "{0} milliseconds", "ExecutionTime": "Time", "Parameters": "Parameters", "EntityTypeFullName": "Entity Type Full Name", "Entity": "Entity", - "ChangeType": "Change Type", + "ChangeType": "Change type", "ChangeTime": "Time", - "NewValue": "New Value", - "OriginalValue": "Original Value", - "PropertyName": "Property Name", + "NewValue": "New value", + "OriginalValue": "Original value", + "PropertyName": "Property name", "PropertyTypeFullName": "Property Type Full Name", "Yes": "Yes", "No": "No", "Changes": "Changes", - "AverageExecutionDurationInLogsPerDay": "Average Execution Duration", + "AverageExecutionDurationInLogsPerDay": "Average execution duration", "AverageExecutionDurationInMilliseconds": "Average execution duration in milliseconds", - "ErrorRateInLogs": "Error Rate in Logs", + "ErrorRateInLogs": "Error rate in logs", "Success": "Success", "Fault": "Fault", "NoChanges": "No change(s)", - "EntityChanges": "Entity Changes", + "EntityChanges": "Entity changes", "EntityId": "Entity Id", - "EntityChangeStartTime": "Min Change Date", - "EntityChangeEndTime": "Max Change Date", - "EntityHistory": "Entity History", + "EntityChangeStartTime": "Min change date", + "EntityChangeEndTime": "Max change date", + "EntityHistory": "Entity history", "DaysAgoTitle": "{0} {1}.", "DaysAgoWithUserTitle": "{0} {1} by {2}.", "Created": "Created", "Updated": "Updated", "Deleted": "Deleted", - "ChangeHistory": "Change History", - "FullChangeHistory": "Full Change History", - "ChangeDetails": "Change Details", + "ChangeHistory": "Change history", + "FullChangeHistory": "Full change history", + "ChangeDetails": "Change details", "DurationMs": "Duration (ms)", - "StartDate": "Start Date", - "EndDate": "End Date", - "Feature:AuditLoggingGroup": "Audit Logging", + "StartDate": "Start date", + "EndDate": "End date", + "Feature:AuditLoggingGroup": "Audit logging", "Feature:AuditLoggingEnable": "Enabled audit logging page", "Feature:AuditLoggingEnableDescription": "Enable audit logging page in the application." } diff --git a/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/es.json b/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/es.json index ac8cd880f8..0e7ce7a37f 100644 --- a/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/es.json +++ b/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/es.json @@ -39,6 +39,7 @@ "ExtraProperties": "Propiedades adicionales", "MaxDuration": "Max. Duración", "MinDuration": "Min. Duración", + "MinMaxDuration": "Duración (Mín. - Máx.)", "{0}Milliseconds": "{0} milisegundos", "ExecutionTime": "Tiempo", "Parameters": "Parámetros", diff --git a/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/fr.json b/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/fr.json index af58ae4ef0..228a3ad788 100644 --- a/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/fr.json +++ b/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/fr.json @@ -39,6 +39,7 @@ "ExtraProperties": "Propriétés supplémentaires", "MaxDuration": "Max. Durée", "MinDuration": "Min. Durée", + "MinMaxDuration": "Durée (Min. - Max.)", "{0}Milliseconds": "{0} millisecondes", "ExecutionTime": "Temps", "Parameters": "Paramètres", diff --git a/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/hi.json b/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/hi.json index 0d9ce8c2a9..10dbb7cf10 100644 --- a/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/hi.json +++ b/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/hi.json @@ -39,6 +39,7 @@ "ExtraProperties": "अतिरिक्त गुण", "MaxDuration": "मैक्स। समयांतराल", "MinDuration": "मिन। समयांतराल", + "MinMaxDuration": "अवधि (न्यूनतम - अधिकतम)", "{0}Milliseconds": "{0} मिलीसेकंड", "ExecutionTime": "समय", "Parameters": "मापदंडों", diff --git a/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/hr.json b/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/hr.json new file mode 100644 index 0000000000..587efee335 --- /dev/null +++ b/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/hr.json @@ -0,0 +1,83 @@ +{ + "culture": "hr", + "texts": { + "Permission:AuditLogging": "Zapisivanje revizije", + "Permission:AuditLogs": "Dnevnici revizije", + "Menu:AuditLogging": "Dnevnici revizije", + "AuditLogs": "Dnevnici revizije", + "HttpStatus": "HTTP status", + "HttpMethod": "HTTP metoda", + "HttpMethodFilter": "Filtar HTTP metode", + "HttpRequest": "HTTP zahtjev", + "User": "Korisnik", + "UserNameFilter": "Filtar korisnika", + "HasException": "Ima iznimku", + "IpAddress": "IP adresa", + "Time": "Vrijeme", + "Date": "Datum", + "Duration": "Trajanje", + "Detail": "Detalj", + "Overall": "Sve u svemu", + "Actions": "Radnje", + "ClientIpAddress": "IP adresa klijenta", + "ClientName": "ime klijenta", + "BrowserInfo": "Informacije o pregledniku", + "Url": "URL", + "UserName": "Korisničko ime", + "TenantImpersonator": "Imitator stanara", + "UserImpersonator": "Imitator korisnika", + "UrlFilter": "URL filtar", + "Exceptions": "Iznimke", + "Comments": "Komentari", + "HttpStatusCode": "HTTP statusni kod", + "HttpStatusCodeFilter": "Filtar HTTP statusnog koda", + "ServiceName": "Servis", + "MethodName": "metoda", + "CorrelationId": "Id korelacije", + "ApplicationName": "Naziv aplikacije", + "ExecutionDuration": "Trajanje", + "ExtraProperties": "Ekstra svojstva", + "MaxDuration": "Maks. Trajanje", + "MinDuration": "Min. Trajanje", + "MinMaxDuration": "Trajanje (min. - maks.)", + "{0}Milliseconds": "{0} milisekundi", + "ExecutionTime": "Vrijeme", + "Parameters": "Parametri", + "EntityTypeFullName": "Vrsta entiteta Puno ime", + "Entity": "Entitet", + "ChangeType": "Promjena vrste", + "ChangeTime": "Vrijeme", + "NewValue": "Nova vrijednost", + "OriginalValue": "Izvorna vrijednost", + "PropertyName": "Naziv nekretnine", + "PropertyTypeFullName": "Vrsta nekretnine Puni naziv", + "Yes": "Da", + "No": "Ne", + "Changes": "Promjene", + "AverageExecutionDurationInLogsPerDay": "Prosječno trajanje izvršenja", + "AverageExecutionDurationInMilliseconds": "Prosječno trajanje izvršenja u milisekundama", + "ErrorRateInLogs": "Stopa grešaka u zapisima", + "Success": "Uspjeh", + "Fault": "Greška", + "NoChanges": "Nema promjena)", + "EntityChanges": "Promjene entiteta", + "EntityId": "ID entiteta", + "EntityChangeStartTime": "Min. datum promjene", + "EntityChangeEndTime": "Maks. datum promjene", + "EntityHistory": "Povijest entiteta", + "DaysAgoTitle": "{0} {1}.", + "DaysAgoWithUserTitle": "{0} {1} od {2}.", + "Created": "Stvoreno", + "Updated": "Ažurirano", + "Deleted": "Izbrisano", + "ChangeHistory": "Povijest promjena", + "FullChangeHistory": "Potpuna povijest promjena", + "ChangeDetails": "Promjena pojedinosti", + "DurationMs": "Trajanje (ms)", + "StartDate": "Početni datum", + "EndDate": "Datum završetka", + "Feature:AuditLoggingGroup": "Zapisivanje revizije", + "Feature:AuditLoggingEnable": "Omogućena stranica za bilježenje revizije", + "Feature:AuditLoggingEnableDescription": "Omogućite stranicu za bilježenje revizije u aplikaciji." + } +} \ No newline at end of file diff --git a/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/hu.json b/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/hu.json new file mode 100644 index 0000000000..0812acfb37 --- /dev/null +++ b/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/hu.json @@ -0,0 +1,83 @@ +{ + "culture": "hu", + "texts": { + "Permission:AuditLogging": "Audit naplózás", + "Permission:AuditLogs": "Ellenőrzési naplók", + "Menu:AuditLogging": "Ellenőrzési naplók", + "AuditLogs": "Ellenőrzési naplók", + "HttpStatus": "HTTP állapot", + "HttpMethod": "HTTP-módszer", + "HttpMethodFilter": "HTTP-módszer szűrő", + "HttpRequest": "HTTP-kérés", + "User": "Felhasználó", + "UserNameFilter": "Felhasználói szűrő", + "HasException": "Van kivétel", + "IpAddress": "IP-cím", + "Time": "Idő", + "Date": "Dátum", + "Duration": "Időtartam", + "Detail": "Részlet", + "Overall": "Átfogó", + "Actions": "Műveletek", + "ClientIpAddress": "Kliens IP-címe", + "ClientName": "Ügyfél Neve", + "BrowserInfo": "Böngésző információ", + "Url": "URL", + "UserName": "Felhasználónév", + "TenantImpersonator": "Bérlő megszemélyesítője", + "UserImpersonator": "Felhasználói megszemélyesítő", + "UrlFilter": "URL-szűrő", + "Exceptions": "Kivételek", + "Comments": "Hozzászólások", + "HttpStatusCode": "HTTP állapotkód", + "HttpStatusCodeFilter": "HTTP állapotkód szűrő", + "ServiceName": "Szolgáltatás", + "MethodName": "Módszer", + "CorrelationId": "Korreláció Id", + "ApplicationName": "Alkalmazás neve", + "ExecutionDuration": "Időtartam", + "ExtraProperties": "Extra tulajdonságok", + "MaxDuration": "Max. Időtartam", + "MinDuration": "Min. Időtartam", + "MinMaxDuration": "Időtartam (min.-max.)", + "{0}Milliseconds": "{0} ezredmásodperc", + "ExecutionTime": "Idő", + "Parameters": "Paraméterek", + "EntityTypeFullName": "Entitástípus Teljes név", + "Entity": "Entitás", + "ChangeType": "Típus módosítása", + "ChangeTime": "Idő", + "NewValue": "Új érték", + "OriginalValue": "Eredeti érték", + "PropertyName": "Ingatlan neve", + "PropertyTypeFullName": "Tulajdonság típusa Teljes név", + "Yes": "Igen", + "No": "Nem", + "Changes": "Változtatások", + "AverageExecutionDurationInLogsPerDay": "Átlagos végrehajtási időtartam", + "AverageExecutionDurationInMilliseconds": "Átlagos végrehajtási időtartam ezredmásodpercben", + "ErrorRateInLogs": "Hibaarány a naplókban", + "Success": "Siker", + "Fault": "Hiba", + "NoChanges": "Nincs változás)", + "EntityChanges": "Az entitás változásai", + "EntityId": "Entitásazonosító", + "EntityChangeStartTime": "Min. módosítási dátum", + "EntityChangeEndTime": "Max változási dátum", + "EntityHistory": "Entitástörténet", + "DaysAgoTitle": "{0} {1}.", + "DaysAgoWithUserTitle": "{0} {1}, szerző: {2}.", + "Created": "Létrehozva", + "Updated": "Frissítve", + "Deleted": "Törölve", + "ChangeHistory": "Változástörténet", + "FullChangeHistory": "Teljes változástörténet", + "ChangeDetails": "Részletek módosítása", + "DurationMs": "Időtartam (ms)", + "StartDate": "Kezdő dátum", + "EndDate": "Befejezés dátuma", + "Feature:AuditLoggingGroup": "Audit naplózás", + "Feature:AuditLoggingEnable": "Engedélyezett naplózási oldal", + "Feature:AuditLoggingEnableDescription": "Engedélyezze a naplózási oldalt az alkalmazásban." + } +} \ No newline at end of file diff --git a/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/is.json b/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/is.json new file mode 100644 index 0000000000..3175bfe492 --- /dev/null +++ b/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/is.json @@ -0,0 +1,83 @@ +{ + "culture": "is", + "texts": { + "Permission:AuditLogging": "Endurskoðunarskráning", + "Permission:AuditLogs": "Endurskoðunarskrár", + "Menu:AuditLogging": "Endurskoðunarskrár", + "AuditLogs": "Endurskoðunarskrár", + "HttpStatus": "HTTP staða", + "HttpMethod": "HTTP aðferð", + "HttpMethodFilter": "HTTP aðferðasía", + "HttpRequest": "HTTP beiðni", + "User": "Notandi", + "UserNameFilter": "Notendasía", + "HasException": "Hefur undantekningu", + "IpAddress": "IP tölu", + "Time": "Tími", + "Date": "Dagsetning", + "Duration": "Lengd", + "Detail": "Smáatriði", + "Overall": "Á heildina litið", + "Actions": "Aðgerðir", + "ClientIpAddress": "IP tölu viðskiptavinar", + "ClientName": "Nafn viðskiptavinar", + "BrowserInfo": "Upplýsingar um vafra", + "Url": "URL", + "UserName": "Notandanafn", + "TenantImpersonator": "Leigjandi eftirherma", + "UserImpersonator": "User Imitator", + "UrlFilter": "URL sía", + "Exceptions": "Undantekningar", + "Comments": "Athugasemdir", + "HttpStatusCode": "HTTP stöðukóði", + "HttpStatusCodeFilter": "HTTP stöðukóðasía", + "ServiceName": "Þjónusta", + "MethodName": "Aðferð", + "CorrelationId": "Fylgni auðkenni", + "ApplicationName": "Nafn umsóknar", + "ExecutionDuration": "Lengd", + "ExtraProperties": "Auka eignir", + "MaxDuration": "Hámark Lengd", + "MinDuration": "Min. Lengd", + "MinMaxDuration": "Lengd (lágmark - hámark)", + "{0}Milliseconds": "{0} millisekúndur", + "ExecutionTime": "Tími", + "Parameters": "Færibreytur", + "EntityTypeFullName": "Tegund eininga fullt nafn", + "Entity": "Eining", + "ChangeType": "Breyta gerð", + "ChangeTime": "Tími", + "NewValue": "Nýtt gildi", + "OriginalValue": "Upprunalegt gildi", + "PropertyName": "Nafn eignar", + "PropertyTypeFullName": "Tegund eignar fullt nafn", + "Yes": "Já", + "No": "Nei", + "Changes": "Breytingar", + "AverageExecutionDurationInLogsPerDay": "Meðaltími framkvæmdar", + "AverageExecutionDurationInMilliseconds": "Meðallengd framkvæmdar í millisekúndum", + "ErrorRateInLogs": "Villuhlutfall í annálum", + "Success": "Árangur", + "Fault": "Að kenna", + "NoChanges": "Engar breytingar", + "EntityChanges": "Breytingar á einingum", + "EntityId": "Auðkenni aðila", + "EntityChangeStartTime": "Minn breytingadagsetning", + "EntityChangeEndTime": "Hámarksbreytingardagsetning", + "EntityHistory": "Saga eininga", + "DaysAgoTitle": "{0} {1}.", + "DaysAgoWithUserTitle": "{0} {1} eftir {2}.", + "Created": "Búið til", + "Updated": "Uppfært", + "Deleted": "Eytt", + "ChangeHistory": "Breytingaferill", + "FullChangeHistory": "Full breytingasaga", + "ChangeDetails": "Breyta upplýsingum", + "DurationMs": "Lengd (ms)", + "StartDate": "Upphafsdagur", + "EndDate": "Loka dagsetning", + "Feature:AuditLoggingGroup": "Endurskoðunarskráning", + "Feature:AuditLoggingEnable": "Virkjað endurskoðunarskráningarsíða", + "Feature:AuditLoggingEnableDescription": "Virkjaðu endurskoðunarskráningarsíðu í forritinu." + } +} \ No newline at end of file diff --git a/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/it.json b/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/it.json index f9bf72f7ab..1a434abadc 100644 --- a/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/it.json +++ b/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/it.json @@ -39,6 +39,7 @@ "ExtraProperties": "Proprietà extra", "MaxDuration": "Max. Durata", "MinDuration": "Min. Durata", + "MinMaxDuration": "Durata (Min. - Max.)", "{0}Milliseconds": "{0} millisecondi", "ExecutionTime": "Orario", "Parameters": "Parametri", diff --git a/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/nl.json b/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/nl.json new file mode 100644 index 0000000000..b8b218ca2d --- /dev/null +++ b/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/nl.json @@ -0,0 +1,83 @@ +{ + "culture": "nl", + "texts": { + "Permission:AuditLogging": "Auditregistratie", + "Permission:AuditLogs": "Auditlogboeken", + "Menu:AuditLogging": "Auditlogboeken", + "AuditLogs": "Auditlogboeken", + "HttpStatus": "HTTP-status", + "HttpMethod": "HTTP-methode", + "HttpMethodFilter": "HTTP-methodefilter", + "HttpRequest": "HTTP-verzoek", + "User": "Gebruiker", + "UserNameFilter": "Gebruikersfilter", + "HasException": "Heeft uitzondering", + "IpAddress": "IP adres", + "Time": "Tijd", + "Date": "Datum", + "Duration": "Duur", + "Detail": "Detail", + "Overall": "Algemeen", + "Actions": "Acties", + "ClientIpAddress": "IP-adres van de klant", + "ClientName": "klantnaam", + "BrowserInfo": "Browserinfo", + "Url": "URL", + "UserName": "Gebruikersnaam", + "TenantImpersonator": "Huurder imitator", + "UserImpersonator": "Gebruiker imitator", + "UrlFilter": "URL-filter", + "Exceptions": "Uitzonderingen", + "Comments": "Opmerkingen", + "HttpStatusCode": "HTTP-statuscode", + "HttpStatusCodeFilter": "HTTP-statuscodefilter", + "ServiceName": "Dienst", + "MethodName": "Methode", + "CorrelationId": "Correlatie-ID", + "ApplicationName": "Naam van de toepassing", + "ExecutionDuration": "Duur", + "ExtraProperties": "Extra eigenschappen", + "MaxDuration": "Max. Duur", + "MinDuration": "Min. Duur", + "MinMaxDuration": "Duur (Min. - Max.)", + "{0}Milliseconds": "{0} milliseconden", + "ExecutionTime": "Tijd", + "Parameters": "Parameters", + "EntityTypeFullName": "Entiteitstype Volledige naam", + "Entity": "Entiteit", + "ChangeType": "Van type veranderen", + "ChangeTime": "Tijd", + "NewValue": "Nieuwe waarde", + "OriginalValue": "Originele waarde", + "PropertyName": "Eigendomsnaam", + "PropertyTypeFullName": "Eigendomstype Volledige naam", + "Yes": "Ja", + "No": "Nee", + "Changes": "Veranderingen", + "AverageExecutionDurationInLogsPerDay": "Gemiddelde uitvoeringsduur", + "AverageExecutionDurationInMilliseconds": "Gemiddelde uitvoeringsduur in milliseconden", + "ErrorRateInLogs": "Foutpercentage in logboeken", + "Success": "Succes", + "Fault": "Schuld", + "NoChanges": "Geen veranderingen)", + "EntityChanges": "Entiteitswijzigingen", + "EntityId": "Entiteits-ID", + "EntityChangeStartTime": "Min. wijzigingsdatum", + "EntityChangeEndTime": "Maximale wijzigingsdatum", + "EntityHistory": "Entiteitsgeschiedenis", + "DaysAgoTitle": "{0} {1}.", + "DaysAgoWithUserTitle": "{0} {1} door {2}.", + "Created": "Gemaakt", + "Updated": "Bijgewerkt", + "Deleted": "Verwijderd", + "ChangeHistory": "verander geschiedenis", + "FullChangeHistory": "Volledige wijzigingsgeschiedenis", + "ChangeDetails": "Wijzig details", + "DurationMs": "Duur (ms)", + "StartDate": "Begin datum", + "EndDate": "Einddatum", + "Feature:AuditLoggingGroup": "Auditregistratie", + "Feature:AuditLoggingEnable": "Pagina voor auditregistratie ingeschakeld", + "Feature:AuditLoggingEnableDescription": "Schakel de auditlogboekpagina in de applicatie in." + } +} \ No newline at end of file diff --git a/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/pl-PL.json b/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/pl-PL.json new file mode 100644 index 0000000000..179e5f4f98 --- /dev/null +++ b/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/pl-PL.json @@ -0,0 +1,83 @@ +{ + "culture": "pl-PL", + "texts": { + "Permission:AuditLogging": "Rejestrowanie audytu", + "Permission:AuditLogs": "Dzienniki audytu", + "Menu:AuditLogging": "Dzienniki audytu", + "AuditLogs": "Dzienniki audytu", + "HttpStatus": "Stan HTTP", + "HttpMethod": "Metoda HTTP", + "HttpMethodFilter": "Filtr metody HTTP", + "HttpRequest": "Żądanie HTTP", + "User": "Użytkownik", + "UserNameFilter": "Filtr użytkownika", + "HasException": "Ma wyjątek", + "IpAddress": "Adres IP", + "Time": "Czas", + "Date": "Data", + "Duration": "Czas trwania", + "Detail": "Szczegół", + "Overall": "Ogólnie", + "Actions": "działania", + "ClientIpAddress": "Adres IP klienta", + "ClientName": "Nazwa klienta", + "BrowserInfo": "Informacje o przeglądarce", + "Url": "Adres URL", + "UserName": "Nazwa użytkownika", + "TenantImpersonator": "Podszywanie się pod najemcę", + "UserImpersonator": "Podszywający się pod użytkownika", + "UrlFilter": "Filtr adresów URL", + "Exceptions": "Wyjątki", + "Comments": "Uwagi", + "HttpStatusCode": "Kod stanu HTTP", + "HttpStatusCodeFilter": "Filtr kodu stanu HTTP", + "ServiceName": "Praca", + "MethodName": "metoda", + "CorrelationId": "Identyfikator korelacji", + "ApplicationName": "Nazwa aplikacji", + "ExecutionDuration": "Czas trwania", + "ExtraProperties": "Dodatkowe właściwości", + "MaxDuration": "Maks. Czas trwania", + "MinDuration": "Min. Czas trwania", + "MinMaxDuration": "Czas trwania (min. - maks.)", + "{0}Milliseconds": "{0} milisekund", + "ExecutionTime": "Czas", + "Parameters": "Parametry", + "EntityTypeFullName": "Typ jednostki Imię i nazwisko", + "Entity": "Podmiot", + "ChangeType": "Zmień typ", + "ChangeTime": "Czas", + "NewValue": "Nowa wartość", + "OriginalValue": "Oryginalna wartość", + "PropertyName": "Nazwa właściwości", + "PropertyTypeFullName": "Typ nieruchomości Imię i nazwisko", + "Yes": "Tak", + "No": "NIE", + "Changes": "Zmiany", + "AverageExecutionDurationInLogsPerDay": "Średni czas realizacji", + "AverageExecutionDurationInMilliseconds": "Średni czas wykonania w milisekundach", + "ErrorRateInLogs": "Poziom błędów w logach", + "Success": "Powodzenie", + "Fault": "Wada", + "NoChanges": "Bez zmian)", + "EntityChanges": "Zmiany podmiotu", + "EntityId": "Identyfikator jednostki", + "EntityChangeStartTime": "Minimalna data zmiany", + "EntityChangeEndTime": "Maksymalna data zmiany", + "EntityHistory": "Historia jednostki", + "DaysAgoTitle": "{0} {1}.", + "DaysAgoWithUserTitle": "{0} {1} autorstwa {2}.", + "Created": "Utworzony", + "Updated": "Zaktualizowano", + "Deleted": "Usunięto", + "ChangeHistory": "zmieniać historię", + "FullChangeHistory": "Pełna historia zmian", + "ChangeDetails": "Zmień szczegóły", + "DurationMs": "Czas trwania (ms)", + "StartDate": "Data rozpoczęcia", + "EndDate": "Data końcowa", + "Feature:AuditLoggingGroup": "Rejestrowanie audytu", + "Feature:AuditLoggingEnable": "Włączono stronę rejestrowania audytu", + "Feature:AuditLoggingEnableDescription": "Włącz stronę rejestrowania audytu w aplikacji." + } +} \ No newline at end of file diff --git a/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/pt-BR.json b/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/pt-BR.json index e6f368eae8..9173d3cdd4 100644 --- a/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/pt-BR.json +++ b/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/pt-BR.json @@ -39,6 +39,7 @@ "ExtraProperties": "Propriedades extras", "MaxDuration": "Máx. Duração", "MinDuration": "Min. Duração", + "MinMaxDuration": "Duração (Mín. - Máx.)", "{0}Milliseconds": "{0} milissegundos", "ExecutionTime": "Tempo", "Parameters": "Parâmetros", diff --git a/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/ro-RO.json b/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/ro-RO.json new file mode 100644 index 0000000000..9f079420eb --- /dev/null +++ b/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/ro-RO.json @@ -0,0 +1,83 @@ +{ + "culture": "ro-RO", + "texts": { + "Permission:AuditLogging": "Înregistrare de audit", + "Permission:AuditLogs": "Jurnalele de audit", + "Menu:AuditLogging": "Jurnalele de audit", + "AuditLogs": "Jurnalele de audit", + "HttpStatus": "Stare HTTP", + "HttpMethod": "Metoda HTTP", + "HttpMethodFilter": "Filtru de metodă HTTP", + "HttpRequest": "Solicitare HTTP", + "User": "Utilizator", + "UserNameFilter": "Filtru utilizator", + "HasException": "Are o excepție", + "IpAddress": "Adresa IP", + "Time": "Timp", + "Date": "Data", + "Duration": "Durată", + "Detail": "Detaliu", + "Overall": "Per total", + "Actions": "Acțiuni", + "ClientIpAddress": "Adresa IP a clientului", + "ClientName": "numele clientului", + "BrowserInfo": "Info browser", + "Url": "URL", + "UserName": "Nume de utilizator", + "TenantImpersonator": "Imitator al chiriașului", + "UserImpersonator": "Imitator de utilizator", + "UrlFilter": "Filtru URL", + "Exceptions": "Excepții", + "Comments": "Comentarii", + "HttpStatusCode": "Cod de stare HTTP", + "HttpStatusCodeFilter": "Filtru cod de stare HTTP", + "ServiceName": "Serviciu", + "MethodName": "Metodă", + "CorrelationId": "Id. corelație", + "ApplicationName": "Numele aplicatiei", + "ExecutionDuration": "Durată", + "ExtraProperties": "Proprietăți suplimentare", + "MaxDuration": "Max. Durată", + "MinDuration": "Min. Durată", + "MinMaxDuration": "Durată (Min. - Max.)", + "{0}Milliseconds": "{0} milisecunde", + "ExecutionTime": "Timp", + "Parameters": "Parametrii", + "EntityTypeFullName": "Nume complet tip entitate", + "Entity": "Entitate", + "ChangeType": "Schimbați tipul", + "ChangeTime": "Timp", + "NewValue": "Valoare nouă", + "OriginalValue": "Valoarea inițială", + "PropertyName": "Numele proprietatii", + "PropertyTypeFullName": "Tip de proprietate Nume complet", + "Yes": "da", + "No": "Nu", + "Changes": "Schimbări", + "AverageExecutionDurationInLogsPerDay": "Durata medie de execuție", + "AverageExecutionDurationInMilliseconds": "Durata medie de execuție în milisecunde", + "ErrorRateInLogs": "Rata de eroare în jurnalele", + "Success": "Succes", + "Fault": "Vina", + "NoChanges": "Nici o schimbare)", + "EntityChanges": "Modificări ale entităților", + "EntityId": "Id. entitate", + "EntityChangeStartTime": "Data minimă a modificării", + "EntityChangeEndTime": "Data maximă de schimbare", + "EntityHistory": "Istoricul entității", + "DaysAgoTitle": "{0} {1}.", + "DaysAgoWithUserTitle": "{0} {1} de la {2}.", + "Created": "Creată", + "Updated": "Actualizat", + "Deleted": "Șters", + "ChangeHistory": "Istoricul modificărilor", + "FullChangeHistory": "Istoricul complet al schimbărilor", + "ChangeDetails": "Modificați detaliile", + "DurationMs": "Durata (ms)", + "StartDate": "Data de început", + "EndDate": "Data de încheiere", + "Feature:AuditLoggingGroup": "Înregistrare de audit", + "Feature:AuditLoggingEnable": "Pagina de înregistrare a auditului activată", + "Feature:AuditLoggingEnableDescription": "Activați pagina de înregistrare a auditului în aplicație." + } +} \ No newline at end of file diff --git a/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/ru.json b/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/ru.json index bb070c9815..f06719e4b2 100644 --- a/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/ru.json +++ b/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/ru.json @@ -39,6 +39,7 @@ "ExtraProperties": "Дополнительные свойства", "MaxDuration": "Максимум. Продолжительность", "MinDuration": "Мин. Продолжительность", + "MinMaxDuration": "Продолжительность (Мин.-Макс.)", "{0}Milliseconds": "{0} миллисекунд", "ExecutionTime": "Время", "Parameters": "Параметры", diff --git a/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/sk.json b/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/sk.json index 5d48df00e9..e58dd37a5a 100644 --- a/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/sk.json +++ b/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/sk.json @@ -39,6 +39,7 @@ "ExtraProperties": "Ďalšie vlastnosti", "MaxDuration": "Max. trvanie", "MinDuration": "Min. trvanie", + "MinMaxDuration": "Trvanie (min. – max.)", "{0}Milliseconds": "{0} milisekúnd", "ExecutionTime": "Čas", "Parameters": "Parametre", diff --git a/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/sl.json b/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/sl.json index 813c854729..e38afe0002 100644 --- a/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/sl.json +++ b/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/sl.json @@ -39,6 +39,7 @@ "ExtraProperties": "Dodatne lastnosti", "MaxDuration": "Najd. trajanje", "MinDuration": "Najk. trajanje", + "MinMaxDuration": "Trajanje (min. - maks.)", "{0}Milliseconds": "{0} milisekund", "ExecutionTime": "Čas", "Parameters": "Parametri", diff --git a/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/vi.json b/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/vi.json new file mode 100644 index 0000000000..03e68947c8 --- /dev/null +++ b/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/vi.json @@ -0,0 +1,83 @@ +{ + "culture": "vi", + "texts": { + "Permission:AuditLogging": "Ghi nhật ký kiểm tra", + "Permission:AuditLogs": "Nhật ký kiểm tra", + "Menu:AuditLogging": "Nhật ký kiểm tra", + "AuditLogs": "Nhật ký kiểm tra", + "HttpStatus": "Trạng thái HTTP", + "HttpMethod": "Phương thức HTTP", + "HttpMethodFilter": "Bộ lọc phương thức HTTP", + "HttpRequest": "Yêu cầu HTTP", + "User": "Người dùng", + "UserNameFilter": "Bộ lọc người dùng", + "HasException": "Có ngoại lệ", + "IpAddress": "Địa chỉ IP", + "Time": "Thời gian", + "Date": "Ngày", + "Duration": "Khoảng thời gian", + "Detail": "Chi tiết", + "Overall": "Tổng thể", + "Actions": "hành động", + "ClientIpAddress": "Địa chỉ IP của khách hàng", + "ClientName": "Tên khách hàng", + "BrowserInfo": "Thông tin trình duyệt", + "Url": "URL", + "UserName": "Tên tài khoản", + "TenantImpersonator": "Người mạo danh người thuê nhà", + "UserImpersonator": "Người mạo danh người dùng", + "UrlFilter": "Bộ lọc URL", + "Exceptions": "Ngoại lệ", + "Comments": "Bình luận", + "HttpStatusCode": "Mã trạng thái HTTP", + "HttpStatusCodeFilter": "Bộ lọc mã trạng thái HTTP", + "ServiceName": "Dịch vụ", + "MethodName": "Phương pháp", + "CorrelationId": "Id tương quan", + "ApplicationName": "Tên ứng dụng", + "ExecutionDuration": "Khoảng thời gian", + "ExtraProperties": "Thuộc tính bổ sung", + "MaxDuration": "Tối đa. Khoảng thời gian", + "MinDuration": "Tối thiểu. Khoảng thời gian", + "MinMaxDuration": "Thời lượng (Tối thiểu - Tối đa)", + "{0}Milliseconds": "{0} mili giây", + "ExecutionTime": "Thời gian", + "Parameters": "Thông số", + "EntityTypeFullName": "Loại thực thể Tên đầy đủ", + "Entity": "Thực thể", + "ChangeType": "Đổi loại", + "ChangeTime": "Thời gian", + "NewValue": "Giá trị mới", + "OriginalValue": "Giá trị gốc", + "PropertyName": "Tên tài sản", + "PropertyTypeFullName": "Loại tài sản Tên đầy đủ", + "Yes": "Đúng", + "No": "KHÔNG", + "Changes": "Thay đổi", + "AverageExecutionDurationInLogsPerDay": "Thời gian thực hiện trung bình", + "AverageExecutionDurationInMilliseconds": "Thời gian thực hiện trung bình tính bằng mili giây", + "ErrorRateInLogs": "Tỷ lệ lỗi trong nhật ký", + "Success": "Thành công", + "Fault": "Lỗi", + "NoChanges": "Không thay đổi)", + "EntityChanges": "Thay đổi thực thể", + "EntityId": "ID phap nhân", + "EntityChangeStartTime": "Ngày thay đổi tối thiểu", + "EntityChangeEndTime": "Ngày thay đổi tối đa", + "EntityHistory": "Lịch sử thực thể", + "DaysAgoTitle": "{0} {1}.", + "DaysAgoWithUserTitle": "{0} {1} của {2}.", + "Created": "Tạo", + "Updated": "Đã cập nhật", + "Deleted": "Đã xóa", + "ChangeHistory": "thay đổi lịch sử", + "FullChangeHistory": "Lịch sử thay đổi hoàn toàn", + "ChangeDetails": "Thay đổi chi tiết", + "DurationMs": "Thời lượng (ms)", + "StartDate": "Ngày bắt đầu", + "EndDate": "Ngày cuối", + "Feature:AuditLoggingGroup": "Ghi nhật ký kiểm tra", + "Feature:AuditLoggingEnable": "Đã bật trang ghi nhật ký kiểm tra", + "Feature:AuditLoggingEnableDescription": "Kích hoạt trang ghi nhật ký kiểm tra trong ứng dụng." + } +} \ No newline at end of file diff --git a/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/zh-Hant.json b/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/zh-Hant.json index 4f28999053..f987b0f31b 100644 --- a/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/zh-Hant.json +++ b/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/zh-Hant.json @@ -39,6 +39,7 @@ "ExtraProperties": "額外屬性", "MaxDuration": "最大持續時間", "MinDuration": "最小持續時間", + "MinMaxDuration": "持續時間(最短-最長)", "{0}Milliseconds": "{0} 毫秒", "ExecutionTime": "時間", "Parameters": "參數", diff --git a/modules/audit-logging/src/Volo.Abp.AuditLogging.EntityFrameworkCore/Volo/Abp/AuditLogging/EntityFrameworkCore/EfCoreAuditLogRepository.cs b/modules/audit-logging/src/Volo.Abp.AuditLogging.EntityFrameworkCore/Volo/Abp/AuditLogging/EntityFrameworkCore/EfCoreAuditLogRepository.cs index add342e075..86ed8461e4 100644 --- a/modules/audit-logging/src/Volo.Abp.AuditLogging.EntityFrameworkCore/Volo/Abp/AuditLogging/EntityFrameworkCore/EfCoreAuditLogRepository.cs +++ b/modules/audit-logging/src/Volo.Abp.AuditLogging.EntityFrameworkCore/Volo/Abp/AuditLogging/EntityFrameworkCore/EfCoreAuditLogRepository.cs @@ -126,13 +126,13 @@ public class EfCoreAuditLogRepository : EfCoreRepository auditLog.ExecutionTime <= endTime) .WhereIf(hasException.HasValue && hasException.Value, auditLog => auditLog.Exceptions != null && auditLog.Exceptions != "") .WhereIf(hasException.HasValue && !hasException.Value, auditLog => auditLog.Exceptions == null || auditLog.Exceptions == "") - .WhereIf(httpMethod != null, auditLog => auditLog.HttpMethod == httpMethod) - .WhereIf(url != null, auditLog => auditLog.Url != null && auditLog.Url.Contains(url)) + .WhereIf(!httpMethod.IsNullOrEmpty(), auditLog => auditLog.HttpMethod == httpMethod) + .WhereIf(!url.IsNullOrEmpty(), auditLog => auditLog.Url != null && auditLog.Url.Contains(url)) .WhereIf(userId != null, auditLog => auditLog.UserId == userId) - .WhereIf(userName != null, auditLog => auditLog.UserName == userName) - .WhereIf(applicationName != null, auditLog => auditLog.ApplicationName == applicationName) - .WhereIf(clientIpAddress != null, auditLog => auditLog.ClientIpAddress != null && auditLog.ClientIpAddress == clientIpAddress) - .WhereIf(correlationId != null, auditLog => auditLog.CorrelationId == correlationId) + .WhereIf(!userName.IsNullOrEmpty(), auditLog => auditLog.UserName == userName) + .WhereIf(!applicationName.IsNullOrEmpty(), auditLog => auditLog.ApplicationName == applicationName) + .WhereIf(!clientIpAddress.IsNullOrEmpty(), auditLog => auditLog.ClientIpAddress != null && auditLog.ClientIpAddress == clientIpAddress) + .WhereIf(!correlationId.IsNullOrEmpty(), auditLog => auditLog.CorrelationId == correlationId) .WhereIf(httpStatusCode != null && httpStatusCode > 0, auditLog => auditLog.HttpStatusCode == nHttpStatusCode) .WhereIf(maxExecutionDuration != null && maxExecutionDuration.Value > 0, auditLog => auditLog.ExecutionDuration <= maxExecutionDuration) .WhereIf(minExecutionDuration != null && minExecutionDuration.Value > 0, auditLog => auditLog.ExecutionDuration >= minExecutionDuration); diff --git a/modules/audit-logging/src/Volo.Abp.AuditLogging.MongoDB/Volo/Abp/AuditLogging/MongoDB/MongoAuditLogRepository.cs b/modules/audit-logging/src/Volo.Abp.AuditLogging.MongoDB/Volo/Abp/AuditLogging/MongoDB/MongoAuditLogRepository.cs index 1dc8b50778..2ffdd20fd6 100644 --- a/modules/audit-logging/src/Volo.Abp.AuditLogging.MongoDB/Volo/Abp/AuditLogging/MongoDB/MongoAuditLogRepository.cs +++ b/modules/audit-logging/src/Volo.Abp.AuditLogging.MongoDB/Volo/Abp/AuditLogging/MongoDB/MongoAuditLogRepository.cs @@ -128,13 +128,13 @@ public class MongoAuditLogRepository : MongoDbRepository auditLog.ExecutionTime <= endTime) .WhereIf(hasException.HasValue && hasException.Value, auditLog => auditLog.Exceptions != null && auditLog.Exceptions != "") .WhereIf(hasException.HasValue && !hasException.Value, auditLog => auditLog.Exceptions == null || auditLog.Exceptions == "") - .WhereIf(httpMethod != null, auditLog => auditLog.HttpMethod == httpMethod) - .WhereIf(url != null, auditLog => auditLog.Url != null && auditLog.Url.Contains(url)) + .WhereIf(!httpMethod.IsNullOrEmpty(), auditLog => auditLog.HttpMethod == httpMethod) + .WhereIf(!url.IsNullOrEmpty(), auditLog => auditLog.Url != null && auditLog.Url.Contains(url)) .WhereIf(userId != null, auditLog => auditLog.UserId == userId) - .WhereIf(userName != null, auditLog => auditLog.UserName == userName) - .WhereIf(applicationName != null, auditLog => auditLog.ApplicationName == applicationName) - .WhereIf(clientIpAddress != null, auditLog => auditLog.ClientIpAddress == clientIpAddress) - .WhereIf(correlationId != null, auditLog => auditLog.CorrelationId == correlationId) + .WhereIf(!userName.IsNullOrEmpty(), auditLog => auditLog.UserName == userName) + .WhereIf(!applicationName.IsNullOrEmpty(), auditLog => auditLog.ApplicationName == applicationName) + .WhereIf(!clientIpAddress.IsNullOrEmpty(), auditLog => auditLog.ClientIpAddress == clientIpAddress) + .WhereIf(!correlationId.IsNullOrEmpty(), auditLog => auditLog.CorrelationId == correlationId) .WhereIf(httpStatusCode != null && httpStatusCode > 0, auditLog => auditLog.HttpStatusCode == (int?)httpStatusCode) .WhereIf(maxDuration != null && maxDuration > 0, auditLog => auditLog.ExecutionDuration <= maxDuration) .WhereIf(minDuration != null && minDuration > 0, auditLog => auditLog.ExecutionDuration >= minDuration); diff --git a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/package.json b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/package.json index a03b9853cb..ac10fb87f0 100644 --- a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/package.json +++ b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/package.json @@ -3,7 +3,7 @@ "name": "asp.net", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.shared": "~8.0.0-rc.3", + "@abp/aspnetcore.mvc.ui.theme.shared": "~8.0.0", "@abp/prismjs": "^~7.3.2", "@abp/highlight.js": "^~7.3.2" }, diff --git a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/package.json b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/package.json index b2ef358fd8..e99d414686 100644 --- a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/package.json +++ b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/package.json @@ -3,8 +3,8 @@ "name": "asp.net", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "~8.0.0-rc.3", - "@abp/prismjs": "~8.0.0-rc.3" + "@abp/aspnetcore.mvc.ui.theme.basic": "~8.0.0", + "@abp/prismjs": "~8.0.0" }, "devDependencies": {} } diff --git a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/yarn.lock b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/yarn.lock index f27a4233d9..cd60eee899 100644 --- a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/yarn.lock +++ b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/yarn.lock @@ -2,39 +2,39 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-8.0.0-rc.3.tgz#637ea220c9f988c1d0e1b152928f4409696439f2" - integrity sha512-xFJkcC2Oa8vLqMW0gU/3nXHsdFZOQq8+o9gUeLqDAhHZomnvEWsoivcd+LZs0xSDgQOee7N9h2buv9ERBoYGiA== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~8.0.0-rc.3" - -"@abp/aspnetcore.mvc.ui.theme.shared@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-8.0.0-rc.3.tgz#88904633feb5ce7dface4d27e9a31f4e5ace6b30" - integrity sha512-gMYI+xz/0JDgW2U7T3Lesx1o1U+Y+7zG/jVZO5FuMtlrsYhvT6V5BsKa9q/N7kSR0tfK8vsjblMBobqvbmG3SQ== - dependencies: - "@abp/aspnetcore.mvc.ui" "~8.0.0-rc.3" - "@abp/bootstrap" "~8.0.0-rc.3" - "@abp/bootstrap-datepicker" "~8.0.0-rc.3" - "@abp/bootstrap-daterangepicker" "~8.0.0-rc.3" - "@abp/datatables.net-bs5" "~8.0.0-rc.3" - "@abp/font-awesome" "~8.0.0-rc.3" - "@abp/jquery-form" "~8.0.0-rc.3" - "@abp/jquery-validation-unobtrusive" "~8.0.0-rc.3" - "@abp/lodash" "~8.0.0-rc.3" - "@abp/luxon" "~8.0.0-rc.3" - "@abp/malihu-custom-scrollbar-plugin" "~8.0.0-rc.3" - "@abp/moment" "~8.0.0-rc.3" - "@abp/select2" "~8.0.0-rc.3" - "@abp/sweetalert2" "~8.0.0-rc.3" - "@abp/timeago" "~8.0.0-rc.3" - "@abp/toastr" "~8.0.0-rc.3" - -"@abp/aspnetcore.mvc.ui@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-8.0.0-rc.3.tgz#09402ed4e7504c09b49a84d6ee590a5c87017ab8" - integrity sha512-82GfU8DtReq5RTrb2Fl0UHm+vEO0PvC/6DyFHm57nyWiL2dKByUqLd8NXQz+gqubWOA+IvJoLehbcC6iD+Y0VQ== +"@abp/aspnetcore.mvc.ui.theme.basic@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-8.0.0.tgz#c58d15186ad9842834c953e4d712009597ead5c2" + integrity sha512-d43CG48iS8vQvA85tSK7OlSHdcC9JuBT7mpN7DlLViiQewVeoKwdKkMhl5nkX4k0yNtqaRbWYlDD6kDp95TktA== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~8.0.0" + +"@abp/aspnetcore.mvc.ui.theme.shared@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-8.0.0.tgz#4931d9bd40fba2d3e38d3a2a8da2d2e1c1198cb1" + integrity sha512-YPusLRaR6sBN13rAH/rewZv4GIM3bUsmMjz7o8qVK/3CYTx/iCAn7JSvNBbhCJT151RLmdYrahOsr8UUXx4k8Q== + dependencies: + "@abp/aspnetcore.mvc.ui" "~8.0.0" + "@abp/bootstrap" "~8.0.0" + "@abp/bootstrap-datepicker" "~8.0.0" + "@abp/bootstrap-daterangepicker" "~8.0.0" + "@abp/datatables.net-bs5" "~8.0.0" + "@abp/font-awesome" "~8.0.0" + "@abp/jquery-form" "~8.0.0" + "@abp/jquery-validation-unobtrusive" "~8.0.0" + "@abp/lodash" "~8.0.0" + "@abp/luxon" "~8.0.0" + "@abp/malihu-custom-scrollbar-plugin" "~8.0.0" + "@abp/moment" "~8.0.0" + "@abp/select2" "~8.0.0" + "@abp/sweetalert2" "~8.0.0" + "@abp/timeago" "~8.0.0" + "@abp/toastr" "~8.0.0" + +"@abp/aspnetcore.mvc.ui@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-8.0.0.tgz#9760a1e4be0e2632e11a3f570209b1eefdf81607" + integrity sha512-+WBwpQfDmhP64BVSjyyiqRENpn5EBgcmA7JVMfmdmEJTrzx9ma7WSbLd5QxUxawMSkcjjnK95c5JdMVZXdaL8g== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -43,175 +43,175 @@ merge-stream "^2.0.0" micromatch "^4.0.2" -"@abp/bootstrap-datepicker@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-8.0.0-rc.3.tgz#7656fef148c8bdf7993fdae937427564535dea74" - integrity sha512-qW1XQ2zL+/9f9+Q9Db3E5eIOD8Itjtr0KFAO59tY3G3WEwvCOS85pXJ/I17nLRRo/A2Na4kx4Q/jdYr3DkOgDQ== +"@abp/bootstrap-datepicker@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-8.0.0.tgz#458e0acaf6aedbfb03df692b9b2ec87b9fdad954" + integrity sha512-UetR0ldw0u5i2ohNpeI8+W0AGrov8tiglTTNyx8sF6WMGcCNCtU72jZCOc9/z/q91AijQrtdHIqpN/1B91YiMw== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap-daterangepicker@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-8.0.0-rc.3.tgz#b6eb599b198f58c9a0690d2f779548137e10889f" - integrity sha512-TnZdtV0JHweVrrXCJZjxz+Cbk0lYznzELaA6oBbikCPhzIr2XvLqyHuLvERrFVxq80BZGsF7xUgC2K/Tw/RA8w== +"@abp/bootstrap-daterangepicker@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-8.0.0.tgz#613d2984d0f3981e0270d337b360c27397dbc480" + integrity sha512-nQFDtCp1+EuUfnoRmMcGvOgd4yZPMqjsThiW3m2KIV2Y+YlT52mZLBVpqRBpC2993Bs8E9Zpp4R7ebHJgacePg== dependencies: bootstrap-daterangepicker "^3.1.0" -"@abp/bootstrap@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-8.0.0-rc.3.tgz#8865c2536c353b904e6e96cb70e4280fe9928412" - integrity sha512-h7rDAp3eBQwARAkEZfJU+IBTXEiLwi3I5CYFQ92QdX/mC66R1cX1gYY7pR5Wj5f68VS2pURnNxJnONtS3E/Cyw== +"@abp/bootstrap@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-8.0.0.tgz#7d679f88af98de6ac2c0725b86d43f9ce40c4f5b" + integrity sha512-JX6o8uMrsqiMMvbkDRePDqfPFHtWTuKhSTDa77ryp/AZYKOEvJfkdLZGZmYWy7UsB1RNXilth8kMyibqnw0CGg== dependencies: - "@abp/core" "~8.0.0-rc.3" + "@abp/core" "~8.0.0" bootstrap "^5.1.3" -"@abp/clipboard@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-8.0.0-rc.3.tgz#eb7211804967c97cf6678c42b7d756438ffcc22a" - integrity sha512-w9a1gJs8yZbeNkRQqSXxiOUqCLknh+5QM3CoVQudU46Kl4zh39ugPuEMKZhxcGaDsZWSTNuyMgUjzAWFhE/w6g== +"@abp/clipboard@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-8.0.0.tgz#cb597686e07e9ef68a09ebf7101498281939fb10" + integrity sha512-JonHbsCwJQ5iI45zy6lFu9kwXUYoRZC+t31N1w7fDMxekwPEjenBR4g33aGLIySTL7ExKiYjBsEVrCg8GKG/mg== dependencies: - "@abp/core" "~8.0.0-rc.3" + "@abp/core" "~8.0.0" clipboard "^2.0.8" -"@abp/core@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-8.0.0-rc.3.tgz#f399bc55c6ad20c2515a03bb9572c6a4499cfcf0" - integrity sha512-HUa0AfCDX3URnGWsZ/7aZMsXXQFjott05ebK9wF7QDcI7uInyMT5axlrQ/CniyU8GLaFEt3mdtLB7pOZzDnsRw== +"@abp/core@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-8.0.0.tgz#cc4d9c0da10fb922a4adea8df67f60bb02d95365" + integrity sha512-qM7jSTR2uAhjAcsaFNchA89rLBiiJpUsvDBFCz0SyOuFz5DYAHo1njlhICcVAHF7H3NxQfVIndGVSjvmqmLC7Q== dependencies: - "@abp/utils" "~8.0.0-rc.3" + "@abp/utils" "~8.0.0" -"@abp/datatables.net-bs5@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-8.0.0-rc.3.tgz#902d0770c54a5888f805cc97de0ed25d0c53dde9" - integrity sha512-gxYYBeEh81+R8SAh27uMm3paVffq+bYiQgUxpXNgEcyPGP2X7/hnzZNwViuI1t+IgpSuTf6AAt14db9eV6Masg== +"@abp/datatables.net-bs5@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-8.0.0.tgz#c874180ea85fd0b2598fde90e2207bea267870c6" + integrity sha512-8w4oXTQwFnb56NTpeXjUsITGeMtuxv18ZAPK8Zmw28s5uOoIV/d/bEp11hXPwSk3SrjlyLw0lDcZCItwD+W8DQ== dependencies: - "@abp/datatables.net" "~8.0.0-rc.3" + "@abp/datatables.net" "~8.0.0" datatables.net-bs5 "^1.11.4" -"@abp/datatables.net@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-8.0.0-rc.3.tgz#4ddfa9fe3246e72807c3b19307c7484af749f969" - integrity sha512-vQBenQsDxzryspNv0FEzpyUPBXddIkVhXUJ6tHc+IZ8q/+/2wUE0ZciSJm7qS/GQnGrYZv9wpIGbSRh/RgVvVA== +"@abp/datatables.net@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-8.0.0.tgz#09ef3575a611f6ec123d2a9d4d55b8c89e30d115" + integrity sha512-WmsAfQEGPWMTqHGbeiX3RVfIdfkrMOtUfJmR0JaYJMuQo3STmMSnzOgNMKviDeQdzplgoOOKp6j0OgIqcciowg== dependencies: - "@abp/jquery" "~8.0.0-rc.3" + "@abp/jquery" "~8.0.0" datatables.net "^1.11.4" -"@abp/font-awesome@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-8.0.0-rc.3.tgz#5f850c5479f48cf1c951de2354050d38fec6beab" - integrity sha512-GYwhoOThD5Bw0Ain5DkVXgHLpca83QGAy1T7I+6SmYyibYu5SdxV9ytD65tARH+dx9VpB3p9NeC5lRYuWdPzCQ== +"@abp/font-awesome@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-8.0.0.tgz#ce7debf296fddbdf79139147f6c9761ec68b6587" + integrity sha512-qeihwiim6YMcL3KfHU0CViVl5MamQXbTp4606r/hKQejCSbdqR9XupYVbTAyojXLCCRqfnDVuXwqWCFTKVbQow== dependencies: - "@abp/core" "~8.0.0-rc.3" + "@abp/core" "~8.0.0" "@fortawesome/fontawesome-free" "^5.15.4" -"@abp/jquery-form@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-8.0.0-rc.3.tgz#e414a0599448c37df3197af77a91c9a66d3ef77f" - integrity sha512-w58Zi28Ci/0DIzMzC/ihu+np7G2Hv+9DLrhLZKddEI9WisFuxao5EAhKseq7LWMPzG/QSw8skLZAY12YrEtp6w== +"@abp/jquery-form@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-8.0.0.tgz#466343a87baa2f53fb57cf377e0fb0c07ff02bb9" + integrity sha512-xinU2Yu0YWNjoaYnBm+OoN8oNX/BDPzbqGtjlH1s5I+M/S0yf/qlPEzvzL5+epBlt0GKza/SqwSsuAVsfuFrKQ== dependencies: - "@abp/jquery" "~8.0.0-rc.3" + "@abp/jquery" "~8.0.0" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-8.0.0-rc.3.tgz#a3ab6b5078449ba94c7206ed96286b902a766b6b" - integrity sha512-Gvmujjhrvqzu51fGSTAssxGVu4XolTLEwW3qR0zwWCc0+kXF/AXB98DD66A+hmGau54sTKRXVmBTpc4J3KpoWg== +"@abp/jquery-validation-unobtrusive@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-8.0.0.tgz#a641cc4bff6de178ed3429987017c00bf68e81f9" + integrity sha512-nUcktSW5tPifa6yNX9Y8zCi0VCUJklVSSd4f3eKfjU8SIcWq1eNfR6R+MHRZEVVmyB7xeYMBlc0yjxVYwUUlEw== dependencies: - "@abp/jquery-validation" "~8.0.0-rc.3" + "@abp/jquery-validation" "~8.0.0" jquery-validation-unobtrusive "^3.2.12" -"@abp/jquery-validation@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-8.0.0-rc.3.tgz#eee433a5fc076d92d734e7cea4bce00fbaacc963" - integrity sha512-Dq5Ru5WWqDKIDzetUicJzp6DHkGhNNHcjYyHF3n9o9+3T4+6dgRbXy5OYjIv9CADfui55rzckWH57FbCExiUSw== +"@abp/jquery-validation@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-8.0.0.tgz#674fe49294c622b07b843ab8721a5ae32024b7b9" + integrity sha512-B/aFZsKbILP4FPuc3eU17APkbBWJhjWXSQCiSXbHpDZYJN5km1l52gpuWR+7Yo5CXnAP06N+zUYHf86tNCZyBw== dependencies: - "@abp/jquery" "~8.0.0-rc.3" + "@abp/jquery" "~8.0.0" jquery-validation "^1.19.3" -"@abp/jquery@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-8.0.0-rc.3.tgz#e230c5db7a9aff526564c1b4b1820cd983a10726" - integrity sha512-o9xBZt55fT+ZYqmLjQ9dahtIgsRqz4VrXUsLgyKkUzr2p3gtgXCQqKfkIpdeE5aE3p1/T+et5U6FOMUCRZegvg== +"@abp/jquery@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-8.0.0.tgz#67bf40f87c335b1cba73f406f0102f35e820fd84" + integrity sha512-QhjBz/s1hVJcsYCbuZwNOtOCvsC93OMzMJHoZ2COaKkOZlt6tiRHhawdYVZloKDaMdfcd5tvqbkNhXtQ4K9AXg== dependencies: - "@abp/core" "~8.0.0-rc.3" + "@abp/core" "~8.0.0" jquery "~3.6.0" -"@abp/lodash@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-8.0.0-rc.3.tgz#5bf8019fa0e69ec1fac6ccacb1625b8564ed8944" - integrity sha512-Mo2r+bNZXdmM7Ri8SBi+M4OsfnLYejbQmcJ7wkDUPb4B3cDJtTB4YuJn8NWBBjaXwi08Myt1MvSFnT04N/t8Eg== +"@abp/lodash@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-8.0.0.tgz#4c809c4755ed11e70875d30f04312b0ff10a2dbb" + integrity sha512-V0y4k9HlggBvJtK5m35Gkori2IN0E4ec1JpBgGeaOStcvThAL1EtXip1kqPORMbC4wm+bgpT0QWhiqCeKBFoLg== dependencies: - "@abp/core" "~8.0.0-rc.3" + "@abp/core" "~8.0.0" lodash "^4.17.21" -"@abp/luxon@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-8.0.0-rc.3.tgz#cc0adcab4f1fa6bea2055be478ec9a86d00f1ba6" - integrity sha512-vKwfpAPL7GUJLvCpsJoJ5eXRH5Ypciez9J6QiK2Mjx1NauxR514wYtBqM/2I7hoJ4Oc9XvrAjcIon3r21dvCqQ== +"@abp/luxon@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-8.0.0.tgz#13a1145dc79d908f3398944c4bf0fb0457d94217" + integrity sha512-ZEGegnr+KCczPUrxxPmBUKGyiWkjAa4hDWb06mozdVP14zHQbbZfyKKXwrPfanwcj96Ui9i2klnrKPXuyppBJw== dependencies: - "@abp/core" "~8.0.0-rc.3" + "@abp/core" "~8.0.0" luxon "^2.3.0" -"@abp/malihu-custom-scrollbar-plugin@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-8.0.0-rc.3.tgz#195c897dced708de627941ce017e047c62191a56" - integrity sha512-svD7YJzHvufjmhoCKgQcjApIdVcGJwWhpsK260lwLiCvkdNDhxFjH+jfChhLMXPYpOnozrgrVx56oJqDWDrU3A== +"@abp/malihu-custom-scrollbar-plugin@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-8.0.0.tgz#fd4428d66ee38b4b2c02c0e300d5bd75dcda414d" + integrity sha512-jrD4AHd2Pdr28Ps3QtEDVDMSnK7xSumCKKSJl0R5SJcMyskByJ6gwydYqMGeQkCVnk1ztEZFfJNhOO35A+SBWA== dependencies: - "@abp/core" "~8.0.0-rc.3" + "@abp/core" "~8.0.0" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/moment@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-8.0.0-rc.3.tgz#7e2a74cd23c434b45f903b4f826f807a31b5982b" - integrity sha512-E0mob3xj0frslPovdHbsdaFB5oLimORFA86uQJ5KVSEaDOXYKuEqUomMcqg2LRVdzzKd7ai6QkuH3p7qbJonww== +"@abp/moment@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-8.0.0.tgz#26d0932bf4dac4dee25d0940eea50fcfeb37a69b" + integrity sha512-fgh0pXdxPi5Y9VnC6f12kwJmGQL4dowZtVp8lbNEjnCFiocAhEOOuN9gkTGk8y0xEhXroliW7wbaB2MJPINKhg== dependencies: moment "^2.9.0" -"@abp/prismjs@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-8.0.0-rc.3.tgz#237bb9c55ad1b202418c5bd1452e73a101706c25" - integrity sha512-adgMYfZhK7aPpxNdQhdOqE7oOvXUDq5qqhIVOVzmrQ4Dy/uCItT/Zq0yqqYLr2d7D17vRzfBM7R8ubgxnsMfbw== +"@abp/prismjs@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-8.0.0.tgz#174ccbd33d47bb687fe35bed35f7c834ca5ee328" + integrity sha512-Udx3pdlUU2MO+di1BZgG3jKNIeImWoPySmBA8YaStqsAkD/yb+YyUD2QmCUfI55kqzRyhAKE467ZusDFFOY20w== dependencies: - "@abp/clipboard" "~8.0.0-rc.3" - "@abp/core" "~8.0.0-rc.3" + "@abp/clipboard" "~8.0.0" + "@abp/core" "~8.0.0" prismjs "^1.26.0" -"@abp/select2@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-8.0.0-rc.3.tgz#77dd12185f6d03553230c7516e40603310f28f4f" - integrity sha512-9O+IHIB6n+WfLzh6SVyC01OIU3qWzhoT3DofAc329cyI73NJSPuOvmkQtQVYWnkAI/6+B6qYF3A4umD/EoPouQ== +"@abp/select2@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-8.0.0.tgz#4a4ebd63f2b79d663dab709decb2f1b1f510950f" + integrity sha512-kl3of/L0GSHyxt6WYnBDdBqqtoUscY9qubaMHZrk9y1zOVXOM0JUQoyu2KDQhOZm7iCu34ATX47NAw59eb9Omw== dependencies: - "@abp/core" "~8.0.0-rc.3" + "@abp/core" "~8.0.0" select2 "^4.0.13" -"@abp/sweetalert2@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-8.0.0-rc.3.tgz#021afc3457cf72c2b6dd298bb981faa741fc1293" - integrity sha512-b67UC/uZ9gWt2X5MeUnKg98FkhvJ+Azsq4PHcFBdUTZL/5ItJ8F6UsOTpT7Z7cUXFmJn/RTcPrgQDsK63CZltw== +"@abp/sweetalert2@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-8.0.0.tgz#369c04e433eead8e7171cd84298bb3e4ecb14050" + integrity sha512-riaHcFdozJ8R/sAdhtnfa7GHhWjptnQODrZ2bqBkcKuw2d8LKQ+2v3tcflaWWHwsOmGVbki3EhJJPdFWOtli/w== dependencies: - "@abp/core" "~8.0.0-rc.3" + "@abp/core" "~8.0.0" sweetalert2 "^11.3.6" -"@abp/timeago@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-8.0.0-rc.3.tgz#b3e63ff94bce8ad59b02d8c4490f580e60630f00" - integrity sha512-Pmm6Jj7VT1PW/Wfh1ozFFIdpFvH8cGKfHU2sYgwHuw4U9YQUd8ZTIDaZRMhuN9QqnGlmFtUZsXzoIMZJDvOq5w== +"@abp/timeago@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-8.0.0.tgz#93947505b68f369df10bb38cd8c05376e1c1cbcb" + integrity sha512-Q+e5CvvFAU21hGuIXREtIeEl8WlGpsNqK+QbCRbjNvM0HgCPH/gRQNpAV+S7TqaI5W2Uggfcsd7GvTH3GtMv7g== dependencies: - "@abp/jquery" "~8.0.0-rc.3" + "@abp/jquery" "~8.0.0" timeago "^1.6.7" -"@abp/toastr@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-8.0.0-rc.3.tgz#5b0d267951e025ca77a611c2fa9b606e92bd830a" - integrity sha512-hfDzyMSgbjriAALdrcnx/qonN2lquF7HM4QH8nt1E8/vWOkd8bUL/kyAoIL8rfS94zr62UUZTEDezoCfHwif+w== +"@abp/toastr@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-8.0.0.tgz#d409fec3fb1e5a886d0a03b0f58449a2f8a563d9" + integrity sha512-7evxuHJ+ZJtyCoIv0+HY/av5FC8Y5UzBtVjEB8Ol8RvhH5PBkErguPg9qPZvYcpHjJlYN+iKYAuXdQLZdXHwUQ== dependencies: - "@abp/jquery" "~8.0.0-rc.3" + "@abp/jquery" "~8.0.0" toastr "^2.1.4" -"@abp/utils@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-8.0.0-rc.3.tgz#01491fb943eb3a41d4ddbe854e5330b66807d522" - integrity sha512-cuTwsy+FEh3dEnlDDi0s8d3qpWgP3rwqWgg5LlMF0pY/OobJcCLtuo5Zy9bncKL3wFHXVEk6UviYcNkSOkzvtQ== +"@abp/utils@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-8.0.0.tgz#3de8e34e97e10ac9c2b8c1c194bf6b034fde302f" + integrity sha512-F8LsEedqkngbeFsszdZi1lshFqr++anyJFBoaRsKRw6hJPDPrYtHoOWEQ+p7QcH5UVVzVywQUGMNM+gmAT0vGQ== dependencies: just-compare "^2.3.0" diff --git a/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain.Shared/Volo/Abp/BlobStoring/Database/Localization/de.json b/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain.Shared/Volo/Abp/BlobStoring/Database/Localization/de.json new file mode 100644 index 0000000000..424fb79ad0 --- /dev/null +++ b/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain.Shared/Volo/Abp/BlobStoring/Database/Localization/de.json @@ -0,0 +1,6 @@ +{ + "culture": "de", + "texts": { + "MyAccount": "Mein Konto" + } +} \ No newline at end of file diff --git a/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain.Shared/Volo/Abp/BlobStoring/Database/Localization/hr.json b/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain.Shared/Volo/Abp/BlobStoring/Database/Localization/hr.json new file mode 100644 index 0000000000..e37815c622 --- /dev/null +++ b/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain.Shared/Volo/Abp/BlobStoring/Database/Localization/hr.json @@ -0,0 +1,6 @@ +{ + "culture": "hr", + "texts": { + "MyAccount": "Moj račun" + } +} \ No newline at end of file diff --git a/modules/blogging/app/Volo.BloggingTestApp/package.json b/modules/blogging/app/Volo.BloggingTestApp/package.json index ab204c945d..d4c175892a 100644 --- a/modules/blogging/app/Volo.BloggingTestApp/package.json +++ b/modules/blogging/app/Volo.BloggingTestApp/package.json @@ -3,7 +3,7 @@ "name": "volo.blogtestapp", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "~8.0.0-rc.3", - "@abp/blogging": "~8.0.0-rc.3" + "@abp/aspnetcore.mvc.ui.theme.basic": "~8.0.0", + "@abp/blogging": "~8.0.0" } } diff --git a/modules/blogging/app/Volo.BloggingTestApp/yarn.lock b/modules/blogging/app/Volo.BloggingTestApp/yarn.lock index da4259626e..2ea0f18895 100644 --- a/modules/blogging/app/Volo.BloggingTestApp/yarn.lock +++ b/modules/blogging/app/Volo.BloggingTestApp/yarn.lock @@ -2,39 +2,39 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-8.0.0-rc.3.tgz#637ea220c9f988c1d0e1b152928f4409696439f2" - integrity sha512-xFJkcC2Oa8vLqMW0gU/3nXHsdFZOQq8+o9gUeLqDAhHZomnvEWsoivcd+LZs0xSDgQOee7N9h2buv9ERBoYGiA== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~8.0.0-rc.3" - -"@abp/aspnetcore.mvc.ui.theme.shared@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-8.0.0-rc.3.tgz#88904633feb5ce7dface4d27e9a31f4e5ace6b30" - integrity sha512-gMYI+xz/0JDgW2U7T3Lesx1o1U+Y+7zG/jVZO5FuMtlrsYhvT6V5BsKa9q/N7kSR0tfK8vsjblMBobqvbmG3SQ== - dependencies: - "@abp/aspnetcore.mvc.ui" "~8.0.0-rc.3" - "@abp/bootstrap" "~8.0.0-rc.3" - "@abp/bootstrap-datepicker" "~8.0.0-rc.3" - "@abp/bootstrap-daterangepicker" "~8.0.0-rc.3" - "@abp/datatables.net-bs5" "~8.0.0-rc.3" - "@abp/font-awesome" "~8.0.0-rc.3" - "@abp/jquery-form" "~8.0.0-rc.3" - "@abp/jquery-validation-unobtrusive" "~8.0.0-rc.3" - "@abp/lodash" "~8.0.0-rc.3" - "@abp/luxon" "~8.0.0-rc.3" - "@abp/malihu-custom-scrollbar-plugin" "~8.0.0-rc.3" - "@abp/moment" "~8.0.0-rc.3" - "@abp/select2" "~8.0.0-rc.3" - "@abp/sweetalert2" "~8.0.0-rc.3" - "@abp/timeago" "~8.0.0-rc.3" - "@abp/toastr" "~8.0.0-rc.3" - -"@abp/aspnetcore.mvc.ui@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-8.0.0-rc.3.tgz#09402ed4e7504c09b49a84d6ee590a5c87017ab8" - integrity sha512-82GfU8DtReq5RTrb2Fl0UHm+vEO0PvC/6DyFHm57nyWiL2dKByUqLd8NXQz+gqubWOA+IvJoLehbcC6iD+Y0VQ== +"@abp/aspnetcore.mvc.ui.theme.basic@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-8.0.0.tgz#c58d15186ad9842834c953e4d712009597ead5c2" + integrity sha512-d43CG48iS8vQvA85tSK7OlSHdcC9JuBT7mpN7DlLViiQewVeoKwdKkMhl5nkX4k0yNtqaRbWYlDD6kDp95TktA== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~8.0.0" + +"@abp/aspnetcore.mvc.ui.theme.shared@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-8.0.0.tgz#4931d9bd40fba2d3e38d3a2a8da2d2e1c1198cb1" + integrity sha512-YPusLRaR6sBN13rAH/rewZv4GIM3bUsmMjz7o8qVK/3CYTx/iCAn7JSvNBbhCJT151RLmdYrahOsr8UUXx4k8Q== + dependencies: + "@abp/aspnetcore.mvc.ui" "~8.0.0" + "@abp/bootstrap" "~8.0.0" + "@abp/bootstrap-datepicker" "~8.0.0" + "@abp/bootstrap-daterangepicker" "~8.0.0" + "@abp/datatables.net-bs5" "~8.0.0" + "@abp/font-awesome" "~8.0.0" + "@abp/jquery-form" "~8.0.0" + "@abp/jquery-validation-unobtrusive" "~8.0.0" + "@abp/lodash" "~8.0.0" + "@abp/luxon" "~8.0.0" + "@abp/malihu-custom-scrollbar-plugin" "~8.0.0" + "@abp/moment" "~8.0.0" + "@abp/select2" "~8.0.0" + "@abp/sweetalert2" "~8.0.0" + "@abp/timeago" "~8.0.0" + "@abp/toastr" "~8.0.0" + +"@abp/aspnetcore.mvc.ui@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-8.0.0.tgz#9760a1e4be0e2632e11a3f570209b1eefdf81607" + integrity sha512-+WBwpQfDmhP64BVSjyyiqRENpn5EBgcmA7JVMfmdmEJTrzx9ma7WSbLd5QxUxawMSkcjjnK95c5JdMVZXdaL8g== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -43,201 +43,201 @@ merge-stream "^2.0.0" micromatch "^4.0.2" -"@abp/blogging@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/blogging/-/blogging-8.0.0-rc.3.tgz#f8b4b1e70555c67e5796ea8bf226e26b50e5f526" - integrity sha512-55Xo1/092Y4GBGhJbbo57JkiJS6x6bBNLmCwdJ3/Pr8AasHZD+enm/wyWC7mlABU/gyAZKyj151jbSui3qp8jA== +"@abp/blogging@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/blogging/-/blogging-8.0.0.tgz#25f805de6bc3ba9f26ba49798e72168950b8b97c" + integrity sha512-N56rtJiAontTMy6M/vqB/n46xZF3FCp1Q0d7/E4ObwmkBRvreN/Zq+zfbPxfvRXodHWAogE6h73vxbixGFnsuQ== dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~8.0.0-rc.3" - "@abp/owl.carousel" "~8.0.0-rc.3" - "@abp/prismjs" "~8.0.0-rc.3" - "@abp/tui-editor" "~8.0.0-rc.3" + "@abp/aspnetcore.mvc.ui.theme.shared" "~8.0.0" + "@abp/owl.carousel" "~8.0.0" + "@abp/prismjs" "~8.0.0" + "@abp/tui-editor" "~8.0.0" -"@abp/bootstrap-datepicker@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-8.0.0-rc.3.tgz#7656fef148c8bdf7993fdae937427564535dea74" - integrity sha512-qW1XQ2zL+/9f9+Q9Db3E5eIOD8Itjtr0KFAO59tY3G3WEwvCOS85pXJ/I17nLRRo/A2Na4kx4Q/jdYr3DkOgDQ== +"@abp/bootstrap-datepicker@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-8.0.0.tgz#458e0acaf6aedbfb03df692b9b2ec87b9fdad954" + integrity sha512-UetR0ldw0u5i2ohNpeI8+W0AGrov8tiglTTNyx8sF6WMGcCNCtU72jZCOc9/z/q91AijQrtdHIqpN/1B91YiMw== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap-daterangepicker@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-8.0.0-rc.3.tgz#b6eb599b198f58c9a0690d2f779548137e10889f" - integrity sha512-TnZdtV0JHweVrrXCJZjxz+Cbk0lYznzELaA6oBbikCPhzIr2XvLqyHuLvERrFVxq80BZGsF7xUgC2K/Tw/RA8w== +"@abp/bootstrap-daterangepicker@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-8.0.0.tgz#613d2984d0f3981e0270d337b360c27397dbc480" + integrity sha512-nQFDtCp1+EuUfnoRmMcGvOgd4yZPMqjsThiW3m2KIV2Y+YlT52mZLBVpqRBpC2993Bs8E9Zpp4R7ebHJgacePg== dependencies: bootstrap-daterangepicker "^3.1.0" -"@abp/bootstrap@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-8.0.0-rc.3.tgz#8865c2536c353b904e6e96cb70e4280fe9928412" - integrity sha512-h7rDAp3eBQwARAkEZfJU+IBTXEiLwi3I5CYFQ92QdX/mC66R1cX1gYY7pR5Wj5f68VS2pURnNxJnONtS3E/Cyw== +"@abp/bootstrap@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-8.0.0.tgz#7d679f88af98de6ac2c0725b86d43f9ce40c4f5b" + integrity sha512-JX6o8uMrsqiMMvbkDRePDqfPFHtWTuKhSTDa77ryp/AZYKOEvJfkdLZGZmYWy7UsB1RNXilth8kMyibqnw0CGg== dependencies: - "@abp/core" "~8.0.0-rc.3" + "@abp/core" "~8.0.0" bootstrap "^5.1.3" -"@abp/clipboard@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-8.0.0-rc.3.tgz#eb7211804967c97cf6678c42b7d756438ffcc22a" - integrity sha512-w9a1gJs8yZbeNkRQqSXxiOUqCLknh+5QM3CoVQudU46Kl4zh39ugPuEMKZhxcGaDsZWSTNuyMgUjzAWFhE/w6g== +"@abp/clipboard@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-8.0.0.tgz#cb597686e07e9ef68a09ebf7101498281939fb10" + integrity sha512-JonHbsCwJQ5iI45zy6lFu9kwXUYoRZC+t31N1w7fDMxekwPEjenBR4g33aGLIySTL7ExKiYjBsEVrCg8GKG/mg== dependencies: - "@abp/core" "~8.0.0-rc.3" + "@abp/core" "~8.0.0" clipboard "^2.0.8" -"@abp/core@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-8.0.0-rc.3.tgz#f399bc55c6ad20c2515a03bb9572c6a4499cfcf0" - integrity sha512-HUa0AfCDX3URnGWsZ/7aZMsXXQFjott05ebK9wF7QDcI7uInyMT5axlrQ/CniyU8GLaFEt3mdtLB7pOZzDnsRw== +"@abp/core@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-8.0.0.tgz#cc4d9c0da10fb922a4adea8df67f60bb02d95365" + integrity sha512-qM7jSTR2uAhjAcsaFNchA89rLBiiJpUsvDBFCz0SyOuFz5DYAHo1njlhICcVAHF7H3NxQfVIndGVSjvmqmLC7Q== dependencies: - "@abp/utils" "~8.0.0-rc.3" + "@abp/utils" "~8.0.0" -"@abp/datatables.net-bs5@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-8.0.0-rc.3.tgz#902d0770c54a5888f805cc97de0ed25d0c53dde9" - integrity sha512-gxYYBeEh81+R8SAh27uMm3paVffq+bYiQgUxpXNgEcyPGP2X7/hnzZNwViuI1t+IgpSuTf6AAt14db9eV6Masg== +"@abp/datatables.net-bs5@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-8.0.0.tgz#c874180ea85fd0b2598fde90e2207bea267870c6" + integrity sha512-8w4oXTQwFnb56NTpeXjUsITGeMtuxv18ZAPK8Zmw28s5uOoIV/d/bEp11hXPwSk3SrjlyLw0lDcZCItwD+W8DQ== dependencies: - "@abp/datatables.net" "~8.0.0-rc.3" + "@abp/datatables.net" "~8.0.0" datatables.net-bs5 "^1.11.4" -"@abp/datatables.net@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-8.0.0-rc.3.tgz#4ddfa9fe3246e72807c3b19307c7484af749f969" - integrity sha512-vQBenQsDxzryspNv0FEzpyUPBXddIkVhXUJ6tHc+IZ8q/+/2wUE0ZciSJm7qS/GQnGrYZv9wpIGbSRh/RgVvVA== +"@abp/datatables.net@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-8.0.0.tgz#09ef3575a611f6ec123d2a9d4d55b8c89e30d115" + integrity sha512-WmsAfQEGPWMTqHGbeiX3RVfIdfkrMOtUfJmR0JaYJMuQo3STmMSnzOgNMKviDeQdzplgoOOKp6j0OgIqcciowg== dependencies: - "@abp/jquery" "~8.0.0-rc.3" + "@abp/jquery" "~8.0.0" datatables.net "^1.11.4" -"@abp/font-awesome@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-8.0.0-rc.3.tgz#5f850c5479f48cf1c951de2354050d38fec6beab" - integrity sha512-GYwhoOThD5Bw0Ain5DkVXgHLpca83QGAy1T7I+6SmYyibYu5SdxV9ytD65tARH+dx9VpB3p9NeC5lRYuWdPzCQ== +"@abp/font-awesome@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-8.0.0.tgz#ce7debf296fddbdf79139147f6c9761ec68b6587" + integrity sha512-qeihwiim6YMcL3KfHU0CViVl5MamQXbTp4606r/hKQejCSbdqR9XupYVbTAyojXLCCRqfnDVuXwqWCFTKVbQow== dependencies: - "@abp/core" "~8.0.0-rc.3" + "@abp/core" "~8.0.0" "@fortawesome/fontawesome-free" "^5.15.4" -"@abp/jquery-form@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-8.0.0-rc.3.tgz#e414a0599448c37df3197af77a91c9a66d3ef77f" - integrity sha512-w58Zi28Ci/0DIzMzC/ihu+np7G2Hv+9DLrhLZKddEI9WisFuxao5EAhKseq7LWMPzG/QSw8skLZAY12YrEtp6w== +"@abp/jquery-form@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-8.0.0.tgz#466343a87baa2f53fb57cf377e0fb0c07ff02bb9" + integrity sha512-xinU2Yu0YWNjoaYnBm+OoN8oNX/BDPzbqGtjlH1s5I+M/S0yf/qlPEzvzL5+epBlt0GKza/SqwSsuAVsfuFrKQ== dependencies: - "@abp/jquery" "~8.0.0-rc.3" + "@abp/jquery" "~8.0.0" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-8.0.0-rc.3.tgz#a3ab6b5078449ba94c7206ed96286b902a766b6b" - integrity sha512-Gvmujjhrvqzu51fGSTAssxGVu4XolTLEwW3qR0zwWCc0+kXF/AXB98DD66A+hmGau54sTKRXVmBTpc4J3KpoWg== +"@abp/jquery-validation-unobtrusive@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-8.0.0.tgz#a641cc4bff6de178ed3429987017c00bf68e81f9" + integrity sha512-nUcktSW5tPifa6yNX9Y8zCi0VCUJklVSSd4f3eKfjU8SIcWq1eNfR6R+MHRZEVVmyB7xeYMBlc0yjxVYwUUlEw== dependencies: - "@abp/jquery-validation" "~8.0.0-rc.3" + "@abp/jquery-validation" "~8.0.0" jquery-validation-unobtrusive "^3.2.12" -"@abp/jquery-validation@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-8.0.0-rc.3.tgz#eee433a5fc076d92d734e7cea4bce00fbaacc963" - integrity sha512-Dq5Ru5WWqDKIDzetUicJzp6DHkGhNNHcjYyHF3n9o9+3T4+6dgRbXy5OYjIv9CADfui55rzckWH57FbCExiUSw== +"@abp/jquery-validation@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-8.0.0.tgz#674fe49294c622b07b843ab8721a5ae32024b7b9" + integrity sha512-B/aFZsKbILP4FPuc3eU17APkbBWJhjWXSQCiSXbHpDZYJN5km1l52gpuWR+7Yo5CXnAP06N+zUYHf86tNCZyBw== dependencies: - "@abp/jquery" "~8.0.0-rc.3" + "@abp/jquery" "~8.0.0" jquery-validation "^1.19.3" -"@abp/jquery@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-8.0.0-rc.3.tgz#e230c5db7a9aff526564c1b4b1820cd983a10726" - integrity sha512-o9xBZt55fT+ZYqmLjQ9dahtIgsRqz4VrXUsLgyKkUzr2p3gtgXCQqKfkIpdeE5aE3p1/T+et5U6FOMUCRZegvg== +"@abp/jquery@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-8.0.0.tgz#67bf40f87c335b1cba73f406f0102f35e820fd84" + integrity sha512-QhjBz/s1hVJcsYCbuZwNOtOCvsC93OMzMJHoZ2COaKkOZlt6tiRHhawdYVZloKDaMdfcd5tvqbkNhXtQ4K9AXg== dependencies: - "@abp/core" "~8.0.0-rc.3" + "@abp/core" "~8.0.0" jquery "~3.6.0" -"@abp/lodash@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-8.0.0-rc.3.tgz#5bf8019fa0e69ec1fac6ccacb1625b8564ed8944" - integrity sha512-Mo2r+bNZXdmM7Ri8SBi+M4OsfnLYejbQmcJ7wkDUPb4B3cDJtTB4YuJn8NWBBjaXwi08Myt1MvSFnT04N/t8Eg== +"@abp/lodash@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-8.0.0.tgz#4c809c4755ed11e70875d30f04312b0ff10a2dbb" + integrity sha512-V0y4k9HlggBvJtK5m35Gkori2IN0E4ec1JpBgGeaOStcvThAL1EtXip1kqPORMbC4wm+bgpT0QWhiqCeKBFoLg== dependencies: - "@abp/core" "~8.0.0-rc.3" + "@abp/core" "~8.0.0" lodash "^4.17.21" -"@abp/luxon@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-8.0.0-rc.3.tgz#cc0adcab4f1fa6bea2055be478ec9a86d00f1ba6" - integrity sha512-vKwfpAPL7GUJLvCpsJoJ5eXRH5Ypciez9J6QiK2Mjx1NauxR514wYtBqM/2I7hoJ4Oc9XvrAjcIon3r21dvCqQ== +"@abp/luxon@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-8.0.0.tgz#13a1145dc79d908f3398944c4bf0fb0457d94217" + integrity sha512-ZEGegnr+KCczPUrxxPmBUKGyiWkjAa4hDWb06mozdVP14zHQbbZfyKKXwrPfanwcj96Ui9i2klnrKPXuyppBJw== dependencies: - "@abp/core" "~8.0.0-rc.3" + "@abp/core" "~8.0.0" luxon "^2.3.0" -"@abp/malihu-custom-scrollbar-plugin@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-8.0.0-rc.3.tgz#195c897dced708de627941ce017e047c62191a56" - integrity sha512-svD7YJzHvufjmhoCKgQcjApIdVcGJwWhpsK260lwLiCvkdNDhxFjH+jfChhLMXPYpOnozrgrVx56oJqDWDrU3A== +"@abp/malihu-custom-scrollbar-plugin@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-8.0.0.tgz#fd4428d66ee38b4b2c02c0e300d5bd75dcda414d" + integrity sha512-jrD4AHd2Pdr28Ps3QtEDVDMSnK7xSumCKKSJl0R5SJcMyskByJ6gwydYqMGeQkCVnk1ztEZFfJNhOO35A+SBWA== dependencies: - "@abp/core" "~8.0.0-rc.3" + "@abp/core" "~8.0.0" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/moment@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-8.0.0-rc.3.tgz#7e2a74cd23c434b45f903b4f826f807a31b5982b" - integrity sha512-E0mob3xj0frslPovdHbsdaFB5oLimORFA86uQJ5KVSEaDOXYKuEqUomMcqg2LRVdzzKd7ai6QkuH3p7qbJonww== +"@abp/moment@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-8.0.0.tgz#26d0932bf4dac4dee25d0940eea50fcfeb37a69b" + integrity sha512-fgh0pXdxPi5Y9VnC6f12kwJmGQL4dowZtVp8lbNEjnCFiocAhEOOuN9gkTGk8y0xEhXroliW7wbaB2MJPINKhg== dependencies: moment "^2.9.0" -"@abp/owl.carousel@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/owl.carousel/-/owl.carousel-8.0.0-rc.3.tgz#db3e9590ae4df9b567584dce45132e02caaf476b" - integrity sha512-tbEu4mm8w4RjmLP+rivasVd4KKWSiVhjM7p6H717sMDzOQ4GEelsda9m69Vc+8k5t/Xfu+ilBEt0vZ0OmJC0ZQ== +"@abp/owl.carousel@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/owl.carousel/-/owl.carousel-8.0.0.tgz#250ba286ad0676341d1ecafca1a0138eb77cff2c" + integrity sha512-FeVLf3Y84QQWNWJfX405pWTAiub7v4yObnZW1lpBRUOaAozJpDN7RYfsqnO9vU9xZbCZZOTNFmpY5AlLGXmxUg== dependencies: - "@abp/core" "~8.0.0-rc.3" + "@abp/core" "~8.0.0" owl.carousel "^2.3.4" -"@abp/prismjs@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-8.0.0-rc.3.tgz#237bb9c55ad1b202418c5bd1452e73a101706c25" - integrity sha512-adgMYfZhK7aPpxNdQhdOqE7oOvXUDq5qqhIVOVzmrQ4Dy/uCItT/Zq0yqqYLr2d7D17vRzfBM7R8ubgxnsMfbw== +"@abp/prismjs@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-8.0.0.tgz#174ccbd33d47bb687fe35bed35f7c834ca5ee328" + integrity sha512-Udx3pdlUU2MO+di1BZgG3jKNIeImWoPySmBA8YaStqsAkD/yb+YyUD2QmCUfI55kqzRyhAKE467ZusDFFOY20w== dependencies: - "@abp/clipboard" "~8.0.0-rc.3" - "@abp/core" "~8.0.0-rc.3" + "@abp/clipboard" "~8.0.0" + "@abp/core" "~8.0.0" prismjs "^1.26.0" -"@abp/select2@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-8.0.0-rc.3.tgz#77dd12185f6d03553230c7516e40603310f28f4f" - integrity sha512-9O+IHIB6n+WfLzh6SVyC01OIU3qWzhoT3DofAc329cyI73NJSPuOvmkQtQVYWnkAI/6+B6qYF3A4umD/EoPouQ== +"@abp/select2@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-8.0.0.tgz#4a4ebd63f2b79d663dab709decb2f1b1f510950f" + integrity sha512-kl3of/L0GSHyxt6WYnBDdBqqtoUscY9qubaMHZrk9y1zOVXOM0JUQoyu2KDQhOZm7iCu34ATX47NAw59eb9Omw== dependencies: - "@abp/core" "~8.0.0-rc.3" + "@abp/core" "~8.0.0" select2 "^4.0.13" -"@abp/sweetalert2@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-8.0.0-rc.3.tgz#021afc3457cf72c2b6dd298bb981faa741fc1293" - integrity sha512-b67UC/uZ9gWt2X5MeUnKg98FkhvJ+Azsq4PHcFBdUTZL/5ItJ8F6UsOTpT7Z7cUXFmJn/RTcPrgQDsK63CZltw== +"@abp/sweetalert2@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-8.0.0.tgz#369c04e433eead8e7171cd84298bb3e4ecb14050" + integrity sha512-riaHcFdozJ8R/sAdhtnfa7GHhWjptnQODrZ2bqBkcKuw2d8LKQ+2v3tcflaWWHwsOmGVbki3EhJJPdFWOtli/w== dependencies: - "@abp/core" "~8.0.0-rc.3" + "@abp/core" "~8.0.0" sweetalert2 "^11.3.6" -"@abp/timeago@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-8.0.0-rc.3.tgz#b3e63ff94bce8ad59b02d8c4490f580e60630f00" - integrity sha512-Pmm6Jj7VT1PW/Wfh1ozFFIdpFvH8cGKfHU2sYgwHuw4U9YQUd8ZTIDaZRMhuN9QqnGlmFtUZsXzoIMZJDvOq5w== +"@abp/timeago@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-8.0.0.tgz#93947505b68f369df10bb38cd8c05376e1c1cbcb" + integrity sha512-Q+e5CvvFAU21hGuIXREtIeEl8WlGpsNqK+QbCRbjNvM0HgCPH/gRQNpAV+S7TqaI5W2Uggfcsd7GvTH3GtMv7g== dependencies: - "@abp/jquery" "~8.0.0-rc.3" + "@abp/jquery" "~8.0.0" timeago "^1.6.7" -"@abp/toastr@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-8.0.0-rc.3.tgz#5b0d267951e025ca77a611c2fa9b606e92bd830a" - integrity sha512-hfDzyMSgbjriAALdrcnx/qonN2lquF7HM4QH8nt1E8/vWOkd8bUL/kyAoIL8rfS94zr62UUZTEDezoCfHwif+w== +"@abp/toastr@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-8.0.0.tgz#d409fec3fb1e5a886d0a03b0f58449a2f8a563d9" + integrity sha512-7evxuHJ+ZJtyCoIv0+HY/av5FC8Y5UzBtVjEB8Ol8RvhH5PBkErguPg9qPZvYcpHjJlYN+iKYAuXdQLZdXHwUQ== dependencies: - "@abp/jquery" "~8.0.0-rc.3" + "@abp/jquery" "~8.0.0" toastr "^2.1.4" -"@abp/tui-editor@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/tui-editor/-/tui-editor-8.0.0-rc.3.tgz#b5cc1470598b1a478733767d21275334d130bfc1" - integrity sha512-EdPrVdTV9Yv18Ke4UTf6/BPF4eZx+eEECI3zSQMrnDlGv5C1gBG1MS37KdqMeHvvhz95rIv/RO6kpjGkJYEm9g== +"@abp/tui-editor@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/tui-editor/-/tui-editor-8.0.0.tgz#580737ed8e3a29ada576866556afbce5655cddfc" + integrity sha512-bsFwmAxLIV9IkcTqJor0ev0+noQqWsczxIkaSx9HWw08/YkNPfG0ak7gICU1I/gZoB7IMoaiwC6dXfY27BKSWA== dependencies: - "@abp/jquery" "~8.0.0-rc.3" - "@abp/prismjs" "~8.0.0-rc.3" + "@abp/jquery" "~8.0.0" + "@abp/prismjs" "~8.0.0" -"@abp/utils@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-8.0.0-rc.3.tgz#01491fb943eb3a41d4ddbe854e5330b66807d522" - integrity sha512-cuTwsy+FEh3dEnlDDi0s8d3qpWgP3rwqWgg5LlMF0pY/OobJcCLtuo5Zy9bncKL3wFHXVEk6UviYcNkSOkzvtQ== +"@abp/utils@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-8.0.0.tgz#3de8e34e97e10ac9c2b8c1c194bf6b034fde302f" + integrity sha512-F8LsEedqkngbeFsszdZi1lshFqr++anyJFBoaRsKRw6hJPDPrYtHoOWEQ+p7QcH5UVVzVywQUGMNM+gmAT0vGQ== dependencies: just-compare "^2.3.0" diff --git a/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo/Blogging/Localization/Resources/ar.json b/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo/Blogging/Localization/Resources/ar.json index 38175e18bc..17c66aa32c 100644 --- a/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo/Blogging/Localization/Resources/ar.json +++ b/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo/Blogging/Localization/Resources/ar.json @@ -19,12 +19,19 @@ "ReplyTo": "الرد على {0}", "ContinueReading": "استمر بالقراءة", "DaysAgo": "قبل {0} أيام", + "DayAgo": "قبل يوم واحد ({0}).", "YearsAgo": "قبل {0} سنة", + "YearAgo": "{0} منذ عام", "MonthsAgo": "قبل {0} شهور", + "MonthAgo": "{0} قبل شهر", "WeeksAgo": "قبل {0} أسابيع", + "WeekAgo": "{0} قبل أسبوع", "MinutesAgo": "قبل {0} دقيقة", + "MinuteAgo": "منذ {0} دقيقة", "SecondsAgo": "قبل {0} ثانية", + "SecondAgo": "{0} قبل ثانية", "HoursAgo": "قبل {0} ساعة", + "HourAgo": "منذ {0} ساعة", "Now": "الآن", "Content": "المحتوى", "SeeAll": "معاينة الكل", @@ -56,6 +63,26 @@ "ShareOn": "شارك على", "TitleLengthWarning": "احتفظ بحجم عنوانك أقل من 60 حرفًا ليكون صديقًا لمحركات البحث!", "ClearCache": "مسح ذاكرة التخزين المؤقت", - "ClearCacheConfirmationMessage": "هل أنت متأكد أنك تريد مسح ذاكرة التخزين المؤقت؟" + "ClearCacheConfirmationMessage": "هل أنت متأكد أنك تريد مسح ذاكرة التخزين المؤقت؟", + "MarkdownSupported": "يتم دعم تخفيض السعر", + "FileUploadInfo": "قم بسحب أو إسقاط أو لصق الصورة المنسوخة.", + "PostDescriptionHint": "* سيتم عرضه في معاينة رابط المقالة، ويدعم HTML", + "ReadMore": "أكمل القراءة", + "MemberNotPublishedPostYet": "لا توجد مشاركات بعد!", + "UpdateUserWebSiteInfo": "مثال: https://johndoe.com", + "UpdateUserTwitterInfo": "مثال: جوندو", + "UpdateUserGithubInfo": "مثال: جوندو", + "UpdateUserLinkedinInfo": "مثال:https://www.linkedin.com/...", + "UpdateUserCompanyInfo": "مثال: فولوسوفت", + "UpdateUserJobTitleInfo": "مثال: مطور برامج", + "WebSite": "موقع إلكتروني", + "UserName": "اسم المستخدم", + "FullURL": "عنوان URL الكامل", + "JobTitle": "مسمى وظيفي", + "PersonalWebsite": "موقع شخصي", + "EditProfile": "تعديل الملف الشخصي", + "MoreFromBlog": "المزيد من المدونة", + "MoreFromUser": "المزيد من {0}", + "BlogPosts": "دعامات" } } \ No newline at end of file diff --git a/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo/Blogging/Localization/Resources/cs.json b/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo/Blogging/Localization/Resources/cs.json index 765705aaee..c8f66152d8 100644 --- a/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo/Blogging/Localization/Resources/cs.json +++ b/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo/Blogging/Localization/Resources/cs.json @@ -19,12 +19,19 @@ "ReplyTo": "Odpověď pro {0}", "ContinueReading": "Číst dále", "DaysAgo": "před {0} dny", + "DayAgo": "před {0} dnem", "YearsAgo": "před {0} roky", + "YearAgo": "před {0} rokem", "MonthsAgo": "před {0} měsíci", + "MonthAgo": "před {0} měsícem", "WeeksAgo": "před {0} týdny", + "WeekAgo": "před {0} týdnem", "MinutesAgo": "před {0} minutami", + "MinuteAgo": "před {0} minutou", "SecondsAgo": "před {0} sekundami", + "SecondAgo": "před {0} sekundou", "HoursAgo": "před {0} hodinami", + "HourAgo": "před {0} hodinou", "Now": "nyní", "Content": "Obsah", "SeeAll": "Zobrazit vše", @@ -56,6 +63,26 @@ "ShareOn": "Sdílet na", "TitleLengthWarning": "Zachovejte velikost titulku pod 60 znaků kvůli SEO!", "ClearCache": "Vyčistit mezipaměť", - "ClearCacheConfirmationMessage": "Opravdu chcete vymazat mezipaměť?" + "ClearCacheConfirmationMessage": "Opravdu chcete vymazat mezipaměť?", + "MarkdownSupported": "Markdown je podporován", + "FileUploadInfo": "Přetáhněte, pusťte nebo vložte zkopírovaný obrázek.", + "PostDescriptionHint": "* Bude vykreslen v náhledu odkazu na článek, podporuje HTML", + "ReadMore": "Pokračovat ve čtení", + "MemberNotPublishedPostYet": "Zatím žádné příspěvky!", + "UpdateUserWebSiteInfo": "Příklad: https://johndoe.com", + "UpdateUserTwitterInfo": "Příklad: johndoe", + "UpdateUserGithubInfo": "Příklad: johndoe", + "UpdateUserLinkedinInfo": "Příklad: https://www.linkedin.com/...", + "UpdateUserCompanyInfo": "Příklad: Volosoft", + "UpdateUserJobTitleInfo": "Příklad: Software Developer", + "WebSite": "Webová stránka", + "UserName": "Uživatelské jméno", + "FullURL": "Úplná adresa URL", + "JobTitle": "Pracovní pozice", + "PersonalWebsite": "OSOBNÍ STRÁNKY", + "EditProfile": "Upravit profil", + "MoreFromBlog": "Více z blogu", + "MoreFromUser": "Více od uživatele {0}", + "BlogPosts": "Příspěvky" } } \ No newline at end of file diff --git a/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo/Blogging/Localization/Resources/de.json b/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo/Blogging/Localization/Resources/de.json index 77790b28a2..64d8c997de 100644 --- a/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo/Blogging/Localization/Resources/de.json +++ b/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo/Blogging/Localization/Resources/de.json @@ -19,12 +19,19 @@ "ReplyTo": "Antwort auf {0}", "ContinueReading": "Weiterlesen", "DaysAgo": "Vor {0} Tagen", + "DayAgo": "Vor {0} Tagen", "YearsAgo": "Vor {0} Jahren", + "YearAgo": "Vor {0} Jahr", "MonthsAgo": "Vor {0} Monaten", + "MonthAgo": "Vor {0} Monaten", "WeeksAgo": "Vor {0} Wochen", + "WeekAgo": "Vor {0} Woche", "MinutesAgo": "Vor {0} Minuten", + "MinuteAgo": "Vor {0} Minute", "SecondsAgo": "Vor {0} Sekunden", + "SecondAgo": "Vor {0} Sekunde", "HoursAgo": "Vor {0} Stunden", + "HourAgo": "Vor {0} Stunde", "Now": "jetzt", "Content": "Inhalt", "SeeAll": "Alles sehen", @@ -56,6 +63,26 @@ "ShareOn": "Teilen auf", "TitleLengthWarning": "Halten Sie Ihre Titellänge unter 60 Zeichen, um SEO-freundlich zu sein!", "ClearCache": "Cache leeren", - "ClearCacheConfirmationMessage": "Möchten Sie den Cache wirklich leeren?" + "ClearCacheConfirmationMessage": "Möchten Sie den Cache wirklich leeren?", + "MarkdownSupported": "Markdown wird unterstützt", + "FileUploadInfo": "Ziehen Sie ein kopiertes Bild per Drag-and-Drop oder fügen Sie es ein.", + "PostDescriptionHint": "* Wird in der Artikel-Link-Vorschau gerendert, unterstützt HTML", + "ReadMore": "Weiterlesen", + "MemberNotPublishedPostYet": "Noch keine Beiträge!", + "UpdateUserWebSiteInfo": "Beispiel: https://johndoe.com", + "UpdateUserTwitterInfo": "Beispiel: Johndoe", + "UpdateUserGithubInfo": "Beispiel: Johndoe", + "UpdateUserLinkedinInfo": "Beispiel: https://www.linkedin.com/...", + "UpdateUserCompanyInfo": "Beispiel: Volosoft", + "UpdateUserJobTitleInfo": "Beispiel: Softwareentwickler", + "WebSite": "Webseite", + "UserName": "Nutzername", + "FullURL": "Vollständige URL", + "JobTitle": "Berufsbezeichnung", + "PersonalWebsite": "PERSÖNLICHE WEBSEITE", + "EditProfile": "Profil bearbeiten", + "MoreFromBlog": "Mehr vom Blog", + "MoreFromUser": "Mehr von {0}", + "BlogPosts": "Beiträge" } } \ No newline at end of file diff --git a/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo/Blogging/Localization/Resources/es.json b/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo/Blogging/Localization/Resources/es.json index f52ca71338..ed506cf303 100644 --- a/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo/Blogging/Localization/Resources/es.json +++ b/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo/Blogging/Localization/Resources/es.json @@ -19,12 +19,19 @@ "ReplyTo": "Responder a {0}", "ContinueReading": "Continuar leyendo", "DaysAgo": "Hace {0} días", + "DayAgo": "Hace {0} día", "YearsAgo": "Hace {0} años", + "YearAgo": "Hace {0} año", "MonthsAgo": "Hace {0} meses", + "MonthAgo": "Hace {0} mes", "WeeksAgo": "Hace {0} semanas", + "WeekAgo": "Hace {0} semana", "MinutesAgo": "Hace {0} minutos", + "MinuteAgo": "Hace {0} minuto", "SecondsAgo": "Hace {0} segundos", + "SecondAgo": "Hace {0} segundo", "HoursAgo": "Hace {0} horas", + "HourAgo": "Hace {0} hora", "Now": "Ahora", "Content": "Contenido", "SeeAll": "Ver todo", @@ -56,6 +63,26 @@ "ShareOn": "Compartir en", "TitleLengthWarning": "Manten el tamaño del título por debajo de 60 caracteres para ser amigable al SEO", "ClearCache": "Limpiar cache", - "ClearCacheConfirmationMessage": "¿Estás seguro de que deseas borrar la caché?" + "ClearCacheConfirmationMessage": "¿Estás seguro de que deseas borrar la caché?", + "MarkdownSupported": "Se admite la reducción de precios", + "FileUploadInfo": "Arrastre, suelte o pegue una imagen copiada.", + "PostDescriptionHint": "* Se mostrará en la vista previa del enlace del artículo, admite HTML", + "ReadMore": "Sigue leyendo", + "MemberNotPublishedPostYet": "¡Aún no hay publicaciones!", + "UpdateUserWebSiteInfo": "Ejemplo: https://johndoe.com", + "UpdateUserTwitterInfo": "Ejemplo: johndoe", + "UpdateUserGithubInfo": "Ejemplo: johndoe", + "UpdateUserLinkedinInfo": "Ejemplo: https://www.linkedin.com/...", + "UpdateUserCompanyInfo": "Ejemplo: Volosoft", + "UpdateUserJobTitleInfo": "Ejemplo: desarrollador de software", + "WebSite": "Sitio web", + "UserName": "Nombre de usuario", + "FullURL": "URL completa", + "JobTitle": "Título profesional", + "PersonalWebsite": "SITIO WEB PERSONAL", + "EditProfile": "Editar perfil", + "MoreFromBlog": "Más del blog", + "MoreFromUser": "Más de {0}", + "BlogPosts": "Publicaciones" } } \ No newline at end of file diff --git a/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo/Blogging/Localization/Resources/fi.json b/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo/Blogging/Localization/Resources/fi.json index d089d54ab5..641961657a 100644 --- a/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo/Blogging/Localization/Resources/fi.json +++ b/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo/Blogging/Localization/Resources/fi.json @@ -19,12 +19,19 @@ "ReplyTo": "Vastaa osoitteeseen {0}", "ContinueReading": "Jatka lukemista", "DaysAgo": "{0} päivää sitten", + "DayAgo": "{0} päivä sitten", "YearsAgo": "{0} vuotta sitten", + "YearAgo": "{0} vuosi sitten", "MonthsAgo": "{0} kuukautta sitten", + "MonthAgo": "{0} kuukausi sitten", "WeeksAgo": "{0} viikkoa sitten", + "WeekAgo": "{0} viikko sitten", "MinutesAgo": "{0} minuuttia sitten", + "MinuteAgo": "{0} minuutti sitten", "SecondsAgo": "{0} sekuntia sitten", + "SecondAgo": "{0} sekunti sitten", "HoursAgo": "{0} tuntia sitten", + "HourAgo": "{0} tunti sitten", "Now": "nyt", "Content": "Sisältö", "SeeAll": "Näytä kaikki", @@ -59,6 +66,23 @@ "ClearCacheConfirmationMessage": "Haluatko varmasti tyhjentää välimuistin?", "MarkdownSupported": "Markdown on tuettu", "FileUploadInfo": "Vedä, pudota tai liitä kopioitu kuva.", - "PostDescriptionHint": "* Näytetään artikkelin linkin esikatselussa, tukee HTML:ää" + "PostDescriptionHint": "* Näytetään artikkelin linkin esikatselussa, tukee HTML:ää", + "ReadMore": "Jatka lukemista", + "MemberNotPublishedPostYet": "Ei postauksia vielä!", + "UpdateUserWebSiteInfo": "Esimerkki: https://johndoe.com", + "UpdateUserTwitterInfo": "Esimerkki: johndoe", + "UpdateUserGithubInfo": "Esimerkki: johndoe", + "UpdateUserLinkedinInfo": "Esimerkki: https://www.linkedin.com/...", + "UpdateUserCompanyInfo": "Esimerkki: Volosoft", + "UpdateUserJobTitleInfo": "Esimerkki: ohjelmistokehittäjä", + "WebSite": "Verkkosivusto", + "UserName": "Käyttäjätunnus", + "FullURL": "Koko URL-osoite", + "JobTitle": "Työnimike", + "PersonalWebsite": "HENKILÖKOHTAISET SIVUSTO", + "EditProfile": "Muokkaa profiilia", + "MoreFromBlog": "Lisää Blogista", + "MoreFromUser": "Lisää käyttäjältä {0}", + "BlogPosts": "Viestit" } } \ No newline at end of file diff --git a/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo/Blogging/Localization/Resources/fr.json b/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo/Blogging/Localization/Resources/fr.json index 4cfa8a921e..0b5d963d8a 100644 --- a/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo/Blogging/Localization/Resources/fr.json +++ b/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo/Blogging/Localization/Resources/fr.json @@ -19,12 +19,19 @@ "ReplyTo": "Répondre à {0}", "ContinueReading": "Continuer la lecture", "DaysAgo": "Il y a {0} jours", + "DayAgo": "il y a {0} jours", "YearsAgo": "Il y a {0} ans", + "YearAgo": "il y a {0} an", "MonthsAgo": "Il y a {0} mois", + "MonthAgo": "il y a {0} mois", "WeeksAgo": "Il y a {0} semaines", + "WeekAgo": "il y a {0} semaines", "MinutesAgo": "Il y a {0} minutes", + "MinuteAgo": "il y a {0} minute", "SecondsAgo": "Il y a {0} secondes", + "SecondAgo": "il y a {0} seconde", "HoursAgo": "Il y a {0} heures", + "HourAgo": "il y a {0} heures", "Now": "maintenant", "Content": "Contenu", "SeeAll": "Voir tout", @@ -56,6 +63,26 @@ "ShareOn": "Partager sur", "TitleLengthWarning": "Gardez la taille de votre titre sous 60 caractères pour être optimisé pour le référencement!", "ClearCache": "Vider le cache", - "ClearCacheConfirmationMessage": "Voulez-vous vraiment vider le cache?" + "ClearCacheConfirmationMessage": "Voulez-vous vraiment vider le cache?", + "MarkdownSupported": "La démarque est prise en charge", + "FileUploadInfo": "Faites glisser, déposez ou collez une image copiée.", + "PostDescriptionHint": "* Sera rendu dans l'aperçu du lien de l'article, prend en charge HTML", + "ReadMore": "Continuer la lecture", + "MemberNotPublishedPostYet": "Pas encore de messages!", + "UpdateUserWebSiteInfo": "Exemple : https://johndoe.com", + "UpdateUserTwitterInfo": "Exemple : Johndoe", + "UpdateUserGithubInfo": "Exemple : Johndoe", + "UpdateUserLinkedinInfo": "Exemple : https://www.linkedin.com/...", + "UpdateUserCompanyInfo": "Exemple : Volosoft", + "UpdateUserJobTitleInfo": "Exemple : développeur de logiciels", + "WebSite": "Site web", + "UserName": "Nom d'utilisateur", + "FullURL": "URL complète", + "JobTitle": "Titre d'emploi", + "PersonalWebsite": "SITE WEB PERSONNEL", + "EditProfile": "Editer le profil", + "MoreFromBlog": "Plus du blog", + "MoreFromUser": "Plus de {0}", + "BlogPosts": "Des postes" } } \ No newline at end of file diff --git a/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo/Blogging/Localization/Resources/hi.json b/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo/Blogging/Localization/Resources/hi.json index 1ba7d54dd5..c05d3276f3 100644 --- a/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo/Blogging/Localization/Resources/hi.json +++ b/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo/Blogging/Localization/Resources/hi.json @@ -19,12 +19,19 @@ "ReplyTo": "उत्तर देने के लिए {0}", "ContinueReading": "जारी रखें पढ़ रहे हैं", "DaysAgo": "{0} दिन पहले", + "DayAgo": "{0} दिन पहले", "YearsAgo": "{0} साल पहले", + "YearAgo": "{0} वर्ष पहले", "MonthsAgo": "{0} महीने पहले", + "MonthAgo": "{0} महीने पहले", "WeeksAgo": "{0} सप्ताह पहले", + "WeekAgo": "{0} सप्ताह पहले", "MinutesAgo": "{0} मिनट पहले", + "MinuteAgo": "{0} मिनट पहले", "SecondsAgo": "{0} सेकंड पहले", + "SecondAgo": "{0} सेकंड पहले", "HoursAgo": "{0} घंटे पहले", + "HourAgo": "{0} घंटा पहले", "Now": "अब क", "Content": "सामग्री", "SeeAll": "सभी देखें", @@ -56,6 +63,26 @@ "ShareOn": "पर साझा करें", "TitleLengthWarning": "60 अक्षरों के नीचे अपने शीर्षक का आकार एसईओ के अनुकूल रखें!", "ClearCache": "कैश को साफ़ करें", - "ClearCacheConfirmationMessage": "क्या आप वाकई कैश साफ़ करना चाहते हैं?" + "ClearCacheConfirmationMessage": "क्या आप वाकई कैश साफ़ करना चाहते हैं?", + "MarkdownSupported": "मार्कडाउन समर्थित है", + "FileUploadInfo": "कॉपी की गई छवि को खींचें, छोड़ें या चिपकाएँ।", + "PostDescriptionHint": "* आलेख लिंक पूर्वावलोकन में प्रस्तुत किया जाएगा, HTML का समर्थन करता है", + "ReadMore": "जारी रखें पढ़ रहे हैं", + "MemberNotPublishedPostYet": "अब तक कोई पोस्ट नहीं!", + "UpdateUserWebSiteInfo": "उदाहरण: https://johndoe.com", + "UpdateUserTwitterInfo": "उदाहरण: जॉन्डो", + "UpdateUserGithubInfo": "उदाहरण: जॉन्डो", + "UpdateUserLinkedinInfo": "उदाहरण: https://www.linkedin.com/...", + "UpdateUserCompanyInfo": "उदाहरण: वोलोसॉफ्ट", + "UpdateUserJobTitleInfo": "उदाहरण: सॉफ्टवेयर डेवलपर", + "WebSite": "वेबसाइट", + "UserName": "उपयोगकर्ता नाम", + "FullURL": "पूरा यूआरएल", + "JobTitle": "नौकरी का नाम", + "PersonalWebsite": "व्यक्तिगत वेबसाइट", + "EditProfile": "प्रोफ़ाइल संपादित करें", + "MoreFromBlog": "ब्लॉग से और अधिक", + "MoreFromUser": "{0} से अधिक", + "BlogPosts": "पदों" } } \ No newline at end of file diff --git a/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo/Blogging/Localization/Resources/hr.json b/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo/Blogging/Localization/Resources/hr.json index 9cfef4eeba..8aa337930b 100644 --- a/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo/Blogging/Localization/Resources/hr.json +++ b/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo/Blogging/Localization/Resources/hr.json @@ -1,64 +1,88 @@ { - "culture": "hr", - "texts": { - "Menu:Blogs": "Blogovi", - "Menu:BlogManagement": "Bloganje", - "Permission:Management": "Upravljanje", - "Permission:Edit": "Uredi", - "Permission:Create": "Dodaj", - "Permission:Delete": "Izbrisati", - "Permission:Blogging": "Blog", - "Permission:Blogs": "Blogovi", - "Permission:Posts": "Postovi", - "Permission:Tags": "Tagovi", - "Permission:Comments": "Komentari", - "Permission:ClearCache": "Očisti predmemoriju", - "Title": "Titula", - "Delete": "Izbrisati", - "Reply": "Odgovor", - "ReplyTo": "Odgovor na {0}", - "ContinueReading": "Nastavi čitati", - "DaysAgo": "Prije {0} dana", - "YearsAgo": "Prije {0} godina", - "MonthsAgo": "Prije {0} mjeseci", - "WeeksAgo": "Prije {0} tjedana", - "MinutesAgo": "Prije {0} minuta", - "SecondsAgo": "Prije {0} sekundi", - "HoursAgo": "Prije {0} sati", - "Now": "sada", - "Content": "Sadržaj", - "SeeAll": "Vidi sve", - "PopularTags": "Popularne oznake", - "WiewsWithCount": "{0} pregleda", - "LastPosts": "Zadnji postovi", - "LeaveComment": "Ostavite komentar", - "TagsInThisArticle": "Oznake u ovom članku", - "Posts": "Postovi", - "Edit": "Uredi", - "BLOG": "BLOG", - "CommentDeletionWarningMessage": "Komentar će biti izbrisan.", - "PostDeletionWarningMessage": "Post će biti izbrisan.", - "BlogDeletionWarningMessage": "Blog će biti izbrisan.", - "AreYouSure": "Jesi li siguran?", - "CommentWithCount": "{0} komentara", - "Comment": "Komentar", - "ShareOnTwitter": "Podijelite na Twitteru", - "CoverImage": "Naslovna slika", - "CreateANewPost": "Napravi novi post", - "CreateANewBlog": "Napravi novi blog", - "WhatIsNew": "Što je novo?", - "Name": "Ime", - "ShortName": "Nadimak", - "CreationTime": "Vrijeme stvaranja", - "Description": "Opis", - "Blogs": "Blogovi", - "Tags": "Oznake", - "ShareOn": "Podijeli na", - "TitleLengthWarning": "Neka vaš naslov bude ispod 60 znakova kako bi bio SEO optimiziran!", - "ClearCache": "Očisti predmemoriju", - "ClearCacheConfirmationMessage": "Jeste li sigurni da želite isprazniti predmemoriju?", - "MarkdownSupported": "Markdown je podržan", - "FileUploadInfo": "Povucite, ispustite ili zalijepite kopiranu sliku.", - "PostDescriptionHint": "* Prikazat će se u pretpregledu veze članka, podržava HTML" - } -} + "culture": "hr", + "texts": { + "Menu:Blogs": "Blogovi", + "Menu:BlogManagement": "Bloganje", + "Permission:Management": "Upravljanje", + "Permission:Edit": "Uredi", + "Permission:Create": "Dodaj", + "Permission:Delete": "Izbrisati", + "Permission:Blogging": "Blog", + "Permission:Blogs": "Blogovi", + "Permission:Posts": "Postovi", + "Permission:Tags": "Tagovi", + "Permission:Comments": "Komentari", + "Permission:ClearCache": "Očisti predmemoriju", + "Title": "Titula", + "Delete": "Izbrisati", + "Reply": "Odgovor", + "ReplyTo": "Odgovor na {0}", + "ContinueReading": "Nastavi čitati", + "DaysAgo": "Prije {0} dana", + "DayAgo": "Prije {0} dan", + "YearsAgo": "Prije {0} godina", + "YearAgo": "Prije {0} godinu", + "MonthsAgo": "Prije {0} mjeseci", + "MonthAgo": "Prije {0} mjesec", + "WeeksAgo": "Prije {0} tjedana", + "WeekAgo": "Prije {0} tjedan", + "MinutesAgo": "Prije {0} minuta", + "MinuteAgo": "Prije {0} minute", + "SecondsAgo": "Prije {0} sekundi", + "SecondAgo": "Prije {0} sekunde", + "HoursAgo": "Prije {0} sati", + "HourAgo": "Prije {0} sat", + "Now": "sada", + "Content": "Sadržaj", + "SeeAll": "Vidi sve", + "PopularTags": "Popularne oznake", + "WiewsWithCount": "{0} pregleda", + "LastPosts": "Zadnji postovi", + "LeaveComment": "Ostavite komentar", + "TagsInThisArticle": "Oznake u ovom članku", + "Posts": "Postovi", + "Edit": "Uredi", + "BLOG": "BLOG", + "CommentDeletionWarningMessage": "Komentar će biti izbrisan.", + "PostDeletionWarningMessage": "Post će biti izbrisan.", + "BlogDeletionWarningMessage": "Blog će biti izbrisan.", + "AreYouSure": "Jesi li siguran?", + "CommentWithCount": "{0} komentara", + "Comment": "Komentar", + "ShareOnTwitter": "Podijelite na Twitteru", + "CoverImage": "Naslovna slika", + "CreateANewPost": "Napravi novi post", + "CreateANewBlog": "Napravi novi blog", + "WhatIsNew": "Što je novo?", + "Name": "Ime", + "ShortName": "Nadimak", + "CreationTime": "Vrijeme stvaranja", + "Description": "Opis", + "Blogs": "Blogovi", + "Tags": "Oznake", + "ShareOn": "Podijeli na", + "TitleLengthWarning": "Neka vaš naslov bude ispod 60 znakova kako bi bio SEO optimiziran!", + "ClearCache": "Očisti predmemoriju", + "ClearCacheConfirmationMessage": "Jeste li sigurni da želite isprazniti predmemoriju?", + "MarkdownSupported": "Markdown je podržan", + "FileUploadInfo": "Povucite, ispustite ili zalijepite kopiranu sliku.", + "PostDescriptionHint": "* Prikazat će se u pretpregledu veze članka, podržava HTML", + "ReadMore": "Nastavi čitati", + "MemberNotPublishedPostYet": "Još nema postova!", + "UpdateUserWebSiteInfo": "Primjer: https://johndoe.com", + "UpdateUserTwitterInfo": "Primjer: johndoe", + "UpdateUserGithubInfo": "Primjer: johndoe", + "UpdateUserLinkedinInfo": "Primjer: https://www.linkedin.com/...", + "UpdateUserCompanyInfo": "Primjer: Volosoft", + "UpdateUserJobTitleInfo": "Primjer: programer softvera", + "WebSite": "Web stranica", + "UserName": "Korisničko ime", + "FullURL": "Puni URL", + "JobTitle": "Naziv radnog mjesta", + "PersonalWebsite": "OSOBNA WEB STRANICA", + "EditProfile": "Uredi profil", + "MoreFromBlog": "Više s bloga", + "MoreFromUser": "Više od {0}", + "BlogPosts": "Postovi" + } +} \ No newline at end of file diff --git a/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo/Blogging/Localization/Resources/hu.json b/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo/Blogging/Localization/Resources/hu.json index d7a5429e46..8aaccb4f52 100644 --- a/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo/Blogging/Localization/Resources/hu.json +++ b/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo/Blogging/Localization/Resources/hu.json @@ -19,12 +19,19 @@ "ReplyTo": "Válasz erre: {0}", "ContinueReading": "Olvasás folytatása", "DaysAgo": "{0} napja", + "DayAgo": "{0} napja", "YearsAgo": "{0} éve", + "YearAgo": "{0} éve", "MonthsAgo": "{0} hónapja", + "MonthAgo": "{0} hónapja", "WeeksAgo": "{0} hete", + "WeekAgo": "{0} hete", "MinutesAgo": "{0} perce", + "MinuteAgo": "{0} perce", "SecondsAgo": "{0} másodperceo", + "SecondAgo": "{0} másodperce", "HoursAgo": "{0} órája", + "HourAgo": "{0} órája", "Now": "most", "Content": "Tartalom", "SeeAll": "Összes nézése", @@ -58,6 +65,24 @@ "ClearCache": "Törölje a gyorsítótárat", "ClearCacheConfirmationMessage": "Biztosan törli a gyorsítótárat?", "MarkdownSupported": "A Markdown támogatott", - "FileUploadInfo": "Húzza, ejtse vagy illessze be a másolt képet." + "FileUploadInfo": "Húzza, ejtse vagy illessze be a másolt képet.", + "PostDescriptionHint": "* A cikk linkjének előnézetében jelenik meg, támogatja a HTML-t", + "ReadMore": "Olvasson tovább", + "MemberNotPublishedPostYet": "Még nincsenek bejegyzések!", + "UpdateUserWebSiteInfo": "Példa: https://johndoe.com", + "UpdateUserTwitterInfo": "Példa: johndoe", + "UpdateUserGithubInfo": "Példa: johndoe", + "UpdateUserLinkedinInfo": "Példa: https://www.linkedin.com/...", + "UpdateUserCompanyInfo": "Példa: Volosoft", + "UpdateUserJobTitleInfo": "Példa: Szoftverfejlesztő", + "WebSite": "Weboldal", + "UserName": "Felhasználónév", + "FullURL": "Teljes URL", + "JobTitle": "Munka megnevezése", + "PersonalWebsite": "SZEMÉLYES WEBOLDAL", + "EditProfile": "Profil szerkesztése", + "MoreFromBlog": "Továbbiak a blogból", + "MoreFromUser": "Továbbiak innen: {0}", + "BlogPosts": "Hozzászólások" } } \ No newline at end of file diff --git a/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo/Blogging/Localization/Resources/is.json b/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo/Blogging/Localization/Resources/is.json index 1a84ce87ed..e2d70799ca 100644 --- a/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo/Blogging/Localization/Resources/is.json +++ b/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo/Blogging/Localization/Resources/is.json @@ -19,12 +19,19 @@ "ReplyTo": "Svara {0}", "ContinueReading": "Halda áfram að lesa", "DaysAgo": "fyrir {0} dögum", + "DayAgo": "Fyrir {0} degi síðan", "YearsAgo": "fyrir {0} árum", + "YearAgo": "Fyrir {0} ári síðan", "MonthsAgo": "fyrir {0} mánuðum", + "MonthAgo": "Fyrir {0} mánuði", "WeeksAgo": "fyrir {0} vikum", + "WeekAgo": "Fyrir {0} viku síðan", "MinutesAgo": "fyrir {0} mínútum", + "MinuteAgo": "Fyrir {0} mínútu", "SecondsAgo": "fyrir {0} sekúndum", + "SecondAgo": "Fyrir {0} sekúndu", "HoursAgo": "fyrir {0} klukkustundum", + "HourAgo": "Fyrir {0} klukkustund", "Now": "núna", "Content": "Innihald", "SeeAll": "Sjá Allt", @@ -56,6 +63,26 @@ "ShareOn": "Deila á", "TitleLengthWarning": "Haltu titilstærð þinni undir 60 stöfum til að vera SEO -vingjarnlegur!", "ClearCache": "Hreinsa skyndiminni", - "ClearCacheConfirmationMessage": "Ertu viss um að þú viljir hreinsa skyndiminni?" + "ClearCacheConfirmationMessage": "Ertu viss um að þú viljir hreinsa skyndiminni?", + "MarkdownSupported": "Markdown er stutt", + "FileUploadInfo": "Dragðu, slepptu eða límdu afritaða mynd.", + "PostDescriptionHint": "* Verður birt í forskoðun greinartengils, styður HTML", + "ReadMore": "Halda áfram að lesa", + "MemberNotPublishedPostYet": "Engar færslur ennþá!", + "UpdateUserWebSiteInfo": "Dæmi: https://johndoe.com", + "UpdateUserTwitterInfo": "Dæmi: johndoe", + "UpdateUserGithubInfo": "Dæmi: johndoe", + "UpdateUserLinkedinInfo": "Dæmi: https://www.linkedin.com/...", + "UpdateUserCompanyInfo": "Dæmi: Volosoft", + "UpdateUserJobTitleInfo": "Dæmi: hugbúnaðarhönnuður", + "WebSite": "Vefsíða", + "UserName": "Notendanafn", + "FullURL": "Full vefslóð", + "JobTitle": "Starfsheiti", + "PersonalWebsite": "PERSÓNULEG VEFSÍÐA", + "EditProfile": "Breyta prófíl", + "MoreFromBlog": "Meira af blogginu", + "MoreFromUser": "Meira frá {0}", + "BlogPosts": "Færslur" } } \ No newline at end of file diff --git a/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo/Blogging/Localization/Resources/it.json b/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo/Blogging/Localization/Resources/it.json index 5ebcb5176f..3fab7d8582 100644 --- a/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo/Blogging/Localization/Resources/it.json +++ b/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo/Blogging/Localization/Resources/it.json @@ -19,12 +19,19 @@ "ReplyTo": "Rispondi a {0}", "ContinueReading": "Continua a leggere", "DaysAgo": "{0} giorni fa", + "DayAgo": "{0} giorno fa", "YearsAgo": "{0} anni fa", + "YearAgo": "{0} anno fa", "MonthsAgo": "{0} mesi fa", + "MonthAgo": "{0} mese fa", "WeeksAgo": "{0} settimane fa", + "WeekAgo": "{0} settimana fa", "MinutesAgo": "{0} minuti fa", + "MinuteAgo": "{0} minuto fa", "SecondsAgo": "{0} secondi fa", + "SecondAgo": "{0} secondo fa", "HoursAgo": "{0} ore fa", + "HourAgo": "{0} ora fa", "Now": "adesso", "Content": "Contenuto", "SeeAll": "Vedi tutto", @@ -56,6 +63,26 @@ "ShareOn": "Condividere su", "TitleLengthWarning": "Mantieni la dimensione del titolo sotto i 60 caratteri per essere SEO friendly!", "ClearCache": "Cancella cache", - "ClearCacheConfirmationMessage": "Sei sicuro di voler svuotare la cache?" + "ClearCacheConfirmationMessage": "Sei sicuro di voler svuotare la cache?", + "MarkdownSupported": "Il ribasso è supportato", + "FileUploadInfo": "Trascina, rilascia o incolla un'immagine copiata.", + "PostDescriptionHint": "* Verrà visualizzato nell'anteprima del collegamento dell'articolo, supporta HTML", + "ReadMore": "Continua a leggere", + "MemberNotPublishedPostYet": "Nessun post ancora!", + "UpdateUserWebSiteInfo": "Esempio: https://johndoe.com", + "UpdateUserTwitterInfo": "Esempio: John Doe", + "UpdateUserGithubInfo": "Esempio: John Doe", + "UpdateUserLinkedinInfo": "Esempio: https://www.linkedin.com/...", + "UpdateUserCompanyInfo": "Esempio: Volosoft", + "UpdateUserJobTitleInfo": "Esempio: sviluppatore di software", + "WebSite": "Sito web", + "UserName": "Nome utente", + "FullURL": "URL completo", + "JobTitle": "Titolo di lavoro", + "PersonalWebsite": "SITO WEB PERSONALE", + "EditProfile": "Modifica Profilo", + "MoreFromBlog": "Altro dal blog", + "MoreFromUser": "Altro da {0}", + "BlogPosts": "Messaggi" } } \ No newline at end of file diff --git a/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo/Blogging/Localization/Resources/nl.json b/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo/Blogging/Localization/Resources/nl.json index 145d97e8f4..aebfa3346a 100644 --- a/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo/Blogging/Localization/Resources/nl.json +++ b/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo/Blogging/Localization/Resources/nl.json @@ -19,12 +19,19 @@ "ReplyTo": "Antwoord aan {0}", "ContinueReading": "Lees verder", "DaysAgo": "{0} dagen geleden", + "DayAgo": "{0} dag geleden", "YearsAgo": "{0} jaar geleden", + "YearAgo": "{0} jaar geleden", "MonthsAgo": "{0} maanden geleden", + "MonthAgo": "{0} maand geleden", "WeeksAgo": "{0} weken geleden", + "WeekAgo": "{0} week geleden", "MinutesAgo": "{0} minuten geleden", + "MinuteAgo": "{0} minuut geleden", "SecondsAgo": "{0} seconden geleden", + "SecondAgo": "{0} seconde geleden", "HoursAgo": "{0} uur geleden", + "HourAgo": "{0} uur geleden", "Now": "nu", "Content": "Inhoud", "SeeAll": "Alles zien", @@ -56,6 +63,26 @@ "ShareOn": "Delen op", "TitleLengthWarning": "Houd uw titel kleiner dan 60 tekens om SEO-vriendelijk te zijn!", "ClearCache": "Cache wissen", - "ClearCacheConfirmationMessage": "Weet u zeker dat u de cache wilt wissen?" + "ClearCacheConfirmationMessage": "Weet u zeker dat u de cache wilt wissen?", + "MarkdownSupported": "Prijsverlaging wordt ondersteund", + "FileUploadInfo": "Sleep een gekopieerde afbeelding, zet deze neer of plak deze.", + "PostDescriptionHint": "* Wordt weergegeven in het voorbeeld van de artikellink, ondersteunt HTML", + "ReadMore": "Lees verder", + "MemberNotPublishedPostYet": "Nog geen post!", + "UpdateUserWebSiteInfo": "Voorbeeld: https://johndoe.com", + "UpdateUserTwitterInfo": "Voorbeeld: Johndoe", + "UpdateUserGithubInfo": "Voorbeeld: Johndoe", + "UpdateUserLinkedinInfo": "Voorbeeld: https://www.linkedin.com/...", + "UpdateUserCompanyInfo": "Voorbeeld: Volosoft", + "UpdateUserJobTitleInfo": "Voorbeeld: softwareontwikkelaar", + "WebSite": "Website", + "UserName": "Gebruikersnaam", + "FullURL": "Volledige URL", + "JobTitle": "Functietitel", + "PersonalWebsite": "PERSOONLIJKE WEBSITE", + "EditProfile": "Bewerk profiel", + "MoreFromBlog": "Meer van blog", + "MoreFromUser": "Meer van {0}", + "BlogPosts": "Berichten" } } \ No newline at end of file diff --git a/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo/Blogging/Localization/Resources/pl-PL.json b/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo/Blogging/Localization/Resources/pl-PL.json index 63a9799da5..d23f98aac2 100644 --- a/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo/Blogging/Localization/Resources/pl-PL.json +++ b/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo/Blogging/Localization/Resources/pl-PL.json @@ -19,12 +19,19 @@ "ReplyTo": "Odpowiedz {0}", "ContinueReading": "Kontynuuj czytanie", "DaysAgo": "{0} dni temu", + "DayAgo": "{0} dzień temu", "YearsAgo": "{0} lat temu", + "YearAgo": "{0} rok temu", "MonthsAgo": "{0} miesięcy temu", + "MonthAgo": "{0} miesiąc temu", "WeeksAgo": "{0} tygodni temu", + "WeekAgo": "{0} tydzień temu", "MinutesAgo": "{0} minut temu", + "MinuteAgo": "{0} minuty temu", "SecondsAgo": "{0} sekund temu", + "SecondAgo": "{0} sekundę temu", "HoursAgo": "{0} godzin temu", + "HourAgo": "{0} godzinę temu", "Now": "teraz", "Content": "Treść", "SeeAll": "Zobacz wszystko", @@ -56,6 +63,26 @@ "ShareOn": "Podziel się", "TitleLengthWarning": "Utrzymuj rozmiar tytułu poniżej 60 znaków, aby był przyjazny dla SEO!", "ClearCache": "Wyczyść pamięć podręczną", - "ClearCacheConfirmationMessage": "Czy na pewno chcesz wyczyścić pamięć podręczną?" + "ClearCacheConfirmationMessage": "Czy na pewno chcesz wyczyścić pamięć podręczną?", + "MarkdownSupported": "Markdown jest obsługiwany", + "FileUploadInfo": "Przeciągnij, upuść lub wklej skopiowany obraz.", + "PostDescriptionHint": "* Zostanie wyświetlony w podglądzie linku do artykułu, obsługuje HTML", + "ReadMore": "Kontynuuj czytanie", + "MemberNotPublishedPostYet": "Nie ma jeszcze żadnych postów!", + "UpdateUserWebSiteInfo": "Przykład: https://johndoe.com", + "UpdateUserTwitterInfo": "Przykład: Johndoe", + "UpdateUserGithubInfo": "Przykład: Johndoe", + "UpdateUserLinkedinInfo": "Przykład: https://www.linkedin.com/...", + "UpdateUserCompanyInfo": "Przykład: Volosoft", + "UpdateUserJobTitleInfo": "Przykład: programista", + "WebSite": "Strona internetowa", + "UserName": "Nazwa użytkownika", + "FullURL": "Pełny adres URL", + "JobTitle": "Stanowisko", + "PersonalWebsite": "OSOBISTA STRONA INTERNETOWA", + "EditProfile": "Edytuj profil", + "MoreFromBlog": "Więcej z bloga", + "MoreFromUser": "Więcej od {0}", + "BlogPosts": "Posty" } } \ No newline at end of file diff --git a/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo/Blogging/Localization/Resources/pt-BR.json b/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo/Blogging/Localization/Resources/pt-BR.json index bb19760972..daf38e5078 100644 --- a/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo/Blogging/Localization/Resources/pt-BR.json +++ b/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo/Blogging/Localization/Resources/pt-BR.json @@ -19,12 +19,19 @@ "ReplyTo": "Responder para {0}", "ContinueReading": "Continue lendo", "DaysAgo": "{0} dias", + "DayAgo": "{0} dia atrás", "YearsAgo": "{0} anos", + "YearAgo": "{0} ano atrás", "MonthsAgo": "{0} meses", + "MonthAgo": "{0} mês atrás", "WeeksAgo": "{0} semanas", + "WeekAgo": "{0} semana atrás", "MinutesAgo": "{0} minutos", + "MinuteAgo": "{0} minuto atrás", "SecondsAgo": "{0} segundos", + "SecondAgo": "{0} segundo atrás", "HoursAgo": "{0} horas", + "HourAgo": "{0} hora atrás", "Now": "agora", "Content": "Conteúdo", "SeeAll": "Ver Tudo", @@ -58,6 +65,24 @@ "ClearCache": "Limpar cache", "ClearCacheConfirmationMessage": "Tem certeza de que deseja limpar o cache?", "MarkdownSupported": "Markdown é suportado", - "FileUploadInfo": "Arrastar, soltar, ou colar uma imagem copiada." + "FileUploadInfo": "Arrastar, soltar, ou colar uma imagem copiada.", + "PostDescriptionHint": "* Será renderizado na visualização do link do artigo, suporta HTML", + "ReadMore": "Continue lendo", + "MemberNotPublishedPostYet": "Nenhuma postagem ainda!", + "UpdateUserWebSiteInfo": "Exemplo: https://johndoe.com", + "UpdateUserTwitterInfo": "Exemplo: johndoe", + "UpdateUserGithubInfo": "Exemplo: johndoe", + "UpdateUserLinkedinInfo": "Exemplo: https://www.linkedin.com/...", + "UpdateUserCompanyInfo": "Exemplo: Volosoft", + "UpdateUserJobTitleInfo": "Exemplo: Desenvolvedor de Software", + "WebSite": "Local na rede Internet", + "UserName": "Nome de usuário", + "FullURL": "URL completo", + "JobTitle": "Cargo", + "PersonalWebsite": "SITE PESSOAL", + "EditProfile": "Editar Perfil", + "MoreFromBlog": "Mais do blog", + "MoreFromUser": "Mais de {0}", + "BlogPosts": "Postagens" } } \ No newline at end of file diff --git a/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo/Blogging/Localization/Resources/ro-RO.json b/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo/Blogging/Localization/Resources/ro-RO.json index 755b2b7ceb..2e665431b5 100644 --- a/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo/Blogging/Localization/Resources/ro-RO.json +++ b/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo/Blogging/Localization/Resources/ro-RO.json @@ -19,12 +19,19 @@ "ReplyTo": "Răspunde la {0}", "ContinueReading": "Continuă citirea", "DaysAgo": "{0} zile în urmă", + "DayAgo": "acum {0} zi", "YearsAgo": "{0} ani în urmă", + "YearAgo": "acum {0} an", "MonthsAgo": "{0} luni în urmă", + "MonthAgo": "acum {0} lună", "WeeksAgo": "{0} săptămâni în urmă", + "WeekAgo": "acum {0} săptămână", "MinutesAgo": "{0} minute în urmă", + "MinuteAgo": "acum {0} minut", "SecondsAgo": "{0} secunde în urmă", + "SecondAgo": "acum {0} secundă", "HoursAgo": "{0} ore în urmă", + "HourAgo": "acum {0} oră", "Now": "acum", "Content": "Conţinut", "SeeAll": "Vezi toate", @@ -56,6 +63,26 @@ "ShareOn": "Distribuie", "TitleLengthWarning": "Păstraţi lungimea titlului sub 60 de caractere pentru a fi SEO friendly!", "ClearCache": "Goleşte cache", - "ClearCacheConfirmationMessage": "Sunteţi sigur(ă) că vreţi să goliţi cache-ul?" + "ClearCacheConfirmationMessage": "Sunteţi sigur(ă) că vreţi să goliţi cache-ul?", + "MarkdownSupported": "Markdown este acceptat", + "FileUploadInfo": "Trageți, plasați sau inserați o imagine copiată.", + "PostDescriptionHint": "* Va fi redat în previzualizarea linkului articolului, acceptă HTML", + "ReadMore": "Continuați lectură", + "MemberNotPublishedPostYet": "Nicio postare încă!", + "UpdateUserWebSiteInfo": "Exemplu: https://johndoe.com", + "UpdateUserTwitterInfo": "Exemplu: johndoe", + "UpdateUserGithubInfo": "Exemplu: johndoe", + "UpdateUserLinkedinInfo": "Exemplu: https://www.linkedin.com/...", + "UpdateUserCompanyInfo": "Exemplu: Volosoft", + "UpdateUserJobTitleInfo": "Exemplu: Dezvoltator de software", + "WebSite": "Site Web", + "UserName": "Nume de utilizator", + "FullURL": "Adresa URL completă", + "JobTitle": "Denumirea funcției", + "PersonalWebsite": "SITE PERSONAL", + "EditProfile": "Editează profilul", + "MoreFromBlog": "Mai multe de pe blog", + "MoreFromUser": "Mai multe de la {0}", + "BlogPosts": "Postări" } } \ No newline at end of file diff --git a/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo/Blogging/Localization/Resources/ru.json b/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo/Blogging/Localization/Resources/ru.json index cacebbc55b..d995a5cc93 100644 --- a/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo/Blogging/Localization/Resources/ru.json +++ b/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo/Blogging/Localization/Resources/ru.json @@ -19,12 +19,19 @@ "ReplyTo": "Ответить {0}", "ContinueReading": "Продолжить чтение", "DaysAgo": "{0} дней назад", + "DayAgo": "{0} день назад", "YearsAgo": "{0} лет назад", + "YearAgo": "{0} год назад", "MonthsAgo": "{0} месяцев назад", + "MonthAgo": "{0} месяц назад", "WeeksAgo": "{0} недель назад", + "WeekAgo": "{0} неделю назад", "MinutesAgo": "{0} минут назад", + "MinuteAgo": "{0} минуту назад", "SecondsAgo": "{0} секунд назад", + "SecondAgo": "{0} секунду назад", "HoursAgo": "{0} часов назад", + "HourAgo": "{0} час назад", "Now": "сейчас", "Content": "Содержание", "SeeAll": "Увидеть все", @@ -56,6 +63,26 @@ "ShareOn": "Поделись", "TitleLengthWarning": "Держите размер заголовка не более 60 символов, чтобы быть оптимизированным для SEO!", "ClearCache": "Очистить кэш", - "ClearCacheConfirmationMessage": "Вы уверены, что хотите очистить кеш?" + "ClearCacheConfirmationMessage": "Вы уверены, что хотите очистить кеш?", + "MarkdownSupported": "Маркдаун поддерживается", + "FileUploadInfo": "Перетащите или вставьте скопированное изображение.", + "PostDescriptionHint": "* Будет отображаться при предварительном просмотре ссылки на статью, поддерживается HTML.", + "ReadMore": "Продолжить чтение", + "MemberNotPublishedPostYet": "Постов пока нет!", + "UpdateUserWebSiteInfo": "Пример: https://johndoe.com", + "UpdateUserTwitterInfo": "Пример: Джондо", + "UpdateUserGithubInfo": "Пример: Джондо", + "UpdateUserLinkedinInfo": "Пример: https://www.linkedin.com/...", + "UpdateUserCompanyInfo": "Пример: Волософт", + "UpdateUserJobTitleInfo": "Пример: Разработчик программного обеспечения", + "WebSite": "Веб-сайт", + "UserName": "Имя пользователя", + "FullURL": "Полный URL-адрес", + "JobTitle": "Должность", + "PersonalWebsite": "ПЕРСОНАЛЬНЫЙ САЙТ", + "EditProfile": "Редактировать профиль", + "MoreFromBlog": "Еще из блога", + "MoreFromUser": "Еще от {0}", + "BlogPosts": "Сообщения" } } \ No newline at end of file diff --git a/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo/Blogging/Localization/Resources/sk.json b/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo/Blogging/Localization/Resources/sk.json index ca32f21e7c..0dab5ae19e 100644 --- a/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo/Blogging/Localization/Resources/sk.json +++ b/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo/Blogging/Localization/Resources/sk.json @@ -19,12 +19,19 @@ "ReplyTo": "Odpovedať na {0}", "ContinueReading": "Pokračovať v čítaní", "DaysAgo": "pred {0} dňami", + "DayAgo": "pred {0} dňom", "YearsAgo": "pred {0} rokmi", + "YearAgo": "pred {0} rokom", "MonthsAgo": "pred {0} mesiacmi", + "MonthAgo": "pred {0} mesiacom", "WeeksAgo": "pred {0} týždňami", + "WeekAgo": "pred {0} týždňom", "MinutesAgo": "pred {0} minútami", + "MinuteAgo": "pred {0} minútou", "SecondsAgo": "pred {0} sekundami", + "SecondAgo": "pred {0} sekundou", "HoursAgo": "pred {0} hodinami", + "HourAgo": "pred {0} hodinou", "Now": "teraz", "Content": "Obsah", "SeeAll": "Pozri všetko", @@ -56,6 +63,26 @@ "ShareOn": "Zdieľať na", "TitleLengthWarning": "Do nadpisu zadajte maximálne 60 znakov, aby bol vhodný pre SEO!", "ClearCache": "Vyčistiť vyrovnávaciu pamäť", - "ClearCacheConfirmationMessage": "Ste si istý, že chcete vyčistiť vyrovnávaciu pamäť?" + "ClearCacheConfirmationMessage": "Ste si istý, že chcete vyčistiť vyrovnávaciu pamäť?", + "MarkdownSupported": "Markdown je podporovaný", + "FileUploadInfo": "Presuňte, pustite alebo prilepte skopírovaný obrázok.", + "PostDescriptionHint": "* Bude vykreslený v náhľade odkazu na článok, podporuje HTML", + "ReadMore": "Pokračovať v čítaní", + "MemberNotPublishedPostYet": "Zatiaľ žiadne príspevky!", + "UpdateUserWebSiteInfo": "Príklad: https://johndoe.com", + "UpdateUserTwitterInfo": "Príklad: johndoe", + "UpdateUserGithubInfo": "Príklad: johndoe", + "UpdateUserLinkedinInfo": "Príklad: https://www.linkedin.com/...", + "UpdateUserCompanyInfo": "Príklad: Volosoft", + "UpdateUserJobTitleInfo": "Príklad: Vývojár softvéru", + "WebSite": "Webové stránky", + "UserName": "Používateľské meno", + "FullURL": "Úplná adresa URL", + "JobTitle": "Názov práce", + "PersonalWebsite": "OSOBNÁ STRÁNKA", + "EditProfile": "Upraviť profil", + "MoreFromBlog": "Viac z blogu", + "MoreFromUser": "Viac od používateľa {0}", + "BlogPosts": "Príspevky" } } \ No newline at end of file diff --git a/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo/Blogging/Localization/Resources/sl.json b/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo/Blogging/Localization/Resources/sl.json index 32b50ec0d2..b0fbdb58a1 100644 --- a/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo/Blogging/Localization/Resources/sl.json +++ b/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo/Blogging/Localization/Resources/sl.json @@ -19,12 +19,19 @@ "ReplyTo": "Odgovori {0}", "ContinueReading": "Nadaljuj z branjem", "DaysAgo": "{0} dni nazaj", + "DayAgo": "pred {0} dnevom", "YearsAgo": "{0} let nazaj", + "YearAgo": "pred {0} letom", "MonthsAgo": "{0} mesecev nazaj", + "MonthAgo": "pred {0} mesecem", "WeeksAgo": "{0} tednov nazaj", + "WeekAgo": "pred {0} tednom", "MinutesAgo": "{0} minut nazaj", + "MinuteAgo": "pred {0} minuto", "SecondsAgo": "{0} sekund nazaj", + "SecondAgo": "Pred {0} sekundo", "HoursAgo": "{0} ur nazaj", + "HourAgo": "pred {0} uro", "Now": "zdaj", "Content": "Vsebina", "SeeAll": "Poglej vse", @@ -56,6 +63,26 @@ "ShareOn": "Delite naprej", "TitleLengthWarning": "Naj bo vaš naslov pod 60 znaki, da bo SEO prijazen!", "ClearCache": "Počistiti začasni pomnilnik", - "ClearCacheConfirmationMessage": "Ali ste prepričani, da želite počistiti predpomnilnik?" + "ClearCacheConfirmationMessage": "Ali ste prepričani, da želite počistiti predpomnilnik?", + "MarkdownSupported": "Markdown je podprt", + "FileUploadInfo": "Povlecite, spustite ali prilepite kopirano sliko.", + "PostDescriptionHint": "* Bo upodobljeno v predogledu povezave do članka, podpira HTML", + "ReadMore": "Nadaljujte z branjem", + "MemberNotPublishedPostYet": "Ni še nobene objave!", + "UpdateUserWebSiteInfo": "Primer: https://johndoe.com", + "UpdateUserTwitterInfo": "Primer: johndoe", + "UpdateUserGithubInfo": "Primer: johndoe", + "UpdateUserLinkedinInfo": "Primer: https://www.linkedin.com/...", + "UpdateUserCompanyInfo": "Primer: Volosoft", + "UpdateUserJobTitleInfo": "Primer: razvijalec programske opreme", + "WebSite": "Spletna stran", + "UserName": "Uporabniško ime", + "FullURL": "Celoten URL", + "JobTitle": "Naziv delovnega mesta", + "PersonalWebsite": "OSEBNO SPLETNO MESTO", + "EditProfile": "Uredi profil", + "MoreFromBlog": "Več iz bloga", + "MoreFromUser": "Več od {0}", + "BlogPosts": "Objave" } } \ No newline at end of file diff --git a/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo/Blogging/Localization/Resources/vi.json b/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo/Blogging/Localization/Resources/vi.json index 1caf95b634..d45bdeadfa 100644 --- a/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo/Blogging/Localization/Resources/vi.json +++ b/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo/Blogging/Localization/Resources/vi.json @@ -19,12 +19,19 @@ "ReplyTo": "Trả lời {0}", "ContinueReading": "Tiếp tục đọc", "DaysAgo": "{0} ngày trước", + "DayAgo": "{0} ngày trước", "YearsAgo": "{0} năm trước", + "YearAgo": "{0} năm trước", "MonthsAgo": "{0} tháng trước", + "MonthAgo": "{0} tháng trước", "WeeksAgo": "{0} tuần trước", + "WeekAgo": "{0} tuần trước", "MinutesAgo": "{0} phút trước", + "MinuteAgo": "{0} phút trước", "SecondsAgo": "{0} giây trước", + "SecondAgo": "{0} giây trước", "HoursAgo": "{0} giờ trước", + "HourAgo": "{0} giờ trước", "Now": "bây giờ", "Content": "Nội dung", "SeeAll": "Xem tất cả", @@ -56,6 +63,26 @@ "ShareOn": "Chia sẻ", "TitleLengthWarning": "Giữ kích thước tiêu đề của bạn dưới 60 ký tự để thân thiện với SEO!", "ClearCache": "Xóa bộ nhớ cache", - "ClearCacheConfirmationMessage": "Bạn có chắc chắn muốn xóa bộ nhớ cache không?" + "ClearCacheConfirmationMessage": "Bạn có chắc chắn muốn xóa bộ nhớ cache không?", + "MarkdownSupported": "Đánh dấu được hỗ trợ", + "FileUploadInfo": "Kéo, thả hoặc dán hình ảnh đã sao chép.", + "PostDescriptionHint": "* Sẽ được hiển thị trong bản xem trước liên kết bài viết, hỗ trợ HTML", + "ReadMore": "Tiếp tục đọc", + "MemberNotPublishedPostYet": "Chưa có bài viết nào!", + "UpdateUserWebSiteInfo": "Ví dụ: https://johndoe.com", + "UpdateUserTwitterInfo": "Ví dụ: johndoe", + "UpdateUserGithubInfo": "Ví dụ: johndoe", + "UpdateUserLinkedinInfo": "Ví dụ: https://www.linkedin.com/...", + "UpdateUserCompanyInfo": "Ví dụ: Volosoft", + "UpdateUserJobTitleInfo": "Ví dụ: Nhà phát triển phần mềm", + "WebSite": "Trang mạng", + "UserName": "tên tài khoản", + "FullURL": "URL đầy đủ", + "JobTitle": "Chức danh", + "PersonalWebsite": "TRANG WEB CÁ NHÂN", + "EditProfile": "Chỉnh sửa hồ sơ", + "MoreFromBlog": "Xem thêm từ blog", + "MoreFromUser": "Thông tin khác từ {0}", + "BlogPosts": "bài viết" } } \ No newline at end of file diff --git a/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo/Blogging/Localization/Resources/zh-Hans.json b/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo/Blogging/Localization/Resources/zh-Hans.json index bd5ca2b6df..e472f6509b 100644 --- a/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo/Blogging/Localization/Resources/zh-Hans.json +++ b/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo/Blogging/Localization/Resources/zh-Hans.json @@ -19,12 +19,19 @@ "ReplyTo": "回复 {0}", "ContinueReading": "继续阅读", "DaysAgo": "{0}天前", + "DayAgo": "{0} 天前", "YearsAgo": "{0}年前", + "YearAgo": "{0}年前", "MonthsAgo": "{0}月前", + "MonthAgo": "{0} 个月前", "WeeksAgo": "{0}周前", + "WeekAgo": "{0} 周前", "MinutesAgo": "{0}分前", + "MinuteAgo": "{0} 分钟前", "SecondsAgo": "{0}秒前", + "SecondAgo": "{0} 秒前", "HoursAgo": "{0}小时前", + "HourAgo": "{0} 小时前", "Now": "刚刚", "Content": "内容", "SeeAll": "查看所有", @@ -59,6 +66,23 @@ "ClearCacheConfirmationMessage": "您确定要清除缓存吗?", "MarkdownSupported": "支持 Markdown", "FileUploadInfo": "拖放,拖放,或粘贴一个复制的图像。", - "PostDescriptionHint": "*将在文章链接预览中呈现,支持HTML" + "PostDescriptionHint": "*将在文章链接预览中呈现,支持HTML", + "ReadMore": "继续阅读", + "MemberNotPublishedPostYet": "还没有帖子!", + "UpdateUserWebSiteInfo": "示例:https://johndoe.com", + "UpdateUserTwitterInfo": "示例:约翰多", + "UpdateUserGithubInfo": "示例:约翰多", + "UpdateUserLinkedinInfo": "示例:https://www.linkedin.com/...", + "UpdateUserCompanyInfo": "示例:沃洛软件", + "UpdateUserJobTitleInfo": "示例:软件开发人员", + "WebSite": "网站", + "UserName": "用户名", + "FullURL": "完整网址", + "JobTitle": "职称", + "PersonalWebsite": "个人网站", + "EditProfile": "编辑个人资料", + "MoreFromBlog": "更多来自博客", + "MoreFromUser": "更多来自{0}", + "BlogPosts": "帖子" } } \ No newline at end of file diff --git a/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo/Blogging/Localization/Resources/zh-Hant.json b/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo/Blogging/Localization/Resources/zh-Hant.json index 5583152163..492b4742f3 100644 --- a/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo/Blogging/Localization/Resources/zh-Hant.json +++ b/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo/Blogging/Localization/Resources/zh-Hant.json @@ -19,12 +19,19 @@ "ReplyTo": "回覆 {0}", "ContinueReading": "繼續閱讀", "DaysAgo": "{0}天前", + "DayAgo": "{0} 天前", "YearsAgo": "{0}年前", + "YearAgo": "{0}年前", "MonthsAgo": "{0}個月前", + "MonthAgo": "{0} 個月前", "WeeksAgo": "{0}週前", + "WeekAgo": "{0} 週前", "MinutesAgo": "{0}分前", + "MinuteAgo": "{0} 分鐘前", "SecondsAgo": "{0}秒前", + "SecondAgo": "{0} 秒前", "HoursAgo": "{0}小時前", + "HourAgo": "{0} 小時前", "Now": "剛剛", "Content": "內容", "SeeAll": "查看所有", @@ -56,6 +63,26 @@ "ShareOn": "分享在", "TitleLengthWarning": "為了優化搜索引擎,標題建議保持在60個字元以內", "ClearCache": "清除緩存", - "ClearCacheConfirmationMessage": "您確定要清除緩存嗎?" + "ClearCacheConfirmationMessage": "您確定要清除緩存嗎?", + "MarkdownSupported": "支持降價", + "FileUploadInfo": "拖放或貼上複製的圖像。", + "PostDescriptionHint": "* 會渲染在文章連結預覽中,支援HTML", + "ReadMore": "繼續閱讀", + "MemberNotPublishedPostYet": "還沒有貼文!", + "UpdateUserWebSiteInfo": "範例:https://johndoe.com", + "UpdateUserTwitterInfo": "例:約翰多", + "UpdateUserGithubInfo": "例:約翰多", + "UpdateUserLinkedinInfo": "範例:https://www.linkedin.com/...", + "UpdateUserCompanyInfo": "例:沃洛軟體", + "UpdateUserJobTitleInfo": "例:軟體開發人員", + "WebSite": "網站", + "UserName": "使用者名稱", + "FullURL": "完整網址", + "JobTitle": "職稱", + "PersonalWebsite": "個人網站", + "EditProfile": "編輯個人資料", + "MoreFromBlog": "更多來自博客", + "MoreFromUser": "更多來自{0}", + "BlogPosts": "貼文" } } \ No newline at end of file diff --git a/modules/client-simulation/demo/Volo.ClientSimulation.Demo/package.json b/modules/client-simulation/demo/Volo.ClientSimulation.Demo/package.json index 4e6412e3ba..1a48bf14cc 100644 --- a/modules/client-simulation/demo/Volo.ClientSimulation.Demo/package.json +++ b/modules/client-simulation/demo/Volo.ClientSimulation.Demo/package.json @@ -3,6 +3,6 @@ "name": "client-simulation-web", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "~8.0.0-rc.3" + "@abp/aspnetcore.mvc.ui.theme.basic": "~8.0.0" } } diff --git a/modules/client-simulation/demo/Volo.ClientSimulation.Demo/yarn.lock b/modules/client-simulation/demo/Volo.ClientSimulation.Demo/yarn.lock index 1d0f3b4e2a..f9b7466558 100644 --- a/modules/client-simulation/demo/Volo.ClientSimulation.Demo/yarn.lock +++ b/modules/client-simulation/demo/Volo.ClientSimulation.Demo/yarn.lock @@ -2,39 +2,39 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-8.0.0-rc.3.tgz#637ea220c9f988c1d0e1b152928f4409696439f2" - integrity sha512-xFJkcC2Oa8vLqMW0gU/3nXHsdFZOQq8+o9gUeLqDAhHZomnvEWsoivcd+LZs0xSDgQOee7N9h2buv9ERBoYGiA== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~8.0.0-rc.3" - -"@abp/aspnetcore.mvc.ui.theme.shared@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-8.0.0-rc.3.tgz#88904633feb5ce7dface4d27e9a31f4e5ace6b30" - integrity sha512-gMYI+xz/0JDgW2U7T3Lesx1o1U+Y+7zG/jVZO5FuMtlrsYhvT6V5BsKa9q/N7kSR0tfK8vsjblMBobqvbmG3SQ== - dependencies: - "@abp/aspnetcore.mvc.ui" "~8.0.0-rc.3" - "@abp/bootstrap" "~8.0.0-rc.3" - "@abp/bootstrap-datepicker" "~8.0.0-rc.3" - "@abp/bootstrap-daterangepicker" "~8.0.0-rc.3" - "@abp/datatables.net-bs5" "~8.0.0-rc.3" - "@abp/font-awesome" "~8.0.0-rc.3" - "@abp/jquery-form" "~8.0.0-rc.3" - "@abp/jquery-validation-unobtrusive" "~8.0.0-rc.3" - "@abp/lodash" "~8.0.0-rc.3" - "@abp/luxon" "~8.0.0-rc.3" - "@abp/malihu-custom-scrollbar-plugin" "~8.0.0-rc.3" - "@abp/moment" "~8.0.0-rc.3" - "@abp/select2" "~8.0.0-rc.3" - "@abp/sweetalert2" "~8.0.0-rc.3" - "@abp/timeago" "~8.0.0-rc.3" - "@abp/toastr" "~8.0.0-rc.3" - -"@abp/aspnetcore.mvc.ui@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-8.0.0-rc.3.tgz#09402ed4e7504c09b49a84d6ee590a5c87017ab8" - integrity sha512-82GfU8DtReq5RTrb2Fl0UHm+vEO0PvC/6DyFHm57nyWiL2dKByUqLd8NXQz+gqubWOA+IvJoLehbcC6iD+Y0VQ== +"@abp/aspnetcore.mvc.ui.theme.basic@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-8.0.0.tgz#c58d15186ad9842834c953e4d712009597ead5c2" + integrity sha512-d43CG48iS8vQvA85tSK7OlSHdcC9JuBT7mpN7DlLViiQewVeoKwdKkMhl5nkX4k0yNtqaRbWYlDD6kDp95TktA== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~8.0.0" + +"@abp/aspnetcore.mvc.ui.theme.shared@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-8.0.0.tgz#4931d9bd40fba2d3e38d3a2a8da2d2e1c1198cb1" + integrity sha512-YPusLRaR6sBN13rAH/rewZv4GIM3bUsmMjz7o8qVK/3CYTx/iCAn7JSvNBbhCJT151RLmdYrahOsr8UUXx4k8Q== + dependencies: + "@abp/aspnetcore.mvc.ui" "~8.0.0" + "@abp/bootstrap" "~8.0.0" + "@abp/bootstrap-datepicker" "~8.0.0" + "@abp/bootstrap-daterangepicker" "~8.0.0" + "@abp/datatables.net-bs5" "~8.0.0" + "@abp/font-awesome" "~8.0.0" + "@abp/jquery-form" "~8.0.0" + "@abp/jquery-validation-unobtrusive" "~8.0.0" + "@abp/lodash" "~8.0.0" + "@abp/luxon" "~8.0.0" + "@abp/malihu-custom-scrollbar-plugin" "~8.0.0" + "@abp/moment" "~8.0.0" + "@abp/select2" "~8.0.0" + "@abp/sweetalert2" "~8.0.0" + "@abp/timeago" "~8.0.0" + "@abp/toastr" "~8.0.0" + +"@abp/aspnetcore.mvc.ui@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-8.0.0.tgz#9760a1e4be0e2632e11a3f570209b1eefdf81607" + integrity sha512-+WBwpQfDmhP64BVSjyyiqRENpn5EBgcmA7JVMfmdmEJTrzx9ma7WSbLd5QxUxawMSkcjjnK95c5JdMVZXdaL8g== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -43,158 +43,158 @@ merge-stream "^2.0.0" micromatch "^4.0.2" -"@abp/bootstrap-datepicker@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-8.0.0-rc.3.tgz#7656fef148c8bdf7993fdae937427564535dea74" - integrity sha512-qW1XQ2zL+/9f9+Q9Db3E5eIOD8Itjtr0KFAO59tY3G3WEwvCOS85pXJ/I17nLRRo/A2Na4kx4Q/jdYr3DkOgDQ== +"@abp/bootstrap-datepicker@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-8.0.0.tgz#458e0acaf6aedbfb03df692b9b2ec87b9fdad954" + integrity sha512-UetR0ldw0u5i2ohNpeI8+W0AGrov8tiglTTNyx8sF6WMGcCNCtU72jZCOc9/z/q91AijQrtdHIqpN/1B91YiMw== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap-daterangepicker@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-8.0.0-rc.3.tgz#b6eb599b198f58c9a0690d2f779548137e10889f" - integrity sha512-TnZdtV0JHweVrrXCJZjxz+Cbk0lYznzELaA6oBbikCPhzIr2XvLqyHuLvERrFVxq80BZGsF7xUgC2K/Tw/RA8w== +"@abp/bootstrap-daterangepicker@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-8.0.0.tgz#613d2984d0f3981e0270d337b360c27397dbc480" + integrity sha512-nQFDtCp1+EuUfnoRmMcGvOgd4yZPMqjsThiW3m2KIV2Y+YlT52mZLBVpqRBpC2993Bs8E9Zpp4R7ebHJgacePg== dependencies: bootstrap-daterangepicker "^3.1.0" -"@abp/bootstrap@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-8.0.0-rc.3.tgz#8865c2536c353b904e6e96cb70e4280fe9928412" - integrity sha512-h7rDAp3eBQwARAkEZfJU+IBTXEiLwi3I5CYFQ92QdX/mC66R1cX1gYY7pR5Wj5f68VS2pURnNxJnONtS3E/Cyw== +"@abp/bootstrap@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-8.0.0.tgz#7d679f88af98de6ac2c0725b86d43f9ce40c4f5b" + integrity sha512-JX6o8uMrsqiMMvbkDRePDqfPFHtWTuKhSTDa77ryp/AZYKOEvJfkdLZGZmYWy7UsB1RNXilth8kMyibqnw0CGg== dependencies: - "@abp/core" "~8.0.0-rc.3" + "@abp/core" "~8.0.0" bootstrap "^5.1.3" -"@abp/core@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-8.0.0-rc.3.tgz#f399bc55c6ad20c2515a03bb9572c6a4499cfcf0" - integrity sha512-HUa0AfCDX3URnGWsZ/7aZMsXXQFjott05ebK9wF7QDcI7uInyMT5axlrQ/CniyU8GLaFEt3mdtLB7pOZzDnsRw== +"@abp/core@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-8.0.0.tgz#cc4d9c0da10fb922a4adea8df67f60bb02d95365" + integrity sha512-qM7jSTR2uAhjAcsaFNchA89rLBiiJpUsvDBFCz0SyOuFz5DYAHo1njlhICcVAHF7H3NxQfVIndGVSjvmqmLC7Q== dependencies: - "@abp/utils" "~8.0.0-rc.3" + "@abp/utils" "~8.0.0" -"@abp/datatables.net-bs5@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-8.0.0-rc.3.tgz#902d0770c54a5888f805cc97de0ed25d0c53dde9" - integrity sha512-gxYYBeEh81+R8SAh27uMm3paVffq+bYiQgUxpXNgEcyPGP2X7/hnzZNwViuI1t+IgpSuTf6AAt14db9eV6Masg== +"@abp/datatables.net-bs5@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-8.0.0.tgz#c874180ea85fd0b2598fde90e2207bea267870c6" + integrity sha512-8w4oXTQwFnb56NTpeXjUsITGeMtuxv18ZAPK8Zmw28s5uOoIV/d/bEp11hXPwSk3SrjlyLw0lDcZCItwD+W8DQ== dependencies: - "@abp/datatables.net" "~8.0.0-rc.3" + "@abp/datatables.net" "~8.0.0" datatables.net-bs5 "^1.11.4" -"@abp/datatables.net@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-8.0.0-rc.3.tgz#4ddfa9fe3246e72807c3b19307c7484af749f969" - integrity sha512-vQBenQsDxzryspNv0FEzpyUPBXddIkVhXUJ6tHc+IZ8q/+/2wUE0ZciSJm7qS/GQnGrYZv9wpIGbSRh/RgVvVA== +"@abp/datatables.net@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-8.0.0.tgz#09ef3575a611f6ec123d2a9d4d55b8c89e30d115" + integrity sha512-WmsAfQEGPWMTqHGbeiX3RVfIdfkrMOtUfJmR0JaYJMuQo3STmMSnzOgNMKviDeQdzplgoOOKp6j0OgIqcciowg== dependencies: - "@abp/jquery" "~8.0.0-rc.3" + "@abp/jquery" "~8.0.0" datatables.net "^1.11.4" -"@abp/font-awesome@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-8.0.0-rc.3.tgz#5f850c5479f48cf1c951de2354050d38fec6beab" - integrity sha512-GYwhoOThD5Bw0Ain5DkVXgHLpca83QGAy1T7I+6SmYyibYu5SdxV9ytD65tARH+dx9VpB3p9NeC5lRYuWdPzCQ== +"@abp/font-awesome@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-8.0.0.tgz#ce7debf296fddbdf79139147f6c9761ec68b6587" + integrity sha512-qeihwiim6YMcL3KfHU0CViVl5MamQXbTp4606r/hKQejCSbdqR9XupYVbTAyojXLCCRqfnDVuXwqWCFTKVbQow== dependencies: - "@abp/core" "~8.0.0-rc.3" + "@abp/core" "~8.0.0" "@fortawesome/fontawesome-free" "^5.15.4" -"@abp/jquery-form@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-8.0.0-rc.3.tgz#e414a0599448c37df3197af77a91c9a66d3ef77f" - integrity sha512-w58Zi28Ci/0DIzMzC/ihu+np7G2Hv+9DLrhLZKddEI9WisFuxao5EAhKseq7LWMPzG/QSw8skLZAY12YrEtp6w== +"@abp/jquery-form@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-8.0.0.tgz#466343a87baa2f53fb57cf377e0fb0c07ff02bb9" + integrity sha512-xinU2Yu0YWNjoaYnBm+OoN8oNX/BDPzbqGtjlH1s5I+M/S0yf/qlPEzvzL5+epBlt0GKza/SqwSsuAVsfuFrKQ== dependencies: - "@abp/jquery" "~8.0.0-rc.3" + "@abp/jquery" "~8.0.0" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-8.0.0-rc.3.tgz#a3ab6b5078449ba94c7206ed96286b902a766b6b" - integrity sha512-Gvmujjhrvqzu51fGSTAssxGVu4XolTLEwW3qR0zwWCc0+kXF/AXB98DD66A+hmGau54sTKRXVmBTpc4J3KpoWg== +"@abp/jquery-validation-unobtrusive@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-8.0.0.tgz#a641cc4bff6de178ed3429987017c00bf68e81f9" + integrity sha512-nUcktSW5tPifa6yNX9Y8zCi0VCUJklVSSd4f3eKfjU8SIcWq1eNfR6R+MHRZEVVmyB7xeYMBlc0yjxVYwUUlEw== dependencies: - "@abp/jquery-validation" "~8.0.0-rc.3" + "@abp/jquery-validation" "~8.0.0" jquery-validation-unobtrusive "^3.2.12" -"@abp/jquery-validation@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-8.0.0-rc.3.tgz#eee433a5fc076d92d734e7cea4bce00fbaacc963" - integrity sha512-Dq5Ru5WWqDKIDzetUicJzp6DHkGhNNHcjYyHF3n9o9+3T4+6dgRbXy5OYjIv9CADfui55rzckWH57FbCExiUSw== +"@abp/jquery-validation@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-8.0.0.tgz#674fe49294c622b07b843ab8721a5ae32024b7b9" + integrity sha512-B/aFZsKbILP4FPuc3eU17APkbBWJhjWXSQCiSXbHpDZYJN5km1l52gpuWR+7Yo5CXnAP06N+zUYHf86tNCZyBw== dependencies: - "@abp/jquery" "~8.0.0-rc.3" + "@abp/jquery" "~8.0.0" jquery-validation "^1.19.3" -"@abp/jquery@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-8.0.0-rc.3.tgz#e230c5db7a9aff526564c1b4b1820cd983a10726" - integrity sha512-o9xBZt55fT+ZYqmLjQ9dahtIgsRqz4VrXUsLgyKkUzr2p3gtgXCQqKfkIpdeE5aE3p1/T+et5U6FOMUCRZegvg== +"@abp/jquery@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-8.0.0.tgz#67bf40f87c335b1cba73f406f0102f35e820fd84" + integrity sha512-QhjBz/s1hVJcsYCbuZwNOtOCvsC93OMzMJHoZ2COaKkOZlt6tiRHhawdYVZloKDaMdfcd5tvqbkNhXtQ4K9AXg== dependencies: - "@abp/core" "~8.0.0-rc.3" + "@abp/core" "~8.0.0" jquery "~3.6.0" -"@abp/lodash@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-8.0.0-rc.3.tgz#5bf8019fa0e69ec1fac6ccacb1625b8564ed8944" - integrity sha512-Mo2r+bNZXdmM7Ri8SBi+M4OsfnLYejbQmcJ7wkDUPb4B3cDJtTB4YuJn8NWBBjaXwi08Myt1MvSFnT04N/t8Eg== +"@abp/lodash@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-8.0.0.tgz#4c809c4755ed11e70875d30f04312b0ff10a2dbb" + integrity sha512-V0y4k9HlggBvJtK5m35Gkori2IN0E4ec1JpBgGeaOStcvThAL1EtXip1kqPORMbC4wm+bgpT0QWhiqCeKBFoLg== dependencies: - "@abp/core" "~8.0.0-rc.3" + "@abp/core" "~8.0.0" lodash "^4.17.21" -"@abp/luxon@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-8.0.0-rc.3.tgz#cc0adcab4f1fa6bea2055be478ec9a86d00f1ba6" - integrity sha512-vKwfpAPL7GUJLvCpsJoJ5eXRH5Ypciez9J6QiK2Mjx1NauxR514wYtBqM/2I7hoJ4Oc9XvrAjcIon3r21dvCqQ== +"@abp/luxon@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-8.0.0.tgz#13a1145dc79d908f3398944c4bf0fb0457d94217" + integrity sha512-ZEGegnr+KCczPUrxxPmBUKGyiWkjAa4hDWb06mozdVP14zHQbbZfyKKXwrPfanwcj96Ui9i2klnrKPXuyppBJw== dependencies: - "@abp/core" "~8.0.0-rc.3" + "@abp/core" "~8.0.0" luxon "^2.3.0" -"@abp/malihu-custom-scrollbar-plugin@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-8.0.0-rc.3.tgz#195c897dced708de627941ce017e047c62191a56" - integrity sha512-svD7YJzHvufjmhoCKgQcjApIdVcGJwWhpsK260lwLiCvkdNDhxFjH+jfChhLMXPYpOnozrgrVx56oJqDWDrU3A== +"@abp/malihu-custom-scrollbar-plugin@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-8.0.0.tgz#fd4428d66ee38b4b2c02c0e300d5bd75dcda414d" + integrity sha512-jrD4AHd2Pdr28Ps3QtEDVDMSnK7xSumCKKSJl0R5SJcMyskByJ6gwydYqMGeQkCVnk1ztEZFfJNhOO35A+SBWA== dependencies: - "@abp/core" "~8.0.0-rc.3" + "@abp/core" "~8.0.0" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/moment@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-8.0.0-rc.3.tgz#7e2a74cd23c434b45f903b4f826f807a31b5982b" - integrity sha512-E0mob3xj0frslPovdHbsdaFB5oLimORFA86uQJ5KVSEaDOXYKuEqUomMcqg2LRVdzzKd7ai6QkuH3p7qbJonww== +"@abp/moment@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-8.0.0.tgz#26d0932bf4dac4dee25d0940eea50fcfeb37a69b" + integrity sha512-fgh0pXdxPi5Y9VnC6f12kwJmGQL4dowZtVp8lbNEjnCFiocAhEOOuN9gkTGk8y0xEhXroliW7wbaB2MJPINKhg== dependencies: moment "^2.9.0" -"@abp/select2@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-8.0.0-rc.3.tgz#77dd12185f6d03553230c7516e40603310f28f4f" - integrity sha512-9O+IHIB6n+WfLzh6SVyC01OIU3qWzhoT3DofAc329cyI73NJSPuOvmkQtQVYWnkAI/6+B6qYF3A4umD/EoPouQ== +"@abp/select2@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-8.0.0.tgz#4a4ebd63f2b79d663dab709decb2f1b1f510950f" + integrity sha512-kl3of/L0GSHyxt6WYnBDdBqqtoUscY9qubaMHZrk9y1zOVXOM0JUQoyu2KDQhOZm7iCu34ATX47NAw59eb9Omw== dependencies: - "@abp/core" "~8.0.0-rc.3" + "@abp/core" "~8.0.0" select2 "^4.0.13" -"@abp/sweetalert2@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-8.0.0-rc.3.tgz#021afc3457cf72c2b6dd298bb981faa741fc1293" - integrity sha512-b67UC/uZ9gWt2X5MeUnKg98FkhvJ+Azsq4PHcFBdUTZL/5ItJ8F6UsOTpT7Z7cUXFmJn/RTcPrgQDsK63CZltw== +"@abp/sweetalert2@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-8.0.0.tgz#369c04e433eead8e7171cd84298bb3e4ecb14050" + integrity sha512-riaHcFdozJ8R/sAdhtnfa7GHhWjptnQODrZ2bqBkcKuw2d8LKQ+2v3tcflaWWHwsOmGVbki3EhJJPdFWOtli/w== dependencies: - "@abp/core" "~8.0.0-rc.3" + "@abp/core" "~8.0.0" sweetalert2 "^11.3.6" -"@abp/timeago@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-8.0.0-rc.3.tgz#b3e63ff94bce8ad59b02d8c4490f580e60630f00" - integrity sha512-Pmm6Jj7VT1PW/Wfh1ozFFIdpFvH8cGKfHU2sYgwHuw4U9YQUd8ZTIDaZRMhuN9QqnGlmFtUZsXzoIMZJDvOq5w== +"@abp/timeago@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-8.0.0.tgz#93947505b68f369df10bb38cd8c05376e1c1cbcb" + integrity sha512-Q+e5CvvFAU21hGuIXREtIeEl8WlGpsNqK+QbCRbjNvM0HgCPH/gRQNpAV+S7TqaI5W2Uggfcsd7GvTH3GtMv7g== dependencies: - "@abp/jquery" "~8.0.0-rc.3" + "@abp/jquery" "~8.0.0" timeago "^1.6.7" -"@abp/toastr@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-8.0.0-rc.3.tgz#5b0d267951e025ca77a611c2fa9b606e92bd830a" - integrity sha512-hfDzyMSgbjriAALdrcnx/qonN2lquF7HM4QH8nt1E8/vWOkd8bUL/kyAoIL8rfS94zr62UUZTEDezoCfHwif+w== +"@abp/toastr@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-8.0.0.tgz#d409fec3fb1e5a886d0a03b0f58449a2f8a563d9" + integrity sha512-7evxuHJ+ZJtyCoIv0+HY/av5FC8Y5UzBtVjEB8Ol8RvhH5PBkErguPg9qPZvYcpHjJlYN+iKYAuXdQLZdXHwUQ== dependencies: - "@abp/jquery" "~8.0.0-rc.3" + "@abp/jquery" "~8.0.0" toastr "^2.1.4" -"@abp/utils@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-8.0.0-rc.3.tgz#01491fb943eb3a41d4ddbe854e5330b66807d522" - integrity sha512-cuTwsy+FEh3dEnlDDi0s8d3qpWgP3rwqWgg5LlMF0pY/OobJcCLtuo5Zy9bncKL3wFHXVEk6UviYcNkSOkzvtQ== +"@abp/utils@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-8.0.0.tgz#3de8e34e97e10ac9c2b8c1c194bf6b034fde302f" + integrity sha512-F8LsEedqkngbeFsszdZi1lshFqr++anyJFBoaRsKRw6hJPDPrYtHoOWEQ+p7QcH5UVVzVywQUGMNM+gmAT0vGQ== dependencies: just-compare "^2.3.0" diff --git a/modules/cms-kit/angular/package.json b/modules/cms-kit/angular/package.json index cb8349d464..2367cb95dd 100644 --- a/modules/cms-kit/angular/package.json +++ b/modules/cms-kit/angular/package.json @@ -15,11 +15,11 @@ }, "private": true, "dependencies": { - "@abp/ng.account": "~8.0.0-rc.3", - "@abp/ng.identity": "~8.0.0-rc.3", - "@abp/ng.setting-management": "~8.0.0-rc.3", - "@abp/ng.tenant-management": "~8.0.0-rc.3", - "@abp/ng.theme.basic": "~8.0.0-rc.3", + "@abp/ng.account": "~8.0.0", + "@abp/ng.identity": "~8.0.0", + "@abp/ng.setting-management": "~8.0.0", + "@abp/ng.tenant-management": "~8.0.0", + "@abp/ng.theme.basic": "~8.0.0", "@angular/animations": "~10.0.0", "@angular/common": "~10.0.0", "@angular/compiler": "~10.0.0", diff --git a/modules/cms-kit/angular/projects/cms-kit/package.json b/modules/cms-kit/angular/projects/cms-kit/package.json index 19f5b464ed..9e9fc83a60 100644 --- a/modules/cms-kit/angular/projects/cms-kit/package.json +++ b/modules/cms-kit/angular/projects/cms-kit/package.json @@ -4,8 +4,8 @@ "peerDependencies": { "@angular/common": "^9.1.11", "@angular/core": "^9.1.11", - "@abp/ng.core": ">=8.0.0-rc.3", - "@abp/ng.theme.shared": ">=8.0.0-rc.3" + "@abp/ng.core": ">=8.0.0", + "@abp/ng.theme.shared": ">=8.0.0" }, "dependencies": { "tslib": "^2.0.0" diff --git a/modules/cms-kit/host/Volo.CmsKit.IdentityServer/package.json b/modules/cms-kit/host/Volo.CmsKit.IdentityServer/package.json index a047885652..c3095a2845 100644 --- a/modules/cms-kit/host/Volo.CmsKit.IdentityServer/package.json +++ b/modules/cms-kit/host/Volo.CmsKit.IdentityServer/package.json @@ -3,6 +3,6 @@ "name": "my-app-identityserver", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "~8.0.0-rc.3" + "@abp/aspnetcore.mvc.ui.theme.basic": "~8.0.0" } } diff --git a/modules/cms-kit/host/Volo.CmsKit.IdentityServer/yarn.lock b/modules/cms-kit/host/Volo.CmsKit.IdentityServer/yarn.lock index 1d0f3b4e2a..f9b7466558 100644 --- a/modules/cms-kit/host/Volo.CmsKit.IdentityServer/yarn.lock +++ b/modules/cms-kit/host/Volo.CmsKit.IdentityServer/yarn.lock @@ -2,39 +2,39 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-8.0.0-rc.3.tgz#637ea220c9f988c1d0e1b152928f4409696439f2" - integrity sha512-xFJkcC2Oa8vLqMW0gU/3nXHsdFZOQq8+o9gUeLqDAhHZomnvEWsoivcd+LZs0xSDgQOee7N9h2buv9ERBoYGiA== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~8.0.0-rc.3" - -"@abp/aspnetcore.mvc.ui.theme.shared@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-8.0.0-rc.3.tgz#88904633feb5ce7dface4d27e9a31f4e5ace6b30" - integrity sha512-gMYI+xz/0JDgW2U7T3Lesx1o1U+Y+7zG/jVZO5FuMtlrsYhvT6V5BsKa9q/N7kSR0tfK8vsjblMBobqvbmG3SQ== - dependencies: - "@abp/aspnetcore.mvc.ui" "~8.0.0-rc.3" - "@abp/bootstrap" "~8.0.0-rc.3" - "@abp/bootstrap-datepicker" "~8.0.0-rc.3" - "@abp/bootstrap-daterangepicker" "~8.0.0-rc.3" - "@abp/datatables.net-bs5" "~8.0.0-rc.3" - "@abp/font-awesome" "~8.0.0-rc.3" - "@abp/jquery-form" "~8.0.0-rc.3" - "@abp/jquery-validation-unobtrusive" "~8.0.0-rc.3" - "@abp/lodash" "~8.0.0-rc.3" - "@abp/luxon" "~8.0.0-rc.3" - "@abp/malihu-custom-scrollbar-plugin" "~8.0.0-rc.3" - "@abp/moment" "~8.0.0-rc.3" - "@abp/select2" "~8.0.0-rc.3" - "@abp/sweetalert2" "~8.0.0-rc.3" - "@abp/timeago" "~8.0.0-rc.3" - "@abp/toastr" "~8.0.0-rc.3" - -"@abp/aspnetcore.mvc.ui@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-8.0.0-rc.3.tgz#09402ed4e7504c09b49a84d6ee590a5c87017ab8" - integrity sha512-82GfU8DtReq5RTrb2Fl0UHm+vEO0PvC/6DyFHm57nyWiL2dKByUqLd8NXQz+gqubWOA+IvJoLehbcC6iD+Y0VQ== +"@abp/aspnetcore.mvc.ui.theme.basic@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-8.0.0.tgz#c58d15186ad9842834c953e4d712009597ead5c2" + integrity sha512-d43CG48iS8vQvA85tSK7OlSHdcC9JuBT7mpN7DlLViiQewVeoKwdKkMhl5nkX4k0yNtqaRbWYlDD6kDp95TktA== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~8.0.0" + +"@abp/aspnetcore.mvc.ui.theme.shared@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-8.0.0.tgz#4931d9bd40fba2d3e38d3a2a8da2d2e1c1198cb1" + integrity sha512-YPusLRaR6sBN13rAH/rewZv4GIM3bUsmMjz7o8qVK/3CYTx/iCAn7JSvNBbhCJT151RLmdYrahOsr8UUXx4k8Q== + dependencies: + "@abp/aspnetcore.mvc.ui" "~8.0.0" + "@abp/bootstrap" "~8.0.0" + "@abp/bootstrap-datepicker" "~8.0.0" + "@abp/bootstrap-daterangepicker" "~8.0.0" + "@abp/datatables.net-bs5" "~8.0.0" + "@abp/font-awesome" "~8.0.0" + "@abp/jquery-form" "~8.0.0" + "@abp/jquery-validation-unobtrusive" "~8.0.0" + "@abp/lodash" "~8.0.0" + "@abp/luxon" "~8.0.0" + "@abp/malihu-custom-scrollbar-plugin" "~8.0.0" + "@abp/moment" "~8.0.0" + "@abp/select2" "~8.0.0" + "@abp/sweetalert2" "~8.0.0" + "@abp/timeago" "~8.0.0" + "@abp/toastr" "~8.0.0" + +"@abp/aspnetcore.mvc.ui@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-8.0.0.tgz#9760a1e4be0e2632e11a3f570209b1eefdf81607" + integrity sha512-+WBwpQfDmhP64BVSjyyiqRENpn5EBgcmA7JVMfmdmEJTrzx9ma7WSbLd5QxUxawMSkcjjnK95c5JdMVZXdaL8g== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -43,158 +43,158 @@ merge-stream "^2.0.0" micromatch "^4.0.2" -"@abp/bootstrap-datepicker@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-8.0.0-rc.3.tgz#7656fef148c8bdf7993fdae937427564535dea74" - integrity sha512-qW1XQ2zL+/9f9+Q9Db3E5eIOD8Itjtr0KFAO59tY3G3WEwvCOS85pXJ/I17nLRRo/A2Na4kx4Q/jdYr3DkOgDQ== +"@abp/bootstrap-datepicker@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-8.0.0.tgz#458e0acaf6aedbfb03df692b9b2ec87b9fdad954" + integrity sha512-UetR0ldw0u5i2ohNpeI8+W0AGrov8tiglTTNyx8sF6WMGcCNCtU72jZCOc9/z/q91AijQrtdHIqpN/1B91YiMw== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap-daterangepicker@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-8.0.0-rc.3.tgz#b6eb599b198f58c9a0690d2f779548137e10889f" - integrity sha512-TnZdtV0JHweVrrXCJZjxz+Cbk0lYznzELaA6oBbikCPhzIr2XvLqyHuLvERrFVxq80BZGsF7xUgC2K/Tw/RA8w== +"@abp/bootstrap-daterangepicker@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-8.0.0.tgz#613d2984d0f3981e0270d337b360c27397dbc480" + integrity sha512-nQFDtCp1+EuUfnoRmMcGvOgd4yZPMqjsThiW3m2KIV2Y+YlT52mZLBVpqRBpC2993Bs8E9Zpp4R7ebHJgacePg== dependencies: bootstrap-daterangepicker "^3.1.0" -"@abp/bootstrap@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-8.0.0-rc.3.tgz#8865c2536c353b904e6e96cb70e4280fe9928412" - integrity sha512-h7rDAp3eBQwARAkEZfJU+IBTXEiLwi3I5CYFQ92QdX/mC66R1cX1gYY7pR5Wj5f68VS2pURnNxJnONtS3E/Cyw== +"@abp/bootstrap@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-8.0.0.tgz#7d679f88af98de6ac2c0725b86d43f9ce40c4f5b" + integrity sha512-JX6o8uMrsqiMMvbkDRePDqfPFHtWTuKhSTDa77ryp/AZYKOEvJfkdLZGZmYWy7UsB1RNXilth8kMyibqnw0CGg== dependencies: - "@abp/core" "~8.0.0-rc.3" + "@abp/core" "~8.0.0" bootstrap "^5.1.3" -"@abp/core@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-8.0.0-rc.3.tgz#f399bc55c6ad20c2515a03bb9572c6a4499cfcf0" - integrity sha512-HUa0AfCDX3URnGWsZ/7aZMsXXQFjott05ebK9wF7QDcI7uInyMT5axlrQ/CniyU8GLaFEt3mdtLB7pOZzDnsRw== +"@abp/core@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-8.0.0.tgz#cc4d9c0da10fb922a4adea8df67f60bb02d95365" + integrity sha512-qM7jSTR2uAhjAcsaFNchA89rLBiiJpUsvDBFCz0SyOuFz5DYAHo1njlhICcVAHF7H3NxQfVIndGVSjvmqmLC7Q== dependencies: - "@abp/utils" "~8.0.0-rc.3" + "@abp/utils" "~8.0.0" -"@abp/datatables.net-bs5@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-8.0.0-rc.3.tgz#902d0770c54a5888f805cc97de0ed25d0c53dde9" - integrity sha512-gxYYBeEh81+R8SAh27uMm3paVffq+bYiQgUxpXNgEcyPGP2X7/hnzZNwViuI1t+IgpSuTf6AAt14db9eV6Masg== +"@abp/datatables.net-bs5@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-8.0.0.tgz#c874180ea85fd0b2598fde90e2207bea267870c6" + integrity sha512-8w4oXTQwFnb56NTpeXjUsITGeMtuxv18ZAPK8Zmw28s5uOoIV/d/bEp11hXPwSk3SrjlyLw0lDcZCItwD+W8DQ== dependencies: - "@abp/datatables.net" "~8.0.0-rc.3" + "@abp/datatables.net" "~8.0.0" datatables.net-bs5 "^1.11.4" -"@abp/datatables.net@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-8.0.0-rc.3.tgz#4ddfa9fe3246e72807c3b19307c7484af749f969" - integrity sha512-vQBenQsDxzryspNv0FEzpyUPBXddIkVhXUJ6tHc+IZ8q/+/2wUE0ZciSJm7qS/GQnGrYZv9wpIGbSRh/RgVvVA== +"@abp/datatables.net@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-8.0.0.tgz#09ef3575a611f6ec123d2a9d4d55b8c89e30d115" + integrity sha512-WmsAfQEGPWMTqHGbeiX3RVfIdfkrMOtUfJmR0JaYJMuQo3STmMSnzOgNMKviDeQdzplgoOOKp6j0OgIqcciowg== dependencies: - "@abp/jquery" "~8.0.0-rc.3" + "@abp/jquery" "~8.0.0" datatables.net "^1.11.4" -"@abp/font-awesome@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-8.0.0-rc.3.tgz#5f850c5479f48cf1c951de2354050d38fec6beab" - integrity sha512-GYwhoOThD5Bw0Ain5DkVXgHLpca83QGAy1T7I+6SmYyibYu5SdxV9ytD65tARH+dx9VpB3p9NeC5lRYuWdPzCQ== +"@abp/font-awesome@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-8.0.0.tgz#ce7debf296fddbdf79139147f6c9761ec68b6587" + integrity sha512-qeihwiim6YMcL3KfHU0CViVl5MamQXbTp4606r/hKQejCSbdqR9XupYVbTAyojXLCCRqfnDVuXwqWCFTKVbQow== dependencies: - "@abp/core" "~8.0.0-rc.3" + "@abp/core" "~8.0.0" "@fortawesome/fontawesome-free" "^5.15.4" -"@abp/jquery-form@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-8.0.0-rc.3.tgz#e414a0599448c37df3197af77a91c9a66d3ef77f" - integrity sha512-w58Zi28Ci/0DIzMzC/ihu+np7G2Hv+9DLrhLZKddEI9WisFuxao5EAhKseq7LWMPzG/QSw8skLZAY12YrEtp6w== +"@abp/jquery-form@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-8.0.0.tgz#466343a87baa2f53fb57cf377e0fb0c07ff02bb9" + integrity sha512-xinU2Yu0YWNjoaYnBm+OoN8oNX/BDPzbqGtjlH1s5I+M/S0yf/qlPEzvzL5+epBlt0GKza/SqwSsuAVsfuFrKQ== dependencies: - "@abp/jquery" "~8.0.0-rc.3" + "@abp/jquery" "~8.0.0" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-8.0.0-rc.3.tgz#a3ab6b5078449ba94c7206ed96286b902a766b6b" - integrity sha512-Gvmujjhrvqzu51fGSTAssxGVu4XolTLEwW3qR0zwWCc0+kXF/AXB98DD66A+hmGau54sTKRXVmBTpc4J3KpoWg== +"@abp/jquery-validation-unobtrusive@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-8.0.0.tgz#a641cc4bff6de178ed3429987017c00bf68e81f9" + integrity sha512-nUcktSW5tPifa6yNX9Y8zCi0VCUJklVSSd4f3eKfjU8SIcWq1eNfR6R+MHRZEVVmyB7xeYMBlc0yjxVYwUUlEw== dependencies: - "@abp/jquery-validation" "~8.0.0-rc.3" + "@abp/jquery-validation" "~8.0.0" jquery-validation-unobtrusive "^3.2.12" -"@abp/jquery-validation@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-8.0.0-rc.3.tgz#eee433a5fc076d92d734e7cea4bce00fbaacc963" - integrity sha512-Dq5Ru5WWqDKIDzetUicJzp6DHkGhNNHcjYyHF3n9o9+3T4+6dgRbXy5OYjIv9CADfui55rzckWH57FbCExiUSw== +"@abp/jquery-validation@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-8.0.0.tgz#674fe49294c622b07b843ab8721a5ae32024b7b9" + integrity sha512-B/aFZsKbILP4FPuc3eU17APkbBWJhjWXSQCiSXbHpDZYJN5km1l52gpuWR+7Yo5CXnAP06N+zUYHf86tNCZyBw== dependencies: - "@abp/jquery" "~8.0.0-rc.3" + "@abp/jquery" "~8.0.0" jquery-validation "^1.19.3" -"@abp/jquery@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-8.0.0-rc.3.tgz#e230c5db7a9aff526564c1b4b1820cd983a10726" - integrity sha512-o9xBZt55fT+ZYqmLjQ9dahtIgsRqz4VrXUsLgyKkUzr2p3gtgXCQqKfkIpdeE5aE3p1/T+et5U6FOMUCRZegvg== +"@abp/jquery@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-8.0.0.tgz#67bf40f87c335b1cba73f406f0102f35e820fd84" + integrity sha512-QhjBz/s1hVJcsYCbuZwNOtOCvsC93OMzMJHoZ2COaKkOZlt6tiRHhawdYVZloKDaMdfcd5tvqbkNhXtQ4K9AXg== dependencies: - "@abp/core" "~8.0.0-rc.3" + "@abp/core" "~8.0.0" jquery "~3.6.0" -"@abp/lodash@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-8.0.0-rc.3.tgz#5bf8019fa0e69ec1fac6ccacb1625b8564ed8944" - integrity sha512-Mo2r+bNZXdmM7Ri8SBi+M4OsfnLYejbQmcJ7wkDUPb4B3cDJtTB4YuJn8NWBBjaXwi08Myt1MvSFnT04N/t8Eg== +"@abp/lodash@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-8.0.0.tgz#4c809c4755ed11e70875d30f04312b0ff10a2dbb" + integrity sha512-V0y4k9HlggBvJtK5m35Gkori2IN0E4ec1JpBgGeaOStcvThAL1EtXip1kqPORMbC4wm+bgpT0QWhiqCeKBFoLg== dependencies: - "@abp/core" "~8.0.0-rc.3" + "@abp/core" "~8.0.0" lodash "^4.17.21" -"@abp/luxon@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-8.0.0-rc.3.tgz#cc0adcab4f1fa6bea2055be478ec9a86d00f1ba6" - integrity sha512-vKwfpAPL7GUJLvCpsJoJ5eXRH5Ypciez9J6QiK2Mjx1NauxR514wYtBqM/2I7hoJ4Oc9XvrAjcIon3r21dvCqQ== +"@abp/luxon@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-8.0.0.tgz#13a1145dc79d908f3398944c4bf0fb0457d94217" + integrity sha512-ZEGegnr+KCczPUrxxPmBUKGyiWkjAa4hDWb06mozdVP14zHQbbZfyKKXwrPfanwcj96Ui9i2klnrKPXuyppBJw== dependencies: - "@abp/core" "~8.0.0-rc.3" + "@abp/core" "~8.0.0" luxon "^2.3.0" -"@abp/malihu-custom-scrollbar-plugin@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-8.0.0-rc.3.tgz#195c897dced708de627941ce017e047c62191a56" - integrity sha512-svD7YJzHvufjmhoCKgQcjApIdVcGJwWhpsK260lwLiCvkdNDhxFjH+jfChhLMXPYpOnozrgrVx56oJqDWDrU3A== +"@abp/malihu-custom-scrollbar-plugin@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-8.0.0.tgz#fd4428d66ee38b4b2c02c0e300d5bd75dcda414d" + integrity sha512-jrD4AHd2Pdr28Ps3QtEDVDMSnK7xSumCKKSJl0R5SJcMyskByJ6gwydYqMGeQkCVnk1ztEZFfJNhOO35A+SBWA== dependencies: - "@abp/core" "~8.0.0-rc.3" + "@abp/core" "~8.0.0" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/moment@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-8.0.0-rc.3.tgz#7e2a74cd23c434b45f903b4f826f807a31b5982b" - integrity sha512-E0mob3xj0frslPovdHbsdaFB5oLimORFA86uQJ5KVSEaDOXYKuEqUomMcqg2LRVdzzKd7ai6QkuH3p7qbJonww== +"@abp/moment@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-8.0.0.tgz#26d0932bf4dac4dee25d0940eea50fcfeb37a69b" + integrity sha512-fgh0pXdxPi5Y9VnC6f12kwJmGQL4dowZtVp8lbNEjnCFiocAhEOOuN9gkTGk8y0xEhXroliW7wbaB2MJPINKhg== dependencies: moment "^2.9.0" -"@abp/select2@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-8.0.0-rc.3.tgz#77dd12185f6d03553230c7516e40603310f28f4f" - integrity sha512-9O+IHIB6n+WfLzh6SVyC01OIU3qWzhoT3DofAc329cyI73NJSPuOvmkQtQVYWnkAI/6+B6qYF3A4umD/EoPouQ== +"@abp/select2@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-8.0.0.tgz#4a4ebd63f2b79d663dab709decb2f1b1f510950f" + integrity sha512-kl3of/L0GSHyxt6WYnBDdBqqtoUscY9qubaMHZrk9y1zOVXOM0JUQoyu2KDQhOZm7iCu34ATX47NAw59eb9Omw== dependencies: - "@abp/core" "~8.0.0-rc.3" + "@abp/core" "~8.0.0" select2 "^4.0.13" -"@abp/sweetalert2@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-8.0.0-rc.3.tgz#021afc3457cf72c2b6dd298bb981faa741fc1293" - integrity sha512-b67UC/uZ9gWt2X5MeUnKg98FkhvJ+Azsq4PHcFBdUTZL/5ItJ8F6UsOTpT7Z7cUXFmJn/RTcPrgQDsK63CZltw== +"@abp/sweetalert2@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-8.0.0.tgz#369c04e433eead8e7171cd84298bb3e4ecb14050" + integrity sha512-riaHcFdozJ8R/sAdhtnfa7GHhWjptnQODrZ2bqBkcKuw2d8LKQ+2v3tcflaWWHwsOmGVbki3EhJJPdFWOtli/w== dependencies: - "@abp/core" "~8.0.0-rc.3" + "@abp/core" "~8.0.0" sweetalert2 "^11.3.6" -"@abp/timeago@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-8.0.0-rc.3.tgz#b3e63ff94bce8ad59b02d8c4490f580e60630f00" - integrity sha512-Pmm6Jj7VT1PW/Wfh1ozFFIdpFvH8cGKfHU2sYgwHuw4U9YQUd8ZTIDaZRMhuN9QqnGlmFtUZsXzoIMZJDvOq5w== +"@abp/timeago@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-8.0.0.tgz#93947505b68f369df10bb38cd8c05376e1c1cbcb" + integrity sha512-Q+e5CvvFAU21hGuIXREtIeEl8WlGpsNqK+QbCRbjNvM0HgCPH/gRQNpAV+S7TqaI5W2Uggfcsd7GvTH3GtMv7g== dependencies: - "@abp/jquery" "~8.0.0-rc.3" + "@abp/jquery" "~8.0.0" timeago "^1.6.7" -"@abp/toastr@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-8.0.0-rc.3.tgz#5b0d267951e025ca77a611c2fa9b606e92bd830a" - integrity sha512-hfDzyMSgbjriAALdrcnx/qonN2lquF7HM4QH8nt1E8/vWOkd8bUL/kyAoIL8rfS94zr62UUZTEDezoCfHwif+w== +"@abp/toastr@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-8.0.0.tgz#d409fec3fb1e5a886d0a03b0f58449a2f8a563d9" + integrity sha512-7evxuHJ+ZJtyCoIv0+HY/av5FC8Y5UzBtVjEB8Ol8RvhH5PBkErguPg9qPZvYcpHjJlYN+iKYAuXdQLZdXHwUQ== dependencies: - "@abp/jquery" "~8.0.0-rc.3" + "@abp/jquery" "~8.0.0" toastr "^2.1.4" -"@abp/utils@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-8.0.0-rc.3.tgz#01491fb943eb3a41d4ddbe854e5330b66807d522" - integrity sha512-cuTwsy+FEh3dEnlDDi0s8d3qpWgP3rwqWgg5LlMF0pY/OobJcCLtuo5Zy9bncKL3wFHXVEk6UviYcNkSOkzvtQ== +"@abp/utils@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-8.0.0.tgz#3de8e34e97e10ac9c2b8c1c194bf6b034fde302f" + integrity sha512-F8LsEedqkngbeFsszdZi1lshFqr++anyJFBoaRsKRw6hJPDPrYtHoOWEQ+p7QcH5UVVzVywQUGMNM+gmAT0vGQ== dependencies: just-compare "^2.3.0" diff --git a/modules/cms-kit/host/Volo.CmsKit.Web.Host/package.json b/modules/cms-kit/host/Volo.CmsKit.Web.Host/package.json index 0d892e1bbf..389a89a36f 100644 --- a/modules/cms-kit/host/Volo.CmsKit.Web.Host/package.json +++ b/modules/cms-kit/host/Volo.CmsKit.Web.Host/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "~8.0.0-rc.3" + "@abp/aspnetcore.mvc.ui.theme.basic": "~8.0.0" } } diff --git a/modules/cms-kit/host/Volo.CmsKit.Web.Host/yarn.lock b/modules/cms-kit/host/Volo.CmsKit.Web.Host/yarn.lock index 1d0f3b4e2a..f9b7466558 100644 --- a/modules/cms-kit/host/Volo.CmsKit.Web.Host/yarn.lock +++ b/modules/cms-kit/host/Volo.CmsKit.Web.Host/yarn.lock @@ -2,39 +2,39 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-8.0.0-rc.3.tgz#637ea220c9f988c1d0e1b152928f4409696439f2" - integrity sha512-xFJkcC2Oa8vLqMW0gU/3nXHsdFZOQq8+o9gUeLqDAhHZomnvEWsoivcd+LZs0xSDgQOee7N9h2buv9ERBoYGiA== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~8.0.0-rc.3" - -"@abp/aspnetcore.mvc.ui.theme.shared@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-8.0.0-rc.3.tgz#88904633feb5ce7dface4d27e9a31f4e5ace6b30" - integrity sha512-gMYI+xz/0JDgW2U7T3Lesx1o1U+Y+7zG/jVZO5FuMtlrsYhvT6V5BsKa9q/N7kSR0tfK8vsjblMBobqvbmG3SQ== - dependencies: - "@abp/aspnetcore.mvc.ui" "~8.0.0-rc.3" - "@abp/bootstrap" "~8.0.0-rc.3" - "@abp/bootstrap-datepicker" "~8.0.0-rc.3" - "@abp/bootstrap-daterangepicker" "~8.0.0-rc.3" - "@abp/datatables.net-bs5" "~8.0.0-rc.3" - "@abp/font-awesome" "~8.0.0-rc.3" - "@abp/jquery-form" "~8.0.0-rc.3" - "@abp/jquery-validation-unobtrusive" "~8.0.0-rc.3" - "@abp/lodash" "~8.0.0-rc.3" - "@abp/luxon" "~8.0.0-rc.3" - "@abp/malihu-custom-scrollbar-plugin" "~8.0.0-rc.3" - "@abp/moment" "~8.0.0-rc.3" - "@abp/select2" "~8.0.0-rc.3" - "@abp/sweetalert2" "~8.0.0-rc.3" - "@abp/timeago" "~8.0.0-rc.3" - "@abp/toastr" "~8.0.0-rc.3" - -"@abp/aspnetcore.mvc.ui@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-8.0.0-rc.3.tgz#09402ed4e7504c09b49a84d6ee590a5c87017ab8" - integrity sha512-82GfU8DtReq5RTrb2Fl0UHm+vEO0PvC/6DyFHm57nyWiL2dKByUqLd8NXQz+gqubWOA+IvJoLehbcC6iD+Y0VQ== +"@abp/aspnetcore.mvc.ui.theme.basic@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-8.0.0.tgz#c58d15186ad9842834c953e4d712009597ead5c2" + integrity sha512-d43CG48iS8vQvA85tSK7OlSHdcC9JuBT7mpN7DlLViiQewVeoKwdKkMhl5nkX4k0yNtqaRbWYlDD6kDp95TktA== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~8.0.0" + +"@abp/aspnetcore.mvc.ui.theme.shared@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-8.0.0.tgz#4931d9bd40fba2d3e38d3a2a8da2d2e1c1198cb1" + integrity sha512-YPusLRaR6sBN13rAH/rewZv4GIM3bUsmMjz7o8qVK/3CYTx/iCAn7JSvNBbhCJT151RLmdYrahOsr8UUXx4k8Q== + dependencies: + "@abp/aspnetcore.mvc.ui" "~8.0.0" + "@abp/bootstrap" "~8.0.0" + "@abp/bootstrap-datepicker" "~8.0.0" + "@abp/bootstrap-daterangepicker" "~8.0.0" + "@abp/datatables.net-bs5" "~8.0.0" + "@abp/font-awesome" "~8.0.0" + "@abp/jquery-form" "~8.0.0" + "@abp/jquery-validation-unobtrusive" "~8.0.0" + "@abp/lodash" "~8.0.0" + "@abp/luxon" "~8.0.0" + "@abp/malihu-custom-scrollbar-plugin" "~8.0.0" + "@abp/moment" "~8.0.0" + "@abp/select2" "~8.0.0" + "@abp/sweetalert2" "~8.0.0" + "@abp/timeago" "~8.0.0" + "@abp/toastr" "~8.0.0" + +"@abp/aspnetcore.mvc.ui@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-8.0.0.tgz#9760a1e4be0e2632e11a3f570209b1eefdf81607" + integrity sha512-+WBwpQfDmhP64BVSjyyiqRENpn5EBgcmA7JVMfmdmEJTrzx9ma7WSbLd5QxUxawMSkcjjnK95c5JdMVZXdaL8g== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -43,158 +43,158 @@ merge-stream "^2.0.0" micromatch "^4.0.2" -"@abp/bootstrap-datepicker@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-8.0.0-rc.3.tgz#7656fef148c8bdf7993fdae937427564535dea74" - integrity sha512-qW1XQ2zL+/9f9+Q9Db3E5eIOD8Itjtr0KFAO59tY3G3WEwvCOS85pXJ/I17nLRRo/A2Na4kx4Q/jdYr3DkOgDQ== +"@abp/bootstrap-datepicker@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-8.0.0.tgz#458e0acaf6aedbfb03df692b9b2ec87b9fdad954" + integrity sha512-UetR0ldw0u5i2ohNpeI8+W0AGrov8tiglTTNyx8sF6WMGcCNCtU72jZCOc9/z/q91AijQrtdHIqpN/1B91YiMw== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap-daterangepicker@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-8.0.0-rc.3.tgz#b6eb599b198f58c9a0690d2f779548137e10889f" - integrity sha512-TnZdtV0JHweVrrXCJZjxz+Cbk0lYznzELaA6oBbikCPhzIr2XvLqyHuLvERrFVxq80BZGsF7xUgC2K/Tw/RA8w== +"@abp/bootstrap-daterangepicker@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-8.0.0.tgz#613d2984d0f3981e0270d337b360c27397dbc480" + integrity sha512-nQFDtCp1+EuUfnoRmMcGvOgd4yZPMqjsThiW3m2KIV2Y+YlT52mZLBVpqRBpC2993Bs8E9Zpp4R7ebHJgacePg== dependencies: bootstrap-daterangepicker "^3.1.0" -"@abp/bootstrap@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-8.0.0-rc.3.tgz#8865c2536c353b904e6e96cb70e4280fe9928412" - integrity sha512-h7rDAp3eBQwARAkEZfJU+IBTXEiLwi3I5CYFQ92QdX/mC66R1cX1gYY7pR5Wj5f68VS2pURnNxJnONtS3E/Cyw== +"@abp/bootstrap@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-8.0.0.tgz#7d679f88af98de6ac2c0725b86d43f9ce40c4f5b" + integrity sha512-JX6o8uMrsqiMMvbkDRePDqfPFHtWTuKhSTDa77ryp/AZYKOEvJfkdLZGZmYWy7UsB1RNXilth8kMyibqnw0CGg== dependencies: - "@abp/core" "~8.0.0-rc.3" + "@abp/core" "~8.0.0" bootstrap "^5.1.3" -"@abp/core@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-8.0.0-rc.3.tgz#f399bc55c6ad20c2515a03bb9572c6a4499cfcf0" - integrity sha512-HUa0AfCDX3URnGWsZ/7aZMsXXQFjott05ebK9wF7QDcI7uInyMT5axlrQ/CniyU8GLaFEt3mdtLB7pOZzDnsRw== +"@abp/core@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-8.0.0.tgz#cc4d9c0da10fb922a4adea8df67f60bb02d95365" + integrity sha512-qM7jSTR2uAhjAcsaFNchA89rLBiiJpUsvDBFCz0SyOuFz5DYAHo1njlhICcVAHF7H3NxQfVIndGVSjvmqmLC7Q== dependencies: - "@abp/utils" "~8.0.0-rc.3" + "@abp/utils" "~8.0.0" -"@abp/datatables.net-bs5@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-8.0.0-rc.3.tgz#902d0770c54a5888f805cc97de0ed25d0c53dde9" - integrity sha512-gxYYBeEh81+R8SAh27uMm3paVffq+bYiQgUxpXNgEcyPGP2X7/hnzZNwViuI1t+IgpSuTf6AAt14db9eV6Masg== +"@abp/datatables.net-bs5@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-8.0.0.tgz#c874180ea85fd0b2598fde90e2207bea267870c6" + integrity sha512-8w4oXTQwFnb56NTpeXjUsITGeMtuxv18ZAPK8Zmw28s5uOoIV/d/bEp11hXPwSk3SrjlyLw0lDcZCItwD+W8DQ== dependencies: - "@abp/datatables.net" "~8.0.0-rc.3" + "@abp/datatables.net" "~8.0.0" datatables.net-bs5 "^1.11.4" -"@abp/datatables.net@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-8.0.0-rc.3.tgz#4ddfa9fe3246e72807c3b19307c7484af749f969" - integrity sha512-vQBenQsDxzryspNv0FEzpyUPBXddIkVhXUJ6tHc+IZ8q/+/2wUE0ZciSJm7qS/GQnGrYZv9wpIGbSRh/RgVvVA== +"@abp/datatables.net@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-8.0.0.tgz#09ef3575a611f6ec123d2a9d4d55b8c89e30d115" + integrity sha512-WmsAfQEGPWMTqHGbeiX3RVfIdfkrMOtUfJmR0JaYJMuQo3STmMSnzOgNMKviDeQdzplgoOOKp6j0OgIqcciowg== dependencies: - "@abp/jquery" "~8.0.0-rc.3" + "@abp/jquery" "~8.0.0" datatables.net "^1.11.4" -"@abp/font-awesome@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-8.0.0-rc.3.tgz#5f850c5479f48cf1c951de2354050d38fec6beab" - integrity sha512-GYwhoOThD5Bw0Ain5DkVXgHLpca83QGAy1T7I+6SmYyibYu5SdxV9ytD65tARH+dx9VpB3p9NeC5lRYuWdPzCQ== +"@abp/font-awesome@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-8.0.0.tgz#ce7debf296fddbdf79139147f6c9761ec68b6587" + integrity sha512-qeihwiim6YMcL3KfHU0CViVl5MamQXbTp4606r/hKQejCSbdqR9XupYVbTAyojXLCCRqfnDVuXwqWCFTKVbQow== dependencies: - "@abp/core" "~8.0.0-rc.3" + "@abp/core" "~8.0.0" "@fortawesome/fontawesome-free" "^5.15.4" -"@abp/jquery-form@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-8.0.0-rc.3.tgz#e414a0599448c37df3197af77a91c9a66d3ef77f" - integrity sha512-w58Zi28Ci/0DIzMzC/ihu+np7G2Hv+9DLrhLZKddEI9WisFuxao5EAhKseq7LWMPzG/QSw8skLZAY12YrEtp6w== +"@abp/jquery-form@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-8.0.0.tgz#466343a87baa2f53fb57cf377e0fb0c07ff02bb9" + integrity sha512-xinU2Yu0YWNjoaYnBm+OoN8oNX/BDPzbqGtjlH1s5I+M/S0yf/qlPEzvzL5+epBlt0GKza/SqwSsuAVsfuFrKQ== dependencies: - "@abp/jquery" "~8.0.0-rc.3" + "@abp/jquery" "~8.0.0" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-8.0.0-rc.3.tgz#a3ab6b5078449ba94c7206ed96286b902a766b6b" - integrity sha512-Gvmujjhrvqzu51fGSTAssxGVu4XolTLEwW3qR0zwWCc0+kXF/AXB98DD66A+hmGau54sTKRXVmBTpc4J3KpoWg== +"@abp/jquery-validation-unobtrusive@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-8.0.0.tgz#a641cc4bff6de178ed3429987017c00bf68e81f9" + integrity sha512-nUcktSW5tPifa6yNX9Y8zCi0VCUJklVSSd4f3eKfjU8SIcWq1eNfR6R+MHRZEVVmyB7xeYMBlc0yjxVYwUUlEw== dependencies: - "@abp/jquery-validation" "~8.0.0-rc.3" + "@abp/jquery-validation" "~8.0.0" jquery-validation-unobtrusive "^3.2.12" -"@abp/jquery-validation@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-8.0.0-rc.3.tgz#eee433a5fc076d92d734e7cea4bce00fbaacc963" - integrity sha512-Dq5Ru5WWqDKIDzetUicJzp6DHkGhNNHcjYyHF3n9o9+3T4+6dgRbXy5OYjIv9CADfui55rzckWH57FbCExiUSw== +"@abp/jquery-validation@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-8.0.0.tgz#674fe49294c622b07b843ab8721a5ae32024b7b9" + integrity sha512-B/aFZsKbILP4FPuc3eU17APkbBWJhjWXSQCiSXbHpDZYJN5km1l52gpuWR+7Yo5CXnAP06N+zUYHf86tNCZyBw== dependencies: - "@abp/jquery" "~8.0.0-rc.3" + "@abp/jquery" "~8.0.0" jquery-validation "^1.19.3" -"@abp/jquery@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-8.0.0-rc.3.tgz#e230c5db7a9aff526564c1b4b1820cd983a10726" - integrity sha512-o9xBZt55fT+ZYqmLjQ9dahtIgsRqz4VrXUsLgyKkUzr2p3gtgXCQqKfkIpdeE5aE3p1/T+et5U6FOMUCRZegvg== +"@abp/jquery@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-8.0.0.tgz#67bf40f87c335b1cba73f406f0102f35e820fd84" + integrity sha512-QhjBz/s1hVJcsYCbuZwNOtOCvsC93OMzMJHoZ2COaKkOZlt6tiRHhawdYVZloKDaMdfcd5tvqbkNhXtQ4K9AXg== dependencies: - "@abp/core" "~8.0.0-rc.3" + "@abp/core" "~8.0.0" jquery "~3.6.0" -"@abp/lodash@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-8.0.0-rc.3.tgz#5bf8019fa0e69ec1fac6ccacb1625b8564ed8944" - integrity sha512-Mo2r+bNZXdmM7Ri8SBi+M4OsfnLYejbQmcJ7wkDUPb4B3cDJtTB4YuJn8NWBBjaXwi08Myt1MvSFnT04N/t8Eg== +"@abp/lodash@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-8.0.0.tgz#4c809c4755ed11e70875d30f04312b0ff10a2dbb" + integrity sha512-V0y4k9HlggBvJtK5m35Gkori2IN0E4ec1JpBgGeaOStcvThAL1EtXip1kqPORMbC4wm+bgpT0QWhiqCeKBFoLg== dependencies: - "@abp/core" "~8.0.0-rc.3" + "@abp/core" "~8.0.0" lodash "^4.17.21" -"@abp/luxon@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-8.0.0-rc.3.tgz#cc0adcab4f1fa6bea2055be478ec9a86d00f1ba6" - integrity sha512-vKwfpAPL7GUJLvCpsJoJ5eXRH5Ypciez9J6QiK2Mjx1NauxR514wYtBqM/2I7hoJ4Oc9XvrAjcIon3r21dvCqQ== +"@abp/luxon@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-8.0.0.tgz#13a1145dc79d908f3398944c4bf0fb0457d94217" + integrity sha512-ZEGegnr+KCczPUrxxPmBUKGyiWkjAa4hDWb06mozdVP14zHQbbZfyKKXwrPfanwcj96Ui9i2klnrKPXuyppBJw== dependencies: - "@abp/core" "~8.0.0-rc.3" + "@abp/core" "~8.0.0" luxon "^2.3.0" -"@abp/malihu-custom-scrollbar-plugin@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-8.0.0-rc.3.tgz#195c897dced708de627941ce017e047c62191a56" - integrity sha512-svD7YJzHvufjmhoCKgQcjApIdVcGJwWhpsK260lwLiCvkdNDhxFjH+jfChhLMXPYpOnozrgrVx56oJqDWDrU3A== +"@abp/malihu-custom-scrollbar-plugin@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-8.0.0.tgz#fd4428d66ee38b4b2c02c0e300d5bd75dcda414d" + integrity sha512-jrD4AHd2Pdr28Ps3QtEDVDMSnK7xSumCKKSJl0R5SJcMyskByJ6gwydYqMGeQkCVnk1ztEZFfJNhOO35A+SBWA== dependencies: - "@abp/core" "~8.0.0-rc.3" + "@abp/core" "~8.0.0" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/moment@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-8.0.0-rc.3.tgz#7e2a74cd23c434b45f903b4f826f807a31b5982b" - integrity sha512-E0mob3xj0frslPovdHbsdaFB5oLimORFA86uQJ5KVSEaDOXYKuEqUomMcqg2LRVdzzKd7ai6QkuH3p7qbJonww== +"@abp/moment@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-8.0.0.tgz#26d0932bf4dac4dee25d0940eea50fcfeb37a69b" + integrity sha512-fgh0pXdxPi5Y9VnC6f12kwJmGQL4dowZtVp8lbNEjnCFiocAhEOOuN9gkTGk8y0xEhXroliW7wbaB2MJPINKhg== dependencies: moment "^2.9.0" -"@abp/select2@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-8.0.0-rc.3.tgz#77dd12185f6d03553230c7516e40603310f28f4f" - integrity sha512-9O+IHIB6n+WfLzh6SVyC01OIU3qWzhoT3DofAc329cyI73NJSPuOvmkQtQVYWnkAI/6+B6qYF3A4umD/EoPouQ== +"@abp/select2@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-8.0.0.tgz#4a4ebd63f2b79d663dab709decb2f1b1f510950f" + integrity sha512-kl3of/L0GSHyxt6WYnBDdBqqtoUscY9qubaMHZrk9y1zOVXOM0JUQoyu2KDQhOZm7iCu34ATX47NAw59eb9Omw== dependencies: - "@abp/core" "~8.0.0-rc.3" + "@abp/core" "~8.0.0" select2 "^4.0.13" -"@abp/sweetalert2@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-8.0.0-rc.3.tgz#021afc3457cf72c2b6dd298bb981faa741fc1293" - integrity sha512-b67UC/uZ9gWt2X5MeUnKg98FkhvJ+Azsq4PHcFBdUTZL/5ItJ8F6UsOTpT7Z7cUXFmJn/RTcPrgQDsK63CZltw== +"@abp/sweetalert2@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-8.0.0.tgz#369c04e433eead8e7171cd84298bb3e4ecb14050" + integrity sha512-riaHcFdozJ8R/sAdhtnfa7GHhWjptnQODrZ2bqBkcKuw2d8LKQ+2v3tcflaWWHwsOmGVbki3EhJJPdFWOtli/w== dependencies: - "@abp/core" "~8.0.0-rc.3" + "@abp/core" "~8.0.0" sweetalert2 "^11.3.6" -"@abp/timeago@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-8.0.0-rc.3.tgz#b3e63ff94bce8ad59b02d8c4490f580e60630f00" - integrity sha512-Pmm6Jj7VT1PW/Wfh1ozFFIdpFvH8cGKfHU2sYgwHuw4U9YQUd8ZTIDaZRMhuN9QqnGlmFtUZsXzoIMZJDvOq5w== +"@abp/timeago@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-8.0.0.tgz#93947505b68f369df10bb38cd8c05376e1c1cbcb" + integrity sha512-Q+e5CvvFAU21hGuIXREtIeEl8WlGpsNqK+QbCRbjNvM0HgCPH/gRQNpAV+S7TqaI5W2Uggfcsd7GvTH3GtMv7g== dependencies: - "@abp/jquery" "~8.0.0-rc.3" + "@abp/jquery" "~8.0.0" timeago "^1.6.7" -"@abp/toastr@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-8.0.0-rc.3.tgz#5b0d267951e025ca77a611c2fa9b606e92bd830a" - integrity sha512-hfDzyMSgbjriAALdrcnx/qonN2lquF7HM4QH8nt1E8/vWOkd8bUL/kyAoIL8rfS94zr62UUZTEDezoCfHwif+w== +"@abp/toastr@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-8.0.0.tgz#d409fec3fb1e5a886d0a03b0f58449a2f8a563d9" + integrity sha512-7evxuHJ+ZJtyCoIv0+HY/av5FC8Y5UzBtVjEB8Ol8RvhH5PBkErguPg9qPZvYcpHjJlYN+iKYAuXdQLZdXHwUQ== dependencies: - "@abp/jquery" "~8.0.0-rc.3" + "@abp/jquery" "~8.0.0" toastr "^2.1.4" -"@abp/utils@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-8.0.0-rc.3.tgz#01491fb943eb3a41d4ddbe854e5330b66807d522" - integrity sha512-cuTwsy+FEh3dEnlDDi0s8d3qpWgP3rwqWgg5LlMF0pY/OobJcCLtuo5Zy9bncKL3wFHXVEk6UviYcNkSOkzvtQ== +"@abp/utils@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-8.0.0.tgz#3de8e34e97e10ac9c2b8c1c194bf6b034fde302f" + integrity sha512-F8LsEedqkngbeFsszdZi1lshFqr++anyJFBoaRsKRw6hJPDPrYtHoOWEQ+p7QcH5UVVzVywQUGMNM+gmAT0vGQ== dependencies: just-compare "^2.3.0" diff --git a/modules/cms-kit/host/Volo.CmsKit.Web.Unified/package.json b/modules/cms-kit/host/Volo.CmsKit.Web.Unified/package.json index c886d9aed7..03a05d027c 100644 --- a/modules/cms-kit/host/Volo.CmsKit.Web.Unified/package.json +++ b/modules/cms-kit/host/Volo.CmsKit.Web.Unified/package.json @@ -3,7 +3,7 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "~8.0.0-rc.3", - "@abp/cms-kit": "8.0.0-rc.3" + "@abp/aspnetcore.mvc.ui.theme.basic": "~8.0.0", + "@abp/cms-kit": "8.0.0" } } diff --git a/modules/cms-kit/host/Volo.CmsKit.Web.Unified/yarn.lock b/modules/cms-kit/host/Volo.CmsKit.Web.Unified/yarn.lock index 6e9dcf3fb1..4a0c447fd0 100644 --- a/modules/cms-kit/host/Volo.CmsKit.Web.Unified/yarn.lock +++ b/modules/cms-kit/host/Volo.CmsKit.Web.Unified/yarn.lock @@ -2,39 +2,39 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-8.0.0-rc.3.tgz#637ea220c9f988c1d0e1b152928f4409696439f2" - integrity sha512-xFJkcC2Oa8vLqMW0gU/3nXHsdFZOQq8+o9gUeLqDAhHZomnvEWsoivcd+LZs0xSDgQOee7N9h2buv9ERBoYGiA== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~8.0.0-rc.3" - -"@abp/aspnetcore.mvc.ui.theme.shared@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-8.0.0-rc.3.tgz#88904633feb5ce7dface4d27e9a31f4e5ace6b30" - integrity sha512-gMYI+xz/0JDgW2U7T3Lesx1o1U+Y+7zG/jVZO5FuMtlrsYhvT6V5BsKa9q/N7kSR0tfK8vsjblMBobqvbmG3SQ== - dependencies: - "@abp/aspnetcore.mvc.ui" "~8.0.0-rc.3" - "@abp/bootstrap" "~8.0.0-rc.3" - "@abp/bootstrap-datepicker" "~8.0.0-rc.3" - "@abp/bootstrap-daterangepicker" "~8.0.0-rc.3" - "@abp/datatables.net-bs5" "~8.0.0-rc.3" - "@abp/font-awesome" "~8.0.0-rc.3" - "@abp/jquery-form" "~8.0.0-rc.3" - "@abp/jquery-validation-unobtrusive" "~8.0.0-rc.3" - "@abp/lodash" "~8.0.0-rc.3" - "@abp/luxon" "~8.0.0-rc.3" - "@abp/malihu-custom-scrollbar-plugin" "~8.0.0-rc.3" - "@abp/moment" "~8.0.0-rc.3" - "@abp/select2" "~8.0.0-rc.3" - "@abp/sweetalert2" "~8.0.0-rc.3" - "@abp/timeago" "~8.0.0-rc.3" - "@abp/toastr" "~8.0.0-rc.3" - -"@abp/aspnetcore.mvc.ui@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-8.0.0-rc.3.tgz#09402ed4e7504c09b49a84d6ee590a5c87017ab8" - integrity sha512-82GfU8DtReq5RTrb2Fl0UHm+vEO0PvC/6DyFHm57nyWiL2dKByUqLd8NXQz+gqubWOA+IvJoLehbcC6iD+Y0VQ== +"@abp/aspnetcore.mvc.ui.theme.basic@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-8.0.0.tgz#c58d15186ad9842834c953e4d712009597ead5c2" + integrity sha512-d43CG48iS8vQvA85tSK7OlSHdcC9JuBT7mpN7DlLViiQewVeoKwdKkMhl5nkX4k0yNtqaRbWYlDD6kDp95TktA== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~8.0.0" + +"@abp/aspnetcore.mvc.ui.theme.shared@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-8.0.0.tgz#4931d9bd40fba2d3e38d3a2a8da2d2e1c1198cb1" + integrity sha512-YPusLRaR6sBN13rAH/rewZv4GIM3bUsmMjz7o8qVK/3CYTx/iCAn7JSvNBbhCJT151RLmdYrahOsr8UUXx4k8Q== + dependencies: + "@abp/aspnetcore.mvc.ui" "~8.0.0" + "@abp/bootstrap" "~8.0.0" + "@abp/bootstrap-datepicker" "~8.0.0" + "@abp/bootstrap-daterangepicker" "~8.0.0" + "@abp/datatables.net-bs5" "~8.0.0" + "@abp/font-awesome" "~8.0.0" + "@abp/jquery-form" "~8.0.0" + "@abp/jquery-validation-unobtrusive" "~8.0.0" + "@abp/lodash" "~8.0.0" + "@abp/luxon" "~8.0.0" + "@abp/malihu-custom-scrollbar-plugin" "~8.0.0" + "@abp/moment" "~8.0.0" + "@abp/select2" "~8.0.0" + "@abp/sweetalert2" "~8.0.0" + "@abp/timeago" "~8.0.0" + "@abp/toastr" "~8.0.0" + +"@abp/aspnetcore.mvc.ui@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-8.0.0.tgz#9760a1e4be0e2632e11a3f570209b1eefdf81607" + integrity sha512-+WBwpQfDmhP64BVSjyyiqRENpn5EBgcmA7JVMfmdmEJTrzx9ma7WSbLd5QxUxawMSkcjjnK95c5JdMVZXdaL8g== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -43,257 +43,257 @@ merge-stream "^2.0.0" micromatch "^4.0.2" -"@abp/bootstrap-datepicker@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-8.0.0-rc.3.tgz#7656fef148c8bdf7993fdae937427564535dea74" - integrity sha512-qW1XQ2zL+/9f9+Q9Db3E5eIOD8Itjtr0KFAO59tY3G3WEwvCOS85pXJ/I17nLRRo/A2Na4kx4Q/jdYr3DkOgDQ== +"@abp/bootstrap-datepicker@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-8.0.0.tgz#458e0acaf6aedbfb03df692b9b2ec87b9fdad954" + integrity sha512-UetR0ldw0u5i2ohNpeI8+W0AGrov8tiglTTNyx8sF6WMGcCNCtU72jZCOc9/z/q91AijQrtdHIqpN/1B91YiMw== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap-daterangepicker@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-8.0.0-rc.3.tgz#b6eb599b198f58c9a0690d2f779548137e10889f" - integrity sha512-TnZdtV0JHweVrrXCJZjxz+Cbk0lYznzELaA6oBbikCPhzIr2XvLqyHuLvERrFVxq80BZGsF7xUgC2K/Tw/RA8w== +"@abp/bootstrap-daterangepicker@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-8.0.0.tgz#613d2984d0f3981e0270d337b360c27397dbc480" + integrity sha512-nQFDtCp1+EuUfnoRmMcGvOgd4yZPMqjsThiW3m2KIV2Y+YlT52mZLBVpqRBpC2993Bs8E9Zpp4R7ebHJgacePg== dependencies: bootstrap-daterangepicker "^3.1.0" -"@abp/bootstrap@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-8.0.0-rc.3.tgz#8865c2536c353b904e6e96cb70e4280fe9928412" - integrity sha512-h7rDAp3eBQwARAkEZfJU+IBTXEiLwi3I5CYFQ92QdX/mC66R1cX1gYY7pR5Wj5f68VS2pURnNxJnONtS3E/Cyw== +"@abp/bootstrap@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-8.0.0.tgz#7d679f88af98de6ac2c0725b86d43f9ce40c4f5b" + integrity sha512-JX6o8uMrsqiMMvbkDRePDqfPFHtWTuKhSTDa77ryp/AZYKOEvJfkdLZGZmYWy7UsB1RNXilth8kMyibqnw0CGg== dependencies: - "@abp/core" "~8.0.0-rc.3" + "@abp/core" "~8.0.0" bootstrap "^5.1.3" -"@abp/clipboard@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-8.0.0-rc.3.tgz#eb7211804967c97cf6678c42b7d756438ffcc22a" - integrity sha512-w9a1gJs8yZbeNkRQqSXxiOUqCLknh+5QM3CoVQudU46Kl4zh39ugPuEMKZhxcGaDsZWSTNuyMgUjzAWFhE/w6g== +"@abp/clipboard@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-8.0.0.tgz#cb597686e07e9ef68a09ebf7101498281939fb10" + integrity sha512-JonHbsCwJQ5iI45zy6lFu9kwXUYoRZC+t31N1w7fDMxekwPEjenBR4g33aGLIySTL7ExKiYjBsEVrCg8GKG/mg== dependencies: - "@abp/core" "~8.0.0-rc.3" + "@abp/core" "~8.0.0" clipboard "^2.0.8" -"@abp/cms-kit.admin@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/cms-kit.admin/-/cms-kit.admin-8.0.0-rc.3.tgz#68b1c171d375443216fcd124219d60474e8df943" - integrity sha512-nhr2Gi6m8tM4pMqkiV2t+uxBRt415pwgc6cYw2v2zH17REYZbFwXk+H3JxX8CWMlJG2BICGcYY+M9iwuPAP3Aw== +"@abp/cms-kit.admin@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/cms-kit.admin/-/cms-kit.admin-8.0.0.tgz#2eb5ed3eb5c35041b2dcb2a5a03f8804c7af2de7" + integrity sha512-5bKUjgql5hty74wxq28xAplGlrFbJrqglIxcB8qTW7H6DH0JTPrANx7YXuSdRcfQay5SX2Sg9qvJmt3uTtND+Q== dependencies: - "@abp/codemirror" "~8.0.0-rc.3" - "@abp/jstree" "~8.0.0-rc.3" - "@abp/slugify" "~8.0.0-rc.3" - "@abp/tui-editor" "~8.0.0-rc.3" - "@abp/uppy" "~8.0.0-rc.3" + "@abp/codemirror" "~8.0.0" + "@abp/jstree" "~8.0.0" + "@abp/slugify" "~8.0.0" + "@abp/tui-editor" "~8.0.0" + "@abp/uppy" "~8.0.0" -"@abp/cms-kit.public@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/cms-kit.public/-/cms-kit.public-8.0.0-rc.3.tgz#1d0c1d6bd9d6c6bd5b377ec6bd99a2a2003afb44" - integrity sha512-rozjFN+lXxz88rPwqkzt9XiXTvu9rmm8oFjQWn4Ew8oivnkMAGb6TkRjVIuobkyLDq4f/jPbxNoiFKi5EBEW9Q== +"@abp/cms-kit.public@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/cms-kit.public/-/cms-kit.public-8.0.0.tgz#9d0a0bc2f4e596222ebba4745b78543dc94b2abc" + integrity sha512-71EM2+VfMfhN5I/8DgLDVhUIy+yUSOS06ScQdtIB9MEutn7aRzP4Q1GptXpGo5hqfZJnnLthdFLyaZ3iXonQNw== dependencies: - "@abp/highlight.js" "~8.0.0-rc.3" - "@abp/star-rating-svg" "~8.0.0-rc.3" + "@abp/highlight.js" "~8.0.0" + "@abp/star-rating-svg" "~8.0.0" -"@abp/cms-kit@8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/cms-kit/-/cms-kit-8.0.0-rc.3.tgz#b549eb3d7fc09f00473b5be3df66f81a12fb79aa" - integrity sha512-zxxYB3U7ro4A06k0oOAZKCFPBbpySinjtuQU6GuD6p/E/mZgB51TLN/lEaSm8Xp8sd8BpT772MPuyS/My2r3NQ== +"@abp/cms-kit@8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/cms-kit/-/cms-kit-8.0.0.tgz#ce2460d03c1e0f016cfad450955dff1b43b2a7d5" + integrity sha512-jmAY3i7L64kvGpEYdFXbdzhkh1z11nSCUgLiQlC5b4sTtsxWzlQnGgGAH8lIuk0ZaNmfFNIJdwahff3S+B4nfw== dependencies: - "@abp/cms-kit.admin" "~8.0.0-rc.3" - "@abp/cms-kit.public" "~8.0.0-rc.3" + "@abp/cms-kit.admin" "~8.0.0" + "@abp/cms-kit.public" "~8.0.0" -"@abp/codemirror@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/codemirror/-/codemirror-8.0.0-rc.3.tgz#c044a51274c83796b25fa358af971ff9bfce71b0" - integrity sha512-zuf7fPtTkKjgbg7dfXq9v2oxMUBUOsnauPCYbqJNBx1LVeylzbRoCaBKX2q0EQY+rWcQAn47iZv6w+fGWEVfsA== +"@abp/codemirror@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/codemirror/-/codemirror-8.0.0.tgz#f9bd3e3fd9f26ac9b6bb43f15805ffd9e59bbd46" + integrity sha512-5U5vGJdzk0etDjWTv0zXp6c8sLPlBf6xRefvle4ffelr49vJaSpu1rs9T5gsmjnbcfBkklFNmBwoLemk5Q3DSw== dependencies: - "@abp/core" "~8.0.0-rc.3" + "@abp/core" "~8.0.0" codemirror "^5.65.1" -"@abp/core@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-8.0.0-rc.3.tgz#f399bc55c6ad20c2515a03bb9572c6a4499cfcf0" - integrity sha512-HUa0AfCDX3URnGWsZ/7aZMsXXQFjott05ebK9wF7QDcI7uInyMT5axlrQ/CniyU8GLaFEt3mdtLB7pOZzDnsRw== +"@abp/core@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-8.0.0.tgz#cc4d9c0da10fb922a4adea8df67f60bb02d95365" + integrity sha512-qM7jSTR2uAhjAcsaFNchA89rLBiiJpUsvDBFCz0SyOuFz5DYAHo1njlhICcVAHF7H3NxQfVIndGVSjvmqmLC7Q== dependencies: - "@abp/utils" "~8.0.0-rc.3" + "@abp/utils" "~8.0.0" -"@abp/datatables.net-bs5@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-8.0.0-rc.3.tgz#902d0770c54a5888f805cc97de0ed25d0c53dde9" - integrity sha512-gxYYBeEh81+R8SAh27uMm3paVffq+bYiQgUxpXNgEcyPGP2X7/hnzZNwViuI1t+IgpSuTf6AAt14db9eV6Masg== +"@abp/datatables.net-bs5@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-8.0.0.tgz#c874180ea85fd0b2598fde90e2207bea267870c6" + integrity sha512-8w4oXTQwFnb56NTpeXjUsITGeMtuxv18ZAPK8Zmw28s5uOoIV/d/bEp11hXPwSk3SrjlyLw0lDcZCItwD+W8DQ== dependencies: - "@abp/datatables.net" "~8.0.0-rc.3" + "@abp/datatables.net" "~8.0.0" datatables.net-bs5 "^1.11.4" -"@abp/datatables.net@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-8.0.0-rc.3.tgz#4ddfa9fe3246e72807c3b19307c7484af749f969" - integrity sha512-vQBenQsDxzryspNv0FEzpyUPBXddIkVhXUJ6tHc+IZ8q/+/2wUE0ZciSJm7qS/GQnGrYZv9wpIGbSRh/RgVvVA== +"@abp/datatables.net@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-8.0.0.tgz#09ef3575a611f6ec123d2a9d4d55b8c89e30d115" + integrity sha512-WmsAfQEGPWMTqHGbeiX3RVfIdfkrMOtUfJmR0JaYJMuQo3STmMSnzOgNMKviDeQdzplgoOOKp6j0OgIqcciowg== dependencies: - "@abp/jquery" "~8.0.0-rc.3" + "@abp/jquery" "~8.0.0" datatables.net "^1.11.4" -"@abp/font-awesome@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-8.0.0-rc.3.tgz#5f850c5479f48cf1c951de2354050d38fec6beab" - integrity sha512-GYwhoOThD5Bw0Ain5DkVXgHLpca83QGAy1T7I+6SmYyibYu5SdxV9ytD65tARH+dx9VpB3p9NeC5lRYuWdPzCQ== +"@abp/font-awesome@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-8.0.0.tgz#ce7debf296fddbdf79139147f6c9761ec68b6587" + integrity sha512-qeihwiim6YMcL3KfHU0CViVl5MamQXbTp4606r/hKQejCSbdqR9XupYVbTAyojXLCCRqfnDVuXwqWCFTKVbQow== dependencies: - "@abp/core" "~8.0.0-rc.3" + "@abp/core" "~8.0.0" "@fortawesome/fontawesome-free" "^5.15.4" -"@abp/highlight.js@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/highlight.js/-/highlight.js-8.0.0-rc.3.tgz#a063a365a190aec6677816c50fb9a15214cae3b6" - integrity sha512-f6ugQqzuB5w9HX/3nYSwVburFZsTQI1jGdxjAvpwIUIHdIerPocI6kBNjNsGtCX3DYOWAlC/e6OKHcv4waEo1w== +"@abp/highlight.js@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/highlight.js/-/highlight.js-8.0.0.tgz#1fd3aa48d0d45540983ff9b98aec48977513262c" + integrity sha512-weq7QfRNGaHWaLDjoeJLxCZ98hXCsgA9g9EBVXm5A+qOkzI+bAlOgOP1/3CbBh7jCskD9c9TEpK0KO9kGFw07Q== dependencies: - "@abp/core" "~8.0.0-rc.3" + "@abp/core" "~8.0.0" "@highlightjs/cdn-assets" "~11.4.0" -"@abp/jquery-form@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-8.0.0-rc.3.tgz#e414a0599448c37df3197af77a91c9a66d3ef77f" - integrity sha512-w58Zi28Ci/0DIzMzC/ihu+np7G2Hv+9DLrhLZKddEI9WisFuxao5EAhKseq7LWMPzG/QSw8skLZAY12YrEtp6w== +"@abp/jquery-form@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-8.0.0.tgz#466343a87baa2f53fb57cf377e0fb0c07ff02bb9" + integrity sha512-xinU2Yu0YWNjoaYnBm+OoN8oNX/BDPzbqGtjlH1s5I+M/S0yf/qlPEzvzL5+epBlt0GKza/SqwSsuAVsfuFrKQ== dependencies: - "@abp/jquery" "~8.0.0-rc.3" + "@abp/jquery" "~8.0.0" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-8.0.0-rc.3.tgz#a3ab6b5078449ba94c7206ed96286b902a766b6b" - integrity sha512-Gvmujjhrvqzu51fGSTAssxGVu4XolTLEwW3qR0zwWCc0+kXF/AXB98DD66A+hmGau54sTKRXVmBTpc4J3KpoWg== +"@abp/jquery-validation-unobtrusive@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-8.0.0.tgz#a641cc4bff6de178ed3429987017c00bf68e81f9" + integrity sha512-nUcktSW5tPifa6yNX9Y8zCi0VCUJklVSSd4f3eKfjU8SIcWq1eNfR6R+MHRZEVVmyB7xeYMBlc0yjxVYwUUlEw== dependencies: - "@abp/jquery-validation" "~8.0.0-rc.3" + "@abp/jquery-validation" "~8.0.0" jquery-validation-unobtrusive "^3.2.12" -"@abp/jquery-validation@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-8.0.0-rc.3.tgz#eee433a5fc076d92d734e7cea4bce00fbaacc963" - integrity sha512-Dq5Ru5WWqDKIDzetUicJzp6DHkGhNNHcjYyHF3n9o9+3T4+6dgRbXy5OYjIv9CADfui55rzckWH57FbCExiUSw== +"@abp/jquery-validation@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-8.0.0.tgz#674fe49294c622b07b843ab8721a5ae32024b7b9" + integrity sha512-B/aFZsKbILP4FPuc3eU17APkbBWJhjWXSQCiSXbHpDZYJN5km1l52gpuWR+7Yo5CXnAP06N+zUYHf86tNCZyBw== dependencies: - "@abp/jquery" "~8.0.0-rc.3" + "@abp/jquery" "~8.0.0" jquery-validation "^1.19.3" -"@abp/jquery@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-8.0.0-rc.3.tgz#e230c5db7a9aff526564c1b4b1820cd983a10726" - integrity sha512-o9xBZt55fT+ZYqmLjQ9dahtIgsRqz4VrXUsLgyKkUzr2p3gtgXCQqKfkIpdeE5aE3p1/T+et5U6FOMUCRZegvg== +"@abp/jquery@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-8.0.0.tgz#67bf40f87c335b1cba73f406f0102f35e820fd84" + integrity sha512-QhjBz/s1hVJcsYCbuZwNOtOCvsC93OMzMJHoZ2COaKkOZlt6tiRHhawdYVZloKDaMdfcd5tvqbkNhXtQ4K9AXg== dependencies: - "@abp/core" "~8.0.0-rc.3" + "@abp/core" "~8.0.0" jquery "~3.6.0" -"@abp/jstree@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/jstree/-/jstree-8.0.0-rc.3.tgz#4970a5e2ddc0d05491e6fecdb8f0e2604664d814" - integrity sha512-rKq3tkU7Kb95ojPOBljdlmV8fTAnrEylA7DuVLjfvzNdkVHgAwErVAY8ERYZDMS1ttNa658teJzg5SaXUBeOUA== +"@abp/jstree@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/jstree/-/jstree-8.0.0.tgz#4027c97ca21d7137dfd15a7fbc753e600c151334" + integrity sha512-KW46krpLHdyVlNbvXVnrq+lAaKzbKfSU6DT2HRcHdRWSXBkxYsDgCC4KRnGLwg6jdCrWT6BOQxHbyKmaBHb9yQ== dependencies: - "@abp/jquery" "~8.0.0-rc.3" + "@abp/jquery" "~8.0.0" jstree "^3.3.12" -"@abp/lodash@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-8.0.0-rc.3.tgz#5bf8019fa0e69ec1fac6ccacb1625b8564ed8944" - integrity sha512-Mo2r+bNZXdmM7Ri8SBi+M4OsfnLYejbQmcJ7wkDUPb4B3cDJtTB4YuJn8NWBBjaXwi08Myt1MvSFnT04N/t8Eg== +"@abp/lodash@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-8.0.0.tgz#4c809c4755ed11e70875d30f04312b0ff10a2dbb" + integrity sha512-V0y4k9HlggBvJtK5m35Gkori2IN0E4ec1JpBgGeaOStcvThAL1EtXip1kqPORMbC4wm+bgpT0QWhiqCeKBFoLg== dependencies: - "@abp/core" "~8.0.0-rc.3" + "@abp/core" "~8.0.0" lodash "^4.17.21" -"@abp/luxon@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-8.0.0-rc.3.tgz#cc0adcab4f1fa6bea2055be478ec9a86d00f1ba6" - integrity sha512-vKwfpAPL7GUJLvCpsJoJ5eXRH5Ypciez9J6QiK2Mjx1NauxR514wYtBqM/2I7hoJ4Oc9XvrAjcIon3r21dvCqQ== +"@abp/luxon@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-8.0.0.tgz#13a1145dc79d908f3398944c4bf0fb0457d94217" + integrity sha512-ZEGegnr+KCczPUrxxPmBUKGyiWkjAa4hDWb06mozdVP14zHQbbZfyKKXwrPfanwcj96Ui9i2klnrKPXuyppBJw== dependencies: - "@abp/core" "~8.0.0-rc.3" + "@abp/core" "~8.0.0" luxon "^2.3.0" -"@abp/malihu-custom-scrollbar-plugin@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-8.0.0-rc.3.tgz#195c897dced708de627941ce017e047c62191a56" - integrity sha512-svD7YJzHvufjmhoCKgQcjApIdVcGJwWhpsK260lwLiCvkdNDhxFjH+jfChhLMXPYpOnozrgrVx56oJqDWDrU3A== +"@abp/malihu-custom-scrollbar-plugin@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-8.0.0.tgz#fd4428d66ee38b4b2c02c0e300d5bd75dcda414d" + integrity sha512-jrD4AHd2Pdr28Ps3QtEDVDMSnK7xSumCKKSJl0R5SJcMyskByJ6gwydYqMGeQkCVnk1ztEZFfJNhOO35A+SBWA== dependencies: - "@abp/core" "~8.0.0-rc.3" + "@abp/core" "~8.0.0" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/moment@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-8.0.0-rc.3.tgz#7e2a74cd23c434b45f903b4f826f807a31b5982b" - integrity sha512-E0mob3xj0frslPovdHbsdaFB5oLimORFA86uQJ5KVSEaDOXYKuEqUomMcqg2LRVdzzKd7ai6QkuH3p7qbJonww== +"@abp/moment@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-8.0.0.tgz#26d0932bf4dac4dee25d0940eea50fcfeb37a69b" + integrity sha512-fgh0pXdxPi5Y9VnC6f12kwJmGQL4dowZtVp8lbNEjnCFiocAhEOOuN9gkTGk8y0xEhXroliW7wbaB2MJPINKhg== dependencies: moment "^2.9.0" -"@abp/prismjs@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-8.0.0-rc.3.tgz#237bb9c55ad1b202418c5bd1452e73a101706c25" - integrity sha512-adgMYfZhK7aPpxNdQhdOqE7oOvXUDq5qqhIVOVzmrQ4Dy/uCItT/Zq0yqqYLr2d7D17vRzfBM7R8ubgxnsMfbw== +"@abp/prismjs@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-8.0.0.tgz#174ccbd33d47bb687fe35bed35f7c834ca5ee328" + integrity sha512-Udx3pdlUU2MO+di1BZgG3jKNIeImWoPySmBA8YaStqsAkD/yb+YyUD2QmCUfI55kqzRyhAKE467ZusDFFOY20w== dependencies: - "@abp/clipboard" "~8.0.0-rc.3" - "@abp/core" "~8.0.0-rc.3" + "@abp/clipboard" "~8.0.0" + "@abp/core" "~8.0.0" prismjs "^1.26.0" -"@abp/select2@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-8.0.0-rc.3.tgz#77dd12185f6d03553230c7516e40603310f28f4f" - integrity sha512-9O+IHIB6n+WfLzh6SVyC01OIU3qWzhoT3DofAc329cyI73NJSPuOvmkQtQVYWnkAI/6+B6qYF3A4umD/EoPouQ== +"@abp/select2@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-8.0.0.tgz#4a4ebd63f2b79d663dab709decb2f1b1f510950f" + integrity sha512-kl3of/L0GSHyxt6WYnBDdBqqtoUscY9qubaMHZrk9y1zOVXOM0JUQoyu2KDQhOZm7iCu34ATX47NAw59eb9Omw== dependencies: - "@abp/core" "~8.0.0-rc.3" + "@abp/core" "~8.0.0" select2 "^4.0.13" -"@abp/slugify@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/slugify/-/slugify-8.0.0-rc.3.tgz#4f293c4ce11cba2a605503f2e3f3b6d278c0ed31" - integrity sha512-CfSatHeh3A0XylfDjUtpU/LBcQ/zx8mDq1TA5rDwd2je19PhkTkJkRjA3A3Ow1zohShe1sj0jl08ZRrlF7tshQ== +"@abp/slugify@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/slugify/-/slugify-8.0.0.tgz#82bfd5706e644c48f712e46694e47b8709b75ae5" + integrity sha512-R8fhrGocWf4u3MwNoxD4Bdp+QLv1KWyT45zAMgQcTVUIoSCzjC5d9+1xMIQhVdMJZInKA3OHWnEr/GgJaXHthw== dependencies: slugify "^1.6.5" -"@abp/star-rating-svg@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/star-rating-svg/-/star-rating-svg-8.0.0-rc.3.tgz#ea57e636fe5d2cd950588a2ee6d35b4504f8f65b" - integrity sha512-TLarYvGYptcH6ITq2EVKXKw9ovg7B6VXxkuYk2hFVRvn6bxT1bNxf2W7DGFFt1jH0WMEs+ShBEb9xTzXLfXMxw== +"@abp/star-rating-svg@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/star-rating-svg/-/star-rating-svg-8.0.0.tgz#f6b5046f1d06998440a25cedc8d69ad6ff8a4aa3" + integrity sha512-u51iKYe2QtdnbMaTRQddHIv7Z7c1g5/Cuo9T4wbNUCEOtbdLSlTstxeAyl+V6dkQaI7zGKemOB9E/gupBZUoKg== dependencies: - "@abp/jquery" "~8.0.0-rc.3" + "@abp/jquery" "~8.0.0" star-rating-svg "^3.5.0" -"@abp/sweetalert2@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-8.0.0-rc.3.tgz#021afc3457cf72c2b6dd298bb981faa741fc1293" - integrity sha512-b67UC/uZ9gWt2X5MeUnKg98FkhvJ+Azsq4PHcFBdUTZL/5ItJ8F6UsOTpT7Z7cUXFmJn/RTcPrgQDsK63CZltw== +"@abp/sweetalert2@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-8.0.0.tgz#369c04e433eead8e7171cd84298bb3e4ecb14050" + integrity sha512-riaHcFdozJ8R/sAdhtnfa7GHhWjptnQODrZ2bqBkcKuw2d8LKQ+2v3tcflaWWHwsOmGVbki3EhJJPdFWOtli/w== dependencies: - "@abp/core" "~8.0.0-rc.3" + "@abp/core" "~8.0.0" sweetalert2 "^11.3.6" -"@abp/timeago@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-8.0.0-rc.3.tgz#b3e63ff94bce8ad59b02d8c4490f580e60630f00" - integrity sha512-Pmm6Jj7VT1PW/Wfh1ozFFIdpFvH8cGKfHU2sYgwHuw4U9YQUd8ZTIDaZRMhuN9QqnGlmFtUZsXzoIMZJDvOq5w== +"@abp/timeago@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-8.0.0.tgz#93947505b68f369df10bb38cd8c05376e1c1cbcb" + integrity sha512-Q+e5CvvFAU21hGuIXREtIeEl8WlGpsNqK+QbCRbjNvM0HgCPH/gRQNpAV+S7TqaI5W2Uggfcsd7GvTH3GtMv7g== dependencies: - "@abp/jquery" "~8.0.0-rc.3" + "@abp/jquery" "~8.0.0" timeago "^1.6.7" -"@abp/toastr@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-8.0.0-rc.3.tgz#5b0d267951e025ca77a611c2fa9b606e92bd830a" - integrity sha512-hfDzyMSgbjriAALdrcnx/qonN2lquF7HM4QH8nt1E8/vWOkd8bUL/kyAoIL8rfS94zr62UUZTEDezoCfHwif+w== +"@abp/toastr@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-8.0.0.tgz#d409fec3fb1e5a886d0a03b0f58449a2f8a563d9" + integrity sha512-7evxuHJ+ZJtyCoIv0+HY/av5FC8Y5UzBtVjEB8Ol8RvhH5PBkErguPg9qPZvYcpHjJlYN+iKYAuXdQLZdXHwUQ== dependencies: - "@abp/jquery" "~8.0.0-rc.3" + "@abp/jquery" "~8.0.0" toastr "^2.1.4" -"@abp/tui-editor@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/tui-editor/-/tui-editor-8.0.0-rc.3.tgz#b5cc1470598b1a478733767d21275334d130bfc1" - integrity sha512-EdPrVdTV9Yv18Ke4UTf6/BPF4eZx+eEECI3zSQMrnDlGv5C1gBG1MS37KdqMeHvvhz95rIv/RO6kpjGkJYEm9g== +"@abp/tui-editor@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/tui-editor/-/tui-editor-8.0.0.tgz#580737ed8e3a29ada576866556afbce5655cddfc" + integrity sha512-bsFwmAxLIV9IkcTqJor0ev0+noQqWsczxIkaSx9HWw08/YkNPfG0ak7gICU1I/gZoB7IMoaiwC6dXfY27BKSWA== dependencies: - "@abp/jquery" "~8.0.0-rc.3" - "@abp/prismjs" "~8.0.0-rc.3" + "@abp/jquery" "~8.0.0" + "@abp/prismjs" "~8.0.0" -"@abp/uppy@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/uppy/-/uppy-8.0.0-rc.3.tgz#280e5d59633acc992be69e47740c6c124077ff7d" - integrity sha512-0Ayn7YX4xNt9A+caoh27JcD27uQfsIdO7PKMiQNAZMp5p+zsN/qGFRnhReq+LMwYtezBkWqiGivZEmeRxN5fyw== +"@abp/uppy@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/uppy/-/uppy-8.0.0.tgz#9da0601a868fcab80a1c125da90e77758c09c640" + integrity sha512-Z/Du8qeHQYLjTgI9ZGva7orreBKfEsNRFxmfCXS5eqsytcoYyJsIR6o4tN0XnBRouV3P3C06yYpW0ttWlu6RmQ== dependencies: - "@abp/core" "~8.0.0-rc.3" + "@abp/core" "~8.0.0" uppy "^1.16.1" -"@abp/utils@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-8.0.0-rc.3.tgz#01491fb943eb3a41d4ddbe854e5330b66807d522" - integrity sha512-cuTwsy+FEh3dEnlDDi0s8d3qpWgP3rwqWgg5LlMF0pY/OobJcCLtuo5Zy9bncKL3wFHXVEk6UviYcNkSOkzvtQ== +"@abp/utils@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-8.0.0.tgz#3de8e34e97e10ac9c2b8c1c194bf6b034fde302f" + integrity sha512-F8LsEedqkngbeFsszdZi1lshFqr++anyJFBoaRsKRw6hJPDPrYtHoOWEQ+p7QcH5UVVzVywQUGMNM+gmAT0vGQ== dependencies: just-compare "^2.3.0" diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/ar.json b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/ar.json index 9ef0948c80..2ae0363ec4 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/ar.json +++ b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/ar.json @@ -15,7 +15,6 @@ "CmsKit.Ratings": "التقييمات", "CmsKit.Reactions": "تفاعلات", "CmsKit.Tags": "العلامات", - "CmsKit.BlogPost.PreventXssFeature": "منع XSS", "CmsKit:0002": "المحتوى موجود بالفعل!", "CmsKit:0003": "الكيان {0} غير قابل للعلامة.", "CmsKit:Blog:0001": "slug المحدد ({Slug}) موجود بالفعل!", @@ -87,6 +86,7 @@ "Permission:BlogPostManagement.Create": "إنشاء", "Permission:BlogPostManagement.Delete": "حذف", "Permission:BlogPostManagement.Update": "تحديث", + "Permission:BlogPostManagement.Publish": "ينشر", "Permission:CmsKit": "CmsKit", "Permission:Comments": "إدارة التعليق", "Permission:Comments.Delete": "حذف", @@ -113,10 +113,14 @@ "Permission:PageManagement:Create": "إنشاء", "Permission:PageManagement:Delete": "حذف", "Permission:PageManagement:Update": "تحديث", + "Permission:PageManagement:SetAsHomePage": "اجعلها صفحتي الرئيسية", "Permission:TagManagement": "إدارة العلامات", "Permission:TagManagement.Create": "إنشاء", "Permission:TagManagement.Delete": "حذف", "Permission:TagManagement.Update": "تحديث", + "Permission:GlobalResources": "الموارد العالمية", + "Permission:CmsKitPublic": "كمسكيت العامة", + "Permission:Comments.DeleteAll": "حذف الكل", "PickYourReaction": "اختر رد فعلك", "Rating": "تقييم", "RatingUndoMessage": "سيتم التراجع عن تقييمك.", @@ -131,6 +135,7 @@ "SelectAll": "اختر الكل", "Send": "إرسال", "SendMessage": "أرسل رسالة", + "SelectedAuthor": "مؤلف", "ShortDescription": "وصف قصير", "Slug": "سبيكة", "Source": "مصدر", @@ -161,6 +166,67 @@ "YourFullName": "اسمك الكامل", "YourMessage": "رسالتك", "YourReply": "ردك", + "MarkdownSupported": "دعم تخفيض السعر .", + "GlobalResources": "الموارد العالمية", + "SavedSuccessfully": "حفظ بنجاح", + "CmsKit.BlogPost.Status.0": "مسودة", + "CmsKit.BlogPost.Status.1": "نشرت", + "CmsKit.BlogPost.Status.2": "في انتظار المراجعة", + "BlogPostPublishConfirmationMessage": "هل أنت متأكد من نشر مشاركة المدونة "{0}"؟", + "SuccessfullyPublished": "تم النشر بنجاح!", + "Draft": "مسودة", + "Publish": "ينشر", + "BlogPostDraftConfirmationMessage": "هل أنت متأكد من تعيين مشاركة المدونة "{0}" كمسودة؟", + "BlogPostSendToReviewConfirmationMessage": "هل أنت متأكد من إرسال مشاركة المدونة "{0}" إلى مراجعة المشرف للنشر؟", + "SaveAsDraft": "حفظ كمسودة", + "SendToReview": "إرسال للمراجعة", + "SendToReviewToPublish": "إرسال للمراجعة للنشر", + "BlogPostSendToReviewSuccessMessage": "تم إرسال مشاركة المدونة "{0}" إلى مراجعة المشرف للنشر.", + "HasBlogPostWaitingForReviewMessage": "لديك مشاركة مدونة في انتظار المراجعة. انقر للقائمة.", + "SelectAStatus": "حدد الحالة", + "Status": "حالة", + "CmsKit.BlogPost.ScrollIndex": "شريط التنقل السريع في مشاركات المدونة", + "CmsKit.BlogPost.PreventXssFeature": "منع XSS", + "Add": "يضيف", + "AddWidget": "إضافة القطعة", + "PleaseConfigureWidgets": "يرجى تكوين الحاجيات", + "SelectAnAuthor": "حدد مؤلفًا", + "InThisDocument": "في هذه الوثيقة", + "GoToTop": "اذهب إلى الأعلى", + "SetAsHomePage": "تغيير حالة الصفحة الرئيسية", + "CompletedSettingAsHomePage": "اجعلها صفحتي الرئيسية", + "IsHomePage": "هي الصفحة الرئيسية", + "RemovedSettingAsHomePage": "تمت إزالة إعداد الصفحة الرئيسية", + "Feature:CmsKitGroup": "مجموعة سي ام اس", + "Feature:BlogEnable": "مشاركة مدونة", + "Feature:BlogEnableDescription": "نظام التدوين الخاص بـ CMS Kit الذي يسمح بإنشاء المدونات والمشاركات بشكل ديناميكي في التطبيق.", + "Feature:CommentEnable": "التعليق", + "Feature:CommentEnableDescription": "يسمح نظام التعليق الخاص بـ CMS Kit بالتعليق على كيانات مثل BlogPost.", + "Feature:GlobalResourceEnable": "الموارد العالمية", + "Feature:GlobalResourceEnableDescription": "ميزة الموارد العالمية لـ CMS Kit التي تسمح بإدارة الأنماط والبرامج النصية العالمية.", + "Feature:MenuEnable": "قائمة طعام", + "Feature:MenuEnableDescription": "نظام القائمة الديناميكي لـ CMS Kit الذي يسمح بإضافة/إزالة قوائم التطبيقات ديناميكيًا.", + "Feature:PageEnable": "الترحيل", + "Feature:PageEnableDescription": "نظام صفحات CMS Kit الذي يسمح بإنشاء صفحات ثابتة بعنوان URL محدد.", + "Feature:RatingEnable": "تقييم", + "Feature:RatingEnableDescription": "نظام تصنيف CMS Kit الذي يسمح للمستخدمين بتقييم الكيانات مثل BlogPost.", + "Feature:ReactionEnable": "رد فعل", + "Feature:ReactionEnableDescription": "نظام التفاعل الخاص بـ CMS Kit الذي يسمح للمستخدمين بإرسال ردود أفعال إلى كيانات مثل BlogPost، والتعليقات، وما إلى ذلك.", + "Feature:TagEnable": "وضع العلامات", + "Feature:TagEnableDescription": "نظام علامات CMS Kit الذي يسمح بوضع علامات على الكيانات مثل BlogPost.", + "DeleteBlogPostMessage": "سيتم حذف المدونة. هل أنت متأكد؟", + "CaptchaCode": "كود الكابتشا", + "CommentTextRequired": "التعليق مطلوب", + "CaptchaCodeErrorMessage": "الإجابة التي أدخلتها في اختبار CAPTCHA لم تكن صحيحة. حاول مرة اخرى", + "CaptchaCodeMissingMessage": "رمز الكابتشا مفقود!", + "UnAllowedExternalUrlMessage": "لقد قمت بتضمين عنوان URL خارجي غير مسموح به. يرجى المحاولة مرة أخرى بدون عنوان URL الخارجي.", + "URL": "عنوان URL", + "PopularTags": "الكلمات الشعبية", + "RemoveCoverImageConfirmationMessage": "هل أنت متأكد أنك تريد إزالة صورة الغلاف؟", + "RemoveCoverImage": "إزالة صورة الغلاف", + "CssClass": "فئة CSS", + "TagsHelpText": "يجب أن تكون العلامات مفصولة بفواصل (على سبيل المثال: tag1، tag2، tag3)", "ThisPartOfContentCouldntBeLoaded": "لا يمكن تحميل هذا الجزء من المحتوى.", + "DuplicateCommentAttemptMessage": "تم اكتشاف محاولة نشر تعليق مكررة. لقد تم بالفعل تقديم تعليقك." } } \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/cs.json b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/cs.json index 383ba53bfc..6b22cc8ae5 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/cs.json +++ b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/cs.json @@ -15,7 +15,6 @@ "CmsKit.Ratings": "Hodnocení", "CmsKit.Reactions": "Reakce", "CmsKit.Tags": "Tagy", - "CmsKit.BlogPost.PreventXssFeature": "Zabraňte XSS", "CmsKit:0002": "Obsah již existuje!", "CmsKit:0003": "Entitu {0} nelze označit.", "CmsKit:Blog:0001": "Daný slimák ({Slug}) již existuje!", @@ -87,6 +86,7 @@ "Permission:BlogPostManagement.Create": "Vytvořit", "Permission:BlogPostManagement.Delete": "Vymazat", "Permission:BlogPostManagement.Update": "Aktualizace", + "Permission:BlogPostManagement.Publish": "Publikovat", "Permission:CmsKit": "CmsKit", "Permission:Comments": "Správa komentářů", "Permission:Comments.Delete": "Vymazat", @@ -113,10 +113,14 @@ "Permission:PageManagement:Create": "Vytvořit", "Permission:PageManagement:Delete": "Vymazat", "Permission:PageManagement:Update": "Aktualizace", + "Permission:PageManagement:SetAsHomePage": "Nastavit jako domovskou stránku", "Permission:TagManagement": "Správa značek", "Permission:TagManagement.Create": "Vytvořit", "Permission:TagManagement.Delete": "Vymazat", "Permission:TagManagement.Update": "Aktualizace", + "Permission:GlobalResources": "Globální zdroje", + "Permission:CmsKitPublic": "CmsKit Public", + "Permission:Comments.DeleteAll": "Smazat všechny", "PickYourReaction": "Vyberte si reakci", "Rating": "Hodnocení", "RatingUndoMessage": "Vaše hodnocení bude zrušeno.", @@ -131,6 +135,7 @@ "SelectAll": "Vybrat vše", "Send": "Poslat", "SendMessage": "Poslat zprávu", + "SelectedAuthor": "Autor", "ShortDescription": "Stručný popis", "Slug": "Slimák", "Source": "Zdroj", @@ -161,6 +166,67 @@ "YourFullName": "Vaše celé jméno", "YourMessage": "Vaše zpráva", "YourReply": "Vaše odpověď", - "ThisPartOfContentCouldntBeLoaded": "Tato část obsahu nemohla být načtena." + "MarkdownSupported": "Podporováno Markdown .", + "GlobalResources": "Globální zdroje", + "SavedSuccessfully": "Úspěšně uloženo", + "CmsKit.BlogPost.Status.0": "Návrh", + "CmsKit.BlogPost.Status.1": "Publikováno", + "CmsKit.BlogPost.Status.2": "Čekání na recenzi", + "BlogPostPublishConfirmationMessage": "Opravdu chcete publikovat blogový příspěvek „{0}“?", + "SuccessfullyPublished": "Úspěšně zveřejněno!", + "Draft": "Návrh", + "Publish": "Publikovat", + "BlogPostDraftConfirmationMessage": "Opravdu nastavíte blogový příspěvek „{0}“ jako koncept?", + "BlogPostSendToReviewConfirmationMessage": "Opravdu chcete blogový příspěvek „{0}“ odeslat administrátorovi ke zveřejnění?", + "SaveAsDraft": "Uložit jako koncept", + "SendToReview": "Odeslat ke kontrole", + "SendToReviewToPublish": "Odeslat ke kontrole k publikování", + "BlogPostSendToReviewSuccessMessage": "Blogový příspěvek „{0}“ byl odeslán ke kontrole správce ke zveřejnění.", + "HasBlogPostWaitingForReviewMessage": "Máte blogový příspěvek, který čeká na kontrolu. Kliknutím zobrazíte seznam.", + "SelectAStatus": "Vyberte stav", + "Status": "Postavení", + "CmsKit.BlogPost.ScrollIndex": "Rychlý navigační panel v příspěvcích na blogu", + "CmsKit.BlogPost.PreventXssFeature": "Zabraňte XSS", + "Add": "Přidat", + "AddWidget": "Přidat widget", + "PleaseConfigureWidgets": "Nakonfigurujte prosím widgety", + "SelectAnAuthor": "Vyberte autora", + "InThisDocument": "V tomto dokumentu", + "GoToTop": "Přejít na začátek", + "SetAsHomePage": "Změnit stav domovské stránky", + "CompletedSettingAsHomePage": "Nastavit jako domovskou stránku", + "IsHomePage": "Je domovská stránka", + "RemovedSettingAsHomePage": "Odebráno nastavení domovské stránky", + "Feature:CmsKitGroup": "Sada Cms", + "Feature:BlogEnable": "Blogpost", + "Feature:BlogEnableDescription": "Systém blogpostů CMS Kit, který umožňuje dynamicky vytvářet blogy a příspěvky v aplikaci.", + "Feature:CommentEnable": "komentování", + "Feature:CommentEnableDescription": "Systém komentářů CMS Kit umožňuje komentovat entity, jako je BlogPost.", + "Feature:GlobalResourceEnable": "Globální zdroje", + "Feature:GlobalResourceEnableDescription": "Funkce globálních zdrojů CMS Kit, která umožňuje správu globálních stylů a skriptů.", + "Feature:MenuEnable": "Jídelní lístek", + "Feature:MenuEnableDescription": "Systém dynamických nabídek CMS Kit, který umožňuje dynamické přidávání/odebírání nabídek aplikací.", + "Feature:PageEnable": "Stránkování", + "Feature:PageEnableDescription": "Systém stránek CMS Kit, který umožňuje vytvářet statické stránky se specifickou URL.", + "Feature:RatingEnable": "Hodnocení", + "Feature:RatingEnableDescription": "Systém hodnocení CMS Kit, který umožňuje uživatelům hodnotit entity, jako je BlogPost.", + "Feature:ReactionEnable": "Reakce", + "Feature:ReactionEnableDescription": "Systém reakcí CMS Kit, který umožňuje uživatelům posílat reakce entitám, jako jsou BlogPost, Komentáře atd.", + "Feature:TagEnable": "Označování", + "Feature:TagEnableDescription": "Systém značek CMS Kit, který umožňuje označování entit, jako je BlogPost.", + "DeleteBlogPostMessage": "Blog bude smazán. Jsi si jistá?", + "CaptchaCode": "Captcha kód", + "CommentTextRequired": "Komentář je povinný", + "CaptchaCodeErrorMessage": "Odpověď, kterou jste zadali pro CAPTCHA, nebyla správná. Prosím zkuste to znovu", + "CaptchaCodeMissingMessage": "Chybí kód captcha!", + "UnAllowedExternalUrlMessage": "Zahrnuli jste nepovolenou externí adresu URL. Zkuste to prosím znovu bez externí adresy URL.", + "URL": "URL", + "PopularTags": "Populární tagy", + "RemoveCoverImageConfirmationMessage": "Opravdu chcete odstranit úvodní obrázek?", + "RemoveCoverImage": "Odstraňte titulní obrázek", + "CssClass": "Třída CSS", + "TagsHelpText": "Značky by měly být odděleny čárkami (např.: tag1, tag2, tag3)", + "ThisPartOfContentCouldntBeLoaded": "Tato část obsahu nemohla být načtena.", + "DuplicateCommentAttemptMessage": "Byl zjištěn duplicitní pokus o vložení komentáře. Váš komentář již byl odeslán." } } \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/de.json b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/de.json new file mode 100644 index 0000000000..3c4a2984ef --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/de.json @@ -0,0 +1,232 @@ +{ + "culture": "de", + "texts": { + "AddSubMenuItem": "Untermenüelement hinzufügen", + "AreYouSure": "Bist du sicher?", + "BlogDeletionConfirmationMessage": "Der Blog „{0}“ wird gelöscht. Bist du sicher?", + "BlogFeatureNotAvailable": "Diese Funktion ist derzeit nicht verfügbar. Aktivieren Sie es mit „GlobalFeatureManager“, um es zu verwenden.", + "BlogId": "Blog", + "BlogPostDeletionConfirmationMessage": "Der Blogbeitrag „{0}“ wird gelöscht. Bist du sicher?", + "BlogPosts": "Blogeinträge", + "Blogs": "Blogs", + "ChoosePreference": "Wählen Sie Präferenz...", + "Cms": "CMS", + "CmsKit.Comments": "Kommentare", + "CmsKit.Ratings": "Bewertungen", + "CmsKit.Reactions": "Reaktionen", + "CmsKit.Tags": "Stichworte", + "CmsKit:0002": "Der Inhalt ist bereits vorhanden!", + "CmsKit:0003": "Die Entität {0} kann nicht mit Tags versehen werden.", + "CmsKit:Blog:0001": "Der angegebene Slug ({Slug}) existiert bereits!", + "CmsKit:BlogPost:0001": "Der angegebene Slug existiert bereits!", + "CmsKit:Comments:0001": "Die Entität {EntityType} kann nicht kommentiert werden.", + "CmsKit:Media:0001": "„{Name}“ ist kein gültiger Medienname.", + "CmsKit:Media:0002": "Die Entität kann keine Medien haben.", + "CmsKit:Page:0001": "Die angegebene URL ({Slug}) existiert bereits. Bitte versuchen Sie es mit einer anderen URL.", + "CmsKit:Rating:0001": "Die Entität {EntityType} kann nicht bewertet werden.", + "CmsKit:Reaction:0001": "Die Entität {EntityType} kann keine Reaktionen haben.", + "CmsKit:Tag:0002": "Die Entität ist nicht tagbar!", + "CommentAuthorizationExceptionMessage": "Diese Kommentare dürfen nicht öffentlich angezeigt werden.", + "CommentDeletionConfirmationMessage": "Dieser Kommentar und alle Antworten werden gelöscht!", + "Comments": "Kommentare", + "Content": "Inhalt", + "ContentDeletionConfirmationMessage": "Möchten Sie diesen Inhalt wirklich löschen?", + "Contents": "Inhalt", + "CoverImage": "Titelbild", + "CreateBlogPostPage": "Neuer Blogbeitrag", + "CreationTime": "Erstellungszeitpunkt", + "Delete": "Löschen", + "Detail": "Detail", + "Details": "Einzelheiten", + "DisplayName": "Anzeigename", + "DoYouPreferAdditionalEmails": "Bevorzugen Sie zusätzliche E-Mails?", + "Edit": "Bearbeiten", + "EndDate": "Endtermin", + "EntityId": "Entitäts-ID", + "EntityType": "Entitätstyp", + "ExportCSV": "CSV exportieren", + "Features": "Merkmale", + "GenericDeletionConfirmationMessage": "Möchten Sie „{0}“ wirklich löschen?", + "IsActive": "Aktiv", + "LastModification": "Letzte Änderung", + "LastModificationTime": "Zeitpunkt der letzten Änderung", + "LoginToAddComment": "Melden Sie sich an, um einen Kommentar hinzuzufügen", + "LoginToRate": "Melden Sie sich an, um zu bewerten", + "LoginToReact": "Melden Sie sich an, um zu reagieren", + "LoginToReply": "Anmelden um zu Antworten", + "MainMenu": "Hauptmenü", + "MakeMainMenu": "Hauptmenü erstellen", + "Menu:CMS": "CMS", + "Menus": "Menüs", + "MenuDeletionConfirmationMessage": "Das Menü „{0}“ wird gelöscht. Bist du sicher?", + "MenuItemDeletionConfirmationMessage": "Möchten Sie diesen Menüpunkt wirklich löschen?", + "MenuItemMoveConfirmMessage": "Sind Sie sicher, dass Sie „{0}“ unter „{1}“ verschieben möchten?", + "MenuItems": "Menüpunkte", + "Message": "Nachricht", + "MessageDeletionConfirmationMessage": "Dieser Kommentar wird vollständig gelöscht.", + "NewBlog": "Neuer Blog", + "NewBlogPost": "Neuer Blogbeitrag", + "NewMenu": "Neues Menü", + "NewMenuItem": "Neuer Root-Menüpunkt", + "NewPage": "Neue Seite", + "NewTag": "Neuer Tag", + "NoMenuItems": "Es gibt noch keinen Menüpunkt!", + "OK": "OK", + "PageDeletionConfirmationMessage": "Möchten Sie diese Seite wirklich löschen?", + "PageId": "Seite", + "Pages": "Seiten", + "PageSlugInformation": "Slug wird für die URL verwendet. Ihre URL lautet „/{{slug}}“.", + "BlogSlugInformation": "Slug wird für die URL verwendet. Ihre URL lautet „/{0}/{{slug}}“.", + "Permission:BlogManagement": "Blog-Management", + "Permission:BlogManagement.Create": "Erstellen", + "Permission:BlogManagement.Delete": "Löschen", + "Permission:BlogManagement.Features": "Merkmale", + "Permission:BlogManagement.Update": "Aktualisieren", + "Permission:BlogPostManagement": "Blog-Post-Management", + "Permission:BlogPostManagement.Create": "Erstellen", + "Permission:BlogPostManagement.Delete": "Löschen", + "Permission:BlogPostManagement.Update": "Aktualisieren", + "Permission:BlogPostManagement.Publish": "Veröffentlichen", + "Permission:CmsKit": "CmsKit-Administrator", + "Permission:Comments": "Kommentarverwaltung", + "Permission:Comments.Delete": "Löschen", + "Permission:Contents": "Content-Management", + "Permission:Contents.Create": "Inhalte erstellen", + "Permission:Contents.Delete": "Inhalt löschen", + "Permission:Contents.Update": "Inhalt aktualisieren", + "Permission:MediaDescriptorManagement": "Medienmanagement", + "Permission:MediaDescriptorManagement:Create": "Erstellen", + "Permission:MediaDescriptorManagement:Delete": "Löschen", + "Permission:MenuItemManagement": "Menüpunktverwaltung", + "Permission:MenuItemManagement.Create": "Erstellen", + "Permission:MenuItemManagement.Delete": "Löschen", + "Permission:MenuItemManagement.Update": "Aktualisieren", + "Permission:MenuManagement": "Menüverwaltung", + "Permission:MenuManagement.Create": "Erstellen", + "Permission:MenuManagement.Delete": "Löschen", + "Permission:MenuManagement.Update": "Aktualisieren", + "Permission:Menus": "Menüverwaltung", + "Permission:Menus.Create": "Erstellen", + "Permission:Menus.Delete": "Löschen", + "Permission:Menus.Update": "Aktualisieren", + "Permission:PageManagement": "Seitenverwaltung", + "Permission:PageManagement:Create": "Erstellen", + "Permission:PageManagement:Delete": "Löschen", + "Permission:PageManagement:Update": "Aktualisieren", + "Permission:PageManagement:SetAsHomePage": "Als Startseite festlegen", + "Permission:TagManagement": "Tag-Management", + "Permission:TagManagement.Create": "Erstellen", + "Permission:TagManagement.Delete": "Löschen", + "Permission:TagManagement.Update": "Aktualisieren", + "Permission:GlobalResources": "Globale Ressourcen", + "Permission:CmsKitPublic": "CmsKit öffentlich", + "Permission:Comments.DeleteAll": "Alles löschen", + "PickYourReaction": "Wählen Sie Ihre Reaktion", + "Rating": "Bewertung", + "RatingUndoMessage": "Ihre Bewertung wird rückgängig gemacht.", + "Reactions": "Reaktionen", + "Read": "Lesen", + "RepliesToThisComment": "Antworten auf diesen Kommentar", + "Reply": "Antwort", + "ReplyTo": "Antwort an", + "SamplePageMessage": "Eine Beispielseite für das Pro-Modul", + "SaveChanges": "Änderungen speichern", + "Script": "Skript", + "SelectAll": "Wählen Sie Alle", + "Send": "Schicken", + "SendMessage": "Nachricht senden", + "SelectedAuthor": "Autor", + "ShortDescription": "Kurze Beschreibung", + "Slug": "Schnecke", + "Source": "Quelle", + "SourceUrl": "Quell-URL", + "Star": "Stern", + "StartDate": "Startdatum", + "Style": "Stil", + "Subject": "Thema", + "SubjectPlaceholder": "Bitte geben Sie einen Betreff ein", + "Submit": "Einreichen", + "Subscribe": "Abonnieren", + "SuccessfullySaved": "Erfolgreich gespeichert!", + "TagDeletionConfirmationMessage": "Sind Sie sicher, dass Sie das Tag „{0}“ löschen?", + "Tags": "Stichworte", + "Text": "Text", + "ThankYou": "Danke", + "Title": "Titel", + "Undo": "Rückgängig machen", + "Update": "Aktualisieren", + "UpdatePreferenceSuccessMessage": "Ihre Präferenzen wurden gespeichert.", + "UpdateYourEmailPreferences": "Aktualisieren Sie Ihre E-Mail-Einstellungen", + "UnMakeMainMenu": "Hauptmenü deaktivieren", + "UploadFailedMessage": "Upload fehlgeschlagen.", + "UserId": "Benutzer-ID", + "Username": "Nutzername", + "YourComment": "Dein Kommentar", + "YourEmailAddress": "Ihre E-Mail-Adresse", + "YourFullName": "Ihr vollständiger Name", + "YourMessage": "Ihre Nachricht", + "YourReply": "Deine Antwort", + "MarkdownSupported": "Markdown unterstützt.", + "GlobalResources": "Globale Ressourcen", + "SavedSuccessfully": "Erfolgreich gespeichert", + "CmsKit.BlogPost.Status.0": "Entwurf", + "CmsKit.BlogPost.Status.1": "Veröffentlicht", + "CmsKit.BlogPost.Status.2": "Auf eine Rückmeldung warten", + "BlogPostPublishConfirmationMessage": "Sind Sie sicher, dass Sie den Blogbeitrag „{0}“ veröffentlichen?", + "SuccessfullyPublished": "Erfolgreich veröffentlicht!", + "Draft": "Entwurf", + "Publish": "Veröffentlichen", + "BlogPostDraftConfirmationMessage": "Sind Sie sicher, dass der Blogbeitrag „{0}“ als Entwurf festgelegt ist?", + "BlogPostSendToReviewConfirmationMessage": "Sind Sie sicher, dass Sie den Blog-Beitrag „{0}“ zur Veröffentlichung an den Administrator senden?", + "SaveAsDraft": "Als Entwurf speichern", + "SendToReview": "Zur Rezension senden", + "SendToReviewToPublish": "Zur Veröffentlichung zur Rezension senden", + "BlogPostSendToReviewSuccessMessage": "Der Blogbeitrag „{0}“ wurde zur Veröffentlichung an den Administrator zur Überprüfung gesendet.", + "HasBlogPostWaitingForReviewMessage": "Sie haben einen Blog-Beitrag, der auf eine Überprüfung wartet. Klicken Sie hier, um eine Liste anzuzeigen.", + "SelectAStatus": "Wählen Sie einen Status aus", + "Status": "Status", + "CmsKit.BlogPost.ScrollIndex": "Schnellnavigationsleiste in Blogbeiträgen", + "CmsKit.BlogPost.PreventXssFeature": "XSS verhindern", + "Add": "Hinzufügen", + "AddWidget": "Widget hinzufügen", + "PleaseConfigureWidgets": "Bitte konfigurieren Sie Widgets", + "SelectAnAuthor": "Wählen Sie einen Autor aus", + "InThisDocument": "In diesem Dokument", + "GoToTop": "Zur Spitze gehen", + "SetAsHomePage": "Ändern Sie den Homepage-Status", + "CompletedSettingAsHomePage": "Als Startseite festlegen", + "IsHomePage": "Ist Startseite", + "RemovedSettingAsHomePage": "Einstellung der Startseite entfernt", + "Feature:CmsKitGroup": "Cms-Kit", + "Feature:BlogEnable": "Blogeintrag", + "Feature:BlogEnableDescription": "Das Blogpost-System von CMS Kit, mit dem Sie Blogs und Beiträge dynamisch in der Anwendung erstellen können.", + "Feature:CommentEnable": "Kommentieren", + "Feature:CommentEnableDescription": "Das Kommentarsystem von CMS Kit ermöglicht das Kommentieren von Entitäten wie BlogPost.", + "Feature:GlobalResourceEnable": "Globale Ressourcenbeschaffung", + "Feature:GlobalResourceEnableDescription": "Die globale Ressourcenfunktion von CMS Kit ermöglicht die Verwaltung globaler Stile und Skripte.", + "Feature:MenuEnable": "Speisekarte", + "Feature:MenuEnableDescription": "Das dynamische Menüsystem von CMS Kit, das das dynamische Hinzufügen/Entfernen von Anwendungsmenüs ermöglicht.", + "Feature:PageEnable": "Paging", + "Feature:PageEnableDescription": "Das Seitensystem des CMS-Kits, das die Erstellung statischer Seiten mit einer bestimmten URL ermöglicht.", + "Feature:RatingEnable": "Bewertung", + "Feature:RatingEnableDescription": "Das Bewertungssystem von CMS Kit, mit dem Benutzer Entitäten wie BlogPost bewerten können.", + "Feature:ReactionEnable": "Reaktion", + "Feature:ReactionEnableDescription": "Das Reaktionssystem von CMS Kit, mit dem Benutzer Reaktionen an Entitäten wie BlogPost, Kommentare usw. senden können.", + "Feature:TagEnable": "Markieren", + "Feature:TagEnableDescription": "Das Tag-System von CMS Kit, das das Markieren von Entitäten wie BlogPost ermöglicht.", + "DeleteBlogPostMessage": "Der Blog wird gelöscht. Bist du sicher?", + "CaptchaCode": "Sicherheitscode", + "CommentTextRequired": "Kommentar ist erforderlich", + "CaptchaCodeErrorMessage": "Die Antwort, die Sie für das CAPTCHA eingegeben haben, war nicht korrekt. Bitte versuche es erneut", + "CaptchaCodeMissingMessage": "Der Captcha-Code fehlt!", + "UnAllowedExternalUrlMessage": "Sie haben eine unzulässige externe URL angegeben. Bitte versuchen Sie es erneut ohne die externe URL.", + "URL": "URL", + "PopularTags": "beliebte Schlagwörter", + "RemoveCoverImageConfirmationMessage": "Möchten Sie das Titelbild wirklich entfernen?", + "RemoveCoverImage": "Titelbild entfernen", + "CssClass": "CSS-Klasse", + "TagsHelpText": "Tags sollten durch Kommas getrennt werden (z. B. Tag1, Tag2, Tag3).", + "ThisPartOfContentCouldntBeLoaded": "Dieser Teil des Inhalts konnte nicht geladen werden.", + "DuplicateCommentAttemptMessage": "Es wurde versucht, einen doppelten Kommentar zu posten. Ihr Kommentar wurde bereits übermittelt." + } +} \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/en.json b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/en.json index 0169f42b7e..3bba4fc599 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/en.json +++ b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/en.json @@ -7,7 +7,7 @@ "BlogFeatureNotAvailable": "This feature is not available now. Enable with 'GlobalFeatureManager' to use it.", "BlogId": "Blog", "BlogPostDeletionConfirmationMessage": "The blog post '{0}' will be deleted. Are you sure?", - "BlogPosts": "Blog Posts", + "BlogPosts": "Blog posts", "Blogs": "Blogs", "ChoosePreference": "Choose Preference...", "Cms": "CMS", @@ -32,18 +32,18 @@ "Content": "Content", "ContentDeletionConfirmationMessage": "Are you sure to delete this content?", "Contents": "Contents", - "CoverImage": "Cover Image", - "CreateBlogPostPage": "New Blog Post", - "CreationTime": "Creation Time", + "CoverImage": "Cover image", + "CreateBlogPostPage": "New blog post", + "CreationTime": "Creation time", "Delete": "Delete", "Detail": "Detail", "Details": "Details", - "DisplayName": "Display Name", + "DisplayName": "Display name", "DoYouPreferAdditionalEmails": "Do you prefer additional emails?", "Edit": "Edit", - "EndDate": "End Date", + "EndDate": "End date", "EntityId": "Entity Id", - "EntityType": "Entity Type", + "EntityType": "Entity type", "ExportCSV": "Export CSV", "Features": "Features", "GenericDeletionConfirmationMessage": "Are you sure to delete '{0}'?", @@ -55,21 +55,21 @@ "LoginToReact": "Login to react", "LoginToReply": "Login to reply", "MainMenu": "Main Menu", - "MakeMainMenu": "Make Main Menu", + "MakeMainMenu": "Make main menu", "Menu:CMS": "CMS", "Menus": "Menus", "MenuDeletionConfirmationMessage": "The menu '{0}' will be deleted. Are you sure?", "MenuItemDeletionConfirmationMessage": "Are sure to delete this menu item?", "MenuItemMoveConfirmMessage": "Are you sure you want to move '{0}' under '{1}'?", - "MenuItems": "Menu Items", + "MenuItems": "Menu items", "Message": "Message", "MessageDeletionConfirmationMessage": "This comment will be deleted completely.", - "NewBlog": "New Blog", - "NewBlogPost": "New Blog Post", - "NewMenu": "New Menu", - "NewMenuItem": "New Root Menu Item", - "NewPage": "New Page", - "NewTag": "New Tag", + "NewBlog": "New blog", + "NewBlogPost": "New blog post", + "NewMenu": "New menu", + "NewMenuItem": "New root menu item", + "NewPage": "New page", + "NewTag": "New tag", "NoMenuItems": "There is no menu item yet!", "OK": "OK", "PageDeletionConfirmationMessage": "Are you sure to delete this page?", @@ -77,50 +77,50 @@ "Pages": "Pages", "PageSlugInformation": "Slug is used on url. Your url will be '/{{slug}}'.", "BlogSlugInformation": "Slug is used on url. Your url will be '/{0}/{{slug}}'.", - "Permission:BlogManagement": "Blog Management", + "Permission:BlogManagement": "Blog management", "Permission:BlogManagement.Create": "Create", "Permission:BlogManagement.Delete": "Delete", "Permission:BlogManagement.Features": "Features", "Permission:BlogManagement.Update": "Update", - "Permission:BlogPostManagement": "Blog Post Management", + "Permission:BlogPostManagement": "Blog post management", "Permission:BlogPostManagement.Create": "Create", "Permission:BlogPostManagement.Delete": "Delete", "Permission:BlogPostManagement.Update": "Update", "Permission:BlogPostManagement.Publish": "Publish", - "Permission:CmsKit": "CmsKit Admin", - "Permission:Comments": "Comment Management", + "Permission:CmsKit": "CmsKit admin", + "Permission:Comments": "Comment management", "Permission:Comments.Delete": "Delete", - "Permission:Contents": "Content Management", - "Permission:Contents.Create": "Create Content", - "Permission:Contents.Delete": "Delete Content", - "Permission:Contents.Update": "Update Content", - "Permission:MediaDescriptorManagement": "Media Management", + "Permission:Contents": "Content management", + "Permission:Contents.Create": "Create content", + "Permission:Contents.Delete": "Delete content", + "Permission:Contents.Update": "Update content", + "Permission:MediaDescriptorManagement": "Media management", "Permission:MediaDescriptorManagement:Create": "Create", "Permission:MediaDescriptorManagement:Delete": "Delete", - "Permission:MenuItemManagement": "Menu Item Management", + "Permission:MenuItemManagement": "Menu item management", "Permission:MenuItemManagement.Create": "Create", "Permission:MenuItemManagement.Delete": "Delete", "Permission:MenuItemManagement.Update": "Update", - "Permission:MenuManagement": "Menu Management", + "Permission:MenuManagement": "Menu management", "Permission:MenuManagement.Create": "Create", "Permission:MenuManagement.Delete": "Delete", "Permission:MenuManagement.Update": "Update", - "Permission:Menus": "Menu Management", + "Permission:Menus": "Menu management", "Permission:Menus.Create": "Create", "Permission:Menus.Delete": "Delete", "Permission:Menus.Update": "Update", - "Permission:PageManagement": "Page Management", + "Permission:PageManagement": "Page management", "Permission:PageManagement:Create": "Create", "Permission:PageManagement:Delete": "Delete", "Permission:PageManagement:Update": "Update", - "Permission:PageManagement:SetAsHomePage": "Set As Home Page", - "Permission:TagManagement": "Tag Management", + "Permission:PageManagement:SetAsHomePage": "Set as home page", + "Permission:TagManagement": "Tag management", "Permission:TagManagement.Create": "Create", "Permission:TagManagement.Delete": "Delete", "Permission:TagManagement.Update": "Update", - "Permission:GlobalResources": "Global Resources", - "Permission:CmsKitPublic": "CmsKit Public", - "Permission:Comments.DeleteAll": "Delete All", + "Permission:GlobalResources": "Global resources", + "Permission:CmsKitPublic": "CmsKit public", + "Permission:Comments.DeleteAll": "Delete all", "PickYourReaction": "Pick your reaction", "Rating": "Rating", "RatingUndoMessage": "Your rating will be undo.", @@ -130,9 +130,9 @@ "Reply": "Reply", "ReplyTo": "Reply to", "SamplePageMessage": "A sample page for the Pro module", - "SaveChanges": "Save Changes", + "SaveChanges": "Save changes", "Script": "Script", - "SelectAll": "Select All", + "SelectAll": "Select all", "Send": "Send", "SendMessage": "Send Message", "SelectedAuthor": "Author", @@ -167,7 +167,7 @@ "YourMessage": "Your Message", "YourReply": "Your reply", "MarkdownSupported": "Markdown supported.", - "GlobalResources": "Global Resources", + "GlobalResources": "Global resources", "SavedSuccessfully": "Saved successfully", "CmsKit.BlogPost.Status.0": "Draft", "CmsKit.BlogPost.Status.1": "Published", @@ -197,7 +197,7 @@ "CompletedSettingAsHomePage": "Set as home page", "IsHomePage": "Is Home Page", "RemovedSettingAsHomePage": "Removed setting the home page", - "Feature:CmsKitGroup": "Cms Kit", + "Feature:CmsKitGroup": "Cms kit", "Feature:BlogEnable": "Blogpost", "Feature:BlogEnableDescription": "CMS Kit's blogpost system that allows create blogs and posts dynamically in the application.", "Feature:CommentEnable": "Commenting", diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/es.json b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/es.json index fb8e963115..7c9d914404 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/es.json +++ b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/es.json @@ -15,7 +15,6 @@ "CmsKit.Ratings": "Calificaciones", "CmsKit.Reactions": "Reacciones", "CmsKit.Tags": "Etiquetas", - "CmsKit.BlogPost.PreventXssFeature": "Prevenir ataques XSS", "CmsKit:0002": "¡El contenido ya existe!", "CmsKit:0003": "La entidad {0} no se puede etiquetar.", "CmsKit:Blog:0001": "¡La babosa dada ({Slug}) ya existe!", @@ -87,6 +86,7 @@ "Permission:BlogPostManagement.Create": "Crear", "Permission:BlogPostManagement.Delete": "Borrar", "Permission:BlogPostManagement.Update": "Actualizar", + "Permission:BlogPostManagement.Publish": "Publicar", "Permission:CmsKit": "CmsKit", "Permission:Comments": "Gestión de comentarios", "Permission:Comments.Delete": "Borrar", @@ -113,10 +113,14 @@ "Permission:PageManagement:Create": "Crear", "Permission:PageManagement:Delete": "Borrar", "Permission:PageManagement:Update": "Actualizar", + "Permission:PageManagement:SetAsHomePage": "Establecer como página de inicio", "Permission:TagManagement": "Gestión de etiquetas", "Permission:TagManagement.Create": "Crear", "Permission:TagManagement.Delete": "Borrar", "Permission:TagManagement.Update": "Actualizar", + "Permission:GlobalResources": "Recursos globales", + "Permission:CmsKitPublic": "CmsKit público", + "Permission:Comments.DeleteAll": "Eliminar todos", "PickYourReaction": "Recoge tu reación", "Rating": "Clasificación", "RatingUndoMessage": "Tu puntuación sera removida.", @@ -131,6 +135,7 @@ "SelectAll": "Seleccionar todo", "Send": "Enviar", "SendMessage": "Enviar mensaje", + "SelectedAuthor": "Autor", "ShortDescription": "Breve descripción", "Slug": "Babosa", "Source": "Fuente", @@ -161,6 +166,67 @@ "YourFullName": "Tu nombre completo", "YourMessage": "Tu mensaje", "YourReply": "Tu respuesta", - "ThisPartOfContentCouldntBeLoaded": "Esta parte del contenido no se pudo cargar." + "MarkdownSupported": "Rebajas compatibles.", + "GlobalResources": "Recursos globales", + "SavedSuccessfully": "Guardado exitosamente", + "CmsKit.BlogPost.Status.0": "Borrador", + "CmsKit.BlogPost.Status.1": "Publicado", + "CmsKit.BlogPost.Status.2": "Esperando para revisión", + "BlogPostPublishConfirmationMessage": "¿Estás seguro de publicar la entrada del blog "{0}"?", + "SuccessfullyPublished": "Publicado con éxito!", + "Draft": "Borrador", + "Publish": "Publicar", + "BlogPostDraftConfirmationMessage": "¿Estás seguro de configurar la publicación del blog "{0}" como borrador?", + "BlogPostSendToReviewConfirmationMessage": "¿Está seguro de enviar la publicación del blog "{0}" a la revisión del administrador para su publicación?", + "SaveAsDraft": "Guardar como borrador", + "SendToReview": "Enviar a revisión", + "SendToReviewToPublish": "Enviar a revisión para publicar", + "BlogPostSendToReviewSuccessMessage": "La publicación del blog "{0}" se envió a revisión del administrador para su publicación.", + "HasBlogPostWaitingForReviewMessage": "Tienes una publicación de blog esperando revisión. Haga clic para listar.", + "SelectAStatus": "Seleccione un estado", + "Status": "Estado", + "CmsKit.BlogPost.ScrollIndex": "Barra de navegación rápida en publicaciones de blog", + "CmsKit.BlogPost.PreventXssFeature": "Prevenir ataques XSS", + "Add": "Agregar", + "AddWidget": "Agregar widget", + "PleaseConfigureWidgets": "Por favor configure los widgets", + "SelectAnAuthor": "Seleccione un autor", + "InThisDocument": "En este documento", + "GoToTop": "Ve arriba", + "SetAsHomePage": "Cambiar el estado de la página de inicio", + "CompletedSettingAsHomePage": "Establecer como página de inicio", + "IsHomePage": "Es la página de inicio", + "RemovedSettingAsHomePage": "Se eliminó la configuración de la página de inicio.", + "Feature:CmsKitGroup": "kit cms", + "Feature:BlogEnable": "Entrada en el blog", + "Feature:BlogEnableDescription": "Sistema de blogpost de CMS Kit que permite crear blogs y posts de forma dinámica en la aplicación.", + "Feature:CommentEnable": "Comentando", + "Feature:CommentEnableDescription": "El sistema de comentarios de CMS Kit permite comentar en entidades como BlogPost.", + "Feature:GlobalResourceEnable": "Recursos globales", + "Feature:GlobalResourceEnableDescription": "Función de recursos globales del CMS Kit que permite gestionar estilos y scripts globales.", + "Feature:MenuEnable": "Menú", + "Feature:MenuEnableDescription": "Sistema de menú dinámico de CMS Kit que permite agregar/eliminar menús de aplicaciones de forma dinámica.", + "Feature:PageEnable": "paginación", + "Feature:PageEnableDescription": "Sistema de páginas del CMS Kit que permite crear páginas estáticas con una URL específica.", + "Feature:RatingEnable": "Clasificación", + "Feature:RatingEnableDescription": "Sistema de calificación de CMS Kit que permite a los usuarios calificar entidades como BlogPost.", + "Feature:ReactionEnable": "Reacción", + "Feature:ReactionEnableDescription": "Sistema de reacción de CMS Kit que permite a los usuarios enviar reacciones a entidades como BlogPost, Comentarios, etc.", + "Feature:TagEnable": "Etiquetado", + "Feature:TagEnableDescription": "Sistema de etiquetas del CMS Kit que permite etiquetar entidades como BlogPost.", + "DeleteBlogPostMessage": "El blog será eliminado. ¿Está seguro?", + "CaptchaCode": "código CAPTCHA", + "CommentTextRequired": "Se requiere comentario", + "CaptchaCodeErrorMessage": "La respuesta que ingresaste para el CAPTCHA no fue correcta. Inténtalo de nuevo", + "CaptchaCodeMissingMessage": "¡Falta el código captcha!", + "UnAllowedExternalUrlMessage": "Incluiste una URL externa no permitida. Inténtelo de nuevo sin la URL externa.", + "URL": "URL", + "PopularTags": "Etiquetas Populares", + "RemoveCoverImageConfirmationMessage": "¿Estás seguro de que deseas eliminar la imagen de portada?", + "RemoveCoverImage": "Quitar imagen de portada", + "CssClass": "Clase CSS", + "TagsHelpText": "Las etiquetas deben estar separadas por comas (por ejemplo: etiqueta1, etiqueta2, etiqueta3)", + "ThisPartOfContentCouldntBeLoaded": "Esta parte del contenido no se pudo cargar.", + "DuplicateCommentAttemptMessage": "Intento de publicación de comentario duplicado detectado. Tu comentario ya ha sido enviado." } } \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/fi.json b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/fi.json index 54a0ea97a4..9fe9a4fd05 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/fi.json +++ b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/fi.json @@ -219,6 +219,14 @@ "CommentTextRequired": "Kommentti vaaditaan", "CaptchaCodeErrorMessage": "CAPTCHA:lle antamasi vastaus ei ollut oikea. Yritä uudelleen", "CaptchaCodeMissingMessage": "Captcha-koodi puuttuu!", - "ThisPartOfContentCouldntBeLoaded": "Tämä sisällön osa ei voitu ladata." + "UnAllowedExternalUrlMessage": "Lisäsit kielletty ulkoisen URL-osoitteen. Yritä uudelleen ilman ulkoista URL-osoitetta.", + "URL": "URL-osoite", + "PopularTags": "Suositut tunnisteet", + "RemoveCoverImageConfirmationMessage": "Haluatko varmasti poistaa kansikuvan?", + "RemoveCoverImage": "Poista kansikuva", + "CssClass": "CSS-luokka", + "TagsHelpText": "Tunnisteet on erotettava pilkuilla (esim. tag1, tag2, tag3)", + "ThisPartOfContentCouldntBeLoaded": "Tämä sisällön osa ei voitu ladata.", + "DuplicateCommentAttemptMessage": "Kopiokommenttiyritys havaittiin. Kommenttisi on jo lähetetty." } } \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/fr.json b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/fr.json index bbd4f67955..f083dedc11 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/fr.json +++ b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/fr.json @@ -15,7 +15,6 @@ "CmsKit.Ratings": "Évaluations", "CmsKit.Reactions": "Réactions", "CmsKit.Tags": "Mots clés", - "CmsKit.BlogPost.PreventXssFeature": "Empêcher les attaques XSS", "CmsKit:0002": "Le contenu existe déjà!", "CmsKit:0003": "L'entité {0} ne peut pas être taguée.", "CmsKit:Blog:0001": "Le slug donné ({Slug}) existe déjà!", @@ -87,6 +86,7 @@ "Permission:BlogPostManagement.Create": "Créer", "Permission:BlogPostManagement.Delete": "Effacer", "Permission:BlogPostManagement.Update": "Mettre à jour", + "Permission:BlogPostManagement.Publish": "Publier", "Permission:CmsKit": "CmsKit", "Permission:Comments": "Gestion des commentaires", "Permission:Comments.Delete": "Effacer", @@ -113,10 +113,14 @@ "Permission:PageManagement:Create": "Créer", "Permission:PageManagement:Delete": "Effacer", "Permission:PageManagement:Update": "Mettre à jour", + "Permission:PageManagement:SetAsHomePage": "Définir comme page d'accueil", "Permission:TagManagement": "Gestion des balises", "Permission:TagManagement.Create": "Créer", "Permission:TagManagement.Delete": "Effacer", "Permission:TagManagement.Update": "Mettre à jour", + "Permission:GlobalResources": "Ressources mondiales", + "Permission:CmsKitPublic": "CmsKit Public", + "Permission:Comments.DeleteAll": "Supprimer tout", "PickYourReaction": "Choisissez votre réaction", "Rating": "Notation", "RatingUndoMessage": "Votre note sera annulée.", @@ -131,6 +135,7 @@ "SelectAll": "Tout sélectionner", "Send": "Envoyer", "SendMessage": "Envoyer le message", + "SelectedAuthor": "Auteur", "ShortDescription": "Brève description", "Slug": "Limace", "Source": "La source", @@ -161,6 +166,67 @@ "YourFullName": "Ton nom complet", "YourMessage": "Votre message", "YourReply": "Votre réponse", - "ThisPartOfContentCouldntBeLoaded": "Cette partie du contenu n'a pas pu être chargée." + "MarkdownSupported": "Markdown pris en charge.", + "GlobalResources": "Ressources mondiales", + "SavedSuccessfully": "Enregistré avec succès", + "CmsKit.BlogPost.Status.0": "Brouillon", + "CmsKit.BlogPost.Status.1": "Publié", + "CmsKit.BlogPost.Status.2": "En attente d'une revue", + "BlogPostPublishConfirmationMessage": "Êtes-vous sûr de publier l'article de blog « {0} » ?", + "SuccessfullyPublished": "Publié avec succès !", + "Draft": "Brouillon", + "Publish": "Publier", + "BlogPostDraftConfirmationMessage": "Êtes-vous sûr de définir l'article de blog « {0} » comme brouillon ?", + "BlogPostSendToReviewConfirmationMessage": "Êtes-vous sûr d'envoyer l'article de blog « {0} » à l'administrateur pour qu'il soit publié ?", + "SaveAsDraft": "Enregistrer comme brouillon", + "SendToReview": "Envoyer pour examen", + "SendToReviewToPublish": "Envoyer pour révision pour publier", + "BlogPostSendToReviewSuccessMessage": "Le billet de blog "{0}" a été envoyé à l'administrateur pour révision pour publication.", + "HasBlogPostWaitingForReviewMessage": "Vous avez un article de blog en attente d'examen. Cliquez pour lister.", + "SelectAStatus": "Sélectionnez un statut", + "Status": "Statut", + "CmsKit.BlogPost.ScrollIndex": "Barre de navigation rapide dans les articles de blog", + "CmsKit.BlogPost.PreventXssFeature": "Empêcher les attaques XSS", + "Add": "Ajouter", + "AddWidget": "Ajouter un widget", + "PleaseConfigureWidgets": "Veuillez configurer les widgets", + "SelectAnAuthor": "Sélectionnez un auteur", + "InThisDocument": "Dans ce document", + "GoToTop": "Aller en haut", + "SetAsHomePage": "Modifier le statut de la page d'accueil", + "CompletedSettingAsHomePage": "Définir comme page d'accueil", + "IsHomePage": "Est la page d'accueil", + "RemovedSettingAsHomePage": "Suppression du réglage de la page d'accueil", + "Feature:CmsKitGroup": "Kit CMS", + "Feature:BlogEnable": "Article de blog", + "Feature:BlogEnableDescription": "Le système de blogpost de CMS Kit qui permet de créer des blogs et des articles de manière dynamique dans l'application.", + "Feature:CommentEnable": "Commentaire", + "Feature:CommentEnableDescription": "Le système de commentaires de CMS Kit permet de commenter des entités telles que BlogPost.", + "Feature:GlobalResourceEnable": "Ressources mondiales", + "Feature:GlobalResourceEnableDescription": "Fonctionnalité de ressources globales de CMS Kit qui permet de gérer les styles et scripts globaux.", + "Feature:MenuEnable": "Menu", + "Feature:MenuEnableDescription": "Système de menus dynamiques de CMS Kit qui permet d'ajouter/supprimer des menus d'application de manière dynamique.", + "Feature:PageEnable": "Pagination", + "Feature:PageEnableDescription": "Le système de pages de CMS Kit qui permet de créer des pages statiques avec une URL spécifique.", + "Feature:RatingEnable": "Notation", + "Feature:RatingEnableDescription": "Le système de notation de CMS Kit qui permet aux utilisateurs d'évaluer des entités telles que BlogPost.", + "Feature:ReactionEnable": "Réaction", + "Feature:ReactionEnableDescription": "Le système de réaction de CMS Kit qui permet aux utilisateurs d'envoyer des réactions à des entités telles que BlogPost, Commentaires, etc.", + "Feature:TagEnable": "Marquage", + "Feature:TagEnableDescription": "Le système de balises de CMS Kit qui permet de baliser des entités telles que BlogPost.", + "DeleteBlogPostMessage": "Le blog sera supprimé. Es-tu sûr?", + "CaptchaCode": "code Captcha", + "CommentTextRequired": "Un commentaire est requis", + "CaptchaCodeErrorMessage": "La réponse que vous avez saisie pour le CAPTCHA n'est pas correcte. Veuillez réessayer", + "CaptchaCodeMissingMessage": "Le code captcha est manquant !", + "UnAllowedExternalUrlMessage": "Vous avez inclus une URL externe non autorisée. Veuillez réessayer sans l'URL externe.", + "URL": "URL", + "PopularTags": "Tags populaires", + "RemoveCoverImageConfirmationMessage": "Êtes-vous sûr de vouloir supprimer l'image de couverture ?", + "RemoveCoverImage": "Supprimer l'image de couverture", + "CssClass": "Classe CSS", + "TagsHelpText": "Les balises doivent être séparées par des virgules (par exemple : tag1, tag2, tag3)", + "ThisPartOfContentCouldntBeLoaded": "Cette partie du contenu n'a pas pu être chargée.", + "DuplicateCommentAttemptMessage": "Tentative de publication de commentaire en double détectée. Votre commentaire a déjà été soumis." } } \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/hi.json b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/hi.json index b251ac8c18..c6ef1c1446 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/hi.json +++ b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/hi.json @@ -15,7 +15,6 @@ "CmsKit.Ratings": "रेटिंग्स", "CmsKit.Reactions": "प्रतिक्रियाओं", "CmsKit.Tags": "टैग", - "CmsKit.BlogPost.PreventXssFeature": "XSS रोकें", "CmsKit:0002": "सामग्री पहले से मौजूद है!", "CmsKit:0003": "इकाई {0} टैग करने योग्य नहीं है।", "CmsKit:Blog:0001": "दिया गया स्लग ({Slug}) पहले से मौजूद है!", @@ -87,6 +86,7 @@ "Permission:BlogPostManagement.Create": "सृजन करना", "Permission:BlogPostManagement.Delete": "हटाएं", "Permission:BlogPostManagement.Update": "अपडेट करें", + "Permission:BlogPostManagement.Publish": "प्रकाशित करना", "Permission:CmsKit": "CmsKit", "Permission:Comments": "टिप्पणी प्रबंधन", "Permission:Comments.Delete": "हटाएं", @@ -113,10 +113,14 @@ "Permission:PageManagement:Create": "सृजन करना", "Permission:PageManagement:Delete": "हटाएं", "Permission:PageManagement:Update": "अपडेट करें", + "Permission:PageManagement:SetAsHomePage": "मुखपृष्ठ के रूप में सेट करें", "Permission:TagManagement": "टैग प्रबंधन", "Permission:TagManagement.Create": "सृजन करना", "Permission:TagManagement.Delete": "हटाएं", "Permission:TagManagement.Update": "अपडेट करें", + "Permission:GlobalResources": "वैश्विक संसाधन", + "Permission:CmsKitPublic": "CmsKit सार्वजनिक", + "Permission:Comments.DeleteAll": "सभी हटा दो", "PickYourReaction": "अपनी प्रतिक्रिया उठाओ", "Rating": "रेटिंग", "RatingUndoMessage": "आपकी रेटिंग पूर्ववत होगी।", @@ -131,6 +135,7 @@ "SelectAll": "सभी का चयन करे", "Send": "संदेश", "SendMessage": "मेसेज भेजें", + "SelectedAuthor": "लेखक", "ShortDescription": "संक्षिप्त वर्णन", "Slug": "काउंटर", "Source": "स्रोत", @@ -161,6 +166,67 @@ "YourFullName": "आपका पूरा नाम", "YourMessage": "आपका संदेश", "YourReply": "आपके उत्तर", - "ThisPartOfContentCouldntBeLoaded": "यह भाग लोड नहीं किया जा सका।" + "MarkdownSupported": "मार्कडाउन समर्थित.", + "GlobalResources": "वैश्विक संसाधन", + "SavedSuccessfully": "सफलतापूर्वक बचाया", + "CmsKit.BlogPost.Status.0": "मसौदा", + "CmsKit.BlogPost.Status.1": "प्रकाशित", + "CmsKit.BlogPost.Status.2": "पुनरावलोकन के लिए प्रतीक्षारत", + "BlogPostPublishConfirmationMessage": "क्या आप निश्चित रूप से ब्लॉग पोस्ट "{0}" प्रकाशित करना चाहते हैं?", + "SuccessfullyPublished": "सफलतापूर्वक प्रकाशित!", + "Draft": "मसौदा", + "Publish": "प्रकाशित करना", + "BlogPostDraftConfirmationMessage": "क्या आप निश्चित रूप से ब्लॉग पोस्ट "{0}" को ड्राफ्ट के रूप में सेट करना चाहते हैं?", + "BlogPostSendToReviewConfirmationMessage": "क्या आप निश्चित रूप से ब्लॉग पोस्ट "{0}" को प्रकाशन के लिए व्यवस्थापक समीक्षा को भेजेंगे?", + "SaveAsDraft": "ड्राफ्ट के रूप में सेव करें", + "SendToReview": "समीक्षा हेतु भेजें", + "SendToReviewToPublish": "प्रकाशित करने के लिए समीक्षा हेतु भेजें", + "BlogPostSendToReviewSuccessMessage": "ब्लॉग पोस्ट "{0}" को प्रकाशन के लिए व्यवस्थापक समीक्षा के लिए भेज दिया गया है।", + "HasBlogPostWaitingForReviewMessage": "आपके पास समीक्षा की प्रतीक्षा में एक ब्लॉग पोस्ट है. सूची के लिए क्लिक करें.", + "SelectAStatus": "एक स्थिति चुनें", + "Status": "स्थिति", + "CmsKit.BlogPost.ScrollIndex": "ब्लॉग पोस्ट में त्वरित नेविगेशन बार", + "CmsKit.BlogPost.PreventXssFeature": "XSS रोकें", + "Add": "जोड़ना", + "AddWidget": "विजेट जोड़ें", + "PleaseConfigureWidgets": "कृपया विजेट कॉन्फ़िगर करें", + "SelectAnAuthor": "एक लेखक का चयन करें", + "InThisDocument": "इस दस्तावेज़ में", + "GoToTop": "शीर्ष पर जाएँ", + "SetAsHomePage": "होम पेज स्थिति बदलें", + "CompletedSettingAsHomePage": "मुखपृष्ठ के रूप में सेट करें", + "IsHomePage": "होम पेज है", + "RemovedSettingAsHomePage": "होम पेज की सेटिंग हटा दी गई", + "Feature:CmsKitGroup": "सीएमएस किट", + "Feature:BlogEnable": "ब्लॉग भेजा", + "Feature:BlogEnableDescription": "सीएमएस किट का ब्लॉगपोस्ट सिस्टम जो एप्लिकेशन में गतिशील रूप से ब्लॉग और पोस्ट बनाने की अनुमति देता है।", + "Feature:CommentEnable": "टिप्पणी करते हुए", + "Feature:CommentEnableDescription": "सीएमएस किट की टिप्पणी प्रणाली ब्लॉगपोस्ट जैसी संस्थाओं पर टिप्पणी करने की अनुमति देती है।", + "Feature:GlobalResourceEnable": "वैश्विक संसाधन", + "Feature:GlobalResourceEnableDescription": "सीएमएस किट की वैश्विक संसाधन सुविधा जो वैश्विक शैलियों और स्क्रिप्ट को प्रबंधित करने की अनुमति देती है।", + "Feature:MenuEnable": "मेन्यू", + "Feature:MenuEnableDescription": "सीएमएस किट की गतिशील मेनू प्रणाली जो एप्लिकेशन मेनू को गतिशील रूप से जोड़ने/हटाने की अनुमति देती है।", + "Feature:PageEnable": "पेजिंग", + "Feature:PageEnableDescription": "सीएमएस किट का पेज सिस्टम जो विशिष्ट यूआरएल के साथ स्थिर पेज बनाने की अनुमति देता है।", + "Feature:RatingEnable": "रेटिंग", + "Feature:RatingEnableDescription": "सीएमएस किट की रेटिंग प्रणाली जो उपयोगकर्ताओं को ब्लॉगपोस्ट जैसी संस्थाओं को रेटिंग देने की अनुमति देती है।", + "Feature:ReactionEnable": "प्रतिक्रिया", + "Feature:ReactionEnableDescription": "सीएमएस किट की प्रतिक्रिया प्रणाली जो उपयोगकर्ताओं को ब्लॉगपोस्ट, टिप्पणियाँ आदि जैसी संस्थाओं को प्रतिक्रियाएँ भेजने की अनुमति देती है।", + "Feature:TagEnable": "टैगिंग", + "Feature:TagEnableDescription": "सीएमएस किट की टैग प्रणाली जो ब्लॉगपोस्ट जैसी संस्थाओं को टैग करने की अनुमति देती है।", + "DeleteBlogPostMessage": "ब्लॉग हटा दिया जाएगा. क्या आपको यकीन है?", + "CaptchaCode": "कैप्चा कोड", + "CommentTextRequired": "टिप्पणी आवश्यक है", + "CaptchaCodeErrorMessage": "कैप्चा के लिए आपके द्वारा दर्ज किया गया उत्तर सही नहीं था। कृपया पुन: प्रयास करें", + "CaptchaCodeMissingMessage": "कैप्चा कोड गायब है!", + "UnAllowedExternalUrlMessage": "आपने एक अस्वीकृत बाहरी यूआरएल शामिल किया है। कृपया बाहरी यूआरएल के बिना पुनः प्रयास करें।", + "URL": "यूआरएल", + "PopularTags": "प्रसिद्ध टग्स", + "RemoveCoverImageConfirmationMessage": "क्या आप वाकई कवर छवि हटाना चाहते हैं?", + "RemoveCoverImage": "कवर छवि हटाएँ", + "CssClass": "सीएसएस क्लास", + "TagsHelpText": "टैग को अल्पविराम से अलग किया जाना चाहिए (जैसे: टैग1, टैग2, टैग3)", + "ThisPartOfContentCouldntBeLoaded": "यह भाग लोड नहीं किया जा सका।", + "DuplicateCommentAttemptMessage": "डुप्लिकेट टिप्पणी पोस्ट प्रयास का पता चला। आपकी टिप्पणी पहले ही सबमिट की जा चुकी है." } } \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/hr.json b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/hr.json new file mode 100644 index 0000000000..f610835e57 --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/hr.json @@ -0,0 +1,232 @@ +{ + "culture": "hr", + "texts": { + "AddSubMenuItem": "Dodaj stavku podizbornika", + "AreYouSure": "Jesi li siguran?", + "BlogDeletionConfirmationMessage": "Blog '{0}' bit će izbrisan. Jesi li siguran?", + "BlogFeatureNotAvailable": "Ova značajka trenutno nije dostupna. Omogućite s 'GlobalFeatureManager' da biste ga koristili.", + "BlogId": "Blog", + "BlogPostDeletionConfirmationMessage": "Post na blogu '{0}' bit će izbrisan. Jesi li siguran?", + "BlogPosts": "Postovi na blogu", + "Blogs": "blogovi", + "ChoosePreference": "Odaberite preferenciju...", + "Cms": "CMS", + "CmsKit.Comments": "Komentari", + "CmsKit.Ratings": "Ocjene", + "CmsKit.Reactions": "Reakcije", + "CmsKit.Tags": "Oznake", + "CmsKit:0002": "Sadržaj već postoji!", + "CmsKit:0003": "Entitet {0} nije moguće označiti.", + "CmsKit:Blog:0001": "Navedeni puž ({Slug}) već postoji!", + "CmsKit:BlogPost:0001": "Navedeni puž već postoji!", + "CmsKit:Comments:0001": "Entitet {EntityType} ne može se komentirati.", + "CmsKit:Media:0001": "'{Name}' nije važeći naziv medija.", + "CmsKit:Media:0002": "Entitet ne može imati medije.", + "CmsKit:Page:0001": "Navedeni url ({Slug}) već postoji. Pokušajte s drugim url-om.", + "CmsKit:Rating:0001": "Entitet {EntityType} ne može se ocijeniti.", + "CmsKit:Reaction:0001": "Entitet {EntityType} ne može imati reakcije.", + "CmsKit:Tag:0002": "Entitet se ne može označiti!", + "CommentAuthorizationExceptionMessage": "Ti komentari nisu dopušteni za javno prikazivanje.", + "CommentDeletionConfirmationMessage": "Ovaj komentar i svi odgovori bit će izbrisani!", + "Comments": "Komentari", + "Content": "Sadržaj", + "ContentDeletionConfirmationMessage": "Jeste li sigurni da želite izbrisati ovaj sadržaj?", + "Contents": "Sadržaj", + "CoverImage": "Naslovna slika", + "CreateBlogPostPage": "Novi blog post", + "CreationTime": "Vrijeme stvaranja", + "Delete": "Izbrisati", + "Detail": "Detalj", + "Details": "pojedinosti", + "DisplayName": "Ime za prikaz", + "DoYouPreferAdditionalEmails": "Preferirate li dodatne e-poruke?", + "Edit": "Uredi", + "EndDate": "Datum završetka", + "EntityId": "ID entiteta", + "EntityType": "Vrsta entiteta", + "ExportCSV": "Izvezi CSV", + "Features": "Značajke", + "GenericDeletionConfirmationMessage": "Jeste li sigurni da želite izbrisati '{0}'?", + "IsActive": "Aktivan", + "LastModification": "Zadnja izmjena", + "LastModificationTime": "Vrijeme zadnje izmjene", + "LoginToAddComment": "Prijavite se za dodavanje komentara", + "LoginToRate": "Prijavite se da biste ocijenili", + "LoginToReact": "Prijavite se za reakciju", + "LoginToReply": "Prijavite se za odgovor", + "MainMenu": "Glavni izbornik", + "MakeMainMenu": "Napravi glavni izbornik", + "Menu:CMS": "CMS", + "Menus": "Izbornici", + "MenuDeletionConfirmationMessage": "Izbornik '{0}' bit će izbrisan. Jesi li siguran?", + "MenuItemDeletionConfirmationMessage": "Jeste li sigurni da želite izbrisati ovu stavku izbornika?", + "MenuItemMoveConfirmMessage": "Jeste li sigurni da želite premjestiti '{0}' ispod '{1}'?", + "MenuItems": "Stavke izbornika", + "Message": "Poruka", + "MessageDeletionConfirmationMessage": "Ovaj komentar će biti potpuno izbrisan.", + "NewBlog": "Novi blog", + "NewBlogPost": "Novi blog post", + "NewMenu": "Novi izbornik", + "NewMenuItem": "Nova stavka korijenskog izbornika", + "NewPage": "Nova stranica", + "NewTag": "Nova oznaka", + "NoMenuItems": "Još nema stavke jelovnika!", + "OK": "u redu", + "PageDeletionConfirmationMessage": "Jeste li sigurni da želite izbrisati ovu stranicu?", + "PageId": "Stranica", + "Pages": "Stranice", + "PageSlugInformation": "Slug se koristi na url-u. Vaš url će biti '/{{slug}}'.", + "BlogSlugInformation": "Slug se koristi na url-u. Vaš će url biti '/{0}/{{slug}}'.", + "Permission:BlogManagement": "Upravljanje blogom", + "Permission:BlogManagement.Create": "Stvoriti", + "Permission:BlogManagement.Delete": "Izbrisati", + "Permission:BlogManagement.Features": "Značajke", + "Permission:BlogManagement.Update": "Ažuriraj", + "Permission:BlogPostManagement": "Upravljanje objavama na blogu", + "Permission:BlogPostManagement.Create": "Stvoriti", + "Permission:BlogPostManagement.Delete": "Izbrisati", + "Permission:BlogPostManagement.Update": "Ažuriraj", + "Permission:BlogPostManagement.Publish": "Objaviti", + "Permission:CmsKit": "CmsKit Administrator", + "Permission:Comments": "Upravljanje komentarima", + "Permission:Comments.Delete": "Izbrisati", + "Permission:Contents": "Upravljanje sadržajem", + "Permission:Contents.Create": "Stvorite sadržaj", + "Permission:Contents.Delete": "Brisanje sadržaja", + "Permission:Contents.Update": "Ažurirajte sadržaj", + "Permission:MediaDescriptorManagement": "Upravljanje medijima", + "Permission:MediaDescriptorManagement:Create": "Stvoriti", + "Permission:MediaDescriptorManagement:Delete": "Izbrisati", + "Permission:MenuItemManagement": "Upravljanje stavkama izbornika", + "Permission:MenuItemManagement.Create": "Stvoriti", + "Permission:MenuItemManagement.Delete": "Izbrisati", + "Permission:MenuItemManagement.Update": "Ažuriraj", + "Permission:MenuManagement": "Upravljanje izbornikom", + "Permission:MenuManagement.Create": "Stvoriti", + "Permission:MenuManagement.Delete": "Izbrisati", + "Permission:MenuManagement.Update": "Ažuriraj", + "Permission:Menus": "Upravljanje izbornikom", + "Permission:Menus.Create": "Stvoriti", + "Permission:Menus.Delete": "Izbrisati", + "Permission:Menus.Update": "Ažuriraj", + "Permission:PageManagement": "Upravljanje stranicama", + "Permission:PageManagement:Create": "Stvoriti", + "Permission:PageManagement:Delete": "Izbrisati", + "Permission:PageManagement:Update": "Ažuriraj", + "Permission:PageManagement:SetAsHomePage": "Postavi kao početnu stranicu", + "Permission:TagManagement": "Upravljanje oznakama", + "Permission:TagManagement.Create": "Stvoriti", + "Permission:TagManagement.Delete": "Izbrisati", + "Permission:TagManagement.Update": "Ažuriraj", + "Permission:GlobalResources": "Globalni resursi", + "Permission:CmsKitPublic": "CmsKit Javno", + "Permission:Comments.DeleteAll": "Izbrisati sve", + "PickYourReaction": "Odaberite svoju reakciju", + "Rating": "Ocjena", + "RatingUndoMessage": "Vaša će ocjena biti poništena.", + "Reactions": "Reakcije", + "Read": "Čitati", + "RepliesToThisComment": "Odgovori na ovaj komentar", + "Reply": "Odgovor", + "ReplyTo": "Odgovarati na", + "SamplePageMessage": "Ogledna stranica za Pro modul", + "SaveChanges": "Spremi promjene", + "Script": "Skripta", + "SelectAll": "Odaberi sve", + "Send": "Poslati", + "SendMessage": "Pošalji poruku", + "SelectedAuthor": "Autor", + "ShortDescription": "Kratki opis", + "Slug": "Puž", + "Source": "Izvor", + "SourceUrl": "Izvorni URL", + "Star": "Zvijezda", + "StartDate": "Početni datum", + "Style": "Stil", + "Subject": "Predmet", + "SubjectPlaceholder": "Molimo upišite predmet", + "Submit": "podnijeti", + "Subscribe": "Pretplatite se", + "SuccessfullySaved": "Uspješno spremljeno!", + "TagDeletionConfirmationMessage": "Jeste li sigurni da želite izbrisati oznaku '{0}'?", + "Tags": "Oznake", + "Text": "Tekst", + "ThankYou": "Hvala vam", + "Title": "Titula", + "Undo": "Poništi", + "Update": "Ažuriraj", + "UpdatePreferenceSuccessMessage": "Vaše postavke su spremljene.", + "UpdateYourEmailPreferences": "Ažurirajte svoje postavke e-pošte", + "UnMakeMainMenu": "Poništi glavni izbornik", + "UploadFailedMessage": "Prijenos nije uspio.", + "UserId": "ID korisnika", + "Username": "Korisničko ime", + "YourComment": "Tvoj komentar", + "YourEmailAddress": "Vaša email adresa", + "YourFullName": "Tvoje puno ime", + "YourMessage": "Tvoja poruka", + "YourReply": "Tvoj odgovor", + "MarkdownSupported": "Markdown podržan.", + "GlobalResources": "Globalni resursi", + "SavedSuccessfully": "Uspješno spremljeno", + "CmsKit.BlogPost.Status.0": "Nacrt", + "CmsKit.BlogPost.Status.1": "Objavljeno", + "CmsKit.BlogPost.Status.2": "Cekati recenziju", + "BlogPostPublishConfirmationMessage": "Jeste li sigurni da želite objaviti post na blogu "{0}"?", + "SuccessfullyPublished": "Uspješno objavljeno!", + "Draft": "Nacrt", + "Publish": "Objaviti", + "BlogPostDraftConfirmationMessage": "Jeste li sigurni da post na blogu "{0}" postavite kao skicu?", + "BlogPostSendToReviewConfirmationMessage": "Jeste li sigurni da ćete post na blogu "{0}" poslati administratoru na pregled za objavljivanje?", + "SaveAsDraft": "Spremi kao skicu", + "SendToReview": "Pošaljite na recenziju", + "SendToReviewToPublish": "Pošaljite na pregled za objavu", + "BlogPostSendToReviewSuccessMessage": "Post na blogu "{0}" je poslan na pregled administratora za objavljivanje.", + "HasBlogPostWaitingForReviewMessage": "Imate post na blogu koji čeka na pregled. Kliknite za popis.", + "SelectAStatus": "Odaberite status", + "Status": "Status", + "CmsKit.BlogPost.ScrollIndex": "Brza navigacijska traka u postovima na blogu", + "CmsKit.BlogPost.PreventXssFeature": "Spriječite XSS", + "Add": "Dodati", + "AddWidget": "Dodaj widget", + "PleaseConfigureWidgets": "Molimo konfigurirajte widgete", + "SelectAnAuthor": "Odaberite autora", + "InThisDocument": "U ovom dokumentu", + "GoToTop": "Idi na vrh", + "SetAsHomePage": "Promjena statusa početne stranice", + "CompletedSettingAsHomePage": "Postavi kao početnu stranicu", + "IsHomePage": "Je Početna stranica", + "RemovedSettingAsHomePage": "Uklonjeno postavljanje početne stranice", + "Feature:CmsKitGroup": "Cms Kit", + "Feature:BlogEnable": "Post na blogu", + "Feature:BlogEnableDescription": "Sustav blogpost CMS Kit-a koji omogućuje dinamičko stvaranje blogova i postova u aplikaciji.", + "Feature:CommentEnable": "Komentiranje", + "Feature:CommentEnableDescription": "Sustav komentara CMS Kita omogućuje komentiranje entiteta kao što je BlogPost.", + "Feature:GlobalResourceEnable": "Globalno pronalaženje resursa", + "Feature:GlobalResourceEnableDescription": "Značajka globalnih resursa CMS Kita koja omogućuje upravljanje globalnim stilovima i skriptama.", + "Feature:MenuEnable": "Jelovnik ", + "Feature:MenuEnableDescription": "Dinamički sustav izbornika CMS Kit-a koji omogućuje dinamičko dodavanje/uklanjanje izbornika aplikacija.", + "Feature:PageEnable": "Paging", + "Feature:PageEnableDescription": "CMS Kit sustav stranica koji omogućuje stvaranje statičnih stranica s određenim URL-om.", + "Feature:RatingEnable": "Ocjena", + "Feature:RatingEnableDescription": "Sustav ocjenjivanja CMS Kit-a koji korisnicima omogućuje ocjenjivanje entiteta kao što je BlogPost.", + "Feature:ReactionEnable": "Reakcija", + "Feature:ReactionEnableDescription": "Sustav reakcija CMS Kit-a koji korisnicima omogućuje slanje reakcija na entitete kao što su BlogPost, Komentari itd.", + "Feature:TagEnable": "Označavanje", + "Feature:TagEnableDescription": "Sustav oznaka CMS Kit-a koji omogućuje označavanje entiteta kao što je BlogPost.", + "DeleteBlogPostMessage": "Blog će biti izbrisan. Jesi li siguran?", + "CaptchaCode": "Captcha kod", + "CommentTextRequired": "Komentar je obavezan", + "CaptchaCodeErrorMessage": "Odgovor koji ste unijeli za CAPTCHA nije točan. Molim te pokušaj ponovno", + "CaptchaCodeMissingMessage": "Nedostaje captcha kod!", + "UnAllowedExternalUrlMessage": "Uključili ste nedopušteni vanjski URL. Pokušajte ponovno bez vanjskog URL-a.", + "URL": "URL", + "PopularTags": "Popularne oznake", + "RemoveCoverImageConfirmationMessage": "Jeste li sigurni da želite ukloniti naslovnu sliku?", + "RemoveCoverImage": "Ukloni naslovnu sliku", + "CssClass": "CSS klasa", + "TagsHelpText": "Oznake trebaju biti odvojene zarezom (npr. oznaka1, oznaka2, oznaka3)", + "ThisPartOfContentCouldntBeLoaded": "Ovaj dio sadržaja nije bilo moguće učitati.", + "DuplicateCommentAttemptMessage": "Otkriven pokušaj postavljanja duplikata komentara. Vaš komentar je već poslan." + } +} \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/hu.json b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/hu.json index 43afc9575c..8468419e49 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/hu.json +++ b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/hu.json @@ -113,11 +113,14 @@ "Permission:PageManagement:Create": "Teremt", "Permission:PageManagement:Delete": "Töröl", "Permission:PageManagement:Update": "Frissítés", + "Permission:PageManagement:SetAsHomePage": "Beállítás kezdőlapnak", "Permission:TagManagement": "Címkekezelés", "Permission:TagManagement.Create": "Teremt", "Permission:TagManagement.Delete": "Töröl", "Permission:TagManagement.Update": "Frissítés", "Permission:GlobalResources": "Globális források", + "Permission:CmsKitPublic": "CmsKit Nyilvános", + "Permission:Comments.DeleteAll": "Mindet törölni", "PickYourReaction": "Válassza ki a reakciót", "Rating": "Értékelés", "RatingUndoMessage": "Az értékelésed visszavonásra kerül.", @@ -190,6 +193,10 @@ "SelectAnAuthor": "Válasszon ki egy szerzőt", "InThisDocument": "Ebben a dokumentumban", "GoToTop": "Ugrás a tetejére", + "SetAsHomePage": "A kezdőlap állapotának módosítása", + "CompletedSettingAsHomePage": "Beállítás kezdőlapnak", + "IsHomePage": "Kezdőlap", + "RemovedSettingAsHomePage": "A kezdőlap beállítása eltávolítva", "Feature:CmsKitGroup": "Cms készlet", "Feature:BlogEnable": "Engedélyezett blogoldal", "Feature:BlogEnableDescription": "Engedélyezze a blogoldalt az alkalmazásban.", @@ -207,6 +214,19 @@ "Feature:ReactionEnableDescription": "Reakció engedélyezése az alkalmazásban.", "Feature:TagEnable": "Címkézés engedélyezve", "Feature:TagEnableDescription": "Engedélyezze a címkézést az alkalmazásban.", - "ThisPartOfContentCouldntBeLoaded": "A tartalom ezen része nem tölthető be." + "DeleteBlogPostMessage": "A blog törlésre kerül. biztos vagy ebben?", + "CaptchaCode": "CAPTCHA kód", + "CommentTextRequired": "Megjegyzés szükséges", + "CaptchaCodeErrorMessage": "A CAPTCHA-hoz megadott válasz nem volt helyes. Kérlek próbáld újra", + "CaptchaCodeMissingMessage": "A captcha kód hiányzik!", + "UnAllowedExternalUrlMessage": "Nem engedélyezett külső URL-t adott meg. Kérjük, próbálja újra a külső URL nélkül.", + "URL": "URL", + "PopularTags": "Népszerű címkék", + "RemoveCoverImageConfirmationMessage": "Biztosan eltávolítja a borítóképet?", + "RemoveCoverImage": "Borítókép eltávolítása", + "CssClass": "CSS osztály", + "TagsHelpText": "A címkéket vesszővel kell elválasztani (pl.: tag1, tag2, tag3)", + "ThisPartOfContentCouldntBeLoaded": "A tartalom ezen része nem tölthető be.", + "DuplicateCommentAttemptMessage": "Ismétlődő megjegyzés közzétételi kísérlet észlelve. Megjegyzését már elküldtük." } } \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/is.json b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/is.json index 8b7bebc1ea..c3a60c1af6 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/is.json +++ b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/is.json @@ -15,7 +15,6 @@ "CmsKit.Ratings": "Skor", "CmsKit.Reactions": "Viðbrögð", "CmsKit.Tags": "Tög", - "CmsKit.BlogPost.PreventXssFeature": "Fyrirbyggja XSS árásir", "CmsKit:0002": "Efni nú þegar til!", "CmsKit:0003": "Ekki hægt að tagga einingu {0}", "CmsKit:Blog:0001": "Uppgefin snigill ({Slug}) er þegar til!", @@ -87,6 +86,7 @@ "Permission:BlogPostManagement.Create": "Búa til", "Permission:BlogPostManagement.Delete": "Eyða", "Permission:BlogPostManagement.Update": "Uppfæra", + "Permission:BlogPostManagement.Publish": "Birta", "Permission:CmsKit": "CmsKit", "Permission:Comments": "Athugasemdastjórnun", "Permission:Comments.Delete": "Eyða", @@ -113,10 +113,14 @@ "Permission:PageManagement:Create": "Búa til", "Permission:PageManagement:Delete": "Eyða", "Permission:PageManagement:Update": "Uppfæra", + "Permission:PageManagement:SetAsHomePage": "Stilla sem heimasíða", "Permission:TagManagement": "Töggunar stjórnun", "Permission:TagManagement.Create": "Búa til", "Permission:TagManagement.Delete": "Eyða", "Permission:TagManagement.Update": "Uppfæra", + "Permission:GlobalResources": "Alheimsauðlindir", + "Permission:CmsKitPublic": "CmsKit Public", + "Permission:Comments.DeleteAll": "Eyða öllu", "PickYourReaction": "Veldu viðbrögð þín", "Rating": "Einkunn", "RatingUndoMessage": "Einkunn þín verður afturkölluð.", @@ -131,6 +135,7 @@ "SelectAll": "Velja Allt", "Send": "Senda", "SendMessage": "Senda Skilaboð", + "SelectedAuthor": "Höfundur", "ShortDescription": "Stutt lýsing", "Slug": "Snígill", "Source": "Uppruni", @@ -161,6 +166,67 @@ "YourFullName": "Fullt nafn", "YourMessage": "Skilaboð þín", "YourReply": "Svarið þitt", - "ThisPartOfContentCouldntBeLoaded": "Þessi hluti af efni gat ekki verið hlaðið inn." + "MarkdownSupported": "Markdown stutt.", + "GlobalResources": "Alheimsauðlindir", + "SavedSuccessfully": "Vistað tókst", + "CmsKit.BlogPost.Status.0": "Drög", + "CmsKit.BlogPost.Status.1": "Birt", + "CmsKit.BlogPost.Status.2": "Bíð eftir endurskoðun", + "BlogPostPublishConfirmationMessage": "Ertu viss um að þú eigir að birta bloggfærsluna "{0}"?", + "SuccessfullyPublished": "Gefið út!", + "Draft": "Drög", + "Publish": "Birta", + "BlogPostDraftConfirmationMessage": "Ertu viss um að setja bloggfærsluna „{0}“ sem drög?", + "BlogPostSendToReviewConfirmationMessage": "Ertu viss um að þú eigir að senda bloggfærsluna "{0}" til að skoða stjórnendur til birtingar?", + "SaveAsDraft": "Vista sem drög", + "SendToReview": "Senda til skoðunar", + "SendToReviewToPublish": "Senda til að skoða til að birta", + "BlogPostSendToReviewSuccessMessage": "Bloggfærslan „{0}“ hefur verið send til að skoða stjórnendur til birtingar.", + "HasBlogPostWaitingForReviewMessage": "Þú ert með bloggfærslu sem bíður skoðunar. Smelltu til að lista.", + "SelectAStatus": "Veldu stöðu", + "Status": "Staða", + "CmsKit.BlogPost.ScrollIndex": "Fljótleg leiðarstika í bloggfærslum", + "CmsKit.BlogPost.PreventXssFeature": "Fyrirbyggja XSS árásir", + "Add": "Bæta við", + "AddWidget": "Bæta við græju", + "PleaseConfigureWidgets": "Vinsamlega stilltu græjur", + "SelectAnAuthor": "Veldu höfund", + "InThisDocument": "Í þessu skjali", + "GoToTop": "Farðu efst", + "SetAsHomePage": "Breyta stöðu heimasíðunnar", + "CompletedSettingAsHomePage": "Stilla sem heimasíða", + "IsHomePage": "Er Heimasíða", + "RemovedSettingAsHomePage": "Fjarlægði stilling heimasíða", + "Feature:CmsKitGroup": "Cms Kit", + "Feature:BlogEnable": "Bloggfærsla", + "Feature:BlogEnableDescription": "Bloggpóstkerfi CMS Kit sem gerir kleift að búa til blogg og færslur á kraftmikinn hátt í forritinu.", + "Feature:CommentEnable": "Athugasemdir", + "Feature:CommentEnableDescription": "Athugasemdakerfi CMS Kit gerir athugasemdir við aðila eins og BlogPost.", + "Feature:GlobalResourceEnable": "Hnattræn auðlind", + "Feature:GlobalResourceEnableDescription": "Alþjóðleg úrræðisaðgerð CMS Kit sem gerir kleift að stjórna alþjóðlegum stílum og skriftum.", + "Feature:MenuEnable": "Matseðill", + "Feature:MenuEnableDescription": "Kraftmikið valmyndakerfi CMS Kit sem gerir kleift að bæta við/fjarlægja forritavalmyndir á virkan hátt.", + "Feature:PageEnable": "Símboð", + "Feature:PageEnableDescription": "Síðukerfi CMS Kit sem gerir kleift að búa til kyrrstæðar síður með ákveðinni slóð.", + "Feature:RatingEnable": "Einkunn", + "Feature:RatingEnableDescription": "Matskerfi CMS Kit sem gerir notendum kleift að gefa einingum eins og BlogPost einkunn.", + "Feature:ReactionEnable": "Viðbrögð", + "Feature:ReactionEnableDescription": "Viðbragðskerfi CMS Kit sem gerir notendum kleift að senda viðbrögð til aðila eins og BlogPost, athugasemdir o.fl.", + "Feature:TagEnable": "Merking", + "Feature:TagEnableDescription": "Merkjakerfi CMS Kit sem gerir kleift að merkja aðila eins og BlogPost.", + "DeleteBlogPostMessage": "Blogginu verður eytt. Ertu viss?", + "CaptchaCode": "Captcha kóða", + "CommentTextRequired": "Athugasemda er krafist", + "CaptchaCodeErrorMessage": "Svarið sem þú slóst inn fyrir CAPTCHA var ekki rétt. Vinsamlegast reyndu aftur", + "CaptchaCodeMissingMessage": "Captcha kóðann vantar!", + "UnAllowedExternalUrlMessage": "Þú settir inn óleyfilega ytri vefslóð. Vinsamlegast reyndu aftur án ytri vefslóðarinnar.", + "URL": "URL", + "PopularTags": "Vinsæl merki", + "RemoveCoverImageConfirmationMessage": "Ertu viss um að þú viljir fjarlægja forsíðumyndina?", + "RemoveCoverImage": "Fjarlægðu forsíðumynd", + "CssClass": "CSS flokkur", + "TagsHelpText": "Merki ættu að vera aðskilin með kommum (td: tag1, tag2, tag3)", + "ThisPartOfContentCouldntBeLoaded": "Þessi hluti af efni gat ekki verið hlaðið inn.", + "DuplicateCommentAttemptMessage": "Tvítekin tilraun til að skrifa athugasemd fannst. Athugasemd þín hefur þegar verið send." } } \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/it.json b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/it.json index 3575754a8c..fd962acca3 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/it.json +++ b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/it.json @@ -15,7 +15,6 @@ "CmsKit.Ratings": "Valutazioni", "CmsKit.Reactions": "Reazioni", "CmsKit.Tags": "Tag", - "CmsKit.BlogPost.PreventXssFeature": "Prevenzione XSS", "CmsKit:0002": "Il contenuto esiste già!", "CmsKit:0003": "L'entità {0} non è codificabile.", "CmsKit:Blog:0001": "Lo slug specificato ({Slug}) esiste già!", @@ -87,6 +86,7 @@ "Permission:BlogPostManagement.Create": "Crea", "Permission:BlogPostManagement.Delete": "Elimina", "Permission:BlogPostManagement.Update": "Aggiorna", + "Permission:BlogPostManagement.Publish": "Pubblicare", "Permission:CmsKit": "CmsKit", "Permission:Comments": "Gestione dei commenti", "Permission:Comments.Delete": "Elimina", @@ -113,10 +113,14 @@ "Permission:PageManagement:Create": "Crea", "Permission:PageManagement:Delete": "Elimina", "Permission:PageManagement:Update": "Aggiorna", + "Permission:PageManagement:SetAsHomePage": "Imposta come pagina iniziale", "Permission:TagManagement": "Gestione dei tag", "Permission:TagManagement.Create": "Crea", "Permission:TagManagement.Delete": "Elimina", "Permission:TagManagement.Update": "Aggiorna", + "Permission:GlobalResources": "Risorse globali", + "Permission:CmsKitPublic": "CmsKit pubblico", + "Permission:Comments.DeleteAll": "Cancella tutto", "PickYourReaction": "Scegli la tua reazione", "Rating": "Valutazione", "RatingUndoMessage": "La tua valutazione verrà annullata.", @@ -131,6 +135,7 @@ "SelectAll": "Seleziona tutto", "Send": "Spedire", "SendMessage": "Invia messaggio", + "SelectedAuthor": "Autore", "ShortDescription": "Breve descrizione", "Slug": "Slug", "Source": "Origine", @@ -161,6 +166,67 @@ "YourFullName": "Il tuo nome completo", "YourMessage": "Il tuo messaggio", "YourReply": "La tua risposta", - "ThisPartOfContentCouldntBeLoaded": "Questa parte del contenuto non può essere caricata." + "MarkdownSupported": "Ribasso supportato.", + "GlobalResources": "Risorse globali", + "SavedSuccessfully": "Salvato con successo", + "CmsKit.BlogPost.Status.0": "Bozza", + "CmsKit.BlogPost.Status.1": "Pubblicato", + "CmsKit.BlogPost.Status.2": "In attesa di revisione", + "BlogPostPublishConfirmationMessage": "Sei sicuro di pubblicare il post del blog "{0}"?", + "SuccessfullyPublished": "Pubblicato con successo!", + "Draft": "Bozza", + "Publish": "Pubblicare", + "BlogPostDraftConfirmationMessage": "Sei sicuro di impostare il post del blog "{0}" come bozza?", + "BlogPostSendToReviewConfirmationMessage": "Sei sicuro di inviare il post del blog "{0}" alla revisione dell'amministratore per la pubblicazione?", + "SaveAsDraft": "Salva come bozza", + "SendToReview": "Invia per revisione", + "SendToReviewToPublish": "Invia alla revisione per pubblicare", + "BlogPostSendToReviewSuccessMessage": "Il post del blog "{0}" è stato inviato alla revisione dell'amministratore per la pubblicazione.", + "HasBlogPostWaitingForReviewMessage": "Hai un post sul blog in attesa di revisione. Fare clic per elencare.", + "SelectAStatus": "Seleziona uno stato", + "Status": "Stato", + "CmsKit.BlogPost.ScrollIndex": "Barra di navigazione rapida nei post del blog", + "CmsKit.BlogPost.PreventXssFeature": "Prevenzione XSS", + "Add": "Aggiungere", + "AddWidget": "Aggiungi widget", + "PleaseConfigureWidgets": "Si prega di configurare i widget", + "SelectAnAuthor": "Seleziona un autore", + "InThisDocument": "In questo documento", + "GoToTop": "Vai all'inizio", + "SetAsHomePage": "Modifica lo stato della pagina iniziale", + "CompletedSettingAsHomePage": "Imposta come pagina iniziale", + "IsHomePage": "È la pagina iniziale", + "RemovedSettingAsHomePage": "Rimosso l'impostazione della home page", + "Feature:CmsKitGroup": "Kit Cms", + "Feature:BlogEnable": "Post sul blog", + "Feature:BlogEnableDescription": "Il sistema di blogpost di CMS Kit che consente di creare blog e post in modo dinamico nell'applicazione.", + "Feature:CommentEnable": "Commentando", + "Feature:CommentEnableDescription": "Il sistema di commenti di CMS Kit consente di commentare entità come BlogPost.", + "Feature:GlobalResourceEnable": "Risorse globali", + "Feature:GlobalResourceEnableDescription": "La funzionalità di risorse globali del kit CMS che consente di gestire stili e script globali.", + "Feature:MenuEnable": "Menù", + "Feature:MenuEnableDescription": "Il sistema di menu dinamico di CMS Kit che consente di aggiungere/rimuovere dinamicamente i menu delle applicazioni.", + "Feature:PageEnable": "Cercapersone", + "Feature:PageEnableDescription": "Sistema di pagine del CMS Kit che consente di creare pagine statiche con URL specifici.", + "Feature:RatingEnable": "Valutazione", + "Feature:RatingEnableDescription": "Il sistema di valutazione di CMS Kit che consente agli utenti di valutare entità come BlogPost.", + "Feature:ReactionEnable": "Reazione", + "Feature:ReactionEnableDescription": "Il sistema di reazione di CMS Kit che consente agli utenti di inviare reazioni a entità come BlogPost, Commenti, ecc.", + "Feature:TagEnable": "Etichettatura", + "Feature:TagEnableDescription": "Il sistema di tag di CMS Kit che consente di taggare entità come BlogPost.", + "DeleteBlogPostMessage": "Il blog verrà eliminato. Sei sicuro?", + "CaptchaCode": "codice captcha", + "CommentTextRequired": "Il commento è obbligatorio", + "CaptchaCodeErrorMessage": "La risposta che hai inserito per il CAPTCHA non era corretta. Per favore riprova", + "CaptchaCodeMissingMessage": "Manca il codice captcha!", + "UnAllowedExternalUrlMessage": "Hai incluso un URL esterno non consentito. Riprova senza l'URL esterno.", + "URL": "URL", + "PopularTags": "Tag popolari", + "RemoveCoverImageConfirmationMessage": "Sei sicuro di voler rimuovere l'immagine di copertina?", + "RemoveCoverImage": "Rimuovi l'immagine di copertina", + "CssClass": "Classe CSS", + "TagsHelpText": "I tag devono essere separati da virgole (ad esempio: tag1, tag2, tag3)", + "ThisPartOfContentCouldntBeLoaded": "Questa parte del contenuto non può essere caricata.", + "DuplicateCommentAttemptMessage": "Rilevato tentativo di pubblicare commenti duplicati. Il tuo commento è già stato inviato." } } \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/nl.json b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/nl.json index ef370edf26..eaf1185fc4 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/nl.json +++ b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/nl.json @@ -15,7 +15,6 @@ "CmsKit.Ratings": "Beoordelingen", "CmsKit.Reactions": "Reacties", "CmsKit.Tags": "Tags", - "CmsKit.BlogPost.PreventXssFeature": "XSS-functie voorkomen", "CmsKit:0002": "Inhoud bestaat al!", "CmsKit:0003": "De entiteit {0} kan niet worden getagd.", "CmsKit:Blog:0001": "De opgegeven slug ({Slug}) bestaat al!", @@ -87,6 +86,7 @@ "Permission:BlogPostManagement.Create": "Toevoegen", "Permission:BlogPostManagement.Delete": "Verwijderen", "Permission:BlogPostManagement.Update": "Wijzigen", + "Permission:BlogPostManagement.Publish": "Publiceren", "Permission:CmsKit": "CMS-Kit", "Permission:Comments": "Reactiebeheer", "Permission:Comments.Delete": "Verwijderen", @@ -113,10 +113,14 @@ "Permission:PageManagement:Create": "Toevoegen", "Permission:PageManagement:Delete": "Verwijderen", "Permission:PageManagement:Update": "Wijzigen", + "Permission:PageManagement:SetAsHomePage": "Als startpagina instellen", "Permission:TagManagement": "Tagbeheer", "Permission:TagManagement.Create": "Tag toevoegen", "Permission:TagManagement.Delete": "Tag verwijderen", "Permission:TagManagement.Update": "Tag wijzigen", + "Permission:GlobalResources": "Mondiale hulpbronnen", + "Permission:CmsKitPublic": "CmsKit openbaar", + "Permission:Comments.DeleteAll": "Verwijder alles", "PickYourReaction": "Kies uw reactie", "Rating": "Beoordeling", "RatingUndoMessage": "Uw beoordeling wordt ongedaan gemaakt.", @@ -131,6 +135,7 @@ "SelectAll": "Alles selecteren", "Send": "verzenden", "SendMessage": "Bericht versturen", + "SelectedAuthor": "Auteur", "ShortDescription": "Korte beschrijving", "Slug": "Slug", "Source": "Bron", @@ -161,6 +166,67 @@ "YourFullName": "Uw volledige naam", "YourMessage": "Uw bericht", "YourReply": "Uw antwoord", - "ThisPartOfContentCouldntBeLoaded": "Dit deel van de inhoud kon niet worden geladen." + "MarkdownSupported": "Markdown ondersteund.", + "GlobalResources": "Mondiale hulpbronnen", + "SavedSuccessfully": "Met succes opgeslagen", + "CmsKit.BlogPost.Status.0": "Voorlopige versie", + "CmsKit.BlogPost.Status.1": "Gepubliceerd", + "CmsKit.BlogPost.Status.2": "Wachten op beoordeling", + "BlogPostPublishConfirmationMessage": "Weet u zeker dat u de blogpost '{0}' publiceert?", + "SuccessfullyPublished": "Succesvol gepubliceerd!", + "Draft": "Voorlopige versie", + "Publish": "Publiceren", + "BlogPostDraftConfirmationMessage": "Weet je zeker dat je de blogpost '{0}' als concept hebt ingesteld?", + "BlogPostSendToReviewConfirmationMessage": "Weet u zeker dat u de blogpost '{0}' naar de beheerder stuurt ter beoordeling voor publicatie?", + "SaveAsDraft": "Opslaan als concept", + "SendToReview": "Verzenden ter beoordeling", + "SendToReviewToPublish": "Verzenden naar beoordeling om te publiceren", + "BlogPostSendToReviewSuccessMessage": "Het blogbericht '{0}' is ter beoordeling door de beheerder verzonden voor publicatie.", + "HasBlogPostWaitingForReviewMessage": "Je hebt een blogpost die wacht op beoordeling. Klik om te vermelden.", + "SelectAStatus": "Selecteer een status", + "Status": "Toestand", + "CmsKit.BlogPost.ScrollIndex": "Snelle navigatiebalk in blogposts", + "CmsKit.BlogPost.PreventXssFeature": "XSS-functie voorkomen", + "Add": "Toevoegen", + "AddWidget": "Widget toevoegen", + "PleaseConfigureWidgets": "Configureer widgets", + "SelectAnAuthor": "Selecteer een auteur", + "InThisDocument": "In dit document", + "GoToTop": "Ga naar boven", + "SetAsHomePage": "Wijzig de status van de startpagina", + "CompletedSettingAsHomePage": "Als startpagina instellen", + "IsHomePage": "Is de startpagina", + "RemovedSettingAsHomePage": "Instelling van de startpagina verwijderd", + "Feature:CmsKitGroup": "Cms-kit", + "Feature:BlogEnable": "Blogpost", + "Feature:BlogEnableDescription": "Het blogpostsysteem van CMS Kit waarmee u dynamisch blogs en berichten in de applicatie kunt maken.", + "Feature:CommentEnable": "Commentaar geven", + "Feature:CommentEnableDescription": "Met het commentaarsysteem van CMS Kit kunt u reageren op entiteiten zoals BlogPost.", + "Feature:GlobalResourceEnable": "Mondiale hulpbronnen", + "Feature:GlobalResourceEnableDescription": "De globale resoruces-functie van CMS Kit waarmee u globale stijlen en scripts kunt beheren.", + "Feature:MenuEnable": "Menu", + "Feature:MenuEnableDescription": "Het dynamische menusysteem van CMS Kit waarmee applicatiemenu's dynamisch kunnen worden toegevoegd/verwijderd.", + "Feature:PageEnable": "Paging", + "Feature:PageEnableDescription": "Het paginasysteem van CMS Kit waarmee statische pagina's met een specifieke URL kunnen worden gemaakt.", + "Feature:RatingEnable": "Beoordeling", + "Feature:RatingEnableDescription": "Het beoordelingssysteem van CMS Kit waarmee gebruikers entiteiten zoals BlogPost kunnen beoordelen.", + "Feature:ReactionEnable": "Reactie", + "Feature:ReactionEnableDescription": "Het reactiesysteem van CMS Kit waarmee gebruikers reacties kunnen sturen naar entiteiten zoals BlogPost, Reacties, enz.", + "Feature:TagEnable": "Labelen", + "Feature:TagEnableDescription": "Het tagsysteem van CMS Kit waarmee entiteiten zoals BlogPost kunnen worden getagd.", + "DeleteBlogPostMessage": "De blog wordt verwijderd. Weet je het zeker?", + "CaptchaCode": "captcha-code", + "CommentTextRequired": "Commentaar is vereist", + "CaptchaCodeErrorMessage": "Het antwoord dat u voor de CAPTCHA heeft ingevoerd, was niet correct. Probeer het opnieuw", + "CaptchaCodeMissingMessage": "De captcha-code ontbreekt!", + "UnAllowedExternalUrlMessage": "U heeft een niet-toegestane externe URL toegevoegd. Probeer het opnieuw zonder de externe URL.", + "URL": "URL", + "PopularTags": "populaire tags", + "RemoveCoverImageConfirmationMessage": "Weet u zeker dat u de omslagafbeelding wilt verwijderen?", + "RemoveCoverImage": "Omslagafbeelding verwijderen", + "CssClass": "CSS-klasse", + "TagsHelpText": "Tags moeten door komma's worden gescheiden (bijvoorbeeld: tag1, tag2, tag3)", + "ThisPartOfContentCouldntBeLoaded": "Dit deel van de inhoud kon niet worden geladen.", + "DuplicateCommentAttemptMessage": "Dubbele poging tot posten van commentaar gedetecteerd. Uw reactie is al verzonden." } } \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/pl-PL.json b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/pl-PL.json index 0bdef5d26b..a0a8b23b59 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/pl-PL.json +++ b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/pl-PL.json @@ -15,7 +15,6 @@ "CmsKit.Ratings": "Oceny", "CmsKit.Reactions": "Reakcje", "CmsKit.Tags": "Tagi", - "CmsKit.BlogPost.PreventXssFeature": "Zapobiegaj atakom XSS", "CmsKit:0002": "Treść już istnieje!", "CmsKit:0003": "Jednostka {0} nie może być otagowana.", "CmsKit:Blog:0001": "Podany ślimak ({Slug}) już istnieje!", @@ -87,6 +86,7 @@ "Permission:BlogPostManagement.Create": "Tworzyć", "Permission:BlogPostManagement.Delete": "Kasować", "Permission:BlogPostManagement.Update": "Aktualizacja", + "Permission:BlogPostManagement.Publish": "Publikować", "Permission:CmsKit": "CmsKit", "Permission:Comments": "Zarządzanie komentarzami", "Permission:Comments.Delete": "Kasować", @@ -113,10 +113,14 @@ "Permission:PageManagement:Create": "Tworzyć", "Permission:PageManagement:Delete": "Kasować", "Permission:PageManagement:Update": "Aktualizacja", + "Permission:PageManagement:SetAsHomePage": "Ustaw jako stronę domową", "Permission:TagManagement": "Zarządzanie tagami", "Permission:TagManagement.Create": "Tworzyć", "Permission:TagManagement.Delete": "Kasować", "Permission:TagManagement.Update": "Aktualizacja", + "Permission:GlobalResources": "Zasoby globalne", + "Permission:CmsKitPublic": "Publiczny CmsKit", + "Permission:Comments.DeleteAll": "Usuń wszystko", "PickYourReaction": "Wybierz swoją reakcję", "Rating": "Ocena", "RatingUndoMessage": "Twoja ocena zostanie cofnięta.", @@ -131,6 +135,7 @@ "SelectAll": "Zaznacz wszystko", "Send": "Wysłać", "SendMessage": "Wyślij wiadomość", + "SelectedAuthor": "Autor", "ShortDescription": "Krótki opis", "Slug": "Ślimak", "Source": "Źródło", @@ -161,6 +166,67 @@ "YourFullName": "Twoje pełne imię", "YourMessage": "Twoja wiadomość", "YourReply": "Pańska odpowiedź", - "ThisPartOfContentCouldntBeLoaded": "Ta część zawartości nie mogła zostać załadowana." + "MarkdownSupported": "Obsługiwane Markdown .", + "GlobalResources": "Zasoby globalne", + "SavedSuccessfully": "Zapisano pomyślnie", + "CmsKit.BlogPost.Status.0": "Projekt", + "CmsKit.BlogPost.Status.1": "Opublikowany", + "CmsKit.BlogPost.Status.2": "Oczekiwanie na recenzję", + "BlogPostPublishConfirmationMessage": "Czy na pewno opublikujesz post na blogu „{0}”?", + "SuccessfullyPublished": "Pomyślnie opublikowano!", + "Draft": "Projekt", + "Publish": "Publikować", + "BlogPostDraftConfirmationMessage": "Czy na pewno ustawić wpis na blogu „{0}” jako wersję roboczą?", + "BlogPostSendToReviewConfirmationMessage": "Czy na pewno chcesz wysłać wpis na blogu „{0}” do sprawdzenia przez administratora w celu opublikowania?", + "SaveAsDraft": "Zapisz jako szkic", + "SendToReview": "Wyślij do recenzji", + "SendToReviewToPublish": "Wyślij do recenzji, aby opublikować", + "BlogPostSendToReviewSuccessMessage": "Wpis na blogu „{0}” został wysłany do sprawdzenia przez administratora w celu opublikowania.", + "HasBlogPostWaitingForReviewMessage": "Masz wpis na blogu czekający na recenzję. Kliknij, aby wyświetlić listę.", + "SelectAStatus": "Wybierz stan", + "Status": "Status", + "CmsKit.BlogPost.ScrollIndex": "Pasek szybkiej nawigacji w postach na blogu", + "CmsKit.BlogPost.PreventXssFeature": "Zapobiegaj atakom XSS", + "Add": "Dodać", + "AddWidget": "Dodaj widżet", + "PleaseConfigureWidgets": "Proszę skonfigurować widżety", + "SelectAnAuthor": "Wybierz autora", + "InThisDocument": "W tym dokumencie", + "GoToTop": "Przejdź do góry", + "SetAsHomePage": "Zmień stan strony głównej", + "CompletedSettingAsHomePage": "Ustaw jako stronę domową", + "IsHomePage": "Jest stroną główną", + "RemovedSettingAsHomePage": "Usunięto ustawienie strony głównej", + "Feature:CmsKitGroup": "Zestaw cms", + "Feature:BlogEnable": "Post na blogu", + "Feature:BlogEnableDescription": "System blogpostów CMS Kit, który umożliwia dynamiczne tworzenie blogów i postów w aplikacji.", + "Feature:CommentEnable": "Komentowanie", + "Feature:CommentEnableDescription": "System komentarzy CMS Kit pozwala na komentowanie takich podmiotów jak BlogPost.", + "Feature:GlobalResourceEnable": "Globalne zasoby", + "Feature:GlobalResourceEnableDescription": "Funkcja globalnych zasobów CMS Kit, która umożliwia zarządzanie globalnymi stylami i skryptami.", + "Feature:MenuEnable": "Menu", + "Feature:MenuEnableDescription": "Dynamiczny system menu CMS Kit, który umożliwia dynamiczne dodawanie/usuwanie menu aplikacji.", + "Feature:PageEnable": "Stronicowanie", + "Feature:PageEnableDescription": "System stron CMS Kit umożliwiający tworzenie stron statycznych z określonym adresem URL.", + "Feature:RatingEnable": "Ocena", + "Feature:RatingEnableDescription": "System oceniania CMS Kit, który pozwala użytkownikom oceniać podmioty takie jak BlogPost.", + "Feature:ReactionEnable": "Reakcja", + "Feature:ReactionEnableDescription": "System reakcji CMS Kit umożliwiający użytkownikom wysyłanie reakcji do takich podmiotów jak BlogPost, Komentarze itp.", + "Feature:TagEnable": "Tagowanie", + "Feature:TagEnableDescription": "System tagów CMS Kit, który umożliwia tagowanie obiektów takich jak BlogPost.", + "DeleteBlogPostMessage": "Blog zostanie usunięty. Jesteś pewny?", + "CaptchaCode": "Kod captcha", + "CommentTextRequired": "Komentarz jest wymagany", + "CaptchaCodeErrorMessage": "Odpowiedź, którą wpisałeś w CAPTCHA, była nieprawidłowa. Proszę spróbuj ponownie", + "CaptchaCodeMissingMessage": "Brakuje kodu captcha!", + "UnAllowedExternalUrlMessage": "Podano niedozwolony zewnętrzny adres URL. Spróbuj ponownie bez zewnętrznego adresu URL.", + "URL": "Adres URL", + "PopularTags": "popularne tagi", + "RemoveCoverImageConfirmationMessage": "Czy na pewno chcesz usunąć zdjęcie na okładce?", + "RemoveCoverImage": "Usuń zdjęcie na okładce", + "CssClass": "Klasa CSS", + "TagsHelpText": "Tagi powinny być oddzielone przecinkami (np. tag1, tag2, tag3)", + "ThisPartOfContentCouldntBeLoaded": "Ta część zawartości nie mogła zostać załadowana.", + "DuplicateCommentAttemptMessage": "Wykryto zduplikowaną próbę opublikowania komentarza. Twój komentarz został już przesłany." } } \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/pt-BR.json b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/pt-BR.json index 9510e2a67d..eabe56c23f 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/pt-BR.json +++ b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/pt-BR.json @@ -15,7 +15,6 @@ "CmsKit.Ratings": "Avaliações", "CmsKit.Reactions": "Reações", "CmsKit.Tags": "Tag", - "CmsKit.BlogPost.PreventXssFeature": "Prevenir recurso XSS", "CmsKit:0002": "O conteúdo já existe!", "CmsKit:0003": "A entidade {0} não pode ser etiquetada.", "CmsKit:Blog:0001": "O slug fornecido ({Slug}) já existe!", @@ -114,11 +113,14 @@ "Permission:PageManagement:Create": "Criar", "Permission:PageManagement:Delete": "Excluir", "Permission:PageManagement:Update": "Atualizar", + "Permission:PageManagement:SetAsHomePage": "Definir como página inicial", "Permission:TagManagement": "Gestão de Tag", "Permission:TagManagement.Create": "Criar", "Permission:TagManagement.Delete": "Excluir", "Permission:TagManagement.Update": "Atualizar", "Permission:GlobalResources": "Recursos globais", + "Permission:CmsKitPublic": "CmsKit Público", + "Permission:Comments.DeleteAll": "Excluir tudo", "PickYourReaction": "Escolha sua reação", "Rating": "Avaliação", "RatingUndoMessage": "Sua classificação será desfeita.", @@ -184,12 +186,17 @@ "SelectAStatus": "Selecione um status", "Status": "Status", "CmsKit.BlogPost.ScrollIndex": "Barra de navegação rápida em postagens", + "CmsKit.BlogPost.PreventXssFeature": "Prevenir recurso XSS", "Add": "Adicionar", "AddWidget": "Adicionar Widget", "PleaseConfigureWidgets": "Por favor, configure os widgets", "SelectAnAuthor": "Selecione um Autor", "InThisDocument": "Neste Documento", "GoToTop": "Ir para o Topo", + "SetAsHomePage": "Alterar o status da página inicial", + "CompletedSettingAsHomePage": "Definir como página inicial", + "IsHomePage": "É a página inicial", + "RemovedSettingAsHomePage": "Removida a configuração da página inicial", "Feature:CmsKitGroup": "Cms Kit", "Feature:BlogEnable": "Habilitar página de blog", "Feature:BlogEnableDescription": "Habilitar página de blog no aplicativo.", @@ -207,6 +214,19 @@ "Feature:ReactionEnableDescription": "Reações habilitadas no aplicativo.", "Feature:TagEnable": "Habilitar tag", "Feature:TagEnableDescription": "Habilitar tag no aplicativo.", - "ThisPartOfContentCouldntBeLoaded": "Esta parte do conteúdo não pôde ser carregada." + "DeleteBlogPostMessage": "O blog será excluído. Tem certeza?", + "CaptchaCode": "Código Captcha", + "CommentTextRequired": "Comentário é obrigatório", + "CaptchaCodeErrorMessage": "A resposta que você digitou para o CAPTCHA não estava correta. Por favor, tente novamente", + "CaptchaCodeMissingMessage": "O código captcha está faltando!", + "UnAllowedExternalUrlMessage": "Você incluiu um URL externo não permitido. Tente novamente sem o URL externo.", + "URL": "URL", + "PopularTags": "Tags populares", + "RemoveCoverImageConfirmationMessage": "Tem certeza de que deseja remover a imagem da capa?", + "RemoveCoverImage": "Remover imagem da capa", + "CssClass": "Classe CSS", + "TagsHelpText": "As tags devem ser separadas por vírgula (por exemplo: tag1, tag2, tag3)", + "ThisPartOfContentCouldntBeLoaded": "Esta parte do conteúdo não pôde ser carregada.", + "DuplicateCommentAttemptMessage": "Tentativa duplicada de postagem de comentário detectada. Seu comentário já foi enviado." } } \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/ro-RO.json b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/ro-RO.json index 21b9ac5a24..6532245847 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/ro-RO.json +++ b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/ro-RO.json @@ -15,7 +15,6 @@ "CmsKit.Ratings": "Evaluări", "CmsKit.Reactions": "Reacţii", "CmsKit.Tags": "Etichete", - "CmsKit.BlogPost.PreventXssFeature": "Prevenirea Xss", "CmsKit:0002": "Conţinutul există deja!", "CmsKit:0003": "Entitatea {0} nu este etichetabilă.", "CmsKit:Blog:0001": "Slugul ({Slug}) există deja!", @@ -48,7 +47,7 @@ "ExportCSV": "Export CSV", "Features": "Caracteristici", "GenericDeletionConfirmationMessage": "Sigur ştergeţi '{0}'?", - "IsActive" : "Activ", + "IsActive": "Activ", "LastModification": "Ultima modificare", "LastModificationTime": "Data ultimei modificări", "LoginToAddComment": "Autentificaţi-vă pentru a comenta", @@ -87,6 +86,7 @@ "Permission:BlogPostManagement.Create": "Creează", "Permission:BlogPostManagement.Delete": "Şterge", "Permission:BlogPostManagement.Update": "Actualizează", + "Permission:BlogPostManagement.Publish": "Publica", "Permission:CmsKit": "CmsKit", "Permission:Comments": "Administrarea comentariilor", "Permission:Comments.Delete": "Şterge", @@ -113,10 +113,14 @@ "Permission:PageManagement:Create": "Creează", "Permission:PageManagement:Delete": "Şterge", "Permission:PageManagement:Update": "Actualizează", + "Permission:PageManagement:SetAsHomePage": "Setați ca pagină de pornire", "Permission:TagManagement": "Administrarea etichetelor", "Permission:TagManagement.Create": "Creează", "Permission:TagManagement.Delete": "Şterge", "Permission:TagManagement.Update": "Actualizează", + "Permission:GlobalResources": "Resurse globale", + "Permission:CmsKitPublic": "CmsKit Public", + "Permission:Comments.DeleteAll": "Sterge tot", "PickYourReaction": "Alegeţi-vă reacţia", "Rating": "Evaluare", "RatingUndoMessage": "Evaluarea dumneavoastră va fi anulată.", @@ -131,6 +135,7 @@ "SelectAll": "Selectaţi toate", "Send": "Trimite", "SendMessage": "Trimite mesaj", + "SelectedAuthor": "Autor", "ShortDescription": "Descriere pe scurt", "Slug": "Slug", "Source": "Sursa", @@ -161,6 +166,67 @@ "YourFullName": "Numele dumneavoastră complet", "YourMessage": "Mesajul dumneavoastră", "YourReply": "Replica dumneavoastră", - "ThisPartOfContentCouldntBeLoaded": "Această parte a conţinutului nu a putut fi încărcată." + "MarkdownSupported": "Reducere acceptată.", + "GlobalResources": "Resurse globale", + "SavedSuccessfully": "salvat cu succes", + "CmsKit.BlogPost.Status.0": "Proiect", + "CmsKit.BlogPost.Status.1": "Publicat", + "CmsKit.BlogPost.Status.2": "In asteptarea revizuirii", + "BlogPostPublishConfirmationMessage": "Sigur vei publica postarea de blog „{0}”?", + "SuccessfullyPublished": "Publicat cu succes!", + "Draft": "Proiect", + "Publish": "Publica", + "BlogPostDraftConfirmationMessage": "Sigur setați postarea de blog „{0}” ca schiță?", + "BlogPostSendToReviewConfirmationMessage": "Sunteți sigur că veți trimite postarea de blog „{0}” la evaluarea administratorului pentru publicare?", + "SaveAsDraft": "Salvează ca ciornă", + "SendToReview": "Trimite la recenzie", + "SendToReviewToPublish": "Trimite la recenzie pentru a publica", + "BlogPostSendToReviewSuccessMessage": "Postarea de blog „{0}” a fost trimisă la evaluarea administratorului pentru publicare.", + "HasBlogPostWaitingForReviewMessage": "Ai o postare pe blog care așteaptă revizuire. Faceți clic pentru a lista.", + "SelectAStatus": "Selectați o stare", + "Status": "stare", + "CmsKit.BlogPost.ScrollIndex": "Bara de navigare rapidă în postările de blog", + "CmsKit.BlogPost.PreventXssFeature": "Prevenirea Xss", + "Add": "Adăuga", + "AddWidget": "Adăugați widget", + "PleaseConfigureWidgets": "Vă rugăm să configurați widget-urile", + "SelectAnAuthor": "Selectați un autor", + "InThisDocument": "În acest document", + "GoToTop": "Du-te sus", + "SetAsHomePage": "Schimbați starea paginii de pornire", + "CompletedSettingAsHomePage": "Setați ca pagină de pornire", + "IsHomePage": "Este pagina principală", + "RemovedSettingAsHomePage": "A fost eliminată setarea paginii de pornire", + "Feature:CmsKitGroup": "Kit Cms", + "Feature:BlogEnable": "Postare pe blog", + "Feature:BlogEnableDescription": "Sistemul de postări de blog al CMS Kit care permite crearea de bloguri și postări dinamic în aplicație.", + "Feature:CommentEnable": "Comentând", + "Feature:CommentEnableDescription": "Sistemul de comentarii al CMS Kit permite comentarea unor entități precum BlogPost.", + "Feature:GlobalResourceEnable": "Resurse globale", + "Feature:GlobalResourceEnableDescription": "Caracteristica globală a resurselor CMS Kit care permite gestionarea stilurilor și scripturilor globale.", + "Feature:MenuEnable": "Meniul", + "Feature:MenuEnableDescription": "Sistemul de meniu dinamic al CMS Kit care permite adăugarea/eliminarea dinamică a meniurilor aplicației.", + "Feature:PageEnable": "Paging", + "Feature:PageEnableDescription": "Sistemul de pagini CMS Kit care permite crearea de pagini statice cu o anumită adresă URL.", + "Feature:RatingEnable": "Evaluare", + "Feature:RatingEnableDescription": "Sistemul de evaluare CMS Kit care permite utilizatorilor să evalueze entități precum BlogPost.", + "Feature:ReactionEnable": "Reacţie", + "Feature:ReactionEnableDescription": "Sistemul de reacție al CMS Kit care permite utilizatorilor să trimită reacții către entități precum BlogPost, Comentarii etc.", + "Feature:TagEnable": "Etichetarea", + "Feature:TagEnableDescription": "Sistemul de etichete CMS Kit care permite etichetarea entităților precum BlogPost.", + "DeleteBlogPostMessage": "Blogul va fi șters. Esti sigur?", + "CaptchaCode": "Cod Captcha", + "CommentTextRequired": "Comentariul este obligatoriu", + "CaptchaCodeErrorMessage": "Răspunsul pe care l-ați introdus pentru CAPTCHA nu a fost corect. Vă rugăm să încercați din nou", + "CaptchaCodeMissingMessage": "Codul captcha lipsește!", + "UnAllowedExternalUrlMessage": "Ați inclus o adresă URL externă nepermisă. Vă rugăm să încercați din nou fără adresa URL externă.", + "URL": "URL", + "PopularTags": "Etichete populare", + "RemoveCoverImageConfirmationMessage": "Sigur doriți să eliminați imaginea de copertă?", + "RemoveCoverImage": "Eliminați imaginea de copertă", + "CssClass": "Clasa CSS", + "TagsHelpText": "Etichetele ar trebui să fie separate prin virgulă (de exemplu: tag1, tag2, tag3)", + "ThisPartOfContentCouldntBeLoaded": "Această parte a conţinutului nu a putut fi încărcată.", + "DuplicateCommentAttemptMessage": "A fost detectată o încercare de postare de comentarii duplicată. Comentariul dvs. a fost deja trimis." } -} +} \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/ru.json b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/ru.json index a1a809f9fa..19085289be 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/ru.json +++ b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/ru.json @@ -15,7 +15,6 @@ "CmsKit.Ratings": "Рейтинги", "CmsKit.Reactions": "Реакции", "CmsKit.Tags": "Теги", - "CmsKit.BlogPost.PreventXssFeature": "Защита от XSS", "CmsKit:0002": "Контент уже существует!", "CmsKit:0003": "Сущность {0} не может быть помечена.", "CmsKit:Blog:0001": "Указанный слаг ({Slug}) уже существует!", @@ -87,6 +86,7 @@ "Permission:BlogPostManagement.Create": "Создавать", "Permission:BlogPostManagement.Delete": "Удалить", "Permission:BlogPostManagement.Update": "Обновлять", + "Permission:BlogPostManagement.Publish": "Публиковать", "Permission:CmsKit": "CmsKit", "Permission:Comments": "Управление комментариями", "Permission:Comments.Delete": "Удалить", @@ -113,10 +113,14 @@ "Permission:PageManagement:Create": "Создавать", "Permission:PageManagement:Delete": "Удалить", "Permission:PageManagement:Update": "Обновлять", + "Permission:PageManagement:SetAsHomePage": "Сделать домашней страницей", "Permission:TagManagement": "Управление тегами", "Permission:TagManagement.Create": "Создавать", "Permission:TagManagement.Delete": "Удалить", "Permission:TagManagement.Update": "Обновлять", + "Permission:GlobalResources": "Глобальные ресурсы", + "Permission:CmsKitPublic": "CmsKit общедоступный", + "Permission:Comments.DeleteAll": "Удалить все", "PickYourReaction": "Выберите свою реакцию", "Rating": "Рейтинг", "RatingUndoMessage": "Ваша оценка будет отменена.", @@ -131,6 +135,7 @@ "SelectAll": "Выбрать все", "Send": "послать", "SendMessage": "Отправить сообщение", + "SelectedAuthor": "Автор", "ShortDescription": "Краткое описание", "Slug": "Слизняк", "Source": "Источник", @@ -161,6 +166,67 @@ "YourFullName": "Ваше полное имя", "YourMessage": "Твое сообщение", "YourReply": "Ваш ответ", - "ThisPartOfContentCouldntBeLoaded": "Эта часть содержимого не может быть загружена." + "MarkdownSupported": "Маркдаун поддерживается.", + "GlobalResources": "Глобальные ресурсы", + "SavedSuccessfully": "Успешно сохранено", + "CmsKit.BlogPost.Status.0": "Черновик", + "CmsKit.BlogPost.Status.1": "Опубликовано", + "CmsKit.BlogPost.Status.2": "Ожидание обзора", + "BlogPostPublishConfirmationMessage": "Вы уверены опубликовать запись в блоге "{0}"?", + "SuccessfullyPublished": "Успешно опубликовано!", + "Draft": "Черновик", + "Publish": "Публиковать", + "BlogPostDraftConfirmationMessage": "Вы уверены, что запись блога "{0}" будет отмечена как черновик?", + "BlogPostSendToReviewConfirmationMessage": "Вы уверены, что отправите запись блога "{0}" на проверку администратору для публикации?", + "SaveAsDraft": "Сохранить как черновик", + "SendToReview": "Отправить на рассмотрение", + "SendToReviewToPublish": "Отправить на проверку, чтобы опубликовать", + "BlogPostSendToReviewSuccessMessage": "Сообщение блога "{0}" отправлено на проверку администратору для публикации.", + "HasBlogPostWaitingForReviewMessage": "У вас есть сообщение в блоге, ожидающее рассмотрения. Нажмите, чтобы просмотреть список.", + "SelectAStatus": "Выберите статус", + "Status": "Положение дел", + "CmsKit.BlogPost.ScrollIndex": "Панель быстрой навигации в сообщениях блога", + "CmsKit.BlogPost.PreventXssFeature": "Защита от XSS", + "Add": "Добавлять", + "AddWidget": "Добавить виджет", + "PleaseConfigureWidgets": "Пожалуйста, настройте виджеты", + "SelectAnAuthor": "Выберите автора", + "InThisDocument": "В этом документе", + "GoToTop": "Перейти наверх", + "SetAsHomePage": "Изменить статус главной страницы", + "CompletedSettingAsHomePage": "Сделать домашней страницей", + "IsHomePage": "Домашняя страница", + "RemovedSettingAsHomePage": "Удалена настройка домашней страницы.", + "Feature:CmsKitGroup": "Комплект CMS", + "Feature:BlogEnable": "Сообщение блога", + "Feature:BlogEnableDescription": "Система блогпостов CMS Kit, которая позволяет динамически создавать блоги и публикации в приложении.", + "Feature:CommentEnable": "Комментирование", + "Feature:CommentEnableDescription": "Система комментариев CMS Kit позволяет комментировать такие объекты, как BlogPost.", + "Feature:GlobalResourceEnable": "Глобальное обеспечение ресурсами", + "Feature:GlobalResourceEnableDescription": "Функция глобальных ресурсов CMS Kit, которая позволяет управлять глобальными стилями и скриптами.", + "Feature:MenuEnable": "Меню", + "Feature:MenuEnableDescription": "Система динамического меню CMS Kit, которая позволяет динамически добавлять/удалять меню приложений.", + "Feature:PageEnable": "Пейджинг", + "Feature:PageEnableDescription": "Система страниц CMS Kit, которая позволяет создавать статические страницы с определенным URL-адресом.", + "Feature:RatingEnable": "Рейтинг", + "Feature:RatingEnableDescription": "Система рейтингов CMS Kit, которая позволяет пользователям оценивать такие объекты, как BlogPost.", + "Feature:ReactionEnable": "Реакция", + "Feature:ReactionEnableDescription": "Система реакций CMS Kit, которая позволяет пользователям отправлять реакции на такие объекты, как сообщения в блоге, комментарии и т. д.", + "Feature:TagEnable": "Тегирование", + "Feature:TagEnableDescription": "Система тегов CMS Kit, которая позволяет помечать такие объекты, как BlogPost.", + "DeleteBlogPostMessage": "Блог будет удален. Вы уверены?", + "CaptchaCode": "Код капчи", + "CommentTextRequired": "Требуется комментарий", + "CaptchaCodeErrorMessage": "Ответ, который вы ввели для CAPTCHA, неверен. Пожалуйста, попробуйте еще раз", + "CaptchaCodeMissingMessage": "Код капчи отсутствует!", + "UnAllowedExternalUrlMessage": "Вы включили неразрешенный внешний URL-адрес. Пожалуйста, повторите попытку без внешнего URL.", + "URL": "URL-адрес", + "PopularTags": "Популярные теги", + "RemoveCoverImageConfirmationMessage": "Вы уверены, что хотите удалить обложку?", + "RemoveCoverImage": "Удалить обложку", + "CssClass": "CSS-класс", + "TagsHelpText": "Теги должны быть разделены запятыми (например: тег1, тег2, тег3).", + "ThisPartOfContentCouldntBeLoaded": "Эта часть содержимого не может быть загружена.", + "DuplicateCommentAttemptMessage": "Обнаружена повторная попытка публикации комментария. Ваш комментарий уже отправлен." } } \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/sk.json b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/sk.json index af320c8a19..a9a23965d0 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/sk.json +++ b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/sk.json @@ -15,7 +15,6 @@ "CmsKit.Ratings": "Hodnotenia", "CmsKit.Reactions": "Reakcie", "CmsKit.Tags": "Tagy", - "CmsKit.BlogPost.PreventXssFeature": "Zabraňte XSS", "CmsKit:0002": "Obsah už existuje!", "CmsKit:0003": "Entite {0} nie je možné priradiť tag.", "CmsKit:Blog:0001": "Zadaný slug ({Slug}) už existuje!", @@ -87,6 +86,7 @@ "Permission:BlogPostManagement.Create": "Vytvoriť", "Permission:BlogPostManagement.Delete": "Zmazať", "Permission:BlogPostManagement.Update": "Aktualizovať", + "Permission:BlogPostManagement.Publish": "Publikovať", "Permission:CmsKit": "CmsKit", "Permission:Comments": "Správa komentárov", "Permission:Comments.Delete": "Zmazať", @@ -113,10 +113,14 @@ "Permission:PageManagement:Create": "Vytvoriť", "Permission:PageManagement:Delete": "Zmazať", "Permission:PageManagement:Update": "Aktualizovať", + "Permission:PageManagement:SetAsHomePage": "Nastaviť ako domovskú stránku", "Permission:TagManagement": "Správa tagov", "Permission:TagManagement.Create": "Vytvoriť", "Permission:TagManagement.Delete": "Zmazať", "Permission:TagManagement.Update": "Aktualizovať", + "Permission:GlobalResources": "Globálne zdroje", + "Permission:CmsKitPublic": "CmsKit Public", + "Permission:Comments.DeleteAll": "Vymazať všetko", "PickYourReaction": "Vyberte si svoju reakciu", "Rating": "Hodnotenie", "RatingUndoMessage": "Vaše hodnotenie bude zrušené.", @@ -131,6 +135,7 @@ "SelectAll": "Vybrať všetko", "Send": "Odoslať", "SendMessage": "Odoslať správu", + "SelectedAuthor": "Autor", "ShortDescription": "Krátky popis", "Slug": "Slug", "Source": "Zdroj", @@ -161,6 +166,67 @@ "YourFullName": "Vaše celé meno", "YourMessage": "Vaša správa", "YourReply": "Vaša odpoveď", - "ThisPartOfContentCouldntBeLoaded": "Táto časť obsahu sa nedá načítať." + "MarkdownSupported": "Podporované Markdown .", + "GlobalResources": "Globálne zdroje", + "SavedSuccessfully": "Úspešne uložené", + "CmsKit.BlogPost.Status.0": "Návrh", + "CmsKit.BlogPost.Status.1": "Publikovaný", + "CmsKit.BlogPost.Status.2": "Čaká sa na posúdenie", + "BlogPostPublishConfirmationMessage": "Naozaj chcete zverejniť blogový príspevok „{0}“?", + "SuccessfullyPublished": "Úspešne zverejnené!", + "Draft": "Návrh", + "Publish": "Publikovať", + "BlogPostDraftConfirmationMessage": "Naozaj nastavíte blogový príspevok „{0}“ ako koncept?", + "BlogPostSendToReviewConfirmationMessage": "Naozaj chcete blogový príspevok „{0}“ odoslať správcovi na zverejnenie?", + "SaveAsDraft": "Uložiť ako koncept", + "SendToReview": "Odoslať na kontrolu", + "SendToReviewToPublish": "Odoslať na recenziu na zverejnenie", + "BlogPostSendToReviewSuccessMessage": "Blogový príspevok „{0}“ bol odoslaný správcovi na posúdenie na zverejnenie.", + "HasBlogPostWaitingForReviewMessage": "Máte blogový príspevok, ktorý čaká na kontrolu. Kliknutím zobrazíte zoznam.", + "SelectAStatus": "Vyberte stav", + "Status": "Postavenie", + "CmsKit.BlogPost.ScrollIndex": "Rýchla navigačná lišta v blogových príspevkoch", + "CmsKit.BlogPost.PreventXssFeature": "Zabraňte XSS", + "Add": "Pridať", + "AddWidget": "Pridať miniaplikáciu", + "PleaseConfigureWidgets": "Nakonfigurujte miniaplikácie", + "SelectAnAuthor": "Vyberte autora", + "InThisDocument": "V tomto dokumente", + "GoToTop": "Prejsť na začiatok", + "SetAsHomePage": "Zmeniť stav domovskej stránky", + "CompletedSettingAsHomePage": "Nastaviť ako domovskú stránku", + "IsHomePage": "Je domovská stránka", + "RemovedSettingAsHomePage": "Odstránené nastavenie domovskej stránky", + "Feature:CmsKitGroup": "Súprava Cms", + "Feature:BlogEnable": "Príspevok v blogu", + "Feature:BlogEnableDescription": "Systém blogpostov CMS Kit, ktorý umožňuje dynamicky vytvárať blogy a príspevky v aplikácii.", + "Feature:CommentEnable": "Komentovanie", + "Feature:CommentEnableDescription": "Systém komentárov CMS Kit umožňuje komentovanie subjektov, ako je BlogPost.", + "Feature:GlobalResourceEnable": "Globálne zdroje", + "Feature:GlobalResourceEnableDescription": "Funkcia globálnych zdrojov CMS Kitu, ktorá umožňuje spravovať globálne štýly a skripty.", + "Feature:MenuEnable": "Ponuka", + "Feature:MenuEnableDescription": "Systém dynamických ponúk CMS Kit, ktorý umožňuje dynamické pridávanie/odstraňovanie ponúk aplikácií.", + "Feature:PageEnable": "Stránkovanie", + "Feature:PageEnableDescription": "Systém stránok CMS Kit, ktorý umožňuje vytvárať statické stránky so špecifickými URL.", + "Feature:RatingEnable": "Hodnotenie", + "Feature:RatingEnableDescription": "Systém hodnotenia CMS Kit, ktorý umožňuje používateľom hodnotiť entity, ako je BlogPost.", + "Feature:ReactionEnable": "Reakcia", + "Feature:ReactionEnableDescription": "Reakčný systém CMS Kit, ktorý umožňuje používateľom posielať reakcie subjektom, ako sú BlogPost, Komentáre atď.", + "Feature:TagEnable": "Označovanie", + "Feature:TagEnableDescription": "Systém značiek CMS Kit, ktorý umožňuje označovanie entít, ako je BlogPost.", + "DeleteBlogPostMessage": "Blog bude vymazaný. Si si istý?", + "CaptchaCode": "Captcha kód", + "CommentTextRequired": "Vyžaduje sa komentár", + "CaptchaCodeErrorMessage": "Odpoveď, ktorú ste zadali pre obrázok CAPTCHA, nebola správna. Prosím skúste znova", + "CaptchaCodeMissingMessage": "Chýba captcha kód!", + "UnAllowedExternalUrlMessage": "Uviedli ste nepovolenú externú adresu URL. Skúste to znova bez externej adresy URL.", + "URL": "URL", + "PopularTags": "Populárne značky", + "RemoveCoverImageConfirmationMessage": "Naozaj chcete odstrániť titulný obrázok?", + "RemoveCoverImage": "Odstráňte titulný obrázok", + "CssClass": "CSS trieda", + "TagsHelpText": "Značky by mali byť oddelené čiarkou (napr.: tag1, tag2, tag3)", + "ThisPartOfContentCouldntBeLoaded": "Táto časť obsahu sa nedá načítať.", + "DuplicateCommentAttemptMessage": "Zistil sa duplicitný pokus o uverejnenie komentára. Váš komentár už bol odoslaný." } } \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/sl.json b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/sl.json index 972b7da430..68eeffa634 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/sl.json +++ b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/sl.json @@ -15,7 +15,6 @@ "CmsKit.Ratings": "Ocene", "CmsKit.Reactions": "Reakcije", "CmsKit.Tags": "Oznake", - "CmsKit.BlogPost.PreventXssFeature": "Prepreči XSS", "CmsKit:0002": "Vsebina že obstaja!", "CmsKit:0003": "Entiteta {0} ni mogoče označiti.", "CmsKit:Blog:0001": "Podani polž ({Slug}) že obstaja!", @@ -87,6 +86,7 @@ "Permission:BlogPostManagement.Create": "Ustvari", "Permission:BlogPostManagement.Delete": "Izbriši", "Permission:BlogPostManagement.Update": "Nadgradnja", + "Permission:BlogPostManagement.Publish": "Objavi", "Permission:CmsKit": "CmsKit", "Permission:Comments": "Upravljanje komentarjev", "Permission:Comments.Delete": "Izbriši", @@ -113,10 +113,14 @@ "Permission:PageManagement:Create": "Ustvari", "Permission:PageManagement:Delete": "Izbriši", "Permission:PageManagement:Update": "Nadgradnja", + "Permission:PageManagement:SetAsHomePage": "Nastavi kot domačo stran", "Permission:TagManagement": "Upravljanje oznak", "Permission:TagManagement.Create": "Ustvari", "Permission:TagManagement.Delete": "Izbriši", "Permission:TagManagement.Update": "Nadgradnja", + "Permission:GlobalResources": "Globalni viri", + "Permission:CmsKitPublic": "CmsKit Javno", + "Permission:Comments.DeleteAll": "Izbriši vse", "PickYourReaction": "Izberite svojo reakcijo", "Rating": "Ocena", "RatingUndoMessage": "Vaša ocena bo razveljavljena.", @@ -131,6 +135,7 @@ "SelectAll": "Izberi vse", "Send": "Pošlji", "SendMessage": "Pošlji sporočilo", + "SelectedAuthor": "Avtor", "ShortDescription": "Kratek opis", "Slug": "Polž", "Source": "Vir", @@ -161,6 +166,67 @@ "YourFullName": "Tvoje polno ime", "YourMessage": "Tvoje sporočilo", "YourReply": "Vaš odgovor", - "ThisPartOfContentCouldntBeLoaded": "Ta del vsebine ni bil naložen." + "MarkdownSupported": "Markdown podprt.", + "GlobalResources": "Globalni viri", + "SavedSuccessfully": "Uspešno shranjeno", + "CmsKit.BlogPost.Status.0": "Osnutek", + "CmsKit.BlogPost.Status.1": "Objavljeno", + "CmsKit.BlogPost.Status.2": "Čakam na pregled", + "BlogPostPublishConfirmationMessage": "Ali ste prepričani, da želite objaviti objavo v spletnem dnevniku »{0}«?", + "SuccessfullyPublished": "Uspešno objavljeno!", + "Draft": "Osnutek", + "Publish": "Objavi", + "BlogPostDraftConfirmationMessage": "Ali ste prepričani, da želite objavo v spletnem dnevniku »{0}« nastaviti kot osnutek?", + "BlogPostSendToReviewConfirmationMessage": "Ali ste prepričani, da želite poslati objavo v spletnem dnevniku »{0}« v skrbniški pregled za objavo?", + "SaveAsDraft": "Shranite kot osnutek", + "SendToReview": "Pošlji v pregled", + "SendToReviewToPublish": "Pošlji v pregled za objavo", + "BlogPostSendToReviewSuccessMessage": "Objava v spletnem dnevniku »{0}« je bila poslana v skrbniški pregled za objavo.", + "HasBlogPostWaitingForReviewMessage": "Imate objavo v spletnem dnevniku, ki čaka na pregled. Kliknite za seznam.", + "SelectAStatus": "Izberite stanje", + "Status": "Stanje", + "CmsKit.BlogPost.ScrollIndex": "Vrstica za hitro krmarjenje v objavah v spletnem dnevniku", + "CmsKit.BlogPost.PreventXssFeature": "Prepreči XSS", + "Add": "Dodaj", + "AddWidget": "Dodaj pripomoček", + "PleaseConfigureWidgets": "Prosimo, konfigurirajte pripomočke", + "SelectAnAuthor": "Izberite avtorja", + "InThisDocument": "V tem dokumentu", + "GoToTop": "Pojdi na vrh", + "SetAsHomePage": "Spremenite status domače strani", + "CompletedSettingAsHomePage": "Nastavi kot domačo stran", + "IsHomePage": "Je domača stran", + "RemovedSettingAsHomePage": "Odstranjena nastavitev domače strani", + "Feature:CmsKitGroup": "Komplet Cms", + "Feature:BlogEnable": "Objava v blogu", + "Feature:BlogEnableDescription": "Sistem blogpost CMS Kit, ki omogoča dinamično ustvarjanje blogov in objav v aplikaciji.", + "Feature:CommentEnable": "Komentiranje", + "Feature:CommentEnableDescription": "Sistem za komentiranje CMS Kit omogoča komentiranje entitet, kot je BlogPost.", + "Feature:GlobalResourceEnable": "Globalno pridobivanje virov", + "Feature:GlobalResourceEnableDescription": "Funkcija globalnih virov CMS Kita, ki omogoča upravljanje globalnih slogov in skriptov.", + "Feature:MenuEnable": "meni", + "Feature:MenuEnableDescription": "Sistem dinamičnih menijev CMS Kit, ki omogoča dinamično dodajanje/odstranjevanje menijev aplikacij.", + "Feature:PageEnable": "Paging", + "Feature:PageEnableDescription": "Sistem strani CMS Kit, ki omogoča ustvarjanje statičnih strani z določenim URL-jem.", + "Feature:RatingEnable": "Ocena", + "Feature:RatingEnableDescription": "Sistem ocenjevanja CMS Kit, ki uporabnikom omogoča ocenjevanje entitet, kot je BlogPost.", + "Feature:ReactionEnable": "Reakcija", + "Feature:ReactionEnableDescription": "Reakcijski sistem CMS Kit, ki uporabnikom omogoča pošiljanje odzivov na entitete, kot so BlogPost, komentarji itd.", + "Feature:TagEnable": "Označevanje", + "Feature:TagEnableDescription": "Sistem oznak CMS Kit, ki omogoča označevanje entitet, kot je BlogPost.", + "DeleteBlogPostMessage": "Blog bo izbrisan. Ali si prepričan?", + "CaptchaCode": "Captcha koda", + "CommentTextRequired": "Komentar je obvezen", + "CaptchaCodeErrorMessage": "Odgovor, ki ste ga vnesli za CAPTCHA, ni bil pravilen. Prosim poskusite ponovno", + "CaptchaCodeMissingMessage": "Manjka koda captcha!", + "UnAllowedExternalUrlMessage": "Vključili ste nedovoljen zunanji URL. Poskusite znova brez zunanjega URL-ja.", + "URL": "URL", + "PopularTags": "Priljubljene oznake", + "RemoveCoverImageConfirmationMessage": "Ali ste prepričani, da želite odstraniti naslovno sliko?", + "RemoveCoverImage": "Odstrani naslovno sliko", + "CssClass": "Razred CSS", + "TagsHelpText": "Oznake morajo biti ločene z vejicami (npr. oznaka1, oznaka2, oznaka3)", + "ThisPartOfContentCouldntBeLoaded": "Ta del vsebine ni bil naložen.", + "DuplicateCommentAttemptMessage": "Zaznan poskus podvojene objave komentarja. Vaš komentar je že oddan." } } \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/vi.json b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/vi.json index 09ae8f3a9c..ab943e8b91 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/vi.json +++ b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/vi.json @@ -15,7 +15,6 @@ "CmsKit.Ratings": "Xếp hạng", "CmsKit.Reactions": "Phản ứng", "CmsKit.Tags": "Thẻ", - "CmsKit.BlogPost.PreventXssFeature": "Ngăn chặn XSS", "CmsKit:0002": "Nội dung đã tồn tại!", "CmsKit:0003": "Thực thể {0} không thể gắn thẻ.", "CmsKit:Blog:0001": "Sên đã cho ({Slug}) đã tồn tại!", @@ -87,6 +86,7 @@ "Permission:BlogPostManagement.Create": "Tạo ra", "Permission:BlogPostManagement.Delete": "Xóa bỏ", "Permission:BlogPostManagement.Update": "Cập nhật", + "Permission:BlogPostManagement.Publish": "Công bố", "Permission:CmsKit": "CmsKit", "Permission:Comments": "Quản lý bình luận", "Permission:Comments.Delete": "Xóa bỏ", @@ -113,10 +113,14 @@ "Permission:PageManagement:Create": "Tạo ra", "Permission:PageManagement:Delete": "Xóa bỏ", "Permission:PageManagement:Update": "Cập nhật", + "Permission:PageManagement:SetAsHomePage": "Đặt làm trang chủ", "Permission:TagManagement": "Quản lý thẻ", "Permission:TagManagement.Create": "Tạo ra", "Permission:TagManagement.Delete": "Xóa bỏ", "Permission:TagManagement.Update": "Cập nhật", + "Permission:GlobalResources": "Tài nguyên toàn cầu", + "Permission:CmsKitPublic": "CmsKit công khai", + "Permission:Comments.DeleteAll": "Xóa hết", "PickYourReaction": "Chọn phản ứng của bạn", "Rating": "Xếp hạng", "RatingUndoMessage": "Xếp hạng của bạn sẽ được hoàn tác.", @@ -131,6 +135,7 @@ "SelectAll": "Chọn tất cả", "Send": "Gửi", "SendMessage": "Gửi tin nhắn", + "SelectedAuthor": "Tác giả", "ShortDescription": "Mô tả ngắn", "Slug": "Sên", "Source": "Nguồn", @@ -161,6 +166,67 @@ "YourFullName": "Tên đầy đủ của bạn", "YourMessage": "Tin nhắn của bạn", "YourReply": "Câu trả lời của bạn", - "ThisPartOfContentCouldntBeLoaded": "Phần này của nội dung không thể được tải." + "MarkdownSupported": "Hỗ trợ đánh dấu .", + "GlobalResources": "Tài nguyên toàn cầu", + "SavedSuccessfully": "đã lưu thành công", + "CmsKit.BlogPost.Status.0": "Bản nháp", + "CmsKit.BlogPost.Status.1": "Được phát hành", + "CmsKit.BlogPost.Status.2": "Đang chờ xem xét", + "BlogPostPublishConfirmationMessage": "Bạn có chắc chắn xuất bản bài đăng trên blog "{0}" không?", + "SuccessfullyPublished": "Đã xuất bản thành công!", + "Draft": "Bản nháp", + "Publish": "Công bố", + "BlogPostDraftConfirmationMessage": "Bạn có chắc chắn đặt bài đăng blog "{0}" làm bản nháp không?", + "BlogPostSendToReviewConfirmationMessage": "Bạn có chắc chắn gửi bài đăng blog "{0}" tới quản trị viên xem xét để xuất bản không?", + "SaveAsDraft": "Lưu dưới dạng bản nháp", + "SendToReview": "Gửi để xem xét", + "SendToReviewToPublish": "Gửi để xem xét để xuất bản", + "BlogPostSendToReviewSuccessMessage": "Bài đăng trên blog "{0}" đã được gửi tới quản trị viên để xuất bản.", + "HasBlogPostWaitingForReviewMessage": "Bạn có một bài đăng trên blog đang chờ xem xét. Bấm vào để liệt kê.", + "SelectAStatus": "Chọn một trạng thái", + "Status": "Trạng thái", + "CmsKit.BlogPost.ScrollIndex": "Thanh điều hướng nhanh trong bài viết blog", + "CmsKit.BlogPost.PreventXssFeature": "Ngăn chặn XSS", + "Add": "Thêm vào", + "AddWidget": "Thêm tiện ích", + "PleaseConfigureWidgets": "Vui lòng định cấu hình tiện ích", + "SelectAnAuthor": "Chọn một tác giả", + "InThisDocument": "Trong tài liệu này", + "GoToTop": "Lên đầu trang", + "SetAsHomePage": "Thay đổi trạng thái trang chủ", + "CompletedSettingAsHomePage": "Đặt làm trang chủ", + "IsHomePage": "là trang chủ", + "RemovedSettingAsHomePage": "Đã xóa cài đặt trang chủ", + "Feature:CmsKitGroup": "Bộ Cms", + "Feature:BlogEnable": "Bài viết trên blog", + "Feature:BlogEnableDescription": "Hệ thống blogpost của CMS Kit cho phép tạo blog và bài đăng động trong ứng dụng.", + "Feature:CommentEnable": "Bình luận", + "Feature:CommentEnableDescription": "Hệ thống bình luận của CMS Kit cho phép bình luận về các thực thể như BlogPost.", + "Feature:GlobalResourceEnable": "Nguồn lực toàn cầu", + "Feature:GlobalResourceEnableDescription": "Tính năng tài nguyên toàn cầu của CMS Kit cho phép quản lý các kiểu và tập lệnh toàn cầu.", + "Feature:MenuEnable": "Thực đơn", + "Feature:MenuEnableDescription": "Hệ thống menu động của CMS Kit cho phép thêm/xóa menu ứng dụng một cách linh hoạt.", + "Feature:PageEnable": "Phân trang", + "Feature:PageEnableDescription": "Hệ thống trang của CMS Kit cho phép tạo các trang tĩnh với URL cụ thể.", + "Feature:RatingEnable": "Xếp hạng", + "Feature:RatingEnableDescription": "Hệ thống xếp hạng của Bộ công cụ CMS cho phép người dùng xếp hạng các thực thể như BlogPost.", + "Feature:ReactionEnable": "Sự phản ứng lại", + "Feature:ReactionEnableDescription": "Hệ thống phản ứng của CMS Kit cho phép người dùng gửi phản ứng đến các thực thể như BlogPost, Comments, v.v.", + "Feature:TagEnable": "Gắn thẻ", + "Feature:TagEnableDescription": "Hệ thống thẻ của CMS Kit cho phép gắn thẻ các thực thể như BlogPost.", + "DeleteBlogPostMessage": "Blog sẽ bị xóa. Bạn có chắc không?", + "CaptchaCode": "Mã xác thực", + "CommentTextRequired": "Bình luận là bắt buộc", + "CaptchaCodeErrorMessage": "Câu trả lời bạn đã nhập cho CAPTCHA không chính xác. Vui lòng thử lại", + "CaptchaCodeMissingMessage": "Mã captcha bị thiếu!", + "UnAllowedExternalUrlMessage": "Bạn đã bao gồm một URL bên ngoài không được phép. Vui lòng thử lại mà không cần URL bên ngoài.", + "URL": "URL", + "PopularTags": "Thẻ phổ biến", + "RemoveCoverImageConfirmationMessage": "Bạn có chắc chắn muốn xóa ảnh bìa không?", + "RemoveCoverImage": "Xóa ảnh bìa", + "CssClass": "Lớp CSS", + "TagsHelpText": "Các thẻ phải được phân tách bằng dấu phẩy (ví dụ: tag1, tag2, tag3)", + "ThisPartOfContentCouldntBeLoaded": "Phần này của nội dung không thể được tải.", + "DuplicateCommentAttemptMessage": "Đã phát hiện nỗ lực đăng bình luận trùng lặp. Bình luận của bạn đã được gửi." } } \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/zh-Hans.json b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/zh-Hans.json index 516c57eefd..bc3aa227f2 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/zh-Hans.json +++ b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/zh-Hans.json @@ -219,6 +219,14 @@ "CommentTextRequired": "请输入评论", "CaptchaCodeErrorMessage": "验证码错误,请重试", "CaptchaCodeMissingMessage": "请输入验证码!", - "ThisPartOfContentCouldntBeLoaded": "无法加载此部分内容" + "UnAllowedExternalUrlMessage": "您包含了不允许的外部 URL。请在没有外部 URL 的情况下重试。", + "URL": "网址", + "PopularTags": "热门标签", + "RemoveCoverImageConfirmationMessage": "您确定要删除封面图片吗?", + "RemoveCoverImage": "删除封面图片", + "CssClass": "CSS类", + "TagsHelpText": "标签应以逗号分隔(例如:tag1、tag2、tag3)", + "ThisPartOfContentCouldntBeLoaded": "无法加载此部分内容", + "DuplicateCommentAttemptMessage": "检测到重复的评论帖子尝试。您的评论已经提交。" } } \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/zh-Hant.json b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/zh-Hant.json index 5d3d2621fb..62c70a6b9e 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/zh-Hant.json +++ b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/zh-Hant.json @@ -15,7 +15,6 @@ "CmsKit.Ratings": "評分", "CmsKit.Reactions": "反應", "CmsKit.Tags": "標籤", - "CmsKit.BlogPost.PreventXssFeature": "防止XSS攻擊", "CmsKit:0002": "內容已經存在!", "CmsKit:0003": "實體 {0} 不可標記.", "CmsKit:Blog:0001": "給定的slug ({Slug}) 已經存在!", @@ -87,6 +86,7 @@ "Permission:BlogPostManagement.Create": "創建", "Permission:BlogPostManagement.Delete": "刪除", "Permission:BlogPostManagement.Update": "更新", + "Permission:BlogPostManagement.Publish": "發布", "Permission:CmsKit": "Cms工具包", "Permission:Comments": "評論管理", "Permission:Comments.Delete": "刪除", @@ -113,10 +113,14 @@ "Permission:PageManagement:Create": "創建", "Permission:PageManagement:Delete": "刪除", "Permission:PageManagement:Update": "更新", + "Permission:PageManagement:SetAsHomePage": "設為首頁", "Permission:TagManagement": "標籤管理", "Permission:TagManagement.Create": "創建", "Permission:TagManagement.Delete": "刪除", "Permission:TagManagement.Update": "更新", + "Permission:GlobalResources": "全球資源", + "Permission:CmsKitPublic": "CmsKit 公共", + "Permission:Comments.DeleteAll": "刪除所有", "PickYourReaction": "選擇你的回應", "Rating": "評分", "RatingUndoMessage": "您的評分將被收回", @@ -131,6 +135,7 @@ "SelectAll": "選擇全部", "Send": "發送", "SendMessage": "發送消息", + "SelectedAuthor": "作者", "ShortDescription": "簡介", "Slug": "Slug", "Source": "來源", @@ -162,6 +167,66 @@ "YourMessage": "你的消息", "YourReply": "你的回覆", "MarkdownSupported": "支援 Markdown .", - "ThisPartOfContentCouldntBeLoaded": "這部分內容無法加載" + "GlobalResources": "全球資源", + "SavedSuccessfully": "保存成功", + "CmsKit.BlogPost.Status.0": "草稿", + "CmsKit.BlogPost.Status.1": "已發表", + "CmsKit.BlogPost.Status.2": "等待審核", + "BlogPostPublishConfirmationMessage": "您確定要發布博文“{0}”嗎?", + "SuccessfullyPublished": "發布成功!", + "Draft": "草稿", + "Publish": "發布", + "BlogPostDraftConfirmationMessage": "您確定將部落格文章“{0}”設定為草稿嗎?", + "BlogPostSendToReviewConfirmationMessage": "您確定將部落格文章“{0}”發送給管理員審核以進行發布嗎?", + "SaveAsDraft": "儲存為草稿", + "SendToReview": "寄至審核", + "SendToReviewToPublish": "寄至審閱以發布", + "BlogPostSendToReviewSuccessMessage": "博文「{0}」已發送給管理員審核以供發布。", + "HasBlogPostWaitingForReviewMessage": "您有一篇部落格文章等待審核。點擊以列出。", + "SelectAStatus": "選擇狀態", + "Status": "地位", + "CmsKit.BlogPost.ScrollIndex": "部落格文章中的快速導覽欄", + "CmsKit.BlogPost.PreventXssFeature": "防止XSS攻擊", + "Add": "添加", + "AddWidget": "添加小部件", + "PleaseConfigureWidgets": "請配置小工具", + "SelectAnAuthor": "選擇作者", + "InThisDocument": "在本文檔中", + "GoToTop": "回到頂部", + "SetAsHomePage": "更改主頁狀態", + "CompletedSettingAsHomePage": "設為首頁", + "IsHomePage": "是主頁", + "RemovedSettingAsHomePage": "刪除了主頁設定", + "Feature:CmsKitGroup": "CMS 套件", + "Feature:BlogEnable": "部落格文章", + "Feature:BlogEnableDescription": "CMS Kit 的部落格文章系統允許在應用程式中動態建立部落格和貼文。", + "Feature:CommentEnable": "評論", + "Feature:CommentEnableDescription": "CMS Kit 的評論系統允許對 BlogPost 等實體進行評論。", + "Feature:GlobalResourceEnable": "全球資源", + "Feature:GlobalResourceEnableDescription": "CMS Kit 的全域資源功能允許管理全域樣式和腳本。", + "Feature:MenuEnable": "選單", + "Feature:MenuEnableDescription": "CMS Kit 的動態選單系統允許動態新增/刪除應用程式選單。", + "Feature:PageEnable": "呼叫", + "Feature:PageEnableDescription": "CMS Kit 的頁面系統允許建立具有特定 URL 的靜態頁面。", + "Feature:RatingEnable": "評分", + "Feature:RatingEnableDescription": "CMS Kit 的評級系統可讓使用者對 BlogPost 等實體進行評級。", + "Feature:ReactionEnable": "反應", + "Feature:ReactionEnableDescription": "CMS Kit 的反應系統允許使用者將反應傳送到實體,例如 BlogPost、評論等。", + "Feature:TagEnable": "標記", + "Feature:TagEnableDescription": "CMS Kit 的標籤系統允許標記 BlogPost 等實體。", + "DeleteBlogPostMessage": "該部落格將會被刪除。你確定嗎?", + "CaptchaCode": "圖形驗證碼", + "CommentTextRequired": "需要評論", + "CaptchaCodeErrorMessage": "您輸入的驗證碼答案不正確。請再試一次", + "CaptchaCodeMissingMessage": "驗證碼遺失!", + "UnAllowedExternalUrlMessage": "您包含了不允許的外部 URL。請在沒有外部 URL 的情況下重試。", + "URL": "網址", + "PopularTags": "熱門標籤", + "RemoveCoverImageConfirmationMessage": "您確定要刪除封面圖片嗎?", + "RemoveCoverImage": "刪除封面圖片", + "CssClass": "CSS類", + "TagsHelpText": "標籤應以逗號分隔(例如:tag1、tag2、tag3)", + "ThisPartOfContentCouldntBeLoaded": "這部分內容無法加載", + "DuplicateCommentAttemptMessage": "偵測到重複的評論貼文嘗試。您的評論已經提交。" } -} +} \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Security/Captcha/SimpleMathsCaptchaGenerator.cs b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Security/Captcha/SimpleMathsCaptchaGenerator.cs index 9b7263698d..bd5e374226 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Security/Captcha/SimpleMathsCaptchaGenerator.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Security/Captcha/SimpleMathsCaptchaGenerator.cs @@ -101,10 +101,10 @@ public class SimpleMathsCaptchaGenerator : ITransientDependency private byte[] GenerateInternal(string stringText, CaptchaOptions options) { var random = new Random(); - var fontName = MagickNET.FontNames.First(); + var family = MagickNET.FontFamilies.First(); var drawables = new Drawables() - .Font(fontName, options.FontStyle, FontWeight.Normal, FontStretch.Normal) + .Font(family, options.FontStyle, FontWeight.Normal, FontStretch.Normal) .FontPointSize(options.FontSize) .StrokeColor(MagickColors.Transparent); diff --git a/modules/docs/app/VoloDocs.Web/package.json b/modules/docs/app/VoloDocs.Web/package.json index ee0f88f479..6d18347aeb 100644 --- a/modules/docs/app/VoloDocs.Web/package.json +++ b/modules/docs/app/VoloDocs.Web/package.json @@ -3,7 +3,7 @@ "name": "volo.docstestapp", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "~8.0.0-rc.3", - "@abp/docs": "~8.0.0-rc.3" + "@abp/aspnetcore.mvc.ui.theme.basic": "~8.0.0", + "@abp/docs": "~8.0.0" } } diff --git a/modules/docs/app/VoloDocs.Web/yarn.lock b/modules/docs/app/VoloDocs.Web/yarn.lock index 31d3b4cb8b..8908bb7157 100644 --- a/modules/docs/app/VoloDocs.Web/yarn.lock +++ b/modules/docs/app/VoloDocs.Web/yarn.lock @@ -2,47 +2,47 @@ # yarn lockfile v1 -"@abp/anchor-js@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/anchor-js/-/anchor-js-8.0.0-rc.3.tgz#198d961c69c7faf75c381c88937efd40a8e158e4" - integrity sha512-BDcp84sDuh4349o6Em3idqWeHAegF64M/zJLSW5QIiX23+46WKzvLorICt7cQkaGiKldr6b/Q6Qx7yDxVxYpGw== +"@abp/anchor-js@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/anchor-js/-/anchor-js-8.0.0.tgz#d2a51171d0ef07657d6cb7d5e933cbdbd68bc800" + integrity sha512-D98eiLTNS7sP0q4IcFFC5llULjWVBeacRdAeFbZMqak2TAz3i9zwgY1A8A53xrc6fpZKDAnFX3ARuS4VoqhDFQ== dependencies: - "@abp/core" "~8.0.0-rc.3" + "@abp/core" "~8.0.0" anchor-js "^4.3.1" -"@abp/aspnetcore.mvc.ui.theme.basic@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-8.0.0-rc.3.tgz#637ea220c9f988c1d0e1b152928f4409696439f2" - integrity sha512-xFJkcC2Oa8vLqMW0gU/3nXHsdFZOQq8+o9gUeLqDAhHZomnvEWsoivcd+LZs0xSDgQOee7N9h2buv9ERBoYGiA== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~8.0.0-rc.3" - -"@abp/aspnetcore.mvc.ui.theme.shared@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-8.0.0-rc.3.tgz#88904633feb5ce7dface4d27e9a31f4e5ace6b30" - integrity sha512-gMYI+xz/0JDgW2U7T3Lesx1o1U+Y+7zG/jVZO5FuMtlrsYhvT6V5BsKa9q/N7kSR0tfK8vsjblMBobqvbmG3SQ== - dependencies: - "@abp/aspnetcore.mvc.ui" "~8.0.0-rc.3" - "@abp/bootstrap" "~8.0.0-rc.3" - "@abp/bootstrap-datepicker" "~8.0.0-rc.3" - "@abp/bootstrap-daterangepicker" "~8.0.0-rc.3" - "@abp/datatables.net-bs5" "~8.0.0-rc.3" - "@abp/font-awesome" "~8.0.0-rc.3" - "@abp/jquery-form" "~8.0.0-rc.3" - "@abp/jquery-validation-unobtrusive" "~8.0.0-rc.3" - "@abp/lodash" "~8.0.0-rc.3" - "@abp/luxon" "~8.0.0-rc.3" - "@abp/malihu-custom-scrollbar-plugin" "~8.0.0-rc.3" - "@abp/moment" "~8.0.0-rc.3" - "@abp/select2" "~8.0.0-rc.3" - "@abp/sweetalert2" "~8.0.0-rc.3" - "@abp/timeago" "~8.0.0-rc.3" - "@abp/toastr" "~8.0.0-rc.3" - -"@abp/aspnetcore.mvc.ui@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-8.0.0-rc.3.tgz#09402ed4e7504c09b49a84d6ee590a5c87017ab8" - integrity sha512-82GfU8DtReq5RTrb2Fl0UHm+vEO0PvC/6DyFHm57nyWiL2dKByUqLd8NXQz+gqubWOA+IvJoLehbcC6iD+Y0VQ== +"@abp/aspnetcore.mvc.ui.theme.basic@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-8.0.0.tgz#c58d15186ad9842834c953e4d712009597ead5c2" + integrity sha512-d43CG48iS8vQvA85tSK7OlSHdcC9JuBT7mpN7DlLViiQewVeoKwdKkMhl5nkX4k0yNtqaRbWYlDD6kDp95TktA== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~8.0.0" + +"@abp/aspnetcore.mvc.ui.theme.shared@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-8.0.0.tgz#4931d9bd40fba2d3e38d3a2a8da2d2e1c1198cb1" + integrity sha512-YPusLRaR6sBN13rAH/rewZv4GIM3bUsmMjz7o8qVK/3CYTx/iCAn7JSvNBbhCJT151RLmdYrahOsr8UUXx4k8Q== + dependencies: + "@abp/aspnetcore.mvc.ui" "~8.0.0" + "@abp/bootstrap" "~8.0.0" + "@abp/bootstrap-datepicker" "~8.0.0" + "@abp/bootstrap-daterangepicker" "~8.0.0" + "@abp/datatables.net-bs5" "~8.0.0" + "@abp/font-awesome" "~8.0.0" + "@abp/jquery-form" "~8.0.0" + "@abp/jquery-validation-unobtrusive" "~8.0.0" + "@abp/lodash" "~8.0.0" + "@abp/luxon" "~8.0.0" + "@abp/malihu-custom-scrollbar-plugin" "~8.0.0" + "@abp/moment" "~8.0.0" + "@abp/select2" "~8.0.0" + "@abp/sweetalert2" "~8.0.0" + "@abp/timeago" "~8.0.0" + "@abp/toastr" "~8.0.0" + +"@abp/aspnetcore.mvc.ui@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-8.0.0.tgz#9760a1e4be0e2632e11a3f570209b1eefdf81607" + integrity sha512-+WBwpQfDmhP64BVSjyyiqRENpn5EBgcmA7JVMfmdmEJTrzx9ma7WSbLd5QxUxawMSkcjjnK95c5JdMVZXdaL8g== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -51,194 +51,194 @@ merge-stream "^2.0.0" micromatch "^4.0.2" -"@abp/bootstrap-datepicker@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-8.0.0-rc.3.tgz#7656fef148c8bdf7993fdae937427564535dea74" - integrity sha512-qW1XQ2zL+/9f9+Q9Db3E5eIOD8Itjtr0KFAO59tY3G3WEwvCOS85pXJ/I17nLRRo/A2Na4kx4Q/jdYr3DkOgDQ== +"@abp/bootstrap-datepicker@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-8.0.0.tgz#458e0acaf6aedbfb03df692b9b2ec87b9fdad954" + integrity sha512-UetR0ldw0u5i2ohNpeI8+W0AGrov8tiglTTNyx8sF6WMGcCNCtU72jZCOc9/z/q91AijQrtdHIqpN/1B91YiMw== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap-daterangepicker@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-8.0.0-rc.3.tgz#b6eb599b198f58c9a0690d2f779548137e10889f" - integrity sha512-TnZdtV0JHweVrrXCJZjxz+Cbk0lYznzELaA6oBbikCPhzIr2XvLqyHuLvERrFVxq80BZGsF7xUgC2K/Tw/RA8w== +"@abp/bootstrap-daterangepicker@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-8.0.0.tgz#613d2984d0f3981e0270d337b360c27397dbc480" + integrity sha512-nQFDtCp1+EuUfnoRmMcGvOgd4yZPMqjsThiW3m2KIV2Y+YlT52mZLBVpqRBpC2993Bs8E9Zpp4R7ebHJgacePg== dependencies: bootstrap-daterangepicker "^3.1.0" -"@abp/bootstrap@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-8.0.0-rc.3.tgz#8865c2536c353b904e6e96cb70e4280fe9928412" - integrity sha512-h7rDAp3eBQwARAkEZfJU+IBTXEiLwi3I5CYFQ92QdX/mC66R1cX1gYY7pR5Wj5f68VS2pURnNxJnONtS3E/Cyw== +"@abp/bootstrap@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-8.0.0.tgz#7d679f88af98de6ac2c0725b86d43f9ce40c4f5b" + integrity sha512-JX6o8uMrsqiMMvbkDRePDqfPFHtWTuKhSTDa77ryp/AZYKOEvJfkdLZGZmYWy7UsB1RNXilth8kMyibqnw0CGg== dependencies: - "@abp/core" "~8.0.0-rc.3" + "@abp/core" "~8.0.0" bootstrap "^5.1.3" -"@abp/clipboard@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-8.0.0-rc.3.tgz#eb7211804967c97cf6678c42b7d756438ffcc22a" - integrity sha512-w9a1gJs8yZbeNkRQqSXxiOUqCLknh+5QM3CoVQudU46Kl4zh39ugPuEMKZhxcGaDsZWSTNuyMgUjzAWFhE/w6g== +"@abp/clipboard@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-8.0.0.tgz#cb597686e07e9ef68a09ebf7101498281939fb10" + integrity sha512-JonHbsCwJQ5iI45zy6lFu9kwXUYoRZC+t31N1w7fDMxekwPEjenBR4g33aGLIySTL7ExKiYjBsEVrCg8GKG/mg== dependencies: - "@abp/core" "~8.0.0-rc.3" + "@abp/core" "~8.0.0" clipboard "^2.0.8" -"@abp/core@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-8.0.0-rc.3.tgz#f399bc55c6ad20c2515a03bb9572c6a4499cfcf0" - integrity sha512-HUa0AfCDX3URnGWsZ/7aZMsXXQFjott05ebK9wF7QDcI7uInyMT5axlrQ/CniyU8GLaFEt3mdtLB7pOZzDnsRw== +"@abp/core@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-8.0.0.tgz#cc4d9c0da10fb922a4adea8df67f60bb02d95365" + integrity sha512-qM7jSTR2uAhjAcsaFNchA89rLBiiJpUsvDBFCz0SyOuFz5DYAHo1njlhICcVAHF7H3NxQfVIndGVSjvmqmLC7Q== dependencies: - "@abp/utils" "~8.0.0-rc.3" + "@abp/utils" "~8.0.0" -"@abp/datatables.net-bs5@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-8.0.0-rc.3.tgz#902d0770c54a5888f805cc97de0ed25d0c53dde9" - integrity sha512-gxYYBeEh81+R8SAh27uMm3paVffq+bYiQgUxpXNgEcyPGP2X7/hnzZNwViuI1t+IgpSuTf6AAt14db9eV6Masg== +"@abp/datatables.net-bs5@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-8.0.0.tgz#c874180ea85fd0b2598fde90e2207bea267870c6" + integrity sha512-8w4oXTQwFnb56NTpeXjUsITGeMtuxv18ZAPK8Zmw28s5uOoIV/d/bEp11hXPwSk3SrjlyLw0lDcZCItwD+W8DQ== dependencies: - "@abp/datatables.net" "~8.0.0-rc.3" + "@abp/datatables.net" "~8.0.0" datatables.net-bs5 "^1.11.4" -"@abp/datatables.net@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-8.0.0-rc.3.tgz#4ddfa9fe3246e72807c3b19307c7484af749f969" - integrity sha512-vQBenQsDxzryspNv0FEzpyUPBXddIkVhXUJ6tHc+IZ8q/+/2wUE0ZciSJm7qS/GQnGrYZv9wpIGbSRh/RgVvVA== +"@abp/datatables.net@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-8.0.0.tgz#09ef3575a611f6ec123d2a9d4d55b8c89e30d115" + integrity sha512-WmsAfQEGPWMTqHGbeiX3RVfIdfkrMOtUfJmR0JaYJMuQo3STmMSnzOgNMKviDeQdzplgoOOKp6j0OgIqcciowg== dependencies: - "@abp/jquery" "~8.0.0-rc.3" + "@abp/jquery" "~8.0.0" datatables.net "^1.11.4" -"@abp/docs@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/docs/-/docs-8.0.0-rc.3.tgz#c92687c8a4e18dd500a4a1a5f6820f241424e8fb" - integrity sha512-T1XGo0KC59t1FkhLzBDOV2F3J0tVahoO9YQRH4fjAidCIGynkFjQdYwu2GHgWvKcKg2bqFVOR6BVIc4142oVPA== +"@abp/docs@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/docs/-/docs-8.0.0.tgz#b461b1233bb2e4e64035c374c29c30332f7cbf8d" + integrity sha512-StQMsssu+P+pG/+Or1Q3RL1TQRbJj+V1Z12DsybYRAATB8LBvSTOphx4/ico2nee6ZW6npOxze8ke2vS8MjHxA== dependencies: - "@abp/anchor-js" "~8.0.0-rc.3" - "@abp/clipboard" "~8.0.0-rc.3" - "@abp/malihu-custom-scrollbar-plugin" "~8.0.0-rc.3" - "@abp/popper.js" "~8.0.0-rc.3" - "@abp/prismjs" "~8.0.0-rc.3" + "@abp/anchor-js" "~8.0.0" + "@abp/clipboard" "~8.0.0" + "@abp/malihu-custom-scrollbar-plugin" "~8.0.0" + "@abp/popper.js" "~8.0.0" + "@abp/prismjs" "~8.0.0" -"@abp/font-awesome@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-8.0.0-rc.3.tgz#5f850c5479f48cf1c951de2354050d38fec6beab" - integrity sha512-GYwhoOThD5Bw0Ain5DkVXgHLpca83QGAy1T7I+6SmYyibYu5SdxV9ytD65tARH+dx9VpB3p9NeC5lRYuWdPzCQ== +"@abp/font-awesome@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-8.0.0.tgz#ce7debf296fddbdf79139147f6c9761ec68b6587" + integrity sha512-qeihwiim6YMcL3KfHU0CViVl5MamQXbTp4606r/hKQejCSbdqR9XupYVbTAyojXLCCRqfnDVuXwqWCFTKVbQow== dependencies: - "@abp/core" "~8.0.0-rc.3" + "@abp/core" "~8.0.0" "@fortawesome/fontawesome-free" "^5.15.4" -"@abp/jquery-form@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-8.0.0-rc.3.tgz#e414a0599448c37df3197af77a91c9a66d3ef77f" - integrity sha512-w58Zi28Ci/0DIzMzC/ihu+np7G2Hv+9DLrhLZKddEI9WisFuxao5EAhKseq7LWMPzG/QSw8skLZAY12YrEtp6w== +"@abp/jquery-form@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-8.0.0.tgz#466343a87baa2f53fb57cf377e0fb0c07ff02bb9" + integrity sha512-xinU2Yu0YWNjoaYnBm+OoN8oNX/BDPzbqGtjlH1s5I+M/S0yf/qlPEzvzL5+epBlt0GKza/SqwSsuAVsfuFrKQ== dependencies: - "@abp/jquery" "~8.0.0-rc.3" + "@abp/jquery" "~8.0.0" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-8.0.0-rc.3.tgz#a3ab6b5078449ba94c7206ed96286b902a766b6b" - integrity sha512-Gvmujjhrvqzu51fGSTAssxGVu4XolTLEwW3qR0zwWCc0+kXF/AXB98DD66A+hmGau54sTKRXVmBTpc4J3KpoWg== +"@abp/jquery-validation-unobtrusive@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-8.0.0.tgz#a641cc4bff6de178ed3429987017c00bf68e81f9" + integrity sha512-nUcktSW5tPifa6yNX9Y8zCi0VCUJklVSSd4f3eKfjU8SIcWq1eNfR6R+MHRZEVVmyB7xeYMBlc0yjxVYwUUlEw== dependencies: - "@abp/jquery-validation" "~8.0.0-rc.3" + "@abp/jquery-validation" "~8.0.0" jquery-validation-unobtrusive "^3.2.12" -"@abp/jquery-validation@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-8.0.0-rc.3.tgz#eee433a5fc076d92d734e7cea4bce00fbaacc963" - integrity sha512-Dq5Ru5WWqDKIDzetUicJzp6DHkGhNNHcjYyHF3n9o9+3T4+6dgRbXy5OYjIv9CADfui55rzckWH57FbCExiUSw== +"@abp/jquery-validation@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-8.0.0.tgz#674fe49294c622b07b843ab8721a5ae32024b7b9" + integrity sha512-B/aFZsKbILP4FPuc3eU17APkbBWJhjWXSQCiSXbHpDZYJN5km1l52gpuWR+7Yo5CXnAP06N+zUYHf86tNCZyBw== dependencies: - "@abp/jquery" "~8.0.0-rc.3" + "@abp/jquery" "~8.0.0" jquery-validation "^1.19.3" -"@abp/jquery@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-8.0.0-rc.3.tgz#e230c5db7a9aff526564c1b4b1820cd983a10726" - integrity sha512-o9xBZt55fT+ZYqmLjQ9dahtIgsRqz4VrXUsLgyKkUzr2p3gtgXCQqKfkIpdeE5aE3p1/T+et5U6FOMUCRZegvg== +"@abp/jquery@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-8.0.0.tgz#67bf40f87c335b1cba73f406f0102f35e820fd84" + integrity sha512-QhjBz/s1hVJcsYCbuZwNOtOCvsC93OMzMJHoZ2COaKkOZlt6tiRHhawdYVZloKDaMdfcd5tvqbkNhXtQ4K9AXg== dependencies: - "@abp/core" "~8.0.0-rc.3" + "@abp/core" "~8.0.0" jquery "~3.6.0" -"@abp/lodash@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-8.0.0-rc.3.tgz#5bf8019fa0e69ec1fac6ccacb1625b8564ed8944" - integrity sha512-Mo2r+bNZXdmM7Ri8SBi+M4OsfnLYejbQmcJ7wkDUPb4B3cDJtTB4YuJn8NWBBjaXwi08Myt1MvSFnT04N/t8Eg== +"@abp/lodash@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-8.0.0.tgz#4c809c4755ed11e70875d30f04312b0ff10a2dbb" + integrity sha512-V0y4k9HlggBvJtK5m35Gkori2IN0E4ec1JpBgGeaOStcvThAL1EtXip1kqPORMbC4wm+bgpT0QWhiqCeKBFoLg== dependencies: - "@abp/core" "~8.0.0-rc.3" + "@abp/core" "~8.0.0" lodash "^4.17.21" -"@abp/luxon@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-8.0.0-rc.3.tgz#cc0adcab4f1fa6bea2055be478ec9a86d00f1ba6" - integrity sha512-vKwfpAPL7GUJLvCpsJoJ5eXRH5Ypciez9J6QiK2Mjx1NauxR514wYtBqM/2I7hoJ4Oc9XvrAjcIon3r21dvCqQ== +"@abp/luxon@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-8.0.0.tgz#13a1145dc79d908f3398944c4bf0fb0457d94217" + integrity sha512-ZEGegnr+KCczPUrxxPmBUKGyiWkjAa4hDWb06mozdVP14zHQbbZfyKKXwrPfanwcj96Ui9i2klnrKPXuyppBJw== dependencies: - "@abp/core" "~8.0.0-rc.3" + "@abp/core" "~8.0.0" luxon "^2.3.0" -"@abp/malihu-custom-scrollbar-plugin@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-8.0.0-rc.3.tgz#195c897dced708de627941ce017e047c62191a56" - integrity sha512-svD7YJzHvufjmhoCKgQcjApIdVcGJwWhpsK260lwLiCvkdNDhxFjH+jfChhLMXPYpOnozrgrVx56oJqDWDrU3A== +"@abp/malihu-custom-scrollbar-plugin@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-8.0.0.tgz#fd4428d66ee38b4b2c02c0e300d5bd75dcda414d" + integrity sha512-jrD4AHd2Pdr28Ps3QtEDVDMSnK7xSumCKKSJl0R5SJcMyskByJ6gwydYqMGeQkCVnk1ztEZFfJNhOO35A+SBWA== dependencies: - "@abp/core" "~8.0.0-rc.3" + "@abp/core" "~8.0.0" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/moment@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-8.0.0-rc.3.tgz#7e2a74cd23c434b45f903b4f826f807a31b5982b" - integrity sha512-E0mob3xj0frslPovdHbsdaFB5oLimORFA86uQJ5KVSEaDOXYKuEqUomMcqg2LRVdzzKd7ai6QkuH3p7qbJonww== +"@abp/moment@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-8.0.0.tgz#26d0932bf4dac4dee25d0940eea50fcfeb37a69b" + integrity sha512-fgh0pXdxPi5Y9VnC6f12kwJmGQL4dowZtVp8lbNEjnCFiocAhEOOuN9gkTGk8y0xEhXroliW7wbaB2MJPINKhg== dependencies: moment "^2.9.0" -"@abp/popper.js@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/popper.js/-/popper.js-8.0.0-rc.3.tgz#8db4c89a4b2d86e3b04bb6952221d4886a4a3925" - integrity sha512-migHMxSKeroU/9pDU9I/g/39A+6ZB0PP/RHYyM6KY8xSfgpVrb0k7JzAZk+RqsX7MntWcCBcQX8I7FVViw93OA== +"@abp/popper.js@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/popper.js/-/popper.js-8.0.0.tgz#7e804a97e778ad2351e22daeabf6161ca58fd7f1" + integrity sha512-mqRmzdYq882zWE6+yVbVRHyzgTenvBfM/hfWgHSWJfMOpmt6LclhriaVrQspYFV7CTZQYNdZYX/4tgJ+MYiXZA== dependencies: - "@abp/core" "~8.0.0-rc.3" + "@abp/core" "~8.0.0" "@popperjs/core" "^2.11.2" -"@abp/prismjs@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-8.0.0-rc.3.tgz#237bb9c55ad1b202418c5bd1452e73a101706c25" - integrity sha512-adgMYfZhK7aPpxNdQhdOqE7oOvXUDq5qqhIVOVzmrQ4Dy/uCItT/Zq0yqqYLr2d7D17vRzfBM7R8ubgxnsMfbw== +"@abp/prismjs@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-8.0.0.tgz#174ccbd33d47bb687fe35bed35f7c834ca5ee328" + integrity sha512-Udx3pdlUU2MO+di1BZgG3jKNIeImWoPySmBA8YaStqsAkD/yb+YyUD2QmCUfI55kqzRyhAKE467ZusDFFOY20w== dependencies: - "@abp/clipboard" "~8.0.0-rc.3" - "@abp/core" "~8.0.0-rc.3" + "@abp/clipboard" "~8.0.0" + "@abp/core" "~8.0.0" prismjs "^1.26.0" -"@abp/select2@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-8.0.0-rc.3.tgz#77dd12185f6d03553230c7516e40603310f28f4f" - integrity sha512-9O+IHIB6n+WfLzh6SVyC01OIU3qWzhoT3DofAc329cyI73NJSPuOvmkQtQVYWnkAI/6+B6qYF3A4umD/EoPouQ== +"@abp/select2@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-8.0.0.tgz#4a4ebd63f2b79d663dab709decb2f1b1f510950f" + integrity sha512-kl3of/L0GSHyxt6WYnBDdBqqtoUscY9qubaMHZrk9y1zOVXOM0JUQoyu2KDQhOZm7iCu34ATX47NAw59eb9Omw== dependencies: - "@abp/core" "~8.0.0-rc.3" + "@abp/core" "~8.0.0" select2 "^4.0.13" -"@abp/sweetalert2@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-8.0.0-rc.3.tgz#021afc3457cf72c2b6dd298bb981faa741fc1293" - integrity sha512-b67UC/uZ9gWt2X5MeUnKg98FkhvJ+Azsq4PHcFBdUTZL/5ItJ8F6UsOTpT7Z7cUXFmJn/RTcPrgQDsK63CZltw== +"@abp/sweetalert2@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-8.0.0.tgz#369c04e433eead8e7171cd84298bb3e4ecb14050" + integrity sha512-riaHcFdozJ8R/sAdhtnfa7GHhWjptnQODrZ2bqBkcKuw2d8LKQ+2v3tcflaWWHwsOmGVbki3EhJJPdFWOtli/w== dependencies: - "@abp/core" "~8.0.0-rc.3" + "@abp/core" "~8.0.0" sweetalert2 "^11.3.6" -"@abp/timeago@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-8.0.0-rc.3.tgz#b3e63ff94bce8ad59b02d8c4490f580e60630f00" - integrity sha512-Pmm6Jj7VT1PW/Wfh1ozFFIdpFvH8cGKfHU2sYgwHuw4U9YQUd8ZTIDaZRMhuN9QqnGlmFtUZsXzoIMZJDvOq5w== +"@abp/timeago@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-8.0.0.tgz#93947505b68f369df10bb38cd8c05376e1c1cbcb" + integrity sha512-Q+e5CvvFAU21hGuIXREtIeEl8WlGpsNqK+QbCRbjNvM0HgCPH/gRQNpAV+S7TqaI5W2Uggfcsd7GvTH3GtMv7g== dependencies: - "@abp/jquery" "~8.0.0-rc.3" + "@abp/jquery" "~8.0.0" timeago "^1.6.7" -"@abp/toastr@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-8.0.0-rc.3.tgz#5b0d267951e025ca77a611c2fa9b606e92bd830a" - integrity sha512-hfDzyMSgbjriAALdrcnx/qonN2lquF7HM4QH8nt1E8/vWOkd8bUL/kyAoIL8rfS94zr62UUZTEDezoCfHwif+w== +"@abp/toastr@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-8.0.0.tgz#d409fec3fb1e5a886d0a03b0f58449a2f8a563d9" + integrity sha512-7evxuHJ+ZJtyCoIv0+HY/av5FC8Y5UzBtVjEB8Ol8RvhH5PBkErguPg9qPZvYcpHjJlYN+iKYAuXdQLZdXHwUQ== dependencies: - "@abp/jquery" "~8.0.0-rc.3" + "@abp/jquery" "~8.0.0" toastr "^2.1.4" -"@abp/utils@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-8.0.0-rc.3.tgz#01491fb943eb3a41d4ddbe854e5330b66807d522" - integrity sha512-cuTwsy+FEh3dEnlDDi0s8d3qpWgP3rwqWgg5LlMF0pY/OobJcCLtuo5Zy9bncKL3wFHXVEk6UviYcNkSOkzvtQ== +"@abp/utils@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-8.0.0.tgz#3de8e34e97e10ac9c2b8c1c194bf6b034fde302f" + integrity sha512-F8LsEedqkngbeFsszdZi1lshFqr++anyJFBoaRsKRw6hJPDPrYtHoOWEQ+p7QcH5UVVzVywQUGMNM+gmAT0vGQ== dependencies: just-compare "^2.3.0" diff --git a/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Localization/Resources/Docs/ApplicationContracts/ar.json b/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Localization/Resources/Docs/ApplicationContracts/ar.json index 2af74dd224..458d1592f0 100644 --- a/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Localization/Resources/Docs/ApplicationContracts/ar.json +++ b/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Localization/Resources/Docs/ApplicationContracts/ar.json @@ -56,6 +56,7 @@ "FileName": "اسم الملف", "LastCachedTime": "وقت ذاكرة التخزين", "Project": "مشروع ", + "AdvancedFilters": "مرشحات متقدمة", "RemoveCacheAndReIndexConfirmation": "ستتم إزالة المستند \"{0}\" من ذاكرة التخزين المؤقت وإعادة فهرسته. هل تؤكد؟" } -} +} \ No newline at end of file diff --git a/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Localization/Resources/Docs/ApplicationContracts/cs.json b/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Localization/Resources/Docs/ApplicationContracts/cs.json index 19fa5c257c..ff6c135a90 100644 --- a/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Localization/Resources/Docs/ApplicationContracts/cs.json +++ b/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Localization/Resources/Docs/ApplicationContracts/cs.json @@ -56,6 +56,7 @@ "FileName": "Název souboru", "LastCachedTime": "Čas uložení v mezipaměti", "Project": "Projekt", + "AdvancedFilters": "Pokročilé filtry", "RemoveCacheAndReIndexConfirmation": "Dokument \"{0}\" bude odstraněn z mezipaměti a znovu zaindexován. Potvrzujete to?" } -} +} \ No newline at end of file diff --git a/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Localization/Resources/Docs/ApplicationContracts/de.json b/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Localization/Resources/Docs/ApplicationContracts/de.json index 7939e4a8f1..0fd1c535b2 100644 --- a/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Localization/Resources/Docs/ApplicationContracts/de.json +++ b/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Localization/Resources/Docs/ApplicationContracts/de.json @@ -7,6 +7,7 @@ "Permission:Delete": "Löschen", "Permission:Create": "Erstellen", "Permission:Documents": "Dokumente", + "Menu:Documents": "Unterlagen", "Menu:DocumentManagement": "Dokumente", "Menu:ProjectManagement": "Projekte", "CreateANewProject": "Neues Projekt erstellen", @@ -30,9 +31,32 @@ "DisplayName:GitHubRootUrl": "GitHub-Stamm-URL", "DisplayName:GitHubAccessToken": "GitHub-Zugriffstoken", "DisplayName:GitHubUserAgent": "GitHub-Benutzer-Agent", + "DisplayName:GithubVersionProviderSource": "Quelle des GitHub-Versionsanbieters", + "DisplayName:VersionBranchPrefix": "Präfix des Versionszweigs", "DisplayName:All": "Pull all", "DisplayName:LanguageCode": "Sprachcode", "DisplayName:Version": "Version", - "Project": "Projekt" + "Documents": "Unterlagen", + "RemoveFromCache": "Aus dem Cache entfernen und neu indizieren", + "Reindex": "Neu indizieren", + "ReindexCompleted": "Neuindizierung abgeschlossen", + "RemovedFromCache": "Aus dem Cache entfernt und neu indiziert", + "RemoveFromCacheConfirmation": "Möchten Sie dieses Element wirklich aus dem Cache entfernen?", + "ReIndexDocumentConfirmation": "Sind Sie sicher, dass Sie „{0}“ neu indizieren möchten?", + "DeleteFromDatabase": "Aus Datenbank löschen", + "Deleted": "Gelöscht", + "Search": "Suchen", + "StartDate": "Startdatum", + "EndDate": "Endtermin", + "CreationTime": "Erstellungszeitpunkt", + "LastUpdateTime": "Letztes Update", + "LastSignificantUpdateTime": "Letztes wichtiges Update", + "Version": "Ausführung", + "LanguageCode": "Sprachcode", + "FileName": "Dateiname", + "LastCachedTime": "Zwischenspeicher", + "Project": "Projekt", + "AdvancedFilters": "Erweiterte Filter", + "RemoveCacheAndReIndexConfirmation": "Das Dokument „{0}“ wird aus dem Cache entfernt und neu indiziert. Bestätigen Sie?" } } \ No newline at end of file diff --git a/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Localization/Resources/Docs/ApplicationContracts/es.json b/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Localization/Resources/Docs/ApplicationContracts/es.json index 800f3efc13..911fe2745a 100644 --- a/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Localization/Resources/Docs/ApplicationContracts/es.json +++ b/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Localization/Resources/Docs/ApplicationContracts/es.json @@ -56,6 +56,7 @@ "FileName": "Nombre de fichero", "LastCachedTime": "Última actualización de caché", "Project": "Proyecto", + "AdvancedFilters": "Filtros avanzados", "RemoveCacheAndReIndexConfirmation": "El documento \"{0}\" será eliminado de la caché y reindexado. ¿Lo confirma?" } } \ No newline at end of file diff --git a/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Localization/Resources/Docs/ApplicationContracts/fr.json b/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Localization/Resources/Docs/ApplicationContracts/fr.json index 158e544742..b2fdef8201 100644 --- a/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Localization/Resources/Docs/ApplicationContracts/fr.json +++ b/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Localization/Resources/Docs/ApplicationContracts/fr.json @@ -56,6 +56,7 @@ "FileName": "Nom de fichier", "LastCachedTime": "Temps de cache", "Project": "Projet", + "AdvancedFilters": "Filtres avancés", "RemoveCacheAndReIndexConfirmation": "Le document \"{0}\" sera supprimé du cache et réindexé. Confirmez-vous ?" } } \ No newline at end of file diff --git a/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Localization/Resources/Docs/ApplicationContracts/hi.json b/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Localization/Resources/Docs/ApplicationContracts/hi.json index d45d10992d..adad5e064f 100644 --- a/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Localization/Resources/Docs/ApplicationContracts/hi.json +++ b/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Localization/Resources/Docs/ApplicationContracts/hi.json @@ -56,6 +56,7 @@ "FileName": "फ़ाइल का नाम", "LastCachedTime": "कैश समय", "Project": "परियोजना", + "AdvancedFilters": "उन्नत फ़िल्टर", "RemoveCacheAndReIndexConfirmation": "दस्u200Dतावेज़ \"{0}\" को संचय से हटा दिया जाएगा और पुन: अनुक्रमित किया जाएगा। क्या आप पुष्टि करते हैं?" } } \ No newline at end of file diff --git a/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Localization/Resources/Docs/ApplicationContracts/is.json b/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Localization/Resources/Docs/ApplicationContracts/is.json index ada8ff0e0c..c3e8fa957b 100644 --- a/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Localization/Resources/Docs/ApplicationContracts/is.json +++ b/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Localization/Resources/Docs/ApplicationContracts/is.json @@ -56,6 +56,7 @@ "FileName": "Skráar nafn", "LastCachedTime": "Tími geymt í skyndiminni", "Project": "Verkefni", + "AdvancedFilters": "Ítarlegar síur", "RemoveCacheAndReIndexConfirmation": "Skjalið \"{0}\" verður fjarlægt úr skyndiminni og endurtryggt. Staðfestir þú?" } } \ No newline at end of file diff --git a/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Localization/Resources/Docs/ApplicationContracts/it.json b/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Localization/Resources/Docs/ApplicationContracts/it.json index 28c66074e3..40f94e8077 100644 --- a/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Localization/Resources/Docs/ApplicationContracts/it.json +++ b/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Localization/Resources/Docs/ApplicationContracts/it.json @@ -56,6 +56,7 @@ "FileName": "Nome del file", "LastCachedTime": "Tempo di cache", "Project": "Progetto", + "AdvancedFilters": "Filtri avanzati", "RemoveCacheAndReIndexConfirmation": "Il documento \"{0}\" verrà rimosso dalla cache e reindicizzato. Confermate?" } } \ No newline at end of file diff --git a/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Localization/Resources/Docs/ApplicationContracts/nl.json b/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Localization/Resources/Docs/ApplicationContracts/nl.json index 734000cc01..201d7c5da0 100644 --- a/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Localization/Resources/Docs/ApplicationContracts/nl.json +++ b/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Localization/Resources/Docs/ApplicationContracts/nl.json @@ -56,6 +56,7 @@ "FileName": "Bestandsnaam", "LastCachedTime": "Cache tijd", "Project": "Project", + "AdvancedFilters": "Geavanceerde filters", "RemoveCacheAndReIndexConfirmation": "Het document \"{0}\" wordt uit de cache verwijderd en opnieuw geïndexeerd. Bevestigt u?" } } \ No newline at end of file diff --git a/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Localization/Resources/Docs/ApplicationContracts/pl-PL.json b/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Localization/Resources/Docs/ApplicationContracts/pl-PL.json index 06ee3410e3..ec9de0de07 100644 --- a/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Localization/Resources/Docs/ApplicationContracts/pl-PL.json +++ b/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Localization/Resources/Docs/ApplicationContracts/pl-PL.json @@ -56,6 +56,7 @@ "FileName": "Nazwa pliku", "LastCachedTime": "Czas w pamięci podręcznej", "Project": "Projekt", + "AdvancedFilters": "Zaawansowane filtry", "RemoveCacheAndReIndexConfirmation": "Dokument \"{0}\" zostanie usunięty z pamięci podręcznej i ponownie zaindeksowany. Czy potwierdzasz?" } } \ No newline at end of file diff --git a/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Localization/Resources/Docs/ApplicationContracts/ro-RO.json b/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Localization/Resources/Docs/ApplicationContracts/ro-RO.json index be374b79c9..f055110a2f 100644 --- a/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Localization/Resources/Docs/ApplicationContracts/ro-RO.json +++ b/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Localization/Resources/Docs/ApplicationContracts/ro-RO.json @@ -56,6 +56,7 @@ "FileName": "Nume fişier", "LastCachedTime": "Durată cache", "Project": "Proiect", + "AdvancedFilters": "Filtre avansate", "RemoveCacheAndReIndexConfirmation": "Documentul \"{0}\" va fi eliminat din memoria cache și va fi reindexat. Confirmați?" } } \ No newline at end of file diff --git a/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Localization/Resources/Docs/ApplicationContracts/ru.json b/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Localization/Resources/Docs/ApplicationContracts/ru.json index 9a93cc36c8..5f9836d957 100644 --- a/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Localization/Resources/Docs/ApplicationContracts/ru.json +++ b/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Localization/Resources/Docs/ApplicationContracts/ru.json @@ -56,6 +56,7 @@ "FileName": "Имя файла", "LastCachedTime": "Время кеширования", "Project": "Проект", + "AdvancedFilters": "Расширенные фильтры", "RemoveCacheAndReIndexConfirmation": "Документ \"{0}\" будет удален из кэша и переиндексирован. Вы подтверждаете?" } } \ No newline at end of file diff --git a/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Localization/Resources/Docs/ApplicationContracts/sk.json b/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Localization/Resources/Docs/ApplicationContracts/sk.json index a29d85987e..53578e22dd 100644 --- a/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Localization/Resources/Docs/ApplicationContracts/sk.json +++ b/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Localization/Resources/Docs/ApplicationContracts/sk.json @@ -56,6 +56,7 @@ "FileName": "Názov súboru", "LastCachedTime": "Čas vyrovnávacej pamäte", "Project": "Projekt", + "AdvancedFilters": "Pokročilé filtre", "RemoveCacheAndReIndexConfirmation": "Dokument \"{0}\" sa odstráni z vyrovnávacej pamäte a znovu sa zaindexuje. Potvrdzujete?" } } \ No newline at end of file diff --git a/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Localization/Resources/Docs/ApplicationContracts/sl.json b/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Localization/Resources/Docs/ApplicationContracts/sl.json index a3445dc87b..3bcfcd4e85 100644 --- a/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Localization/Resources/Docs/ApplicationContracts/sl.json +++ b/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Localization/Resources/Docs/ApplicationContracts/sl.json @@ -55,6 +55,8 @@ "LanguageCode": "Jezikovna koda", "FileName": "Ime datoteke", "LastCachedTime": "Čas pred pomnilnika", - "Project": "Projekt" + "Project": "Projekt", + "AdvancedFilters": "Napredni filtri", + "RemoveCacheAndReIndexConfirmation": "Dokument »{0}« bo odstranjen iz predpomnilnika in ponovno indeksiran. Ali potrjuješ?" } } \ No newline at end of file diff --git a/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Localization/Resources/Docs/ApplicationContracts/vi.json b/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Localization/Resources/Docs/ApplicationContracts/vi.json index df729a70e9..9b47a049a9 100644 --- a/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Localization/Resources/Docs/ApplicationContracts/vi.json +++ b/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Localization/Resources/Docs/ApplicationContracts/vi.json @@ -55,6 +55,8 @@ "LanguageCode": "Mật ngữ", "FileName": "Tên tệp", "LastCachedTime": "Thời gian lưu vào bộ nhớ đệm", - "Project": "Dự án" + "Project": "Dự án", + "AdvancedFilters": "Bộ lọc nâng cao", + "RemoveCacheAndReIndexConfirmation": "Tài liệu "{0}" sẽ bị xóa khỏi bộ đệm và được lập chỉ mục lại. Bạn có xác nhận không?" } } \ No newline at end of file diff --git a/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Localization/Resources/Docs/ApplicationContracts/zh-Hans.json b/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Localization/Resources/Docs/ApplicationContracts/zh-Hans.json index da611a35c7..e5bb9f15b6 100644 --- a/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Localization/Resources/Docs/ApplicationContracts/zh-Hans.json +++ b/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Localization/Resources/Docs/ApplicationContracts/zh-Hans.json @@ -56,6 +56,7 @@ "FileName": "文件名称", "LastCachedTime": "缓存项", "Project": "项目", + "AdvancedFilters": "高级过滤器", "RemoveCacheAndReIndexConfirmation": "文档“{0}”将从缓存中删除并重新编制索引。 你确认吗?" } } \ No newline at end of file diff --git a/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Localization/Resources/Docs/ApplicationContracts/zh-Hant.json b/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Localization/Resources/Docs/ApplicationContracts/zh-Hant.json index d79055d067..c246a74646 100644 --- a/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Localization/Resources/Docs/ApplicationContracts/zh-Hant.json +++ b/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Localization/Resources/Docs/ApplicationContracts/zh-Hant.json @@ -56,6 +56,7 @@ "FileName": "文檔名稱", "LastCachedTime": "緩存時間", "Project": "项目", + "AdvancedFilters": "進階過濾器", "RemoveCacheAndReIndexConfirmation": "文檔“{0}”將從緩存中刪除並重新編制索引。 你確認嗎?" } } \ No newline at end of file diff --git a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/ar.json b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/ar.json index a4e3308cdb..e5c3f3c465 100644 --- a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/ar.json +++ b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/ar.json @@ -36,6 +36,7 @@ "Volo.Docs.Domain:010002": "الاسم المختصر {ShortName} موجود بالفعل.", "Preview": "معاينة", "Search": "بحث", - "SearchResults": "نتائج البحث" + "SearchResults": "نتائج البحث", + "SearchInTheAllDocuments": "البحث في جميع الوثائق" } } \ No newline at end of file diff --git a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/cs.json b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/cs.json index 2aa6bea27e..dd61126c17 100644 --- a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/cs.json +++ b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/cs.json @@ -36,6 +36,7 @@ "Volo.Docs.Domain:010002": "ShortName {ShortName} už existuje.", "Preview": "náhled", "Search": "Vyhledávání", - "SearchResults": "Výsledky vyhledávání" + "SearchResults": "Výsledky vyhledávání", + "SearchInTheAllDocuments": "Hledejte ve všech dokumentech" } } \ No newline at end of file diff --git a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/de.json b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/de.json index 1039d41b53..4be422c1f0 100644 --- a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/de.json +++ b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/de.json @@ -36,6 +36,7 @@ "Volo.Docs.Domain:010002": "Kurzname {ShortName} existiert bereits.", "Preview": "Vorschau", "Search": "Suchen", - "SearchResults": "Suchergebnisse" + "SearchResults": "Suchergebnisse", + "SearchInTheAllDocuments": "Durchsuchen Sie alle Dokumente" } -} +} \ No newline at end of file diff --git a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/es.json b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/es.json index 24f484d763..697b373715 100644 --- a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/es.json +++ b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/es.json @@ -36,6 +36,7 @@ "Volo.Docs.Domain:010002": "ShortName {ShortName} ya existe.", "Preview": "Previsualizar", "Search": "Buscar", - "SearchResults": "Resultados de la búsqueda" + "SearchResults": "Resultados de la búsqueda", + "SearchInTheAllDocuments": "Buscar en todos los documentos" } } \ No newline at end of file diff --git a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/fr.json b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/fr.json index 8244a8d439..f2a3f3b0a0 100644 --- a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/fr.json +++ b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/fr.json @@ -36,6 +36,7 @@ "Volo.Docs.Domain:010002": "ShortName {ShortName} existe déjà.", "Preview": "Aperçu", "Search": "Rechercher", - "SearchResults": "Résultats de recherche" + "SearchResults": "Résultats de recherche", + "SearchInTheAllDocuments": "Rechercher dans tous les documents" } } \ No newline at end of file diff --git a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/hi.json b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/hi.json index 502561a6e1..013b57f523 100644 --- a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/hi.json +++ b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/hi.json @@ -36,6 +36,7 @@ "Volo.Docs.Domain:010002": "ShortName {ShortName} पहले से मौजूद है।", "Preview": "पूर्व दर्शन", "Search": "खोज", - "SearchResults": "खोज परिणाम" + "SearchResults": "खोज परिणाम", + "SearchInTheAllDocuments": "सभी दस्तावेज़ों में खोजें" } } \ No newline at end of file diff --git a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/hr.json b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/hr.json index 707088d110..4db71761e8 100644 --- a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/hr.json +++ b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/hr.json @@ -1,41 +1,42 @@ { - "culture": "hr", - "texts": { - "Documents": "Dokumenti", - "BackToWebsite": "Povratak na web stranicu", - "Contributors": "Suradnici", - "ShareOn": "Podijeli na", - "Version": "Verzija", - "Edit": "Uredi", - "LastEditTime": "Zadnje uređivanje", - "Delete": "Izbrisati", - "ClearCache": "Očisti predmemoriju", - "ClearCacheConfirmationMessage": "Jeste li sigurni da želite izbrisati sve iz predmemorije za projekt \"{0}\"", - "ReIndexAllProjects": "Ponovno indeksirajte sve projekte", - "ReIndexProject": "Ponovno indeksiranje projekta", - "ReIndexProjectConfirmationMessage": "Jeste li sigurni da ponovno indeksirate za projekt \"{0}\"", - "SuccessfullyReIndexProject": "Uspješno ponovno indeksirano:\"{0}\"", - "ReIndexAllProjectConfirmationMessage": "Jeste li sigurni da ćete ponovno indeksirati sve projekte?", - "SuccessfullyReIndexAllProject": "Uspješno reindeksirani svi projekti", - "InThisDocument": "U ovom dokumentu", - "GoToTop": "Idi na vrh", - "Projects": "Projekti", - "NoProjectWarning": "Još nema projekata!", - "DocumentNotFound": "Ups, traženi dokument nije pronađen!", - "ProjectNotFound": "Ups, traženi projekt nije pronađen!", - "NavigationDocumentNotFound": "Ova verzija nema navigacijski dokument!", - "DocumentNotFoundInSelectedLanguage": "Dokument na željenom jeziku nije pronađen. Prikazuje se dokument na zadanom jeziku.", - "FilterTopics": "Filtrirajte teme", - "FullSearch": "Traži u dokumentima", - "Volo.Docs.Domain:010001": "Elastic search nije omogućen.", - "MultipleVersionDocumentInfo": "Postoji više verzija ovog dokumenta. Odaberite opcije koje vam najbolje odgovaraju.", - "New": "Novi", - "Upd": "Upd", - "NewExplanation": "Stvoreno u posljednja dva tjedna.", - "UpdatedExplanation": "Ažurirano u posljednja dva tjedna.", - "Volo.Docs.Domain:010002": "Nadimak {ShortName} već postoji.", - "Preview": "Pretpregled", - "Search": "Pretraga", - "SearchResults": "Rezultati pretrage" - } -} + "culture": "hr", + "texts": { + "Documents": "Dokumenti", + "BackToWebsite": "Povratak na web stranicu", + "Contributors": "Suradnici", + "ShareOn": "Podijeli na", + "Version": "Verzija", + "Edit": "Uredi", + "LastEditTime": "Zadnje uređivanje", + "Delete": "Izbrisati", + "ClearCache": "Očisti predmemoriju", + "ClearCacheConfirmationMessage": "Jeste li sigurni da želite izbrisati sve iz predmemorije za projekt \"{0}\"", + "ReIndexAllProjects": "Ponovno indeksirajte sve projekte", + "ReIndexProject": "Ponovno indeksiranje projekta", + "ReIndexProjectConfirmationMessage": "Jeste li sigurni da ponovno indeksirate za projekt \"{0}\"", + "SuccessfullyReIndexProject": "Uspješno ponovno indeksirano:\"{0}\"", + "ReIndexAllProjectConfirmationMessage": "Jeste li sigurni da ćete ponovno indeksirati sve projekte?", + "SuccessfullyReIndexAllProject": "Uspješno reindeksirani svi projekti", + "InThisDocument": "U ovom dokumentu", + "GoToTop": "Idi na vrh", + "Projects": "Projekti", + "NoProjectWarning": "Još nema projekata!", + "DocumentNotFound": "Ups, traženi dokument nije pronađen!", + "ProjectNotFound": "Ups, traženi projekt nije pronađen!", + "NavigationDocumentNotFound": "Ova verzija nema navigacijski dokument!", + "DocumentNotFoundInSelectedLanguage": "Dokument na željenom jeziku nije pronađen. Prikazuje se dokument na zadanom jeziku.", + "FilterTopics": "Filtrirajte teme", + "FullSearch": "Traži u dokumentima", + "Volo.Docs.Domain:010001": "Elastic search nije omogućen.", + "MultipleVersionDocumentInfo": "Postoji više verzija ovog dokumenta. Odaberite opcije koje vam najbolje odgovaraju.", + "New": "Novi", + "Upd": "Upd", + "NewExplanation": "Stvoreno u posljednja dva tjedna.", + "UpdatedExplanation": "Ažurirano u posljednja dva tjedna.", + "Volo.Docs.Domain:010002": "Nadimak {ShortName} već postoji.", + "Preview": "Pretpregled", + "Search": "Pretraga", + "SearchResults": "Rezultati pretrage", + "SearchInTheAllDocuments": "Traži u svim dokumentima" + } +} \ No newline at end of file diff --git a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/hu.json b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/hu.json index 3b7667f1a0..1230a1d83f 100644 --- a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/hu.json +++ b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/hu.json @@ -36,6 +36,7 @@ "Volo.Docs.Domain:010002": "Rövid név {ShortName} már létezik.", "Preview": "előnézet", "Search": "Keresés", - "SearchResults": "Keresési eredmények" + "SearchResults": "Keresési eredmények", + "SearchInTheAllDocuments": "Keressen az összes dokumentumban" } } \ No newline at end of file diff --git a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/is.json b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/is.json index 099c34d7d3..7fb3f7d688 100644 --- a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/is.json +++ b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/is.json @@ -36,6 +36,7 @@ "Volo.Docs.Domain:010002": "Skammnefni {ShortName} er þegar til. “", "Preview": "forskoðun", "Search": "Leit", - "SearchResults": "Leitar niðurstöður" + "SearchResults": "Leitar niðurstöður", + "SearchInTheAllDocuments": "Leitaðu í öllum skjölum" } } \ No newline at end of file diff --git a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/it.json b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/it.json index 333eedb201..5b3608c069 100644 --- a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/it.json +++ b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/it.json @@ -36,6 +36,7 @@ "Volo.Docs.Domain:010002": "Abbreviazione {ShortName} esiste già.", "Preview": "anteprima", "Search": "Ricerca", - "SearchResults": "Risultati della ricerca" + "SearchResults": "Risultati della ricerca", + "SearchInTheAllDocuments": "Cerca in tutti i documenti" } } \ No newline at end of file diff --git a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/nl.json b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/nl.json index ab3f1f85e0..b608e3d634 100644 --- a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/nl.json +++ b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/nl.json @@ -36,6 +36,7 @@ "Volo.Docs.Domain:010002": "KorteNaam {ShortName} bestaat al.", "Preview": "voorbeeld", "Search": "Zoeken", - "SearchResults": "Zoekresultaten" + "SearchResults": "Zoekresultaten", + "SearchInTheAllDocuments": "Zoek in alle documenten" } } \ No newline at end of file diff --git a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/pl-PL.json b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/pl-PL.json index 08437dbe66..24b805b5f9 100644 --- a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/pl-PL.json +++ b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/pl-PL.json @@ -36,6 +36,7 @@ "Volo.Docs.Domain:010002": "ShortName {ShortName} już istnieje.", "Preview": "zapowiedź", "Search": "Szukaj", - "SearchResults": "Wyniki wyszukiwania" + "SearchResults": "Wyniki wyszukiwania", + "SearchInTheAllDocuments": "Szukaj we wszystkich dokumentach" } } \ No newline at end of file diff --git a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/pt-BR.json b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/pt-BR.json index ec0e91eb56..d993fa15fb 100644 --- a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/pt-BR.json +++ b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/pt-BR.json @@ -36,6 +36,7 @@ "Volo.Docs.Domain:010002": "Nome curto {ShortName} já existe.", "Preview": "Previsualizar", "Search": "Procurar", - "SearchResults": "Procurar Resultados" + "SearchResults": "Procurar Resultados", + "SearchInTheAllDocuments": "Pesquise em todos os documentos" } } \ No newline at end of file diff --git a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/ro-RO.json b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/ro-RO.json index f884fd0e7a..6d0e108d6d 100644 --- a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/ro-RO.json +++ b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/ro-RO.json @@ -36,6 +36,7 @@ "Volo.Docs.Domain:010002": "Numele pe scurt {ShortName} există deja.", "Preview": "previzualizare", "Search": "Caută", - "SearchResults": "Rezultatele căutării" + "SearchResults": "Rezultatele căutării", + "SearchInTheAllDocuments": "Căutați în toate documentele" } } \ No newline at end of file diff --git a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/ru.json b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/ru.json index a2c7282210..46a00dde86 100644 --- a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/ru.json +++ b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/ru.json @@ -36,6 +36,7 @@ "Volo.Docs.Domain:010002": "ShortName {ShortName} уже существует.", "Preview": "предварительный просмотр", "Search": "Поиск", - "SearchResults": "результаты поиска" + "SearchResults": "результаты поиска", + "SearchInTheAllDocuments": "Искать во всех документах" } } \ No newline at end of file diff --git a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/sk.json b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/sk.json index fd0045dc43..f9b976ee6b 100644 --- a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/sk.json +++ b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/sk.json @@ -36,6 +36,7 @@ "Volo.Docs.Domain:010002": "ShortName {ShortName} už existuje.", "Preview": "náhľad", "Search": "Vyhľadať", - "SearchResults": "Výsledky vyhľadávania" + "SearchResults": "Výsledky vyhľadávania", + "SearchInTheAllDocuments": "Vyhľadajte vo všetkých dokumentoch" } } \ No newline at end of file diff --git a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/sl.json b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/sl.json index a5a6caf0b7..42f399a243 100644 --- a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/sl.json +++ b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/sl.json @@ -36,6 +36,7 @@ "Volo.Docs.Domain:010002": "ShortName {ShortName} že obstaja.", "Preview": "predogled", "Search": "Iskanje", - "SearchResults": "Rezultati iskanja" + "SearchResults": "Rezultati iskanja", + "SearchInTheAllDocuments": "Poiščite v vseh dokumentih" } } \ No newline at end of file diff --git a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/vi.json b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/vi.json index 0155edac2e..b92c9fe68c 100644 --- a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/vi.json +++ b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/vi.json @@ -36,6 +36,7 @@ "Volo.Docs.Domain:010002": "Tên miền ngắn {ShortName} đã tồn tại.", "Preview": "xem trước", "Search": "Tìm kiếm", - "SearchResults": "kết quả tìm kiếm" + "SearchResults": "kết quả tìm kiếm", + "SearchInTheAllDocuments": "Tìm kiếm trong tất cả các tài liệu" } } \ No newline at end of file diff --git a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/zh-Hant.json b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/zh-Hant.json index 026505be1f..57f0efbecf 100644 --- a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/zh-Hant.json +++ b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/zh-Hant.json @@ -36,6 +36,7 @@ "Volo.Docs.Domain:010002": "簡稱 {ShortName} 已經存在.", "Preview": "預覽", "Search": "搜索", - "SearchResults": "搜索結果" + "SearchResults": "搜索結果", + "SearchInTheAllDocuments": "在所有文件中搜尋" } } \ No newline at end of file diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/ar.json b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/ar.json index e20d962f9e..f7f95fd13d 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/ar.json +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/ar.json @@ -4,9 +4,14 @@ "Features": "المميزات", "NoFeatureFoundMessage": "لا توجد أي ميزة متاحة.", "ManageHostFeatures": "إدارة ميزات المضيف", + "ManageHostFeaturesText": "يمكنك إدارة ميزات الجانب المضيف من خلال النقر على الزر التالي.", "Permission:FeatureManagement": "إدارة الميزات", "Permission:FeatureManagement.ManageHostFeatures": "إدارة ميزات المضيف", "Volo.Abp.FeatureManagement:InvalidFeatureValue": "{0} قيمة الميزة غير صالحة!", - "Menu:FeatureManagement": "إدارة الميزات" + "Menu:FeatureManagement": "إدارة الميزات", + "ResetToDefault": "إعادة تعيين إلى الافتراضي", + "ResetedToDefault": "تمت إعادة التعيين إلى الوضع الافتراضي", + "AreYouSure": "هل أنت متأكد؟", + "AreYouSureToResetToDefault": "هل أنت متأكد من إعادة التعيين إلى الوضع الافتراضي؟" } } \ No newline at end of file diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/cs.json b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/cs.json index 2320d662bd..148066d769 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/cs.json +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/cs.json @@ -4,9 +4,14 @@ "Features": "Funkce", "NoFeatureFoundMessage": "Nejsou zde dostupné žádné funkce.", "ManageHostFeatures": "Správa funkcí hostitele", + "ManageHostFeaturesText": "Funkce na straně hostitele můžete spravovat kliknutím na následující tlačítko.", "Permission:FeatureManagement": "Správa funkcí", "Permission:FeatureManagement.ManageHostFeatures": "Správa funkcí hostitele", "Volo.Abp.FeatureManagement:InvalidFeatureValue": "Hodnota funkce {0} není platná!", - "Menu:FeatureManagement": "Správa Funkcí" + "Menu:FeatureManagement": "Správa Funkcí", + "ResetToDefault": "Obnovit do základního nastavení", + "ResetedToDefault": "Obnoveno na výchozí", + "AreYouSure": "Jsi si jistá?", + "AreYouSureToResetToDefault": "Opravdu chcete obnovit výchozí nastavení?" } } \ No newline at end of file diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/de.json b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/de.json index d062400255..9a9a5b2338 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/de.json +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/de.json @@ -3,7 +3,15 @@ "texts": { "Features": "Funktionen", "NoFeatureFoundMessage": "Es ist keine Funktion verfügbar.", - "Volo.Abp.FeatureManagement:InvalidFeatureValue" : "Der {0} -Feature-Wert ist ungültig!", - "Menu:FeatureManagement": "Feature Verwaltung" + "ManageHostFeatures": "Hostfunktionen verwalten", + "ManageHostFeaturesText": "Sie können die hostseitigen Funktionen verwalten, indem Sie auf die folgende Schaltfläche klicken.", + "Permission:FeatureManagement": "Funktionsverwaltung", + "Permission:FeatureManagement.ManageHostFeatures": "Hostfunktionen verwalten", + "Volo.Abp.FeatureManagement:InvalidFeatureValue": "Der {0} -Feature-Wert ist ungültig!", + "Menu:FeatureManagement": "Feature Verwaltung", + "ResetToDefault": "Zurücksetzen", + "ResetedToDefault": "Auf Standard zurückgesetzt", + "AreYouSure": "Bist du sicher?", + "AreYouSureToResetToDefault": "Sind Sie sicher, dass Sie die Standardeinstellungen wiederherstellen möchten?" } -} +} \ No newline at end of file diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/en.json b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/en.json index 9ee58766c6..510781db78 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/en.json +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/en.json @@ -3,12 +3,12 @@ "texts": { "Features": "Features", "NoFeatureFoundMessage": "There isn't any available feature.", - "ManageHostFeatures": "Manage Host features", + "ManageHostFeatures": "Manage host features", "ManageHostFeaturesText": "You can manage the host side features by clicking the following button.", "Permission:FeatureManagement": "Feature management", - "Permission:FeatureManagement.ManageHostFeatures": "Manage Host features", + "Permission:FeatureManagement.ManageHostFeatures": "Manage host features", "Volo.Abp.FeatureManagement:InvalidFeatureValue": "{0} feature value is not valid!", - "Menu:FeatureManagement": "Feature Management", + "Menu:FeatureManagement": "Feature management", "ResetToDefault": "Reset to default", "ResetedToDefault": "Reseted to default", "AreYouSure": "Are you sure?", diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/es.json b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/es.json index 7b8785009a..bb0e807be1 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/es.json +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/es.json @@ -4,9 +4,14 @@ "Features": "Características", "NoFeatureFoundMessage": "No hay ninguna característica disponible.", "ManageHostFeatures": "Administrar funciones de host", + "ManageHostFeaturesText": "Puede administrar las funciones del lado del host haciendo clic en el siguiente botón.", "Permission:FeatureManagement": "Gestión de características", "Permission:FeatureManagement.ManageHostFeatures": "Gestionar características del Host", "Volo.Abp.FeatureManagement:InvalidFeatureValue": "{0} valor de característica no es valido!", - "Menu:FeatureManagement": "Gestión de características" + "Menu:FeatureManagement": "Gestión de características", + "ResetToDefault": "Restablecen a los predeterminados", + "ResetedToDefault": "Restablecido a los valores predeterminados", + "AreYouSure": "¿Está seguro?", + "AreYouSureToResetToDefault": "¿Estás seguro de restablecer los valores predeterminados?" } } \ No newline at end of file diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/fr.json b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/fr.json index 05d6876761..3abe19289a 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/fr.json +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/fr.json @@ -1,12 +1,17 @@ { - "culture": "fr", - "texts": { - "Features": "Fonctionnalités", - "NoFeatureFoundMessage": "Il n'y a aucune fonctionnalité disponible.", - "ManageHostFeatures": "Gérer les fonctionnalités de l’hôte", - "Permission:FeatureManagement": "Gestion des fonctionnalités", - "Permission:FeatureManagement.ManageHostFeatures": "Gérer les fonctionnalités de l'hôte", - "Volo.Abp.FeatureManagement:InvalidFeatureValue": "La valeur de la fonctionnalité {0} n'est pas valide!", - "Menu:FeatureManagement": "Gestion des fonctionnalités" - } + "culture": "fr", + "texts": { + "Features": "Fonctionnalités", + "NoFeatureFoundMessage": "Il n'y a aucune fonctionnalité disponible.", + "ManageHostFeatures": "Gérer les fonctionnalités de l’hôte", + "ManageHostFeaturesText": "Vous pouvez gérer les fonctionnalités côté hôte en cliquant sur le bouton suivant.", + "Permission:FeatureManagement": "Gestion des fonctionnalités", + "Permission:FeatureManagement.ManageHostFeatures": "Gérer les fonctionnalités de l'hôte", + "Volo.Abp.FeatureManagement:InvalidFeatureValue": "La valeur de la fonctionnalité {0} n'est pas valide!", + "Menu:FeatureManagement": "Gestion des fonctionnalités", + "ResetToDefault": "Réinitialiser aux valeurs par défaut", + "ResetedToDefault": "Réinitialisé aux valeurs par défaut", + "AreYouSure": "Es-tu sûr?", + "AreYouSureToResetToDefault": "Etes-vous sûr d'avoir réinitialisé les paramètres par défaut ?" + } } \ No newline at end of file diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/hi.json b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/hi.json index 59f6dbb361..617ffed541 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/hi.json +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/hi.json @@ -4,9 +4,14 @@ "Features": "विशेषताएं", "NoFeatureFoundMessage": "कोई भी उपलब्ध सुविधा नहीं है।", "ManageHostFeatures": "होस्ट सुविधाएँ प्रबंधित करें", + "ManageHostFeaturesText": "आप निम्न बटन पर क्लिक करके होस्ट साइड सुविधाओं को प्रबंधित कर सकते हैं।", "Permission:FeatureManagement": "सुविधा प्रबंधन", "Permission:FeatureManagement.ManageHostFeatures": "होस्ट सुविधाएँ प्रबंधित करें", "Volo.Abp.FeatureManagement:InvalidFeatureValue": "{0} सुविधा मान मान्य नहीं है!", - "Menu:FeatureManagement": "फ़ीचर प्रबंधन" + "Menu:FeatureManagement": "फ़ीचर प्रबंधन", + "ResetToDefault": "वितथ पर ले जाएं", + "ResetedToDefault": "डिफ़ॉल्ट पर रीसेट किया गया", + "AreYouSure": "क्या आपको यकीन है?", + "AreYouSureToResetToDefault": "क्या आप निश्चित रूप से डिफ़ॉल्ट पर रीसेट हो गए हैं?" } } \ No newline at end of file diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/hr.json b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/hr.json index d54797121b..316becb968 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/hr.json +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/hr.json @@ -1,15 +1,17 @@ { - "culture": "hr", - "texts": { - "Features": "Značajke", - "NoFeatureFoundMessage": "Ne postoji nijedna dostupna značajka.", - "ManageHostFeatures": "Upravljanje značajkama domaćina", - "Permission:FeatureManagement": "Upravljanje značajkama", - "Permission:FeatureManagement.ManageHostFeatures": "Upravljanje značajkama domaćina", - "Volo.Abp.FeatureManagement:InvalidFeatureValue": "Vrijednost značajke {0} nije važeća!", - "Menu:FeatureManagement": "Upravljanje značajkama", - "ResetToDefault": "Vrati na zadano", - "ResetedToDefault": "Vraćeno na zadano", - "AreYouSureToResetToDefault": "Jeste li sigurni da želite vratiti na zadane postavke?" - } -} + "culture": "hr", + "texts": { + "Features": "Značajke", + "NoFeatureFoundMessage": "Ne postoji nijedna dostupna značajka.", + "ManageHostFeatures": "Upravljanje značajkama domaćina", + "ManageHostFeaturesText": "Možete upravljati značajkama strane domaćina klikom na sljedeći gumb.", + "Permission:FeatureManagement": "Upravljanje značajkama", + "Permission:FeatureManagement.ManageHostFeatures": "Upravljanje značajkama domaćina", + "Volo.Abp.FeatureManagement:InvalidFeatureValue": "Vrijednost značajke {0} nije važeća!", + "Menu:FeatureManagement": "Upravljanje značajkama", + "ResetToDefault": "Vrati na zadano", + "ResetedToDefault": "Vraćeno na zadano", + "AreYouSure": "Jesi li siguran?", + "AreYouSureToResetToDefault": "Jeste li sigurni da želite vratiti na zadane postavke?" + } +} \ No newline at end of file diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/hu.json b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/hu.json index e829bcab8a..1a3ceb5fed 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/hu.json +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/hu.json @@ -4,9 +4,14 @@ "Features": "Funkciók", "NoFeatureFoundMessage": "Nincs elérhető funkció.", "ManageHostFeatures": "Host funkciók kezelése", + "ManageHostFeaturesText": "A gazdaoldali funkciókat a következő gombra kattintva kezelheti.", "Permission:FeatureManagement": "Funkciókezelés", "Permission:FeatureManagement.ManageHostFeatures": "Host funkciók kezelése", "Volo.Abp.FeatureManagement:InvalidFeatureValue": "A (z) {0} szolgáltatás értéke érvénytelen!", - "Menu:FeatureManagement": "Funkciókezelés" + "Menu:FeatureManagement": "Funkciókezelés", + "ResetToDefault": "Visszaállítás alapértelmezettre", + "ResetedToDefault": "Visszaállítva alapértelmezettre", + "AreYouSure": "biztos vagy ebben?", + "AreYouSureToResetToDefault": "Biztosan visszaállítod az alapértelmezést?" } } \ No newline at end of file diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/is.json b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/is.json index 35a25f140a..581bea5aa2 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/is.json +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/is.json @@ -4,9 +4,14 @@ "Features": "Eiginleikar", "NoFeatureFoundMessage": "Enginn eiginleiki í boði.", "ManageHostFeatures": "Stjórna Gestgjafa Eiginleikum", + "ManageHostFeaturesText": "Þú getur stjórnað hýsingareiginleikum með því að smella á eftirfarandi hnapp.", "Permission:FeatureManagement": "Eiginleika stjórnun", "Permission:FeatureManagement.ManageHostFeatures": "Stjórna Gestgjafa Eiginleikum", "Volo.Abp.FeatureManagement:InvalidFeatureValue": "eiginleikagildið {0} er ekki gilt", - "Menu:FeatureManagement": "Eiginleikastjórnun" + "Menu:FeatureManagement": "Eiginleikastjórnun", + "ResetToDefault": "Endurstilla í sjálfgefið", + "ResetedToDefault": "Núllstillt í sjálfgefið", + "AreYouSure": "Ertu viss?", + "AreYouSureToResetToDefault": "Ertu viss um að núllstilla á sjálfgefið?" } } \ No newline at end of file diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/it.json b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/it.json index 0814cea372..19feb848cd 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/it.json +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/it.json @@ -4,9 +4,14 @@ "Features": "Funzionalità", "NoFeatureFoundMessage": "Non ci sono funzioni disponibili.", "ManageHostFeatures": "Gestisci le funzionalità dell'host", + "ManageHostFeaturesText": "È possibile gestire le funzionalità lato host facendo clic sul pulsante seguente.", "Permission:FeatureManagement": "Gestione funzionalità", "Permission:FeatureManagement.ManageHostFeatures": "Gestisci le funzionalità dell'host", "Volo.Abp.FeatureManagement:InvalidFeatureValue": "Il valore dell'elemento {0} non è valido!", - "Menu:FeatureManagement": "Gestione delle funzionalità" + "Menu:FeatureManagement": "Gestione delle funzionalità", + "ResetToDefault": "Riportare alle condizioni originali", + "ResetedToDefault": "Ripristinato alle impostazioni predefinite", + "AreYouSure": "Sei sicuro?", + "AreYouSureToResetToDefault": "Sei sicuro di ripristinare le impostazioni predefinite?" } -} +} \ No newline at end of file diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/nl.json b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/nl.json index dd311bf8eb..cb7643ca78 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/nl.json +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/nl.json @@ -4,9 +4,14 @@ "Features": "Functies", "NoFeatureFoundMessage": "Er is geen functie beschikbaar.", "ManageHostFeatures": "Beheer host functies", + "ManageHostFeaturesText": "U kunt de functies aan de hostzijde beheren door op de volgende knop te klikken.", "Permission:FeatureManagement": "Functiebeheer", "Permission:FeatureManagement.ManageHostFeatures": "Beheer host functies", "Volo.Abp.FeatureManagement:InvalidFeatureValue": "{0} functie-waarde is niet geldig!", - "Menu:FeatureManagement": "Functiebeheer" + "Menu:FeatureManagement": "Functiebeheer", + "ResetToDefault": "Resetten naar standaard", + "ResetedToDefault": "Gereset naar standaard", + "AreYouSure": "Weet je het zeker?", + "AreYouSureToResetToDefault": "Weet je zeker dat je de standaardinstellingen wilt herstellen?" } } \ No newline at end of file diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/pl-PL.json b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/pl-PL.json index 02f152f76b..cfc411b938 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/pl-PL.json +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/pl-PL.json @@ -4,9 +4,14 @@ "Features": "Funkcje", "NoFeatureFoundMessage": "Brak dostępnej funkcji.", "ManageHostFeatures": "Zarządzaj funkcjami hosta", + "ManageHostFeaturesText": "Możesz zarządzać funkcjami po stronie hosta, klikając poniższy przycisk.", "Permission:FeatureManagement": "Zarządzanie funkcjami", "Permission:FeatureManagement.ManageHostFeatures": "Zarządzaj funkcjami hosta", "Volo.Abp.FeatureManagement:InvalidFeatureValue": "{0} wartość funkcji jest nieprawidłowa!", - "Menu:FeatureManagement": "Zarządzanie funkcjami" + "Menu:FeatureManagement": "Zarządzanie funkcjami", + "ResetToDefault": "Przywróć ustawienia domyślne", + "ResetedToDefault": "Zresetowano do ustawień domyślnych", + "AreYouSure": "Jesteś pewny?", + "AreYouSureToResetToDefault": "Czy na pewno chcesz przywrócić ustawienia domyślne?" } } \ No newline at end of file diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/pt-BR.json b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/pt-BR.json index 6dedc81c9c..25d1040866 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/pt-BR.json +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/pt-BR.json @@ -4,9 +4,14 @@ "Features": "Funcionalidades", "NoFeatureFoundMessage": "Não há nenhuma funcionalidade disponivel.", "ManageHostFeatures": "Gerenciar recursos do Host", + "ManageHostFeaturesText": "Você pode gerenciar os recursos do host clicando no botão a seguir.", "Permission:FeatureManagement": "Gerenciamento de recursos", "Permission:FeatureManagement.ManageHostFeatures": "Gerenciar recursos do Host", "Volo.Abp.FeatureManagement:InvalidFeatureValue": "O valor do recurso {0} não é válido!", - "Menu:FeatureManagement": "Gerenciamento de recursos" + "Menu:FeatureManagement": "Gerenciamento de recursos", + "ResetToDefault": "Restaurar ao padrão", + "ResetedToDefault": "Redefinido para o padrão", + "AreYouSure": "Tem certeza?", + "AreYouSureToResetToDefault": "Tem certeza de redefinir para o padrão?" } } \ No newline at end of file diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/ro-RO.json b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/ro-RO.json index 6c04208a4b..9d7d78150c 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/ro-RO.json +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/ro-RO.json @@ -4,9 +4,14 @@ "Features": "Caracteristici", "NoFeatureFoundMessage": "Nu există nicio caracteristică disponibilă.", "ManageHostFeatures": "Administraţi caracteristicile de host", + "ManageHostFeaturesText": "Puteți gestiona funcțiile din partea gazdă făcând clic pe următorul buton.", "Permission:FeatureManagement": "Administrare caracteristici", "Permission:FeatureManagement.ManageHostFeatures": "Gestionare caracteristici gazdă", - "Volo.Abp.FeatureManagement:InvalidFeatureValue" : "Valoarea {0} a caracteristicii nu este validă!", - "Menu:FeatureManagement": "Managementul caracteristicilor" + "Volo.Abp.FeatureManagement:InvalidFeatureValue": "Valoarea {0} a caracteristicii nu este validă!", + "Menu:FeatureManagement": "Managementul caracteristicilor", + "ResetToDefault": "Resetare la valorile implicite", + "ResetedToDefault": "Resetat la implicit", + "AreYouSure": "Esti sigur?", + "AreYouSureToResetToDefault": "Sunteți sigur că veți reveni la valorile implicite?" } } \ No newline at end of file diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/ru.json b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/ru.json index b4258e484d..12627bd10f 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/ru.json +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/ru.json @@ -4,9 +4,14 @@ "Features": "Функциональные возможности", "NoFeatureFoundMessage": "Нет доступных функциональных возможностей.", "ManageHostFeatures": "Управление функциями хоста", + "ManageHostFeaturesText": "Вы можете управлять функциями хоста, нажав следующую кнопку.", "Permission:FeatureManagement": "Управление функциями", "Permission:FeatureManagement.ManageHostFeatures": "Управление функциями хоста", "Volo.Abp.FeatureManagement:InvalidFeatureValue": "Недопустимое значение функции {0}!", - "Menu:FeatureManagement": "Управление функциями" + "Menu:FeatureManagement": "Управление функциями", + "ResetToDefault": "Восстановление значений по умолчанию", + "ResetedToDefault": "Сброс по умолчанию", + "AreYouSure": "Вы уверены?", + "AreYouSureToResetToDefault": "Вы уверены, что сбросите настройки по умолчанию?" } } \ No newline at end of file diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/sk.json b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/sk.json index 703ed344ca..2d0d8fa5d6 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/sk.json +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/sk.json @@ -4,9 +4,14 @@ "Features": "Funkcie", "NoFeatureFoundMessage": "Nie je k dispozícii žiadna funkcia.", "ManageHostFeatures": "Spravovať funkcie poskytovateľa", + "ManageHostFeaturesText": "Funkcie na strane hostiteľa môžete spravovať kliknutím na nasledujúce tlačidlo.", "Permission:FeatureManagement": "Správa funkcií", "Permission:FeatureManagement.ManageHostFeatures": "Správa funkcií poskytovateľa", "Volo.Abp.FeatureManagement:InvalidFeatureValue": "Hodnota funkcie {0} nie je platná!", - "Menu:FeatureManagement": "Správa funkcií" + "Menu:FeatureManagement": "Správa funkcií", + "ResetToDefault": "Obnoviť pôvodné nastavenia", + "ResetedToDefault": "Obnovené na predvolené", + "AreYouSure": "Si si istý?", + "AreYouSureToResetToDefault": "Naozaj chcete obnoviť predvolené nastavenia?" } } \ No newline at end of file diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/sl.json b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/sl.json index 7ae13853b9..d99f053a83 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/sl.json +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/sl.json @@ -4,9 +4,14 @@ "Features": "Funkcionalnosti", "NoFeatureFoundMessage": "Na voljo ni nobene funkcionalnosti.", "ManageHostFeatures": "Upravljajte funkcije gostitelja", + "ManageHostFeaturesText": "Funkcije gostiteljske strani lahko upravljate s klikom na naslednji gumb.", "Permission:FeatureManagement": "Upravljanje funkcij", "Permission:FeatureManagement.ManageHostFeatures": "Upravljajte funkcije gostitelja", "Volo.Abp.FeatureManagement:InvalidFeatureValue": "Vrednost funkcije {0} ni veljavna!", - "Menu:FeatureManagement": "Upravljanje funkcij" + "Menu:FeatureManagement": "Upravljanje funkcij", + "ResetToDefault": "Ponastavi na privzeto", + "ResetedToDefault": "Ponastavljeno na privzeto", + "AreYouSure": "Ali si prepričan?", + "AreYouSureToResetToDefault": "Ali ste prepričani, da želite ponastaviti na privzeto?" } } \ No newline at end of file diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/vi.json b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/vi.json index 45dbce701d..c1d5d13b6a 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/vi.json +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/vi.json @@ -4,9 +4,14 @@ "Features": "Tính năng", "NoFeatureFoundMessage": "Không có bất kỳ tính năng khả dụng nào.", "ManageHostFeatures": "Quản lý các tính năng của Máy chủ lưu trữ", + "ManageHostFeaturesText": "Bạn có thể quản lý các tính năng phía máy chủ bằng cách nhấp vào nút sau.", "Permission:FeatureManagement": "Quản lý tính năng", "Permission:FeatureManagement.ManageHostFeatures": "Quản lý các tính năng của Máy chủ lưu trữ", "Volo.Abp.FeatureManagement:InvalidFeatureValue": "Giá trị tính năng {0} không hợp lệ!", - "Menu:FeatureManagement": "Quản lý tính năng" + "Menu:FeatureManagement": "Quản lý tính năng", + "ResetToDefault": "Đặt lại về mặc định", + "ResetedToDefault": "Đã đặt lại về mặc định", + "AreYouSure": "Bạn có chắc không?", + "AreYouSureToResetToDefault": "Bạn có chắc chắn đặt lại về mặc định không?" } } \ No newline at end of file diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/zh-Hant.json b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/zh-Hant.json index 99e2d622df..7e4bfecba3 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/zh-Hant.json +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/zh-Hant.json @@ -4,12 +4,14 @@ "Features": "功能", "NoFeatureFoundMessage": "沒有可用的功能.", "ManageHostFeatures": "管理Host功能", + "ManageHostFeaturesText": "您可以透過點擊以下按鈕來管理主機端功能。", "Permission:FeatureManagement": "功能管理", "Permission:FeatureManagement.ManageHostFeatures": "管理Host功能", "Volo.Abp.FeatureManagement:InvalidFeatureValue": "{0}功能的值無效!", "Menu:FeatureManagement": "功能管理", "ResetToDefault": "重置為預設值", "ResetedToDefault": "已重置為預設值", + "AreYouSure": "你確定嗎?", "AreYouSureToResetToDefault": "是否確定重置為預設值?" } } \ No newline at end of file diff --git a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/ar.json b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/ar.json index fa341ef779..2917af3a49 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/ar.json +++ b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/ar.json @@ -117,6 +117,13 @@ "Description:Abp.Identity.SignIn.EnablePhoneNumberConfirmation": "ما إذا كان بإمكان المستخدم تأكيد رقم الهاتف.", "Description:Abp.Identity.SignIn.RequireConfirmedPhoneNumber": "ما إذا كان رقم الهاتف المؤكد مطلوبًا لتسجيل الدخول.", "Description:Abp.Identity.User.IsUserNameUpdateEnabled": "ما إذا كان يمكن تحديث اسم المستخدم بواسطة المستخدم.", - "Description:Abp.Identity.User.IsEmailUpdateEnabled": "ما إذا كان يمكن تحديث البريد الإلكتروني من قبل المستخدم." + "Description:Abp.Identity.User.IsEmailUpdateEnabled": "ما إذا كان يمكن تحديث البريد الإلكتروني من قبل المستخدم.", + "Details": "تفاصيل", + "CreatedBy": "انشأ من قبل", + "ModifiedBy": "تم التعديل بواسطة", + "ModificationTime": "وقت التعديل", + "PasswordUpdateTime": "وقت تحديث كلمة المرور", + "LockoutEndTime": "وقت انتهاء القفل", + "FailedAccessCount": "فشل عدد الوصول" } -} +} \ No newline at end of file diff --git a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/cs.json b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/cs.json index 97279fd294..16d28f2d7c 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/cs.json +++ b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/cs.json @@ -109,7 +109,7 @@ "Description:Abp.Identity.Password.RequireUppercase": "Pokud hesla musí obsahovat ASCII znak velkých písmen.", "Description:Abp.Identity.Password.RequireDigit": "Pokud hesla musí obsahovat číslici.", "Description:Abp.Identity.Password.ForceUsersToPeriodicallyChangePassword": "Zda musí uživatelé pravidelně měnit heslo.", - "Description:Abp.Identity.Password.PasswordChangePeriodDays:": "Počet dní, po které je heslo platné. Pokud je nastaveno na 0, heslo nikdy nevyprší.", + "Description:Abp.Identity.Password.PasswordChangePeriodDays": "Počet dní, po které je heslo uživatele platné.", "Description:Abp.Identity.Lockout.AllowedForNewUsers": "Zda může být uzamčen nový uživatel.", "Description:Abp.Identity.Lockout.LockoutDuration": "Doba, po kterou je uživatel zablokován, když dojde k zablokování.", "Description:Abp.Identity.Lockout.MaxFailedAccessAttempts": "Počet neúspěšných pokusů o přístup než je uživatel uzamčen, za předpokladu, že je uzamčení povoleno.", @@ -117,6 +117,13 @@ "Description:Abp.Identity.SignIn.EnablePhoneNumberConfirmation": "Zda telefonní číslo může být potvrzeno uživatelem.", "Description:Abp.Identity.SignIn.RequireConfirmedPhoneNumber": "Zda je pro přihlášení vyžadováno potvrzené telefonní číslo.", "Description:Abp.Identity.User.IsUserNameUpdateEnabled": "Zda může uživatel změnit uživatelské jméno.", - "Description:Abp.Identity.User.IsEmailUpdateEnabled": "Zda může uživatel změnit email." + "Description:Abp.Identity.User.IsEmailUpdateEnabled": "Zda může uživatel změnit email.", + "Details": "Podrobnosti", + "CreatedBy": "Vytvořil", + "ModifiedBy": "Upraven", + "ModificationTime": "Doba úpravy", + "PasswordUpdateTime": "Čas aktualizace hesla", + "LockoutEndTime": "Čas konce uzamčení", + "FailedAccessCount": "Počet neúspěšných přístupů" } -} +} \ No newline at end of file diff --git a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/de.json b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/de.json index a5f13fab31..1863863510 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/de.json +++ b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/de.json @@ -117,6 +117,13 @@ "Description:Abp.Identity.SignIn.EnablePhoneNumberConfirmation": "Gibt an, ob die Telefonnummer vom Benutzer bestätigt werden kann.", "Description:Abp.Identity.SignIn.RequireConfirmedPhoneNumber": "Gibt an, ob eine bestätigte Telefonnummer erforderlich ist, um sich anzumelden.", "Description:Abp.Identity.User.IsUserNameUpdateEnabled": "Gibt an, ob der Benutzername vom Benutzer aktualisiert werden kann.", - "Description:Abp.Identity.User.IsEmailUpdateEnabled": "Gibt an, ob die E-Mail-Adresse vom Benutzer aktualisiert werden kann." + "Description:Abp.Identity.User.IsEmailUpdateEnabled": "Gibt an, ob die E-Mail-Adresse vom Benutzer aktualisiert werden kann.", + "Details": "Einzelheiten", + "CreatedBy": "Erstellt von", + "ModifiedBy": "Angepasst von", + "ModificationTime": "Änderungszeit", + "PasswordUpdateTime": "Zeit der Passwortaktualisierung", + "LockoutEndTime": "Endzeit der Sperrung", + "FailedAccessCount": "Anzahl der fehlgeschlagenen Zugriffe" } -} +} \ No newline at end of file diff --git a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/es.json b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/es.json index 9a1bfc0479..3efb3f7e5e 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/es.json +++ b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/es.json @@ -117,6 +117,13 @@ "Description:Abp.Identity.SignIn.EnablePhoneNumberConfirmation": "Si el número de teléfono puede ser confirmado por el usuario. ", "Description:Abp.Identity.SignIn.RequireConfirmedPhoneNumber": "Sí un número de teléfono confirmado es requerido para iniciar sesión.", "Description:Abp.Identity.User.IsUserNameUpdateEnabled": "Si el nombre de usuario puede ser actualizado por el usuario.", - "Description:Abp.Identity.User.IsEmailUpdateEnabled": "Si el e-mail puede ser actualizado por el usuario." + "Description:Abp.Identity.User.IsEmailUpdateEnabled": "Si el e-mail puede ser actualizado por el usuario.", + "Details": "Detalles", + "CreatedBy": "Creado por", + "ModifiedBy": "Modificado por", + "ModificationTime": "tiempo de modificación", + "PasswordUpdateTime": "Hora de actualización de contraseña", + "LockoutEndTime": "Hora de finalización del bloqueo", + "FailedAccessCount": "Recuento de acceso fallido" } -} +} \ No newline at end of file diff --git a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/fi.json b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/fi.json index 1f14e22b3e..2a1a796ea2 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/fi.json +++ b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/fi.json @@ -117,6 +117,13 @@ "Description:Abp.Identity.SignIn.EnablePhoneNumberConfirmation": "Voiko käyttäjä vahvistaa puhelinnumeron.", "Description:Abp.Identity.SignIn.RequireConfirmedPhoneNumber": "Tarvitaanko sisäänkirjautumisen yhteydessä vahvistettu puhelinnumero.", "Description:Abp.Identity.User.IsUserNameUpdateEnabled": "Voiko käyttäjä päivittää käyttäjänimen?", - "Description:Abp.Identity.User.IsEmailUpdateEnabled": "Voiko käyttäjä päivittää sähköpostin." + "Description:Abp.Identity.User.IsEmailUpdateEnabled": "Voiko käyttäjä päivittää sähköpostin.", + "Details": "Yksityiskohdat", + "CreatedBy": "Luonut", + "ModifiedBy": "Muokannut", + "ModificationTime": "Muutosaika", + "PasswordUpdateTime": "Salasanan päivityksen aika", + "LockoutEndTime": "Lukituksen päättymisaika", + "FailedAccessCount": "Epäonnistuneet käyttöoikeudet" } -} +} \ No newline at end of file diff --git a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/fr.json b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/fr.json index 2099d3036a..ff8822652d 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/fr.json +++ b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/fr.json @@ -117,6 +117,13 @@ "Description:Abp.Identity.SignIn.EnablePhoneNumberConfirmation": "Si le téléphoneNumber peut être confirmé par l’utilisateur.", "Description:Abp.Identity.SignIn.RequireConfirmedPhoneNumber": "Si un numéro de téléphone confirmé est nécessaire pour se connecter.", "Description:Abp.Identity.User.IsUserNameUpdateEnabled": "Si le nom d’utilisateur peut être mis à jour par l’utilisateur.", - "Description:Abp.Identity.User.IsEmailUpdateEnabled": "Si l’e-mail peut être mis à jour par l’utilisateur." + "Description:Abp.Identity.User.IsEmailUpdateEnabled": "Si l’e-mail peut être mis à jour par l’utilisateur.", + "Details": "Détails", + "CreatedBy": "Créé par", + "ModifiedBy": "Modifié par", + "ModificationTime": "Temps de modification", + "PasswordUpdateTime": "Temps de mise à jour du mot de passe", + "LockoutEndTime": "Heure de fin du verrouillage", + "FailedAccessCount": "Nombre d'accès ayant échoué" } -} +} \ No newline at end of file diff --git a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/hi.json b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/hi.json index 3a7c2bc759..4d86fbc5f2 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/hi.json +++ b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/hi.json @@ -117,6 +117,13 @@ "Description:Abp.Identity.SignIn.EnablePhoneNumberConfirmation": "क्या उपयोगकर्ता द्वारा फोननंबर की पुष्टि की जा सकती है।", "Description:Abp.Identity.SignIn.RequireConfirmedPhoneNumber": "साइन इन करने के लिए एक पुष्टिकरण टेलीफोन नंबर की आवश्यकता है या नहीं।", "Description:Abp.Identity.User.IsUserNameUpdateEnabled": "उपयोगकर्ता द्वारा उपयोगकर्ता नाम अपडेट किया जा सकता है या नहीं।", - "Description:Abp.Identity.User.IsEmailUpdateEnabled": "क्या उपयोगकर्ता द्वारा ईमेल को अपडेट किया जा सकता है।" + "Description:Abp.Identity.User.IsEmailUpdateEnabled": "क्या उपयोगकर्ता द्वारा ईमेल को अपडेट किया जा सकता है।", + "Details": "विवरण", + "CreatedBy": "के द्वारा बनाई गई", + "ModifiedBy": "द्वारा संशोधित", + "ModificationTime": "संशोधन का समय", + "PasswordUpdateTime": "पासवर्ड अद्यतन समय", + "LockoutEndTime": "तालाबंदी समाप्ति समय", + "FailedAccessCount": "विफल पहुंच गणना" } -} +} \ No newline at end of file diff --git a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/hr.json b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/hr.json index b688debe53..bc46e89157 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/hr.json +++ b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/hr.json @@ -1,122 +1,129 @@ { - "culture": "hr", - "texts": { - "Menu:IdentityManagement": "Upravljanje identitetom", - "Users": "Users", - "NewUser": "Novi korisnik", - "UserName": "Korisničko ime", - "Surname": "Prezime", - "EmailAddress": "Email adresa", - "PhoneNumber": "Broj telefona", - "UserInformations": "Informacije o korisniku", - "DisplayName:IsDefault": "Zadano", - "DisplayName:IsStatic": "Je statično", - "DisplayName:IsPublic": "Je javno", - "Roles": "Uloge", - "Password": "Lozinka", - "PersonalInfo": "Moj profil", - "PersonalSettings": "Osobne postavke", - "UserDeletionConfirmationMessage": "Korisnik '{0}' bit će izbrisan. Potvrđujete li to?", - "RoleDeletionConfirmationMessage": "Uloga '{0}' bit će izbrisana. Potvrđujete li to?", - "DisplayName:RoleName": "Naziv uloge", - "DisplayName:UserName": "Korisničko ime", - "DisplayName:Name": "Ime", - "DisplayName:Surname": "Prezime", - "DisplayName:Password": "Lozinka", - "DisplayName:Email": "Email adresa", - "DisplayName:PhoneNumber": "Broj telefona", - "DisplayName:TwoFactorEnabled": "Two factor verifikacija", - "DisplayName:IsActive": "Aktivan", - "DisplayName:LockoutEnabled": "Zaključaj račun nakon neuspjelih pokušaja prijave", - "NewRole": "Nova uloga", - "RoleName": "Naziv uloge", - "CreationTime": "Vrijeme stvaranja", - "Permissions": "Dozvole", - "DisplayName:CurrentPassword": "Trenutna lozinka", - "DisplayName:NewPassword": "Nova lozinka", - "DisplayName:NewPasswordConfirm": "Potvrdi novu lozinku", - "PasswordChangedMessage": "Vaša lozinka je uspješno promijenjena.", - "PersonalSettingsSavedMessage": "Vaše osobne postavke su uspješno spremljene.", - "Volo.Abp.Identity:DefaultError": "Došlo je do neočekivane greške.", - "Volo.Abp.Identity:ConcurrencyFailure": "Provjera optimisti�ne paralelnosti nije uspjela. Entitet na kojem radite izmijenio je drugi korisnik. Molimo odbacite promjene i pokušajte ponovno.", - "Volo.Abp.Identity:DuplicateEmail": "Email '{0}' je već zauzet.", - "Volo.Abp.Identity:DuplicateRoleName": "Naziv uloge '{0}' već je zauzet.", - "Volo.Abp.Identity:DuplicateUserName": "Korisničko ime '{0}' je već zauzeto.", - "Volo.Abp.Identity:InvalidEmail": "E-pošta '{0}' nije važeća.", - "Volo.Abp.Identity:InvalidPasswordHasherCompatibilityMode": "Navedeni PasswordHasherCompatibilityMode je nevažeći.", - "Volo.Abp.Identity:InvalidPasswordHasherIterationCount": "Broj ponavljanja mora biti pozitivan cijeli broj.", - "Volo.Abp.Identity:InvalidRoleName": "Naziv uloge '{0}' nije valjan.", - "Volo.Abp.Identity:InvalidToken": "Pogrešan token.", - "Volo.Abp.Identity:InvalidUserName": "Korisničko ime '{0}' nije važeće, može sadržavati samo slova ili znamenke.", - "InvalidUserName": "Korisničko ime '{0}' nije važeće.", - "Volo.Abp.Identity:LoginAlreadyAssociated": "Korisnik s ovom prijavom već postoji.", - "Volo.Abp.Identity:PasswordMismatch": "Netočna lozinka.", - "Volo.Abp.Identity:PasswordRequiresDigit": "Lozinke moraju imati najmanje jednu znamenku ('0'-'9').", - "Volo.Abp.Identity:PasswordRequiresLower": "Zaporke moraju imati barem jedno malo slovo ('a'-'z').", - "Volo.Abp.Identity:PasswordRequiresNonAlphanumeric": "Lozinke moraju imati barem jedan znak koji nije alfanumerički.", - "Volo.Abp.Identity:PasswordRequiresUpper": "Lozinke moraju imati barem jedno veliko slovo ('A'-'Z').", - "Volo.Abp.Identity:PasswordTooShort": "Zaporke moraju imati najmanje {0} znakova.", - "Volo.Abp.Identity:PasswordRequiresUniqueChars": "Lozinke ne smiju sadržavati više od {0} uzastopnih jednakih znakova.", - "Volo.Abp.Identity:RoleNotFound": "Uloga {0} ne postoji.", - "Volo.Abp.Identity:UserAlreadyHasPassword": "Korisnik već ima postavljenu lozinku.", - "Volo.Abp.Identity:UserAlreadyInRole": "Korisnik je već u ulozi '{0}'.", - "Volo.Abp.Identity:UserLockedOut": "Korisnik je zaključan.", - "Volo.Abp.Identity:UserLockoutNotEnabled": "Zaključavanje nije omogućeno za ovog korisnika.", - "Volo.Abp.Identity:UserNameNotFound": "Korisnik {0} ne postoji.", - "Volo.Abp.Identity:UserNotInRole": "Korisnik nije u ulozi '{0}'.", - "Volo.Abp.Identity:PasswordConfirmationFailed": "Lozinka ne odgovara lozinci za potvrdu.", - "Volo.Abp.Identity:NullSecurityStamp": "Sigurnosna oznaka korisnika ne može biti nula.", - "Volo.Abp.Identity:RecoveryCodeRedemptionFailed": "Kod oporavka nije moguće iskoristiti.", - "Volo.Abp.Identity:010001": "Ne možete izbrisati vlastiti račun!", - "Volo.Abp.Identity:010002": "Ne možete postaviti više od {MaxUserMembershipCount} organizacijske jedinice za korisnika!", - "Volo.Abp.Identity:010003": "Nije moguće promijeniti lozinku eksterno prijavljenog korisnika!", - "Volo.Abp.Identity:010004": "Već postoji organizacijska jedinica s imenom {0}. Dvije jedinice s istim imenom ne mogu se stvoriti na istoj razini.", - "Volo.Abp.Identity:010005": "Statičke uloge nije moguće preimenovati.", - "Volo.Abp.Identity:010006": "Statičke uloge nije moguće izbrisati.", - "Volo.Abp.Identity:010007": "Ne možete promijeniti postavku dva faktora.", - "Volo.Abp.Identity:010008": "Nije dopušteno mijenjati postavke dvofaktorske autentifikacije.", - "Volo.Abp.Identity:010009": "Ne možete delegirati sami sebi.", - "Identity.OrganizationUnit.MaxUserMembershipCount": "Maksimalni dopušteni broj članstva u organizacijskoj jedinici za korisnika", - "ThisUserIsNotActiveMessage": "Ovaj korisnik nije aktivan.", - "Permission:IdentityManagement": "Upravljanje identitetom", - "Permission:RoleManagement": "Upravljanje ulogama", - "Permission:Create": "Stvoriti", - "Permission:Edit": "Uredi", - "Permission:Delete": "Izbrisati", - "Permission:ChangePermissions": "Promjena dopuštenja", - "Permission:UserManagement": "Upravljanje korisnicima", - "Permission:UserLookup": "Traženje korisnika", - "DisplayName:Abp.Identity.Password.RequiredLength": "Potrebna dužina", - "DisplayName:Abp.Identity.Password.RequiredUniqueChars": "Potreban broj jedinstvenih znakova", - "DisplayName:Abp.Identity.Password.RequireNonAlphanumeric": "Potreban znak koji nije alfanumerički", - "DisplayName:Abp.Identity.Password.RequireLowercase": "Obavezno malo slovo", - "DisplayName:Abp.Identity.Password.RequireUppercase": "Obavezno veliko slovo", - "DisplayName:Abp.Identity.Password.RequireDigit": "Obavezna znamenka", - "DisplayName:Abp.Identity.Password.ForceUsersToPeriodicallyChangePassword": "Prisilite korisnike da periodično mijenjaju lozinku", - "DisplayName:Abp.Identity.Password.PasswordChangePeriodDays": "Period promjene lozinke (dana)", - "DisplayName:Abp.Identity.Lockout.AllowedForNewUsers": "Omogućeno za nove korisnike", - "DisplayName:Abp.Identity.Lockout.LockoutDuration": "Trajanje zaključavanja (sekunde)", - "DisplayName:Abp.Identity.Lockout.MaxFailedAccessAttempts": "Maksimalan broj neuspjelih pokušaja pristupa", - "DisplayName:Abp.Identity.SignIn.RequireConfirmedEmail": "Zahtijeva potvrđenu e-poštu", - "DisplayName:Abp.Identity.SignIn.EnablePhoneNumberConfirmation": "Dopusti korisnicima da potvrde svoj telefonski broj", - "DisplayName:Abp.Identity.SignIn.RequireConfirmedPhoneNumber": "Zahtijeva potvrđen telefonski broj", - "DisplayName:Abp.Identity.User.IsUserNameUpdateEnabled": "Dopusti korisnicima promjenu korisničkih imena", - "DisplayName:Abp.Identity.User.IsEmailUpdateEnabled": "Dopustite korisnicima da mijenjaju svoje adrese e-pošte", - "Description:Abp.Identity.Password.RequiredLength": "Minimalna duljina lozinke.", - "Description:Abp.Identity.Password.RequiredUniqueChars": "Najmanji broj jedinstvenih znakova koje lozinka mora sadržavati.", - "Description:Abp.Identity.Password.RequireNonAlphanumeric": "Ako lozinke moraju sadržavati nealfanumerički znak.", - "Description:Abp.Identity.Password.RequireLowercase": "Ako lozinke moraju sadržavati mali ASCII znak.", - "Description:Abp.Identity.Password.RequireUppercase": "Ako lozinke moraju sadržavati veliki ASCII znak.", - "Description:Abp.Identity.Password.RequireDigit": "Ako lozinke moraju sadržavati znamenku.", - "Description:Abp.Identity.Password.ForceUsersToPeriodicallyChangePassword": "Ako se korisnici moraju periodično mijenjati lozinku.", - "Description:Abp.Identity.Password.PasswordChangePeriodDays": "Period u danima nakon kojeg se korisnici moraju promijeniti lozinku.", - "Description:Abp.Identity.Lockout.AllowedForNewUsers": "Može li se novi korisnik zaključati.", - "Description:Abp.Identity.Lockout.LockoutDuration": "Trajanje koliko je korisnik zaključan kada dođe do zaključavanja.", - "Description:Abp.Identity.Lockout.MaxFailedAccessAttempts": "Broj dopuštenih neuspjelih pokušaja pristupa prije nego što se korisnik zaključa, pod pretpostavkom da je zaključavanje omogućeno.", - "Description:Abp.Identity.SignIn.RequireConfirmedEmail": "Je li za prijavu potrebna potvrđena adresa e-pošte.", - "Description:Abp.Identity.SignIn.EnablePhoneNumberConfirmation": "Može li korisnik potvrditi telefonski broj.", - "Description:Abp.Identity.SignIn.RequireConfirmedPhoneNumber": "Je li za prijavu potreban potvrđeni telefonski broj.", - "Description:Abp.Identity.User.IsUserNameUpdateEnabled": "Može li korisnik ažurirati korisničko ime.", - "Description:Abp.Identity.User.IsEmailUpdateEnabled": "Može li korisnik ažurirati e-poštu." - } -} + "culture": "hr", + "texts": { + "Menu:IdentityManagement": "Upravljanje identitetom", + "Users": "Users", + "NewUser": "Novi korisnik", + "UserName": "Korisničko ime", + "Surname": "Prezime", + "EmailAddress": "Email adresa", + "PhoneNumber": "Broj telefona", + "UserInformations": "Informacije o korisniku", + "DisplayName:IsDefault": "Zadano", + "DisplayName:IsStatic": "Je statično", + "DisplayName:IsPublic": "Je javno", + "Roles": "Uloge", + "Password": "Lozinka", + "PersonalInfo": "Moj profil", + "PersonalSettings": "Osobne postavke", + "UserDeletionConfirmationMessage": "Korisnik '{0}' bit će izbrisan. Potvrđujete li to?", + "RoleDeletionConfirmationMessage": "Uloga '{0}' bit će izbrisana. Potvrđujete li to?", + "DisplayName:RoleName": "Naziv uloge", + "DisplayName:UserName": "Korisničko ime", + "DisplayName:Name": "Ime", + "DisplayName:Surname": "Prezime", + "DisplayName:Password": "Lozinka", + "DisplayName:Email": "Email adresa", + "DisplayName:PhoneNumber": "Broj telefona", + "DisplayName:TwoFactorEnabled": "Two factor verifikacija", + "DisplayName:IsActive": "Aktivan", + "DisplayName:LockoutEnabled": "Zaključaj račun nakon neuspjelih pokušaja prijave", + "NewRole": "Nova uloga", + "RoleName": "Naziv uloge", + "CreationTime": "Vrijeme stvaranja", + "Permissions": "Dozvole", + "DisplayName:CurrentPassword": "Trenutna lozinka", + "DisplayName:NewPassword": "Nova lozinka", + "DisplayName:NewPasswordConfirm": "Potvrdi novu lozinku", + "PasswordChangedMessage": "Vaša lozinka je uspješno promijenjena.", + "PersonalSettingsSavedMessage": "Vaše osobne postavke su uspješno spremljene.", + "Volo.Abp.Identity:DefaultError": "Došlo je do neočekivane greške.", + "Volo.Abp.Identity:ConcurrencyFailure": "Provjera optimisti�ne paralelnosti nije uspjela. Entitet na kojem radite izmijenio je drugi korisnik. Molimo odbacite promjene i pokušajte ponovno.", + "Volo.Abp.Identity:DuplicateEmail": "Email '{0}' je već zauzet.", + "Volo.Abp.Identity:DuplicateRoleName": "Naziv uloge '{0}' već je zauzet.", + "Volo.Abp.Identity:DuplicateUserName": "Korisničko ime '{0}' je već zauzeto.", + "Volo.Abp.Identity:InvalidEmail": "E-pošta '{0}' nije važeća.", + "Volo.Abp.Identity:InvalidPasswordHasherCompatibilityMode": "Navedeni PasswordHasherCompatibilityMode je nevažeći.", + "Volo.Abp.Identity:InvalidPasswordHasherIterationCount": "Broj ponavljanja mora biti pozitivan cijeli broj.", + "Volo.Abp.Identity:InvalidRoleName": "Naziv uloge '{0}' nije valjan.", + "Volo.Abp.Identity:InvalidToken": "Pogrešan token.", + "Volo.Abp.Identity:InvalidUserName": "Korisničko ime '{0}' nije važeće, može sadržavati samo slova ili znamenke.", + "InvalidUserName": "Korisničko ime '{0}' nije važeće.", + "Volo.Abp.Identity:LoginAlreadyAssociated": "Korisnik s ovom prijavom već postoji.", + "Volo.Abp.Identity:PasswordMismatch": "Netočna lozinka.", + "Volo.Abp.Identity:PasswordRequiresDigit": "Lozinke moraju imati najmanje jednu znamenku ('0'-'9').", + "Volo.Abp.Identity:PasswordRequiresLower": "Zaporke moraju imati barem jedno malo slovo ('a'-'z').", + "Volo.Abp.Identity:PasswordRequiresNonAlphanumeric": "Lozinke moraju imati barem jedan znak koji nije alfanumerički.", + "Volo.Abp.Identity:PasswordRequiresUpper": "Lozinke moraju imati barem jedno veliko slovo ('A'-'Z').", + "Volo.Abp.Identity:PasswordTooShort": "Zaporke moraju imati najmanje {0} znakova.", + "Volo.Abp.Identity:PasswordRequiresUniqueChars": "Lozinke ne smiju sadržavati više od {0} uzastopnih jednakih znakova.", + "Volo.Abp.Identity:RoleNotFound": "Uloga {0} ne postoji.", + "Volo.Abp.Identity:UserAlreadyHasPassword": "Korisnik već ima postavljenu lozinku.", + "Volo.Abp.Identity:UserAlreadyInRole": "Korisnik je već u ulozi '{0}'.", + "Volo.Abp.Identity:UserLockedOut": "Korisnik je zaključan.", + "Volo.Abp.Identity:UserLockoutNotEnabled": "Zaključavanje nije omogućeno za ovog korisnika.", + "Volo.Abp.Identity:UserNameNotFound": "Korisnik {0} ne postoji.", + "Volo.Abp.Identity:UserNotInRole": "Korisnik nije u ulozi '{0}'.", + "Volo.Abp.Identity:PasswordConfirmationFailed": "Lozinka ne odgovara lozinci za potvrdu.", + "Volo.Abp.Identity:NullSecurityStamp": "Sigurnosna oznaka korisnika ne može biti nula.", + "Volo.Abp.Identity:RecoveryCodeRedemptionFailed": "Kod oporavka nije moguće iskoristiti.", + "Volo.Abp.Identity:010001": "Ne možete izbrisati vlastiti račun!", + "Volo.Abp.Identity:010002": "Ne možete postaviti više od {MaxUserMembershipCount} organizacijske jedinice za korisnika!", + "Volo.Abp.Identity:010003": "Nije moguće promijeniti lozinku eksterno prijavljenog korisnika!", + "Volo.Abp.Identity:010004": "Već postoji organizacijska jedinica s imenom {0}. Dvije jedinice s istim imenom ne mogu se stvoriti na istoj razini.", + "Volo.Abp.Identity:010005": "Statičke uloge nije moguće preimenovati.", + "Volo.Abp.Identity:010006": "Statičke uloge nije moguće izbrisati.", + "Volo.Abp.Identity:010007": "Ne možete promijeniti postavku dva faktora.", + "Volo.Abp.Identity:010008": "Nije dopušteno mijenjati postavke dvofaktorske autentifikacije.", + "Volo.Abp.Identity:010009": "Ne možete delegirati sami sebi.", + "Identity.OrganizationUnit.MaxUserMembershipCount": "Maksimalni dopušteni broj članstva u organizacijskoj jedinici za korisnika", + "ThisUserIsNotActiveMessage": "Ovaj korisnik nije aktivan.", + "Permission:IdentityManagement": "Upravljanje identitetom", + "Permission:RoleManagement": "Upravljanje ulogama", + "Permission:Create": "Stvoriti", + "Permission:Edit": "Uredi", + "Permission:Delete": "Izbrisati", + "Permission:ChangePermissions": "Promjena dopuštenja", + "Permission:UserManagement": "Upravljanje korisnicima", + "Permission:UserLookup": "Traženje korisnika", + "DisplayName:Abp.Identity.Password.RequiredLength": "Potrebna dužina", + "DisplayName:Abp.Identity.Password.RequiredUniqueChars": "Potreban broj jedinstvenih znakova", + "DisplayName:Abp.Identity.Password.RequireNonAlphanumeric": "Potreban znak koji nije alfanumerički", + "DisplayName:Abp.Identity.Password.RequireLowercase": "Obavezno malo slovo", + "DisplayName:Abp.Identity.Password.RequireUppercase": "Obavezno veliko slovo", + "DisplayName:Abp.Identity.Password.RequireDigit": "Obavezna znamenka", + "DisplayName:Abp.Identity.Password.ForceUsersToPeriodicallyChangePassword": "Prisilite korisnike da periodično mijenjaju lozinku", + "DisplayName:Abp.Identity.Password.PasswordChangePeriodDays": "Period promjene lozinke (dana)", + "DisplayName:Abp.Identity.Lockout.AllowedForNewUsers": "Omogućeno za nove korisnike", + "DisplayName:Abp.Identity.Lockout.LockoutDuration": "Trajanje zaključavanja (sekunde)", + "DisplayName:Abp.Identity.Lockout.MaxFailedAccessAttempts": "Maksimalan broj neuspjelih pokušaja pristupa", + "DisplayName:Abp.Identity.SignIn.RequireConfirmedEmail": "Zahtijeva potvrđenu e-poštu", + "DisplayName:Abp.Identity.SignIn.EnablePhoneNumberConfirmation": "Dopusti korisnicima da potvrde svoj telefonski broj", + "DisplayName:Abp.Identity.SignIn.RequireConfirmedPhoneNumber": "Zahtijeva potvrđen telefonski broj", + "DisplayName:Abp.Identity.User.IsUserNameUpdateEnabled": "Dopusti korisnicima promjenu korisničkih imena", + "DisplayName:Abp.Identity.User.IsEmailUpdateEnabled": "Dopustite korisnicima da mijenjaju svoje adrese e-pošte", + "Description:Abp.Identity.Password.RequiredLength": "Minimalna duljina lozinke.", + "Description:Abp.Identity.Password.RequiredUniqueChars": "Najmanji broj jedinstvenih znakova koje lozinka mora sadržavati.", + "Description:Abp.Identity.Password.RequireNonAlphanumeric": "Ako lozinke moraju sadržavati nealfanumerički znak.", + "Description:Abp.Identity.Password.RequireLowercase": "Ako lozinke moraju sadržavati mali ASCII znak.", + "Description:Abp.Identity.Password.RequireUppercase": "Ako lozinke moraju sadržavati veliki ASCII znak.", + "Description:Abp.Identity.Password.RequireDigit": "Ako lozinke moraju sadržavati znamenku.", + "Description:Abp.Identity.Password.ForceUsersToPeriodicallyChangePassword": "Ako se korisnici moraju periodično mijenjati lozinku.", + "Description:Abp.Identity.Password.PasswordChangePeriodDays": "Period u danima nakon kojeg se korisnici moraju promijeniti lozinku.", + "Description:Abp.Identity.Lockout.AllowedForNewUsers": "Može li se novi korisnik zaključati.", + "Description:Abp.Identity.Lockout.LockoutDuration": "Trajanje koliko je korisnik zaključan kada dođe do zaključavanja.", + "Description:Abp.Identity.Lockout.MaxFailedAccessAttempts": "Broj dopuštenih neuspjelih pokušaja pristupa prije nego što se korisnik zaključa, pod pretpostavkom da je zaključavanje omogućeno.", + "Description:Abp.Identity.SignIn.RequireConfirmedEmail": "Je li za prijavu potrebna potvrđena adresa e-pošte.", + "Description:Abp.Identity.SignIn.EnablePhoneNumberConfirmation": "Može li korisnik potvrditi telefonski broj.", + "Description:Abp.Identity.SignIn.RequireConfirmedPhoneNumber": "Je li za prijavu potreban potvrđeni telefonski broj.", + "Description:Abp.Identity.User.IsUserNameUpdateEnabled": "Može li korisnik ažurirati korisničko ime.", + "Description:Abp.Identity.User.IsEmailUpdateEnabled": "Može li korisnik ažurirati e-poštu.", + "Details": "pojedinosti", + "CreatedBy": "Napravio", + "ModifiedBy": "Izmijenio", + "ModificationTime": "Vrijeme izmjene", + "PasswordUpdateTime": "Vrijeme ažuriranja lozinke", + "LockoutEndTime": "Vrijeme završetka zaključavanja", + "FailedAccessCount": "Broj neuspjelih pristupa" + } +} \ No newline at end of file diff --git a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/hu.json b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/hu.json index 2dceb4c34a..8d6911fcbd 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/hu.json +++ b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/hu.json @@ -117,6 +117,13 @@ "Description:Abp.Identity.SignIn.EnablePhoneNumberConfirmation": "Meg tudja-e erősíteni a telefonszámot a felhasználó.", "Description:Abp.Identity.SignIn.RequireConfirmedPhoneNumber": "Szükség van-e megerősített telefonszámra a bejelentkezéshez.", "Description:Abp.Identity.User.IsUserNameUpdateEnabled": "Meg tudja e módosítani a felhasználónevet a felhasználó?.", - "Description:Abp.Identity.User.IsEmailUpdateEnabled": "Meg tudja-e módosítani az e-mail címét a felhasználó." + "Description:Abp.Identity.User.IsEmailUpdateEnabled": "Meg tudja-e módosítani az e-mail címét a felhasználó.", + "Details": "Részletek", + "CreatedBy": "Készítette", + "ModifiedBy": "Módosította", + "ModificationTime": "Módosítási idő", + "PasswordUpdateTime": "A jelszó frissítési ideje", + "LockoutEndTime": "A zárolás befejezési ideje", + "FailedAccessCount": "Sikertelen hozzáférések száma" } -} +} \ No newline at end of file diff --git a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/is.json b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/is.json index 57c9f4cc94..a1fe7f2262 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/is.json +++ b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/is.json @@ -117,6 +117,13 @@ "Description:Abp.Identity.SignIn.EnablePhoneNumberConfirmation": "Hvort notandinn getur staðfest símanúmerið.", "Description:Abp.Identity.SignIn.RequireConfirmedPhoneNumber": "Hvort nauðsynlegt sé að staðfesta símanúmer til að geta skrá sig inn.", "Description:Abp.Identity.User.IsUserNameUpdateEnabled": "Hvort notandi geti uppfært notanda nafnið sitt.", - "Description:Abp.Identity.User.IsEmailUpdateEnabled": "Hvort notandinn getur uppfært tölvupóstfangið sitt." + "Description:Abp.Identity.User.IsEmailUpdateEnabled": "Hvort notandinn getur uppfært tölvupóstfangið sitt.", + "Details": "Upplýsingar", + "CreatedBy": "Búið til af", + "ModifiedBy": "Breytt af", + "ModificationTime": "Breytingartími", + "PasswordUpdateTime": "Uppfærslutími lykilorðs", + "LockoutEndTime": "Lokatími lokunar", + "FailedAccessCount": "Misheppnuð fjöldi aðgangs" } -} +} \ No newline at end of file diff --git a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/it.json b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/it.json index 4f8b986063..c40f743ad6 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/it.json +++ b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/it.json @@ -65,6 +65,8 @@ "Volo.Abp.Identity:UserNameNotFound": "L'utente {0} non esiste.", "Volo.Abp.Identity:UserNotInRole": "L'utente non è nel ruolo '{0}'.", "Volo.Abp.Identity:PasswordConfirmationFailed": "La password non corrisponde alla password di conferma.", + "Volo.Abp.Identity:NullSecurityStamp": "Il timbro di sicurezza dell'utente non può essere nullo.", + "Volo.Abp.Identity:RecoveryCodeRedemptionFailed": "Il riscatto del codice di ripristino non è riuscito.", "Volo.Abp.Identity:010001": "Non puoi cancellare il tuo account!", "Volo.Abp.Identity:010002": "Impossibile impostare più di {MaxUserMembershipCount} unità organizzativa per un utente!", "Volo.Abp.Identity:010003": "Non è possibile Modifica la password di un utente connesso esternamente!", @@ -115,6 +117,13 @@ "Description:Abp.Identity.SignIn.EnablePhoneNumberConfirmation": "Se il numero di telefono può essere confermato dall'utente.", "Description:Abp.Identity.SignIn.RequireConfirmedPhoneNumber": "Indica se è necessario un numero di telefono confermato per accedere.", "Description:Abp.Identity.User.IsUserNameUpdateEnabled": "Se il nome utente può essere aggiornato dall'utente.", - "Description:Abp.Identity.User.IsEmailUpdateEnabled": "Se l'email può essere aggiornata dall'utente." + "Description:Abp.Identity.User.IsEmailUpdateEnabled": "Se l'email può essere aggiornata dall'utente.", + "Details": "Dettagli", + "CreatedBy": "Creato da", + "ModifiedBy": "Modificato da", + "ModificationTime": "Tempo di modifica", + "PasswordUpdateTime": "Orario di aggiornamento della password", + "LockoutEndTime": "Ora di fine del blocco", + "FailedAccessCount": "Conteggio accessi non riusciti" } -} +} \ No newline at end of file diff --git a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/nl.json b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/nl.json index 7d78d8b44c..f52355588b 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/nl.json +++ b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/nl.json @@ -117,6 +117,13 @@ "Description:Abp.Identity.SignIn.EnablePhoneNumberConfirmation": "Of het telefoonnummer kan worden bevestigd door de gebruiker.", "Description:Abp.Identity.SignIn.RequireConfirmedPhoneNumber": "Of een bevestigd telefoonnummer vereist is om in te loggen.", "Description:Abp.Identity.User.IsUserNameUpdateEnabled": "Of de gebruikersnaam kan worden bijgewerkt door de gebruiker.", - "Description:Abp.Identity.User.IsEmailUpdateEnabled": "Of de e-mail door de gebruiker kan worden veranderd." + "Description:Abp.Identity.User.IsEmailUpdateEnabled": "Of de e-mail door de gebruiker kan worden veranderd.", + "Details": "Details", + "CreatedBy": "Gemaakt door", + "ModifiedBy": "Aangepast door", + "ModificationTime": "Wijzigingstijd", + "PasswordUpdateTime": "Tijd voor het bijwerken van het wachtwoord", + "LockoutEndTime": "Eindtijd uitsluiting", + "FailedAccessCount": "Aantal mislukte toegangen" } -} +} \ No newline at end of file diff --git a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/pl-PL.json b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/pl-PL.json index a0caf3a982..0a39b7b34c 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/pl-PL.json +++ b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/pl-PL.json @@ -117,6 +117,13 @@ "Description:Abp.Identity.SignIn.EnablePhoneNumberConfirmation": "Czy numer telefonu może być potwierdzony przez użytkownika.", "Description:Abp.Identity.SignIn.RequireConfirmedPhoneNumber": "Czy do zalogowania jest wymagany potwierdzony numer telefonu.", "Description:Abp.Identity.User.IsUserNameUpdateEnabled": "Czy nazwa użytkownika może być aktualizowana przez użytkownika.", - "Description:Abp.Identity.User.IsEmailUpdateEnabled": "Czy wiadomość e-mail może zostać zaktualizowana przez użytkownika." + "Description:Abp.Identity.User.IsEmailUpdateEnabled": "Czy wiadomość e-mail może zostać zaktualizowana przez użytkownika.", + "Details": "Detale", + "CreatedBy": "Stworzone przez", + "ModifiedBy": "Modyfikowane przez", + "ModificationTime": "Czas modyfikacji", + "PasswordUpdateTime": "Czas aktualizacji hasła", + "LockoutEndTime": "Czas zakończenia blokady", + "FailedAccessCount": "Liczba nieudanych dostępów" } -} +} \ No newline at end of file diff --git a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/pt-BR.json b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/pt-BR.json index cf2750cea9..648fe194d6 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/pt-BR.json +++ b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/pt-BR.json @@ -117,6 +117,13 @@ "Description:Abp.Identity.SignIn.EnablePhoneNumberConfirmation": "Se o número de telefone pode ser confirmado pelo usuário.", "Description:Abp.Identity.SignIn.RequireConfirmedPhoneNumber": "Se um número de telefone confirmado é necessário para fazer login.", "Description:Abp.Identity.User.IsUserNameUpdateEnabled": "Se o nome de usuário pode ser atualizado pelo usuário.", - "Description:Abp.Identity.User.IsEmailUpdateEnabled": "Se o e-mail pode ser atualizado pelo usuário." + "Description:Abp.Identity.User.IsEmailUpdateEnabled": "Se o e-mail pode ser atualizado pelo usuário.", + "Details": "Detalhes", + "CreatedBy": "Criado por", + "ModifiedBy": "Modificado por", + "ModificationTime": "Hora da modificação", + "PasswordUpdateTime": "Hora de atualização da senha", + "LockoutEndTime": "Hora de término do bloqueio", + "FailedAccessCount": "Contagem de acessos com falha" } -} +} \ No newline at end of file diff --git a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/ro-RO.json b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/ro-RO.json index af7cfafad8..8222c68b6a 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/ro-RO.json +++ b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/ro-RO.json @@ -117,6 +117,13 @@ "Description:Abp.Identity.SignIn.EnablePhoneNumberConfirmation": "Dacă numărul de telefon poate fi confirmată de către utilizator.", "Description:Abp.Identity.SignIn.RequireConfirmedPhoneNumber": "Dacă un număr de telefon confirmat este oblicatoriu pentru autentificare.", "Description:Abp.Identity.User.IsUserNameUpdateEnabled": "Dacă numele de utilizator poate fi actualizat de către utilizator.", - "Description:Abp.Identity.User.IsEmailUpdateEnabled": "Dacă emailul poate fi actualizat de către utilizator." + "Description:Abp.Identity.User.IsEmailUpdateEnabled": "Dacă emailul poate fi actualizat de către utilizator.", + "Details": "Detalii", + "CreatedBy": "Creat de", + "ModifiedBy": "Modificat de", + "ModificationTime": "Timp de modificare", + "PasswordUpdateTime": "Ora actualizării parolei", + "LockoutEndTime": "Ora de încheiere a blocării", + "FailedAccessCount": "Număr de acces eșuat" } -} +} \ No newline at end of file diff --git a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/ru.json b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/ru.json index edda992010..6c626ab0d1 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/ru.json +++ b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/ru.json @@ -117,6 +117,13 @@ "Description:Abp.Identity.SignIn.EnablePhoneNumberConfirmation": "Может ли пользователь подтвердить phoneNumber.", "Description:Abp.Identity.SignIn.RequireConfirmedPhoneNumber": "Требуется ли для входа в систему подтвержденный номер телефона.", "Description:Abp.Identity.User.IsUserNameUpdateEnabled": "Может ли пользователь обновить имя пользователя.", - "Description:Abp.Identity.User.IsEmailUpdateEnabled": "Может ли электронная почта быть обновлена пользователем." + "Description:Abp.Identity.User.IsEmailUpdateEnabled": "Может ли электронная почта быть обновлена пользователем.", + "Details": "Подробности", + "CreatedBy": "Сделано", + "ModifiedBy": "Модифицирован", + "ModificationTime": "Время модификации", + "PasswordUpdateTime": "Время обновления пароля", + "LockoutEndTime": "Время окончания блокировки", + "FailedAccessCount": "Количество неудачных попыток доступа" } -} +} \ No newline at end of file diff --git a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/sk.json b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/sk.json index 10f79ee344..0a09ff6f12 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/sk.json +++ b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/sk.json @@ -117,6 +117,13 @@ "Description:Abp.Identity.SignIn.EnablePhoneNumberConfirmation": "Či môže používateľ potvrdiť telefónne číslo.", "Description:Abp.Identity.SignIn.RequireConfirmedPhoneNumber": "Či sa na prihlásenie vyžaduje potvrdené telefónne číslo.", "Description:Abp.Identity.User.IsUserNameUpdateEnabled": "Či môže používateľ aktualizovať používateľské meno.", - "Description:Abp.Identity.User.IsEmailUpdateEnabled": "Či môže používateľ aktualizovať email." + "Description:Abp.Identity.User.IsEmailUpdateEnabled": "Či môže používateľ aktualizovať email.", + "Details": "Podrobnosti", + "CreatedBy": "Vytvoril", + "ModifiedBy": "Upravené používateľom", + "ModificationTime": "Čas úpravy", + "PasswordUpdateTime": "Čas aktualizácie hesla", + "LockoutEndTime": "Čas ukončenia uzamknutia", + "FailedAccessCount": "Počet neúspešných prístupov" } -} +} \ No newline at end of file diff --git a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/sl.json b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/sl.json index f5fca41fdb..6e972c87ed 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/sl.json +++ b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/sl.json @@ -117,6 +117,13 @@ "Description:Abp.Identity.SignIn.EnablePhoneNumberConfirmation": "Ali lahko uporabnik potrdi telefonsko številko.", "Description:Abp.Identity.SignIn.RequireConfirmedPhoneNumber": "Ali je za prijavo potrebna potrjena telefonska številka.", "Description:Abp.Identity.User.IsUserNameUpdateEnabled": "Ali lahko uporabnik posodobi uporabniško ime.", - "Description:Abp.Identity.User.IsEmailUpdateEnabled": "Ali lahko uporabnik posodobi e-poštni naslov." + "Description:Abp.Identity.User.IsEmailUpdateEnabled": "Ali lahko uporabnik posodobi e-poštni naslov.", + "Details": "Podrobnosti", + "CreatedBy": "Ustvaril", + "ModifiedBy": "Spremenil", + "ModificationTime": "Čas spreminjanja", + "PasswordUpdateTime": "Čas posodobitve gesla", + "LockoutEndTime": "Končni čas zaklepanja", + "FailedAccessCount": "Število neuspešnih dostopov" } -} +} \ No newline at end of file diff --git a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/vi.json b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/vi.json index 1051228df0..330e952374 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/vi.json +++ b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/vi.json @@ -117,6 +117,13 @@ "Description:Abp.Identity.SignIn.EnablePhoneNumberConfirmation": "Người dùng có thể xác nhận số điện thoại hay không.", "Description:Abp.Identity.SignIn.RequireConfirmedPhoneNumber": "Liệu một số điện thoại được xác nhận có được yêu cầu để đăng nhập hay không.", "Description:Abp.Identity.User.IsUserNameUpdateEnabled": "Người dùng có thể cập nhật tên người dùng hay không.", - "Description:Abp.Identity.User.IsEmailUpdateEnabled": "Người dùng có thể cập nhật email hay không." + "Description:Abp.Identity.User.IsEmailUpdateEnabled": "Người dùng có thể cập nhật email hay không.", + "Details": "Chi tiết", + "CreatedBy": "Được tạo bởi", + "ModifiedBy": "Được sửa đổi bởi", + "ModificationTime": "Thời gian sửa đổi", + "PasswordUpdateTime": "Thời gian cập nhật mật khẩu", + "LockoutEndTime": "Thời gian kết thúc khóa", + "FailedAccessCount": "Số lượt truy cập không thành công" } -} +} \ No newline at end of file diff --git a/modules/identity/test/Volo.Abp.Identity.Domain.Tests/Volo/Abp/Identity/LocalizationExtensions/de.json b/modules/identity/test/Volo.Abp.Identity.Domain.Tests/Volo/Abp/Identity/LocalizationExtensions/de.json new file mode 100644 index 0000000000..2ae82c2901 --- /dev/null +++ b/modules/identity/test/Volo.Abp.Identity.Domain.Tests/Volo/Abp/Identity/LocalizationExtensions/de.json @@ -0,0 +1,7 @@ +{ + "culture": "de", + "texts": { + "Volo.Abp.Identity:PasswordTooShort": "Die Länge des Passworts muss mehr als {0} Zeichen betragen.", + "Volo.Abp.Identity:PasswordRequiresNonAlphanumeric": "Das Passwort muss mindestens ein nicht alphanumerisches Zeichen enthalten." + } +} \ No newline at end of file diff --git a/modules/identity/test/Volo.Abp.Identity.Domain.Tests/Volo/Abp/Identity/LocalizationExtensions/hr.json b/modules/identity/test/Volo.Abp.Identity.Domain.Tests/Volo/Abp/Identity/LocalizationExtensions/hr.json new file mode 100644 index 0000000000..f611c12934 --- /dev/null +++ b/modules/identity/test/Volo.Abp.Identity.Domain.Tests/Volo/Abp/Identity/LocalizationExtensions/hr.json @@ -0,0 +1,7 @@ +{ + "culture": "hr", + "texts": { + "Volo.Abp.Identity:PasswordTooShort": "Dužina lozinke mora biti veća od {0} znakova.", + "Volo.Abp.Identity:PasswordRequiresNonAlphanumeric": "Lozinka mora sadržavati barem jedan znak koji nije alfanumerički." + } +} \ No newline at end of file diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Localization/Resources/FR.json b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Localization/Resources/FR.json index d6a857708c..1d62307724 100644 --- a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Localization/Resources/FR.json +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Localization/Resources/FR.json @@ -10,6 +10,7 @@ "LoginIsNotAllowed": "Vous n'êtes pas autorisé à vous connecter ! Votre compte est inactif ou doit confirmer votre e-mail/numéro de téléphone.", "InvalidUsername": "Nom d'utilisateur ou mot de passe invalide!", "InvalidAuthenticatorCode": "Code d'authentification invalide !", + "InvalidRecoveryCode": "Code de récupération invalide !", "TheTargetUserIsNotLinkedToYou": "L'utilisateur cible n'est pas lié à vous!" } } \ No newline at end of file diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Localization/Resources/ar.json b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Localization/Resources/ar.json index 8ec6ae1859..3329275161 100644 --- a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Localization/Resources/ar.json +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Localization/Resources/ar.json @@ -10,6 +10,7 @@ "LoginIsNotAllowed": "لا يسمح لك بتسجيل الدخول! حسابك غير نشط أو يحتاج إلى تأكيد بريدك الإلكتروني/رقم هاتفك.", "InvalidUsername": "اسم المستخدم أو كلمة المرور غير صالحة!", "InvalidAuthenticatorCode": "كود المصدق غير صالح!", + "InvalidRecoveryCode": "رمز الاسترداد غير صالح!", "TheTargetUserIsNotLinkedToYou": "المستخدم المستهدف غير مرتبط بك!" } } \ No newline at end of file diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Localization/Resources/cs.json b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Localization/Resources/cs.json index ea279dff91..1c5cb2bbf6 100644 --- a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Localization/Resources/cs.json +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Localization/Resources/cs.json @@ -10,6 +10,7 @@ "LoginIsNotAllowed": "Nemáte oprávnění se přihlásit! Váš účet je neaktivní nebo potřebuje potvrdit váš e -mail/telefonní číslo.", "InvalidUsername": "Neplatné uživatelské jméno či heslo!", "InvalidAuthenticatorCode": "Neplatný ověřovací kód!", + "InvalidRecoveryCode": "Neplatný kód pro obnovení!", "TheTargetUserIsNotLinkedToYou": "Cílový uživatel s vámi není spojen!" } } \ No newline at end of file diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Localization/Resources/de.json b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Localization/Resources/de.json index 469bc9b9f4..b0fc6bd640 100644 --- a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Localization/Resources/de.json +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Localization/Resources/de.json @@ -10,6 +10,7 @@ "LoginIsNotAllowed": "Sie dürfen sich nicht anmelden! Ihr Konto ist inaktiv oder Sie müssen Ihre E-Mail-/Telefonnummer bestätigen.", "InvalidUsername": "Ungültiger Benutzername oder Passwort!", "InvalidAuthenticatorCode": "Ungültiger Authentifizierungscode!", + "InvalidRecoveryCode": "Ungültiger Wiederherstellungscode!", "TheTargetUserIsNotLinkedToYou": "Der Zielbenutzer ist nicht mit Ihnen verknüpft!" } } \ No newline at end of file diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Localization/Resources/es.json b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Localization/Resources/es.json index ec2be54220..4c2ecd92ee 100644 --- a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Localization/Resources/es.json +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Localization/Resources/es.json @@ -10,6 +10,7 @@ "LoginIsNotAllowed": "¡No está permitido iniciar sesión! Su cuenta está inactiva o necesita confirmar su correo electrónico/número de teléfono.", "InvalidUsername": "Nombre de usuario icorrecto", "InvalidAuthenticatorCode": "¡Código de autenticador no válido!", + "InvalidRecoveryCode": "¡Código de recuperación no válido!", "TheTargetUserIsNotLinkedToYou": "El usuario de destino no está asociado a usted." } } \ No newline at end of file diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Localization/Resources/fi.json b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Localization/Resources/fi.json index 25bbfe294d..94779f34b3 100644 --- a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Localization/Resources/fi.json +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Localization/Resources/fi.json @@ -10,6 +10,7 @@ "LoginIsNotAllowed": "Et saa kirjautua sisään! Tilisi on passiivinen tai sinun on vahvistettava sähköpostiosoitteesi/puhelinnumerosi.", "InvalidUsername": "Väärä käyttäjänimi tai salasana!", "InvalidAuthenticatorCode": "Virheellinen todennuskoodi!", + "InvalidRecoveryCode": "Virheellinen palautuskoodi!", "TheTargetUserIsNotLinkedToYou": "Kohdekäyttäjä ei ole linkitetty sinuun!" } } \ No newline at end of file diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Localization/Resources/hi.json b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Localization/Resources/hi.json index c885caa06f..2df86f55bc 100644 --- a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Localization/Resources/hi.json +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Localization/Resources/hi.json @@ -10,6 +10,7 @@ "LoginIsNotAllowed": "आपको लॉगिन करने की अनुमति नहीं है! आपका खाता निष्क्रिय है या आपके ईमेल/फ़ोन नंबर की पुष्टि करने की आवश्यकता है।", "InvalidUsername": "अमान्य उपयोगकर्ता नाम या पासवर्ड!", "InvalidAuthenticatorCode": "अमान्य प्रमाणक कोड!", + "InvalidRecoveryCode": "अमान्य पुनर्प्राप्ति कोड!", "TheTargetUserIsNotLinkedToYou": "लक्ष्य उपयोगकर्ता आपसे जुड़ा नहीं है!" } } \ No newline at end of file diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Localization/Resources/hr.json b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Localization/Resources/hr.json new file mode 100644 index 0000000000..da79db308c --- /dev/null +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Localization/Resources/hr.json @@ -0,0 +1,16 @@ +{ + "culture": "hr", + "texts": { + "Volo.IdentityServer:DuplicateIdentityResourceName": "Naziv resursa identiteta već postoji: {Name}", + "Volo.IdentityServer:DuplicateApiResourceName": "Naziv API resursa već postoji: {Name}", + "Volo.IdentityServer:DuplicateApiScopeName": "Naziv opsega API-ja već postoji: {Name}", + "Volo.IdentityServer:DuplicateClientId": "ClientId već postoji: {ClientId}", + "UserLockedOut": "Korisnički račun je zaključan zbog nevažećih pokušaja prijave. Pričekajte malo i pokušajte ponovo.", + "InvalidUserNameOrPassword": "Neispravno korisničko ime ili lozinka!", + "LoginIsNotAllowed": "Nemate dopuštenje za prijavu! Vaš račun nije aktivan ili treba potvrditi vašu e-poštu/broj telefona.", + "InvalidUsername": "Neispravno korisničko ime ili lozinka!", + "InvalidAuthenticatorCode": "Nevažeći kod autentifikatora!", + "InvalidRecoveryCode": "Nevažeći kod za oporavak!", + "TheTargetUserIsNotLinkedToYou": "Ciljani korisnik nije povezan s vama!" + } +} \ No newline at end of file diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Localization/Resources/hu.json b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Localization/Resources/hu.json index c40b3a3c8b..e41b61c736 100644 --- a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Localization/Resources/hu.json +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Localization/Resources/hu.json @@ -10,6 +10,7 @@ "LoginIsNotAllowed": "A bejelentkezés nem engedélyezett! Fiókja inaktív, vagy meg kell erősítenie e -mail címét/telefonszámát.", "InvalidUsername": "Érvénytelen felhasználónév vagy jelszó!", "InvalidAuthenticatorCode": "Érvénytelen hitelesítő kód!", + "InvalidRecoveryCode": "Érvénytelen helyreállítási kód!", "TheTargetUserIsNotLinkedToYou": "A célfelhasználó nincs hozzád kapcsolódva!" } } \ No newline at end of file diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Localization/Resources/is.json b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Localization/Resources/is.json index b14f6d6257..8f97265691 100644 --- a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Localization/Resources/is.json +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Localization/Resources/is.json @@ -10,6 +10,7 @@ "LoginIsNotAllowed": "Þú hefur ekki leyfi til að skrá þig inn! Þú þarft að staðfesta netfangið þitt/símanúmer.", "InvalidUsername": "Ógilt notendanafn eða lykilorð!", "InvalidAuthenticatorCode": "Ógildur auðkenningarkóði!", + "InvalidRecoveryCode": "Ógildur endurheimtarkóði!", "TheTargetUserIsNotLinkedToYou": "Marknotandinn er ekki tengdur þér!" } } \ No newline at end of file diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Localization/Resources/it.json b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Localization/Resources/it.json index 066b3e86d4..1795289fa3 100644 --- a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Localization/Resources/it.json +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Localization/Resources/it.json @@ -10,6 +10,7 @@ "LoginIsNotAllowed": "Non sei autorizzato ad accedere! Il tuo account non è attivo o devi confermare la tua e-mail/numero di telefono.", "InvalidUsername": "Username o password non validi!", "InvalidAuthenticatorCode": "Codice autenticatore non valido!", + "InvalidRecoveryCode": "Codice di ripristino non valido!", "TheTargetUserIsNotLinkedToYou": "L'utente indicato non è collegato a te!" } -} +} \ No newline at end of file diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Localization/Resources/nl.json b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Localization/Resources/nl.json index 359e793526..e8a7a5c0b1 100644 --- a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Localization/Resources/nl.json +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Localization/Resources/nl.json @@ -10,6 +10,7 @@ "LoginIsNotAllowed": "U mag niet inloggen! Uw account is inactief of moet uw e-mailadres/telefoonnummer bevestigen.", "InvalidUsername": "Ongeldige gebruikersnaam of wachtwoord!", "InvalidAuthenticatorCode": "Ongeldige authenticatiecode!", + "InvalidRecoveryCode": "Ongeldige herstelcode!", "TheTargetUserIsNotLinkedToYou": "De beoogde gebruiker is niet aan jou gekoppeld!" } } \ No newline at end of file diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Localization/Resources/pl-PL.json b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Localization/Resources/pl-PL.json index 0f65317863..a231a6ec3f 100644 --- a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Localization/Resources/pl-PL.json +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Localization/Resources/pl-PL.json @@ -10,6 +10,7 @@ "LoginIsNotAllowed": "Nie możesz się zalogować! Twoje konto jest nieaktywne lub wymaga potwierdzenia adresu e-mail/numeru telefonu.", "InvalidUsername": "Nieprawidłowa nazwa użytkownika lub hasło!", "InvalidAuthenticatorCode": "Nieprawidłowy kod uwierzytelniający!", + "InvalidRecoveryCode": "Nieprawidłowy kod odzyskiwania!", "TheTargetUserIsNotLinkedToYou": "Docelowy użytkownik nie jest z Tobą powiązany!" } } \ No newline at end of file diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Localization/Resources/pt-BR.json b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Localization/Resources/pt-BR.json index 99f529b093..db5d2fb00e 100644 --- a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Localization/Resources/pt-BR.json +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Localization/Resources/pt-BR.json @@ -10,6 +10,7 @@ "LoginIsNotAllowed": "Você não tem permissão para fazer o login! Sua conta está inativa ou precisa confirmar seu e-mail/número de telefone.", "InvalidUsername": "Nome de usuário ou senha inválidos!", "InvalidAuthenticatorCode": "Código de autenticador inválido!", + "InvalidRecoveryCode": "Código de recuperação inválido!", "TheTargetUserIsNotLinkedToYou": "O usuário-alvo não está vinculado a você!" } } \ No newline at end of file diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Localization/Resources/ro-RO.json b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Localization/Resources/ro-RO.json index 6d35d80c19..a1af796373 100644 --- a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Localization/Resources/ro-RO.json +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Localization/Resources/ro-RO.json @@ -10,6 +10,7 @@ "LoginIsNotAllowed": "Nu ai voie să te autentifici! Contul dvs. este inactiv sau trebuie să vă confirme numărul de e-mail/telefon.", "InvalidUsername": "Nume de utilizator sau parolă invalidă!", "InvalidAuthenticatorCode": "Cod de autentificare invalid!", + "InvalidRecoveryCode": "Cod de recuperare nevalid!", "TheTargetUserIsNotLinkedToYou": "Utilizatorul ţintă nu este conectat la dumneavoastră!" } } \ No newline at end of file diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Localization/Resources/ru.json b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Localization/Resources/ru.json index 09fe5e65e7..0c8a0f9fe5 100644 --- a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Localization/Resources/ru.json +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Localization/Resources/ru.json @@ -10,6 +10,7 @@ "LoginIsNotAllowed": "Вам не разрешено входить в систему! Ваша учетная запись неактивна или вам необходимо подтвердить адрес электронной почты/номер телефона.", "InvalidUsername": "Неверное имя пользователя или пароль!", "InvalidAuthenticatorCode": "Неверный код аутентификатора!", + "InvalidRecoveryCode": "Неверный код восстановления!", "TheTargetUserIsNotLinkedToYou": "Целевой пользователь не связан с вами!" } } \ No newline at end of file diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Localization/Resources/sk.json b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Localization/Resources/sk.json index 49874cb785..e0e31056fd 100644 --- a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Localization/Resources/sk.json +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Localization/Resources/sk.json @@ -10,6 +10,7 @@ "LoginIsNotAllowed": "Nemáte povolenie sa prihlásiť! Váš účet je neaktívny alebo potrebuje potvrdiť váš e -mail/telefónne číslo.", "InvalidUsername": "Nesprávne používateľské meno alebo heslo!", "InvalidAuthenticatorCode": "Neplatný overovací kód!", + "InvalidRecoveryCode": "Neplatný kód na obnovenie!", "TheTargetUserIsNotLinkedToYou": "Cieľový používateľ nie je s vami prepojený!" } } \ No newline at end of file diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Localization/Resources/sl.json b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Localization/Resources/sl.json index 9c183de387..527b11b35f 100644 --- a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Localization/Resources/sl.json +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Localization/Resources/sl.json @@ -10,6 +10,7 @@ "LoginIsNotAllowed": "Ne smete se prijaviti! Vaš račun je neaktiven ali mora potrditi vaš e -poštni naslov/telefonsko številko.", "InvalidUsername": "Napačno uporabniško ime ali geslo!", "InvalidAuthenticatorCode": "Neveljavna koda za preverjanje pristnosti!", + "InvalidRecoveryCode": "Neveljavna obnovitvena koda!", "TheTargetUserIsNotLinkedToYou": "Ciljni uporabnik ni povezan z vami!" } } \ No newline at end of file diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Localization/Resources/vi.json b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Localization/Resources/vi.json index ff06e7944c..4d62d91611 100644 --- a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Localization/Resources/vi.json +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Localization/Resources/vi.json @@ -10,6 +10,7 @@ "LoginIsNotAllowed": "Bạn không được phép đăng nhập! Tài khoản của bạn không hoạt động hoặc cần xác nhận email/số điện thoại của bạn.", "InvalidUsername": "Sai username hoặc password!", "InvalidAuthenticatorCode": "Mã xác thực không hợp lệ!", + "InvalidRecoveryCode": "Mã khôi phục không hợp lệ!", "TheTargetUserIsNotLinkedToYou": "Người dùng mục tiêu không được liên kết với bạn!" } } \ No newline at end of file diff --git a/modules/openiddict/app/OpenIddict.Demo.API/Program.cs b/modules/openiddict/app/OpenIddict.Demo.API/Program.cs index 9fe034cecf..c40a46ad60 100644 --- a/modules/openiddict/app/OpenIddict.Demo.API/Program.cs +++ b/modules/openiddict/app/OpenIddict.Demo.API/Program.cs @@ -1,11 +1,19 @@ -using System.Text; using Microsoft.AspNetCore.Authentication.JwtBearer; -using Microsoft.IdentityModel.Tokens; var builder = WebApplication.CreateBuilder(args); builder.Logging.ClearProviders(); builder.Logging.AddConsole(); +builder.Services.AddCors(options => +{ + options.AddDefaultPolicy(policy => + { + policy.WithOrigins("https://localhost:44304") + .AllowAnyHeader() + .AllowAnyMethod(); + }); +}); + // Add services to the container. builder.Services.AddControllers(); @@ -31,6 +39,7 @@ if (app.Environment.IsDevelopment()) app.UseHttpsRedirection(); +app.UseCors(); app.UseAuthentication(); app.UseAuthorization(); diff --git a/modules/openiddict/app/OpenIddict.Demo.Client.BlazorWASM/Pages/Index.razor b/modules/openiddict/app/OpenIddict.Demo.Client.BlazorWASM/Pages/Index.razor index a2f0e6eb76..7889736c35 100644 --- a/modules/openiddict/app/OpenIddict.Demo.Client.BlazorWASM/Pages/Index.razor +++ b/modules/openiddict/app/OpenIddict.Demo.Client.BlazorWASM/Pages/Index.razor @@ -1,7 +1,11 @@ @page "/" @using System.Security.Claims +@using System.Text.Json +@using Microsoft.AspNetCore.Components.WebAssembly.Authentication +@using System.Net.Http.Headers @inject AuthenticationStateProvider AuthenticationStateProvider +@inject IAccessTokenProvider AccessTokenProvider Index @@ -17,14 +21,31 @@ Welcome to your new app. @if (_claims.Count() > 0) { +

+ @_accessToken +

+
    @foreach (var claim in _claims) {
  • @claim.Type: @claim.Value
  • }
-} + + @{ + var apiResponse = "No API response"; + if (_claimsResponseString != null) + { + apiResponse = JsonSerializer.Serialize(JsonDocument.Parse(_claimsResponseString), new JsonSerializerOptions + { + WriteIndented = true + }); + } + } + @apiResponse; + +} @code { @@ -35,6 +56,8 @@ Welcome to your new app. } private IEnumerable _claims = Enumerable.Empty(); + private string? _accessToken; + private string? _claimsResponseString; private async Task GetClaimsPrincipalData() { @@ -43,8 +66,16 @@ Welcome to your new app. if (user.Identity.IsAuthenticated) { - _claims = user.Claims; + + var result = await AccessTokenProvider.RequestAccessToken(); + result.TryGetToken(out var token); + _accessToken = token?.Value; + + var client = new HttpClient(); + var request = new HttpRequestMessage(HttpMethod.Get, "https://localhost:44303/api/claims"); + request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", _accessToken); + _claimsResponseString = await (await client.SendAsync(request)).Content.ReadAsStringAsync(); } } } diff --git a/modules/openiddict/app/OpenIddict.Demo.Client.BlazorWASM/Program.cs b/modules/openiddict/app/OpenIddict.Demo.Client.BlazorWASM/Program.cs index 9995224252..f4a96ba0f8 100644 --- a/modules/openiddict/app/OpenIddict.Demo.Client.BlazorWASM/Program.cs +++ b/modules/openiddict/app/OpenIddict.Demo.Client.BlazorWASM/Program.cs @@ -21,6 +21,7 @@ builder.Services.AddOidcAuthentication(options => options.ProviderOptions.DefaultScopes.Add("roles"); options.ProviderOptions.DefaultScopes.Add("email"); options.ProviderOptions.DefaultScopes.Add("phone"); + options.ProviderOptions.DefaultScopes.Add("AbpAPI"); }); await builder.Build().RunAsync(); diff --git a/modules/openiddict/app/OpenIddict.Demo.Client.Mvc/Pages/Index.cshtml b/modules/openiddict/app/OpenIddict.Demo.Client.Mvc/Pages/Index.cshtml index ca7e62a411..51646646d1 100644 --- a/modules/openiddict/app/OpenIddict.Demo.Client.Mvc/Pages/Index.cshtml +++ b/modules/openiddict/app/OpenIddict.Demo.Client.Mvc/Pages/Index.cshtml @@ -45,24 +45,5 @@ } @apiResponse; - - request = new HttpRequestMessage(HttpMethod.Get, "https://localhost:44301/api/claims"); - request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", await HttpContext.GetTokenAsync("access_token")); - - response = await client.SendAsync(request); - - - @{ - apiResponse = response.StatusCode.ToString(); - if (response.IsSuccessStatusCode) - { - apiResponse = JsonSerializer.Serialize(JsonDocument.Parse(await response.Content.ReadAsStringAsync()), new JsonSerializerOptions - { - WriteIndented = true - }); - } - } - @apiResponse; - } diff --git a/modules/openiddict/app/OpenIddict.Demo.Server/EntityFrameworkCore/ServerDataSeedContributor.cs b/modules/openiddict/app/OpenIddict.Demo.Server/EntityFrameworkCore/ServerDataSeedContributor.cs index bf6a9cdb15..f63137a0e2 100644 --- a/modules/openiddict/app/OpenIddict.Demo.Server/EntityFrameworkCore/ServerDataSeedContributor.cs +++ b/modules/openiddict/app/OpenIddict.Demo.Server/EntityFrameworkCore/ServerDataSeedContributor.cs @@ -47,8 +47,10 @@ public class ServerDataSeedContributor : IDataSeedContributor, ITransientDepende { await _applicationManager.CreateAsync(new OpenIddictApplicationDescriptor { + ApplicationType = OpenIddictConstants.ApplicationTypes.Web, ClientId = "AbpApp", ClientSecret = "1q2w3e*", + ClientType = OpenIddictConstants.ClientTypes.Confidential, ConsentType = OpenIddictConstants.ConsentTypes.Explicit, DisplayName = "Abp Application", PostLogoutRedirectUris = @@ -93,6 +95,11 @@ public class ServerDataSeedContributor : IDataSeedContributor, ITransientDepende OpenIddictConstants.Permissions.Scopes.Address, OpenIddictConstants.Permissions.Scopes.Phone, OpenIddictConstants.Permissions.Prefixes.Scope + "AbpAPI" + }, + Settings = + { + // Use a shorter access token lifetime for tokens issued to the Postman application. + [OpenIddictConstants.Settings.TokenLifetimes.AccessToken] = TimeSpan.FromMinutes(5).ToString("c", CultureInfo.InvariantCulture) } }); } @@ -101,7 +108,9 @@ public class ServerDataSeedContributor : IDataSeedContributor, ITransientDepende { await _applicationManager.CreateAsync(new OpenIddictApplicationDescriptor { + ApplicationType = OpenIddictConstants.ApplicationTypes.Web, ClientId = "AbpBlazorWASMApp", + ClientType = OpenIddictConstants.ClientTypes.Public, ConsentType = OpenIddictConstants.ConsentTypes.Explicit, DisplayName = "Abp Blazor WASM Application", PostLogoutRedirectUris = diff --git a/modules/openiddict/app/OpenIddict.Demo.Server/Migrations/20231116094249_Initial.Designer.cs b/modules/openiddict/app/OpenIddict.Demo.Server/Migrations/20231207053813_Initial.Designer.cs similarity index 99% rename from modules/openiddict/app/OpenIddict.Demo.Server/Migrations/20231116094249_Initial.Designer.cs rename to modules/openiddict/app/OpenIddict.Demo.Server/Migrations/20231207053813_Initial.Designer.cs index a946b38999..a7a1b7a5b4 100644 --- a/modules/openiddict/app/OpenIddict.Demo.Server/Migrations/20231116094249_Initial.Designer.cs +++ b/modules/openiddict/app/OpenIddict.Demo.Server/Migrations/20231207053813_Initial.Designer.cs @@ -13,7 +13,7 @@ using Volo.Abp.EntityFrameworkCore; namespace OpenIddict.Demo.Server.Migrations { [DbContext(typeof(ServerDbContext))] - [Migration("20231116094249_Initial")] + [Migration("20231207053813_Initial")] partial class Initial { /// @@ -818,6 +818,10 @@ namespace OpenIddict.Demo.Server.Migrations .ValueGeneratedOnAdd() .HasColumnType("uniqueidentifier"); + b.Property("ApplicationType") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + b.Property("ClientId") .HasMaxLength(100) .HasColumnType("nvarchar(100)"); @@ -825,6 +829,10 @@ namespace OpenIddict.Demo.Server.Migrations b.Property("ClientSecret") .HasColumnType("nvarchar(max)"); + b.Property("ClientType") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + b.Property("ClientUri") .HasColumnType("nvarchar(max)"); @@ -872,6 +880,9 @@ namespace OpenIddict.Demo.Server.Migrations .HasDefaultValue(false) .HasColumnName("IsDeleted"); + b.Property("JsonWebKeySet") + .HasColumnType("nvarchar(max)"); + b.Property("LastModificationTime") .HasColumnType("datetime2") .HasColumnName("LastModificationTime"); @@ -898,9 +909,8 @@ namespace OpenIddict.Demo.Server.Migrations b.Property("Requirements") .HasColumnType("nvarchar(max)"); - b.Property("Type") - .HasMaxLength(50) - .HasColumnType("nvarchar(50)"); + b.Property("Settings") + .HasColumnType("nvarchar(max)"); b.HasKey("Id"); diff --git a/modules/openiddict/app/OpenIddict.Demo.Server/Migrations/20231116094249_Initial.cs b/modules/openiddict/app/OpenIddict.Demo.Server/Migrations/20231207053813_Initial.cs similarity index 99% rename from modules/openiddict/app/OpenIddict.Demo.Server/Migrations/20231116094249_Initial.cs rename to modules/openiddict/app/OpenIddict.Demo.Server/Migrations/20231207053813_Initial.cs index 89de930745..43e69e2d57 100644 --- a/modules/openiddict/app/OpenIddict.Demo.Server/Migrations/20231116094249_Initial.cs +++ b/modules/openiddict/app/OpenIddict.Demo.Server/Migrations/20231207053813_Initial.cs @@ -340,17 +340,20 @@ namespace OpenIddict.Demo.Server.Migrations columns: table => new { Id = table.Column(type: "uniqueidentifier", nullable: false), + ApplicationType = table.Column(type: "nvarchar(50)", maxLength: 50, nullable: true), ClientId = table.Column(type: "nvarchar(100)", maxLength: 100, nullable: true), ClientSecret = table.Column(type: "nvarchar(max)", nullable: true), + ClientType = table.Column(type: "nvarchar(50)", maxLength: 50, nullable: true), ConsentType = table.Column(type: "nvarchar(50)", maxLength: 50, nullable: true), DisplayName = table.Column(type: "nvarchar(max)", nullable: true), DisplayNames = table.Column(type: "nvarchar(max)", nullable: true), + JsonWebKeySet = table.Column(type: "nvarchar(max)", nullable: true), Permissions = table.Column(type: "nvarchar(max)", nullable: true), PostLogoutRedirectUris = table.Column(type: "nvarchar(max)", nullable: true), Properties = table.Column(type: "nvarchar(max)", nullable: true), RedirectUris = table.Column(type: "nvarchar(max)", nullable: true), Requirements = table.Column(type: "nvarchar(max)", nullable: true), - Type = table.Column(type: "nvarchar(50)", maxLength: 50, nullable: true), + Settings = table.Column(type: "nvarchar(max)", nullable: true), ClientUri = table.Column(type: "nvarchar(max)", nullable: true), LogoUri = table.Column(type: "nvarchar(max)", nullable: true), ExtraProperties = table.Column(type: "nvarchar(max)", nullable: false), diff --git a/modules/openiddict/app/OpenIddict.Demo.Server/Migrations/ServerDbContextModelSnapshot.cs b/modules/openiddict/app/OpenIddict.Demo.Server/Migrations/ServerDbContextModelSnapshot.cs index dcd97f6304..2ff52d58d5 100644 --- a/modules/openiddict/app/OpenIddict.Demo.Server/Migrations/ServerDbContextModelSnapshot.cs +++ b/modules/openiddict/app/OpenIddict.Demo.Server/Migrations/ServerDbContextModelSnapshot.cs @@ -815,6 +815,10 @@ namespace OpenIddict.Demo.Server.Migrations .ValueGeneratedOnAdd() .HasColumnType("uniqueidentifier"); + b.Property("ApplicationType") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + b.Property("ClientId") .HasMaxLength(100) .HasColumnType("nvarchar(100)"); @@ -822,6 +826,10 @@ namespace OpenIddict.Demo.Server.Migrations b.Property("ClientSecret") .HasColumnType("nvarchar(max)"); + b.Property("ClientType") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + b.Property("ClientUri") .HasColumnType("nvarchar(max)"); @@ -869,6 +877,9 @@ namespace OpenIddict.Demo.Server.Migrations .HasDefaultValue(false) .HasColumnName("IsDeleted"); + b.Property("JsonWebKeySet") + .HasColumnType("nvarchar(max)"); + b.Property("LastModificationTime") .HasColumnType("datetime2") .HasColumnName("LastModificationTime"); @@ -895,9 +906,8 @@ namespace OpenIddict.Demo.Server.Migrations b.Property("Requirements") .HasColumnType("nvarchar(max)"); - b.Property("Type") - .HasMaxLength(50) - .HasColumnType("nvarchar(50)"); + b.Property("Settings") + .HasColumnType("nvarchar(max)"); b.HasKey("Id"); diff --git a/modules/openiddict/app/OpenIddict.Demo.Server/package.json b/modules/openiddict/app/OpenIddict.Demo.Server/package.json index 0d892e1bbf..389a89a36f 100644 --- a/modules/openiddict/app/OpenIddict.Demo.Server/package.json +++ b/modules/openiddict/app/OpenIddict.Demo.Server/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "~8.0.0-rc.3" + "@abp/aspnetcore.mvc.ui.theme.basic": "~8.0.0" } } diff --git a/modules/openiddict/app/OpenIddict.Demo.Server/wwwroot/libs/abp/jquery/abp.jquery.js b/modules/openiddict/app/OpenIddict.Demo.Server/wwwroot/libs/abp/jquery/abp.jquery.js index 942bddd39e..9137fcc989 100644 --- a/modules/openiddict/app/OpenIddict.Demo.Server/wwwroot/libs/abp/jquery/abp.jquery.js +++ b/modules/openiddict/app/OpenIddict.Demo.Server/wwwroot/libs/abp/jquery/abp.jquery.js @@ -371,13 +371,18 @@ var abp = abp || {}; }; var _loadScript = function (url, loadCallback, failCallback) { + var nonce = document.body.nonce || document.body.getAttribute('nonce'); _loadFromUrl(url, loadCallback, failCallback, function (urlInfo) { $.get({ url: url, dataType: 'text' }) .done(function (script) { - $.globalEval(script); + if(nonce){ + $.globalEval(script, { nonce: nonce}); + }else{ + $.globalEval(script); + } urlInfo.succeed(); }) .fail(function () { diff --git a/modules/openiddict/app/OpenIddict.Demo.Server/yarn.lock b/modules/openiddict/app/OpenIddict.Demo.Server/yarn.lock index 9a20d73eef..9f48860d42 100644 --- a/modules/openiddict/app/OpenIddict.Demo.Server/yarn.lock +++ b/modules/openiddict/app/OpenIddict.Demo.Server/yarn.lock @@ -2,39 +2,39 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@~7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-7.0.0.tgz#b61845e6c2d7486575ab0fd177e7c87005f51d54" - integrity sha512-T4rhCG+O3agwD0pt7m/977ID8Hm0ME9zlqyHIQWiIIaRbicmgblr3OY5szv0C5ttCTUsjzeYlxtcv7I+7SXcaA== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~7.0.0" - -"@abp/aspnetcore.mvc.ui.theme.shared@~7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-7.0.0.tgz#d2c2785dfe0e482677a38d19f40399eddc246a3b" - integrity sha512-LNetkktN3cMuo28bTrKKC0qYo4vo6OKxWTSGX7tXI9uyd0fPHupwQSh5cNzrJ6KZjNLxINn6MphWiSbcTRYLZw== - dependencies: - "@abp/aspnetcore.mvc.ui" "~7.0.0" - "@abp/bootstrap" "~7.0.0" - "@abp/bootstrap-datepicker" "~7.0.0" - "@abp/bootstrap-daterangepicker" "~7.0.0" - "@abp/datatables.net-bs5" "~7.0.0" - "@abp/font-awesome" "~7.0.0" - "@abp/jquery-form" "~7.0.0" - "@abp/jquery-validation-unobtrusive" "~7.0.0" - "@abp/lodash" "~7.0.0" - "@abp/luxon" "~7.0.0" - "@abp/malihu-custom-scrollbar-plugin" "~7.0.0" - "@abp/moment" "~7.0.0" - "@abp/select2" "~7.0.0" - "@abp/sweetalert2" "~7.0.0" - "@abp/timeago" "~7.0.0" - "@abp/toastr" "~7.0.0" - -"@abp/aspnetcore.mvc.ui@~7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-7.0.0.tgz#9b55260d41c3dc0f94c6210b88ed8cdb549fea05" - integrity sha512-Ualz90DAgixUOV/B4xoQuGpSfpyDp8vsxB/56qnHcWtbHqdI9lEjdmZstH2CwV6Ey6vIDNMlPR3azbQlEkwslg== +"@abp/aspnetcore.mvc.ui.theme.basic@~8.0.0-rc.2": + version "8.0.0-rc.2" + resolved "https://www.myget.org/F/abp-nightly/npm/@abp/aspnetcore.mvc.ui.theme.basic/-/@abp/aspnetcore.mvc.ui.theme.basic-8.0.0-rc.2.tgz#ff10cf70d483fd12304e463ef240c113fceb2bb3" + integrity sha1-/xDPcNSD/RIwTkY+8kDBE/zrK7M= + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~8.0.0-rc.2" + +"@abp/aspnetcore.mvc.ui.theme.shared@~8.0.0-rc.2": + version "8.0.0-rc.2" + resolved "https://www.myget.org/F/abp-nightly/npm/@abp/aspnetcore.mvc.ui.theme.shared/-/@abp/aspnetcore.mvc.ui.theme.shared-8.0.0-rc.2.tgz#db570c960ad1b250292a0211317634fbeb762a52" + integrity sha1-21cMlgrRslApKgIRMXY0++t2KlI= + dependencies: + "@abp/aspnetcore.mvc.ui" "~8.0.0-rc.2" + "@abp/bootstrap" "~8.0.0-rc.2" + "@abp/bootstrap-datepicker" "~8.0.0-rc.2" + "@abp/bootstrap-daterangepicker" "~8.0.0-rc.2" + "@abp/datatables.net-bs5" "~8.0.0-rc.2" + "@abp/font-awesome" "~8.0.0-rc.2" + "@abp/jquery-form" "~8.0.0-rc.2" + "@abp/jquery-validation-unobtrusive" "~8.0.0-rc.2" + "@abp/lodash" "~8.0.0-rc.2" + "@abp/luxon" "~8.0.0-rc.2" + "@abp/malihu-custom-scrollbar-plugin" "~8.0.0-rc.2" + "@abp/moment" "~8.0.0-rc.2" + "@abp/select2" "~8.0.0-rc.2" + "@abp/sweetalert2" "~8.0.0-rc.2" + "@abp/timeago" "~8.0.0-rc.2" + "@abp/toastr" "~8.0.0-rc.2" + +"@abp/aspnetcore.mvc.ui@~8.0.0-rc.2": + version "8.0.0-rc.2" + resolved "https://www.myget.org/F/abp-nightly/npm/@abp/aspnetcore.mvc.ui/-/@abp/aspnetcore.mvc.ui-8.0.0-rc.2.tgz#57099c3064f462713940a1d40fbddfe7b14510eb" + integrity sha1-VwmcMGT0YnE5QKHUD73f57FFEOs= dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -43,160 +43,160 @@ merge-stream "^2.0.0" micromatch "^4.0.2" -"@abp/bootstrap-datepicker@~7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-7.0.0.tgz#7d83206c7a496addd9136ebd08635fd55e88e004" - integrity sha512-IBr1lyptW1w8E34yDfx8UcY/9QhWn54X+p1VsVi5vNsabIw/eV2cizfU200w7qdWRENJxWR2rCbvPAvfB79erA== +"@abp/bootstrap-datepicker@~8.0.0-rc.2": + version "8.0.0-rc.2" + resolved "https://www.myget.org/F/abp-nightly/npm/@abp/bootstrap-datepicker/-/@abp/bootstrap-datepicker-8.0.0-rc.2.tgz#85e41ff35b7306040e0dfdaabc04c9dec280ae0f" + integrity sha1-heQf81tzBgQODf2qvATJ3sKArg8= dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap-daterangepicker@~7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-7.0.0.tgz#8bbbbb5696edbe9dfb02c5057e5aaf0b1e4b3296" - integrity sha512-+dWOj3H5rerpt1JMIWeSEjWh2WkJxYy944BBO42G0TYVghrWFSZkpu3HQTJu4hc/WSEFcHBbE5DmbGmg8tSpvA== +"@abp/bootstrap-daterangepicker@~8.0.0-rc.2": + version "8.0.0-rc.2" + resolved "https://www.myget.org/F/abp-nightly/npm/@abp/bootstrap-daterangepicker/-/@abp/bootstrap-daterangepicker-8.0.0-rc.2.tgz#9380b4e29c69fe8ecec4877c9bbe443857e2e902" + integrity sha1-k4C04pxp/o7OxId8m75EOFfi6QI= dependencies: bootstrap-daterangepicker "^3.1.0" -"@abp/bootstrap@~7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-7.0.0.tgz#f28bf80bf0422c726a563588ed07697d0c990ec9" - integrity sha512-7u6x8hPf4ldpoxpVYZrIvo9AvVdUQdASaDWXgYiuIjgR+xvnVwD1cWI/jzAhKLnnVXfCpv9pcUYp6bfyCHpO8g== +"@abp/bootstrap@~8.0.0-rc.2": + version "8.0.0-rc.2" + resolved "https://www.myget.org/F/abp-nightly/npm/@abp/bootstrap/-/@abp/bootstrap-8.0.0-rc.2.tgz#9d36df7aa5b78ada6739633dabedf0c05fdedbde" + integrity sha1-nTbfeqW3itpnOWM9q+3wwF/e294= dependencies: - "@abp/core" "~7.0.0" + "@abp/core" "~8.0.0-rc.2" bootstrap "^5.1.3" -"@abp/core@~7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-7.0.0.tgz#f2f62ea826563cb7498dff1534f2e87a875002e4" - integrity sha512-I9V+amo8a4eYlKeMV6fxb+2uvBLZkuJv78IRilmL6jOxg5F9mJuvPzg7XQugMnDQ9NZXErjDW04DyR/5OfeIiA== +"@abp/core@~8.0.0-rc.2": + version "8.0.0-rc.2" + resolved "https://www.myget.org/F/abp-nightly/npm/@abp/core/-/@abp/core-8.0.0-rc.2.tgz#6167929da30563b3b2f1938be40648bd08db61af" + integrity sha1-YWeSnaMFY7Oy8ZOL5AZIvQjbYa8= dependencies: - "@abp/utils" "~7.0.0" + "@abp/utils" "~8.0.0-rc.2" -"@abp/datatables.net-bs5@~7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-7.0.0.tgz#f85e62d8f634dd0493f6e0bf093b43b1a83ccd1c" - integrity sha512-yul58rrMylQJUJS4aUZNpm85dLbU1IF84LESAqFKrRST0v3uK3/qXdXgir2XQt0cuOv33rQIrljKRovxxv57zA== +"@abp/datatables.net-bs5@~8.0.0-rc.2": + version "8.0.0-rc.2" + resolved "https://www.myget.org/F/abp-nightly/npm/@abp/datatables.net-bs5/-/@abp/datatables.net-bs5-8.0.0-rc.2.tgz#a5d36298ad7ddb59dc66917eeb10f3898d4f6e39" + integrity sha1-pdNimK1921ncZpF+6xDziY1Pbjk= dependencies: - "@abp/datatables.net" "~7.0.0" + "@abp/datatables.net" "~8.0.0-rc.2" datatables.net-bs5 "^1.11.4" -"@abp/datatables.net@~7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-7.0.0.tgz#d6b0557695070a3fdb939e4f3c6593a092881081" - integrity sha512-vETe0eUB5LXQP3oHdwjMibXYFcXmwjkZea3ZoCHH9IG/gLmmrr0zM8yQHwRJvJv+wkxUtp2cWwcMMLFmK5o2Aw== +"@abp/datatables.net@~8.0.0-rc.2": + version "8.0.0-rc.2" + resolved "https://www.myget.org/F/abp-nightly/npm/@abp/datatables.net/-/@abp/datatables.net-8.0.0-rc.2.tgz#267dcb7a49b708af83de3dfbdeb2f42617d46708" + integrity sha1-Jn3Lekm3CK+D3j373rL0JhfUZwg= dependencies: - "@abp/jquery" "~7.0.0" + "@abp/jquery" "~8.0.0-rc.2" datatables.net "^1.11.4" -"@abp/font-awesome@~7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-7.0.0.tgz#938f4e4cf3d46e0ec45fc60f568519f4df7221a3" - integrity sha512-UXiO/y9yrguhvev8BmFEKzdek0wMC25IwppMOsVmxtv/SiCRUsHGIzyTVs1ZLuvlL94cuxxqfIHrQrat423/0g== +"@abp/font-awesome@~8.0.0-rc.2": + version "8.0.0-rc.2" + resolved "https://www.myget.org/F/abp-nightly/npm/@abp/font-awesome/-/@abp/font-awesome-8.0.0-rc.2.tgz#2c7f392d4a7971f34ef6fa2835901183b2731976" + integrity sha1-LH85LUp5cfNO9vooNZARg7JzGXY= dependencies: - "@abp/core" "~7.0.0" + "@abp/core" "~8.0.0-rc.2" "@fortawesome/fontawesome-free" "^5.15.4" -"@abp/jquery-form@~7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-7.0.0.tgz#86a051c9d98b51ce70d15ee578cf4f5d9c628030" - integrity sha512-nm89ufHtO+QFaVZ+TwihuWgmEpxhaFoUUbuD7Plzt3PpFWeGet722yTma7MUr10FUTIshOiBBWJ84+ak+CMqgA== +"@abp/jquery-form@~8.0.0-rc.2": + version "8.0.0-rc.2" + resolved "https://www.myget.org/F/abp-nightly/npm/@abp/jquery-form/-/@abp/jquery-form-8.0.0-rc.2.tgz#45e2a3d838ed8c2b3f59aa6eb6f62b2e7a5934fa" + integrity sha1-ReKj2DjtjCs/WaputvYrLnpZNPo= dependencies: - "@abp/jquery" "~7.0.0" + "@abp/jquery" "~8.0.0-rc.2" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-7.0.0.tgz#5049fc367ed8ed7b0faff63b89a7eee1619afaf9" - integrity sha512-B8OPreI05utq3IPyU+/713e0c35OjQrS5OKO7dZs1D6V9L6S/VzkeD3sdoVJQ0Syh59KcSr3IGr1F9VM1O0LJw== +"@abp/jquery-validation-unobtrusive@~8.0.0-rc.2": + version "8.0.0-rc.2" + resolved "https://www.myget.org/F/abp-nightly/npm/@abp/jquery-validation-unobtrusive/-/@abp/jquery-validation-unobtrusive-8.0.0-rc.2.tgz#c6a4e3081f1d7eadff34592b8cf0498db40170a0" + integrity sha1-xqTjCB8dfq3/NFkrjPBJjbQBcKA= dependencies: - "@abp/jquery-validation" "~7.0.0" + "@abp/jquery-validation" "~8.0.0-rc.2" jquery-validation-unobtrusive "^3.2.12" -"@abp/jquery-validation@~7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-7.0.0.tgz#eebadba703391ce6dea1a5217a177af0bafe4f4b" - integrity sha512-6YrYZhVZBTt3897eR0t/b9cQp4gMsiylhe6xqtZBhcuTlS5q0ac30UeiOj9bsBisg4TWS6+3XZYUccdM38YE0Q== +"@abp/jquery-validation@~8.0.0-rc.2": + version "8.0.0-rc.2" + resolved "https://www.myget.org/F/abp-nightly/npm/@abp/jquery-validation/-/@abp/jquery-validation-8.0.0-rc.2.tgz#4282682538c450bffaba2558cbcc8ac9779736b6" + integrity sha1-QoJoJTjEUL/6uiVYy8yKyXeXNrY= dependencies: - "@abp/jquery" "~7.0.0" + "@abp/jquery" "~8.0.0-rc.2" jquery-validation "^1.19.3" -"@abp/jquery@~7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-7.0.0.tgz#0ec51b53c92bd23100bbbe1f719e7e1c13c41406" - integrity sha512-Gsyl1Bl6ahIv1Sc0y1Zt9iaYeS3HCjx7mxJGMitQiKOmKRNHDX6bOzcUN2tY3CaZ+Q5lgHw9RNehleFF2AasJw== +"@abp/jquery@~8.0.0-rc.2": + version "8.0.0-rc.2" + resolved "https://www.myget.org/F/abp-nightly/npm/@abp/jquery/-/@abp/jquery-8.0.0-rc.2.tgz#e54905bbd5efa13f9a87854608f103e15757a26c" + integrity sha1-5UkFu9XvoT+ah4VGCPED4VdXomw= dependencies: - "@abp/core" "~7.0.0" + "@abp/core" "~8.0.0-rc.2" jquery "~3.6.0" -"@abp/lodash@~7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-7.0.0.tgz#7086287a6fafee12a44b2c2abc3c9bea4338ebde" - integrity sha512-JbUxeZNB/RYETPxALKuMJ78SeuVxHPXjsl1lv21XrRhOU6SaQMIFMHWL7AlfLjLS/ibbSXHoHM1K/YwkN3zAZQ== +"@abp/lodash@~8.0.0-rc.2": + version "8.0.0-rc.2" + resolved "https://www.myget.org/F/abp-nightly/npm/@abp/lodash/-/@abp/lodash-8.0.0-rc.2.tgz#1bca1821db7524e1c612cfe23319abab5d874453" + integrity sha1-G8oYIdt1JOHGEs/iMxmrq12HRFM= dependencies: - "@abp/core" "~7.0.0" + "@abp/core" "~8.0.0-rc.2" lodash "^4.17.21" -"@abp/luxon@~7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-7.0.0.tgz#5f781dc826fc1f15af9da52b032f2d4fc1b61c4d" - integrity sha512-zbHZuvkH4F5f0/r2Rfr42k+iNkHlJJKZMCyaCjcDcypLHg/HSsVnpVNjqCrdggSxDgx/7jdf6M3aRIa6hINthA== +"@abp/luxon@~8.0.0-rc.2": + version "8.0.0-rc.2" + resolved "https://www.myget.org/F/abp-nightly/npm/@abp/luxon/-/@abp/luxon-8.0.0-rc.2.tgz#336800a04fd72c42f2b9a00da864a708d0c730c6" + integrity sha1-M2gAoE/XLELyuaANqGSnCNDHMMY= dependencies: - "@abp/core" "~7.0.0" + "@abp/core" "~8.0.0-rc.2" luxon "^2.3.0" -"@abp/malihu-custom-scrollbar-plugin@~7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-7.0.0.tgz#6d01a2a75d04bb1919a9ef4c6bfb8559fb2a1744" - integrity sha512-S6rlGNtcgFtfyuF2/1yoeA6VWE1a4ChGWll08DAwM9oz4ULU2vsjQCsbcLB3uhgmTKmF0Q7I964AF1Ngc7FfrQ== +"@abp/malihu-custom-scrollbar-plugin@~8.0.0-rc.2": + version "8.0.0-rc.2" + resolved "https://www.myget.org/F/abp-nightly/npm/@abp/malihu-custom-scrollbar-plugin/-/@abp/malihu-custom-scrollbar-plugin-8.0.0-rc.2.tgz#30e7f8fb1edfa921e413f7c166fcac03c9702993" + integrity sha1-MOf4+x7fqSHkE/fBZvysA8lwKZM= dependencies: - "@abp/core" "~7.0.0" + "@abp/core" "~8.0.0-rc.2" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/moment@~7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-7.0.0.tgz#fd5480a0f4e59e6cad7fb7dda1167e75eb9b872d" - integrity sha512-22gWkJgb16DAuq4dqol5gNR1xXkJLXfI30lOOMFhGAuFNlyhQiaZH7tk/pt/wk8+74zi5swdcx42R4C4ioJsMg== +"@abp/moment@~8.0.0-rc.2": + version "8.0.0-rc.2" + resolved "https://www.myget.org/F/abp-nightly/npm/@abp/moment/-/@abp/moment-8.0.0-rc.2.tgz#47e65d9cd7f58d2902da2df584d23d6500c9aa4e" + integrity sha1-R+ZdnNf1jSkC2i31hNI9ZQDJqk4= dependencies: moment "^2.9.0" -"@abp/select2@~7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-7.0.0.tgz#510b6a281beb10708609308fe8a001ceb294bdbe" - integrity sha512-1LsxnglYz87zus2XLiknmnISq1WB+FOqNVkVEV5B/tgjZxB47QDHlBAsDq+CVSUdHupvyaoqjvzjhepQWn4lXg== +"@abp/select2@~8.0.0-rc.2": + version "8.0.0-rc.2" + resolved "https://www.myget.org/F/abp-nightly/npm/@abp/select2/-/@abp/select2-8.0.0-rc.2.tgz#eab2d8c788490dfb42e164535a2ec0e5341c9463" + integrity sha1-6rLYx4hJDftC4WRTWi7A5TQclGM= dependencies: - "@abp/core" "~7.0.0" + "@abp/core" "~8.0.0-rc.2" select2 "^4.0.13" -"@abp/sweetalert2@~7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-7.0.0.tgz#0c4ff48755bbc13e00430a5c7107a2d3c0f4ffc6" - integrity sha512-mVFfikx48hnYqQzvmkrYw1pa+ggKkLD+S94U70aEMZE+pqYsVzkPHckFKPqi+iQL265iQ8zTLgeclYCrOsEnrg== +"@abp/sweetalert2@~8.0.0-rc.2": + version "8.0.0-rc.2" + resolved "https://www.myget.org/F/abp-nightly/npm/@abp/sweetalert2/-/@abp/sweetalert2-8.0.0-rc.2.tgz#7c3ca3ffff01a43a3603f49a1986f162157e2a72" + integrity sha1-fDyj//8BpDo2A/SaGYbxYhV+KnI= dependencies: - "@abp/core" "~7.0.0" + "@abp/core" "~8.0.0-rc.2" sweetalert2 "^11.3.6" -"@abp/timeago@~7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-7.0.0.tgz#b5c0a98511cef63d24d51c531adccc135d12706e" - integrity sha512-Y4PZxP4YVUVIQp8mQtNCxdsK9JxxQj7QJURGVtS+v4bfr6HO9GHK2Byq57ypCdB6hHcn+DJ/NHJV8qANcjHnFA== +"@abp/timeago@~8.0.0-rc.2": + version "8.0.0-rc.2" + resolved "https://www.myget.org/F/abp-nightly/npm/@abp/timeago/-/@abp/timeago-8.0.0-rc.2.tgz#ed98d40b1fa2fa7e65bc3ad84db896e32184a112" + integrity sha1-7ZjUCx+i+n5lvDrYTbiW4yGEoRI= dependencies: - "@abp/jquery" "~7.0.0" + "@abp/jquery" "~8.0.0-rc.2" timeago "^1.6.7" -"@abp/toastr@~7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-7.0.0.tgz#4704e61aa0ac741dd4a53505533a5278b5c205cb" - integrity sha512-kDd4YkyOInBs1u1enOL6ov8HKUJwZbJ3Dx0GI+UNnl+7/LFboeWBfsGukDTVaCn8U73jEP+wbc98mTe8j2coZA== +"@abp/toastr@~8.0.0-rc.2": + version "8.0.0-rc.2" + resolved "https://www.myget.org/F/abp-nightly/npm/@abp/toastr/-/@abp/toastr-8.0.0-rc.2.tgz#c494bb1070ef6aa80d443d11a61f93c03d82f543" + integrity sha1-xJS7EHDvaqgNRD0Rph+TwD2C9UM= dependencies: - "@abp/jquery" "~7.0.0" + "@abp/jquery" "~8.0.0-rc.2" toastr "^2.1.4" -"@abp/utils@~7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-7.0.0.tgz#662645b8774b048ba5eb6f7971fa1f20b909ad96" - integrity sha512-JLufGsUmZ8jUdZNteXXp/phYqVCiOHO6ymMyd2oUjVEnRh3wRtRs4snhN2MQruGa6KCbPHkjGhXiQTUo75IbaQ== +"@abp/utils@~8.0.0-rc.2": + version "8.0.0-rc.2" + resolved "https://www.myget.org/F/abp-nightly/npm/@abp/utils/-/@abp/utils-8.0.0-rc.2.tgz#c2959e5161e4102d5757a571d16bd3a4316779fb" + integrity sha1-wpWeUWHkEC1XV6Vx0WvTpDFnefs= dependencies: - just-compare "^1.3.0" + just-compare "^2.3.0" "@fortawesome/fontawesome-free@^5.15.4": version "5.15.4" @@ -1439,10 +1439,10 @@ json-stable-stringify-without-jsonify@^1.0.1: resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= -just-compare@^1.3.0: - version "1.5.1" - resolved "https://registry.yarnpkg.com/just-compare/-/just-compare-1.5.1.tgz#aed7e93e6bae9c3b69d79aea7805684132a0c0c5" - integrity sha512-xDEEFHNIyJNmN4uo/2RVeUcay9THtN/5ka/iw98Y/gsa8w9KXZQuyaf5eFUY6VlntA2+G+bdPmdhqqTs7T+BRw== +just-compare@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/just-compare/-/just-compare-2.3.0.tgz#a2adcc1d1940536263275f5a1ef1298bcacfeda7" + integrity sha512-6shoR7HDT+fzfL3gBahx1jZG3hWLrhPAf+l7nCwahDdT9XDtosB9kIF0ZrzUp5QY8dJWfQVr5rnsPqsbvflDzg== just-debounce@^1.0.0: version "1.1.0" diff --git a/modules/openiddict/app/angular/package.json b/modules/openiddict/app/angular/package.json index 222da19040..1243eac1b6 100644 --- a/modules/openiddict/app/angular/package.json +++ b/modules/openiddict/app/angular/package.json @@ -12,14 +12,14 @@ }, "private": true, "dependencies": { - "@abp/ng.account": "~8.0.0-rc.3", - "@abp/ng.components": "~8.0.0-rc.3", - "@abp/ng.core": "~8.0.0-rc.3", - "@abp/ng.oauth": "~8.0.0-rc.3", - "@abp/ng.identity": "~8.0.0-rc.3", - "@abp/ng.setting-management": "~8.0.0-rc.3", - "@abp/ng.tenant-management": "~8.0.0-rc.3", - "@abp/ng.theme.shared": "~8.0.0-rc.3", + "@abp/ng.account": "~8.0.0", + "@abp/ng.components": "~8.0.0", + "@abp/ng.core": "~8.0.0", + "@abp/ng.oauth": "~8.0.0", + "@abp/ng.identity": "~8.0.0", + "@abp/ng.setting-management": "~8.0.0", + "@abp/ng.tenant-management": "~8.0.0", + "@abp/ng.theme.shared": "~8.0.0", "@abp/ng.theme.lepton-x": "~3.0.0-rc.1", "@angular/animations": "^15.0.1", "@angular/common": "^15.0.1", @@ -36,7 +36,7 @@ "zone.js": "~0.11.4" }, "devDependencies": { - "@abp/ng.schematics": "~8.0.0-rc.3", + "@abp/ng.schematics": "~8.0.0", "@angular-devkit/build-angular": "^15.0.1", "@angular-eslint/builder": "~15.1.0", "@angular-eslint/eslint-plugin": "~15.1.0", diff --git a/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/RemoveClaimsFromClientCredentialsGrantType.cs b/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/RemoveClaimsFromClientCredentialsGrantType.cs index 8ac866283b..08fdddbaa9 100644 --- a/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/RemoveClaimsFromClientCredentialsGrantType.cs +++ b/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/RemoveClaimsFromClientCredentialsGrantType.cs @@ -14,7 +14,7 @@ public class RemoveClaimsFromClientCredentialsGrantType : IOpenIddictServerHandl .SetType(OpenIddictServerHandlerType.Custom) .Build(); - public ValueTask HandleAsync(OpenIddictServerEvents.ProcessSignInContext context) + public virtual ValueTask HandleAsync(OpenIddictServerEvents.ProcessSignInContext context) { if (context.Request.IsClientCredentialsGrantType()) { diff --git a/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/Scopes/AttachScopes.cs b/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/Scopes/AttachScopes.cs index 75401ada2b..d3636b6b1a 100644 --- a/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/Scopes/AttachScopes.cs +++ b/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/Scopes/AttachScopes.cs @@ -21,7 +21,7 @@ public class AttachScopes : IOpenIddictServerHandler : IOpenIddictServerHandler +public abstract class AbpOpenIddictWildcardDomainBase : IOpenIddictServerHandler where THandler : class + where TOriginalHandler : class where TContext : OpenIddictServerEvents.BaseContext { - protected THandler Handler { get; set; } + public ILogger Logger { get; set; } + protected TOriginalHandler OriginalHandler { get; set; } protected AbpOpenIddictWildcardDomainOptions WildcardDomainOptions { get; } - protected AbpOpenIddictWildcardDomainBase(IOptions wildcardDomainOptions, THandler handler) + protected AbpOpenIddictWildcardDomainBase(IOptions wildcardDomainOptions, TOriginalHandler originalHandler) { WildcardDomainOptions = wildcardDomainOptions.Value; - Handler = handler; + OriginalHandler = originalHandler; + + Logger = NullLogger.Instance; } public abstract ValueTask HandleAsync(TContext context); protected virtual Task CheckWildcardDomainAsync(string url) { + Logger.LogDebug("Checking wildcard domain for url: {url}", url); + foreach (var domainFormat in WildcardDomainOptions.WildcardDomainsFormat) { + Logger.LogDebug("Checking wildcard domain format: {domainFormat}", domainFormat); var extractResult = FormattedStringValueExtracter.Extract(url, domainFormat, ignoreCase: true); if (extractResult.IsMatch) { + Logger.LogDebug("Wildcard domain found for url: {url}", url); return Task.FromResult(true); } } foreach (var domainFormat in WildcardDomainOptions.WildcardDomainsFormat) { + Logger.LogDebug("Checking wildcard domain format: {domainFormat}", domainFormat); if (domainFormat.Replace("{0}.", "").Equals(url, StringComparison.OrdinalIgnoreCase)) { + Logger.LogDebug("Wildcard domain found for url: {url}", url); return Task.FromResult(true); } } + Logger.LogDebug("Wildcard domain not found for url: {url}", url); return Task.FromResult(false); } } diff --git a/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/WildcardDomains/AbpOpenIddictWildcardDomainOptions.cs b/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/WildcardDomains/AbpOpenIddictWildcardDomainOptions.cs index 5b0e8f591a..358974e3d6 100644 --- a/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/WildcardDomains/AbpOpenIddictWildcardDomainOptions.cs +++ b/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/WildcardDomains/AbpOpenIddictWildcardDomainOptions.cs @@ -12,5 +12,4 @@ public class AbpOpenIddictWildcardDomainOptions { WildcardDomainsFormat = new HashSet(); } - } diff --git a/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/WildcardDomains/AbpValidateAuthorizedParty.cs b/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/WildcardDomains/AbpValidateAuthorizedParty.cs index 89ebfee28c..5c22de29a2 100644 --- a/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/WildcardDomains/AbpValidateAuthorizedParty.cs +++ b/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/WildcardDomains/AbpValidateAuthorizedParty.cs @@ -5,12 +5,12 @@ using OpenIddict.Server; namespace Volo.Abp.OpenIddict.WildcardDomains; -public class AbpValidateAuthorizedParty : AbpOpenIddictWildcardDomainBase +public class AbpValidateAuthorizedParty : AbpOpenIddictWildcardDomainBase { public static OpenIddictServerHandlerDescriptor Descriptor { get; } = OpenIddictServerHandlerDescriptor.CreateBuilder() .UseScopedHandler() - .SetOrder(OpenIddictServerHandlers.Session.ValidateToken.Descriptor.Order + 1_000) + .SetOrder(OpenIddictServerHandlers.Session.ValidateEndpointPermissions.Descriptor.Order + 1_000) .SetType(OpenIddictServerHandlerType.BuiltIn) .Build(); @@ -19,7 +19,7 @@ public class AbpValidateAuthorizedParty : AbpOpenIddictWildcardDomainBase +public class AbpValidateClientPostLogoutRedirectUri : AbpOpenIddictWildcardDomainBase { public static OpenIddictServerHandlerDescriptor Descriptor { get; } = OpenIddictServerHandlerDescriptor.CreateBuilder() @@ -21,7 +21,7 @@ public class AbpValidateClientPostLogoutRedirectUri : AbpOpenIddictWildcardDomai IOpenIddictApplicationManager applicationManager) : base(wildcardDomainsOptions, new OpenIddictServerHandlers.Session.ValidateClientPostLogoutRedirectUri(applicationManager)) { - Handler = new OpenIddictServerHandlers.Session.ValidateClientPostLogoutRedirectUri(applicationManager); + OriginalHandler = new OpenIddictServerHandlers.Session.ValidateClientPostLogoutRedirectUri(applicationManager); } public async override ValueTask HandleAsync(OpenIddictServerEvents.ValidateLogoutRequestContext context) @@ -34,6 +34,6 @@ public class AbpValidateClientPostLogoutRedirectUri : AbpOpenIddictWildcardDomai return; } - await Handler.HandleAsync(context); + await OriginalHandler.HandleAsync(context); } } diff --git a/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/WildcardDomains/AbpValidateClientRedirectUri.cs b/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/WildcardDomains/AbpValidateClientRedirectUri.cs index 739d34b39b..914c6960d3 100644 --- a/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/WildcardDomains/AbpValidateClientRedirectUri.cs +++ b/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/WildcardDomains/AbpValidateClientRedirectUri.cs @@ -5,13 +5,13 @@ using OpenIddict.Server; namespace Volo.Abp.OpenIddict.WildcardDomains; -public class AbpValidateClientRedirectUri : AbpOpenIddictWildcardDomainBase +public class AbpValidateClientRedirectUri : AbpOpenIddictWildcardDomainBase { public static OpenIddictServerHandlerDescriptor Descriptor { get; } = OpenIddictServerHandlerDescriptor.CreateBuilder() .AddFilter() .UseScopedHandler() - .SetOrder(OpenIddictServerHandlers.Authentication.ValidateClientType.Descriptor.Order + 1_000) + .SetOrder(OpenIddictServerHandlers.Authentication.ValidateResponseType.Descriptor.Order + 1_000) .SetType(OpenIddictServerHandlerType.BuiltIn) .Build(); @@ -20,7 +20,7 @@ public class AbpValidateClientRedirectUri : AbpOpenIddictWildcardDomainBase +public class AbpValidatePostLogoutRedirectUriParameter : AbpOpenIddictWildcardDomainBase { public static OpenIddictServerHandlerDescriptor Descriptor { get; } = OpenIddictServerHandlerDescriptor.CreateBuilder() @@ -14,7 +14,7 @@ public class AbpValidatePostLogoutRedirectUriParameter : AbpOpenIddictWildcardDo .Build(); public AbpValidatePostLogoutRedirectUriParameter(IOptions wildcardDomainsOptions) - : base(wildcardDomainsOptions, new OpenIddictServerHandlers.Session.ValidatePostLogoutRedirectUriParameter()) + : base(wildcardDomainsOptions, new OpenIddictServerHandlers.Session.ValidatePostLogoutRedirectUriParameter()) { } @@ -27,6 +27,6 @@ public class AbpValidatePostLogoutRedirectUriParameter : AbpOpenIddictWildcardDo return; } - await Handler.HandleAsync(context); + await OriginalHandler.HandleAsync(context); } } diff --git a/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/WildcardDomains/AbpValidateRedirectUriParameter.cs b/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/WildcardDomains/AbpValidateRedirectUriParameter.cs index 3bac84e2c4..cc52e3d2b0 100644 --- a/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/WildcardDomains/AbpValidateRedirectUriParameter.cs +++ b/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/WildcardDomains/AbpValidateRedirectUriParameter.cs @@ -4,7 +4,7 @@ using OpenIddict.Server; namespace Volo.Abp.OpenIddict.WildcardDomains; -public class AbpValidateRedirectUriParameter : AbpOpenIddictWildcardDomainBase +public class AbpValidateRedirectUriParameter : AbpOpenIddictWildcardDomainBase { public static OpenIddictServerHandlerDescriptor Descriptor { get; } = OpenIddictServerHandlerDescriptor.CreateBuilder() @@ -27,6 +27,6 @@ public class AbpValidateRedirectUriParameter : AbpOpenIddictWildcardDomainBase CountAsync(CancellationToken cancellationToken) + public virtual async ValueTask CountAsync(CancellationToken cancellationToken) { return await Repository.GetCountAsync(cancellationToken); } - public ValueTask CountAsync(Func, IQueryable> query, CancellationToken cancellationToken) + public virtual ValueTask CountAsync(Func, IQueryable> query, CancellationToken cancellationToken) { throw new NotSupportedException(); } - public async ValueTask CreateAsync(OpenIddictApplicationModel application, CancellationToken cancellationToken) + public virtual async ValueTask CreateAsync(OpenIddictApplicationModel application, CancellationToken cancellationToken) { Check.NotNull(application, nameof(application)); @@ -52,7 +53,7 @@ public class AbpOpenIddictApplicationStore : AbpOpenIddictStoreBase FindByIdAsync(string identifier, CancellationToken cancellationToken) + public virtual async ValueTask FindByIdAsync(string identifier, CancellationToken cancellationToken) { Check.NotNullOrEmpty(identifier, nameof(identifier)); return (await Repository.FindAsync(ConvertIdentifierFromString(identifier), cancellationToken: cancellationToken)).ToModel(); } - public async ValueTask FindByClientIdAsync(string identifier, CancellationToken cancellationToken) + public virtual async ValueTask FindByClientIdAsync(string identifier, CancellationToken cancellationToken) { Check.NotNullOrEmpty(identifier, nameof(identifier)); return (await Repository.FindByClientIdAsync(identifier, cancellationToken: cancellationToken)).ToModel(); } - public async IAsyncEnumerable FindByPostLogoutRedirectUriAsync(string uris, [EnumeratorCancellation] CancellationToken cancellationToken) + public virtual async IAsyncEnumerable FindByPostLogoutRedirectUriAsync(string uris, [EnumeratorCancellation] CancellationToken cancellationToken) { Check.NotNullOrEmpty(uris, nameof(uris)); @@ -105,7 +106,7 @@ public class AbpOpenIddictApplicationStore : AbpOpenIddictStoreBase FindByRedirectUriAsync(string uri, [EnumeratorCancellation] CancellationToken cancellationToken) + public virtual async IAsyncEnumerable FindByRedirectUriAsync(string uri, [EnumeratorCancellation] CancellationToken cancellationToken) { Check.NotNullOrEmpty(uri, nameof(uri)); @@ -120,46 +121,53 @@ public class AbpOpenIddictApplicationStore : AbpOpenIddictStoreBase GetAsync(Func, TState, IQueryable> query, TState state, CancellationToken cancellationToken) + public virtual ValueTask GetApplicationTypeAsync(OpenIddictApplicationModel application, CancellationToken cancellationToken) + { + Check.NotNull(application, nameof(application)); + + return new ValueTask(application.ApplicationType); + } + + public virtual ValueTask GetAsync(Func, TState, IQueryable> query, TState state, CancellationToken cancellationToken) { throw new NotSupportedException(); } - public ValueTask GetClientIdAsync(OpenIddictApplicationModel application, CancellationToken cancellationToken) + public virtual ValueTask GetClientIdAsync(OpenIddictApplicationModel application, CancellationToken cancellationToken) { Check.NotNull(application, nameof(application)); return new ValueTask(application.ClientId); } - public ValueTask GetClientSecretAsync(OpenIddictApplicationModel application, CancellationToken cancellationToken) + public virtual ValueTask GetClientSecretAsync(OpenIddictApplicationModel application, CancellationToken cancellationToken) { Check.NotNull(application, nameof(application)); return new ValueTask(application.ClientSecret); } - public ValueTask GetClientTypeAsync(OpenIddictApplicationModel application, CancellationToken cancellationToken) + public virtual ValueTask GetClientTypeAsync(OpenIddictApplicationModel application, CancellationToken cancellationToken) { Check.NotNull(application, nameof(application)); - return new ValueTask(application.Type); + return new ValueTask(application.ClientType); } - public ValueTask GetConsentTypeAsync(OpenIddictApplicationModel application, CancellationToken cancellationToken) + public virtual ValueTask GetConsentTypeAsync(OpenIddictApplicationModel application, CancellationToken cancellationToken) { Check.NotNull(application, nameof(application)); return new ValueTask(application.ConsentType); } - public ValueTask GetDisplayNameAsync(OpenIddictApplicationModel application, CancellationToken cancellationToken) + public virtual ValueTask GetDisplayNameAsync(OpenIddictApplicationModel application, CancellationToken cancellationToken) { Check.NotNull(application, nameof(application)); return new ValueTask(application.DisplayName); } - public ValueTask> GetDisplayNamesAsync(OpenIddictApplicationModel application, CancellationToken cancellationToken) + public virtual ValueTask> GetDisplayNamesAsync(OpenIddictApplicationModel application, CancellationToken cancellationToken) { Check.NotNull(application, nameof(application)); @@ -187,14 +195,21 @@ public class AbpOpenIddictApplicationStore : AbpOpenIddictStoreBase GetIdAsync(OpenIddictApplicationModel application, CancellationToken cancellationToken) + public virtual ValueTask GetIdAsync(OpenIddictApplicationModel application, CancellationToken cancellationToken) { Check.NotNull(application, nameof(application)); return new ValueTask(ConvertIdentifierToString(application.Id)); } - public ValueTask> GetPermissionsAsync(OpenIddictApplicationModel application, CancellationToken cancellationToken) + public virtual ValueTask GetJsonWebKeySetAsync(OpenIddictApplicationModel application, CancellationToken cancellationToken) + { + Check.NotNull(application, nameof(application)); + + return new ValueTask(application.JsonWebKeySet); + } + + public virtual ValueTask> GetPermissionsAsync(OpenIddictApplicationModel application, CancellationToken cancellationToken) { Check.NotNull(application, nameof(application)); @@ -222,7 +237,7 @@ public class AbpOpenIddictApplicationStore : AbpOpenIddictStoreBase> GetPostLogoutRedirectUrisAsync(OpenIddictApplicationModel application, CancellationToken cancellationToken) + public virtual ValueTask> GetPostLogoutRedirectUrisAsync(OpenIddictApplicationModel application, CancellationToken cancellationToken) { Check.NotNull(application, nameof(application)); @@ -250,7 +265,7 @@ public class AbpOpenIddictApplicationStore : AbpOpenIddictStoreBase> GetPropertiesAsync(OpenIddictApplicationModel application, CancellationToken cancellationToken) + public virtual ValueTask> GetPropertiesAsync(OpenIddictApplicationModel application, CancellationToken cancellationToken) { Check.NotNull(application, nameof(application)); @@ -271,7 +286,7 @@ public class AbpOpenIddictApplicationStore : AbpOpenIddictStoreBase> GetRedirectUrisAsync(OpenIddictApplicationModel application, CancellationToken cancellationToken) + public virtual ValueTask> GetRedirectUrisAsync(OpenIddictApplicationModel application, CancellationToken cancellationToken) { Check.NotNull(application, nameof(application)); @@ -299,7 +314,7 @@ public class AbpOpenIddictApplicationStore : AbpOpenIddictStoreBase> GetRequirementsAsync(OpenIddictApplicationModel application, CancellationToken cancellationToken) + public virtual ValueTask> GetRequirementsAsync(OpenIddictApplicationModel application, CancellationToken cancellationToken) { Check.NotNull(application, nameof(application)); @@ -327,7 +342,35 @@ public class AbpOpenIddictApplicationStore : AbpOpenIddictStoreBase InstantiateAsync(CancellationToken cancellationToken) + public virtual ValueTask> GetSettingsAsync(OpenIddictApplicationModel application, CancellationToken cancellationToken) + { + Check.NotNull(application, nameof(application)); + + if (string.IsNullOrEmpty(application.Settings)) + { + return new ValueTask>(ImmutableDictionary.Create()); + } + + using (var document = JsonDocument.Parse(application.Settings)) + { + var builder = ImmutableDictionary.CreateBuilder(); + + foreach (var property in document.RootElement.EnumerateObject()) + { + var value = property.Value.GetString(); + if (string.IsNullOrEmpty(value)) + { + continue; + } + + builder[property.Name] = value; + } + + return new ValueTask>(builder.ToImmutable()); + } + } + + public virtual ValueTask InstantiateAsync(CancellationToken cancellationToken) { return new ValueTask(new OpenIddictApplicationModel { @@ -335,7 +378,7 @@ public class AbpOpenIddictApplicationStore : AbpOpenIddictStoreBase ListAsync(int? count, int? offset, [EnumeratorCancellation] CancellationToken cancellationToken) + public virtual async IAsyncEnumerable ListAsync(int? count, int? offset, [EnumeratorCancellation] CancellationToken cancellationToken) { var applications = await Repository.ListAsync(count, offset, cancellationToken); foreach (var application in applications) @@ -344,11 +387,19 @@ public class AbpOpenIddictApplicationStore : AbpOpenIddictStoreBase ListAsync(Func, TState, IQueryable> query, TState state, CancellationToken cancellationToken) + public virtual IAsyncEnumerable ListAsync(Func, TState, IQueryable> query, TState state, CancellationToken cancellationToken) { throw new NotSupportedException(); } + public virtual ValueTask SetApplicationTypeAsync(OpenIddictApplicationModel application, string type, CancellationToken cancellationToken) + { + Check.NotNull(application, nameof(application)); + + application.ApplicationType = type; + return default; + } + public virtual ValueTask SetClientIdAsync(OpenIddictApplicationModel application, string identifier, CancellationToken cancellationToken) { Check.NotNull(application, nameof(application)); @@ -369,7 +420,7 @@ public class AbpOpenIddictApplicationStore : AbpOpenIddictStoreBase permissions, CancellationToken cancellationToken) { @@ -534,6 +593,30 @@ public class AbpOpenIddictApplicationStore : AbpOpenIddictStoreBase settings, CancellationToken cancellationToken) + { + Check.NotNull(application, nameof(application)); + + if (settings.IsEmpty) + { + application.Settings = null; + return default; + } + + application.Settings = WriteStream(writer => + { + writer.WriteStartObject(); + foreach (var setting in settings) + { + writer.WritePropertyName(setting.Key); + writer.WriteStringValue(setting.Value); + } + writer.WriteEndObject(); + }); + + return default; + } + public virtual async ValueTask UpdateAsync(OpenIddictApplicationModel application, CancellationToken cancellationToken) { Check.NotNull(application, nameof(application)); diff --git a/modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/Applications/OpenIddictApplication.cs b/modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/Applications/OpenIddictApplication.cs index 6098f67392..e88370e874 100644 --- a/modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/Applications/OpenIddictApplication.cs +++ b/modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/Applications/OpenIddictApplication.cs @@ -14,6 +14,11 @@ public class OpenIddictApplication : FullAuditedAggregateRoot { } + /// + /// Gets or sets the application type associated with the application. + /// + public virtual string ApplicationType { get; set; } + /// /// Gets or sets the client identifier associated with the current application. /// @@ -26,6 +31,11 @@ public class OpenIddictApplication : FullAuditedAggregateRoot /// public virtual string ClientSecret { get; set; } + /// + /// Gets or sets the client type associated with the application. + /// + public string ClientType { get; set; } + /// /// Gets or sets the consent type associated with the current application. /// @@ -43,6 +53,12 @@ public class OpenIddictApplication : FullAuditedAggregateRoot /// public virtual string DisplayNames { get; set; } + /// + /// Gets or sets the JSON Web Key Set associated with + /// the application, serialized as a JSON object. + /// + public virtual string JsonWebKeySet { get; set; } + /// /// Gets or sets the permissions associated with the /// current application, serialized as a JSON array. @@ -74,9 +90,9 @@ public class OpenIddictApplication : FullAuditedAggregateRoot public virtual string Requirements { get; set; } /// - /// Gets or sets the application type associated with the current application. + /// Gets or sets the settings serialized as a JSON object. /// - public virtual string Type { get; set; } + public virtual string Settings { get; set; } /// /// URI to further information about client. diff --git a/modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/Applications/OpenIddictApplicationExtensions.cs b/modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/Applications/OpenIddictApplicationExtensions.cs index 34ff4ba41f..791136316a 100644 --- a/modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/Applications/OpenIddictApplicationExtensions.cs +++ b/modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/Applications/OpenIddictApplicationExtensions.cs @@ -1,4 +1,9 @@ -namespace Volo.Abp.OpenIddict.Applications; +using System.Collections.Concurrent; +using System.Collections.Generic; +using System.Text.Json; +using Microsoft.IdentityModel.Tokens; + +namespace Volo.Abp.OpenIddict.Applications; public static class OpenIddictApplicationExtensions { @@ -8,17 +13,20 @@ public static class OpenIddictApplicationExtensions var entity = new OpenIddictApplication(model.Id) { + ApplicationType = model.ApplicationType, ClientId = model.ClientId, ClientSecret = model.ClientSecret, + ClientType = model.ClientType, ConsentType = model.ConsentType, DisplayName = model.DisplayName, DisplayNames = model.DisplayNames, + JsonWebKeySet = model.JsonWebKeySet != null ? JsonSerializer.Serialize(model.JsonWebKeySet) : null, Permissions = model.Permissions, PostLogoutRedirectUris = model.PostLogoutRedirectUris, Properties = model.Properties, RedirectUris = model.RedirectUris, Requirements = model.Requirements, - Type = model.Type, + Settings = model.Settings, ClientUri = model.ClientUri, LogoUri = model.LogoUri }; @@ -37,17 +45,20 @@ public static class OpenIddictApplicationExtensions Check.NotNull(model, nameof(model)); Check.NotNull(entity, nameof(entity)); + entity.ApplicationType = model.ApplicationType; entity.ClientId = model.ClientId; entity.ClientSecret = model.ClientSecret; entity.ConsentType = model.ConsentType; + entity.ClientType = model.ClientType; entity.DisplayName = model.DisplayName; entity.DisplayNames = model.DisplayNames; + entity.JsonWebKeySet = model.JsonWebKeySet != null ? JsonSerializer.Serialize(model.JsonWebKeySet) : null; entity.Permissions = model.Permissions; entity.PostLogoutRedirectUris = model.PostLogoutRedirectUris; entity.Properties = model.Properties; entity.RedirectUris = model.RedirectUris; entity.Requirements = model.Requirements; - entity.Type = model.Type; + entity.Settings = model.Settings; entity.ClientUri = model.ClientUri; entity.LogoUri = model.LogoUri; @@ -60,6 +71,11 @@ public static class OpenIddictApplicationExtensions return entity; } + /// + /// parsing the stringified JSON Web Key Set is an expensive operation, To mitigate that, the resulting object is stored in the static cache. + /// + private readonly static ConcurrentDictionary JsonWebKeySetCache = new ConcurrentDictionary(); + public static OpenIddictApplicationModel ToModel(this OpenIddictApplication entity) { if(entity == null) @@ -70,17 +86,20 @@ public static class OpenIddictApplicationExtensions var model = new OpenIddictApplicationModel { Id = entity.Id, + ApplicationType = entity.ApplicationType, ClientId = entity.ClientId, ClientSecret = entity.ClientSecret, + ClientType = entity.ClientType, ConsentType = entity.ConsentType, DisplayName = entity.DisplayName, DisplayNames = entity.DisplayNames, + JsonWebKeySet = entity.JsonWebKeySet != null ? JsonWebKeySetCache.GetOrAdd(entity.JsonWebKeySet, () => JsonWebKeySet.Create(entity.JsonWebKeySet)) : null, Permissions = entity.Permissions, PostLogoutRedirectUris = entity.PostLogoutRedirectUris, Properties = entity.Properties, RedirectUris = entity.RedirectUris, Requirements = entity.Requirements, - Type = entity.Type, + Settings = entity.Settings, ClientUri = entity.ClientUri, LogoUri = entity.LogoUri }; diff --git a/modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/Applications/OpenIddictApplicationModel.cs b/modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/Applications/OpenIddictApplicationModel.cs index ff13ef2355..48a376769f 100644 --- a/modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/Applications/OpenIddictApplicationModel.cs +++ b/modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/Applications/OpenIddictApplicationModel.cs @@ -1,4 +1,5 @@ using System; +using Microsoft.IdentityModel.Tokens; using Volo.Abp.MultiTenancy; using Volo.Abp.ObjectExtending; @@ -9,6 +10,11 @@ public class OpenIddictApplicationModel : ExtensibleObject { public Guid Id { get; set; } + /// + /// Gets or sets the application type associated with the application. + /// + public virtual string ApplicationType { get; set; } + /// /// Gets or sets the client identifier associated with the current application. /// @@ -21,6 +27,11 @@ public class OpenIddictApplicationModel : ExtensibleObject /// public virtual string ClientSecret { get; set; } + /// + /// Gets or sets the client type associated with the application. + /// + public string ClientType { get; set; } + /// /// Gets or sets the consent type associated with the current application. /// @@ -38,6 +49,11 @@ public class OpenIddictApplicationModel : ExtensibleObject /// public virtual string DisplayNames { get; set; } + /// + /// Gets or sets the JSON Web Key Set associated with the application. + /// + public virtual JsonWebKeySet JsonWebKeySet { get; set; } + /// /// Gets or sets the permissions associated with the /// current application, serialized as a JSON array. @@ -69,9 +85,9 @@ public class OpenIddictApplicationModel : ExtensibleObject public virtual string Requirements { get; set; } /// - /// Gets or sets the application type associated with the current application. + /// Gets the settings associated with the application. /// - public virtual string Type { get; set; } + public virtual string Settings { get; set; } /// /// URI to further information about client. diff --git a/modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/Authorizations/AbpOpenIddictAuthorizationCache.cs b/modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/Authorizations/AbpOpenIddictAuthorizationCache.cs index 95c1a59526..5149d26c75 100644 --- a/modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/Authorizations/AbpOpenIddictAuthorizationCache.cs +++ b/modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/Authorizations/AbpOpenIddictAuthorizationCache.cs @@ -21,7 +21,7 @@ public class AbpOpenIddictAuthorizationCache : AbpOpenIddictCacheBase FindAsync(string subject, string client, [EnumeratorCancellation] CancellationToken cancellationToken) + public virtual async IAsyncEnumerable FindAsync(string subject, string client, [EnumeratorCancellation] CancellationToken cancellationToken) { Check.NotNullOrEmpty(subject, nameof(subject)); Check.NotNullOrEmpty(client, nameof(client)); @@ -52,7 +52,7 @@ public class AbpOpenIddictAuthorizationCache : AbpOpenIddictCacheBase FindAsync(string subject, string client, string status, [EnumeratorCancellation] CancellationToken cancellationToken) + public virtual async IAsyncEnumerable FindAsync(string subject, string client, string status, [EnumeratorCancellation] CancellationToken cancellationToken) { Check.NotNullOrEmpty(subject, nameof(subject)); Check.NotNullOrEmpty(client, nameof(client)); @@ -75,7 +75,7 @@ public class AbpOpenIddictAuthorizationCache : AbpOpenIddictCacheBase FindAsync(string subject, string client, string status, string type, [EnumeratorCancellation] CancellationToken cancellationToken) + public virtual async IAsyncEnumerable FindAsync(string subject, string client, string status, string type, [EnumeratorCancellation] CancellationToken cancellationToken) { Check.NotNullOrEmpty(subject, nameof(subject)); Check.NotNullOrEmpty(client, nameof(client)); @@ -99,7 +99,7 @@ public class AbpOpenIddictAuthorizationCache : AbpOpenIddictCacheBase FindAsync(string subject, string client, string status, string type, ImmutableArray scopes, [EnumeratorCancellation] CancellationToken cancellationToken) + public virtual async IAsyncEnumerable FindAsync(string subject, string client, string status, string type, ImmutableArray scopes, [EnumeratorCancellation] CancellationToken cancellationToken) { Check.NotNullOrEmpty(subject, nameof(subject)); Check.NotNullOrEmpty(client, nameof(client)); @@ -114,7 +114,7 @@ public class AbpOpenIddictAuthorizationCache : AbpOpenIddictCacheBase FindByApplicationIdAsync(string applicationId, [EnumeratorCancellation] CancellationToken cancellationToken) + public virtual async IAsyncEnumerable FindByApplicationIdAsync(string applicationId, [EnumeratorCancellation] CancellationToken cancellationToken) { Check.NotNullOrEmpty(applicationId, nameof(applicationId)); @@ -135,7 +135,7 @@ public class AbpOpenIddictAuthorizationCache : AbpOpenIddictCacheBase FindByIdAsync(string id, CancellationToken cancellationToken) + public virtual async ValueTask FindByIdAsync(string id, CancellationToken cancellationToken) { Check.NotNullOrEmpty(id, nameof(id)); @@ -143,7 +143,7 @@ public class AbpOpenIddictAuthorizationCache : AbpOpenIddictCacheBase await Store.FindByIdAsync(id, cancellationToken), token: cancellationToken); } - public async IAsyncEnumerable FindBySubjectAsync(string subject, [EnumeratorCancellation] CancellationToken cancellationToken) + public virtual async IAsyncEnumerable FindBySubjectAsync(string subject, [EnumeratorCancellation] CancellationToken cancellationToken) { Check.NotNullOrEmpty(subject, nameof(subject)); diff --git a/modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/Authorizations/AbpOpenIddictAuthorizationStore.cs b/modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/Authorizations/AbpOpenIddictAuthorizationStore.cs index 9b96011a52..1a29f9cb4e 100644 --- a/modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/Authorizations/AbpOpenIddictAuthorizationStore.cs +++ b/modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/Authorizations/AbpOpenIddictAuthorizationStore.cs @@ -287,13 +287,14 @@ public class AbpOpenIddictAuthorizationStore : AbpOpenIddictStoreBase PruneAsync(DateTimeOffset threshold, CancellationToken cancellationToken) { using (var uow = UnitOfWorkManager.Begin(requiresNew: true, isTransactional: true, isolationLevel: IsolationLevel.RepeatableRead)) { var date = threshold.UtcDateTime; - await Repository.PruneAsync(date, cancellationToken: cancellationToken); + var count = await Repository.PruneAsync(date, cancellationToken: cancellationToken); await uow.CompleteAsync(cancellationToken); + return count; } } diff --git a/modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/Authorizations/IOpenIddictAuthorizationRepository.cs b/modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/Authorizations/IOpenIddictAuthorizationRepository.cs index 0cca87ebb9..98c98b3e58 100644 --- a/modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/Authorizations/IOpenIddictAuthorizationRepository.cs +++ b/modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/Authorizations/IOpenIddictAuthorizationRepository.cs @@ -22,5 +22,5 @@ public interface IOpenIddictAuthorizationRepository : IBasicRepository> ListAsync(int? count, int? offset, CancellationToken cancellationToken = default); - Task PruneAsync(DateTime date, CancellationToken cancellationToken = default); + Task PruneAsync(DateTime date, CancellationToken cancellationToken = default); } diff --git a/modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/Tokens/AbpOpenIddictTokenStore.cs b/modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/Tokens/AbpOpenIddictTokenStore.cs index 31f4007879..b861da8407 100644 --- a/modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/Tokens/AbpOpenIddictTokenStore.cs +++ b/modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/Tokens/AbpOpenIddictTokenStore.cs @@ -302,13 +302,19 @@ public class AbpOpenIddictTokenStore : AbpOpenIddictStoreBase RevokeByAuthorizationIdAsync(string identifier, CancellationToken cancellationToken) + { + return await Repository.RevokeByAuthorizationIdAsync(ConvertIdentifierFromString(identifier), cancellationToken); + } + + public virtual async ValueTask PruneAsync(DateTimeOffset threshold, CancellationToken cancellationToken) { using (var uow = UnitOfWorkManager.Begin(requiresNew: true, isTransactional: true, isolationLevel: IsolationLevel.RepeatableRead)) { var date = threshold.UtcDateTime; - await Repository.PruneAsync(date, cancellationToken: cancellationToken); + var count = await Repository.PruneAsync(date, cancellationToken: cancellationToken); await uow.CompleteAsync(cancellationToken); + return count; } } diff --git a/modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/Tokens/IOpenIddictTokenRepository.cs b/modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/Tokens/IOpenIddictTokenRepository.cs index a747106642..1a1877746a 100644 --- a/modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/Tokens/IOpenIddictTokenRepository.cs +++ b/modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/Tokens/IOpenIddictTokenRepository.cs @@ -32,5 +32,7 @@ public interface IOpenIddictTokenRepository : IBasicRepository> ListAsync(int? count, int? offset, CancellationToken cancellationToken = default); - Task PruneAsync(DateTime date, CancellationToken cancellationToken = default); + Task PruneAsync(DateTime date, CancellationToken cancellationToken = default); + + ValueTask RevokeByAuthorizationIdAsync(Guid id, CancellationToken cancellationToken); } diff --git a/modules/openiddict/src/Volo.Abp.OpenIddict.EntityFrameworkCore/Volo/Abp/OpenIddict/Authorizations/EfCoreOpenIddictAuthorizationRepository.cs b/modules/openiddict/src/Volo.Abp.OpenIddict.EntityFrameworkCore/Volo/Abp/OpenIddict/Authorizations/EfCoreOpenIddictAuthorizationRepository.cs index 3738884b5c..62cf3abdd4 100644 --- a/modules/openiddict/src/Volo.Abp.OpenIddict.EntityFrameworkCore/Volo/Abp/OpenIddict/Authorizations/EfCoreOpenIddictAuthorizationRepository.cs +++ b/modules/openiddict/src/Volo.Abp.OpenIddict.EntityFrameworkCore/Volo/Abp/OpenIddict/Authorizations/EfCoreOpenIddictAuthorizationRepository.cs @@ -80,7 +80,7 @@ public class EfCoreOpenIddictAuthorizationRepository : EfCoreRepository PruneAsync(DateTime date, CancellationToken cancellationToken = default) { var authorizations = await (from authorization in (await GetQueryableAsync()) join token in (await GetDbContextAsync()).Set() @@ -91,11 +91,11 @@ public class EfCoreOpenIddictAuthorizationRepository : EfCoreRepository() + var count = await (from token in (await GetDbContextAsync()).Set() where token.AuthorizationId != null && authorizations.Contains(token.AuthorizationId.Value) select token) .ExecuteDeleteAsync(GetCancellationToken(cancellationToken)); - await (await GetDbSetAsync()).Where(x => authorizations.Contains(x.Id)).ExecuteDeleteAsync(cancellationToken); + return count + await (await GetDbSetAsync()).Where(x => authorizations.Contains(x.Id)).ExecuteDeleteAsync(cancellationToken); } } diff --git a/modules/openiddict/src/Volo.Abp.OpenIddict.EntityFrameworkCore/Volo/Abp/OpenIddict/EntityFrameworkCore/OpenIddictDbContextModelCreatingExtensions.cs b/modules/openiddict/src/Volo.Abp.OpenIddict.EntityFrameworkCore/Volo/Abp/OpenIddict/EntityFrameworkCore/OpenIddictDbContextModelCreatingExtensions.cs index bcf179297a..d10ecc86ae 100644 --- a/modules/openiddict/src/Volo.Abp.OpenIddict.EntityFrameworkCore/Volo/Abp/OpenIddict/EntityFrameworkCore/OpenIddictDbContextModelCreatingExtensions.cs +++ b/modules/openiddict/src/Volo.Abp.OpenIddict.EntityFrameworkCore/Volo/Abp/OpenIddict/EntityFrameworkCore/OpenIddictDbContextModelCreatingExtensions.cs @@ -28,14 +28,17 @@ public static class OpenIddictDbContextModelCreatingExtensions b.HasIndex(x => x.ClientId); //.IsUnique(); + b.Property(x => x.ApplicationType) + .HasMaxLength(OpenIddictApplicationConsts.ApplicationTypeMaxLength); + b.Property(x => x.ClientId) .HasMaxLength(OpenIddictApplicationConsts.ClientIdMaxLength); b.Property(x => x.ConsentType) .HasMaxLength(OpenIddictApplicationConsts.ConsentTypeMaxLength); - b.Property(x => x.Type) - .HasMaxLength(OpenIddictApplicationConsts.TypeMaxLength); + b.Property(x => x.ClientType) + .HasMaxLength(OpenIddictApplicationConsts.ClientTypeMaxLength); b.ApplyObjectExtensionMappings(); }); diff --git a/modules/openiddict/src/Volo.Abp.OpenIddict.EntityFrameworkCore/Volo/Abp/OpenIddict/Tokens/EfCoreOpenIddictTokenRepository.cs b/modules/openiddict/src/Volo.Abp.OpenIddict.EntityFrameworkCore/Volo/Abp/OpenIddict/Tokens/EfCoreOpenIddictTokenRepository.cs index c1ed4a84ff..d861f8b54e 100644 --- a/modules/openiddict/src/Volo.Abp.OpenIddict.EntityFrameworkCore/Volo/Abp/OpenIddict/Tokens/EfCoreOpenIddictTokenRepository.cs +++ b/modules/openiddict/src/Volo.Abp.OpenIddict.EntityFrameworkCore/Volo/Abp/OpenIddict/Tokens/EfCoreOpenIddictTokenRepository.cs @@ -96,9 +96,9 @@ public class EfCoreOpenIddictTokenRepository : EfCoreRepository PruneAsync(DateTime date, CancellationToken cancellationToken = default) { - await (from token in await GetQueryableAsync() + return await (from token in await GetQueryableAsync() join authorization in (await GetDbContextAsync()).Set() on token.AuthorizationId equals authorization.Id into tokenAuthorizations from tokenAuthorization in tokenAuthorizations.DefaultIfEmpty() @@ -109,4 +109,12 @@ public class EfCoreOpenIddictTokenRepository : EfCoreRepository RevokeByAuthorizationIdAsync(Guid id, CancellationToken cancellationToken) + { + return await (from token in await GetQueryableAsync() where token.AuthorizationId == id select token) + .ExecuteUpdateAsync( + entity => entity.SetProperty(token => token.Status, OpenIddictConstants.Statuses.Revoked), + GetCancellationToken(cancellationToken)); + } } diff --git a/modules/openiddict/src/Volo.Abp.OpenIddict.MongoDB/Volo/Abp/OpenIddict/Authorizations/MongoOpenIddictAuthorizationRepository.cs b/modules/openiddict/src/Volo.Abp.OpenIddict.MongoDB/Volo/Abp/OpenIddict/Authorizations/MongoOpenIddictAuthorizationRepository.cs index 7225425581..3e30912a8d 100644 --- a/modules/openiddict/src/Volo.Abp.OpenIddict.MongoDB/Volo/Abp/OpenIddict/Authorizations/MongoOpenIddictAuthorizationRepository.cs +++ b/modules/openiddict/src/Volo.Abp.OpenIddict.MongoDB/Volo/Abp/OpenIddict/Authorizations/MongoOpenIddictAuthorizationRepository.cs @@ -71,7 +71,7 @@ public class MongoOpenIddictAuthorizationRepository : MongoDbRepository>().ToListAsync(GetCancellationToken(cancellationToken)); } - public virtual async Task PruneAsync(DateTime date, CancellationToken cancellationToken = default) + public virtual async Task PruneAsync(DateTime date, CancellationToken cancellationToken = default) { var tokenIds = await (await GetMongoQueryableAsync(cancellationToken)) .Where(x => x.AuthorizationId != null) @@ -107,5 +107,6 @@ public class MongoOpenIddictAuthorizationRepository : MongoDbRepository PruneAsync(DateTime date, CancellationToken cancellationToken = default) { var authorizationIds = await (await GetMongoQueryableAsync(cancellationToken)) .Where(x => x.Status != OpenIddictConstants.Statuses.Valid) @@ -125,5 +125,16 @@ public class MongoOpenIddictTokenRepository : MongoDbRepository RevokeByAuthorizationIdAsync(Guid id, CancellationToken cancellationToken) + { + return (await (await GetCollectionAsync(GetCancellationToken(cancellationToken))).UpdateManyAsync( + filter: token => token.AuthorizationId == id, + update: Builders.Update.Set(token => token.Status, OpenIddictConstants.Statuses.Revoked), + options: null, + cancellationToken: GetCancellationToken(cancellationToken))).MatchedCount; } } diff --git a/modules/openiddict/test/Volo.Abp.OpenIddict.Domain.Tests/Volo/Abp/OpenIddict/Applications/AbpOpenIddictApplicationStore_Tests.cs b/modules/openiddict/test/Volo.Abp.OpenIddict.Domain.Tests/Volo/Abp/OpenIddict/Applications/AbpOpenIddictApplicationStore_Tests.cs index 81dafe33c3..c4aac7b144 100644 --- a/modules/openiddict/test/Volo.Abp.OpenIddict.Domain.Tests/Volo/Abp/OpenIddict/Applications/AbpOpenIddictApplicationStore_Tests.cs +++ b/modules/openiddict/test/Volo.Abp.OpenIddict.Domain.Tests/Volo/Abp/OpenIddict/Applications/AbpOpenIddictApplicationStore_Tests.cs @@ -6,6 +6,7 @@ using System.Text.Json; using System.Threading; using System.Threading.Tasks; using Microsoft.Extensions.DependencyInjection; +using Microsoft.IdentityModel.Tokens; using OpenIddict.Abstractions; using Shouldly; using Xunit; @@ -30,12 +31,12 @@ public class AbpOpenIddictApplicationStore_Tests : OpenIddictDomainTestBase var application = await _applicationStore.FindByIdAsync(nonExistingId, CancellationToken.None); application.ShouldBeNull(); } - + [Fact] public async Task FindByIdAsync_Should_Return_Application_If_Found() { var application = await _applicationStore.FindByIdAsync(_testData.App1Id.ToString(), CancellationToken.None); - + application.ShouldNotBeNull(); application.ClientId.ShouldBe(_testData.App1ClientId); application.ConsentType.ShouldBe(OpenIddictConstants.ConsentTypes.Explicit); @@ -73,19 +74,24 @@ public class AbpOpenIddictApplicationStore_Tests : OpenIddictDomainTestBase { var clientId = Guid.NewGuid().ToString(); await _applicationStore.CreateAsync(new OpenIddictApplicationModel { + ApplicationType = OpenIddictConstants.ApplicationTypes.Web, ClientId = clientId, ConsentType = OpenIddictConstants.ConsentTypes.Explicit, DisplayName = "Test Application", - Type = OpenIddictConstants.ClientTypes.Public, + ClientType = OpenIddictConstants.ClientTypes.Public, + JsonWebKeySet = JsonWebKeySet.Create("{\"keys\":[{\"kid\":\"B3CFECA9F030CB8DA7EC0C2C27462E0F1EDB5920\",\"use\":\"sig\",\"kty\":\"RSA\",\"alg\":\"RS256\",\"e\":\"AQAB\",\"n\":\"yvTJVUUPNKui4mc12Z9sasNC1xQ_feZLhYDUqrMYDrbbOdHNdppCRQa8hwZBAgru7mJn-qD1aBDHZQFp0h_tWME5B5c07Y8b80w0vBWgfhgw0Kvzet6aDtVRVFZ0pJ92sIto0gcEeU2cst21s21ICGI3bT80-BIrWe_OGbWt0LwkTYLMGFaSiIov65OqnBm9LiZFgpANk8gajmPW49Jp9w4N6dXKJmpLD4Ke0TqHV1wx3DepYs9cdXlyEAh_Zb6iX7-GaIqkpiG32Ej1ezc-Qfjy16nt1mxrDkgZNROXeo9dSKT-zCuUNaAoDj93vFFnKzdGB4wiUbeRb-fvebAKDw\",\"x5t\":\"s8_sqfAwy42n7AwsJ0YuDx7bWSA\",\"x5c\":[\"MIIDzTCCArWgAwIBAgIJAJk4OSYyxcY2MA0GCSqGSIb3DQEBCwUAMH0xCzAJBgNVBAYTAlRSMREwDwYDVQQHDAhJc3RhbmJ1bDEZMBcGA1UECgwQVm9sb3NvZnQgTFRELlNUSTEXMBUGA1UEAwwOYWNjb3VudC5hYnAuaW8xJzAlBgkqhkiG9w0BCQEWGGdhbGlwLmVyZGVtQHZvbG9zb2Z0LmNvbTAeFw0yMDAxMjExNjQ1MTBaFw0zMDAxMTgxNjQ1MTBaMH0xCzAJBgNVBAYTAlRSMREwDwYDVQQHDAhJc3RhbmJ1bDEZMBcGA1UECgwQVm9sb3NvZnQgTFRELlNUSTEXMBUGA1UEAwwOYWNjb3VudC5hYnAuaW8xJzAlBgkqhkiG9w0BCQEWGGdhbGlwLmVyZGVtQHZvbG9zb2Z0LmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMr0yVVFDzSrouJnNdmfbGrDQtcUP33mS4WA1KqzGA622znRzXaaQkUGvIcGQQIK7u5iZ/qg9WgQx2UBadIf7VjBOQeXNO2PG/NMNLwVoH4YMNCr83remg7VUVRWdKSfdrCLaNIHBHlNnLLdtbNtSAhiN20/NPgSK1nvzhm1rdC8JE2CzBhWkoiKL+uTqpwZvS4mRYKQDZPIGo5j1uPSafcODenVyiZqSw+CntE6h1dcMdw3qWLPXHV5chAIf2W+ol+/hmiKpKYht9hI9Xs3PkH48tep7dZsaw5IGTUTl3qPXUik/swrlDWgKA4/d7xRZys3RgeMIlG3kW/n73mwCg8CAwEAAaNQME4wHQYDVR0OBBYEFCnN7HANDCj/ncgFu4AI+U6wXn2AMB8GA1UdIwQYMBaAFCnN7HANDCj/ncgFu4AI+U6wXn2AMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBAEvVPtZnXzebhgVIyD+TBE7cgI567ck5W9kfeZhJLPlWQzrOQCgXbR7rqNLRs4K73k6Yo6/9E5jAOtjlqqotiqj89tqOTZzG6kDIVoMiYJjgEVLeF1bVBnCA7xDbdpVfrL2IOnNGy9Ys+FsG6EV/oBbTw8Fqk+5c7M0RvverCaEfPHWSTg6M+B5pHBk50p67MB6DeaD0u6RUnCkqYxBBPrnVHvvGEoimoEAdT5g3/8CAtAG9m4b9IoBpUHi626b+/SS+2h1xr4oq54gxG8jlDkLoRWT2cKiFM/bCufZkd1LyOmke8udpHBZ3Jt0nH64oZdSUT6huDzYBdtXfSw3XTwo=\"]}]}"), PostLogoutRedirectUris = "https://abp.io", RedirectUris = "https://abp.io" }, CancellationToken.None); - + var application = await _applicationStore.FindByClientIdAsync(clientId, CancellationToken.None); application.ShouldNotBeNull(); + application.ApplicationType.ShouldBe(OpenIddictConstants.ApplicationTypes.Web); application.ClientId.ShouldBe(clientId); application.DisplayName.ShouldBe("Test Application"); - application.Type.ShouldBe(OpenIddictConstants.ClientTypes.Public); + application.ClientType.ShouldBe(OpenIddictConstants.ClientTypes.Public); + application.JsonWebKeySet.ShouldNotBeNull(); + application.JsonWebKeySet.Keys.First().Alg.ShouldBe(SecurityAlgorithms.RsaSha256); application.PostLogoutRedirectUris.ShouldBe("https://abp.io"); application.RedirectUris.ShouldBe("https://abp.io"); } @@ -95,9 +101,9 @@ public class AbpOpenIddictApplicationStore_Tests : OpenIddictDomainTestBase { var application = await _applicationStore.FindByIdAsync(_testData.App1Id.ToString(), CancellationToken.None); application.ShouldNotBeNull(); - + await _applicationStore.DeleteAsync(application, CancellationToken.None); - + application = await _applicationStore.FindByIdAsync(_testData.App1Id.ToString(), CancellationToken.None); application.ShouldBeNull(); } @@ -115,14 +121,14 @@ public class AbpOpenIddictApplicationStore_Tests : OpenIddictDomainTestBase var applications = await _applicationStore.FindByPostLogoutRedirectUriAsync("https://abp.io", CancellationToken.None).ToListAsync(); applications.Count.ShouldBe(2); } - + [Fact] public async Task FindByRedirectUriAsync_Should_Return_Empty_If_Not_Found() { var applications = await _applicationStore.FindByRedirectUriAsync("non-existing-uri", CancellationToken.None).ToListAsync(); applications.Count.ShouldBe(0); } - + [Fact] public async Task FindByRedirectUriAsync_Should_Return_Applications_If_Found() { @@ -135,7 +141,7 @@ public class AbpOpenIddictApplicationStore_Tests : OpenIddictDomainTestBase { var application = await _applicationStore.FindByIdAsync(_testData.App1Id.ToString(), CancellationToken.None); var clientId = await _applicationStore.GetClientIdAsync(application, CancellationToken.None); - + clientId.ShouldBe(_testData.App1ClientId); } @@ -144,7 +150,7 @@ public class AbpOpenIddictApplicationStore_Tests : OpenIddictDomainTestBase { var application = await _applicationStore.FindByIdAsync(_testData.App1Id.ToString(), CancellationToken.None); var secret = await _applicationStore.GetClientIdAsync(application, CancellationToken.None); - + secret.ShouldBe("Client1"); } @@ -153,7 +159,7 @@ public class AbpOpenIddictApplicationStore_Tests : OpenIddictDomainTestBase { var application = await _applicationStore.FindByIdAsync(_testData.App1Id.ToString(), CancellationToken.None); var clientType = await _applicationStore.GetClientTypeAsync(application, CancellationToken.None); - + clientType.ShouldBe(OpenIddictConstants.ClientTypes.Public); } @@ -162,7 +168,7 @@ public class AbpOpenIddictApplicationStore_Tests : OpenIddictDomainTestBase { var application = await _applicationStore.FindByIdAsync(_testData.App1Id.ToString(), CancellationToken.None); var consentType = await _applicationStore.GetConsentTypeAsync(application, CancellationToken.None); - + consentType.ShouldBe(OpenIddictConstants.ConsentTypes.Explicit); } @@ -171,7 +177,7 @@ public class AbpOpenIddictApplicationStore_Tests : OpenIddictDomainTestBase { var application = await _applicationStore.FindByIdAsync(_testData.App1Id.ToString(), CancellationToken.None); var displayName = await _applicationStore.GetDisplayNameAsync(application, CancellationToken.None); - + displayName.ShouldBe("Test Application"); } @@ -180,7 +186,7 @@ public class AbpOpenIddictApplicationStore_Tests : OpenIddictDomainTestBase { var application = await _applicationStore.FindByIdAsync(_testData.App1Id.ToString(), CancellationToken.None); var id = await _applicationStore.GetIdAsync(application, CancellationToken.None); - + id.ShouldBe(_testData.App1Id.ToString()); } @@ -189,7 +195,7 @@ public class AbpOpenIddictApplicationStore_Tests : OpenIddictDomainTestBase { var application = await _applicationStore.FindByIdAsync(_testData.App1Id.ToString(), CancellationToken.None); var permissions = await _applicationStore.GetPermissionsAsync(application, CancellationToken.None); - + permissions.Length.ShouldBeGreaterThan(0); } @@ -198,7 +204,7 @@ public class AbpOpenIddictApplicationStore_Tests : OpenIddictDomainTestBase { var application = await _applicationStore.FindByIdAsync(_testData.App1Id.ToString(), CancellationToken.None); var postLogoutRedirectUris = await _applicationStore.GetPostLogoutRedirectUrisAsync(application, CancellationToken.None); - + postLogoutRedirectUris.Length.ShouldBe(1); postLogoutRedirectUris[0].ShouldBe("https://abp.io"); } @@ -208,7 +214,7 @@ public class AbpOpenIddictApplicationStore_Tests : OpenIddictDomainTestBase { var application = await _applicationStore.FindByIdAsync(_testData.App1Id.ToString(), CancellationToken.None); var redirectUris = await _applicationStore.GetRedirectUrisAsync(application, CancellationToken.None); - + redirectUris.Length.ShouldBe(1); redirectUris[0].ShouldBe("https://abp.io"); } @@ -218,7 +224,7 @@ public class AbpOpenIddictApplicationStore_Tests : OpenIddictDomainTestBase { var application = await _applicationStore.FindByIdAsync(_testData.App1Id.ToString(), CancellationToken.None); var properties = await _applicationStore.GetPropertiesAsync(application, CancellationToken.None); - + properties.Count.ShouldBe(0); } @@ -227,14 +233,14 @@ public class AbpOpenIddictApplicationStore_Tests : OpenIddictDomainTestBase { var application = await _applicationStore.FindByIdAsync(_testData.App1Id.ToString(), CancellationToken.None); var requirements = await _applicationStore.GetRequirementsAsync(application, CancellationToken.None); - + requirements.Length.ShouldBe(0); } [Fact] public async Task InstantiateAsync() { - var application = await _applicationStore.InstantiateAsync(CancellationToken.None); + var application = await _applicationStore.InstantiateAsync(CancellationToken.None); application.ShouldNotBeNull(); } @@ -268,7 +274,7 @@ public class AbpOpenIddictApplicationStore_Tests : OpenIddictDomainTestBase var clientSecret = Guid.NewGuid().ToString(); var application = await _applicationStore.FindByIdAsync(_testData.App1Id.ToString(), CancellationToken.None); await _applicationStore.SetClientSecretAsync(application, clientSecret, CancellationToken.None); - + application.ClientSecret.ShouldBe(clientSecret); } @@ -277,8 +283,8 @@ public class AbpOpenIddictApplicationStore_Tests : OpenIddictDomainTestBase { var application = await _applicationStore.FindByIdAsync(_testData.App1Id.ToString(), CancellationToken.None); await _applicationStore.SetClientTypeAsync(application, OpenIddictConstants.ClientTypes.Confidential, CancellationToken.None); - - application.Type.ShouldBe(OpenIddictConstants.ClientTypes.Confidential); + + application.ClientType.ShouldBe(OpenIddictConstants.ClientTypes.Confidential); } [Fact] @@ -286,17 +292,17 @@ public class AbpOpenIddictApplicationStore_Tests : OpenIddictDomainTestBase { var application = await _applicationStore.FindByIdAsync(_testData.App1Id.ToString(), CancellationToken.None); await _applicationStore.SetConsentTypeAsync(application, OpenIddictConstants.ConsentTypes.Systematic, CancellationToken.None); - + application.ConsentType.ShouldBe(OpenIddictConstants.ConsentTypes.Systematic); } - + [Fact] public async Task SetDisplayNameAsync() { var displayName = Guid.NewGuid().ToString(); var application = await _applicationStore.FindByIdAsync(_testData.App1Id.ToString(), CancellationToken.None); await _applicationStore.SetDisplayNameAsync(application, displayName, CancellationToken.None); - + application.DisplayName.ShouldBe(displayName); } @@ -306,7 +312,7 @@ public class AbpOpenIddictApplicationStore_Tests : OpenIddictDomainTestBase var displayNames = ImmutableDictionary.Create(); displayNames = displayNames.Add(CultureInfo.GetCultureInfo("en"), "Test Application"); displayNames = displayNames.Add(CultureInfo.GetCultureInfo("zh-Hans"), "测试应用程序"); - + var application = await _applicationStore.FindByIdAsync(_testData.App1Id.ToString(), CancellationToken.None); await _applicationStore.SetDisplayNamesAsync(application, displayNames, CancellationToken.None); @@ -319,7 +325,7 @@ public class AbpOpenIddictApplicationStore_Tests : OpenIddictDomainTestBase { var application = await _applicationStore.FindByIdAsync(_testData.App1Id.ToString(), CancellationToken.None); await _applicationStore.SetPermissionsAsync(application, ImmutableArray.Create(OpenIddictConstants.Permissions.Endpoints.Authorization), CancellationToken.None); - + application.Permissions.ShouldBe("[\""+OpenIddictConstants.Permissions.Endpoints.Authorization+"\"]"); } @@ -328,7 +334,7 @@ public class AbpOpenIddictApplicationStore_Tests : OpenIddictDomainTestBase { var application = await _applicationStore.FindByIdAsync(_testData.App1Id.ToString(), CancellationToken.None); await _applicationStore.SetPostLogoutRedirectUrisAsync(application, ImmutableArray.Create("https://abp.io"), CancellationToken.None); - + application.PostLogoutRedirectUris.ShouldBe("[\"https://abp.io\"]"); } @@ -337,7 +343,7 @@ public class AbpOpenIddictApplicationStore_Tests : OpenIddictDomainTestBase { var application = await _applicationStore.FindByIdAsync(_testData.App1Id.ToString(), CancellationToken.None); await _applicationStore.SetPropertiesAsync(application, ImmutableDictionary.Create(), CancellationToken.None); - + application.Properties.ShouldBeNull(); } @@ -346,7 +352,7 @@ public class AbpOpenIddictApplicationStore_Tests : OpenIddictDomainTestBase { var application = await _applicationStore.FindByIdAsync(_testData.App1Id.ToString(), CancellationToken.None); await _applicationStore.SetRedirectUrisAsync(application, ImmutableArray.Create("https://abp.io"), CancellationToken.None); - + application.RedirectUris.ShouldBe("[\"https://abp.io\"]"); } @@ -355,7 +361,7 @@ public class AbpOpenIddictApplicationStore_Tests : OpenIddictDomainTestBase { var application = await _applicationStore.FindByIdAsync(_testData.App1Id.ToString(), CancellationToken.None); await _applicationStore.SetRequirementsAsync(application, ImmutableArray.Create(OpenIddictConstants.Requirements.Features.ProofKeyForCodeExchange), CancellationToken.None); - + application.Requirements.ShouldBe("[\""+OpenIddictConstants.Requirements.Features.ProofKeyForCodeExchange+"\"]"); } @@ -364,19 +370,19 @@ public class AbpOpenIddictApplicationStore_Tests : OpenIddictDomainTestBase { var application = await _applicationStore.FindByIdAsync(_testData.App1Id.ToString(), CancellationToken.None); application.ClientId = "new_client_id"; - application.Type = OpenIddictConstants.ClientTypes.Public; + application.ClientType = OpenIddictConstants.ClientTypes.Public; application.RedirectUris = "https://new_logout_uri"; application.PostLogoutRedirectUris = "https://new_post_logout_uri"; application.DisplayName = "new_display_name"; - + await _applicationStore.UpdateAsync(application, CancellationToken.None); application = await _applicationStore.FindByIdAsync(_testData.App1Id.ToString(), CancellationToken.None); application.ShouldNotBeNull(); application.ClientId.ShouldBe("new_client_id"); - application.Type.ShouldBe(OpenIddictConstants.ClientTypes.Public); + application.ClientType.ShouldBe(OpenIddictConstants.ClientTypes.Public); application.RedirectUris.ShouldBe("https://new_logout_uri"); application.PostLogoutRedirectUris.ShouldBe("https://new_post_logout_uri"); application.DisplayName.ShouldBe("new_display_name"); } -} \ No newline at end of file +} diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/ar.json b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/ar.json index c90d135ca9..da09f941b3 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/ar.json +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/ar.json @@ -5,6 +5,7 @@ "OnlyProviderPermissons": "هذا الموفر فقط", "All": "الكل", "SelectAllInAllTabs": "منح كافة الأذونات", - "SelectAllInThisTab": "تحديد الكل" + "SelectAllInThisTab": "تحديد الكل", + "SaveWithoutAnyPermissionsWarningMessage": "هل أنت متأكد أنك تريد الحفظ بدون أي أذونات؟" } } \ No newline at end of file diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/cs.json b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/cs.json index f7ebdc1386..3503e04f67 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/cs.json +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/cs.json @@ -5,6 +5,7 @@ "OnlyProviderPermissons": "Pouze tento poskytovatel", "All": "Všechna", "SelectAllInAllTabs": "Dát veškerá oprávnění", - "SelectAllInThisTab": "Vybrat vše" + "SelectAllInThisTab": "Vybrat vše", + "SaveWithoutAnyPermissionsWarningMessage": "Opravdu chcete ukládat bez jakýchkoli oprávnění?" } -} +} \ No newline at end of file diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/de.json b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/de.json index 434b6cc772..1fc3766825 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/de.json +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/de.json @@ -5,6 +5,7 @@ "OnlyProviderPermissons": "Nur dieser Anbieter", "All": "Alle", "SelectAllInAllTabs": "Alle Berechtigungen erteilen", - "SelectAllInThisTab": "Alle auswählen" + "SelectAllInThisTab": "Alle auswählen", + "SaveWithoutAnyPermissionsWarningMessage": "Sind Sie sicher, dass Sie ohne Berechtigungen speichern möchten?" } } \ No newline at end of file diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/es.json b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/es.json index f523ae1c41..7f95016b41 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/es.json +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/es.json @@ -5,6 +5,7 @@ "OnlyProviderPermissons": "Sólo este proveedor", "All": "Todos", "SelectAllInAllTabs": "Condeder todos los permisos", - "SelectAllInThisTab": "Seleccionar todo" + "SelectAllInThisTab": "Seleccionar todo", + "SaveWithoutAnyPermissionsWarningMessage": "¿Estás seguro de que quieres guardar sin ningún permiso?" } } \ No newline at end of file diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/fr.json b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/fr.json index 0eec4bd7b9..21a333223f 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/fr.json +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/fr.json @@ -1,10 +1,11 @@ { - "culture": "fr", - "texts": { - "Permissions": "Autorisations", - "OnlyProviderPermissons": "Seul ce fournisseur", - "All": "Tous", - "SelectAllInAllTabs": "Accorder toutes les autorisations", - "SelectAllInThisTab": "Sélectionner tous les" - } + "culture": "fr", + "texts": { + "Permissions": "Autorisations", + "OnlyProviderPermissons": "Seul ce fournisseur", + "All": "Tous", + "SelectAllInAllTabs": "Accorder toutes les autorisations", + "SelectAllInThisTab": "Sélectionner tous les", + "SaveWithoutAnyPermissionsWarningMessage": "Êtes-vous sûr de vouloir enregistrer sans aucune autorisation ?" + } } \ No newline at end of file diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/hi.json b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/hi.json index 308278d307..b61ccf91ea 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/hi.json +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/hi.json @@ -5,6 +5,7 @@ "OnlyProviderPermissons": "केवल यह प्रदाता", "All": "सब", "SelectAllInAllTabs": "सभी अनुमतियां प्रदान करें", - "SelectAllInThisTab": "सभी का चयन करे" + "SelectAllInThisTab": "सभी का चयन करे", + "SaveWithoutAnyPermissionsWarningMessage": "क्या आप वाकई बिना किसी अनुमति के सहेजना चाहते हैं?" } } \ No newline at end of file diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/is.json b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/is.json index 9c71d16ab8..d1060e0c30 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/is.json +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/is.json @@ -5,6 +5,7 @@ "OnlyProviderPermissons": "Aðeins þessi veitandi", "All": "Allt", "SelectAllInAllTabs": "Veita allar heimildir", - "SelectAllInThisTab": "Velja allt" + "SelectAllInThisTab": "Velja allt", + "SaveWithoutAnyPermissionsWarningMessage": "Ertu viss um að þú viljir vista án nokkurra heimilda?" } } \ No newline at end of file diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/it.json b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/it.json index 9e1bba1728..a879d9d94b 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/it.json +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/it.json @@ -5,6 +5,7 @@ "OnlyProviderPermissons": "Solo questo provider", "All": "Tutti", "SelectAllInAllTabs": "Concedi tutte le autorizzazioni", - "SelectAllInThisTab": "Seleziona tutto" + "SelectAllInThisTab": "Seleziona tutto", + "SaveWithoutAnyPermissionsWarningMessage": "Sei sicuro di voler salvare senza alcuna autorizzazione?" } } \ No newline at end of file diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/nl.json b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/nl.json index 13291c5798..2702d5593c 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/nl.json +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/nl.json @@ -5,6 +5,7 @@ "OnlyProviderPermissons": "Alleen deze provider", "All": "Alle", "SelectAllInAllTabs": "Verleen alle rechten", - "SelectAllInThisTab": "Selecteer alles" + "SelectAllInThisTab": "Selecteer alles", + "SaveWithoutAnyPermissionsWarningMessage": "Weet u zeker dat u zonder rechten wilt opslaan?" } } \ No newline at end of file diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/pl-PL.json b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/pl-PL.json index b552012c1b..ce00ee9947 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/pl-PL.json +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/pl-PL.json @@ -5,6 +5,7 @@ "OnlyProviderPermissons": "Tylko ten dostawca", "All": "Wszystkie", "SelectAllInAllTabs": "Udziel wszystkich uprawnień", - "SelectAllInThisTab": "Zaznacz wszystkie" + "SelectAllInThisTab": "Zaznacz wszystkie", + "SaveWithoutAnyPermissionsWarningMessage": "Czy na pewno chcesz zapisać bez żadnych uprawnień?" } } \ No newline at end of file diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/ro-RO.json b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/ro-RO.json index 54b6cc1454..be856834e5 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/ro-RO.json +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/ro-RO.json @@ -5,6 +5,7 @@ "OnlyProviderPermissons": "Doar acest furnizor", "All": "Toate", "SelectAllInAllTabs": "Acordă toate permisiunile", - "SelectAllInThisTab": "Selectează toate" + "SelectAllInThisTab": "Selectează toate", + "SaveWithoutAnyPermissionsWarningMessage": "Sigur doriți să salvați fără nicio permisiune?" } } \ No newline at end of file diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/ru.json b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/ru.json index 33291e66a0..467cb85e88 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/ru.json +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/ru.json @@ -5,6 +5,7 @@ "OnlyProviderPermissons": "Только этот провайдер", "All": "Все", "SelectAllInAllTabs": "Предоставить все разрешения", - "SelectAllInThisTab": "Выбрать все" + "SelectAllInThisTab": "Выбрать все", + "SaveWithoutAnyPermissionsWarningMessage": "Вы уверены, что хотите сохранить без каких-либо разрешений?" } -} +} \ No newline at end of file diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/sk.json b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/sk.json index 23535b7647..d3f6c55324 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/sk.json +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/sk.json @@ -5,6 +5,7 @@ "OnlyProviderPermissons": "Iba tento poskytovateľ", "All": "Všetky", "SelectAllInAllTabs": "Udeliť všetky oprávnenia", - "SelectAllInThisTab": "Vybrať všetky" + "SelectAllInThisTab": "Vybrať všetky", + "SaveWithoutAnyPermissionsWarningMessage": "Naozaj chcete ukladať bez akýchkoľvek povolení?" } } \ No newline at end of file diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/sl.json b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/sl.json index c6b0231912..aeb6e8da7b 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/sl.json +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/sl.json @@ -5,6 +5,7 @@ "OnlyProviderPermissons": "Samo ta ponudnik", "All": "Vse", "SelectAllInAllTabs": "Dodeli vsa dovoljenja", - "SelectAllInThisTab": "Izberi vse" + "SelectAllInThisTab": "Izberi vse", + "SaveWithoutAnyPermissionsWarningMessage": "Ali ste prepričani, da želite shraniti brez kakršnih koli dovoljenj?" } } \ No newline at end of file diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/vi.json b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/vi.json index 9364bcf588..290425626c 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/vi.json +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/vi.json @@ -5,6 +5,7 @@ "OnlyProviderPermissons": "Chỉ nhà cung cấp này", "All": "Tất cả", "SelectAllInAllTabs": "Cấp tất cả các quyền", - "SelectAllInThisTab": "Chọn tất cả" + "SelectAllInThisTab": "Chọn tất cả", + "SaveWithoutAnyPermissionsWarningMessage": "Bạn có chắc chắn muốn lưu mà không có bất kỳ quyền nào không?" } -} +} \ No newline at end of file diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/zh-Hant.json b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/zh-Hant.json index ea109a2dd0..3f438ce7fe 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/zh-Hant.json +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/zh-Hant.json @@ -1,10 +1,11 @@ { - "culture": "zh-Hant", - "texts": { - "Permissions": "權限", - "OnlyProviderPermissons": "只有這個提供者", - "All": "全部", - "SelectAllInAllTabs": "授予所有權限", - "SelectAllInThisTab": "全選" - } + "culture": "zh-Hant", + "texts": { + "Permissions": "權限", + "OnlyProviderPermissons": "只有這個提供者", + "All": "全部", + "SelectAllInAllTabs": "授予所有權限", + "SelectAllInThisTab": "全選", + "SaveWithoutAnyPermissionsWarningMessage": "您確定要在沒有任何權限的情況下保存嗎?" + } } \ No newline at end of file diff --git a/modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/package.json b/modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/package.json index 76419a5b24..9800ea1f6e 100644 --- a/modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/package.json +++ b/modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/package.json @@ -3,6 +3,6 @@ "name": "demo-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "~8.0.0-rc.3" + "@abp/aspnetcore.mvc.ui.theme.basic": "~8.0.0" } } diff --git a/modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/yarn.lock b/modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/yarn.lock index 1d0f3b4e2a..f9b7466558 100644 --- a/modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/yarn.lock +++ b/modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/yarn.lock @@ -2,39 +2,39 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-8.0.0-rc.3.tgz#637ea220c9f988c1d0e1b152928f4409696439f2" - integrity sha512-xFJkcC2Oa8vLqMW0gU/3nXHsdFZOQq8+o9gUeLqDAhHZomnvEWsoivcd+LZs0xSDgQOee7N9h2buv9ERBoYGiA== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~8.0.0-rc.3" - -"@abp/aspnetcore.mvc.ui.theme.shared@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-8.0.0-rc.3.tgz#88904633feb5ce7dface4d27e9a31f4e5ace6b30" - integrity sha512-gMYI+xz/0JDgW2U7T3Lesx1o1U+Y+7zG/jVZO5FuMtlrsYhvT6V5BsKa9q/N7kSR0tfK8vsjblMBobqvbmG3SQ== - dependencies: - "@abp/aspnetcore.mvc.ui" "~8.0.0-rc.3" - "@abp/bootstrap" "~8.0.0-rc.3" - "@abp/bootstrap-datepicker" "~8.0.0-rc.3" - "@abp/bootstrap-daterangepicker" "~8.0.0-rc.3" - "@abp/datatables.net-bs5" "~8.0.0-rc.3" - "@abp/font-awesome" "~8.0.0-rc.3" - "@abp/jquery-form" "~8.0.0-rc.3" - "@abp/jquery-validation-unobtrusive" "~8.0.0-rc.3" - "@abp/lodash" "~8.0.0-rc.3" - "@abp/luxon" "~8.0.0-rc.3" - "@abp/malihu-custom-scrollbar-plugin" "~8.0.0-rc.3" - "@abp/moment" "~8.0.0-rc.3" - "@abp/select2" "~8.0.0-rc.3" - "@abp/sweetalert2" "~8.0.0-rc.3" - "@abp/timeago" "~8.0.0-rc.3" - "@abp/toastr" "~8.0.0-rc.3" - -"@abp/aspnetcore.mvc.ui@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-8.0.0-rc.3.tgz#09402ed4e7504c09b49a84d6ee590a5c87017ab8" - integrity sha512-82GfU8DtReq5RTrb2Fl0UHm+vEO0PvC/6DyFHm57nyWiL2dKByUqLd8NXQz+gqubWOA+IvJoLehbcC6iD+Y0VQ== +"@abp/aspnetcore.mvc.ui.theme.basic@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-8.0.0.tgz#c58d15186ad9842834c953e4d712009597ead5c2" + integrity sha512-d43CG48iS8vQvA85tSK7OlSHdcC9JuBT7mpN7DlLViiQewVeoKwdKkMhl5nkX4k0yNtqaRbWYlDD6kDp95TktA== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~8.0.0" + +"@abp/aspnetcore.mvc.ui.theme.shared@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-8.0.0.tgz#4931d9bd40fba2d3e38d3a2a8da2d2e1c1198cb1" + integrity sha512-YPusLRaR6sBN13rAH/rewZv4GIM3bUsmMjz7o8qVK/3CYTx/iCAn7JSvNBbhCJT151RLmdYrahOsr8UUXx4k8Q== + dependencies: + "@abp/aspnetcore.mvc.ui" "~8.0.0" + "@abp/bootstrap" "~8.0.0" + "@abp/bootstrap-datepicker" "~8.0.0" + "@abp/bootstrap-daterangepicker" "~8.0.0" + "@abp/datatables.net-bs5" "~8.0.0" + "@abp/font-awesome" "~8.0.0" + "@abp/jquery-form" "~8.0.0" + "@abp/jquery-validation-unobtrusive" "~8.0.0" + "@abp/lodash" "~8.0.0" + "@abp/luxon" "~8.0.0" + "@abp/malihu-custom-scrollbar-plugin" "~8.0.0" + "@abp/moment" "~8.0.0" + "@abp/select2" "~8.0.0" + "@abp/sweetalert2" "~8.0.0" + "@abp/timeago" "~8.0.0" + "@abp/toastr" "~8.0.0" + +"@abp/aspnetcore.mvc.ui@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-8.0.0.tgz#9760a1e4be0e2632e11a3f570209b1eefdf81607" + integrity sha512-+WBwpQfDmhP64BVSjyyiqRENpn5EBgcmA7JVMfmdmEJTrzx9ma7WSbLd5QxUxawMSkcjjnK95c5JdMVZXdaL8g== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -43,158 +43,158 @@ merge-stream "^2.0.0" micromatch "^4.0.2" -"@abp/bootstrap-datepicker@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-8.0.0-rc.3.tgz#7656fef148c8bdf7993fdae937427564535dea74" - integrity sha512-qW1XQ2zL+/9f9+Q9Db3E5eIOD8Itjtr0KFAO59tY3G3WEwvCOS85pXJ/I17nLRRo/A2Na4kx4Q/jdYr3DkOgDQ== +"@abp/bootstrap-datepicker@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-8.0.0.tgz#458e0acaf6aedbfb03df692b9b2ec87b9fdad954" + integrity sha512-UetR0ldw0u5i2ohNpeI8+W0AGrov8tiglTTNyx8sF6WMGcCNCtU72jZCOc9/z/q91AijQrtdHIqpN/1B91YiMw== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap-daterangepicker@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-8.0.0-rc.3.tgz#b6eb599b198f58c9a0690d2f779548137e10889f" - integrity sha512-TnZdtV0JHweVrrXCJZjxz+Cbk0lYznzELaA6oBbikCPhzIr2XvLqyHuLvERrFVxq80BZGsF7xUgC2K/Tw/RA8w== +"@abp/bootstrap-daterangepicker@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-8.0.0.tgz#613d2984d0f3981e0270d337b360c27397dbc480" + integrity sha512-nQFDtCp1+EuUfnoRmMcGvOgd4yZPMqjsThiW3m2KIV2Y+YlT52mZLBVpqRBpC2993Bs8E9Zpp4R7ebHJgacePg== dependencies: bootstrap-daterangepicker "^3.1.0" -"@abp/bootstrap@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-8.0.0-rc.3.tgz#8865c2536c353b904e6e96cb70e4280fe9928412" - integrity sha512-h7rDAp3eBQwARAkEZfJU+IBTXEiLwi3I5CYFQ92QdX/mC66R1cX1gYY7pR5Wj5f68VS2pURnNxJnONtS3E/Cyw== +"@abp/bootstrap@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-8.0.0.tgz#7d679f88af98de6ac2c0725b86d43f9ce40c4f5b" + integrity sha512-JX6o8uMrsqiMMvbkDRePDqfPFHtWTuKhSTDa77ryp/AZYKOEvJfkdLZGZmYWy7UsB1RNXilth8kMyibqnw0CGg== dependencies: - "@abp/core" "~8.0.0-rc.3" + "@abp/core" "~8.0.0" bootstrap "^5.1.3" -"@abp/core@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-8.0.0-rc.3.tgz#f399bc55c6ad20c2515a03bb9572c6a4499cfcf0" - integrity sha512-HUa0AfCDX3URnGWsZ/7aZMsXXQFjott05ebK9wF7QDcI7uInyMT5axlrQ/CniyU8GLaFEt3mdtLB7pOZzDnsRw== +"@abp/core@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-8.0.0.tgz#cc4d9c0da10fb922a4adea8df67f60bb02d95365" + integrity sha512-qM7jSTR2uAhjAcsaFNchA89rLBiiJpUsvDBFCz0SyOuFz5DYAHo1njlhICcVAHF7H3NxQfVIndGVSjvmqmLC7Q== dependencies: - "@abp/utils" "~8.0.0-rc.3" + "@abp/utils" "~8.0.0" -"@abp/datatables.net-bs5@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-8.0.0-rc.3.tgz#902d0770c54a5888f805cc97de0ed25d0c53dde9" - integrity sha512-gxYYBeEh81+R8SAh27uMm3paVffq+bYiQgUxpXNgEcyPGP2X7/hnzZNwViuI1t+IgpSuTf6AAt14db9eV6Masg== +"@abp/datatables.net-bs5@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-8.0.0.tgz#c874180ea85fd0b2598fde90e2207bea267870c6" + integrity sha512-8w4oXTQwFnb56NTpeXjUsITGeMtuxv18ZAPK8Zmw28s5uOoIV/d/bEp11hXPwSk3SrjlyLw0lDcZCItwD+W8DQ== dependencies: - "@abp/datatables.net" "~8.0.0-rc.3" + "@abp/datatables.net" "~8.0.0" datatables.net-bs5 "^1.11.4" -"@abp/datatables.net@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-8.0.0-rc.3.tgz#4ddfa9fe3246e72807c3b19307c7484af749f969" - integrity sha512-vQBenQsDxzryspNv0FEzpyUPBXddIkVhXUJ6tHc+IZ8q/+/2wUE0ZciSJm7qS/GQnGrYZv9wpIGbSRh/RgVvVA== +"@abp/datatables.net@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-8.0.0.tgz#09ef3575a611f6ec123d2a9d4d55b8c89e30d115" + integrity sha512-WmsAfQEGPWMTqHGbeiX3RVfIdfkrMOtUfJmR0JaYJMuQo3STmMSnzOgNMKviDeQdzplgoOOKp6j0OgIqcciowg== dependencies: - "@abp/jquery" "~8.0.0-rc.3" + "@abp/jquery" "~8.0.0" datatables.net "^1.11.4" -"@abp/font-awesome@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-8.0.0-rc.3.tgz#5f850c5479f48cf1c951de2354050d38fec6beab" - integrity sha512-GYwhoOThD5Bw0Ain5DkVXgHLpca83QGAy1T7I+6SmYyibYu5SdxV9ytD65tARH+dx9VpB3p9NeC5lRYuWdPzCQ== +"@abp/font-awesome@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-8.0.0.tgz#ce7debf296fddbdf79139147f6c9761ec68b6587" + integrity sha512-qeihwiim6YMcL3KfHU0CViVl5MamQXbTp4606r/hKQejCSbdqR9XupYVbTAyojXLCCRqfnDVuXwqWCFTKVbQow== dependencies: - "@abp/core" "~8.0.0-rc.3" + "@abp/core" "~8.0.0" "@fortawesome/fontawesome-free" "^5.15.4" -"@abp/jquery-form@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-8.0.0-rc.3.tgz#e414a0599448c37df3197af77a91c9a66d3ef77f" - integrity sha512-w58Zi28Ci/0DIzMzC/ihu+np7G2Hv+9DLrhLZKddEI9WisFuxao5EAhKseq7LWMPzG/QSw8skLZAY12YrEtp6w== +"@abp/jquery-form@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-8.0.0.tgz#466343a87baa2f53fb57cf377e0fb0c07ff02bb9" + integrity sha512-xinU2Yu0YWNjoaYnBm+OoN8oNX/BDPzbqGtjlH1s5I+M/S0yf/qlPEzvzL5+epBlt0GKza/SqwSsuAVsfuFrKQ== dependencies: - "@abp/jquery" "~8.0.0-rc.3" + "@abp/jquery" "~8.0.0" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-8.0.0-rc.3.tgz#a3ab6b5078449ba94c7206ed96286b902a766b6b" - integrity sha512-Gvmujjhrvqzu51fGSTAssxGVu4XolTLEwW3qR0zwWCc0+kXF/AXB98DD66A+hmGau54sTKRXVmBTpc4J3KpoWg== +"@abp/jquery-validation-unobtrusive@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-8.0.0.tgz#a641cc4bff6de178ed3429987017c00bf68e81f9" + integrity sha512-nUcktSW5tPifa6yNX9Y8zCi0VCUJklVSSd4f3eKfjU8SIcWq1eNfR6R+MHRZEVVmyB7xeYMBlc0yjxVYwUUlEw== dependencies: - "@abp/jquery-validation" "~8.0.0-rc.3" + "@abp/jquery-validation" "~8.0.0" jquery-validation-unobtrusive "^3.2.12" -"@abp/jquery-validation@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-8.0.0-rc.3.tgz#eee433a5fc076d92d734e7cea4bce00fbaacc963" - integrity sha512-Dq5Ru5WWqDKIDzetUicJzp6DHkGhNNHcjYyHF3n9o9+3T4+6dgRbXy5OYjIv9CADfui55rzckWH57FbCExiUSw== +"@abp/jquery-validation@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-8.0.0.tgz#674fe49294c622b07b843ab8721a5ae32024b7b9" + integrity sha512-B/aFZsKbILP4FPuc3eU17APkbBWJhjWXSQCiSXbHpDZYJN5km1l52gpuWR+7Yo5CXnAP06N+zUYHf86tNCZyBw== dependencies: - "@abp/jquery" "~8.0.0-rc.3" + "@abp/jquery" "~8.0.0" jquery-validation "^1.19.3" -"@abp/jquery@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-8.0.0-rc.3.tgz#e230c5db7a9aff526564c1b4b1820cd983a10726" - integrity sha512-o9xBZt55fT+ZYqmLjQ9dahtIgsRqz4VrXUsLgyKkUzr2p3gtgXCQqKfkIpdeE5aE3p1/T+et5U6FOMUCRZegvg== +"@abp/jquery@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-8.0.0.tgz#67bf40f87c335b1cba73f406f0102f35e820fd84" + integrity sha512-QhjBz/s1hVJcsYCbuZwNOtOCvsC93OMzMJHoZ2COaKkOZlt6tiRHhawdYVZloKDaMdfcd5tvqbkNhXtQ4K9AXg== dependencies: - "@abp/core" "~8.0.0-rc.3" + "@abp/core" "~8.0.0" jquery "~3.6.0" -"@abp/lodash@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-8.0.0-rc.3.tgz#5bf8019fa0e69ec1fac6ccacb1625b8564ed8944" - integrity sha512-Mo2r+bNZXdmM7Ri8SBi+M4OsfnLYejbQmcJ7wkDUPb4B3cDJtTB4YuJn8NWBBjaXwi08Myt1MvSFnT04N/t8Eg== +"@abp/lodash@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-8.0.0.tgz#4c809c4755ed11e70875d30f04312b0ff10a2dbb" + integrity sha512-V0y4k9HlggBvJtK5m35Gkori2IN0E4ec1JpBgGeaOStcvThAL1EtXip1kqPORMbC4wm+bgpT0QWhiqCeKBFoLg== dependencies: - "@abp/core" "~8.0.0-rc.3" + "@abp/core" "~8.0.0" lodash "^4.17.21" -"@abp/luxon@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-8.0.0-rc.3.tgz#cc0adcab4f1fa6bea2055be478ec9a86d00f1ba6" - integrity sha512-vKwfpAPL7GUJLvCpsJoJ5eXRH5Ypciez9J6QiK2Mjx1NauxR514wYtBqM/2I7hoJ4Oc9XvrAjcIon3r21dvCqQ== +"@abp/luxon@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-8.0.0.tgz#13a1145dc79d908f3398944c4bf0fb0457d94217" + integrity sha512-ZEGegnr+KCczPUrxxPmBUKGyiWkjAa4hDWb06mozdVP14zHQbbZfyKKXwrPfanwcj96Ui9i2klnrKPXuyppBJw== dependencies: - "@abp/core" "~8.0.0-rc.3" + "@abp/core" "~8.0.0" luxon "^2.3.0" -"@abp/malihu-custom-scrollbar-plugin@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-8.0.0-rc.3.tgz#195c897dced708de627941ce017e047c62191a56" - integrity sha512-svD7YJzHvufjmhoCKgQcjApIdVcGJwWhpsK260lwLiCvkdNDhxFjH+jfChhLMXPYpOnozrgrVx56oJqDWDrU3A== +"@abp/malihu-custom-scrollbar-plugin@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-8.0.0.tgz#fd4428d66ee38b4b2c02c0e300d5bd75dcda414d" + integrity sha512-jrD4AHd2Pdr28Ps3QtEDVDMSnK7xSumCKKSJl0R5SJcMyskByJ6gwydYqMGeQkCVnk1ztEZFfJNhOO35A+SBWA== dependencies: - "@abp/core" "~8.0.0-rc.3" + "@abp/core" "~8.0.0" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/moment@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-8.0.0-rc.3.tgz#7e2a74cd23c434b45f903b4f826f807a31b5982b" - integrity sha512-E0mob3xj0frslPovdHbsdaFB5oLimORFA86uQJ5KVSEaDOXYKuEqUomMcqg2LRVdzzKd7ai6QkuH3p7qbJonww== +"@abp/moment@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-8.0.0.tgz#26d0932bf4dac4dee25d0940eea50fcfeb37a69b" + integrity sha512-fgh0pXdxPi5Y9VnC6f12kwJmGQL4dowZtVp8lbNEjnCFiocAhEOOuN9gkTGk8y0xEhXroliW7wbaB2MJPINKhg== dependencies: moment "^2.9.0" -"@abp/select2@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-8.0.0-rc.3.tgz#77dd12185f6d03553230c7516e40603310f28f4f" - integrity sha512-9O+IHIB6n+WfLzh6SVyC01OIU3qWzhoT3DofAc329cyI73NJSPuOvmkQtQVYWnkAI/6+B6qYF3A4umD/EoPouQ== +"@abp/select2@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-8.0.0.tgz#4a4ebd63f2b79d663dab709decb2f1b1f510950f" + integrity sha512-kl3of/L0GSHyxt6WYnBDdBqqtoUscY9qubaMHZrk9y1zOVXOM0JUQoyu2KDQhOZm7iCu34ATX47NAw59eb9Omw== dependencies: - "@abp/core" "~8.0.0-rc.3" + "@abp/core" "~8.0.0" select2 "^4.0.13" -"@abp/sweetalert2@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-8.0.0-rc.3.tgz#021afc3457cf72c2b6dd298bb981faa741fc1293" - integrity sha512-b67UC/uZ9gWt2X5MeUnKg98FkhvJ+Azsq4PHcFBdUTZL/5ItJ8F6UsOTpT7Z7cUXFmJn/RTcPrgQDsK63CZltw== +"@abp/sweetalert2@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-8.0.0.tgz#369c04e433eead8e7171cd84298bb3e4ecb14050" + integrity sha512-riaHcFdozJ8R/sAdhtnfa7GHhWjptnQODrZ2bqBkcKuw2d8LKQ+2v3tcflaWWHwsOmGVbki3EhJJPdFWOtli/w== dependencies: - "@abp/core" "~8.0.0-rc.3" + "@abp/core" "~8.0.0" sweetalert2 "^11.3.6" -"@abp/timeago@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-8.0.0-rc.3.tgz#b3e63ff94bce8ad59b02d8c4490f580e60630f00" - integrity sha512-Pmm6Jj7VT1PW/Wfh1ozFFIdpFvH8cGKfHU2sYgwHuw4U9YQUd8ZTIDaZRMhuN9QqnGlmFtUZsXzoIMZJDvOq5w== +"@abp/timeago@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-8.0.0.tgz#93947505b68f369df10bb38cd8c05376e1c1cbcb" + integrity sha512-Q+e5CvvFAU21hGuIXREtIeEl8WlGpsNqK+QbCRbjNvM0HgCPH/gRQNpAV+S7TqaI5W2Uggfcsd7GvTH3GtMv7g== dependencies: - "@abp/jquery" "~8.0.0-rc.3" + "@abp/jquery" "~8.0.0" timeago "^1.6.7" -"@abp/toastr@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-8.0.0-rc.3.tgz#5b0d267951e025ca77a611c2fa9b606e92bd830a" - integrity sha512-hfDzyMSgbjriAALdrcnx/qonN2lquF7HM4QH8nt1E8/vWOkd8bUL/kyAoIL8rfS94zr62UUZTEDezoCfHwif+w== +"@abp/toastr@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-8.0.0.tgz#d409fec3fb1e5a886d0a03b0f58449a2f8a563d9" + integrity sha512-7evxuHJ+ZJtyCoIv0+HY/av5FC8Y5UzBtVjEB8Ol8RvhH5PBkErguPg9qPZvYcpHjJlYN+iKYAuXdQLZdXHwUQ== dependencies: - "@abp/jquery" "~8.0.0-rc.3" + "@abp/jquery" "~8.0.0" toastr "^2.1.4" -"@abp/utils@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-8.0.0-rc.3.tgz#01491fb943eb3a41d4ddbe854e5330b66807d522" - integrity sha512-cuTwsy+FEh3dEnlDDi0s8d3qpWgP3rwqWgg5LlMF0pY/OobJcCLtuo5Zy9bncKL3wFHXVEk6UviYcNkSOkzvtQ== +"@abp/utils@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-8.0.0.tgz#3de8e34e97e10ac9c2b8c1c194bf6b034fde302f" + integrity sha512-F8LsEedqkngbeFsszdZi1lshFqr++anyJFBoaRsKRw6hJPDPrYtHoOWEQ+p7QcH5UVVzVywQUGMNM+gmAT0vGQ== dependencies: just-compare "^2.3.0" diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/Pages/SettingManagement/TimeZoneSettingGroup/TimeZoneSettingGroupViewComponent.razor b/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/Pages/SettingManagement/TimeZoneSettingGroup/TimeZoneSettingGroupViewComponent.razor index cd2d7cb503..36e902c7c3 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/Pages/SettingManagement/TimeZoneSettingGroup/TimeZoneSettingGroupViewComponent.razor +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/Pages/SettingManagement/TimeZoneSettingGroup/TimeZoneSettingGroupViewComponent.razor @@ -15,6 +15,7 @@ @item.Name } +
@L["TimezoneHelpText"].Value
diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/ar.json b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/ar.json index 59a074e147..86dbb1c29b 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/ar.json +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/ar.json @@ -5,7 +5,21 @@ "SuccessfullySaved": "تم الحفظ بنجاح", "Permission:SettingManagement": "إدارة الإعداد", "Permission:Emailing": "إرسال بالبريد الإلكتروني", + "Permission:EmailingTest": "اختبار البريد الإلكتروني", + "Permission:TimeZone": "وحدة زمنية", + "SendTestEmail": "أرسل بريدًا إلكترونيًا للاختبار", + "SenderEmailAddress": "عنوان البريد الإلكتروني للمرسل", + "TargetEmailAddress": "عنوان البريد الإلكتروني المستهدف", + "Subject": "موضوع", + "Body": "جسم", + "TestEmailSubject": "اختبار البريد الإلكتروني {0}", + "TestEmailBody": "اختبار نص رسالة البريد الإلكتروني هنا", + "SuccessfullySent": "أرسلت بنجاح", + "Send": "يرسل", "Menu:Emailing": "إرسال بالبريد الإلكتروني", + "Menu:TimeZone": "وحدة زمنية", + "DisplayName:Timezone": "وحدة زمنية", + "TimezoneHelpText": "يُستخدم هذا الإعداد على مستوى التطبيق أو على أساس المستأجر.", "SmtpHost": "مضيف", "SmtpPort": "ميناء", "SmtpUserName": "اسم المستخدم", @@ -21,4 +35,4 @@ "Feature:AllowChangingEmailSettings": "السماح لتغيير إعدادات البريد الإلكتروني.", "Feature:AllowChangingEmailSettingsDescription": "السماح لتغيير إعدادات البريد الإلكتروني." } -} +} \ No newline at end of file diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/cs.json b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/cs.json index f029bff08c..1d1839f017 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/cs.json +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/cs.json @@ -5,7 +5,21 @@ "SuccessfullySaved": "Úspěšně uloženo", "Permission:SettingManagement": "Správa nastavení", "Permission:Emailing": "Zasílání e-mailem", + "Permission:EmailingTest": "Test zasílání e-mailem", + "Permission:TimeZone": "Časové pásmo", + "SendTestEmail": "Odeslat zkušební e-mail", + "SenderEmailAddress": "E-mailová adresa odesílatele", + "TargetEmailAddress": "Cílová e-mailová adresa", + "Subject": "Předmět", + "Body": "Tělo", + "TestEmailSubject": "Testovací e-mail {0}", + "TestEmailBody": "Test těla e-mailové zprávy zde", + "SuccessfullySent": "Úspěšně odesláno", + "Send": "Poslat", "Menu:Emailing": "Zasílání e-mailem", + "Menu:TimeZone": "Časové pásmo", + "DisplayName:Timezone": "Časové pásmo", + "TimezoneHelpText": "Toto nastavení se používá pro celou aplikaci nebo pro klienty.", "SmtpHost": "Hostitel", "SmtpPort": "Přístav", "SmtpUserName": "Uživatelské jméno", @@ -21,4 +35,4 @@ "Feature:AllowChangingEmailSettings": "Povolit změnu nastavení e-mailu.", "Feature:AllowChangingEmailSettingsDescription": "Povolit změnu nastavení e-mailu." } -} +} \ No newline at end of file diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/de-DE.json b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/de-DE.json index d688609eb7..f7df768c2d 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/de-DE.json +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/de-DE.json @@ -19,6 +19,7 @@ "Menu:Emailing": "E-Mail", "Menu:TimeZone": "Zeitzone", "DisplayName:Timezone": "Zeitzone", + "TimezoneHelpText": "Diese Einstellung wird für die Anwendung oder den Mandanten verwendet.", "SmtpHost": "Host", "SmtpPort": "Port", "SmtpUserName": "Benutzername", diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/de.json b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/de.json index 21808d9acb..ebe5cf350f 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/de.json +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/de.json @@ -2,6 +2,37 @@ "culture": "de", "texts": { "Settings": "Einstellungen", - "SuccessfullySaved": "Erfolgreich gespeichert" + "SuccessfullySaved": "Erfolgreich gespeichert", + "Permission:SettingManagement": "Einstellungsmanagement", + "Permission:Emailing": "E-Mail senden", + "Permission:EmailingTest": "E-Mail-Test", + "Permission:TimeZone": "Zeitzone", + "SendTestEmail": "Test-E-Mail senden", + "SenderEmailAddress": "E-Mail-Adresse des Absenders", + "TargetEmailAddress": "Ziel-E-Mail-Adresse", + "Subject": "Thema", + "Body": "Körper", + "TestEmailSubject": "Test-E-Mail {0}", + "TestEmailBody": "Testen Sie hier die E-Mail-Textnachricht", + "SuccessfullySent": "Erfolgreich gesendet", + "Send": "Schicken", + "Menu:Emailing": "E-Mail senden", + "Menu:TimeZone": "Zeitzone", + "DisplayName:Timezone": "Zeitzone", + "TimezoneHelpText": "Diese Einstellung wird anwendungsweit oder mandantenbasiert verwendet.", + "SmtpHost": "Gastgeber", + "SmtpPort": "Hafen", + "SmtpUserName": "Nutzername", + "SmtpPassword": "Passwort", + "SmtpDomain": "Domain", + "SmtpEnableSsl": "SSL aktivieren", + "SmtpUseDefaultCredentials": "Verwenden Sie Standardanmeldeinformationen", + "DefaultFromAddress": "Standard-Von-Adresse", + "DefaultFromDisplayName": "Standardmäßig vom Anzeigenamen", + "Feature:SettingManagementGroup": "Einstellungsmanagement", + "Feature:SettingManagementEnable": "Aktivieren Sie die Einstellungsverwaltung", + "Feature:SettingManagementEnableDescription": "Aktivieren Sie das Einstellungsverwaltungssystem in der Anwendung.", + "Feature:AllowChangingEmailSettings": "Erlauben Sie das Ändern der E-Mail-Einstellungen.", + "Feature:AllowChangingEmailSettingsDescription": "Erlauben Sie das Ändern der E-Mail-Einstellungen." } } \ No newline at end of file diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/en.json b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/en.json index da6632c2bf..972c4d6740 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/en.json +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/en.json @@ -3,7 +3,7 @@ "texts": { "Settings": "Settings", "SuccessfullySaved": "Successfully saved", - "Permission:SettingManagement": "Setting Management", + "Permission:SettingManagement": "Setting management", "Permission:Emailing": "Emailing", "Permission:EmailingTest": "Emailing test", "Permission:TimeZone": "Time zone", @@ -19,6 +19,7 @@ "Menu:Emailing": "Emailing", "Menu:TimeZone": "Time zone", "DisplayName:Timezone": "Time zone", + "TimezoneHelpText": "This setting is used for application-wide or tenant-based.", "SmtpHost": "Host", "SmtpPort": "Port", "SmtpUserName": "User name", @@ -28,7 +29,7 @@ "SmtpUseDefaultCredentials": "Use default credentials", "DefaultFromAddress": "Default from address", "DefaultFromDisplayName": "Default from display name", - "Feature:SettingManagementGroup": "Setting Management", + "Feature:SettingManagementGroup": "Setting management", "Feature:SettingManagementEnable": "Enable setting management", "Feature:SettingManagementEnableDescription": "Enable setting management system in the application.", "Feature:AllowChangingEmailSettings": "Allow changing email settings.", diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/es.json b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/es.json index 60f8ce712f..f5af4e2168 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/es.json +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/es.json @@ -5,7 +5,21 @@ "SuccessfullySaved": "Guardado correctamente", "Permission:SettingManagement": "Configuraciones de correo electronico", "Permission:Emailing": "Configuración", + "Permission:EmailingTest": "prueba de correo electrónico", + "Permission:TimeZone": "Zona horaria", + "SendTestEmail": "Enviar correo electrónico de prueba", + "SenderEmailAddress": "Dirección de correo electrónico del remitente", + "TargetEmailAddress": "Dirección de correo electrónico de destino", + "Subject": "Sujeto", + "Body": "Cuerpo", + "TestEmailSubject": "Correo electrónico de prueba {0}", + "TestEmailBody": "Pruebe el cuerpo del mensaje de correo electrónico aquí", + "SuccessfullySent": "Enviado exitosamente", + "Send": "Enviar", "Menu:Emailing": "Configuración", + "Menu:TimeZone": "Zona horaria", + "DisplayName:Timezone": "Zona horaria", + "TimezoneHelpText": "Esta configuración se utiliza para toda la aplicación o basada en inquilinos.", "SmtpHost": "Host", "SmtpPort": "Puerto", "SmtpUserName": "Nombre de usuario", @@ -21,4 +35,4 @@ "Feature:AllowChangingEmailSettings": "Permitir cambiar la configuración de correo electrónico.", "Feature:AllowChangingEmailSettingsDescription": "Permitir cambiar la configuración de correo electrónico." } -} +} \ No newline at end of file diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/fi.json b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/fi.json index dfb712bae3..28ab6f593d 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/fi.json +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/fi.json @@ -17,6 +17,9 @@ "SuccessfullySent": "Lähetetty onnistuneesti", "Send": "Lähetä", "Menu:Emailing": "Sähköpostiviestit", + "Menu:TimeZone": "Aikavyöhyke", + "DisplayName:Timezone": "Aikavyöhyke", + "TimezoneHelpText": "Tätä asetusta käytetään sovelluksenlaajuisesti tai vuokraajakohtaisesti.", "SmtpHost": "Isäntä", "SmtpPort": "Portti", "SmtpUserName": "Käyttäjänimi", @@ -32,4 +35,4 @@ "Feature:AllowChangingEmailSettings": "Salli sähköpostiasetusten muuttaminen.", "Feature:AllowChangingEmailSettingsDescription": "Salli sähköpostiasetusten muuttaminen." } -} +} \ No newline at end of file diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/fr.json b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/fr.json index 0aa479b4f9..66aea3c898 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/fr.json +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/fr.json @@ -5,7 +5,21 @@ "SuccessfullySaved": "Enregistré avec succès", "Permission:SettingManagement": "Gestion des paramètres", "Permission:Emailing": "Envoi par e-mail", + "Permission:EmailingTest": "Test d'emailing", + "Permission:TimeZone": "Fuseau horaire", + "SendTestEmail": "Envoyer un e-mail de test", + "SenderEmailAddress": "Adresse email de l'expéditeur", + "TargetEmailAddress": "Adresse e-mail cible", + "Subject": "Sujet", + "Body": "Corps", + "TestEmailSubject": "E-mail test {0}", + "TestEmailBody": "Testez le corps du message ici", + "SuccessfullySent": "Envoyé avec succès", + "Send": "Envoyer", "Menu:Emailing": "Envoi par e-mail", + "Menu:TimeZone": "Fuseau horaire", + "DisplayName:Timezone": "Fuseau horaire", + "TimezoneHelpText": "Ce paramètre est utilisé à l’échelle de l’application ou basé sur le client.", "SmtpHost": "Hôte", "SmtpPort": "Port", "SmtpUserName": "Nom d'utilisateur", @@ -21,4 +35,4 @@ "Feature:AllowChangingEmailSettings": "Autoriser la modification des paramètres de messagerie.", "Feature:AllowChangingEmailSettingsDescription": "Autoriser la modification des paramètres de messagerie." } -} +} \ No newline at end of file diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/hi.json b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/hi.json index efca2681f1..beacd78318 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/hi.json +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/hi.json @@ -5,7 +5,21 @@ "SuccessfullySaved": "सफलतापूर्वक संचित कर लिया गया है", "Permission:SettingManagement": "प्रबंधन की स्थापना", "Permission:Emailing": "ईमेल से भेजना", + "Permission:EmailingTest": "ईमेल परीक्षण", + "Permission:TimeZone": "समय क्षेत्र", + "SendTestEmail": "परीक्षण ईमेल भेजें", + "SenderEmailAddress": "प्रेषक का ईमेल पता", + "TargetEmailAddress": "लक्ष्य ईमेल पता", + "Subject": "विषय", + "Body": "शरीर", + "TestEmailSubject": "परीक्षण ईमेल {0}", + "TestEmailBody": "यहां ईमेल बॉडी संदेश का परीक्षण करें", + "SuccessfullySent": "सफलतापूर्वक भेजा", + "Send": "भेजना", "Menu:Emailing": "ईमेल से भेजना", + "Menu:TimeZone": "समय क्षेत्र", + "DisplayName:Timezone": "समय क्षेत्र", + "TimezoneHelpText": "इस सेटिंग का उपयोग एप्लिकेशन-व्यापी या किरायेदार-आधारित के लिए किया जाता है।", "SmtpHost": "मेज़बान", "SmtpPort": "बंदरगाह", "SmtpUserName": "उपयोगकर्ता नाम", @@ -21,4 +35,4 @@ "Feature:AllowChangingEmailSettings": "ईमेल सेटिंग्स बदलने की अनुमति दें।", "Feature:AllowChangingEmailSettingsDescription": "ईमेल सेटिंग्स बदलने की अनुमति दें।" } -} +} \ No newline at end of file diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/hr.json b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/hr.json index 8b779c491e..2be0afddaa 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/hr.json +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/hr.json @@ -1,35 +1,38 @@ { - "culture": "hr", - "texts": { - "Settings": "Postavke", - "SuccessfullySaved": "Uspješno spremljeno", - "Permission:SettingManagement": "Upravljanje postavkama", - "Permission:Emailing": "Slanje e-poštom", - "Permission:EmailingTest": "Test slanja e-pošte", - "SendTestEmail": "Po�alji probnu e-poštu", - "Permission:TimeZone": "Vremenska zona", - "SenderEmailAddress": "Adresa e-pošte pošiljatelja", - "TargetEmailAddress": "Ciljana adresa e-pošte", - "Subject": "Predmet", - "Body": "Tijelo", - "TestEmailSubject": "Probna e-pošta {0}", - "TestEmailBody": "Testirajte tijelo poruke e-pošte ovdje", - "SuccessfullySent": "Uspješno poslano", - "Send": "Poslati", - "Menu:Emailing": "Slanje e-poštom", - "SmtpHost": "Domaćin", - "SmtpPort": "Port", - "SmtpUserName": "Korisničko ime", - "SmtpPassword": "Zaporka", - "SmtpDomain": "Domena", - "SmtpEnableSsl": "Omogući ssl", - "SmtpUseDefaultCredentials": "Koristite zadane vjerodajnice", - "DefaultFromAddress": "Zadana adresa", - "DefaultFromDisplayName": "Zadano iz imena za prikaz", - "Feature:SettingManagementGroup": "Upravljanje postavkama", - "Feature:SettingManagementEnable": "Omogući upravljanje postavkama", - "Feature:SettingManagementEnableDescription": "Omogućite sustav upravljanja postavkama u aplikaciji.", - "Feature:AllowChangingEmailSettings": "Dopusti promjenu postavki e-pošte.", - "Feature:AllowChangingEmailSettingsDescription": "Dopusti promjenu postavki e-pošte." - } -} + "culture": "hr", + "texts": { + "Settings": "Postavke", + "SuccessfullySaved": "Uspješno spremljeno", + "Permission:SettingManagement": "Upravljanje postavkama", + "Permission:Emailing": "Slanje e-poštom", + "Permission:EmailingTest": "Test slanja e-pošte", + "Permission:TimeZone": "Vremenska zona", + "SendTestEmail": "Po�alji probnu e-poštu", + "SenderEmailAddress": "Adresa e-pošte pošiljatelja", + "TargetEmailAddress": "Ciljana adresa e-pošte", + "Subject": "Predmet", + "Body": "Tijelo", + "TestEmailSubject": "Probna e-pošta {0}", + "TestEmailBody": "Testirajte tijelo poruke e-pošte ovdje", + "SuccessfullySent": "Uspješno poslano", + "Send": "Poslati", + "Menu:Emailing": "Slanje e-poštom", + "Menu:TimeZone": "Vremenska zona", + "DisplayName:Timezone": "Vremenska zona", + "TimezoneHelpText": "Ova se postavka koristi za cijelu aplikaciju ili zakupce.", + "SmtpHost": "Domaćin", + "SmtpPort": "Port", + "SmtpUserName": "Korisničko ime", + "SmtpPassword": "Zaporka", + "SmtpDomain": "Domena", + "SmtpEnableSsl": "Omogući ssl", + "SmtpUseDefaultCredentials": "Koristite zadane vjerodajnice", + "DefaultFromAddress": "Zadana adresa", + "DefaultFromDisplayName": "Zadano iz imena za prikaz", + "Feature:SettingManagementGroup": "Upravljanje postavkama", + "Feature:SettingManagementEnable": "Omogući upravljanje postavkama", + "Feature:SettingManagementEnableDescription": "Omogućite sustav upravljanja postavkama u aplikaciji.", + "Feature:AllowChangingEmailSettings": "Dopusti promjenu postavki e-pošte.", + "Feature:AllowChangingEmailSettingsDescription": "Dopusti promjenu postavki e-pošte." + } +} \ No newline at end of file diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/hu.json b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/hu.json index a0eaac826a..2d18c7299a 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/hu.json +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/hu.json @@ -17,6 +17,9 @@ "SuccessfullySent": "Sikeresen elküldve", "Send": "Küld", "Menu:Emailing": "E-mailezés", + "Menu:TimeZone": "Időzóna", + "DisplayName:Timezone": "Időzóna", + "TimezoneHelpText": "Ez a beállítás az egész alkalmazásra vagy a bérlőre vonatkozik.", "SmtpHost": "Házigazda", "SmtpPort": "Kikötő", "SmtpUserName": "Felhasználónév", @@ -32,4 +35,4 @@ "Feature:AllowChangingEmailSettings": "Az e-mail beállítások módosításának engedélyezése.", "Feature:AllowChangingEmailSettingsDescription": "Az e-mail beállítások módosításának engedélyezése." } -} +} \ No newline at end of file diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/is.json b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/is.json index 1de09db58f..a15b19a7ca 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/is.json +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/is.json @@ -5,7 +5,21 @@ "SuccessfullySaved": "Tókst að vista", "Permission:SettingManagement": "Stillingar", "Permission:Emailing": "Senda tölvupóst", + "Permission:EmailingTest": "Próf í tölvupósti", + "Permission:TimeZone": "Tímabelti", + "SendTestEmail": "Sendu prófunarpóst", + "SenderEmailAddress": "Netfang sendanda", + "TargetEmailAddress": "Miðað netfang", + "Subject": "Efni", + "Body": "Líkami", + "TestEmailSubject": "Prófunartölvupóstur {0}", + "TestEmailBody": "Prófaðu meginmál tölvupósts hér", + "SuccessfullySent": "Tókst sent", + "Send": "Senda", "Menu:Emailing": "Senda tölvupóst", + "Menu:TimeZone": "Tímabelti", + "DisplayName:Timezone": "Tímabelti", + "TimezoneHelpText": "Þessi stilling er notuð fyrir allt forrit eða leigjanda.", "SmtpHost": "Smtp Host", "SmtpPort": "Port", "SmtpUserName": "Notanda nafn", @@ -21,4 +35,4 @@ "Feature:AllowChangingEmailSettings": "Leyfa að breyta stillingum tölvupósts.", "Feature:AllowChangingEmailSettingsDescription": "Leyfa að breyta stillingum tölvupósts." } -} +} \ No newline at end of file diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/it.json b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/it.json index 09fc3e8f45..8921456e05 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/it.json +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/it.json @@ -5,7 +5,21 @@ "SuccessfullySaved": "Salvato con successo", "Permission:SettingManagement": "Gestione delle impostazioni", "Permission:Emailing": "Invio di e-mail", + "Permission:EmailingTest": "Prova di invio tramite posta elettronica", + "Permission:TimeZone": "Fuso orario", + "SendTestEmail": "Invia e-mail di prova", + "SenderEmailAddress": "Indirizzo e-mail del mittente", + "TargetEmailAddress": "Indirizzo e-mail di destinazione", + "Subject": "Soggetto", + "Body": "Corpo", + "TestEmailSubject": "Prova l'e-mail {0}", + "TestEmailBody": "Prova il corpo del messaggio email qui", + "SuccessfullySent": "Inviato con successo", + "Send": "Inviare", "Menu:Emailing": "Invio di e-mail", + "Menu:TimeZone": "Fuso orario", + "DisplayName:Timezone": "Fuso orario", + "TimezoneHelpText": "Questa impostazione viene utilizzata per l'intera applicazione o in base al tenant.", "SmtpHost": "Host", "SmtpPort": "Porta", "SmtpUserName": "Nome utente", @@ -21,4 +35,4 @@ "Feature:AllowChangingEmailSettings": "Consenti di modificare le loro impostazioni e-mail.", "Feature:AllowChangingEmailSettingsDescription": "Consenti di modificare le loro impostazioni e-mail." } -} +} \ No newline at end of file diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/nl.json b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/nl.json index e89b43c6b8..539352327a 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/nl.json +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/nl.json @@ -5,7 +5,21 @@ "SuccessfullySaved": "Succesvol opgeslagen", "Permission:SettingManagement": "Instellingenbeheer", "Permission:Emailing": "E-mail", + "Permission:EmailingTest": "E-mailtest", + "Permission:TimeZone": "Tijdzone", + "SendTestEmail": "Test-e-mail verzenden", + "SenderEmailAddress": "E-mailadres van de afzender", + "TargetEmailAddress": "Doel-e-mailadres", + "Subject": "Onderwerp", + "Body": "Lichaam", + "TestEmailSubject": "Test-e-mail {0}", + "TestEmailBody": "Test hier het hoofdbericht van de e-mail", + "SuccessfullySent": "Succesvol verzonden", + "Send": "Versturen", "Menu:Emailing": "E-mail", + "Menu:TimeZone": "Tijdzone", + "DisplayName:Timezone": "Tijdzone", + "TimezoneHelpText": "Deze instelling wordt gebruikt voor de hele toepassing of op tenantbasis.", "SmtpHost": "Host", "SmtpPort": "Poort", "SmtpUserName": "Gebruikersnaam", @@ -21,4 +35,4 @@ "Feature:AllowChangingEmailSettings": "Toestaan om e-mailinstellingen te wijzigen.", "Feature:AllowChangingEmailSettingsDescription": "Toestaan om e-mailinstellingen te wijzigen." } -} +} \ No newline at end of file diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/pl-PL.json b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/pl-PL.json index 90ebf15d24..d456e92344 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/pl-PL.json +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/pl-PL.json @@ -5,7 +5,21 @@ "SuccessfullySaved": "Zapisano pomyślnie", "Permission:SettingManagement": "Zarządzanie ustawieniami", "Permission:Emailing": "Wysyłanie e-maili", + "Permission:EmailingTest": "Test wysyłania e-maili", + "Permission:TimeZone": "Strefa czasowa", + "SendTestEmail": "Wyślij e-mail testowy", + "SenderEmailAddress": "Adres e-mail nadawcy", + "TargetEmailAddress": "Docelowy adres e-mail", + "Subject": "Temat", + "Body": "Ciało", + "TestEmailSubject": "Testowy e-mail {0}", + "TestEmailBody": "Tutaj przetestuj treść wiadomości e-mail", + "SuccessfullySent": "Pomyślnie wysłane", + "Send": "Wysłać", "Menu:Emailing": "Wysyłanie e-maili", + "Menu:TimeZone": "Strefa czasowa", + "DisplayName:Timezone": "Strefa czasowa", + "TimezoneHelpText": "To ustawienie jest używane w przypadku całej aplikacji lub opartej na dzierżawie.", "SmtpHost": "Gospodarz", "SmtpPort": "Port", "SmtpUserName": "Nazwa użytkownika", @@ -21,4 +35,4 @@ "Feature:AllowChangingEmailSettings": "Zezwól na zmianę ustawień poczty e-mail.", "Feature:AllowChangingEmailSettingsDescription": "Zezwól na zmianę ustawień poczty e-mail." } -} +} \ No newline at end of file diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/pt-BR.json b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/pt-BR.json index 3bbae86055..2d33b4224d 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/pt-BR.json +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/pt-BR.json @@ -17,6 +17,9 @@ "SuccessfullySent": "Enviado com sucesso", "Send": "Enviar", "Menu:Emailing": "Enviando por e-mail", + "Menu:TimeZone": "Fuso horário", + "DisplayName:Timezone": "Fuso horário", + "TimezoneHelpText": "Essa configuração é usada para todo o aplicativo ou com base em locatário.", "SmtpHost": "Hospedeiro", "SmtpPort": "Porta", "SmtpUserName": "Nome do usuário", @@ -32,4 +35,4 @@ "Feature:AllowChangingEmailSettings": "Permitir alterar as configurações de e-mail.", "Feature:AllowChangingEmailSettingsDescription": "Permitir alterar as configurações de e-mail." } -} +} \ No newline at end of file diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/ro-RO.json b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/ro-RO.json index edbc533607..b1ebd0ae62 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/ro-RO.json +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/ro-RO.json @@ -5,7 +5,21 @@ "SuccessfullySaved": "Salvat cu succes", "Permission:SettingManagement": "Administrarea setărilor", "Permission:Emailing": "Emailing", + "Permission:EmailingTest": "Test de trimitere prin e-mail", + "Permission:TimeZone": "Fus orar", + "SendTestEmail": "Trimite e-mail de test", + "SenderEmailAddress": "Adresa de e-mail a expeditorului", + "TargetEmailAddress": "Adresă de e-mail țintă", + "Subject": "Subiect", + "Body": "Corp", + "TestEmailSubject": "E-mail de testare {0}", + "TestEmailBody": "Testați corpul mesajului de e-mail aici", + "SuccessfullySent": "Trimis cu succes", + "Send": "Trimite", "Menu:Emailing": "Emailing", + "Menu:TimeZone": "Fus orar", + "DisplayName:Timezone": "Fus orar", + "TimezoneHelpText": "Această setare este utilizată pentru aplicație sau pentru chiriași.", "SmtpHost": "Host", "SmtpPort": "Port", "SmtpUserName": "Nume de utilizator", @@ -21,4 +35,4 @@ "Feature:AllowChangingEmailSettings": "Permiteți modificarea setărilor de e-mail.", "Feature:AllowChangingEmailSettingsDescription": "Permiteți modificarea setărilor de e-mail." } -} +} \ No newline at end of file diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/ru.json b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/ru.json index c51a42f6f9..a81b588c31 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/ru.json +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/ru.json @@ -5,7 +5,21 @@ "SuccessfullySaved": "Успешно сохранено", "Permission:SettingManagement": "Управление настройками", "Permission:Emailing": "Отправка по электронной почте", + "Permission:EmailingTest": "Тестовая рассылка по электронной почте", + "Permission:TimeZone": "Часовой пояс", + "SendTestEmail": "Отправить тестовое письмо", + "SenderEmailAddress": "Адрес электронной почты отправителя", + "TargetEmailAddress": "Целевой адрес электронной почты", + "Subject": "Предмет", + "Body": "Тело", + "TestEmailSubject": "Тестовое письмо {0}", + "TestEmailBody": "Проверьте текст сообщения электронной почты здесь", + "SuccessfullySent": "Успешно отправлено", + "Send": "Отправлять", "Menu:Emailing": "Отправка по электронной почте", + "Menu:TimeZone": "Часовой пояс", + "DisplayName:Timezone": "Часовой пояс", + "TimezoneHelpText": "Этот параметр используется для всего приложения или на уровне клиента.", "SmtpHost": "Хозяин", "SmtpPort": "Порт", "SmtpUserName": "Имя пользователя", @@ -21,4 +35,4 @@ "Feature:AllowChangingEmailSettings": "Разрешить изменение настроек электронной почты.", "Feature:AllowChangingEmailSettingsDescription": "Разрешить изменение настроек электронной почты." } -} +} \ No newline at end of file diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/sk.json b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/sk.json index 11a750558e..d9e3b1eca3 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/sk.json +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/sk.json @@ -5,7 +5,21 @@ "SuccessfullySaved": "Úspešne uložené", "Permission:SettingManagement": "Správa nastavení", "Permission:Emailing": "Posielanie emailov", + "Permission:EmailingTest": "Test odosielania e-mailov", + "Permission:TimeZone": "Časové pásmo", + "SendTestEmail": "Odoslať testovací e-mail", + "SenderEmailAddress": "E-mailová adresa odosielateľa", + "TargetEmailAddress": "Cieľová e-mailová adresa", + "Subject": "Predmet", + "Body": "Telo", + "TestEmailSubject": "Testovací e-mail {0}", + "TestEmailBody": "Tu otestujte telo e-mailu", + "SuccessfullySent": "Úspešne odoslané", + "Send": "Odoslať", "Menu:Emailing": "Posielanie emailov", + "Menu:TimeZone": "Časové pásmo", + "DisplayName:Timezone": "Časové pásmo", + "TimezoneHelpText": "Toto nastavenie sa používa pre celú aplikáciu alebo pre nájomníkov.", "SmtpHost": "Host", "SmtpPort": "Port", "SmtpUserName": "Meno používateľa", @@ -21,4 +35,4 @@ "Feature:AllowChangingEmailSettings": "Povoliť zmenu nastavení e-mailu.", "Feature:AllowChangingEmailSettingsDescription": "Povoliť zmenu nastavení e-mailu." } -} +} \ No newline at end of file diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/sl.json b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/sl.json index e860f2dfba..3b3faeccd0 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/sl.json +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/sl.json @@ -5,7 +5,21 @@ "SuccessfullySaved": "Uspešno shranjeno", "Permission:SettingManagement": "Upravljanje nastavitev", "Permission:Emailing": "Pošiljanje po e-pošti", + "Permission:EmailingTest": "Test pošiljanja po e-pošti", + "Permission:TimeZone": "Časovni pas", + "SendTestEmail": "Pošlji testno e-pošto", + "SenderEmailAddress": "E-poštni naslov pošiljatelja", + "TargetEmailAddress": "Ciljni e-poštni naslov", + "Subject": "Predmet", + "Body": "Telo", + "TestEmailSubject": "Preskusno e-poštno sporočilo {0}", + "TestEmailBody": "Tukaj preizkusite telo e-poštnega sporočila", + "SuccessfullySent": "Uspešno poslano", + "Send": "Pošlji", "Menu:Emailing": "Pošiljanje po e-pošti", + "Menu:TimeZone": "Časovni pas", + "DisplayName:Timezone": "Časovni pas", + "TimezoneHelpText": "Ta nastavitev se uporablja za celotno aplikacijo ali za najemnika.", "SmtpHost": "Gostitelj", "SmtpPort": "pristanišče", "SmtpUserName": "Uporabniško ime", @@ -21,4 +35,4 @@ "Feature:AllowChangingEmailSettings": "Dovoli spreminjanje e-poštnih nastavitev.", "Feature:AllowChangingEmailSettingsDescription": "Dovoli spreminjanje e-poštnih nastavitev." } -} +} \ No newline at end of file diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/tr.json b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/tr.json index 6655f49966..c9b2dbe601 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/tr.json +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/tr.json @@ -19,6 +19,7 @@ "Menu:Emailing": "Email", "Menu:TimeZone": "Zaman dilimi", "DisplayName:Timezone": "Zaman dilimi", + "TimezoneHelpText": "Bu ayar uygulama genelinde veya kiracı tabanlı olarak kullanılır.", "SmtpHost": "Sunucu", "SmtpPort": "Port", "SmtpUserName": "Kullanıcı adı", diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/vi.json b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/vi.json index 744620abc6..8989bd2fef 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/vi.json +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/vi.json @@ -5,7 +5,21 @@ "SuccessfullySaved": "Lưu thành công", "Permission:SettingManagement": "Cài đặt quản lý", "Permission:Emailing": "Gửi email", + "Permission:EmailingTest": "Kiểm tra gửi email", + "Permission:TimeZone": "Múi giờ", + "SendTestEmail": "Gửi email kiểm tra", + "SenderEmailAddress": "Địa chỉ email người gửi", + "TargetEmailAddress": "Địa chỉ email mục tiêu", + "Subject": "Chủ thể", + "Body": "Thân hình", + "TestEmailSubject": "Kiểm tra email {0}", + "TestEmailBody": "Kiểm tra nội dung email tại đây", + "SuccessfullySent": "Đã gửi thành công", + "Send": "Gửi", "Menu:Emailing": "Gửi email", + "Menu:TimeZone": "Múi giờ", + "DisplayName:Timezone": "Múi giờ", + "TimezoneHelpText": "Cài đặt này được sử dụng cho toàn bộ ứng dụng hoặc dựa trên đối tượng thuê.", "SmtpHost": "Tổ chức", "SmtpPort": "Hải cảng", "SmtpUserName": "Tên tài khoản", @@ -21,4 +35,4 @@ "Feature:AllowChangingEmailSettings": "Cho phép thay đổi cài đặt email.", "Feature:AllowChangingEmailSettingsDescription": "Cho phép thay đổi cài đặt email." } -} +} \ No newline at end of file diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/zh-Hans.json b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/zh-Hans.json index 0d1b0226ab..5c8539f440 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/zh-Hans.json +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/zh-Hans.json @@ -19,6 +19,7 @@ "Menu:Emailing": "邮件", "Menu:TimeZone": "时区", "DisplayName:Timezone": "时区", + "TimezoneHelpText": "此设置用于应用程序范围或基于租户.", "SmtpHost": "主机", "SmtpPort": "端口", "SmtpUserName": "用户名", diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/zh-Hant.json b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/zh-Hant.json index 77210e06c9..3c2e08f42f 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/zh-Hant.json +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/zh-Hant.json @@ -19,6 +19,7 @@ "Menu:Emailing": "信箱", "Menu:TimeZone": "時區", "DisplayName:Timezone": "時區", + "TimezoneHelpText": "此設置用於應用程序範圍或基於租戶。", "SmtpHost": "主機", "SmtpPort": "Port", "SmtpUserName": "帳號", diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Web/Pages/SettingManagement/Components/TimeZoneSettingGroup/Default.cshtml b/modules/setting-management/src/Volo.Abp.SettingManagement.Web/Pages/SettingManagement/Components/TimeZoneSettingGroup/Default.cshtml index 99469b61a7..c146118cb3 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Web/Pages/SettingManagement/Components/TimeZoneSettingGroup/Default.cshtml +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Web/Pages/SettingManagement/Components/TimeZoneSettingGroup/Default.cshtml @@ -9,7 +9,7 @@
- +
diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo/Abp/TenantManagement/Localization/Resources/cs.json b/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo/Abp/TenantManagement/Localization/Resources/cs.json index 001d5d71fb..3902ad703b 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo/Abp/TenantManagement/Localization/Resources/cs.json +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo/Abp/TenantManagement/Localization/Resources/cs.json @@ -1,6 +1,7 @@ { "culture": "cs", "texts": { + "Volo.Abp.TenantManagement:DuplicateTenantName": "Jméno nájemce již existuje: {Name}", "Menu:TenantManagement": "Správa tenantů", "Tenants": "Tenanty", "NewTenant": "Nový tenant", diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo/Abp/TenantManagement/Localization/Resources/is.json b/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo/Abp/TenantManagement/Localization/Resources/is.json index ca2a8cb7a9..5c170f9a27 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo/Abp/TenantManagement/Localization/Resources/is.json +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo/Abp/TenantManagement/Localization/Resources/is.json @@ -1,6 +1,7 @@ { "culture": "is", "texts": { + "Volo.Abp.TenantManagement:DuplicateTenantName": "Nafn leigjanda er þegar til: {Name}", "Menu:TenantManagement": "Tenant umsjá", "Tenants": "Tenantar", "NewTenant": "Nýr tenant", diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo/Abp/TenantManagement/Localization/Resources/nl.json b/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo/Abp/TenantManagement/Localization/Resources/nl.json index 1aeb208560..f739a3eb27 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo/Abp/TenantManagement/Localization/Resources/nl.json +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo/Abp/TenantManagement/Localization/Resources/nl.json @@ -1,6 +1,7 @@ { "culture": "nl", "texts": { + "Volo.Abp.TenantManagement:DuplicateTenantName": "Naam van huurder bestaat al: {Name}", "Menu:TenantManagement": "Klanten beheer", "Tenants": "Klanten", "NewTenant": "Nieuwe klant", diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo/Abp/TenantManagement/Localization/Resources/pl-PL.json b/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo/Abp/TenantManagement/Localization/Resources/pl-PL.json index 6ec40c7310..95a7b39e0e 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo/Abp/TenantManagement/Localization/Resources/pl-PL.json +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo/Abp/TenantManagement/Localization/Resources/pl-PL.json @@ -1,6 +1,7 @@ { "culture": "pl-PL", "texts": { + "Volo.Abp.TenantManagement:DuplicateTenantName": "Nazwa najemcy już istnieje: {Name}", "Menu:TenantManagement": "Zarządzanie tenantami", "Tenants": "Tenanty", "NewTenant": "Nowy tenant", diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo/Abp/TenantManagement/Localization/Resources/ro-RO.json b/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo/Abp/TenantManagement/Localization/Resources/ro-RO.json index 18bf9fb74e..cb14140ddb 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo/Abp/TenantManagement/Localization/Resources/ro-RO.json +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo/Abp/TenantManagement/Localization/Resources/ro-RO.json @@ -1,6 +1,7 @@ { "culture": "ro-RO", "texts": { + "Volo.Abp.TenantManagement:DuplicateTenantName": "Numele chiriașului există deja: {Name}", "Menu:TenantManagement": "Administrarea clienţilor", "Tenants": "Clienţi", "NewTenant": "Client nou", diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo/Abp/TenantManagement/Localization/Resources/vi.json b/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo/Abp/TenantManagement/Localization/Resources/vi.json index 4fafa9cc72..13f5afb095 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo/Abp/TenantManagement/Localization/Resources/vi.json +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo/Abp/TenantManagement/Localization/Resources/vi.json @@ -1,6 +1,7 @@ { "culture": "vi", "texts": { + "Volo.Abp.TenantManagement:DuplicateTenantName": "Tên người thuê đã tồn tại: {Name}", "Menu:TenantManagement": "Quản lý người thuê", "Tenants": "Người thuê", "NewTenant": "Người thuê mới", diff --git a/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/package.json b/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/package.json index f3eab0e448..4ec4342b39 100644 --- a/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/package.json +++ b/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/package.json @@ -3,7 +3,7 @@ "version": "1.0.0", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "~8.0.0-rc.3", - "@abp/virtual-file-explorer": "~8.0.0-rc.3" + "@abp/aspnetcore.mvc.ui.theme.basic": "~8.0.0", + "@abp/virtual-file-explorer": "~8.0.0" } } diff --git a/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/yarn.lock b/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/yarn.lock index 9983ad8f0c..e8152c7f31 100644 --- a/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/yarn.lock +++ b/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/yarn.lock @@ -2,39 +2,39 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-8.0.0-rc.3.tgz#637ea220c9f988c1d0e1b152928f4409696439f2" - integrity sha512-xFJkcC2Oa8vLqMW0gU/3nXHsdFZOQq8+o9gUeLqDAhHZomnvEWsoivcd+LZs0xSDgQOee7N9h2buv9ERBoYGiA== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~8.0.0-rc.3" - -"@abp/aspnetcore.mvc.ui.theme.shared@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-8.0.0-rc.3.tgz#88904633feb5ce7dface4d27e9a31f4e5ace6b30" - integrity sha512-gMYI+xz/0JDgW2U7T3Lesx1o1U+Y+7zG/jVZO5FuMtlrsYhvT6V5BsKa9q/N7kSR0tfK8vsjblMBobqvbmG3SQ== - dependencies: - "@abp/aspnetcore.mvc.ui" "~8.0.0-rc.3" - "@abp/bootstrap" "~8.0.0-rc.3" - "@abp/bootstrap-datepicker" "~8.0.0-rc.3" - "@abp/bootstrap-daterangepicker" "~8.0.0-rc.3" - "@abp/datatables.net-bs5" "~8.0.0-rc.3" - "@abp/font-awesome" "~8.0.0-rc.3" - "@abp/jquery-form" "~8.0.0-rc.3" - "@abp/jquery-validation-unobtrusive" "~8.0.0-rc.3" - "@abp/lodash" "~8.0.0-rc.3" - "@abp/luxon" "~8.0.0-rc.3" - "@abp/malihu-custom-scrollbar-plugin" "~8.0.0-rc.3" - "@abp/moment" "~8.0.0-rc.3" - "@abp/select2" "~8.0.0-rc.3" - "@abp/sweetalert2" "~8.0.0-rc.3" - "@abp/timeago" "~8.0.0-rc.3" - "@abp/toastr" "~8.0.0-rc.3" - -"@abp/aspnetcore.mvc.ui@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-8.0.0-rc.3.tgz#09402ed4e7504c09b49a84d6ee590a5c87017ab8" - integrity sha512-82GfU8DtReq5RTrb2Fl0UHm+vEO0PvC/6DyFHm57nyWiL2dKByUqLd8NXQz+gqubWOA+IvJoLehbcC6iD+Y0VQ== +"@abp/aspnetcore.mvc.ui.theme.basic@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-8.0.0.tgz#c58d15186ad9842834c953e4d712009597ead5c2" + integrity sha512-d43CG48iS8vQvA85tSK7OlSHdcC9JuBT7mpN7DlLViiQewVeoKwdKkMhl5nkX4k0yNtqaRbWYlDD6kDp95TktA== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~8.0.0" + +"@abp/aspnetcore.mvc.ui.theme.shared@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-8.0.0.tgz#4931d9bd40fba2d3e38d3a2a8da2d2e1c1198cb1" + integrity sha512-YPusLRaR6sBN13rAH/rewZv4GIM3bUsmMjz7o8qVK/3CYTx/iCAn7JSvNBbhCJT151RLmdYrahOsr8UUXx4k8Q== + dependencies: + "@abp/aspnetcore.mvc.ui" "~8.0.0" + "@abp/bootstrap" "~8.0.0" + "@abp/bootstrap-datepicker" "~8.0.0" + "@abp/bootstrap-daterangepicker" "~8.0.0" + "@abp/datatables.net-bs5" "~8.0.0" + "@abp/font-awesome" "~8.0.0" + "@abp/jquery-form" "~8.0.0" + "@abp/jquery-validation-unobtrusive" "~8.0.0" + "@abp/lodash" "~8.0.0" + "@abp/luxon" "~8.0.0" + "@abp/malihu-custom-scrollbar-plugin" "~8.0.0" + "@abp/moment" "~8.0.0" + "@abp/select2" "~8.0.0" + "@abp/sweetalert2" "~8.0.0" + "@abp/timeago" "~8.0.0" + "@abp/toastr" "~8.0.0" + +"@abp/aspnetcore.mvc.ui@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-8.0.0.tgz#9760a1e4be0e2632e11a3f570209b1eefdf81607" + integrity sha512-+WBwpQfDmhP64BVSjyyiqRENpn5EBgcmA7JVMfmdmEJTrzx9ma7WSbLd5QxUxawMSkcjjnK95c5JdMVZXdaL8g== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -43,185 +43,185 @@ merge-stream "^2.0.0" micromatch "^4.0.2" -"@abp/bootstrap-datepicker@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-8.0.0-rc.3.tgz#7656fef148c8bdf7993fdae937427564535dea74" - integrity sha512-qW1XQ2zL+/9f9+Q9Db3E5eIOD8Itjtr0KFAO59tY3G3WEwvCOS85pXJ/I17nLRRo/A2Na4kx4Q/jdYr3DkOgDQ== +"@abp/bootstrap-datepicker@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-8.0.0.tgz#458e0acaf6aedbfb03df692b9b2ec87b9fdad954" + integrity sha512-UetR0ldw0u5i2ohNpeI8+W0AGrov8tiglTTNyx8sF6WMGcCNCtU72jZCOc9/z/q91AijQrtdHIqpN/1B91YiMw== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap-daterangepicker@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-8.0.0-rc.3.tgz#b6eb599b198f58c9a0690d2f779548137e10889f" - integrity sha512-TnZdtV0JHweVrrXCJZjxz+Cbk0lYznzELaA6oBbikCPhzIr2XvLqyHuLvERrFVxq80BZGsF7xUgC2K/Tw/RA8w== +"@abp/bootstrap-daterangepicker@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-8.0.0.tgz#613d2984d0f3981e0270d337b360c27397dbc480" + integrity sha512-nQFDtCp1+EuUfnoRmMcGvOgd4yZPMqjsThiW3m2KIV2Y+YlT52mZLBVpqRBpC2993Bs8E9Zpp4R7ebHJgacePg== dependencies: bootstrap-daterangepicker "^3.1.0" -"@abp/bootstrap@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-8.0.0-rc.3.tgz#8865c2536c353b904e6e96cb70e4280fe9928412" - integrity sha512-h7rDAp3eBQwARAkEZfJU+IBTXEiLwi3I5CYFQ92QdX/mC66R1cX1gYY7pR5Wj5f68VS2pURnNxJnONtS3E/Cyw== +"@abp/bootstrap@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-8.0.0.tgz#7d679f88af98de6ac2c0725b86d43f9ce40c4f5b" + integrity sha512-JX6o8uMrsqiMMvbkDRePDqfPFHtWTuKhSTDa77ryp/AZYKOEvJfkdLZGZmYWy7UsB1RNXilth8kMyibqnw0CGg== dependencies: - "@abp/core" "~8.0.0-rc.3" + "@abp/core" "~8.0.0" bootstrap "^5.1.3" -"@abp/clipboard@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-8.0.0-rc.3.tgz#eb7211804967c97cf6678c42b7d756438ffcc22a" - integrity sha512-w9a1gJs8yZbeNkRQqSXxiOUqCLknh+5QM3CoVQudU46Kl4zh39ugPuEMKZhxcGaDsZWSTNuyMgUjzAWFhE/w6g== +"@abp/clipboard@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-8.0.0.tgz#cb597686e07e9ef68a09ebf7101498281939fb10" + integrity sha512-JonHbsCwJQ5iI45zy6lFu9kwXUYoRZC+t31N1w7fDMxekwPEjenBR4g33aGLIySTL7ExKiYjBsEVrCg8GKG/mg== dependencies: - "@abp/core" "~8.0.0-rc.3" + "@abp/core" "~8.0.0" clipboard "^2.0.8" -"@abp/core@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-8.0.0-rc.3.tgz#f399bc55c6ad20c2515a03bb9572c6a4499cfcf0" - integrity sha512-HUa0AfCDX3URnGWsZ/7aZMsXXQFjott05ebK9wF7QDcI7uInyMT5axlrQ/CniyU8GLaFEt3mdtLB7pOZzDnsRw== +"@abp/core@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-8.0.0.tgz#cc4d9c0da10fb922a4adea8df67f60bb02d95365" + integrity sha512-qM7jSTR2uAhjAcsaFNchA89rLBiiJpUsvDBFCz0SyOuFz5DYAHo1njlhICcVAHF7H3NxQfVIndGVSjvmqmLC7Q== dependencies: - "@abp/utils" "~8.0.0-rc.3" + "@abp/utils" "~8.0.0" -"@abp/datatables.net-bs5@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-8.0.0-rc.3.tgz#902d0770c54a5888f805cc97de0ed25d0c53dde9" - integrity sha512-gxYYBeEh81+R8SAh27uMm3paVffq+bYiQgUxpXNgEcyPGP2X7/hnzZNwViuI1t+IgpSuTf6AAt14db9eV6Masg== +"@abp/datatables.net-bs5@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-8.0.0.tgz#c874180ea85fd0b2598fde90e2207bea267870c6" + integrity sha512-8w4oXTQwFnb56NTpeXjUsITGeMtuxv18ZAPK8Zmw28s5uOoIV/d/bEp11hXPwSk3SrjlyLw0lDcZCItwD+W8DQ== dependencies: - "@abp/datatables.net" "~8.0.0-rc.3" + "@abp/datatables.net" "~8.0.0" datatables.net-bs5 "^1.11.4" -"@abp/datatables.net@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-8.0.0-rc.3.tgz#4ddfa9fe3246e72807c3b19307c7484af749f969" - integrity sha512-vQBenQsDxzryspNv0FEzpyUPBXddIkVhXUJ6tHc+IZ8q/+/2wUE0ZciSJm7qS/GQnGrYZv9wpIGbSRh/RgVvVA== +"@abp/datatables.net@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-8.0.0.tgz#09ef3575a611f6ec123d2a9d4d55b8c89e30d115" + integrity sha512-WmsAfQEGPWMTqHGbeiX3RVfIdfkrMOtUfJmR0JaYJMuQo3STmMSnzOgNMKviDeQdzplgoOOKp6j0OgIqcciowg== dependencies: - "@abp/jquery" "~8.0.0-rc.3" + "@abp/jquery" "~8.0.0" datatables.net "^1.11.4" -"@abp/font-awesome@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-8.0.0-rc.3.tgz#5f850c5479f48cf1c951de2354050d38fec6beab" - integrity sha512-GYwhoOThD5Bw0Ain5DkVXgHLpca83QGAy1T7I+6SmYyibYu5SdxV9ytD65tARH+dx9VpB3p9NeC5lRYuWdPzCQ== +"@abp/font-awesome@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-8.0.0.tgz#ce7debf296fddbdf79139147f6c9761ec68b6587" + integrity sha512-qeihwiim6YMcL3KfHU0CViVl5MamQXbTp4606r/hKQejCSbdqR9XupYVbTAyojXLCCRqfnDVuXwqWCFTKVbQow== dependencies: - "@abp/core" "~8.0.0-rc.3" + "@abp/core" "~8.0.0" "@fortawesome/fontawesome-free" "^5.15.4" -"@abp/jquery-form@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-8.0.0-rc.3.tgz#e414a0599448c37df3197af77a91c9a66d3ef77f" - integrity sha512-w58Zi28Ci/0DIzMzC/ihu+np7G2Hv+9DLrhLZKddEI9WisFuxao5EAhKseq7LWMPzG/QSw8skLZAY12YrEtp6w== +"@abp/jquery-form@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-8.0.0.tgz#466343a87baa2f53fb57cf377e0fb0c07ff02bb9" + integrity sha512-xinU2Yu0YWNjoaYnBm+OoN8oNX/BDPzbqGtjlH1s5I+M/S0yf/qlPEzvzL5+epBlt0GKza/SqwSsuAVsfuFrKQ== dependencies: - "@abp/jquery" "~8.0.0-rc.3" + "@abp/jquery" "~8.0.0" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-8.0.0-rc.3.tgz#a3ab6b5078449ba94c7206ed96286b902a766b6b" - integrity sha512-Gvmujjhrvqzu51fGSTAssxGVu4XolTLEwW3qR0zwWCc0+kXF/AXB98DD66A+hmGau54sTKRXVmBTpc4J3KpoWg== +"@abp/jquery-validation-unobtrusive@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-8.0.0.tgz#a641cc4bff6de178ed3429987017c00bf68e81f9" + integrity sha512-nUcktSW5tPifa6yNX9Y8zCi0VCUJklVSSd4f3eKfjU8SIcWq1eNfR6R+MHRZEVVmyB7xeYMBlc0yjxVYwUUlEw== dependencies: - "@abp/jquery-validation" "~8.0.0-rc.3" + "@abp/jquery-validation" "~8.0.0" jquery-validation-unobtrusive "^3.2.12" -"@abp/jquery-validation@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-8.0.0-rc.3.tgz#eee433a5fc076d92d734e7cea4bce00fbaacc963" - integrity sha512-Dq5Ru5WWqDKIDzetUicJzp6DHkGhNNHcjYyHF3n9o9+3T4+6dgRbXy5OYjIv9CADfui55rzckWH57FbCExiUSw== +"@abp/jquery-validation@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-8.0.0.tgz#674fe49294c622b07b843ab8721a5ae32024b7b9" + integrity sha512-B/aFZsKbILP4FPuc3eU17APkbBWJhjWXSQCiSXbHpDZYJN5km1l52gpuWR+7Yo5CXnAP06N+zUYHf86tNCZyBw== dependencies: - "@abp/jquery" "~8.0.0-rc.3" + "@abp/jquery" "~8.0.0" jquery-validation "^1.19.3" -"@abp/jquery@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-8.0.0-rc.3.tgz#e230c5db7a9aff526564c1b4b1820cd983a10726" - integrity sha512-o9xBZt55fT+ZYqmLjQ9dahtIgsRqz4VrXUsLgyKkUzr2p3gtgXCQqKfkIpdeE5aE3p1/T+et5U6FOMUCRZegvg== +"@abp/jquery@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-8.0.0.tgz#67bf40f87c335b1cba73f406f0102f35e820fd84" + integrity sha512-QhjBz/s1hVJcsYCbuZwNOtOCvsC93OMzMJHoZ2COaKkOZlt6tiRHhawdYVZloKDaMdfcd5tvqbkNhXtQ4K9AXg== dependencies: - "@abp/core" "~8.0.0-rc.3" + "@abp/core" "~8.0.0" jquery "~3.6.0" -"@abp/lodash@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-8.0.0-rc.3.tgz#5bf8019fa0e69ec1fac6ccacb1625b8564ed8944" - integrity sha512-Mo2r+bNZXdmM7Ri8SBi+M4OsfnLYejbQmcJ7wkDUPb4B3cDJtTB4YuJn8NWBBjaXwi08Myt1MvSFnT04N/t8Eg== +"@abp/lodash@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-8.0.0.tgz#4c809c4755ed11e70875d30f04312b0ff10a2dbb" + integrity sha512-V0y4k9HlggBvJtK5m35Gkori2IN0E4ec1JpBgGeaOStcvThAL1EtXip1kqPORMbC4wm+bgpT0QWhiqCeKBFoLg== dependencies: - "@abp/core" "~8.0.0-rc.3" + "@abp/core" "~8.0.0" lodash "^4.17.21" -"@abp/luxon@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-8.0.0-rc.3.tgz#cc0adcab4f1fa6bea2055be478ec9a86d00f1ba6" - integrity sha512-vKwfpAPL7GUJLvCpsJoJ5eXRH5Ypciez9J6QiK2Mjx1NauxR514wYtBqM/2I7hoJ4Oc9XvrAjcIon3r21dvCqQ== +"@abp/luxon@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-8.0.0.tgz#13a1145dc79d908f3398944c4bf0fb0457d94217" + integrity sha512-ZEGegnr+KCczPUrxxPmBUKGyiWkjAa4hDWb06mozdVP14zHQbbZfyKKXwrPfanwcj96Ui9i2klnrKPXuyppBJw== dependencies: - "@abp/core" "~8.0.0-rc.3" + "@abp/core" "~8.0.0" luxon "^2.3.0" -"@abp/malihu-custom-scrollbar-plugin@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-8.0.0-rc.3.tgz#195c897dced708de627941ce017e047c62191a56" - integrity sha512-svD7YJzHvufjmhoCKgQcjApIdVcGJwWhpsK260lwLiCvkdNDhxFjH+jfChhLMXPYpOnozrgrVx56oJqDWDrU3A== +"@abp/malihu-custom-scrollbar-plugin@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-8.0.0.tgz#fd4428d66ee38b4b2c02c0e300d5bd75dcda414d" + integrity sha512-jrD4AHd2Pdr28Ps3QtEDVDMSnK7xSumCKKSJl0R5SJcMyskByJ6gwydYqMGeQkCVnk1ztEZFfJNhOO35A+SBWA== dependencies: - "@abp/core" "~8.0.0-rc.3" + "@abp/core" "~8.0.0" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/moment@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-8.0.0-rc.3.tgz#7e2a74cd23c434b45f903b4f826f807a31b5982b" - integrity sha512-E0mob3xj0frslPovdHbsdaFB5oLimORFA86uQJ5KVSEaDOXYKuEqUomMcqg2LRVdzzKd7ai6QkuH3p7qbJonww== +"@abp/moment@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-8.0.0.tgz#26d0932bf4dac4dee25d0940eea50fcfeb37a69b" + integrity sha512-fgh0pXdxPi5Y9VnC6f12kwJmGQL4dowZtVp8lbNEjnCFiocAhEOOuN9gkTGk8y0xEhXroliW7wbaB2MJPINKhg== dependencies: moment "^2.9.0" -"@abp/prismjs@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-8.0.0-rc.3.tgz#237bb9c55ad1b202418c5bd1452e73a101706c25" - integrity sha512-adgMYfZhK7aPpxNdQhdOqE7oOvXUDq5qqhIVOVzmrQ4Dy/uCItT/Zq0yqqYLr2d7D17vRzfBM7R8ubgxnsMfbw== +"@abp/prismjs@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-8.0.0.tgz#174ccbd33d47bb687fe35bed35f7c834ca5ee328" + integrity sha512-Udx3pdlUU2MO+di1BZgG3jKNIeImWoPySmBA8YaStqsAkD/yb+YyUD2QmCUfI55kqzRyhAKE467ZusDFFOY20w== dependencies: - "@abp/clipboard" "~8.0.0-rc.3" - "@abp/core" "~8.0.0-rc.3" + "@abp/clipboard" "~8.0.0" + "@abp/core" "~8.0.0" prismjs "^1.26.0" -"@abp/select2@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-8.0.0-rc.3.tgz#77dd12185f6d03553230c7516e40603310f28f4f" - integrity sha512-9O+IHIB6n+WfLzh6SVyC01OIU3qWzhoT3DofAc329cyI73NJSPuOvmkQtQVYWnkAI/6+B6qYF3A4umD/EoPouQ== +"@abp/select2@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-8.0.0.tgz#4a4ebd63f2b79d663dab709decb2f1b1f510950f" + integrity sha512-kl3of/L0GSHyxt6WYnBDdBqqtoUscY9qubaMHZrk9y1zOVXOM0JUQoyu2KDQhOZm7iCu34ATX47NAw59eb9Omw== dependencies: - "@abp/core" "~8.0.0-rc.3" + "@abp/core" "~8.0.0" select2 "^4.0.13" -"@abp/sweetalert2@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-8.0.0-rc.3.tgz#021afc3457cf72c2b6dd298bb981faa741fc1293" - integrity sha512-b67UC/uZ9gWt2X5MeUnKg98FkhvJ+Azsq4PHcFBdUTZL/5ItJ8F6UsOTpT7Z7cUXFmJn/RTcPrgQDsK63CZltw== +"@abp/sweetalert2@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-8.0.0.tgz#369c04e433eead8e7171cd84298bb3e4ecb14050" + integrity sha512-riaHcFdozJ8R/sAdhtnfa7GHhWjptnQODrZ2bqBkcKuw2d8LKQ+2v3tcflaWWHwsOmGVbki3EhJJPdFWOtli/w== dependencies: - "@abp/core" "~8.0.0-rc.3" + "@abp/core" "~8.0.0" sweetalert2 "^11.3.6" -"@abp/timeago@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-8.0.0-rc.3.tgz#b3e63ff94bce8ad59b02d8c4490f580e60630f00" - integrity sha512-Pmm6Jj7VT1PW/Wfh1ozFFIdpFvH8cGKfHU2sYgwHuw4U9YQUd8ZTIDaZRMhuN9QqnGlmFtUZsXzoIMZJDvOq5w== +"@abp/timeago@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-8.0.0.tgz#93947505b68f369df10bb38cd8c05376e1c1cbcb" + integrity sha512-Q+e5CvvFAU21hGuIXREtIeEl8WlGpsNqK+QbCRbjNvM0HgCPH/gRQNpAV+S7TqaI5W2Uggfcsd7GvTH3GtMv7g== dependencies: - "@abp/jquery" "~8.0.0-rc.3" + "@abp/jquery" "~8.0.0" timeago "^1.6.7" -"@abp/toastr@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-8.0.0-rc.3.tgz#5b0d267951e025ca77a611c2fa9b606e92bd830a" - integrity sha512-hfDzyMSgbjriAALdrcnx/qonN2lquF7HM4QH8nt1E8/vWOkd8bUL/kyAoIL8rfS94zr62UUZTEDezoCfHwif+w== +"@abp/toastr@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-8.0.0.tgz#d409fec3fb1e5a886d0a03b0f58449a2f8a563d9" + integrity sha512-7evxuHJ+ZJtyCoIv0+HY/av5FC8Y5UzBtVjEB8Ol8RvhH5PBkErguPg9qPZvYcpHjJlYN+iKYAuXdQLZdXHwUQ== dependencies: - "@abp/jquery" "~8.0.0-rc.3" + "@abp/jquery" "~8.0.0" toastr "^2.1.4" -"@abp/utils@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-8.0.0-rc.3.tgz#01491fb943eb3a41d4ddbe854e5330b66807d522" - integrity sha512-cuTwsy+FEh3dEnlDDi0s8d3qpWgP3rwqWgg5LlMF0pY/OobJcCLtuo5Zy9bncKL3wFHXVEk6UviYcNkSOkzvtQ== +"@abp/utils@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-8.0.0.tgz#3de8e34e97e10ac9c2b8c1c194bf6b034fde302f" + integrity sha512-F8LsEedqkngbeFsszdZi1lshFqr++anyJFBoaRsKRw6hJPDPrYtHoOWEQ+p7QcH5UVVzVywQUGMNM+gmAT0vGQ== dependencies: just-compare "^2.3.0" -"@abp/virtual-file-explorer@~8.0.0-rc.3": - version "8.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/virtual-file-explorer/-/virtual-file-explorer-8.0.0-rc.3.tgz#ca230f38dbe20403d09c1eefc8673c9cb33d7dcf" - integrity sha512-RnAoApYkikG3JagAk6ApGX4c9Xvy0DctLyFW0XeC1upL5XbrIRrl2j89xwlfbZEUbFgmTILJ+BZ5uzfMczCtbw== +"@abp/virtual-file-explorer@~8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@abp/virtual-file-explorer/-/virtual-file-explorer-8.0.0.tgz#9e24742aaf5901df9ed4a41f62c2eb7550965211" + integrity sha512-ACXuXR7ktoGkQlrUk26omNYguQGFL0o1uNh/Uwv+CA3qP+tSIefsC88Ifzz/TGfKDoHP9WeOkg31pVY+eM877g== dependencies: - "@abp/clipboard" "~8.0.0-rc.3" - "@abp/prismjs" "~8.0.0-rc.3" + "@abp/clipboard" "~8.0.0" + "@abp/prismjs" "~8.0.0" "@fortawesome/fontawesome-free@^5.15.4": version "5.15.4" diff --git a/modules/virtual-file-explorer/src/Volo.Abp.VirtualFileExplorer.Web/Localization/Resources/de.json b/modules/virtual-file-explorer/src/Volo.Abp.VirtualFileExplorer.Web/Localization/Resources/de.json new file mode 100644 index 0000000000..6fdd864602 --- /dev/null +++ b/modules/virtual-file-explorer/src/Volo.Abp.VirtualFileExplorer.Web/Localization/Resources/de.json @@ -0,0 +1,14 @@ +{ + "culture": "de", + "texts": { + "VirtualFileExplorer": "Virtueller Datei-Explorer", + "VirtualFileType": "Virtueller Dateityp", + "Menu:VirtualFileExplorer": "Virtueller Datei-Explorer", + "LastUpdateTime": "Letzte Aktualisierungszeit", + "VirtualFileName": "Name der virtuellen Datei", + "FileContent": "Dateiinhalt", + "Size": "Größe", + "BackToRoot": "Zurück zur Wurzel", + "EmptyFileInfoList": "Es gibt keine virtuellen Dateien" + } +} \ No newline at end of file diff --git a/modules/virtual-file-explorer/src/Volo.Abp.VirtualFileExplorer.Web/Localization/Resources/hr.json b/modules/virtual-file-explorer/src/Volo.Abp.VirtualFileExplorer.Web/Localization/Resources/hr.json new file mode 100644 index 0000000000..81a7052642 --- /dev/null +++ b/modules/virtual-file-explorer/src/Volo.Abp.VirtualFileExplorer.Web/Localization/Resources/hr.json @@ -0,0 +1,14 @@ +{ + "culture": "hr", + "texts": { + "VirtualFileExplorer": "Virtualni preglednik datoteka", + "VirtualFileType": "Virtualna vrsta datoteke", + "Menu:VirtualFileExplorer": "Virtualni preglednik datoteka", + "LastUpdateTime": "Vrijeme posljednjeg ažuriranja", + "VirtualFileName": "Naziv virtualne datoteke", + "FileContent": "Sadržaj datoteke", + "Size": "Veličina", + "BackToRoot": "Natrag na korijen", + "EmptyFileInfoList": "Nema virtualnih datoteka" + } +} \ No newline at end of file diff --git a/npm/lerna.json b/npm/lerna.json index 082e3af0ed..be2c26948e 100644 --- a/npm/lerna.json +++ b/npm/lerna.json @@ -1,5 +1,5 @@ { - "version": "8.0.0-rc.3", + "version": "8.0.0", "packages": [ "packs/*" ], diff --git a/npm/ng-packs/package.json b/npm/ng-packs/package.json index 3c7bd36001..98f4ba9762 100644 --- a/npm/ng-packs/package.json +++ b/npm/ng-packs/package.json @@ -45,7 +45,7 @@ "private": true, "devDependencies": { "@abp/ng.theme.lepton-x": "~3.0.0-rc.1", - "@abp/utils": "~8.0.0-rc.3", + "@abp/utils": "~8.0.0", "@angular-devkit/build-angular": "~17.0.0", "@angular-devkit/core": "~17.0.0", "@angular-devkit/schematics": "~17.0.0", @@ -123,7 +123,7 @@ "tslib": "^2.0.0", "tslint": "~6.1.0", "typescript": "~5.2.0", - "zone.js": "0.14.2", + "zone.js": "~0.14.0", "@nx/devkit": "~17.1.0", "@nx/plugin": "~17.1.0", "@swc/helpers": "0.5.3", diff --git a/npm/ng-packs/packages/account-core/package.json b/npm/ng-packs/packages/account-core/package.json index dcacb3dfda..f971344fee 100644 --- a/npm/ng-packs/packages/account-core/package.json +++ b/npm/ng-packs/packages/account-core/package.json @@ -1,14 +1,14 @@ { "name": "@abp/ng.account.core", - "version": "8.0.0-rc.3", + "version": "8.0.0", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "peerDependencies": { - "@abp/ng.core": "~8.0.0-rc.3", - "@abp/ng.theme.shared": "~8.0.0-rc.3", + "@abp/ng.core": "~8.0.0", + "@abp/ng.theme.shared": "~8.0.0", "@angular/common": ">=12.0.0", "@angular/core": ">=12.0.0" }, diff --git a/npm/ng-packs/packages/account/package.json b/npm/ng-packs/packages/account/package.json index d6d3dda753..86543885e9 100644 --- a/npm/ng-packs/packages/account/package.json +++ b/npm/ng-packs/packages/account/package.json @@ -1,14 +1,14 @@ { "name": "@abp/ng.account", - "version": "8.0.0-rc.3", + "version": "8.0.0", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/ng.account.core": "~8.0.0-rc.3", - "@abp/ng.theme.shared": "~8.0.0-rc.3", + "@abp/ng.account.core": "~8.0.0", + "@abp/ng.theme.shared": "~8.0.0", "tslib": "^2.0.0" }, "publishConfig": { diff --git a/npm/ng-packs/packages/components/extensible/src/lib/components/extensible-form/extensible-form-prop.component.ts b/npm/ng-packs/packages/components/extensible/src/lib/components/extensible-form/extensible-form-prop.component.ts index 024a8ce80e..883fb49fe2 100644 --- a/npm/ng-packs/packages/components/extensible/src/lib/components/extensible-form/extensible-form-prop.component.ts +++ b/npm/ng-packs/packages/components/extensible/src/lib/components/extensible-form/extensible-form-prop.component.ts @@ -1,5 +1,5 @@ -import { EXTENSIONS_FORM_PROP, EXTENSIONS_FORM_PROP_DATA } from './../../tokens/extensions.token'; -import { ABP, LocalizationModule, PermissionDirective, ShowPasswordDirective, TrackByService } from '@abp/ng.core'; +import {EXTENSIONS_FORM_PROP, EXTENSIONS_FORM_PROP_DATA} from './../../tokens/extensions.token'; +import {ABP, LocalizationModule, PermissionDirective, ShowPasswordDirective, TrackByService} from '@abp/ng.core'; import { AfterViewInit, ChangeDetectionStrategy, @@ -28,20 +28,20 @@ import { NgbTimepickerModule, NgbTypeaheadModule, } from '@ng-bootstrap/ng-bootstrap'; -import { Observable, of } from 'rxjs'; -import { debounceTime, distinctUntilChanged, switchMap } from 'rxjs/operators'; -import { DateAdapter, DisabledDirective, TimeAdapter } from '@abp/ng.theme.shared'; -import { EXTRA_PROPERTIES_KEY } from '../../constants/extra-properties'; -import { FormProp } from '../../models/form-props'; -import { PropData } from '../../models/props'; -import { selfFactory } from '../../utils/factory.util'; -import { addTypeaheadTextSuffix } from '../../utils/typeahead.util'; -import { eThemeSharedComponents } from '../../enums/components'; -import { ExtensibleDateTimePickerComponent } from '../date-time-picker/extensible-date-time-picker.component'; -import { NgxValidateCoreModule } from '@ngx-validate/core'; -import { ExtensibleFormPropService } from '../../services/extensible-form-prop.service'; -import { CreateInjectorPipe } from '../../pipes/create-injector.pipe'; -import { AsyncPipe, NgClass, NgSwitch, NgSwitchCase, NgTemplateOutlet } from '@angular/common'; +import {Observable, of} from 'rxjs'; +import {debounceTime, distinctUntilChanged, switchMap} from 'rxjs/operators'; +import {DateAdapter, DisabledDirective, TimeAdapter} from '@abp/ng.theme.shared'; +import {EXTRA_PROPERTIES_KEY} from '../../constants/extra-properties'; +import {FormProp} from '../../models/form-props'; +import {PropData} from '../../models/props'; +import {selfFactory} from '../../utils/factory.util'; +import {addTypeaheadTextSuffix} from '../../utils/typeahead.util'; +import {eExtensibleComponents} from '../../enums/components'; +import {ExtensibleDateTimePickerComponent} from '../date-time-picker/extensible-date-time-picker.component'; +import {NgxValidateCoreModule} from '@ngx-validate/core'; +import {ExtensibleFormPropService} from '../../services/extensible-form-prop.service'; +import {CreateInjectorPipe} from '../../pipes/create-injector.pipe'; +import { CommonModule} from '@angular/common'; @Component({ selector: 'abp-extensible-form-prop', @@ -59,11 +59,7 @@ import { AsyncPipe, NgClass, NgSwitch, NgSwitchCase, NgTemplateOutlet } from '@a ShowPasswordDirective, PermissionDirective, LocalizationModule, - AsyncPipe, - NgSwitch, - NgSwitchCase, - NgClass, - NgTemplateOutlet, + CommonModule, ], changeDetection: ChangeDetectionStrategy.OnPush, providers: [ExtensibleFormPropService], @@ -73,8 +69,8 @@ import { AsyncPipe, NgClass, NgSwitch, NgSwitchCase, NgTemplateOutlet } from '@a useFactory: selfFactory, deps: [[new Optional(), new SkipSelf(), ControlContainer]], }, - { provide: NgbDateAdapter, useClass: DateAdapter }, - { provide: NgbTimeAdapter, useClass: TimeAdapter }, + {provide: NgbDateAdapter, useClass: DateAdapter}, + {provide: NgbTimeAdapter, useClass: TimeAdapter}, ], }) export class ExtensibleFormPropComponent implements OnChanges, AfterViewInit { @@ -98,7 +94,7 @@ export class ExtensibleFormPropComponent implements OnChanges, AfterViewInit { validators: ValidatorFn[] = []; readonly!: boolean; typeaheadModel: any; - passwordKey = eThemeSharedComponents.PasswordComponent; + passwordKey = eExtensibleComponents.PasswordComponent; disabledFn = (data: PropData) => false; @@ -107,8 +103,8 @@ export class ExtensibleFormPropComponent implements OnChanges, AfterViewInit { } setTypeaheadValue(selectedOption: ABP.Option) { - this.typeaheadModel = selectedOption || { key: null, value: null }; - const { key, value } = this.typeaheadModel; + this.typeaheadModel = selectedOption || {key: null, value: null}; + const {key, value} = this.typeaheadModel; const [keyControl, valueControl] = this.getTypeaheadControls(); if (valueControl?.value && !value) valueControl.markAsDirty(); keyControl?.setValue(key); @@ -118,10 +114,10 @@ export class ExtensibleFormPropComponent implements OnChanges, AfterViewInit { search = (text$: Observable) => text$ ? text$.pipe( - debounceTime(300), - distinctUntilChanged(), - switchMap(text => this.prop?.options?.(this.data, text) || of([])), - ) + debounceTime(300), + distinctUntilChanged(), + switchMap(text => this.prop?.options?.(this.data, text) || of([])), + ) : of([]); typeaheadFormatter = (option: ABP.Option) => option.key; @@ -134,7 +130,7 @@ export class ExtensibleFormPropComponent implements OnChanges, AfterViewInit { } private getTypeaheadControls() { - const { name } = this.prop; + const {name} = this.prop; const extraPropName = `${EXTRA_PROPERTIES_KEY}.${name}`; const keyControl = this.form.get(addTypeaheadTextSuffix(extraPropName)) || @@ -162,9 +158,9 @@ export class ExtensibleFormPropComponent implements OnChanges, AfterViewInit { return this.service.getType(prop); } - ngOnChanges({ prop, data }: SimpleChanges) { + ngOnChanges({prop, data}: SimpleChanges) { const currentProp = prop?.currentValue as FormProp; - const { options, readonly, disabled, validators, className, template } = currentProp || {}; + const {options, readonly, disabled, validators, className, template} = currentProp || {}; if (template) { this.injectorForCustomComponent = Injector.create({ providers: [ @@ -176,7 +172,7 @@ export class ExtensibleFormPropComponent implements OnChanges, AfterViewInit { provide: EXTENSIONS_FORM_PROP_DATA, useValue: (data?.currentValue as PropData)?.record, }, - { provide: ControlContainer, useExisting: FormGroupDirective }, + {provide: ControlContainer, useExisting: FormGroupDirective}, ], parent: this.injector, }); @@ -198,6 +194,6 @@ export class ExtensibleFormPropComponent implements OnChanges, AfterViewInit { const [keyControl, valueControl] = this.getTypeaheadControls(); if (keyControl && valueControl) - this.typeaheadModel = { key: keyControl.value, value: valueControl.value }; + this.typeaheadModel = {key: keyControl.value, value: valueControl.value}; } } diff --git a/npm/ng-packs/packages/components/extensible/src/lib/enums/components.ts b/npm/ng-packs/packages/components/extensible/src/lib/enums/components.ts index 562041c807..19e039f690 100644 --- a/npm/ng-packs/packages/components/extensible/src/lib/enums/components.ts +++ b/npm/ng-packs/packages/components/extensible/src/lib/enums/components.ts @@ -1,3 +1,3 @@ -export const enum eThemeSharedComponents { +export const enum eExtensibleComponents { PasswordComponent = 'ThemeShared.Extensions.PasswordComponent', } diff --git a/npm/ng-packs/packages/components/extensible/src/lib/models/form-props.ts b/npm/ng-packs/packages/components/extensible/src/lib/models/form-props.ts index 8db6db57f4..3ad64e8a13 100644 --- a/npm/ng-packs/packages/components/extensible/src/lib/models/form-props.ts +++ b/npm/ng-packs/packages/components/extensible/src/lib/models/form-props.ts @@ -64,7 +64,7 @@ export class FormProp extends Prop { readonly disabled: PropPredicate; readonly readonly: PropPredicate; readonly autocomplete: string; - readonly defaultValue: boolean | number | string | Date; + readonly defaultValue: boolean | number | string | Date | Array; readonly options: PropCallback[]>> | undefined; readonly id: string | undefined; readonly template?: Type; diff --git a/npm/ng-packs/packages/components/extensible/src/tests/enum.util.spec.ts b/npm/ng-packs/packages/components/extensible/src/tests/enum.util.spec.ts index 56c61e1fc8..ae223c5839 100644 --- a/npm/ng-packs/packages/components/extensible/src/tests/enum.util.spec.ts +++ b/npm/ng-packs/packages/components/extensible/src/tests/enum.util.spec.ts @@ -1,8 +1,8 @@ -import { ConfigStateService, ExtensionEnumFieldDto, LocalizationService } from '@abp/ng.core'; -import { BehaviorSubject, of } from 'rxjs'; -import { take } from 'rxjs/operators'; -import { PropData } from '../lib/models/props'; -import { createEnum, createEnumOptions, createEnumValueResolver } from '../lib/utils/enum.util'; +import {ConfigStateService, ExtensionEnumFieldDto, LocalizationService} from '@abp/ng.core'; +import {BehaviorSubject, of} from 'rxjs'; +import {take} from 'rxjs/operators'; +import {PropData} from '../lib/models/props'; +import {createEnum, createEnumOptions, createEnumValueResolver} from '../lib/utils/enum.util'; const mockSessionState = { languageChange$: new BehaviorSubject('tr'), @@ -12,9 +12,9 @@ const mockSessionState = { } as any; const fields: ExtensionEnumFieldDto[] = [ - { name: 'foo', value: {number: 1} }, - { name: 'bar', value: {number: 2} }, - { name: 'baz', value: {number: 3} }, + {name: 'foo', value: {number: 1}}, + {name: 'bar', value: {number: 2}}, + {name: 'baz', value: {number: 3}}, ]; class MockPropData extends PropData { @@ -43,10 +43,10 @@ describe('Enum Utils', () => { const enumFromFields = createEnum(fields); test.each([ - {name:'foo', value: 'number', expected: 1}, - {name:'bar', value: 'number', expected: 2}, - {name:'baz', value: 'number', expected: 3} - ])('should create an enum that returns $expected when $name $value is accessed',({name, value, expected})=>{ + {name: 'foo', value: 'number', expected: 1}, + {name: 'bar', value: 'number', expected: 2}, + {name: 'baz', value: 'number', expected: 3} + ])('should create an enum that returns $expected when $name $value is accessed', ({name, value, expected}) => { expect(enumFromFields[name][value]).toBe(expected); }) }); @@ -55,8 +55,6 @@ describe('Enum Utils', () => { test.each` value | expected ${1} | ${'Foo'} - ${2} | ${'Bar'} - ${3} | ${'Baz'} `( 'should create a resolver that returns observable $expected when enum value is $value', async ({ value, expected }) => { @@ -71,7 +69,7 @@ describe('Enum Utils', () => { 'EnumProp', ); const propData = new MockPropData({ - extraProperties: { EnumProp: value }, + extraProperties: { EnumProp: value }, }); propData.getInjected = () => service as any; @@ -112,4 +110,4 @@ function createMockLocalizationService() { configState.refreshAppState(); return new LocalizationService(mockSessionState, null, null, configState); -} \ No newline at end of file +} diff --git a/npm/ng-packs/packages/components/extensible/src/tests/state.util.spec.ts b/npm/ng-packs/packages/components/extensible/src/tests/state.util.spec.ts index c9efdce913..58235e1590 100644 --- a/npm/ng-packs/packages/components/extensible/src/tests/state.util.spec.ts +++ b/npm/ng-packs/packages/components/extensible/src/tests/state.util.spec.ts @@ -1,27 +1,30 @@ -import { ConfigStateService } from '@abp/ng.core'; -import { of } from 'rxjs'; -import { take } from 'rxjs/operators'; -import { ePropType } from '../lib/enums/props.enum'; -import { EntityPropList } from '../lib/models/entity-props'; -import { FormPropList } from '../lib/models/form-props'; -import { ObjectExtensions } from '../lib/models/object-extensions'; +import {ConfigStateService} from '@abp/ng.core'; +import {firstValueFrom, of} from 'rxjs'; +import {take} from 'rxjs/operators'; +import {ePropType} from '../lib/enums/props.enum'; +import {EntityPropList} from '../lib/models/entity-props'; +import {FormPropList} from '../lib/models/form-props'; +import {ObjectExtensions} from '../lib/models/object-extensions'; import { getObjectExtensionEntitiesFromStore, mapEntitiesToContributors, } from '../lib/utils/state.util'; -const fakeAppConfigService = { get: () => of(createMockState()) } as any; -const fakeLocalizationService = { get: () => of(createMockState()) } as any; -const configState = new ConfigStateService(fakeAppConfigService,fakeLocalizationService,false); +const fakeAppConfigService = {get: () => of(createMockState())} as any; +const fakeLocalizationService = {get: () => of(createMockState())} as any; +const configState = new ConfigStateService(fakeAppConfigService, fakeLocalizationService, false); configState.refreshAppState(); describe('State Utils', () => { describe('#getObjectExtensionEntitiesFromStore', () => { it('should return observable entities of an existing module', async () => { - const entities = await getObjectExtensionEntitiesFromStore( + + const objectExtensionEntitiesFromStore$ = getObjectExtensionEntitiesFromStore( configState, 'Identity', - ).toPromise(); + ) + + const entities = await firstValueFrom(objectExtensionEntitiesFromStore$) expect('Role' in entities).toBe(true); }); @@ -31,7 +34,7 @@ describe('State Utils', () => { }); it('should not emit when object extensions do not exist', done => { - const emptyConfigState = new ConfigStateService(null,null,false); + const emptyConfigState = new ConfigStateService(null, null, false); const emit = jest.fn(); getObjectExtensionEntitiesFromStore(emptyConfigState, 'Identity').subscribe(emit); @@ -114,7 +117,9 @@ function createMockState() { AbpIdentity: {}, }, defaultResourceName: 'Default', - currentCulture: null, + currentCulture: { + cultureName: 'en' + }, languages: [], }, }; diff --git a/npm/ng-packs/packages/components/package.json b/npm/ng-packs/packages/components/package.json index b811cc2bb9..679afdf36c 100644 --- a/npm/ng-packs/packages/components/package.json +++ b/npm/ng-packs/packages/components/package.json @@ -1,14 +1,14 @@ { "name": "@abp/ng.components", - "version": "8.0.0-rc.3", + "version": "8.0.0", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "peerDependencies": { - "@abp/ng.core": ">=8.0.0-rc.3", - "@abp/ng.theme.shared": ">=8.0.0-rc.3" + "@abp/ng.core": ">=8.0.0", + "@abp/ng.theme.shared": ">=8.0.0" }, "dependencies": { "chart.js": "^3.5.1", diff --git a/npm/ng-packs/packages/core/package.json b/npm/ng-packs/packages/core/package.json index aed7250481..d7c7b9bc6a 100644 --- a/npm/ng-packs/packages/core/package.json +++ b/npm/ng-packs/packages/core/package.json @@ -1,13 +1,13 @@ { "name": "@abp/ng.core", - "version": "8.0.0-rc.3", + "version": "8.0.0", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/utils": "~8.0.0-rc.3", + "@abp/utils": "~8.0.0", "angular-oauth2-oidc": "^15.0.1", "just-clone": "^6.1.1", "just-compare": "^2.3.0", diff --git a/npm/ng-packs/packages/core/src/lib/components/dynamic-layout.component.ts b/npm/ng-packs/packages/core/src/lib/components/dynamic-layout.component.ts index 5215c95398..5118f7ec42 100644 --- a/npm/ng-packs/packages/core/src/lib/components/dynamic-layout.component.ts +++ b/npm/ng-packs/packages/core/src/lib/components/dynamic-layout.component.ts @@ -1,60 +1,59 @@ -import { Component, Injector, isDevMode, OnInit, Optional, SkipSelf, Type } from '@angular/core'; -import { ActivatedRoute, Router } from '@angular/router'; -import { eLayoutType } from '../enums/common'; -import { ABP } from '../models'; -import { ReplaceableComponents } from '../models/replaceable-components'; -import { LocalizationService } from '../services/localization.service'; -import { ReplaceableComponentsService } from '../services/replaceable-components.service'; -import { RouterEvents } from '../services/router-events.service'; -import { RoutesService } from '../services/routes.service'; -import { SubscriptionService } from '../services/subscription.service'; -import { findRoute, getRoutePath } from '../utils/route-utils'; -import { TreeNode } from '../utils/tree-utils'; +import { + Component, + inject, + isDevMode, + OnInit, + Optional, + SkipSelf, + Type +} from '@angular/core'; +import {ActivatedRoute, Router} from '@angular/router'; +import {eLayoutType} from '../enums/common'; +import {ABP} from '../models'; +import {ReplaceableComponents} from '../models/replaceable-components'; +import {LocalizationService} from '../services/localization.service'; +import {ReplaceableComponentsService} from '../services/replaceable-components.service'; +import {RouterEvents} from '../services/router-events.service'; +import {RoutesService} from '../services/routes.service'; +import {SubscriptionService} from '../services/subscription.service'; +import {findRoute, getRoutePath} from '../utils/route-utils'; +import {TreeNode} from '../utils/tree-utils'; +import {DYNAMIC_LAYOUTS_TOKEN} from "../tokens/dynamic-layout.token"; @Component({ selector: 'abp-dynamic-layout', - template: ` `, + template: ` + `, providers: [SubscriptionService], }) export class DynamicLayoutComponent implements OnInit { layout?: Type; layoutKey?: eLayoutType; - - // TODO: Consider a shared enum (eThemeSharedComponents) for known layouts - readonly layouts = new Map([ - ['application', 'Theme.ApplicationLayoutComponent'], - ['account', 'Theme.AccountLayoutComponent'], - ['empty', 'Theme.EmptyLayoutComponent'], - ]); - + readonly layouts = inject(DYNAMIC_LAYOUTS_TOKEN) isLayoutVisible = true; - private router!: Router; - private route!: ActivatedRoute; - private routes!: RoutesService; + private readonly router = inject(Router); + private readonly route = inject(ActivatedRoute); + private readonly routes = inject(RoutesService); + private localizationService = inject(LocalizationService) + private replaceableComponents = inject(ReplaceableComponentsService) + private subscription = inject(SubscriptionService) + private routerEvents = inject(RouterEvents) + constructor( - injector: Injector, - private localizationService: LocalizationService, - private replaceableComponents: ReplaceableComponentsService, - private subscription: SubscriptionService, - private routerEvents: RouterEvents, @Optional() @SkipSelf() dynamicLayoutComponent: DynamicLayoutComponent, ) { if (dynamicLayoutComponent) { if (isDevMode()) console.warn('DynamicLayoutComponent must be used only in AppComponent.'); return; } - this.route = injector.get(ActivatedRoute); - this.router = injector.get(Router); - this.routes = injector.get(RoutesService); - this.checkLayoutOnNavigationEnd(); this.listenToLanguageChange(); } ngOnInit(): void { - if(this.layout){ + if (this.layout) { return; } this.getLayout() @@ -65,22 +64,10 @@ export class DynamicLayoutComponent implements OnInit { this.subscription.addOne(navigationEnd$, () => this.getLayout()); } - private getLayout() { - let expectedLayout = (this.route.snapshot.data || {}).layout; - if (!expectedLayout) { - let node = findRoute(this.routes, getRoutePath(this.router)); - node = { parent: node } as TreeNode; - - while (node.parent) { - node = node.parent; + private getLayout() { + let expectedLayout = this.getExtractedLayout(); - if (node.layout) { - expectedLayout = node.layout; - break; - } - } - } if (!expectedLayout) expectedLayout = eLayoutType.empty; @@ -91,14 +78,36 @@ export class DynamicLayoutComponent implements OnInit { this.layout = this.getComponent(key)?.component; this.layoutKey = expectedLayout; } - if(!this.layout){ + if (!this.layout) { this.showLayoutNotFoundError(expectedLayout); } } + private getExtractedLayout() { + const routeData = (this.route.snapshot.data || {}); + let expectedLayout = routeData['layout'] as eLayoutType; + + if (expectedLayout) { + return expectedLayout; + } + + let node = findRoute(this.routes, getRoutePath(this.router)); + node = {parent: node} as TreeNode; + + while (node.parent) { + node = node.parent; + + if (node.layout) { + expectedLayout = node.layout; + break; + } + } + return expectedLayout; + } + showLayoutNotFoundError(layoutName: string) { let message = `Layout ${layoutName} not found.`; - if(layoutName === 'account'){ + if (layoutName === 'account') { message = 'Account layout not found. Please check your configuration. If you are using LeptonX, please make sure you have added "AccountLayoutModule.forRoot()" to your app.module configuration.'; } console.warn(message); diff --git a/npm/ng-packs/packages/core/src/lib/constants/default-layouts.ts b/npm/ng-packs/packages/core/src/lib/constants/default-layouts.ts new file mode 100644 index 0000000000..fc9e561e2b --- /dev/null +++ b/npm/ng-packs/packages/core/src/lib/constants/default-layouts.ts @@ -0,0 +1,7 @@ +import {eLayoutType, eThemeSharedComponents} from "../enums"; + +export const DEFAULT_DYNAMIC_LAYOUTS = new Map([ + [eLayoutType.application, eThemeSharedComponents.ApplicationLayoutComponent], + [eLayoutType.account, eThemeSharedComponents.AccountLayoutComponent], + [eLayoutType.empty, eThemeSharedComponents.EmptyLayoutComponent], +]); diff --git a/npm/ng-packs/packages/core/src/lib/constants/index.ts b/npm/ng-packs/packages/core/src/lib/constants/index.ts index 54aaba730c..95ca979dc1 100644 --- a/npm/ng-packs/packages/core/src/lib/constants/index.ts +++ b/npm/ng-packs/packages/core/src/lib/constants/index.ts @@ -1 +1,2 @@ export * from './different-locales'; +export * from './default-layouts'; diff --git a/npm/ng-packs/packages/core/src/lib/core.module.ts b/npm/ng-packs/packages/core/src/lib/core.module.ts index 57133ab69e..d39912b496 100644 --- a/npm/ng-packs/packages/core/src/lib/core.module.ts +++ b/npm/ng-packs/packages/core/src/lib/core.module.ts @@ -39,6 +39,8 @@ import { QUEUE_MANAGER } from './tokens/queue.token'; import { DefaultQueueManager } from './utils/queue'; import { IncludeLocalizationResourcesProvider } from './providers/include-localization-resources.provider'; import { SORT_COMPARE_FUNC, compareFuncFactory } from './tokens/compare-func.token'; +import {DYNAMIC_LAYOUTS_TOKEN} from "./tokens/dynamic-layout.token"; +import {DEFAULT_DYNAMIC_LAYOUTS} from "./constants"; const standaloneDirectives = [ AutofocusDirective, @@ -186,6 +188,10 @@ export class CoreModule { useValue: options.othersGroup || 'AbpUi::OthersGroup', }, IncludeLocalizationResourcesProvider, + { + provide: DYNAMIC_LAYOUTS_TOKEN, + useValue: options.dynamicLayouts || DEFAULT_DYNAMIC_LAYOUTS + } ], }; } diff --git a/npm/ng-packs/packages/core/src/lib/enums/common.ts b/npm/ng-packs/packages/core/src/lib/enums/common.ts index 08ddf05b6d..3d28eb6986 100644 --- a/npm/ng-packs/packages/core/src/lib/enums/common.ts +++ b/npm/ng-packs/packages/core/src/lib/enums/common.ts @@ -3,3 +3,8 @@ export const enum eLayoutType { application = 'application', empty = 'empty', } +export const enum eThemeSharedComponents { + ApplicationLayoutComponent = 'Theme.ApplicationLayoutComponent', + AccountLayoutComponent = 'Theme.AccountLayoutComponent', + EmptyLayoutComponent = 'Theme.EmptyLayoutComponent', +} diff --git a/npm/ng-packs/packages/core/src/lib/models/common.ts b/npm/ng-packs/packages/core/src/lib/models/common.ts index 7a285b4461..a3aec61b88 100644 --- a/npm/ng-packs/packages/core/src/lib/models/common.ts +++ b/npm/ng-packs/packages/core/src/lib/models/common.ts @@ -13,6 +13,7 @@ export namespace ABP { tenantKey?: string; localizations?: Localization[]; othersGroup?: string; + dynamicLayouts?: Map; } export interface Child { diff --git a/npm/ng-packs/packages/core/src/lib/tokens/dynamic-layout.token.ts b/npm/ng-packs/packages/core/src/lib/tokens/dynamic-layout.token.ts new file mode 100644 index 0000000000..2c92cd7336 --- /dev/null +++ b/npm/ng-packs/packages/core/src/lib/tokens/dynamic-layout.token.ts @@ -0,0 +1,3 @@ +import {InjectionToken} from "@angular/core"; + + export const DYNAMIC_LAYOUTS_TOKEN = new InjectionToken>('DYNAMIC_LAYOUTS') diff --git a/npm/ng-packs/packages/core/src/lib/tokens/index.ts b/npm/ng-packs/packages/core/src/lib/tokens/index.ts index 12f4aae15a..7d0422ad7d 100644 --- a/npm/ng-packs/packages/core/src/lib/tokens/index.ts +++ b/npm/ng-packs/packages/core/src/lib/tokens/index.ts @@ -14,3 +14,4 @@ export * from './check-authentication-state'; export * from './http-context.token'; export * from './others-group.token'; export * from './tenant-not-found-by-name'; +export * from './compare-func.token' diff --git a/npm/ng-packs/packages/feature-management/package.json b/npm/ng-packs/packages/feature-management/package.json index a5e47fe6b4..2c7305782f 100644 --- a/npm/ng-packs/packages/feature-management/package.json +++ b/npm/ng-packs/packages/feature-management/package.json @@ -1,13 +1,13 @@ { "name": "@abp/ng.feature-management", - "version": "8.0.0-rc.3", + "version": "8.0.0", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/ng.theme.shared": "~8.0.0-rc.3", + "@abp/ng.theme.shared": "~8.0.0", "tslib": "^2.0.0" }, "publishConfig": { diff --git a/npm/ng-packs/packages/generators/package.json b/npm/ng-packs/packages/generators/package.json index ba6f59179a..81ed8241d1 100644 --- a/npm/ng-packs/packages/generators/package.json +++ b/npm/ng-packs/packages/generators/package.json @@ -1,6 +1,6 @@ { "name": "@abp/nx.generators", - "version": "8.0.0-rc.3", + "version": "8.0.0", "homepage": "https://abp.io", "generators": "./generators.json", "type": "commonjs", diff --git a/npm/ng-packs/packages/identity/package.json b/npm/ng-packs/packages/identity/package.json index b062a8a6df..ddbf0cc3b7 100644 --- a/npm/ng-packs/packages/identity/package.json +++ b/npm/ng-packs/packages/identity/package.json @@ -1,15 +1,15 @@ { "name": "@abp/ng.identity", - "version": "8.0.0-rc.3", + "version": "8.0.0", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/ng.components": "~8.0.0-rc.3", - "@abp/ng.permission-management": "~8.0.0-rc.3", - "@abp/ng.theme.shared": "~8.0.0-rc.3", + "@abp/ng.components": "~8.0.0", + "@abp/ng.permission-management": "~8.0.0", + "@abp/ng.theme.shared": "~8.0.0", "tslib": "^2.0.0" }, "publishConfig": { diff --git a/npm/ng-packs/packages/oauth/package.json b/npm/ng-packs/packages/oauth/package.json index b4e693b437..77b337c645 100644 --- a/npm/ng-packs/packages/oauth/package.json +++ b/npm/ng-packs/packages/oauth/package.json @@ -1,14 +1,14 @@ { "name": "@abp/ng.oauth", - "version": "8.0.0-rc.3", + "version": "8.0.0", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/ng.core": "~8.0.0-rc.3", - "@abp/utils": "~8.0.0-rc.3", + "@abp/ng.core": "~8.0.0", + "@abp/utils": "~8.0.0", "angular-oauth2-oidc": "^15.0.1", "just-clone": "^6.1.1", "just-compare": "^2.3.0", diff --git a/npm/ng-packs/packages/permission-management/package.json b/npm/ng-packs/packages/permission-management/package.json index 8a063bed25..09a56acdb8 100644 --- a/npm/ng-packs/packages/permission-management/package.json +++ b/npm/ng-packs/packages/permission-management/package.json @@ -1,13 +1,13 @@ { "name": "@abp/ng.permission-management", - "version": "8.0.0-rc.3", + "version": "8.0.0", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/ng.theme.shared": "~8.0.0-rc.3", + "@abp/ng.theme.shared": "~8.0.0", "tslib": "^2.0.0" }, "publishConfig": { diff --git a/npm/ng-packs/packages/permission-management/src/lib/components/permission-management.component.ts b/npm/ng-packs/packages/permission-management/src/lib/components/permission-management.component.ts index 2609d92198..4cb90a0fff 100644 --- a/npm/ng-packs/packages/permission-management/src/lib/components/permission-management.component.ts +++ b/npm/ng-packs/packages/permission-management/src/lib/components/permission-management.component.ts @@ -49,9 +49,8 @@ type PermissionWithGroupName = PermissionGrantInfoDto & { }) export class PermissionManagementComponent implements - PermissionManagement.PermissionManagementComponentInputs, - PermissionManagement.PermissionManagementComponentOutputs -{ + PermissionManagement.PermissionManagementComponentInputs, + PermissionManagement.PermissionManagementComponentOutputs { @Input() readonly providerName!: string; @@ -118,7 +117,7 @@ export class PermissionManagementComponent trackByFn: TrackByFunction = (_, item) => item.name; - constructor(protected service: PermissionsService, protected configState: ConfigStateService) {} + constructor(protected service: PermissionsService, protected configState: ConfigStateService) { } getChecked(name: string) { return (this.permissions.find(per => per.name === name) || { isGranted: false }).isGranted; @@ -131,21 +130,19 @@ export class PermissionManagementComponent return; } - const margin = `margin-${ - (document.body.dir as LocaleDirection) === 'rtl' ? 'right' : 'left' - }.px`; + const margin = `margin-${(document.body.dir as LocaleDirection) === 'rtl' ? 'right' : 'left' + }.px`; const permissions = (this.data.groups.find(group => group.name === this.selectedGroup?.name) || {}).permissions || []; - this.selectedGroupPermissions = permissions.map( permission => - ({ - ...permission, - style: { [margin]: findMargin(permissions, permission) }, - isGranted: (this.permissions.find(per => per.name === permission.name) || {}).isGranted, - } as unknown as PermissionWithStyle), + ({ + ...permission, + style: { [margin]: findMargin(permissions, permission) }, + isGranted: (this.permissions.find(per => per.name === permission.name) || {}).isGranted, + } as unknown as PermissionWithStyle), ); } @@ -174,7 +171,7 @@ export class PermissionManagementComponent this.isGrantedByOtherProviderName(clickedPermission.grantedProviders) ) return; - + this.setSelectedGroup(this.selectedGroup); setTimeout(() => { this.permissions = this.permissions.map(per => { if (clickedPermission.name === per.name) { @@ -186,11 +183,55 @@ export class PermissionManagementComponent } return per; }); + this.updateSelectedGroupPermissions(clickedPermission); this.setTabCheckboxState(); this.setGrantCheckboxState(); + this.setParentClicked(clickedPermission); }, 0); } + setParentClicked(clickedPermissions: PermissionGrantInfoDto) { + let childPermissionGrantedCount = 0; + let parentPermission: PermissionGrantInfoDto; + + if (clickedPermissions.parentName) { + this.permissions.forEach(per => { + if (per.name === clickedPermissions.parentName) { + parentPermission = per; + } + }) + this.permissions.forEach(per => { + if (parentPermission.name === per.parentName) { + per.isGranted && childPermissionGrantedCount++; + } + }) + if (childPermissionGrantedCount === 1 && !parentPermission.isGranted) { + this.permissions = this.permissions.map(per => { + if (per.name === parentPermission.name) { + per.isGranted = true; + } + return per; + }) + } + return; + } + this.permissions = this.permissions.map(per => { + if (per.parentName === clickedPermissions.name) { + per.isGranted = false; + } + return per; + }) + } + + updateSelectedGroupPermissions(clickedPermissions: PermissionGrantInfoDto) { + this.selectedGroupPermissions = this.selectedGroupPermissions.map(per => { + if (per.name === clickedPermissions.name) { + per.isGranted = !per.isGranted + } + return per; + }) + } + setTabCheckboxState() { const selectableGroupPermissions = this.selectedGroupPermissions.filter(per => per.grantedProviders.every(p => p.providerName === this.providerName), @@ -254,6 +295,7 @@ export class PermissionManagementComponent this.selectThisTab = !this.selectAllTab; this.setTabCheckboxState(); } + this.onChangeGroup(this.selectedGroup); } onChangeGroup(group: PermissionGroupDto) { @@ -268,7 +310,7 @@ export class PermissionManagementComponent const changedPermissions: UpdatePermissionDto[] = this.permissions .filter(per => (unchangedPermissions.find(unchanged => unchanged.name === per.name) || {}).isGranted === - per.isGranted + per.isGranted ? false : true, ) diff --git a/npm/ng-packs/packages/schematics/package.json b/npm/ng-packs/packages/schematics/package.json index 79183a8c53..66928e3371 100644 --- a/npm/ng-packs/packages/schematics/package.json +++ b/npm/ng-packs/packages/schematics/package.json @@ -1,6 +1,6 @@ { "name": "@abp/ng.schematics", - "version": "8.0.0-rc.3", + "version": "8.0.0", "author": "", "schematics": "./collection.json", "dependencies": { diff --git a/npm/ng-packs/packages/schematics/src/utils/angular/latest-versions/package.json b/npm/ng-packs/packages/schematics/src/utils/angular/latest-versions/package.json index 600b1c9fc1..8eaa153d89 100644 --- a/npm/ng-packs/packages/schematics/src/utils/angular/latest-versions/package.json +++ b/npm/ng-packs/packages/schematics/src/utils/angular/latest-versions/package.json @@ -18,6 +18,6 @@ "tslib": "^2.3.0", "ts-node": "~10.9.0", "typescript": "~4.8.4", - "zone.js": "~0.12.0" + "zone.js": "~0.14.0" } } diff --git a/npm/ng-packs/packages/setting-management/package.json b/npm/ng-packs/packages/setting-management/package.json index 883c2cdf74..ed5126a635 100644 --- a/npm/ng-packs/packages/setting-management/package.json +++ b/npm/ng-packs/packages/setting-management/package.json @@ -1,14 +1,14 @@ { "name": "@abp/ng.setting-management", - "version": "8.0.0-rc.3", + "version": "8.0.0", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/ng.components": "~8.0.0-rc.3", - "@abp/ng.theme.shared": "~8.0.0-rc.3", + "@abp/ng.components": "~8.0.0", + "@abp/ng.theme.shared": "~8.0.0", "tslib": "^2.0.0" }, "publishConfig": { diff --git a/npm/ng-packs/packages/tenant-management/package.json b/npm/ng-packs/packages/tenant-management/package.json index 15f41d16d7..aba3033a15 100644 --- a/npm/ng-packs/packages/tenant-management/package.json +++ b/npm/ng-packs/packages/tenant-management/package.json @@ -1,14 +1,14 @@ { "name": "@abp/ng.tenant-management", - "version": "8.0.0-rc.3", + "version": "8.0.0", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/ng.feature-management": "~8.0.0-rc.3", - "@abp/ng.theme.shared": "~8.0.0-rc.3", + "@abp/ng.feature-management": "~8.0.0", + "@abp/ng.theme.shared": "~8.0.0", "tslib": "^2.0.0" }, "publishConfig": { diff --git a/npm/ng-packs/packages/theme-basic/package.json b/npm/ng-packs/packages/theme-basic/package.json index d0535e2473..9bc884cb43 100644 --- a/npm/ng-packs/packages/theme-basic/package.json +++ b/npm/ng-packs/packages/theme-basic/package.json @@ -1,14 +1,14 @@ { "name": "@abp/ng.theme.basic", - "version": "8.0.0-rc.3", + "version": "8.0.0", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/ng.account.core": "~8.0.0-rc.3", - "@abp/ng.theme.shared": "~8.0.0-rc.3", + "@abp/ng.account.core": "~8.0.0", + "@abp/ng.theme.shared": "~8.0.0", "tslib": "^2.0.0" }, "publishConfig": { diff --git a/npm/ng-packs/packages/theme-shared/package.json b/npm/ng-packs/packages/theme-shared/package.json index d53bf576b5..df585dc89a 100644 --- a/npm/ng-packs/packages/theme-shared/package.json +++ b/npm/ng-packs/packages/theme-shared/package.json @@ -1,13 +1,13 @@ { "name": "@abp/ng.theme.shared", - "version": "8.0.0-rc.3", + "version": "8.0.0", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/ng.core": "~8.0.0-rc.3", + "@abp/ng.core": "~8.0.0", "@fortawesome/fontawesome-free": "^5.15.4", "@ng-bootstrap/ng-bootstrap": "~16.0.0", "@ngx-validate/core": "^0.2.0", diff --git a/npm/ng-packs/packages/components/extensible/src/tests/date-time.adapter.spec.ts b/npm/ng-packs/packages/theme-shared/src/lib/tests/date-time.adapter.spec.ts similarity index 94% rename from npm/ng-packs/packages/components/extensible/src/tests/date-time.adapter.spec.ts rename to npm/ng-packs/packages/theme-shared/src/lib/tests/date-time.adapter.spec.ts index 621246b5e0..2c00b28fae 100644 --- a/npm/ng-packs/packages/components/extensible/src/tests/date-time.adapter.spec.ts +++ b/npm/ng-packs/packages/theme-shared/src/lib/tests/date-time.adapter.spec.ts @@ -1,5 +1,4 @@ -import { DateTimeAdapter } from '../lib/adapters/date-time.adapter'; - + import { DateTimeAdapter } from '../adapters/date-time.adapter' describe('DateTime Adapter', () => { const adapter = new DateTimeAdapter(); const date = new Date(2002, 2, 30, 13, 30, 45, 0); diff --git a/npm/ng-packs/packages/components/extensible/src/tests/date.adapter.spec.ts b/npm/ng-packs/packages/theme-shared/src/lib/tests/date.adapter.spec.ts similarity index 94% rename from npm/ng-packs/packages/components/extensible/src/tests/date.adapter.spec.ts rename to npm/ng-packs/packages/theme-shared/src/lib/tests/date.adapter.spec.ts index e1101f6a29..b0d5c0df6d 100644 --- a/npm/ng-packs/packages/components/extensible/src/tests/date.adapter.spec.ts +++ b/npm/ng-packs/packages/theme-shared/src/lib/tests/date.adapter.spec.ts @@ -1,5 +1,4 @@ -import { DateAdapter } from '../lib/adapters/date.adapter'; - + import {DateAdapter} from '../adapters/date.adapter'; describe('Date Adapter', () => { const adapter = new DateAdapter(); diff --git a/npm/ng-packs/packages/components/extensible/src/tests/time.adapter.spec.ts b/npm/ng-packs/packages/theme-shared/src/lib/tests/time.adapter.spec.ts similarity index 95% rename from npm/ng-packs/packages/components/extensible/src/tests/time.adapter.spec.ts rename to npm/ng-packs/packages/theme-shared/src/lib/tests/time.adapter.spec.ts index 40d7fab58b..0aa42eb748 100644 --- a/npm/ng-packs/packages/components/extensible/src/tests/time.adapter.spec.ts +++ b/npm/ng-packs/packages/theme-shared/src/lib/tests/time.adapter.spec.ts @@ -1,4 +1,4 @@ -import { TimeAdapter } from '../lib/adapters/time.adapter'; +import { TimeAdapter } from '../adapters/time.adapter'; describe('Time Adapter', () => { const adapter = new TimeAdapter(); diff --git a/npm/packs/anchor-js/package.json b/npm/packs/anchor-js/package.json index d893773b9d..8e3c6c32a2 100644 --- a/npm/packs/anchor-js/package.json +++ b/npm/packs/anchor-js/package.json @@ -1,11 +1,11 @@ { - "version": "8.0.0-rc.3", + "version": "8.0.0", "name": "@abp/anchor-js", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~8.0.0-rc.3", + "@abp/core": "~8.0.0", "anchor-js": "^4.3.1" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/aspnetcore.components.server.basictheme/package.json b/npm/packs/aspnetcore.components.server.basictheme/package.json index 7a7a5e10a0..a44cccf4f9 100644 --- a/npm/packs/aspnetcore.components.server.basictheme/package.json +++ b/npm/packs/aspnetcore.components.server.basictheme/package.json @@ -1,11 +1,11 @@ { - "version": "8.0.0-rc.3", + "version": "8.0.0", "name": "@abp/aspnetcore.components.server.basictheme", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/aspnetcore.components.server.theming": "~8.0.0-rc.3" + "@abp/aspnetcore.components.server.theming": "~8.0.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", "homepage": "https://abp.io", diff --git a/npm/packs/aspnetcore.components.server.theming/package.json b/npm/packs/aspnetcore.components.server.theming/package.json index eb94b67d78..55a55594be 100644 --- a/npm/packs/aspnetcore.components.server.theming/package.json +++ b/npm/packs/aspnetcore.components.server.theming/package.json @@ -1,12 +1,12 @@ { - "version": "8.0.0-rc.3", + "version": "8.0.0", "name": "@abp/aspnetcore.components.server.theming", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/bootstrap": "~8.0.0-rc.3", - "@abp/font-awesome": "~8.0.0-rc.3" + "@abp/bootstrap": "~8.0.0", + "@abp/font-awesome": "~8.0.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", "homepage": "https://abp.io", diff --git a/npm/packs/aspnetcore.mvc.ui.theme.basic/package.json b/npm/packs/aspnetcore.mvc.ui.theme.basic/package.json index 35f01b2e86..763c01750d 100644 --- a/npm/packs/aspnetcore.mvc.ui.theme.basic/package.json +++ b/npm/packs/aspnetcore.mvc.ui.theme.basic/package.json @@ -1,5 +1,5 @@ { - "version": "8.0.0-rc.3", + "version": "8.0.0", "name": "@abp/aspnetcore.mvc.ui.theme.basic", "repository": { "type": "git", @@ -10,7 +10,7 @@ "access": "public" }, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.shared": "~8.0.0-rc.3" + "@abp/aspnetcore.mvc.ui.theme.shared": "~8.0.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", "homepage": "https://abp.io", diff --git a/npm/packs/aspnetcore.mvc.ui.theme.shared/package.json b/npm/packs/aspnetcore.mvc.ui.theme.shared/package.json index 3bb7d4c290..6492de8bbc 100644 --- a/npm/packs/aspnetcore.mvc.ui.theme.shared/package.json +++ b/npm/packs/aspnetcore.mvc.ui.theme.shared/package.json @@ -1,5 +1,5 @@ { - "version": "8.0.0-rc.3", + "version": "8.0.0", "name": "@abp/aspnetcore.mvc.ui.theme.shared", "repository": { "type": "git", @@ -10,22 +10,22 @@ "access": "public" }, "dependencies": { - "@abp/aspnetcore.mvc.ui": "~8.0.0-rc.3", - "@abp/bootstrap": "~8.0.0-rc.3", - "@abp/bootstrap-datepicker": "~8.0.0-rc.3", - "@abp/bootstrap-daterangepicker": "~8.0.0-rc.3", - "@abp/datatables.net-bs5": "~8.0.0-rc.3", - "@abp/font-awesome": "~8.0.0-rc.3", - "@abp/jquery-form": "~8.0.0-rc.3", - "@abp/jquery-validation-unobtrusive": "~8.0.0-rc.3", - "@abp/lodash": "~8.0.0-rc.3", - "@abp/luxon": "~8.0.0-rc.3", - "@abp/malihu-custom-scrollbar-plugin": "~8.0.0-rc.3", - "@abp/moment": "~8.0.0-rc.3", - "@abp/select2": "~8.0.0-rc.3", - "@abp/sweetalert2": "~8.0.0-rc.3", - "@abp/timeago": "~8.0.0-rc.3", - "@abp/toastr": "~8.0.0-rc.3" + "@abp/aspnetcore.mvc.ui": "~8.0.0", + "@abp/bootstrap": "~8.0.0", + "@abp/bootstrap-datepicker": "~8.0.0", + "@abp/bootstrap-daterangepicker": "~8.0.0", + "@abp/datatables.net-bs5": "~8.0.0", + "@abp/font-awesome": "~8.0.0", + "@abp/jquery-form": "~8.0.0", + "@abp/jquery-validation-unobtrusive": "~8.0.0", + "@abp/lodash": "~8.0.0", + "@abp/luxon": "~8.0.0", + "@abp/malihu-custom-scrollbar-plugin": "~8.0.0", + "@abp/moment": "~8.0.0", + "@abp/select2": "~8.0.0", + "@abp/sweetalert2": "~8.0.0", + "@abp/timeago": "~8.0.0", + "@abp/toastr": "~8.0.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", "homepage": "https://abp.io", diff --git a/npm/packs/aspnetcore.mvc.ui/package-lock.json b/npm/packs/aspnetcore.mvc.ui/package-lock.json index ed6cd13101..3eda28ae66 100644 --- a/npm/packs/aspnetcore.mvc.ui/package-lock.json +++ b/npm/packs/aspnetcore.mvc.ui/package-lock.json @@ -1,6 +1,6 @@ { "name": "@abp/aspnetcore.mvc.ui", - "version": "8.0.0-rc.3", + "version": "8.0.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/npm/packs/aspnetcore.mvc.ui/package.json b/npm/packs/aspnetcore.mvc.ui/package.json index 8b90bd2e28..929960a684 100644 --- a/npm/packs/aspnetcore.mvc.ui/package.json +++ b/npm/packs/aspnetcore.mvc.ui/package.json @@ -1,5 +1,5 @@ { - "version": "8.0.0-rc.3", + "version": "8.0.0", "name": "@abp/aspnetcore.mvc.ui", "repository": { "type": "git", diff --git a/npm/packs/blogging/package.json b/npm/packs/blogging/package.json index 7c27b34e5b..df8048111f 100644 --- a/npm/packs/blogging/package.json +++ b/npm/packs/blogging/package.json @@ -1,14 +1,14 @@ { - "version": "8.0.0-rc.3", + "version": "8.0.0", "name": "@abp/blogging", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.shared": "~8.0.0-rc.3", - "@abp/owl.carousel": "~8.0.0-rc.3", - "@abp/prismjs": "~8.0.0-rc.3", - "@abp/tui-editor": "~8.0.0-rc.3" + "@abp/aspnetcore.mvc.ui.theme.shared": "~8.0.0", + "@abp/owl.carousel": "~8.0.0", + "@abp/prismjs": "~8.0.0", + "@abp/tui-editor": "~8.0.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", "homepage": "https://abp.io", diff --git a/npm/packs/bootstrap-datepicker/package.json b/npm/packs/bootstrap-datepicker/package.json index d2bb9196b2..52cdef161a 100644 --- a/npm/packs/bootstrap-datepicker/package.json +++ b/npm/packs/bootstrap-datepicker/package.json @@ -1,5 +1,5 @@ { - "version": "8.0.0-rc.3", + "version": "8.0.0", "name": "@abp/bootstrap-datepicker", "repository": { "type": "git", diff --git a/npm/packs/bootstrap-daterangepicker/package.json b/npm/packs/bootstrap-daterangepicker/package.json index b98ca440c9..1d2b4e0e46 100644 --- a/npm/packs/bootstrap-daterangepicker/package.json +++ b/npm/packs/bootstrap-daterangepicker/package.json @@ -1,5 +1,5 @@ { - "version": "8.0.0-rc.3", + "version": "8.0.0", "name": "@abp/bootstrap-daterangepicker", "repository": { "type": "git", diff --git a/npm/packs/bootstrap/package.json b/npm/packs/bootstrap/package.json index 905e6502de..d7cb48c80b 100644 --- a/npm/packs/bootstrap/package.json +++ b/npm/packs/bootstrap/package.json @@ -1,5 +1,5 @@ { - "version": "8.0.0-rc.3", + "version": "8.0.0", "name": "@abp/bootstrap", "repository": { "type": "git", @@ -10,7 +10,7 @@ "access": "public" }, "dependencies": { - "@abp/core": "~8.0.0-rc.3", + "@abp/core": "~8.0.0", "bootstrap": "^5.1.3" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/chart.js/package.json b/npm/packs/chart.js/package.json index 05bc3bde63..1b5ed535aa 100644 --- a/npm/packs/chart.js/package.json +++ b/npm/packs/chart.js/package.json @@ -1,5 +1,5 @@ { - "version": "8.0.0-rc.3", + "version": "8.0.0", "name": "@abp/chart.js", "publishConfig": { "access": "public" diff --git a/npm/packs/clipboard/package.json b/npm/packs/clipboard/package.json index 98d9fe7569..9bc955c256 100644 --- a/npm/packs/clipboard/package.json +++ b/npm/packs/clipboard/package.json @@ -1,11 +1,11 @@ { - "version": "8.0.0-rc.3", + "version": "8.0.0", "name": "@abp/clipboard", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~8.0.0-rc.3", + "@abp/core": "~8.0.0", "clipboard": "^2.0.8" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/cms-kit.admin/package.json b/npm/packs/cms-kit.admin/package.json index 7836bb69be..2c40155633 100644 --- a/npm/packs/cms-kit.admin/package.json +++ b/npm/packs/cms-kit.admin/package.json @@ -1,15 +1,15 @@ { - "version": "8.0.0-rc.3", + "version": "8.0.0", "name": "@abp/cms-kit.admin", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/codemirror": "~8.0.0-rc.3", - "@abp/jstree": "~8.0.0-rc.3", - "@abp/slugify": "~8.0.0-rc.3", - "@abp/tui-editor": "~8.0.0-rc.3", - "@abp/uppy": "~8.0.0-rc.3" + "@abp/codemirror": "~8.0.0", + "@abp/jstree": "~8.0.0", + "@abp/slugify": "~8.0.0", + "@abp/tui-editor": "~8.0.0", + "@abp/uppy": "~8.0.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", "homepage": "https://abp.io", diff --git a/npm/packs/cms-kit.public/package.json b/npm/packs/cms-kit.public/package.json index e5cc75230e..f4b47bdb36 100644 --- a/npm/packs/cms-kit.public/package.json +++ b/npm/packs/cms-kit.public/package.json @@ -1,12 +1,12 @@ { - "version": "8.0.0-rc.3", + "version": "8.0.0", "name": "@abp/cms-kit.public", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/highlight.js": "~8.0.0-rc.3", - "@abp/star-rating-svg": "~8.0.0-rc.3" + "@abp/highlight.js": "~8.0.0", + "@abp/star-rating-svg": "~8.0.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", "homepage": "https://abp.io", diff --git a/npm/packs/cms-kit/package.json b/npm/packs/cms-kit/package.json index 04b2245ad9..79acf3cbf8 100644 --- a/npm/packs/cms-kit/package.json +++ b/npm/packs/cms-kit/package.json @@ -1,12 +1,12 @@ { - "version": "8.0.0-rc.3", + "version": "8.0.0", "name": "@abp/cms-kit", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/cms-kit.admin": "~8.0.0-rc.3", - "@abp/cms-kit.public": "~8.0.0-rc.3" + "@abp/cms-kit.admin": "~8.0.0", + "@abp/cms-kit.public": "~8.0.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", "homepage": "https://abp.io", diff --git a/npm/packs/codemirror/package.json b/npm/packs/codemirror/package.json index 0558ed3b79..9184450e2d 100644 --- a/npm/packs/codemirror/package.json +++ b/npm/packs/codemirror/package.json @@ -1,11 +1,11 @@ { - "version": "8.0.0-rc.3", + "version": "8.0.0", "name": "@abp/codemirror", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~8.0.0-rc.3", + "@abp/core": "~8.0.0", "codemirror": "^5.65.1" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/core/package.json b/npm/packs/core/package.json index bbebd1b941..d39272eca5 100644 --- a/npm/packs/core/package.json +++ b/npm/packs/core/package.json @@ -1,5 +1,5 @@ { - "version": "8.0.0-rc.3", + "version": "8.0.0", "name": "@abp/core", "repository": { "type": "git", @@ -10,7 +10,7 @@ "access": "public" }, "dependencies": { - "@abp/utils": "~8.0.0-rc.3" + "@abp/utils": "~8.0.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", "homepage": "https://abp.io", diff --git a/npm/packs/cropperjs/package.json b/npm/packs/cropperjs/package.json index 5be37481b0..3f302ec2ab 100644 --- a/npm/packs/cropperjs/package.json +++ b/npm/packs/cropperjs/package.json @@ -1,11 +1,11 @@ { - "version": "8.0.0-rc.3", + "version": "8.0.0", "name": "@abp/cropperjs", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~8.0.0-rc.3", + "@abp/core": "~8.0.0", "cropperjs": "^1.5.12" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/datatables.net-bs4/package.json b/npm/packs/datatables.net-bs4/package.json index 26e8768af1..5b1adae492 100644 --- a/npm/packs/datatables.net-bs4/package.json +++ b/npm/packs/datatables.net-bs4/package.json @@ -1,5 +1,5 @@ { - "version": "8.0.0-rc.3", + "version": "8.0.0", "name": "@abp/datatables.net-bs4", "repository": { "type": "git", @@ -10,7 +10,7 @@ "access": "public" }, "dependencies": { - "@abp/datatables.net": "~8.0.0-rc.3", + "@abp/datatables.net": "~8.0.0", "datatables.net-bs4": "^1.11.4" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/datatables.net-bs5/package.json b/npm/packs/datatables.net-bs5/package.json index 04e4a8b628..2d0ab947d4 100644 --- a/npm/packs/datatables.net-bs5/package.json +++ b/npm/packs/datatables.net-bs5/package.json @@ -1,11 +1,11 @@ { - "version": "8.0.0-rc.3", + "version": "8.0.0", "name": "@abp/datatables.net-bs5", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/datatables.net": "~8.0.0-rc.3", + "@abp/datatables.net": "~8.0.0", "datatables.net-bs5": "^1.11.4" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/datatables.net/package.json b/npm/packs/datatables.net/package.json index 25208449f3..cd1165d551 100644 --- a/npm/packs/datatables.net/package.json +++ b/npm/packs/datatables.net/package.json @@ -1,5 +1,5 @@ { - "version": "8.0.0-rc.3", + "version": "8.0.0", "name": "@abp/datatables.net", "repository": { "type": "git", @@ -10,7 +10,7 @@ "access": "public" }, "dependencies": { - "@abp/jquery": "~8.0.0-rc.3", + "@abp/jquery": "~8.0.0", "datatables.net": "^1.11.4" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/docs/package.json b/npm/packs/docs/package.json index e1a5bda82b..1470d1a483 100644 --- a/npm/packs/docs/package.json +++ b/npm/packs/docs/package.json @@ -1,15 +1,15 @@ { - "version": "8.0.0-rc.3", + "version": "8.0.0", "name": "@abp/docs", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/anchor-js": "~8.0.0-rc.3", - "@abp/clipboard": "~8.0.0-rc.3", - "@abp/malihu-custom-scrollbar-plugin": "~8.0.0-rc.3", - "@abp/popper.js": "~8.0.0-rc.3", - "@abp/prismjs": "~8.0.0-rc.3" + "@abp/anchor-js": "~8.0.0", + "@abp/clipboard": "~8.0.0", + "@abp/malihu-custom-scrollbar-plugin": "~8.0.0", + "@abp/popper.js": "~8.0.0", + "@abp/prismjs": "~8.0.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", "homepage": "https://abp.io", diff --git a/npm/packs/flag-icon-css/package.json b/npm/packs/flag-icon-css/package.json index 739f3546fe..ab60a849f4 100644 --- a/npm/packs/flag-icon-css/package.json +++ b/npm/packs/flag-icon-css/package.json @@ -1,5 +1,5 @@ { - "version": "8.0.0-rc.3", + "version": "8.0.0", "name": "@abp/flag-icon-css", "publishConfig": { "access": "public" diff --git a/npm/packs/flag-icons/package.json b/npm/packs/flag-icons/package.json index b28d714dbb..d576001794 100644 --- a/npm/packs/flag-icons/package.json +++ b/npm/packs/flag-icons/package.json @@ -1,5 +1,5 @@ { - "version": "8.0.0-rc.3", + "version": "8.0.0", "name": "@abp/flag-icons", "publishConfig": { "access": "public" diff --git a/npm/packs/font-awesome/package.json b/npm/packs/font-awesome/package.json index e302b65261..0e70a9b948 100644 --- a/npm/packs/font-awesome/package.json +++ b/npm/packs/font-awesome/package.json @@ -1,5 +1,5 @@ { - "version": "8.0.0-rc.3", + "version": "8.0.0", "name": "@abp/font-awesome", "repository": { "type": "git", @@ -10,7 +10,7 @@ "access": "public" }, "dependencies": { - "@abp/core": "~8.0.0-rc.3", + "@abp/core": "~8.0.0", "@fortawesome/fontawesome-free": "^5.15.4" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/highlight.js/package.json b/npm/packs/highlight.js/package.json index 0ce2559107..42f56a38c5 100644 --- a/npm/packs/highlight.js/package.json +++ b/npm/packs/highlight.js/package.json @@ -1,11 +1,11 @@ { - "version": "8.0.0-rc.3", + "version": "8.0.0", "name": "@abp/highlight.js", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~8.0.0-rc.3", + "@abp/core": "~8.0.0", "@highlightjs/cdn-assets": "~11.4.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/jquery-form/package.json b/npm/packs/jquery-form/package.json index 53583db517..e73c628e71 100644 --- a/npm/packs/jquery-form/package.json +++ b/npm/packs/jquery-form/package.json @@ -1,5 +1,5 @@ { - "version": "8.0.0-rc.3", + "version": "8.0.0", "name": "@abp/jquery-form", "repository": { "type": "git", @@ -10,7 +10,7 @@ "access": "public" }, "dependencies": { - "@abp/jquery": "~8.0.0-rc.3", + "@abp/jquery": "~8.0.0", "jquery-form": "^4.3.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/jquery-validation-unobtrusive/package.json b/npm/packs/jquery-validation-unobtrusive/package.json index 83631a9717..b80c4ec98b 100644 --- a/npm/packs/jquery-validation-unobtrusive/package.json +++ b/npm/packs/jquery-validation-unobtrusive/package.json @@ -1,5 +1,5 @@ { - "version": "8.0.0-rc.3", + "version": "8.0.0", "name": "@abp/jquery-validation-unobtrusive", "repository": { "type": "git", @@ -10,7 +10,7 @@ "access": "public" }, "dependencies": { - "@abp/jquery-validation": "~8.0.0-rc.3", + "@abp/jquery-validation": "~8.0.0", "jquery-validation-unobtrusive": "^3.2.12" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/jquery-validation/package.json b/npm/packs/jquery-validation/package.json index 6aa3586a05..cbd78c2d55 100644 --- a/npm/packs/jquery-validation/package.json +++ b/npm/packs/jquery-validation/package.json @@ -1,5 +1,5 @@ { - "version": "8.0.0-rc.3", + "version": "8.0.0", "name": "@abp/jquery-validation", "repository": { "type": "git", @@ -10,7 +10,7 @@ "access": "public" }, "dependencies": { - "@abp/jquery": "~8.0.0-rc.3", + "@abp/jquery": "~8.0.0", "jquery-validation": "^1.19.3" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/jquery/package.json b/npm/packs/jquery/package.json index a9a6125dc1..f8648d7b38 100644 --- a/npm/packs/jquery/package.json +++ b/npm/packs/jquery/package.json @@ -1,5 +1,5 @@ { - "version": "8.0.0-rc.3", + "version": "8.0.0", "name": "@abp/jquery", "repository": { "type": "git", @@ -10,7 +10,7 @@ "access": "public" }, "dependencies": { - "@abp/core": "~8.0.0-rc.3", + "@abp/core": "~8.0.0", "jquery": "~3.6.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/jstree/package.json b/npm/packs/jstree/package.json index ac83a36238..4ce6194f28 100644 --- a/npm/packs/jstree/package.json +++ b/npm/packs/jstree/package.json @@ -1,11 +1,11 @@ { - "version": "8.0.0-rc.3", + "version": "8.0.0", "name": "@abp/jstree", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/jquery": "~8.0.0-rc.3", + "@abp/jquery": "~8.0.0", "jstree": "^3.3.12" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/lodash/package.json b/npm/packs/lodash/package.json index ac38dfa9e6..c7ce404679 100644 --- a/npm/packs/lodash/package.json +++ b/npm/packs/lodash/package.json @@ -1,5 +1,5 @@ { - "version": "8.0.0-rc.3", + "version": "8.0.0", "name": "@abp/lodash", "repository": { "type": "git", @@ -10,7 +10,7 @@ "access": "public" }, "dependencies": { - "@abp/core": "~8.0.0-rc.3", + "@abp/core": "~8.0.0", "lodash": "^4.17.21" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/luxon/package.json b/npm/packs/luxon/package.json index 418ec50bec..278bced1a7 100644 --- a/npm/packs/luxon/package.json +++ b/npm/packs/luxon/package.json @@ -1,5 +1,5 @@ { - "version": "8.0.0-rc.3", + "version": "8.0.0", "name": "@abp/luxon", "repository": { "type": "git", @@ -10,7 +10,7 @@ "access": "public" }, "dependencies": { - "@abp/core": "~8.0.0-rc.3", + "@abp/core": "~8.0.0", "luxon": "^2.3.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/malihu-custom-scrollbar-plugin/package.json b/npm/packs/malihu-custom-scrollbar-plugin/package.json index abd30046b7..1ab07dd380 100644 --- a/npm/packs/malihu-custom-scrollbar-plugin/package.json +++ b/npm/packs/malihu-custom-scrollbar-plugin/package.json @@ -1,5 +1,5 @@ { - "version": "8.0.0-rc.3", + "version": "8.0.0", "name": "@abp/malihu-custom-scrollbar-plugin", "repository": { "type": "git", @@ -10,7 +10,7 @@ "access": "public" }, "dependencies": { - "@abp/core": "~8.0.0-rc.3", + "@abp/core": "~8.0.0", "malihu-custom-scrollbar-plugin": "^3.1.5" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/markdown-it/package.json b/npm/packs/markdown-it/package.json index 93112746f2..96039de852 100644 --- a/npm/packs/markdown-it/package.json +++ b/npm/packs/markdown-it/package.json @@ -1,11 +1,11 @@ { - "version": "8.0.0-rc.3", + "version": "8.0.0", "name": "@abp/markdown-it", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~8.0.0-rc.3", + "@abp/core": "~8.0.0", "markdown-it": "^12.3.2" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/moment/package.json b/npm/packs/moment/package.json index f2216cd7b5..d449b888c7 100644 --- a/npm/packs/moment/package.json +++ b/npm/packs/moment/package.json @@ -1,5 +1,5 @@ { - "version": "8.0.0-rc.3", + "version": "8.0.0", "name": "@abp/moment", "repository": { "type": "git", diff --git a/npm/packs/owl.carousel/package.json b/npm/packs/owl.carousel/package.json index 3a3d34a031..28a4241375 100644 --- a/npm/packs/owl.carousel/package.json +++ b/npm/packs/owl.carousel/package.json @@ -1,11 +1,11 @@ { - "version": "8.0.0-rc.3", + "version": "8.0.0", "name": "@abp/owl.carousel", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~8.0.0-rc.3", + "@abp/core": "~8.0.0", "owl.carousel": "^2.3.4" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/popper.js/package.json b/npm/packs/popper.js/package.json index 37ced4105b..8aa57bc91e 100644 --- a/npm/packs/popper.js/package.json +++ b/npm/packs/popper.js/package.json @@ -1,11 +1,11 @@ { - "version": "8.0.0-rc.3", + "version": "8.0.0", "name": "@abp/popper.js", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~8.0.0-rc.3", + "@abp/core": "~8.0.0", "@popperjs/core": "^2.11.2" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/prismjs/package.json b/npm/packs/prismjs/package.json index dd64d0e3b0..402bfa1f87 100644 --- a/npm/packs/prismjs/package.json +++ b/npm/packs/prismjs/package.json @@ -1,12 +1,12 @@ { - "version": "8.0.0-rc.3", + "version": "8.0.0", "name": "@abp/prismjs", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/clipboard": "~8.0.0-rc.3", - "@abp/core": "~8.0.0-rc.3", + "@abp/clipboard": "~8.0.0", + "@abp/core": "~8.0.0", "prismjs": "^1.26.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/qrcode/package.json b/npm/packs/qrcode/package.json index 744f86aa9f..5b226ead5e 100644 --- a/npm/packs/qrcode/package.json +++ b/npm/packs/qrcode/package.json @@ -1,5 +1,5 @@ { - "version": "8.0.0-rc.3", + "version": "8.0.0", "name": "@abp/qrcode", "repository": { "type": "git", @@ -10,7 +10,7 @@ "access": "public" }, "dependencies": { - "@abp/core": "~8.0.0-rc.3" + "@abp/core": "~8.0.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", "homepage": "https://abp.io", diff --git a/npm/packs/select2/package.json b/npm/packs/select2/package.json index 5ba519f860..c388e98df6 100644 --- a/npm/packs/select2/package.json +++ b/npm/packs/select2/package.json @@ -1,5 +1,5 @@ { - "version": "8.0.0-rc.3", + "version": "8.0.0", "name": "@abp/select2", "repository": { "type": "git", @@ -10,7 +10,7 @@ "access": "public" }, "dependencies": { - "@abp/core": "~8.0.0-rc.3", + "@abp/core": "~8.0.0", "select2": "^4.0.13" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/signalr/package.json b/npm/packs/signalr/package.json index b625dd1d07..44b8dd87b8 100644 --- a/npm/packs/signalr/package.json +++ b/npm/packs/signalr/package.json @@ -1,11 +1,11 @@ { - "version": "8.0.0-rc.3", + "version": "8.0.0", "name": "@abp/signalr", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~8.0.0-rc.3", + "@abp/core": "~8.0.0", "@microsoft/signalr": "~6.0.1" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/slugify/package.json b/npm/packs/slugify/package.json index cbafd6a8be..4374fea5a5 100644 --- a/npm/packs/slugify/package.json +++ b/npm/packs/slugify/package.json @@ -1,5 +1,5 @@ { - "version": "8.0.0-rc.3", + "version": "8.0.0", "name": "@abp/slugify", "publishConfig": { "access": "public" diff --git a/npm/packs/star-rating-svg/package.json b/npm/packs/star-rating-svg/package.json index bc05c1f27f..0bb3b83df8 100644 --- a/npm/packs/star-rating-svg/package.json +++ b/npm/packs/star-rating-svg/package.json @@ -1,11 +1,11 @@ { - "version": "8.0.0-rc.3", + "version": "8.0.0", "name": "@abp/star-rating-svg", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/jquery": "~8.0.0-rc.3", + "@abp/jquery": "~8.0.0", "star-rating-svg": "^3.5.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/sweetalert2/package.json b/npm/packs/sweetalert2/package.json index 6698d606b2..399476a81c 100644 --- a/npm/packs/sweetalert2/package.json +++ b/npm/packs/sweetalert2/package.json @@ -1,5 +1,5 @@ { - "version": "8.0.0-rc.3", + "version": "8.0.0", "name": "@abp/sweetalert2", "publishConfig": { "access": "public" @@ -10,7 +10,7 @@ "directory": "npm/packs/sweetalert2" }, "dependencies": { - "@abp/core": "~8.0.0-rc.3", + "@abp/core": "~8.0.0", "sweetalert2": "^11.3.6" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/timeago/package.json b/npm/packs/timeago/package.json index 39ed17fcbf..9c0a5938bb 100644 --- a/npm/packs/timeago/package.json +++ b/npm/packs/timeago/package.json @@ -1,5 +1,5 @@ { - "version": "8.0.0-rc.3", + "version": "8.0.0", "name": "@abp/timeago", "repository": { "type": "git", @@ -10,7 +10,7 @@ "access": "public" }, "dependencies": { - "@abp/jquery": "~8.0.0-rc.3", + "@abp/jquery": "~8.0.0", "timeago": "^1.6.7" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/toastr/package.json b/npm/packs/toastr/package.json index 3574cee15c..67ef228441 100644 --- a/npm/packs/toastr/package.json +++ b/npm/packs/toastr/package.json @@ -1,5 +1,5 @@ { - "version": "8.0.0-rc.3", + "version": "8.0.0", "name": "@abp/toastr", "repository": { "type": "git", @@ -10,7 +10,7 @@ "access": "public" }, "dependencies": { - "@abp/jquery": "~8.0.0-rc.3", + "@abp/jquery": "~8.0.0", "toastr": "^2.1.4" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/tui-editor/package.json b/npm/packs/tui-editor/package.json index c83b7dce2a..133b0bf0f3 100644 --- a/npm/packs/tui-editor/package.json +++ b/npm/packs/tui-editor/package.json @@ -1,12 +1,12 @@ { - "version": "8.0.0-rc.3", + "version": "8.0.0", "name": "@abp/tui-editor", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/jquery": "~8.0.0-rc.3", - "@abp/prismjs": "~8.0.0-rc.3" + "@abp/jquery": "~8.0.0", + "@abp/prismjs": "~8.0.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", "homepage": "https://abp.io", diff --git a/npm/packs/uppy/package.json b/npm/packs/uppy/package.json index 9e39efab87..5c47e2caf1 100644 --- a/npm/packs/uppy/package.json +++ b/npm/packs/uppy/package.json @@ -1,11 +1,11 @@ { - "version": "8.0.0-rc.3", + "version": "8.0.0", "name": "@abp/uppy", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~8.0.0-rc.3", + "@abp/core": "~8.0.0", "uppy": "^1.16.1" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/utils/package.json b/npm/packs/utils/package.json index 69658e3340..8a523f9e3c 100644 --- a/npm/packs/utils/package.json +++ b/npm/packs/utils/package.json @@ -1,6 +1,6 @@ { "name": "@abp/utils", - "version": "8.0.0-rc.3", + "version": "8.0.0", "scripts": { "prepublishOnly": "yarn install --ignore-scripts && node prepublish.js", "ng": "ng", diff --git a/npm/packs/vee-validate/package.json b/npm/packs/vee-validate/package.json index f3f54bb485..d41be2544d 100644 --- a/npm/packs/vee-validate/package.json +++ b/npm/packs/vee-validate/package.json @@ -1,11 +1,11 @@ { - "version": "8.0.0-rc.3", + "version": "8.0.0", "name": "@abp/vee-validate", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/vue": "~8.0.0-rc.3", + "@abp/vue": "~8.0.0", "vee-validate": "~3.4.4" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/virtual-file-explorer/package.json b/npm/packs/virtual-file-explorer/package.json index 9ed9d1d265..055a84ce2f 100644 --- a/npm/packs/virtual-file-explorer/package.json +++ b/npm/packs/virtual-file-explorer/package.json @@ -1,12 +1,12 @@ { - "version": "8.0.0-rc.3", + "version": "8.0.0", "name": "@abp/virtual-file-explorer", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/clipboard": "~8.0.0-rc.3", - "@abp/prismjs": "~8.0.0-rc.3" + "@abp/clipboard": "~8.0.0", + "@abp/prismjs": "~8.0.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", "homepage": "https://abp.io", diff --git a/npm/packs/vue/package.json b/npm/packs/vue/package.json index b987f78898..1b1470707f 100644 --- a/npm/packs/vue/package.json +++ b/npm/packs/vue/package.json @@ -1,5 +1,5 @@ { - "version": "8.0.0-rc.3", + "version": "8.0.0", "name": "@abp/vue", "publishConfig": { "access": "public" diff --git a/npm/packs/zxcvbn/package.json b/npm/packs/zxcvbn/package.json index 0a1db65280..6ef1e6e53e 100644 --- a/npm/packs/zxcvbn/package.json +++ b/npm/packs/zxcvbn/package.json @@ -1,11 +1,11 @@ { - "version": "8.0.0-rc.3", + "version": "8.0.0", "name": "@abp/zxcvbn", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~8.0.0-rc.3", + "@abp/core": "~8.0.0", "zxcvbn": "^4.4.2" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/source-code/Volo.Abp.Account.SourceCode/Volo.Abp.Account.SourceCode.zip b/source-code/Volo.Abp.Account.SourceCode/Volo.Abp.Account.SourceCode.zip index 0bb7753343..bc4085e6f6 100644 Binary files a/source-code/Volo.Abp.Account.SourceCode/Volo.Abp.Account.SourceCode.zip and b/source-code/Volo.Abp.Account.SourceCode/Volo.Abp.Account.SourceCode.zip differ diff --git a/source-code/Volo.Abp.AuditLogging.SourceCode/Volo.Abp.AuditLogging.SourceCode.zip b/source-code/Volo.Abp.AuditLogging.SourceCode/Volo.Abp.AuditLogging.SourceCode.zip index cdc73947b4..a017d2fc2f 100644 Binary files a/source-code/Volo.Abp.AuditLogging.SourceCode/Volo.Abp.AuditLogging.SourceCode.zip and b/source-code/Volo.Abp.AuditLogging.SourceCode/Volo.Abp.AuditLogging.SourceCode.zip differ diff --git a/source-code/Volo.Abp.BackgroundJobs.SourceCode/Volo.Abp.BackgroundJobs.SourceCode.zip b/source-code/Volo.Abp.BackgroundJobs.SourceCode/Volo.Abp.BackgroundJobs.SourceCode.zip index adeb674373..84c8a65e18 100644 Binary files a/source-code/Volo.Abp.BackgroundJobs.SourceCode/Volo.Abp.BackgroundJobs.SourceCode.zip and b/source-code/Volo.Abp.BackgroundJobs.SourceCode/Volo.Abp.BackgroundJobs.SourceCode.zip differ diff --git a/source-code/Volo.Abp.BasicTheme.SourceCode/Volo.Abp.BasicTheme.SourceCode.zip b/source-code/Volo.Abp.BasicTheme.SourceCode/Volo.Abp.BasicTheme.SourceCode.zip index e9d172467b..417cbe0653 100644 Binary files a/source-code/Volo.Abp.BasicTheme.SourceCode/Volo.Abp.BasicTheme.SourceCode.zip and b/source-code/Volo.Abp.BasicTheme.SourceCode/Volo.Abp.BasicTheme.SourceCode.zip differ diff --git a/source-code/Volo.Abp.BlobStoring.Database.SourceCode/Volo.Abp.BlobStoring.Database.SourceCode.zip b/source-code/Volo.Abp.BlobStoring.Database.SourceCode/Volo.Abp.BlobStoring.Database.SourceCode.zip index 07d0b6f132..5d85b2262c 100644 Binary files a/source-code/Volo.Abp.BlobStoring.Database.SourceCode/Volo.Abp.BlobStoring.Database.SourceCode.zip and b/source-code/Volo.Abp.BlobStoring.Database.SourceCode/Volo.Abp.BlobStoring.Database.SourceCode.zip differ diff --git a/source-code/Volo.Abp.FeatureManagement.SourceCode/Volo.Abp.FeatureManagement.SourceCode.zip b/source-code/Volo.Abp.FeatureManagement.SourceCode/Volo.Abp.FeatureManagement.SourceCode.zip index 5442e83c75..9c9dedb835 100644 Binary files a/source-code/Volo.Abp.FeatureManagement.SourceCode/Volo.Abp.FeatureManagement.SourceCode.zip and b/source-code/Volo.Abp.FeatureManagement.SourceCode/Volo.Abp.FeatureManagement.SourceCode.zip differ diff --git a/source-code/Volo.Abp.Identity.SourceCode/Volo.Abp.Identity.SourceCode.zip b/source-code/Volo.Abp.Identity.SourceCode/Volo.Abp.Identity.SourceCode.zip index 6ab556e660..01bf38ad6a 100644 Binary files a/source-code/Volo.Abp.Identity.SourceCode/Volo.Abp.Identity.SourceCode.zip and b/source-code/Volo.Abp.Identity.SourceCode/Volo.Abp.Identity.SourceCode.zip differ diff --git a/source-code/Volo.Abp.IdentityServer.SourceCode/Volo.Abp.IdentityServer.SourceCode.zip b/source-code/Volo.Abp.IdentityServer.SourceCode/Volo.Abp.IdentityServer.SourceCode.zip index 721d177add..f5fd5f1061 100644 Binary files a/source-code/Volo.Abp.IdentityServer.SourceCode/Volo.Abp.IdentityServer.SourceCode.zip and b/source-code/Volo.Abp.IdentityServer.SourceCode/Volo.Abp.IdentityServer.SourceCode.zip differ diff --git a/source-code/Volo.Abp.OpenIddict.SourceCode/Volo.Abp.OpenIddict.SourceCode.zip b/source-code/Volo.Abp.OpenIddict.SourceCode/Volo.Abp.OpenIddict.SourceCode.zip index 0543c4f3a0..1001dcd663 100644 Binary files a/source-code/Volo.Abp.OpenIddict.SourceCode/Volo.Abp.OpenIddict.SourceCode.zip and b/source-code/Volo.Abp.OpenIddict.SourceCode/Volo.Abp.OpenIddict.SourceCode.zip differ diff --git a/source-code/Volo.Abp.PermissionManagement.SourceCode/Volo.Abp.PermissionManagement.SourceCode.zip b/source-code/Volo.Abp.PermissionManagement.SourceCode/Volo.Abp.PermissionManagement.SourceCode.zip index e87ac14749..7e32553806 100644 Binary files a/source-code/Volo.Abp.PermissionManagement.SourceCode/Volo.Abp.PermissionManagement.SourceCode.zip and b/source-code/Volo.Abp.PermissionManagement.SourceCode/Volo.Abp.PermissionManagement.SourceCode.zip differ diff --git a/source-code/Volo.Abp.SettingManagement.SourceCode/Volo.Abp.SettingManagement.SourceCode.zip b/source-code/Volo.Abp.SettingManagement.SourceCode/Volo.Abp.SettingManagement.SourceCode.zip index b2f5a02029..ed38de2318 100644 Binary files a/source-code/Volo.Abp.SettingManagement.SourceCode/Volo.Abp.SettingManagement.SourceCode.zip and b/source-code/Volo.Abp.SettingManagement.SourceCode/Volo.Abp.SettingManagement.SourceCode.zip differ diff --git a/source-code/Volo.Abp.TenantManagement.SourceCode/Volo.Abp.TenantManagement.SourceCode.zip b/source-code/Volo.Abp.TenantManagement.SourceCode/Volo.Abp.TenantManagement.SourceCode.zip index 64be6d31c3..9b0b3edc8b 100644 Binary files a/source-code/Volo.Abp.TenantManagement.SourceCode/Volo.Abp.TenantManagement.SourceCode.zip and b/source-code/Volo.Abp.TenantManagement.SourceCode/Volo.Abp.TenantManagement.SourceCode.zip differ diff --git a/source-code/Volo.Abp.Users.SourceCode/Volo.Abp.Users.SourceCode.zip b/source-code/Volo.Abp.Users.SourceCode/Volo.Abp.Users.SourceCode.zip index 1e46b78f3d..7a8b31dcde 100644 Binary files a/source-code/Volo.Abp.Users.SourceCode/Volo.Abp.Users.SourceCode.zip and b/source-code/Volo.Abp.Users.SourceCode/Volo.Abp.Users.SourceCode.zip differ diff --git a/source-code/Volo.Abp.VirtualFileExplorer.SourceCode/Volo.Abp.VirtualFileExplorer.SourceCode.zip b/source-code/Volo.Abp.VirtualFileExplorer.SourceCode/Volo.Abp.VirtualFileExplorer.SourceCode.zip index 102d1e1290..e10c857fb1 100644 Binary files a/source-code/Volo.Abp.VirtualFileExplorer.SourceCode/Volo.Abp.VirtualFileExplorer.SourceCode.zip and b/source-code/Volo.Abp.VirtualFileExplorer.SourceCode/Volo.Abp.VirtualFileExplorer.SourceCode.zip differ diff --git a/source-code/Volo.Blogging.SourceCode/Volo.Blogging.SourceCode.zip b/source-code/Volo.Blogging.SourceCode/Volo.Blogging.SourceCode.zip index 74927753ca..98bf1fc655 100644 Binary files a/source-code/Volo.Blogging.SourceCode/Volo.Blogging.SourceCode.zip and b/source-code/Volo.Blogging.SourceCode/Volo.Blogging.SourceCode.zip differ diff --git a/source-code/Volo.ClientSimulation.SourceCode/Volo.ClientSimulation.SourceCode.zip b/source-code/Volo.ClientSimulation.SourceCode/Volo.ClientSimulation.SourceCode.zip index 2c0e7c797c..2ab25dc27e 100644 Binary files a/source-code/Volo.ClientSimulation.SourceCode/Volo.ClientSimulation.SourceCode.zip and b/source-code/Volo.ClientSimulation.SourceCode/Volo.ClientSimulation.SourceCode.zip differ diff --git a/source-code/Volo.CmsKit.SourceCode/Volo.CmsKit.SourceCode.zip b/source-code/Volo.CmsKit.SourceCode/Volo.CmsKit.SourceCode.zip index 80170cbe30..13e400afa8 100644 Binary files a/source-code/Volo.CmsKit.SourceCode/Volo.CmsKit.SourceCode.zip and b/source-code/Volo.CmsKit.SourceCode/Volo.CmsKit.SourceCode.zip differ diff --git a/source-code/Volo.Docs.SourceCode/Volo.Docs.SourceCode.zip b/source-code/Volo.Docs.SourceCode/Volo.Docs.SourceCode.zip index a92143c46a..76f1ea1441 100644 Binary files a/source-code/Volo.Docs.SourceCode/Volo.Docs.SourceCode.zip and b/source-code/Volo.Docs.SourceCode/Volo.Docs.SourceCode.zip differ diff --git a/templates/app-nolayers/angular/package.json b/templates/app-nolayers/angular/package.json index c6f1d6d5f8..f2a0c03a3a 100644 --- a/templates/app-nolayers/angular/package.json +++ b/templates/app-nolayers/angular/package.json @@ -12,14 +12,14 @@ }, "private": true, "dependencies": { - "@abp/ng.account": "~8.0.0-rc.3", - "@abp/ng.components": "~8.0.0-rc.3", - "@abp/ng.core": "~8.0.0-rc.3", - "@abp/ng.oauth": "~8.0.0-rc.3", - "@abp/ng.identity": "~8.0.0-rc.3", - "@abp/ng.setting-management": "~8.0.0-rc.3", - "@abp/ng.tenant-management": "~8.0.0-rc.3", - "@abp/ng.theme.shared": "~8.0.0-rc.3", + "@abp/ng.account": "~8.0.0", + "@abp/ng.components": "~8.0.0", + "@abp/ng.core": "~8.0.0", + "@abp/ng.oauth": "~8.0.0", + "@abp/ng.identity": "~8.0.0", + "@abp/ng.setting-management": "~8.0.0", + "@abp/ng.tenant-management": "~8.0.0", + "@abp/ng.theme.shared": "~8.0.0", "@abp/ng.theme.lepton-x": "~3.0.0-rc.1", "@angular/animations": "~17.0.0", "@angular/common": "~17.0.0", @@ -33,7 +33,7 @@ "rxjs": "~7.8.0", "tslib": "^2.1.0", "bootstrap-icons": "~1.8.3", - "zone.js": "~0.13.0" + "zone.js": "~0.14.0" }, "devDependencies": { "@angular-devkit/build-angular": "~17.0.0", @@ -42,7 +42,7 @@ "@angular-eslint/eslint-plugin-template": "~17.0.0", "@angular-eslint/schematics": "~17.0.0", "@angular-eslint/template-parser": "~17.0.0", - "@abp/ng.schematics": "~8.0.0-rc.3", + "@abp/ng.schematics": "~8.0.0", "@angular/cli": "~17.0.0", "@angular/compiler-cli": "~17.0.0", "@angular/language-service": "~17.0.0", diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/Localization/MyProjectName/hr.json b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/Localization/MyProjectName/hr.json new file mode 100644 index 0000000000..01dddf22ad --- /dev/null +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/Localization/MyProjectName/hr.json @@ -0,0 +1,8 @@ +{ + "culture": "hr", + "texts": { + "Welcome_Title": "Dobrodošli", + "Welcome_Text": "Ovo je minimalistički jednoslojni predložak za pokretanje aplikacije za ABP Framework.", + "Menu:Home": "Dom" + } +} \ No newline at end of file diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Localization/MyProjectName/hr.json b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Localization/MyProjectName/hr.json new file mode 100644 index 0000000000..01dddf22ad --- /dev/null +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Localization/MyProjectName/hr.json @@ -0,0 +1,8 @@ +{ + "culture": "hr", + "texts": { + "Welcome_Title": "Dobrodošli", + "Welcome_Text": "Ovo je minimalistički jednoslojni predložak za pokretanje aplikacije za ABP Framework.", + "Menu:Home": "Dom" + } +} \ No newline at end of file diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Migrations/20231115065150_Initial.Designer.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Migrations/20231207053812_Initial.Designer.cs similarity index 99% rename from templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Migrations/20231115065150_Initial.Designer.cs rename to templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Migrations/20231207053812_Initial.Designer.cs index 55e4ed5121..333df53077 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Migrations/20231115065150_Initial.Designer.cs +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Migrations/20231207053812_Initial.Designer.cs @@ -13,7 +13,7 @@ using Volo.Abp.EntityFrameworkCore; namespace MyCompanyName.MyProjectName.Blazor.Server.Migrations { [DbContext(typeof(MyProjectNameDbContext))] - [Migration("20231115065150_Initial")] + [Migration("20231207053812_Initial")] partial class Initial { /// @@ -1081,6 +1081,10 @@ namespace MyCompanyName.MyProjectName.Blazor.Server.Migrations .ValueGeneratedOnAdd() .HasColumnType("uniqueidentifier"); + b.Property("ApplicationType") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + b.Property("ClientId") .HasMaxLength(100) .HasColumnType("nvarchar(100)"); @@ -1088,6 +1092,10 @@ namespace MyCompanyName.MyProjectName.Blazor.Server.Migrations b.Property("ClientSecret") .HasColumnType("nvarchar(max)"); + b.Property("ClientType") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + b.Property("ClientUri") .HasColumnType("nvarchar(max)"); @@ -1135,6 +1143,9 @@ namespace MyCompanyName.MyProjectName.Blazor.Server.Migrations .HasDefaultValue(false) .HasColumnName("IsDeleted"); + b.Property("JsonWebKeySet") + .HasColumnType("nvarchar(max)"); + b.Property("LastModificationTime") .HasColumnType("datetime2") .HasColumnName("LastModificationTime"); @@ -1161,9 +1172,8 @@ namespace MyCompanyName.MyProjectName.Blazor.Server.Migrations b.Property("Requirements") .HasColumnType("nvarchar(max)"); - b.Property("Type") - .HasMaxLength(50) - .HasColumnType("nvarchar(50)"); + b.Property("Settings") + .HasColumnType("nvarchar(max)"); b.HasKey("Id"); diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Migrations/20231115065150_Initial.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Migrations/20231207053812_Initial.cs similarity index 99% rename from templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Migrations/20231115065150_Initial.cs rename to templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Migrations/20231207053812_Initial.cs index 10e01ba747..e993702885 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Migrations/20231115065150_Initial.cs +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Migrations/20231207053812_Initial.cs @@ -374,17 +374,20 @@ namespace MyCompanyName.MyProjectName.Blazor.Server.Migrations columns: table => new { Id = table.Column(type: "uniqueidentifier", nullable: false), + ApplicationType = table.Column(type: "nvarchar(50)", maxLength: 50, nullable: true), ClientId = table.Column(type: "nvarchar(100)", maxLength: 100, nullable: true), ClientSecret = table.Column(type: "nvarchar(max)", nullable: true), + ClientType = table.Column(type: "nvarchar(50)", maxLength: 50, nullable: true), ConsentType = table.Column(type: "nvarchar(50)", maxLength: 50, nullable: true), DisplayName = table.Column(type: "nvarchar(max)", nullable: true), DisplayNames = table.Column(type: "nvarchar(max)", nullable: true), + JsonWebKeySet = table.Column(type: "nvarchar(max)", nullable: true), Permissions = table.Column(type: "nvarchar(max)", nullable: true), PostLogoutRedirectUris = table.Column(type: "nvarchar(max)", nullable: true), Properties = table.Column(type: "nvarchar(max)", nullable: true), RedirectUris = table.Column(type: "nvarchar(max)", nullable: true), Requirements = table.Column(type: "nvarchar(max)", nullable: true), - Type = table.Column(type: "nvarchar(50)", maxLength: 50, nullable: true), + Settings = table.Column(type: "nvarchar(max)", nullable: true), ClientUri = table.Column(type: "nvarchar(max)", nullable: true), LogoUri = table.Column(type: "nvarchar(max)", nullable: true), ExtraProperties = table.Column(type: "nvarchar(max)", nullable: false), diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Migrations/MyProjectNameDbContextModelSnapshot.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Migrations/MyProjectNameDbContextModelSnapshot.cs index 7e2a18a401..1def4a0ee9 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Migrations/MyProjectNameDbContextModelSnapshot.cs +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Migrations/MyProjectNameDbContextModelSnapshot.cs @@ -1078,6 +1078,10 @@ namespace MyCompanyName.MyProjectName.Blazor.Server.Migrations .ValueGeneratedOnAdd() .HasColumnType("uniqueidentifier"); + b.Property("ApplicationType") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + b.Property("ClientId") .HasMaxLength(100) .HasColumnType("nvarchar(100)"); @@ -1085,6 +1089,10 @@ namespace MyCompanyName.MyProjectName.Blazor.Server.Migrations b.Property("ClientSecret") .HasColumnType("nvarchar(max)"); + b.Property("ClientType") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + b.Property("ClientUri") .HasColumnType("nvarchar(max)"); @@ -1132,6 +1140,9 @@ namespace MyCompanyName.MyProjectName.Blazor.Server.Migrations .HasDefaultValue(false) .HasColumnName("IsDeleted"); + b.Property("JsonWebKeySet") + .HasColumnType("nvarchar(max)"); + b.Property("LastModificationTime") .HasColumnType("datetime2") .HasColumnName("LastModificationTime"); @@ -1158,9 +1169,8 @@ namespace MyCompanyName.MyProjectName.Blazor.Server.Migrations b.Property("Requirements") .HasColumnType("nvarchar(max)"); - b.Property("Type") - .HasMaxLength(50) - .HasColumnType("nvarchar(50)"); + b.Property("Settings") + .HasColumnType("nvarchar(max)"); b.HasKey("Id"); diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Client/wwwroot/global.css b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Client/wwwroot/global.css index 7b49ffd745..6179f21bff 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Client/wwwroot/global.css +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Client/wwwroot/global.css @@ -6,16 +6,17 @@ */:root{--bs-blue:#0d6efd;--bs-indigo:#6610f2;--bs-purple:#6f42c1;--bs-pink:#d63384;--bs-red:#dc3545;--bs-orange:#fd7e14;--bs-yellow:#ffc107;--bs-green:#198754;--bs-teal:#20c997;--bs-cyan:#0dcaf0;--bs-white:#fff;--bs-gray:#6c757d;--bs-gray-dark:#343a40;--bs-gray-100:#f8f9fa;--bs-gray-200:#e9ecef;--bs-gray-300:#dee2e6;--bs-gray-400:#ced4da;--bs-gray-500:#adb5bd;--bs-gray-600:#6c757d;--bs-gray-700:#495057;--bs-gray-800:#343a40;--bs-gray-900:#212529;--bs-primary:#0d6efd;--bs-secondary:#6c757d;--bs-success:#198754;--bs-info:#0dcaf0;--bs-warning:#ffc107;--bs-danger:#dc3545;--bs-light:#f8f9fa;--bs-dark:#212529;--bs-primary-rgb:13,110,253;--bs-secondary-rgb:108,117,125;--bs-success-rgb:25,135,84;--bs-info-rgb:13,202,240;--bs-warning-rgb:255,193,7;--bs-danger-rgb:220,53,69;--bs-light-rgb:248,249,250;--bs-dark-rgb:33,37,41;--bs-white-rgb:255,255,255;--bs-black-rgb:0,0,0;--bs-body-rgb:33,37,41;--bs-font-sans-serif:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--bs-font-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--bs-gradient:linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0));--bs-body-font-family:var(--bs-font-sans-serif);--bs-body-font-size:1rem;--bs-body-font-weight:400;--bs-body-line-height:1.5;--bs-body-color:#212529;--bs-body-bg:#fff}*,::after,::before{box-sizing:border-box}@media (prefers-reduced-motion:no-preference){:root{scroll-behavior:smooth}}body{margin:0;font-family:var(--bs-body-font-family);font-size:var(--bs-body-font-size);font-weight:var(--bs-body-font-weight);line-height:var(--bs-body-line-height);color:var(--bs-body-color);text-align:var(--bs-body-text-align);background-color:var(--bs-body-bg);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}hr{margin:1rem 0;color:inherit;background-color:currentColor;border:0;opacity:.25}hr:not([size]){height:1px}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2}.h1,h1{font-size:calc(1.375rem + 1.5vw)}@media (min-width:1200px){.h1,h1{font-size:2.5rem}}.h2,h2{font-size:calc(1.325rem + .9vw)}@media (min-width:1200px){.h2,h2{font-size:2rem}}.h3,h3{font-size:calc(1.3rem + .6vw)}@media (min-width:1200px){.h3,h3{font-size:1.75rem}}.h4,h4{font-size:calc(1.275rem + .3vw)}@media (min-width:1200px){.h4,h4{font-size:1.5rem}}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}p{margin-top:0;margin-bottom:1rem}abbr[data-bs-original-title],abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul{padding-left:2rem}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}.small,small{font-size:.875em}.mark,mark{padding:.2em;background-color:#fcf8e3}sub,sup{position:relative;font-size:.75em;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#0d6efd;text-decoration:underline}a:hover{color:#0a58ca}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:var(--bs-font-monospace);font-size:1em;direction:ltr;unicode-bidi:bidi-override}pre{display:block;margin-top:0;margin-bottom:1rem;overflow:auto;font-size:.875em}pre code{font-size:inherit;color:inherit;word-break:normal}code{font-size:.875em;color:#d63384;word-wrap:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:.875em;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:1em;font-weight:700}figure{margin:0 0 1rem}img,svg{vertical-align:middle}table{caption-side:bottom;border-collapse:collapse}caption{padding-top:.5rem;padding-bottom:.5rem;color:#6c757d;text-align:left}th{text-align:inherit;text-align:-webkit-match-parent}tbody,td,tfoot,th,thead,tr{border-color:inherit;border-style:solid;border-width:0}label{display:inline-block}button{border-radius:0}button:focus:not(:focus-visible){outline:0}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}select:disabled{opacity:1}[list]::-webkit-calendar-picker-indicator{display:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}::-moz-focus-inner{padding:0;border-style:none}textarea{resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{float:left;width:100%;padding:0;margin-bottom:.5rem;font-size:calc(1.275rem + .3vw);line-height:inherit}@media (min-width:1200px){legend{font-size:1.5rem}}legend+*{clear:left}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-text,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:textfield}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::file-selector-button{font:inherit}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}iframe{border:0}summary{display:list-item;cursor:pointer}progress{vertical-align:baseline}[hidden]{display:none!important}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:calc(1.625rem + 4.5vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-1{font-size:5rem}}.display-2{font-size:calc(1.575rem + 3.9vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-2{font-size:4.5rem}}.display-3{font-size:calc(1.525rem + 3.3vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-3{font-size:4rem}}.display-4{font-size:calc(1.475rem + 2.7vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-4{font-size:3.5rem}}.display-5{font-size:calc(1.425rem + 2.1vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-5{font-size:3rem}}.display-6{font-size:calc(1.375rem + 1.5vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-6{font-size:2.5rem}}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:.875em;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote>:last-child{margin-bottom:0}.blockquote-footer{margin-top:-1rem;margin-bottom:1rem;font-size:.875em;color:#6c757d}.blockquote-footer::before{content:"— "}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:.875em;color:#6c757d}.container,.container-fluid,.container-lg,.container-md,.container-sm,.container-xl,.container-xxl{width:100%;padding-right:var(--bs-gutter-x,.75rem);padding-left:var(--bs-gutter-x,.75rem);margin-right:auto;margin-left:auto}@media (min-width:576px){.container,.container-sm{max-width:540px}}@media (min-width:768px){.container,.container-md,.container-sm{max-width:720px}}@media (min-width:992px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1140px}}@media (min-width:1400px){.container,.container-lg,.container-md,.container-sm,.container-xl,.container-xxl{max-width:1320px}}.row{--bs-gutter-x:1.5rem;--bs-gutter-y:0;display:flex;flex-wrap:wrap;margin-top:calc(var(--bs-gutter-y) * -1);margin-right:calc(var(--bs-gutter-x) * -.5);margin-left:calc(var(--bs-gutter-x) * -.5)}.row>*{flex-shrink:0;width:100%;max-width:100%;padding-right:calc(var(--bs-gutter-x) * .5);padding-left:calc(var(--bs-gutter-x) * .5);margin-top:var(--bs-gutter-y)}.col{flex:1 0 0%}.row-cols-auto>*{flex:0 0 auto;width:auto}.row-cols-1>*{flex:0 0 auto;width:100%}.row-cols-2>*{flex:0 0 auto;width:50%}.row-cols-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-4>*{flex:0 0 auto;width:25%}.row-cols-5>*{flex:0 0 auto;width:20%}.row-cols-6>*{flex:0 0 auto;width:16.6666666667%}.col-auto{flex:0 0 auto;width:auto}.col-1{flex:0 0 auto;width:8.33333333%}.col-2{flex:0 0 auto;width:16.66666667%}.col-3{flex:0 0 auto;width:25%}.col-4{flex:0 0 auto;width:33.33333333%}.col-5{flex:0 0 auto;width:41.66666667%}.col-6{flex:0 0 auto;width:50%}.col-7{flex:0 0 auto;width:58.33333333%}.col-8{flex:0 0 auto;width:66.66666667%}.col-9{flex:0 0 auto;width:75%}.col-10{flex:0 0 auto;width:83.33333333%}.col-11{flex:0 0 auto;width:91.66666667%}.col-12{flex:0 0 auto;width:100%}.offset-1{margin-left:8.33333333%}.offset-2{margin-left:16.66666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.33333333%}.offset-5{margin-left:41.66666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.33333333%}.offset-8{margin-left:66.66666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.33333333%}.offset-11{margin-left:91.66666667%}.g-0,.gx-0{--bs-gutter-x:0}.g-0,.gy-0{--bs-gutter-y:0}.g-1,.gx-1{--bs-gutter-x:0.25rem}.g-1,.gy-1{--bs-gutter-y:0.25rem}.g-2,.gx-2{--bs-gutter-x:0.5rem}.g-2,.gy-2{--bs-gutter-y:0.5rem}.g-3,.gx-3{--bs-gutter-x:1rem}.g-3,.gy-3{--bs-gutter-y:1rem}.g-4,.gx-4{--bs-gutter-x:1.5rem}.g-4,.gy-4{--bs-gutter-y:1.5rem}.g-5,.gx-5{--bs-gutter-x:3rem}.g-5,.gy-5{--bs-gutter-y:3rem}@media (min-width:576px){.col-sm{flex:1 0 0%}.row-cols-sm-auto>*{flex:0 0 auto;width:auto}.row-cols-sm-1>*{flex:0 0 auto;width:100%}.row-cols-sm-2>*{flex:0 0 auto;width:50%}.row-cols-sm-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-sm-4>*{flex:0 0 auto;width:25%}.row-cols-sm-5>*{flex:0 0 auto;width:20%}.row-cols-sm-6>*{flex:0 0 auto;width:16.6666666667%}.col-sm-auto{flex:0 0 auto;width:auto}.col-sm-1{flex:0 0 auto;width:8.33333333%}.col-sm-2{flex:0 0 auto;width:16.66666667%}.col-sm-3{flex:0 0 auto;width:25%}.col-sm-4{flex:0 0 auto;width:33.33333333%}.col-sm-5{flex:0 0 auto;width:41.66666667%}.col-sm-6{flex:0 0 auto;width:50%}.col-sm-7{flex:0 0 auto;width:58.33333333%}.col-sm-8{flex:0 0 auto;width:66.66666667%}.col-sm-9{flex:0 0 auto;width:75%}.col-sm-10{flex:0 0 auto;width:83.33333333%}.col-sm-11{flex:0 0 auto;width:91.66666667%}.col-sm-12{flex:0 0 auto;width:100%}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.33333333%}.offset-sm-2{margin-left:16.66666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.33333333%}.offset-sm-5{margin-left:41.66666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.33333333%}.offset-sm-8{margin-left:66.66666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.33333333%}.offset-sm-11{margin-left:91.66666667%}.g-sm-0,.gx-sm-0{--bs-gutter-x:0}.g-sm-0,.gy-sm-0{--bs-gutter-y:0}.g-sm-1,.gx-sm-1{--bs-gutter-x:0.25rem}.g-sm-1,.gy-sm-1{--bs-gutter-y:0.25rem}.g-sm-2,.gx-sm-2{--bs-gutter-x:0.5rem}.g-sm-2,.gy-sm-2{--bs-gutter-y:0.5rem}.g-sm-3,.gx-sm-3{--bs-gutter-x:1rem}.g-sm-3,.gy-sm-3{--bs-gutter-y:1rem}.g-sm-4,.gx-sm-4{--bs-gutter-x:1.5rem}.g-sm-4,.gy-sm-4{--bs-gutter-y:1.5rem}.g-sm-5,.gx-sm-5{--bs-gutter-x:3rem}.g-sm-5,.gy-sm-5{--bs-gutter-y:3rem}}@media (min-width:768px){.col-md{flex:1 0 0%}.row-cols-md-auto>*{flex:0 0 auto;width:auto}.row-cols-md-1>*{flex:0 0 auto;width:100%}.row-cols-md-2>*{flex:0 0 auto;width:50%}.row-cols-md-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-md-4>*{flex:0 0 auto;width:25%}.row-cols-md-5>*{flex:0 0 auto;width:20%}.row-cols-md-6>*{flex:0 0 auto;width:16.6666666667%}.col-md-auto{flex:0 0 auto;width:auto}.col-md-1{flex:0 0 auto;width:8.33333333%}.col-md-2{flex:0 0 auto;width:16.66666667%}.col-md-3{flex:0 0 auto;width:25%}.col-md-4{flex:0 0 auto;width:33.33333333%}.col-md-5{flex:0 0 auto;width:41.66666667%}.col-md-6{flex:0 0 auto;width:50%}.col-md-7{flex:0 0 auto;width:58.33333333%}.col-md-8{flex:0 0 auto;width:66.66666667%}.col-md-9{flex:0 0 auto;width:75%}.col-md-10{flex:0 0 auto;width:83.33333333%}.col-md-11{flex:0 0 auto;width:91.66666667%}.col-md-12{flex:0 0 auto;width:100%}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.33333333%}.offset-md-2{margin-left:16.66666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.33333333%}.offset-md-5{margin-left:41.66666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.33333333%}.offset-md-8{margin-left:66.66666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.33333333%}.offset-md-11{margin-left:91.66666667%}.g-md-0,.gx-md-0{--bs-gutter-x:0}.g-md-0,.gy-md-0{--bs-gutter-y:0}.g-md-1,.gx-md-1{--bs-gutter-x:0.25rem}.g-md-1,.gy-md-1{--bs-gutter-y:0.25rem}.g-md-2,.gx-md-2{--bs-gutter-x:0.5rem}.g-md-2,.gy-md-2{--bs-gutter-y:0.5rem}.g-md-3,.gx-md-3{--bs-gutter-x:1rem}.g-md-3,.gy-md-3{--bs-gutter-y:1rem}.g-md-4,.gx-md-4{--bs-gutter-x:1.5rem}.g-md-4,.gy-md-4{--bs-gutter-y:1.5rem}.g-md-5,.gx-md-5{--bs-gutter-x:3rem}.g-md-5,.gy-md-5{--bs-gutter-y:3rem}}@media (min-width:992px){.col-lg{flex:1 0 0%}.row-cols-lg-auto>*{flex:0 0 auto;width:auto}.row-cols-lg-1>*{flex:0 0 auto;width:100%}.row-cols-lg-2>*{flex:0 0 auto;width:50%}.row-cols-lg-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-lg-4>*{flex:0 0 auto;width:25%}.row-cols-lg-5>*{flex:0 0 auto;width:20%}.row-cols-lg-6>*{flex:0 0 auto;width:16.6666666667%}.col-lg-auto{flex:0 0 auto;width:auto}.col-lg-1{flex:0 0 auto;width:8.33333333%}.col-lg-2{flex:0 0 auto;width:16.66666667%}.col-lg-3{flex:0 0 auto;width:25%}.col-lg-4{flex:0 0 auto;width:33.33333333%}.col-lg-5{flex:0 0 auto;width:41.66666667%}.col-lg-6{flex:0 0 auto;width:50%}.col-lg-7{flex:0 0 auto;width:58.33333333%}.col-lg-8{flex:0 0 auto;width:66.66666667%}.col-lg-9{flex:0 0 auto;width:75%}.col-lg-10{flex:0 0 auto;width:83.33333333%}.col-lg-11{flex:0 0 auto;width:91.66666667%}.col-lg-12{flex:0 0 auto;width:100%}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.33333333%}.offset-lg-2{margin-left:16.66666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.33333333%}.offset-lg-5{margin-left:41.66666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.33333333%}.offset-lg-8{margin-left:66.66666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.33333333%}.offset-lg-11{margin-left:91.66666667%}.g-lg-0,.gx-lg-0{--bs-gutter-x:0}.g-lg-0,.gy-lg-0{--bs-gutter-y:0}.g-lg-1,.gx-lg-1{--bs-gutter-x:0.25rem}.g-lg-1,.gy-lg-1{--bs-gutter-y:0.25rem}.g-lg-2,.gx-lg-2{--bs-gutter-x:0.5rem}.g-lg-2,.gy-lg-2{--bs-gutter-y:0.5rem}.g-lg-3,.gx-lg-3{--bs-gutter-x:1rem}.g-lg-3,.gy-lg-3{--bs-gutter-y:1rem}.g-lg-4,.gx-lg-4{--bs-gutter-x:1.5rem}.g-lg-4,.gy-lg-4{--bs-gutter-y:1.5rem}.g-lg-5,.gx-lg-5{--bs-gutter-x:3rem}.g-lg-5,.gy-lg-5{--bs-gutter-y:3rem}}@media (min-width:1200px){.col-xl{flex:1 0 0%}.row-cols-xl-auto>*{flex:0 0 auto;width:auto}.row-cols-xl-1>*{flex:0 0 auto;width:100%}.row-cols-xl-2>*{flex:0 0 auto;width:50%}.row-cols-xl-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-xl-4>*{flex:0 0 auto;width:25%}.row-cols-xl-5>*{flex:0 0 auto;width:20%}.row-cols-xl-6>*{flex:0 0 auto;width:16.6666666667%}.col-xl-auto{flex:0 0 auto;width:auto}.col-xl-1{flex:0 0 auto;width:8.33333333%}.col-xl-2{flex:0 0 auto;width:16.66666667%}.col-xl-3{flex:0 0 auto;width:25%}.col-xl-4{flex:0 0 auto;width:33.33333333%}.col-xl-5{flex:0 0 auto;width:41.66666667%}.col-xl-6{flex:0 0 auto;width:50%}.col-xl-7{flex:0 0 auto;width:58.33333333%}.col-xl-8{flex:0 0 auto;width:66.66666667%}.col-xl-9{flex:0 0 auto;width:75%}.col-xl-10{flex:0 0 auto;width:83.33333333%}.col-xl-11{flex:0 0 auto;width:91.66666667%}.col-xl-12{flex:0 0 auto;width:100%}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.33333333%}.offset-xl-2{margin-left:16.66666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.33333333%}.offset-xl-5{margin-left:41.66666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.33333333%}.offset-xl-8{margin-left:66.66666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.33333333%}.offset-xl-11{margin-left:91.66666667%}.g-xl-0,.gx-xl-0{--bs-gutter-x:0}.g-xl-0,.gy-xl-0{--bs-gutter-y:0}.g-xl-1,.gx-xl-1{--bs-gutter-x:0.25rem}.g-xl-1,.gy-xl-1{--bs-gutter-y:0.25rem}.g-xl-2,.gx-xl-2{--bs-gutter-x:0.5rem}.g-xl-2,.gy-xl-2{--bs-gutter-y:0.5rem}.g-xl-3,.gx-xl-3{--bs-gutter-x:1rem}.g-xl-3,.gy-xl-3{--bs-gutter-y:1rem}.g-xl-4,.gx-xl-4{--bs-gutter-x:1.5rem}.g-xl-4,.gy-xl-4{--bs-gutter-y:1.5rem}.g-xl-5,.gx-xl-5{--bs-gutter-x:3rem}.g-xl-5,.gy-xl-5{--bs-gutter-y:3rem}}@media (min-width:1400px){.col-xxl{flex:1 0 0%}.row-cols-xxl-auto>*{flex:0 0 auto;width:auto}.row-cols-xxl-1>*{flex:0 0 auto;width:100%}.row-cols-xxl-2>*{flex:0 0 auto;width:50%}.row-cols-xxl-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-xxl-4>*{flex:0 0 auto;width:25%}.row-cols-xxl-5>*{flex:0 0 auto;width:20%}.row-cols-xxl-6>*{flex:0 0 auto;width:16.6666666667%}.col-xxl-auto{flex:0 0 auto;width:auto}.col-xxl-1{flex:0 0 auto;width:8.33333333%}.col-xxl-2{flex:0 0 auto;width:16.66666667%}.col-xxl-3{flex:0 0 auto;width:25%}.col-xxl-4{flex:0 0 auto;width:33.33333333%}.col-xxl-5{flex:0 0 auto;width:41.66666667%}.col-xxl-6{flex:0 0 auto;width:50%}.col-xxl-7{flex:0 0 auto;width:58.33333333%}.col-xxl-8{flex:0 0 auto;width:66.66666667%}.col-xxl-9{flex:0 0 auto;width:75%}.col-xxl-10{flex:0 0 auto;width:83.33333333%}.col-xxl-11{flex:0 0 auto;width:91.66666667%}.col-xxl-12{flex:0 0 auto;width:100%}.offset-xxl-0{margin-left:0}.offset-xxl-1{margin-left:8.33333333%}.offset-xxl-2{margin-left:16.66666667%}.offset-xxl-3{margin-left:25%}.offset-xxl-4{margin-left:33.33333333%}.offset-xxl-5{margin-left:41.66666667%}.offset-xxl-6{margin-left:50%}.offset-xxl-7{margin-left:58.33333333%}.offset-xxl-8{margin-left:66.66666667%}.offset-xxl-9{margin-left:75%}.offset-xxl-10{margin-left:83.33333333%}.offset-xxl-11{margin-left:91.66666667%}.g-xxl-0,.gx-xxl-0{--bs-gutter-x:0}.g-xxl-0,.gy-xxl-0{--bs-gutter-y:0}.g-xxl-1,.gx-xxl-1{--bs-gutter-x:0.25rem}.g-xxl-1,.gy-xxl-1{--bs-gutter-y:0.25rem}.g-xxl-2,.gx-xxl-2{--bs-gutter-x:0.5rem}.g-xxl-2,.gy-xxl-2{--bs-gutter-y:0.5rem}.g-xxl-3,.gx-xxl-3{--bs-gutter-x:1rem}.g-xxl-3,.gy-xxl-3{--bs-gutter-y:1rem}.g-xxl-4,.gx-xxl-4{--bs-gutter-x:1.5rem}.g-xxl-4,.gy-xxl-4{--bs-gutter-y:1.5rem}.g-xxl-5,.gx-xxl-5{--bs-gutter-x:3rem}.g-xxl-5,.gy-xxl-5{--bs-gutter-y:3rem}}.table{--bs-table-bg:transparent;--bs-table-accent-bg:transparent;--bs-table-striped-color:#212529;--bs-table-striped-bg:rgba(0, 0, 0, 0.05);--bs-table-active-color:#212529;--bs-table-active-bg:rgba(0, 0, 0, 0.1);--bs-table-hover-color:#212529;--bs-table-hover-bg:rgba(0, 0, 0, 0.075);width:100%;margin-bottom:1rem;color:#212529;vertical-align:top;border-color:#dee2e6}.table>:not(caption)>*>*{padding:.5rem .5rem;background-color:var(--bs-table-bg);border-bottom-width:1px;box-shadow:inset 0 0 0 9999px var(--bs-table-accent-bg)}.table>tbody{vertical-align:inherit}.table>thead{vertical-align:bottom}.table>:not(:last-child)>:last-child>*{border-bottom-color:currentColor}.caption-top{caption-side:top}.table-sm>:not(caption)>*>*{padding:.25rem .25rem}.table-bordered>:not(caption)>*{border-width:1px 0}.table-bordered>:not(caption)>*>*{border-width:0 1px}.table-borderless>:not(caption)>*>*{border-bottom-width:0}.table-striped>tbody>tr:nth-of-type(odd){--bs-table-accent-bg:var(--bs-table-striped-bg);color:var(--bs-table-striped-color)}.table-active{--bs-table-accent-bg:var(--bs-table-active-bg);color:var(--bs-table-active-color)}.table-hover>tbody>tr:hover{--bs-table-accent-bg:var(--bs-table-hover-bg);color:var(--bs-table-hover-color)}.table-primary{--bs-table-bg:#cfe2ff;--bs-table-striped-bg:#c5d7f2;--bs-table-striped-color:#000;--bs-table-active-bg:#bacbe6;--bs-table-active-color:#000;--bs-table-hover-bg:#bfd1ec;--bs-table-hover-color:#000;color:#000;border-color:#bacbe6}.table-secondary{--bs-table-bg:#e2e3e5;--bs-table-striped-bg:#d7d8da;--bs-table-striped-color:#000;--bs-table-active-bg:#cbccce;--bs-table-active-color:#000;--bs-table-hover-bg:#d1d2d4;--bs-table-hover-color:#000;color:#000;border-color:#cbccce}.table-success{--bs-table-bg:#d1e7dd;--bs-table-striped-bg:#c7dbd2;--bs-table-striped-color:#000;--bs-table-active-bg:#bcd0c7;--bs-table-active-color:#000;--bs-table-hover-bg:#c1d6cc;--bs-table-hover-color:#000;color:#000;border-color:#bcd0c7}.table-info{--bs-table-bg:#cff4fc;--bs-table-striped-bg:#c5e8ef;--bs-table-striped-color:#000;--bs-table-active-bg:#badce3;--bs-table-active-color:#000;--bs-table-hover-bg:#bfe2e9;--bs-table-hover-color:#000;color:#000;border-color:#badce3}.table-warning{--bs-table-bg:#fff3cd;--bs-table-striped-bg:#f2e7c3;--bs-table-striped-color:#000;--bs-table-active-bg:#e6dbb9;--bs-table-active-color:#000;--bs-table-hover-bg:#ece1be;--bs-table-hover-color:#000;color:#000;border-color:#e6dbb9}.table-danger{--bs-table-bg:#f8d7da;--bs-table-striped-bg:#eccccf;--bs-table-striped-color:#000;--bs-table-active-bg:#dfc2c4;--bs-table-active-color:#000;--bs-table-hover-bg:#e5c7ca;--bs-table-hover-color:#000;color:#000;border-color:#dfc2c4}.table-light{--bs-table-bg:#f8f9fa;--bs-table-striped-bg:#ecedee;--bs-table-striped-color:#000;--bs-table-active-bg:#dfe0e1;--bs-table-active-color:#000;--bs-table-hover-bg:#e5e6e7;--bs-table-hover-color:#000;color:#000;border-color:#dfe0e1}.table-dark{--bs-table-bg:#212529;--bs-table-striped-bg:#2c3034;--bs-table-striped-color:#fff;--bs-table-active-bg:#373b3e;--bs-table-active-color:#fff;--bs-table-hover-bg:#323539;--bs-table-hover-color:#fff;color:#fff;border-color:#373b3e}.table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch}@media (max-width:575.98px){.table-responsive-sm{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:767.98px){.table-responsive-md{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:991.98px){.table-responsive-lg{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:1199.98px){.table-responsive-xl{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:1399.98px){.table-responsive-xxl{overflow-x:auto;-webkit-overflow-scrolling:touch}}.form-label{margin-bottom:.5rem}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem}.form-text{margin-top:.25rem;font-size:.875em;color:#6c757d}.form-control{display:block;width:100%;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#212529;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control[type=file]{overflow:hidden}.form-control[type=file]:not(:disabled):not([readonly]){cursor:pointer}.form-control:focus{color:#212529;background-color:#fff;border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.form-control::-webkit-date-and-time-value{height:1.5em}.form-control::-moz-placeholder{color:#6c757d;opacity:1}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}.form-control::file-selector-button{padding:.375rem .75rem;margin:-.375rem -.75rem;-webkit-margin-end:.75rem;margin-inline-end:.75rem;color:#212529;background-color:#e9ecef;pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:1px;border-radius:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control::file-selector-button{transition:none}}.form-control:hover:not(:disabled):not([readonly])::file-selector-button{background-color:#dde0e3}.form-control::-webkit-file-upload-button{padding:.375rem .75rem;margin:-.375rem -.75rem;-webkit-margin-end:.75rem;margin-inline-end:.75rem;color:#212529;background-color:#e9ecef;pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:1px;border-radius:0;-webkit-transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control::-webkit-file-upload-button{-webkit-transition:none;transition:none}}.form-control:hover:not(:disabled):not([readonly])::-webkit-file-upload-button{background-color:#dde0e3}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;line-height:1.5;color:#212529;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{min-height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;font-size:.875rem;border-radius:.2rem}.form-control-sm::file-selector-button{padding:.25rem .5rem;margin:-.25rem -.5rem;-webkit-margin-end:.5rem;margin-inline-end:.5rem}.form-control-sm::-webkit-file-upload-button{padding:.25rem .5rem;margin:-.25rem -.5rem;-webkit-margin-end:.5rem;margin-inline-end:.5rem}.form-control-lg{min-height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.25rem;border-radius:.3rem}.form-control-lg::file-selector-button{padding:.5rem 1rem;margin:-.5rem -1rem;-webkit-margin-end:1rem;margin-inline-end:1rem}.form-control-lg::-webkit-file-upload-button{padding:.5rem 1rem;margin:-.5rem -1rem;-webkit-margin-end:1rem;margin-inline-end:1rem}textarea.form-control{min-height:calc(1.5em + .75rem + 2px)}textarea.form-control-sm{min-height:calc(1.5em + .5rem + 2px)}textarea.form-control-lg{min-height:calc(1.5em + 1rem + 2px)}.form-control-color{width:3rem;height:auto;padding:.375rem}.form-control-color:not(:disabled):not([readonly]){cursor:pointer}.form-control-color::-moz-color-swatch{height:1.5em;border-radius:.25rem}.form-control-color::-webkit-color-swatch{height:1.5em;border-radius:.25rem}.form-select{display:block;width:100%;padding:.375rem 2.25rem .375rem .75rem;-moz-padding-start:calc(0.75rem - 3px);font-size:1rem;font-weight:400;line-height:1.5;color:#212529;background-color:#fff;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right .75rem center;background-size:16px 12px;border:1px solid #ced4da;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.form-select{transition:none}}.form-select:focus{border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.form-select[multiple],.form-select[size]:not([size="1"]){padding-right:.75rem;background-image:none}.form-select:disabled{background-color:#e9ecef}.form-select:-moz-focusring{color:transparent;text-shadow:0 0 0 #212529}.form-select-sm{padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem}.form-select-lg{padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem}.form-check{display:block;min-height:1.5rem;padding-left:1.5em;margin-bottom:.125rem}.form-check .form-check-input{float:left;margin-left:-1.5em}.form-check-input{width:1em;height:1em;margin-top:.25em;vertical-align:top;background-color:#fff;background-repeat:no-repeat;background-position:center;background-size:contain;border:1px solid rgba(0,0,0,.25);-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-print-color-adjust:exact;color-adjust:exact}.form-check-input[type=checkbox]{border-radius:.25em}.form-check-input[type=radio]{border-radius:50%}.form-check-input:active{filter:brightness(90%)}.form-check-input:focus{border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.form-check-input:checked{background-color:#0d6efd;border-color:#0d6efd}.form-check-input:checked[type=checkbox]{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10l3 3l6-6'/%3e%3c/svg%3e")}.form-check-input:checked[type=radio]{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23fff'/%3e%3c/svg%3e")}.form-check-input[type=checkbox]:indeterminate{background-color:#0d6efd;border-color:#0d6efd;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e")}.form-check-input:disabled{pointer-events:none;filter:none;opacity:.5}.form-check-input:disabled~.form-check-label,.form-check-input[disabled]~.form-check-label{opacity:.5}.form-switch{padding-left:2.5em}.form-switch .form-check-input{width:2em;margin-left:-2.5em;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%280, 0, 0, 0.25%29'/%3e%3c/svg%3e");background-position:left center;border-radius:2em;transition:background-position .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-switch .form-check-input{transition:none}}.form-switch .form-check-input:focus{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%2386b7fe'/%3e%3c/svg%3e")}.form-switch .form-check-input:checked{background-position:right center;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e")}.form-check-inline{display:inline-block;margin-right:1rem}.btn-check{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.btn-check:disabled+.btn,.btn-check[disabled]+.btn{pointer-events:none;filter:none;opacity:.65}.form-range{width:100%;height:1.5rem;padding:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.form-range:focus{outline:0}.form-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem rgba(13,110,253,.25)}.form-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem rgba(13,110,253,.25)}.form-range::-moz-focus-outer{border:0}.form-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#0d6efd;border:0;border-radius:1rem;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.form-range::-webkit-slider-thumb{-webkit-transition:none;transition:none}}.form-range::-webkit-slider-thumb:active{background-color:#b6d4fe}.form-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.form-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#0d6efd;border:0;border-radius:1rem;-moz-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.form-range::-moz-range-thumb{-moz-transition:none;transition:none}}.form-range::-moz-range-thumb:active{background-color:#b6d4fe}.form-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.form-range:disabled{pointer-events:none}.form-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}.form-range:disabled::-moz-range-thumb{background-color:#adb5bd}.form-floating{position:relative}.form-floating>.form-control,.form-floating>.form-select{height:calc(3.5rem + 2px);line-height:1.25}.form-floating>label{position:absolute;top:0;left:0;height:100%;padding:1rem .75rem;pointer-events:none;border:1px solid transparent;transform-origin:0 0;transition:opacity .1s ease-in-out,transform .1s ease-in-out}@media (prefers-reduced-motion:reduce){.form-floating>label{transition:none}}.form-floating>.form-control{padding:1rem .75rem}.form-floating>.form-control::-moz-placeholder{color:transparent}.form-floating>.form-control::placeholder{color:transparent}.form-floating>.form-control:not(:-moz-placeholder-shown){padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:focus,.form-floating>.form-control:not(:placeholder-shown){padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:-webkit-autofill{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-select{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:not(:-moz-placeholder-shown)~label{opacity:.65;transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.form-floating>.form-control:focus~label,.form-floating>.form-control:not(:placeholder-shown)~label,.form-floating>.form-select~label{opacity:.65;transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.form-floating>.form-control:-webkit-autofill~label{opacity:.65;transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.input-group{position:relative;display:flex;flex-wrap:wrap;align-items:stretch;width:100%}.input-group>.form-control,.input-group>.form-select{position:relative;flex:1 1 auto;width:1%;min-width:0}.input-group>.form-control:focus,.input-group>.form-select:focus{z-index:3}.input-group .btn{position:relative;z-index:2}.input-group .btn:focus{z-index:3}.input-group-text{display:flex;align-items:center;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-lg>.btn,.input-group-lg>.form-control,.input-group-lg>.form-select,.input-group-lg>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;border-radius:.3rem}.input-group-sm>.btn,.input-group-sm>.form-control,.input-group-sm>.form-select,.input-group-sm>.input-group-text{padding:.25rem .5rem;font-size:.875rem;border-radius:.2rem}.input-group-lg>.form-select,.input-group-sm>.form-select{padding-right:3rem}.input-group:not(.has-validation)>.dropdown-toggle:nth-last-child(n+3),.input-group:not(.has-validation)>:not(:last-child):not(.dropdown-toggle):not(.dropdown-menu){border-top-right-radius:0;border-bottom-right-radius:0}.input-group.has-validation>.dropdown-toggle:nth-last-child(n+4),.input-group.has-validation>:nth-last-child(n+3):not(.dropdown-toggle):not(.dropdown-menu){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>:not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback){margin-left:-1px;border-top-left-radius:0;border-bottom-left-radius:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:.875em;color:#198754}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;color:#fff;background-color:rgba(25,135,84,.9);border-radius:.25rem}.is-valid~.valid-feedback,.is-valid~.valid-tooltip,.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip{display:block}.form-control.is-valid,.was-validated .form-control:valid{border-color:#198754;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:#198754;box-shadow:0 0 0 .25rem rgba(25,135,84,.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.form-select.is-valid,.was-validated .form-select:valid{border-color:#198754}.form-select.is-valid:not([multiple]):not([size]),.form-select.is-valid:not([multiple])[size="1"],.was-validated .form-select:valid:not([multiple]):not([size]),.was-validated .form-select:valid:not([multiple])[size="1"]{padding-right:4.125rem;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e"),url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(.75em + .375rem) calc(.75em + .375rem)}.form-select.is-valid:focus,.was-validated .form-select:valid:focus{border-color:#198754;box-shadow:0 0 0 .25rem rgba(25,135,84,.25)}.form-check-input.is-valid,.was-validated .form-check-input:valid{border-color:#198754}.form-check-input.is-valid:checked,.was-validated .form-check-input:valid:checked{background-color:#198754}.form-check-input.is-valid:focus,.was-validated .form-check-input:valid:focus{box-shadow:0 0 0 .25rem rgba(25,135,84,.25)}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#198754}.form-check-inline .form-check-input~.valid-feedback{margin-left:.5em}.input-group .form-control.is-valid,.input-group .form-select.is-valid,.was-validated .input-group .form-control:valid,.was-validated .input-group .form-select:valid{z-index:1}.input-group .form-control.is-valid:focus,.input-group .form-select.is-valid:focus,.was-validated .input-group .form-control:valid:focus,.was-validated .input-group .form-select:valid:focus{z-index:3}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:.875em;color:#dc3545}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;color:#fff;background-color:rgba(220,53,69,.9);border-radius:.25rem}.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip,.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip{display:block}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:#dc3545;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .25rem rgba(220,53,69,.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.form-select.is-invalid,.was-validated .form-select:invalid{border-color:#dc3545}.form-select.is-invalid:not([multiple]):not([size]),.form-select.is-invalid:not([multiple])[size="1"],.was-validated .form-select:invalid:not([multiple]):not([size]),.was-validated .form-select:invalid:not([multiple])[size="1"]{padding-right:4.125rem;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e"),url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(.75em + .375rem) calc(.75em + .375rem)}.form-select.is-invalid:focus,.was-validated .form-select:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .25rem rgba(220,53,69,.25)}.form-check-input.is-invalid,.was-validated .form-check-input:invalid{border-color:#dc3545}.form-check-input.is-invalid:checked,.was-validated .form-check-input:invalid:checked{background-color:#dc3545}.form-check-input.is-invalid:focus,.was-validated .form-check-input:invalid:focus{box-shadow:0 0 0 .25rem rgba(220,53,69,.25)}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#dc3545}.form-check-inline .form-check-input~.invalid-feedback{margin-left:.5em}.input-group .form-control.is-invalid,.input-group .form-select.is-invalid,.was-validated .input-group .form-control:invalid,.was-validated .input-group .form-select:invalid{z-index:2}.input-group .form-control.is-invalid:focus,.input-group .form-select.is-invalid:focus,.was-validated .input-group .form-control:invalid:focus,.was-validated .input-group .form-select:invalid:focus{z-index:3}.btn{display:inline-block;font-weight:400;line-height:1.5;color:#212529;text-align:center;text-decoration:none;vertical-align:middle;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:#212529}.btn-check:focus+.btn,.btn:focus{outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.btn.disabled,.btn:disabled,fieldset:disabled .btn{pointer-events:none;opacity:.65}.btn-primary{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.btn-primary:hover{color:#fff;background-color:#0b5ed7;border-color:#0a58ca}.btn-check:focus+.btn-primary,.btn-primary:focus{color:#fff;background-color:#0b5ed7;border-color:#0a58ca;box-shadow:0 0 0 .25rem rgba(49,132,253,.5)}.btn-check:active+.btn-primary,.btn-check:checked+.btn-primary,.btn-primary.active,.btn-primary:active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#0a58ca;border-color:#0a53be}.btn-check:active+.btn-primary:focus,.btn-check:checked+.btn-primary:focus,.btn-primary.active:focus,.btn-primary:active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(49,132,253,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:hover{color:#fff;background-color:#5c636a;border-color:#565e64}.btn-check:focus+.btn-secondary,.btn-secondary:focus{color:#fff;background-color:#5c636a;border-color:#565e64;box-shadow:0 0 0 .25rem rgba(130,138,145,.5)}.btn-check:active+.btn-secondary,.btn-check:checked+.btn-secondary,.btn-secondary.active,.btn-secondary:active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#565e64;border-color:#51585e}.btn-check:active+.btn-secondary:focus,.btn-check:checked+.btn-secondary:focus,.btn-secondary.active:focus,.btn-secondary:active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(130,138,145,.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-success{color:#fff;background-color:#198754;border-color:#198754}.btn-success:hover{color:#fff;background-color:#157347;border-color:#146c43}.btn-check:focus+.btn-success,.btn-success:focus{color:#fff;background-color:#157347;border-color:#146c43;box-shadow:0 0 0 .25rem rgba(60,153,110,.5)}.btn-check:active+.btn-success,.btn-check:checked+.btn-success,.btn-success.active,.btn-success:active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#146c43;border-color:#13653f}.btn-check:active+.btn-success:focus,.btn-check:checked+.btn-success:focus,.btn-success.active:focus,.btn-success:active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(60,153,110,.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#198754;border-color:#198754}.btn-info{color:#000;background-color:#0dcaf0;border-color:#0dcaf0}.btn-info:hover{color:#000;background-color:#31d2f2;border-color:#25cff2}.btn-check:focus+.btn-info,.btn-info:focus{color:#000;background-color:#31d2f2;border-color:#25cff2;box-shadow:0 0 0 .25rem rgba(11,172,204,.5)}.btn-check:active+.btn-info,.btn-check:checked+.btn-info,.btn-info.active,.btn-info:active,.show>.btn-info.dropdown-toggle{color:#000;background-color:#3dd5f3;border-color:#25cff2}.btn-check:active+.btn-info:focus,.btn-check:checked+.btn-info:focus,.btn-info.active:focus,.btn-info:active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(11,172,204,.5)}.btn-info.disabled,.btn-info:disabled{color:#000;background-color:#0dcaf0;border-color:#0dcaf0}.btn-warning{color:#000;background-color:#ffc107;border-color:#ffc107}.btn-warning:hover{color:#000;background-color:#ffca2c;border-color:#ffc720}.btn-check:focus+.btn-warning,.btn-warning:focus{color:#000;background-color:#ffca2c;border-color:#ffc720;box-shadow:0 0 0 .25rem rgba(217,164,6,.5)}.btn-check:active+.btn-warning,.btn-check:checked+.btn-warning,.btn-warning.active,.btn-warning:active,.show>.btn-warning.dropdown-toggle{color:#000;background-color:#ffcd39;border-color:#ffc720}.btn-check:active+.btn-warning:focus,.btn-check:checked+.btn-warning:focus,.btn-warning.active:focus,.btn-warning:active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(217,164,6,.5)}.btn-warning.disabled,.btn-warning:disabled{color:#000;background-color:#ffc107;border-color:#ffc107}.btn-danger{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:hover{color:#fff;background-color:#bb2d3b;border-color:#b02a37}.btn-check:focus+.btn-danger,.btn-danger:focus{color:#fff;background-color:#bb2d3b;border-color:#b02a37;box-shadow:0 0 0 .25rem rgba(225,83,97,.5)}.btn-check:active+.btn-danger,.btn-check:checked+.btn-danger,.btn-danger.active,.btn-danger:active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#b02a37;border-color:#a52834}.btn-check:active+.btn-danger:focus,.btn-check:checked+.btn-danger:focus,.btn-danger.active:focus,.btn-danger:active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(225,83,97,.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-light{color:#000;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:hover{color:#000;background-color:#f9fafb;border-color:#f9fafb}.btn-check:focus+.btn-light,.btn-light:focus{color:#000;background-color:#f9fafb;border-color:#f9fafb;box-shadow:0 0 0 .25rem rgba(211,212,213,.5)}.btn-check:active+.btn-light,.btn-check:checked+.btn-light,.btn-light.active,.btn-light:active,.show>.btn-light.dropdown-toggle{color:#000;background-color:#f9fafb;border-color:#f9fafb}.btn-check:active+.btn-light:focus,.btn-check:checked+.btn-light:focus,.btn-light.active:focus,.btn-light:active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(211,212,213,.5)}.btn-light.disabled,.btn-light:disabled{color:#000;background-color:#f8f9fa;border-color:#f8f9fa}.btn-dark{color:#fff;background-color:#212529;border-color:#212529}.btn-dark:hover{color:#fff;background-color:#1c1f23;border-color:#1a1e21}.btn-check:focus+.btn-dark,.btn-dark:focus{color:#fff;background-color:#1c1f23;border-color:#1a1e21;box-shadow:0 0 0 .25rem rgba(66,70,73,.5)}.btn-check:active+.btn-dark,.btn-check:checked+.btn-dark,.btn-dark.active,.btn-dark:active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1a1e21;border-color:#191c1f}.btn-check:active+.btn-dark:focus,.btn-check:checked+.btn-dark:focus,.btn-dark.active:focus,.btn-dark:active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(66,70,73,.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#212529;border-color:#212529}.btn-outline-primary{color:#0d6efd;border-color:#0d6efd}.btn-outline-primary:hover{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.btn-check:focus+.btn-outline-primary,.btn-outline-primary:focus{box-shadow:0 0 0 .25rem rgba(13,110,253,.5)}.btn-check:active+.btn-outline-primary,.btn-check:checked+.btn-outline-primary,.btn-outline-primary.active,.btn-outline-primary.dropdown-toggle.show,.btn-outline-primary:active{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.btn-check:active+.btn-outline-primary:focus,.btn-check:checked+.btn-outline-primary:focus,.btn-outline-primary.active:focus,.btn-outline-primary.dropdown-toggle.show:focus,.btn-outline-primary:active:focus{box-shadow:0 0 0 .25rem rgba(13,110,253,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#0d6efd;background-color:transparent}.btn-outline-secondary{color:#6c757d;border-color:#6c757d}.btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-check:focus+.btn-outline-secondary,.btn-outline-secondary:focus{box-shadow:0 0 0 .25rem rgba(108,117,125,.5)}.btn-check:active+.btn-outline-secondary,.btn-check:checked+.btn-outline-secondary,.btn-outline-secondary.active,.btn-outline-secondary.dropdown-toggle.show,.btn-outline-secondary:active{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-check:active+.btn-outline-secondary:focus,.btn-check:checked+.btn-outline-secondary:focus,.btn-outline-secondary.active:focus,.btn-outline-secondary.dropdown-toggle.show:focus,.btn-outline-secondary:active:focus{box-shadow:0 0 0 .25rem rgba(108,117,125,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#6c757d;background-color:transparent}.btn-outline-success{color:#198754;border-color:#198754}.btn-outline-success:hover{color:#fff;background-color:#198754;border-color:#198754}.btn-check:focus+.btn-outline-success,.btn-outline-success:focus{box-shadow:0 0 0 .25rem rgba(25,135,84,.5)}.btn-check:active+.btn-outline-success,.btn-check:checked+.btn-outline-success,.btn-outline-success.active,.btn-outline-success.dropdown-toggle.show,.btn-outline-success:active{color:#fff;background-color:#198754;border-color:#198754}.btn-check:active+.btn-outline-success:focus,.btn-check:checked+.btn-outline-success:focus,.btn-outline-success.active:focus,.btn-outline-success.dropdown-toggle.show:focus,.btn-outline-success:active:focus{box-shadow:0 0 0 .25rem rgba(25,135,84,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#198754;background-color:transparent}.btn-outline-info{color:#0dcaf0;border-color:#0dcaf0}.btn-outline-info:hover{color:#000;background-color:#0dcaf0;border-color:#0dcaf0}.btn-check:focus+.btn-outline-info,.btn-outline-info:focus{box-shadow:0 0 0 .25rem rgba(13,202,240,.5)}.btn-check:active+.btn-outline-info,.btn-check:checked+.btn-outline-info,.btn-outline-info.active,.btn-outline-info.dropdown-toggle.show,.btn-outline-info:active{color:#000;background-color:#0dcaf0;border-color:#0dcaf0}.btn-check:active+.btn-outline-info:focus,.btn-check:checked+.btn-outline-info:focus,.btn-outline-info.active:focus,.btn-outline-info.dropdown-toggle.show:focus,.btn-outline-info:active:focus{box-shadow:0 0 0 .25rem rgba(13,202,240,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#0dcaf0;background-color:transparent}.btn-outline-warning{color:#ffc107;border-color:#ffc107}.btn-outline-warning:hover{color:#000;background-color:#ffc107;border-color:#ffc107}.btn-check:focus+.btn-outline-warning,.btn-outline-warning:focus{box-shadow:0 0 0 .25rem rgba(255,193,7,.5)}.btn-check:active+.btn-outline-warning,.btn-check:checked+.btn-outline-warning,.btn-outline-warning.active,.btn-outline-warning.dropdown-toggle.show,.btn-outline-warning:active{color:#000;background-color:#ffc107;border-color:#ffc107}.btn-check:active+.btn-outline-warning:focus,.btn-check:checked+.btn-outline-warning:focus,.btn-outline-warning.active:focus,.btn-outline-warning.dropdown-toggle.show:focus,.btn-outline-warning:active:focus{box-shadow:0 0 0 .25rem rgba(255,193,7,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffc107;background-color:transparent}.btn-outline-danger{color:#dc3545;border-color:#dc3545}.btn-outline-danger:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-check:focus+.btn-outline-danger,.btn-outline-danger:focus{box-shadow:0 0 0 .25rem rgba(220,53,69,.5)}.btn-check:active+.btn-outline-danger,.btn-check:checked+.btn-outline-danger,.btn-outline-danger.active,.btn-outline-danger.dropdown-toggle.show,.btn-outline-danger:active{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-check:active+.btn-outline-danger:focus,.btn-check:checked+.btn-outline-danger:focus,.btn-outline-danger.active:focus,.btn-outline-danger.dropdown-toggle.show:focus,.btn-outline-danger:active:focus{box-shadow:0 0 0 .25rem rgba(220,53,69,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#dc3545;background-color:transparent}.btn-outline-light{color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:hover{color:#000;background-color:#f8f9fa;border-color:#f8f9fa}.btn-check:focus+.btn-outline-light,.btn-outline-light:focus{box-shadow:0 0 0 .25rem rgba(248,249,250,.5)}.btn-check:active+.btn-outline-light,.btn-check:checked+.btn-outline-light,.btn-outline-light.active,.btn-outline-light.dropdown-toggle.show,.btn-outline-light:active{color:#000;background-color:#f8f9fa;border-color:#f8f9fa}.btn-check:active+.btn-outline-light:focus,.btn-check:checked+.btn-outline-light:focus,.btn-outline-light.active:focus,.btn-outline-light.dropdown-toggle.show:focus,.btn-outline-light:active:focus{box-shadow:0 0 0 .25rem rgba(248,249,250,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:transparent}.btn-outline-dark{color:#212529;border-color:#212529}.btn-outline-dark:hover{color:#fff;background-color:#212529;border-color:#212529}.btn-check:focus+.btn-outline-dark,.btn-outline-dark:focus{box-shadow:0 0 0 .25rem rgba(33,37,41,.5)}.btn-check:active+.btn-outline-dark,.btn-check:checked+.btn-outline-dark,.btn-outline-dark.active,.btn-outline-dark.dropdown-toggle.show,.btn-outline-dark:active{color:#fff;background-color:#212529;border-color:#212529}.btn-check:active+.btn-outline-dark:focus,.btn-check:checked+.btn-outline-dark:focus,.btn-outline-dark.active:focus,.btn-outline-dark.dropdown-toggle.show:focus,.btn-outline-dark:active:focus{box-shadow:0 0 0 .25rem rgba(33,37,41,.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#212529;background-color:transparent}.btn-link{font-weight:400;color:#0d6efd;text-decoration:underline}.btn-link:hover{color:#0a58ca}.btn-link.disabled,.btn-link:disabled{color:#6c757d}.btn-group-lg>.btn,.btn-lg{padding:.5rem 1rem;font-size:1.25rem;border-radius:.3rem}.btn-group-sm>.btn,.btn-sm{padding:.25rem .5rem;font-size:.875rem;border-radius:.2rem}.fade{transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{height:0;overflow:hidden;transition:height .35s ease}@media (prefers-reduced-motion:reduce){.collapsing{transition:none}}.collapsing.collapse-horizontal{width:0;height:auto;transition:width .35s ease}@media (prefers-reduced-motion:reduce){.collapsing.collapse-horizontal{transition:none}}.dropdown,.dropend,.dropstart,.dropup{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty::after{margin-left:0}.dropdown-menu{position:absolute;z-index:1000;display:none;min-width:10rem;padding:.5rem 0;margin:0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-menu[data-bs-popper]{top:100%;left:0;margin-top:.125rem}.dropdown-menu-start{--bs-position:start}.dropdown-menu-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-end{--bs-position:end}.dropdown-menu-end[data-bs-popper]{right:0;left:auto}@media (min-width:576px){.dropdown-menu-sm-start{--bs-position:start}.dropdown-menu-sm-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-sm-end{--bs-position:end}.dropdown-menu-sm-end[data-bs-popper]{right:0;left:auto}}@media (min-width:768px){.dropdown-menu-md-start{--bs-position:start}.dropdown-menu-md-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-md-end{--bs-position:end}.dropdown-menu-md-end[data-bs-popper]{right:0;left:auto}}@media (min-width:992px){.dropdown-menu-lg-start{--bs-position:start}.dropdown-menu-lg-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-lg-end{--bs-position:end}.dropdown-menu-lg-end[data-bs-popper]{right:0;left:auto}}@media (min-width:1200px){.dropdown-menu-xl-start{--bs-position:start}.dropdown-menu-xl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xl-end{--bs-position:end}.dropdown-menu-xl-end[data-bs-popper]{right:0;left:auto}}@media (min-width:1400px){.dropdown-menu-xxl-start{--bs-position:start}.dropdown-menu-xxl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xxl-end{--bs-position:end}.dropdown-menu-xxl-end[data-bs-popper]{right:0;left:auto}}.dropup .dropdown-menu[data-bs-popper]{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty::after{margin-left:0}.dropend .dropdown-menu[data-bs-popper]{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropend .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropend .dropdown-toggle:empty::after{margin-left:0}.dropend .dropdown-toggle::after{vertical-align:0}.dropstart .dropdown-menu[data-bs-popper]{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropstart .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:""}.dropstart .dropdown-toggle::after{display:none}.dropstart .dropdown-toggle::before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropstart .dropdown-toggle:empty::after{margin-left:0}.dropstart .dropdown-toggle::before{vertical-align:0}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid rgba(0,0,0,.15)}.dropdown-item{display:block;width:100%;padding:.25rem 1rem;clear:both;font-weight:400;color:#212529;text-align:inherit;text-decoration:none;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:focus,.dropdown-item:hover{color:#1e2125;background-color:#e9ecef}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#0d6efd}.dropdown-item.disabled,.dropdown-item:disabled{color:#adb5bd;pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1rem;color:#212529}.dropdown-menu-dark{color:#dee2e6;background-color:#343a40;border-color:rgba(0,0,0,.15)}.dropdown-menu-dark .dropdown-item{color:#dee2e6}.dropdown-menu-dark .dropdown-item:focus,.dropdown-menu-dark .dropdown-item:hover{color:#fff;background-color:rgba(255,255,255,.15)}.dropdown-menu-dark .dropdown-item.active,.dropdown-menu-dark .dropdown-item:active{color:#fff;background-color:#0d6efd}.dropdown-menu-dark .dropdown-item.disabled,.dropdown-menu-dark .dropdown-item:disabled{color:#adb5bd}.dropdown-menu-dark .dropdown-divider{border-color:rgba(0,0,0,.15)}.dropdown-menu-dark .dropdown-item-text{color:#dee2e6}.dropdown-menu-dark .dropdown-header{color:#adb5bd}.btn-group,.btn-group-vertical{position:relative;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;flex:1 1 auto}.btn-group-vertical>.btn-check:checked+.btn,.btn-group-vertical>.btn-check:focus+.btn,.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn-check:checked+.btn,.btn-group>.btn-check:focus+.btn,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:1}.btn-toolbar{display:flex;flex-wrap:wrap;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn-group:not(:first-child),.btn-group>.btn:not(:first-child){margin-left:-1px}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:nth-child(n+3),.btn-group>:not(.btn-check)+.btn{border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split::after,.dropend .dropdown-toggle-split::after,.dropup .dropdown-toggle-split::after{margin-left:0}.dropstart .dropdown-toggle-split::before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{flex-direction:column;align-items:flex-start;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn~.btn{border-top-left-radius:0;border-top-right-radius:0}.nav{display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem;color:#0d6efd;text-decoration:none;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out}@media (prefers-reduced-motion:reduce){.nav-link{transition:none}}.nav-link:focus,.nav-link:hover{color:#0a58ca}.nav-link.disabled{color:#6c757d;pointer-events:none;cursor:default}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-link{margin-bottom:-1px;background:0 0;border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#e9ecef #e9ecef #dee2e6;isolation:isolate}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:transparent;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{background:0 0;border:0;border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#0d6efd}.nav-fill .nav-item,.nav-fill>.nav-link{flex:1 1 auto;text-align:center}.nav-justified .nav-item,.nav-justified>.nav-link{flex-basis:0;flex-grow:1;text-align:center}.nav-fill .nav-item .nav-link,.nav-justified .nav-item .nav-link{width:100%}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;padding-top:.5rem;padding-bottom:.5rem}.navbar>.container,.navbar>.container-fluid,.navbar>.container-lg,.navbar>.container-md,.navbar>.container-sm,.navbar>.container-xl,.navbar>.container-xxl{display:flex;flex-wrap:inherit;align-items:center;justify-content:space-between}.navbar-brand{padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;text-decoration:none;white-space:nowrap}.navbar-nav{display:flex;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static}.navbar-text{padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{flex-basis:100%;flex-grow:1;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:.25rem;transition:box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.navbar-toggler{transition:none}}.navbar-toggler:hover{text-decoration:none}.navbar-toggler:focus{text-decoration:none;outline:0;box-shadow:0 0 0 .25rem}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;background-repeat:no-repeat;background-position:center;background-size:100%}.navbar-nav-scroll{max-height:var(--bs-scroll-height,75vh);overflow-y:auto}@media (min-width:576px){.navbar-expand-sm{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm .navbar-nav-scroll{overflow:visible}.navbar-expand-sm .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}.navbar-expand-sm .offcanvas-header{display:none}.navbar-expand-sm .offcanvas{position:inherit;bottom:0;z-index:1000;flex-grow:1;visibility:visible!important;background-color:transparent;border-right:0;border-left:0;transition:none;transform:none}.navbar-expand-sm .offcanvas-bottom,.navbar-expand-sm .offcanvas-top{height:auto;border-top:0;border-bottom:0}.navbar-expand-sm .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:768px){.navbar-expand-md{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md .navbar-nav-scroll{overflow:visible}.navbar-expand-md .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}.navbar-expand-md .offcanvas-header{display:none}.navbar-expand-md .offcanvas{position:inherit;bottom:0;z-index:1000;flex-grow:1;visibility:visible!important;background-color:transparent;border-right:0;border-left:0;transition:none;transform:none}.navbar-expand-md .offcanvas-bottom,.navbar-expand-md .offcanvas-top{height:auto;border-top:0;border-bottom:0}.navbar-expand-md .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:992px){.navbar-expand-lg{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg .navbar-nav-scroll{overflow:visible}.navbar-expand-lg .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}.navbar-expand-lg .offcanvas-header{display:none}.navbar-expand-lg .offcanvas{position:inherit;bottom:0;z-index:1000;flex-grow:1;visibility:visible!important;background-color:transparent;border-right:0;border-left:0;transition:none;transform:none}.navbar-expand-lg .offcanvas-bottom,.navbar-expand-lg .offcanvas-top{height:auto;border-top:0;border-bottom:0}.navbar-expand-lg .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:1200px){.navbar-expand-xl{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl .navbar-nav-scroll{overflow:visible}.navbar-expand-xl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}.navbar-expand-xl .offcanvas-header{display:none}.navbar-expand-xl .offcanvas{position:inherit;bottom:0;z-index:1000;flex-grow:1;visibility:visible!important;background-color:transparent;border-right:0;border-left:0;transition:none;transform:none}.navbar-expand-xl .offcanvas-bottom,.navbar-expand-xl .offcanvas-top{height:auto;border-top:0;border-bottom:0}.navbar-expand-xl .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:1400px){.navbar-expand-xxl{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-xxl .navbar-nav{flex-direction:row}.navbar-expand-xxl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xxl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xxl .navbar-nav-scroll{overflow:visible}.navbar-expand-xxl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xxl .navbar-toggler{display:none}.navbar-expand-xxl .offcanvas-header{display:none}.navbar-expand-xxl .offcanvas{position:inherit;bottom:0;z-index:1000;flex-grow:1;visibility:visible!important;background-color:transparent;border-right:0;border-left:0;transition:none;transform:none}.navbar-expand-xxl .offcanvas-bottom,.navbar-expand-xxl .offcanvas-top{height:auto;border-top:0;border-bottom:0}.navbar-expand-xxl .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}.navbar-expand{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand .navbar-nav{flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand .navbar-nav-scroll{overflow:visible}.navbar-expand .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-expand .offcanvas-header{display:none}.navbar-expand .offcanvas{position:inherit;bottom:0;z-index:1000;flex-grow:1;visibility:visible!important;background-color:transparent;border-right:0;border-left:0;transition:none;transform:none}.navbar-expand .offcanvas-bottom,.navbar-expand .offcanvas-top{height:auto;border-top:0;border-bottom:0}.navbar-expand .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}.navbar-light .navbar-brand{color:rgba(0,0,0,.9)}.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:rgba(0,0,0,.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.55)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .show>.nav-link{color:rgba(0,0,0,.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,.55);border-color:rgba(0,0,0,.1)}.navbar-light .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%280, 0, 0, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-light .navbar-text{color:rgba(0,0,0,.55)}.navbar-light .navbar-text a,.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand{color:#fff}.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:rgba(255,255,255,.55)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:rgba(255,255,255,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:rgba(255,255,255,.25)}.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{color:rgba(255,255,255,.55);border-color:rgba(255,255,255,.1)}.navbar-dark .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-dark .navbar-text{color:rgba(255,255,255,.55)}.navbar-dark .navbar-text a,.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff}.card{position:relative;display:flex;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group{border-top:inherit;border-bottom:inherit}.card>.list-group:first-child{border-top-width:0;border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card>.list-group:last-child{border-bottom-width:0;border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card>.card-header+.list-group,.card>.list-group+.card-footer{border-top:0}.card-body{flex:1 1 auto;padding:1rem 1rem}.card-title{margin-bottom:.5rem}.card-subtitle{margin-top:-.25rem;margin-bottom:0}.card-text:last-child{margin-bottom:0}.card-link+.card-link{margin-left:1rem}.card-header{padding:.5rem 1rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-footer{padding:.5rem 1rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{margin-right:-.5rem;margin-bottom:-.5rem;margin-left:-.5rem;border-bottom:0}.card-header-pills{margin-right:-.5rem;margin-left:-.5rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1rem;border-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom,.card-img-top{width:100%}.card-img,.card-img-top{border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom{border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-group>.card{margin-bottom:.75rem}@media (min-width:576px){.card-group{display:flex;flex-flow:row wrap}.card-group>.card{flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-header,.card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-footer,.card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-header,.card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-footer,.card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}.accordion-button{position:relative;display:flex;align-items:center;width:100%;padding:1rem 1.25rem;font-size:1rem;color:#212529;text-align:left;background-color:#fff;border:0;border-radius:0;overflow-anchor:none;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,border-radius .15s ease}@media (prefers-reduced-motion:reduce){.accordion-button{transition:none}}.accordion-button:not(.collapsed){color:#0c63e4;background-color:#e7f1ff;box-shadow:inset 0 -1px 0 rgba(0,0,0,.125)}.accordion-button:not(.collapsed)::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%230c63e4'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");transform:rotate(-180deg)}.accordion-button::after{flex-shrink:0;width:1.25rem;height:1.25rem;margin-left:auto;content:"";background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23212529'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-size:1.25rem;transition:transform .2s ease-in-out}@media (prefers-reduced-motion:reduce){.accordion-button::after{transition:none}}.accordion-button:hover{z-index:2}.accordion-button:focus{z-index:3;border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.accordion-header{margin-bottom:0}.accordion-item{background-color:#fff;border:1px solid rgba(0,0,0,.125)}.accordion-item:first-of-type{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.accordion-item:first-of-type .accordion-button{border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.accordion-item:not(:first-of-type){border-top:0}.accordion-item:last-of-type{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.accordion-item:last-of-type .accordion-button.collapsed{border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.accordion-item:last-of-type .accordion-collapse{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.accordion-body{padding:1rem 1.25rem}.accordion-flush .accordion-collapse{border-width:0}.accordion-flush .accordion-item{border-right:0;border-left:0;border-radius:0}.accordion-flush .accordion-item:first-child{border-top:0}.accordion-flush .accordion-item:last-child{border-bottom:0}.accordion-flush .accordion-item .accordion-button{border-radius:0}.breadcrumb{display:flex;flex-wrap:wrap;padding:0 0;margin-bottom:1rem;list-style:none}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item::before{float:left;padding-right:.5rem;color:#6c757d;content:var(--bs-breadcrumb-divider, "/")}.breadcrumb-item.active{color:#6c757d}.pagination{display:flex;padding-left:0;list-style:none}.page-link{position:relative;display:block;color:#0d6efd;text-decoration:none;background-color:#fff;border:1px solid #dee2e6;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.page-link{transition:none}}.page-link:hover{z-index:2;color:#0a58ca;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:3;color:#0a58ca;background-color:#e9ecef;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.page-item:not(:first-child) .page-link{margin-left:-1px}.page-item.active .page-link{z-index:3;color:#fff;background-color:#0d6efd;border-color:#0d6efd}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;background-color:#fff;border-color:#dee2e6}.page-link{padding:.375rem .75rem}.page-item:first-child .page-link{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.35em .65em;font-size:.75em;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.alert{position:relative;padding:1rem 1rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:3rem}.alert-dismissible .btn-close{position:absolute;top:0;right:0;z-index:2;padding:1.25rem 1rem}.alert-primary{color:#084298;background-color:#cfe2ff;border-color:#b6d4fe}.alert-primary .alert-link{color:#06357a}.alert-secondary{color:#41464b;background-color:#e2e3e5;border-color:#d3d6d8}.alert-secondary .alert-link{color:#34383c}.alert-success{color:#0f5132;background-color:#d1e7dd;border-color:#badbcc}.alert-success .alert-link{color:#0c4128}.alert-info{color:#055160;background-color:#cff4fc;border-color:#b6effb}.alert-info .alert-link{color:#04414d}.alert-warning{color:#664d03;background-color:#fff3cd;border-color:#ffecb5}.alert-warning .alert-link{color:#523e02}.alert-danger{color:#842029;background-color:#f8d7da;border-color:#f5c2c7}.alert-danger .alert-link{color:#6a1a21}.alert-light{color:#636464;background-color:#fefefe;border-color:#fdfdfe}.alert-light .alert-link{color:#4f5050}.alert-dark{color:#141619;background-color:#d3d3d4;border-color:#bcbebf}.alert-dark .alert-link{color:#101214}@-webkit-keyframes progress-bar-stripes{0%{background-position-x:1rem}}@keyframes progress-bar-stripes{0%{background-position-x:1rem}}.progress{display:flex;height:1rem;overflow:hidden;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress-bar{display:flex;flex-direction:column;justify-content:center;overflow:hidden;color:#fff;text-align:center;white-space:nowrap;background-color:#0d6efd;transition:width .6s ease}@media (prefers-reduced-motion:reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:1rem 1rem}.progress-bar-animated{-webkit-animation:1s linear infinite progress-bar-stripes;animation:1s linear infinite progress-bar-stripes}@media (prefers-reduced-motion:reduce){.progress-bar-animated{-webkit-animation:none;animation:none}}.list-group{display:flex;flex-direction:column;padding-left:0;margin-bottom:0;border-radius:.25rem}.list-group-numbered{list-style-type:none;counter-reset:section}.list-group-numbered>li::before{content:counters(section, ".") ". ";counter-increment:section}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{z-index:1;color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#212529;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.5rem 1rem;color:#212529;text-decoration:none;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.list-group-item:last-child{border-bottom-right-radius:inherit;border-bottom-left-radius:inherit}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;pointer-events:none;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#0d6efd;border-color:#0d6efd}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:-1px;border-top-width:1px}.list-group-horizontal{flex-direction:row}.list-group-horizontal>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal>.list-group-item.active{margin-top:0}.list-group-horizontal>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}@media (min-width:576px){.list-group-horizontal-sm{flex-direction:row}.list-group-horizontal-sm>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-sm>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-sm>.list-group-item.active{margin-top:0}.list-group-horizontal-sm>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-sm>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:768px){.list-group-horizontal-md{flex-direction:row}.list-group-horizontal-md>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-md>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-md>.list-group-item.active{margin-top:0}.list-group-horizontal-md>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-md>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:992px){.list-group-horizontal-lg{flex-direction:row}.list-group-horizontal-lg>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-lg>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-lg>.list-group-item.active{margin-top:0}.list-group-horizontal-lg>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-lg>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:1200px){.list-group-horizontal-xl{flex-direction:row}.list-group-horizontal-xl>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xl>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-xl>.list-group-item.active{margin-top:0}.list-group-horizontal-xl>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xl>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:1400px){.list-group-horizontal-xxl{flex-direction:row}.list-group-horizontal-xxl>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xxl>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-xxl>.list-group-item.active{margin-top:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}.list-group-flush{border-radius:0}.list-group-flush>.list-group-item{border-width:0 0 1px}.list-group-flush>.list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{color:#084298;background-color:#cfe2ff}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#084298;background-color:#bacbe6}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#084298;border-color:#084298}.list-group-item-secondary{color:#41464b;background-color:#e2e3e5}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#41464b;background-color:#cbccce}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#41464b;border-color:#41464b}.list-group-item-success{color:#0f5132;background-color:#d1e7dd}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#0f5132;background-color:#bcd0c7}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#0f5132;border-color:#0f5132}.list-group-item-info{color:#055160;background-color:#cff4fc}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#055160;background-color:#badce3}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#055160;border-color:#055160}.list-group-item-warning{color:#664d03;background-color:#fff3cd}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#664d03;background-color:#e6dbb9}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#664d03;border-color:#664d03}.list-group-item-danger{color:#842029;background-color:#f8d7da}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#842029;background-color:#dfc2c4}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#842029;border-color:#842029}.list-group-item-light{color:#636464;background-color:#fefefe}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{color:#636464;background-color:#e5e5e5}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#636464;border-color:#636464}.list-group-item-dark{color:#141619;background-color:#d3d3d4}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#141619;background-color:#bebebf}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#141619;border-color:#141619}.btn-close{box-sizing:content-box;width:1em;height:1em;padding:.25em .25em;color:#000;background:transparent url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 011.414 0L8 6.586 14.293.293a1 1 0 111.414 1.414L9.414 8l6.293 6.293a1 1 0 01-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 01-1.414-1.414L6.586 8 .293 1.707a1 1 0 010-1.414z'/%3e%3c/svg%3e") center/1em auto no-repeat;border:0;border-radius:.25rem;opacity:.5}.btn-close:hover{color:#000;text-decoration:none;opacity:.75}.btn-close:focus{outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25);opacity:1}.btn-close.disabled,.btn-close:disabled{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;opacity:.25}.btn-close-white{filter:invert(1) grayscale(100%) brightness(200%)}.toast{width:350px;max-width:100%;font-size:.875rem;pointer-events:auto;background-color:rgba(255,255,255,.85);background-clip:padding-box;border:1px solid rgba(0,0,0,.1);box-shadow:0 .5rem 1rem rgba(0,0,0,.15);border-radius:.25rem}.toast.showing{opacity:0}.toast:not(.show){display:none}.toast-container{width:-webkit-max-content;width:-moz-max-content;width:max-content;max-width:100%;pointer-events:none}.toast-container>:not(:last-child){margin-bottom:.75rem}.toast-header{display:flex;align-items:center;padding:.5rem .75rem;color:#6c757d;background-color:rgba(255,255,255,.85);background-clip:padding-box;border-bottom:1px solid rgba(0,0,0,.05);border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.toast-header .btn-close{margin-right:-.375rem;margin-left:.75rem}.toast-body{padding:.75rem;word-wrap:break-word}.modal{position:fixed;top:0;left:0;z-index:1055;display:none;width:100%;height:100%;overflow-x:hidden;overflow-y:auto;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:transform .3s ease-out;transform:translate(0,-50px)}@media (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{transform:none}.modal.modal-static .modal-dialog{transform:scale(1.02)}.modal-dialog-scrollable{height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:100%;overflow:hidden}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:flex;align-items:center;min-height:calc(100% - 1rem)}.modal-content{position:relative;display:flex;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;left:0;z-index:1050;width:100vw;height:100vh;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:flex;flex-shrink:0;align-items:center;justify-content:space-between;padding:1rem 1rem;border-bottom:1px solid #dee2e6;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.modal-header .btn-close{padding:.5rem .5rem;margin:-.5rem -.5rem -.5rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;flex:1 1 auto;padding:1rem}.modal-footer{display:flex;flex-wrap:wrap;flex-shrink:0;align-items:center;justify-content:flex-end;padding:.75rem;border-top:1px solid #dee2e6;border-bottom-right-radius:calc(.3rem - 1px);border-bottom-left-radius:calc(.3rem - 1px)}.modal-footer>*{margin:.25rem}@media (min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-scrollable{height:calc(100% - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-sm{max-width:300px}}@media (min-width:992px){.modal-lg,.modal-xl{max-width:800px}}@media (min-width:1200px){.modal-xl{max-width:1140px}}.modal-fullscreen{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen .modal-header{border-radius:0}.modal-fullscreen .modal-body{overflow-y:auto}.modal-fullscreen .modal-footer{border-radius:0}@media (max-width:575.98px){.modal-fullscreen-sm-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-sm-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-sm-down .modal-header{border-radius:0}.modal-fullscreen-sm-down .modal-body{overflow-y:auto}.modal-fullscreen-sm-down .modal-footer{border-radius:0}}@media (max-width:767.98px){.modal-fullscreen-md-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-md-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-md-down .modal-header{border-radius:0}.modal-fullscreen-md-down .modal-body{overflow-y:auto}.modal-fullscreen-md-down .modal-footer{border-radius:0}}@media (max-width:991.98px){.modal-fullscreen-lg-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-lg-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-lg-down .modal-header{border-radius:0}.modal-fullscreen-lg-down .modal-body{overflow-y:auto}.modal-fullscreen-lg-down .modal-footer{border-radius:0}}@media (max-width:1199.98px){.modal-fullscreen-xl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xl-down .modal-header{border-radius:0}.modal-fullscreen-xl-down .modal-body{overflow-y:auto}.modal-fullscreen-xl-down .modal-footer{border-radius:0}}@media (max-width:1399.98px){.modal-fullscreen-xxl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xxl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xxl-down .modal-header{border-radius:0}.modal-fullscreen-xxl-down .modal-body{overflow-y:auto}.modal-fullscreen-xxl-down .modal-footer{border-radius:0}}.tooltip{position:absolute;z-index:1080;display:block;margin:0;font-family:var(--bs-font-sans-serif);font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .tooltip-arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .tooltip-arrow::before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-auto[data-popper-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow,.bs-tooltip-top .tooltip-arrow{bottom:0}.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow::before,.bs-tooltip-top .tooltip-arrow::before{top:-1px;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-auto[data-popper-placement^=right],.bs-tooltip-end{padding:0 .4rem}.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow,.bs-tooltip-end .tooltip-arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow::before,.bs-tooltip-end .tooltip-arrow::before{right:-1px;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-auto[data-popper-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow,.bs-tooltip-bottom .tooltip-arrow{top:0}.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow::before,.bs-tooltip-bottom .tooltip-arrow::before{bottom:-1px;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-auto[data-popper-placement^=left],.bs-tooltip-start{padding:0 .4rem}.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow,.bs-tooltip-start .tooltip-arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow::before,.bs-tooltip-start .tooltip-arrow::before{left:-1px;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.popover{position:absolute;top:0;left:0;z-index:1070;display:block;max-width:276px;font-family:var(--bs-font-sans-serif);font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover .popover-arrow{position:absolute;display:block;width:1rem;height:.5rem}.popover .popover-arrow::after,.popover .popover-arrow::before{position:absolute;display:block;content:"";border-color:transparent;border-style:solid}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow,.bs-popover-top>.popover-arrow{bottom:calc(-.5rem - 1px)}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::before,.bs-popover-top>.popover-arrow::before{bottom:0;border-width:.5rem .5rem 0;border-top-color:rgba(0,0,0,.25)}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::after,.bs-popover-top>.popover-arrow::after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow,.bs-popover-end>.popover-arrow{left:calc(-.5rem - 1px);width:.5rem;height:1rem}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::before,.bs-popover-end>.popover-arrow::before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:rgba(0,0,0,.25)}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::after,.bs-popover-end>.popover-arrow::after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow,.bs-popover-bottom>.popover-arrow{top:calc(-.5rem - 1px)}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::before,.bs-popover-bottom>.popover-arrow::before{top:0;border-width:0 .5rem .5rem .5rem;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::after,.bs-popover-bottom>.popover-arrow::after{top:1px;border-width:0 .5rem .5rem .5rem;border-bottom-color:#fff}.bs-popover-auto[data-popper-placement^=bottom] .popover-header::before,.bs-popover-bottom .popover-header::before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:"";border-bottom:1px solid #f0f0f0}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow,.bs-popover-start>.popover-arrow{right:calc(-.5rem - 1px);width:.5rem;height:1rem}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::before,.bs-popover-start>.popover-arrow::before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(0,0,0,.25)}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::after,.bs-popover-start>.popover-arrow::after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}.popover-header{padding:.5rem 1rem;margin-bottom:0;font-size:1rem;background-color:#f0f0f0;border-bottom:1px solid rgba(0,0,0,.2);border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:1rem 1rem;color:#212529}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner::after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:transform .6s ease-in-out}@media (prefers-reduced-motion:reduce){.carousel-item{transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-end,.carousel-item-next:not(.carousel-item-start){transform:translateX(100%)}.active.carousel-item-start,.carousel-item-prev:not(.carousel-item-end){transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;transform:none}.carousel-fade .carousel-item-next.carousel-item-start,.carousel-fade .carousel-item-prev.carousel-item-end,.carousel-fade .carousel-item.active{z-index:1;opacity:1}.carousel-fade .active.carousel-item-end,.carousel-fade .active.carousel-item-start{z-index:0;opacity:0;transition:opacity 0s .6s}@media (prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-end,.carousel-fade .active.carousel-item-start{transition:none}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;width:15%;padding:0;color:#fff;text-align:center;background:0 0;border:0;opacity:.5;transition:opacity .15s ease}@media (prefers-reduced-motion:reduce){.carousel-control-next,.carousel-control-prev{transition:none}}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:2rem;height:2rem;background-repeat:no-repeat;background-position:50%;background-size:100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e")}.carousel-control-next-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:2;display:flex;justify-content:center;padding:0;margin-right:15%;margin-bottom:1rem;margin-left:15%;list-style:none}.carousel-indicators [data-bs-target]{box-sizing:content-box;flex:0 1 auto;width:30px;height:3px;padding:0;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border:0;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity .6s ease}@media (prefers-reduced-motion:reduce){.carousel-indicators [data-bs-target]{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:1.25rem;left:15%;padding-top:1.25rem;padding-bottom:1.25rem;color:#fff;text-align:center}.carousel-dark .carousel-control-next-icon,.carousel-dark .carousel-control-prev-icon{filter:invert(1) grayscale(100)}.carousel-dark .carousel-indicators [data-bs-target]{background-color:#000}.carousel-dark .carousel-caption{color:#000}@-webkit-keyframes spinner-border{to{transform:rotate(360deg)}}@keyframes spinner-border{to{transform:rotate(360deg)}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:-.125em;border:.25em solid currentColor;border-right-color:transparent;border-radius:50%;-webkit-animation:.75s linear infinite spinner-border;animation:.75s linear infinite spinner-border}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@-webkit-keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}.spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:-.125em;background-color:currentColor;border-radius:50%;opacity:0;-webkit-animation:.75s linear infinite spinner-grow;animation:.75s linear infinite spinner-grow}.spinner-grow-sm{width:1rem;height:1rem}@media (prefers-reduced-motion:reduce){.spinner-border,.spinner-grow{-webkit-animation-duration:1.5s;animation-duration:1.5s}}.offcanvas{position:fixed;bottom:0;z-index:1045;display:flex;flex-direction:column;max-width:100%;visibility:hidden;background-color:#fff;background-clip:padding-box;outline:0;transition:transform .3s ease-in-out}@media (prefers-reduced-motion:reduce){.offcanvas{transition:none}}.offcanvas-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.offcanvas-backdrop.fade{opacity:0}.offcanvas-backdrop.show{opacity:.5}.offcanvas-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1rem}.offcanvas-header .btn-close{padding:.5rem .5rem;margin-top:-.5rem;margin-right:-.5rem;margin-bottom:-.5rem}.offcanvas-title{margin-bottom:0;line-height:1.5}.offcanvas-body{flex-grow:1;padding:1rem 1rem;overflow-y:auto}.offcanvas-start{top:0;left:0;width:400px;border-right:1px solid rgba(0,0,0,.2);transform:translateX(-100%)}.offcanvas-end{top:0;right:0;width:400px;border-left:1px solid rgba(0,0,0,.2);transform:translateX(100%)}.offcanvas-top{top:0;right:0;left:0;height:30vh;max-height:100%;border-bottom:1px solid rgba(0,0,0,.2);transform:translateY(-100%)}.offcanvas-bottom{right:0;left:0;height:30vh;max-height:100%;border-top:1px solid rgba(0,0,0,.2);transform:translateY(100%)}.offcanvas.show{transform:none}.placeholder{display:inline-block;min-height:1em;vertical-align:middle;cursor:wait;background-color:currentColor;opacity:.5}.placeholder.btn::before{display:inline-block;content:""}.placeholder-xs{min-height:.6em}.placeholder-sm{min-height:.8em}.placeholder-lg{min-height:1.2em}.placeholder-glow .placeholder{-webkit-animation:placeholder-glow 2s ease-in-out infinite;animation:placeholder-glow 2s ease-in-out infinite}@-webkit-keyframes placeholder-glow{50%{opacity:.2}}@keyframes placeholder-glow{50%{opacity:.2}}.placeholder-wave{-webkit-mask-image:linear-gradient(130deg,#000 55%,rgba(0,0,0,0.8) 75%,#000 95%);mask-image:linear-gradient(130deg,#000 55%,rgba(0,0,0,0.8) 75%,#000 95%);-webkit-mask-size:200% 100%;mask-size:200% 100%;-webkit-animation:placeholder-wave 2s linear infinite;animation:placeholder-wave 2s linear infinite}@-webkit-keyframes placeholder-wave{100%{-webkit-mask-position:-200% 0%;mask-position:-200% 0%}}@keyframes placeholder-wave{100%{-webkit-mask-position:-200% 0%;mask-position:-200% 0%}}.clearfix::after{display:block;clear:both;content:""}.link-primary{color:#0d6efd}.link-primary:focus,.link-primary:hover{color:#0a58ca}.link-secondary{color:#6c757d}.link-secondary:focus,.link-secondary:hover{color:#565e64}.link-success{color:#198754}.link-success:focus,.link-success:hover{color:#146c43}.link-info{color:#0dcaf0}.link-info:focus,.link-info:hover{color:#3dd5f3}.link-warning{color:#ffc107}.link-warning:focus,.link-warning:hover{color:#ffcd39}.link-danger{color:#dc3545}.link-danger:focus,.link-danger:hover{color:#b02a37}.link-light{color:#f8f9fa}.link-light:focus,.link-light:hover{color:#f9fafb}.link-dark{color:#212529}.link-dark:focus,.link-dark:hover{color:#1a1e21}.ratio{position:relative;width:100%}.ratio::before{display:block;padding-top:var(--bs-aspect-ratio);content:""}.ratio>*{position:absolute;top:0;left:0;width:100%;height:100%}.ratio-1x1{--bs-aspect-ratio:100%}.ratio-4x3{--bs-aspect-ratio:calc(3 / 4 * 100%)}.ratio-16x9{--bs-aspect-ratio:calc(9 / 16 * 100%)}.ratio-21x9{--bs-aspect-ratio:calc(9 / 21 * 100%)}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}.sticky-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}@media (min-width:576px){.sticky-sm-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}@media (min-width:768px){.sticky-md-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}@media (min-width:992px){.sticky-lg-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}@media (min-width:1200px){.sticky-xl-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}@media (min-width:1400px){.sticky-xxl-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}.hstack{display:flex;flex-direction:row;align-items:center;align-self:stretch}.vstack{display:flex;flex:1 1 auto;flex-direction:column;align-self:stretch}.visually-hidden,.visually-hidden-focusable:not(:focus):not(:focus-within){position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;content:""}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vr{display:inline-block;align-self:stretch;width:1px;min-height:1em;background-color:currentColor;opacity:.25}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.float-start{float:left!important}.float-end{float:right!important}.float-none{float:none!important}.opacity-0{opacity:0!important}.opacity-25{opacity:.25!important}.opacity-50{opacity:.5!important}.opacity-75{opacity:.75!important}.opacity-100{opacity:1!important}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.overflow-visible{overflow:visible!important}.overflow-scroll{overflow:scroll!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-grid{display:grid!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:flex!important}.d-inline-flex{display:inline-flex!important}.d-none{display:none!important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{box-shadow:none!important}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:-webkit-sticky!important;position:sticky!important}.top-0{top:0!important}.top-50{top:50%!important}.top-100{top:100%!important}.bottom-0{bottom:0!important}.bottom-50{bottom:50%!important}.bottom-100{bottom:100%!important}.start-0{left:0!important}.start-50{left:50%!important}.start-100{left:100%!important}.end-0{right:0!important}.end-50{right:50%!important}.end-100{right:100%!important}.translate-middle{transform:translate(-50%,-50%)!important}.translate-middle-x{transform:translateX(-50%)!important}.translate-middle-y{transform:translateY(-50%)!important}.border{border:1px solid #dee2e6!important}.border-0{border:0!important}.border-top{border-top:1px solid #dee2e6!important}.border-top-0{border-top:0!important}.border-end{border-right:1px solid #dee2e6!important}.border-end-0{border-right:0!important}.border-bottom{border-bottom:1px solid #dee2e6!important}.border-bottom-0{border-bottom:0!important}.border-start{border-left:1px solid #dee2e6!important}.border-start-0{border-left:0!important}.border-primary{border-color:#0d6efd!important}.border-secondary{border-color:#6c757d!important}.border-success{border-color:#198754!important}.border-info{border-color:#0dcaf0!important}.border-warning{border-color:#ffc107!important}.border-danger{border-color:#dc3545!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#212529!important}.border-white{border-color:#fff!important}.border-1{border-width:1px!important}.border-2{border-width:2px!important}.border-3{border-width:3px!important}.border-4{border-width:4px!important}.border-5{border-width:5px!important}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.mw-100{max-width:100%!important}.vw-100{width:100vw!important}.min-vw-100{min-width:100vw!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mh-100{max-height:100%!important}.vh-100{height:100vh!important}.min-vh-100{min-height:100vh!important}.flex-fill{flex:1 1 auto!important}.flex-row{flex-direction:row!important}.flex-column{flex-direction:column!important}.flex-row-reverse{flex-direction:row-reverse!important}.flex-column-reverse{flex-direction:column-reverse!important}.flex-grow-0{flex-grow:0!important}.flex-grow-1{flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.gap-0{gap:0!important}.gap-1{gap:.25rem!important}.gap-2{gap:.5rem!important}.gap-3{gap:1rem!important}.gap-4{gap:1.5rem!important}.gap-5{gap:3rem!important}.justify-content-start{justify-content:flex-start!important}.justify-content-end{justify-content:flex-end!important}.justify-content-center{justify-content:center!important}.justify-content-between{justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.justify-content-evenly{justify-content:space-evenly!important}.align-items-start{align-items:flex-start!important}.align-items-end{align-items:flex-end!important}.align-items-center{align-items:center!important}.align-items-baseline{align-items:baseline!important}.align-items-stretch{align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}.order-first{order:-1!important}.order-0{order:0!important}.order-1{order:1!important}.order-2{order:2!important}.order-3{order:3!important}.order-4{order:4!important}.order-5{order:5!important}.order-last{order:6!important}.m-0{margin:0!important}.m-1{margin:.25rem!important}.m-2{margin:.5rem!important}.m-3{margin:1rem!important}.m-4{margin:1.5rem!important}.m-5{margin:3rem!important}.m-auto{margin:auto!important}.mx-0{margin-right:0!important;margin-left:0!important}.mx-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-3{margin-right:1rem!important;margin-left:1rem!important}.mx-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-5{margin-right:3rem!important;margin-left:3rem!important}.mx-auto{margin-right:auto!important;margin-left:auto!important}.my-0{margin-top:0!important;margin-bottom:0!important}.my-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-0{margin-top:0!important}.mt-1{margin-top:.25rem!important}.mt-2{margin-top:.5rem!important}.mt-3{margin-top:1rem!important}.mt-4{margin-top:1.5rem!important}.mt-5{margin-top:3rem!important}.mt-auto{margin-top:auto!important}.me-0{margin-right:0!important}.me-1{margin-right:.25rem!important}.me-2{margin-right:.5rem!important}.me-3{margin-right:1rem!important}.me-4{margin-right:1.5rem!important}.me-5{margin-right:3rem!important}.me-auto{margin-right:auto!important}.mb-0{margin-bottom:0!important}.mb-1{margin-bottom:.25rem!important}.mb-2{margin-bottom:.5rem!important}.mb-3{margin-bottom:1rem!important}.mb-4{margin-bottom:1.5rem!important}.mb-5{margin-bottom:3rem!important}.mb-auto{margin-bottom:auto!important}.ms-0{margin-left:0!important}.ms-1{margin-left:.25rem!important}.ms-2{margin-left:.5rem!important}.ms-3{margin-left:1rem!important}.ms-4{margin-left:1.5rem!important}.ms-5{margin-left:3rem!important}.ms-auto{margin-left:auto!important}.p-0{padding:0!important}.p-1{padding:.25rem!important}.p-2{padding:.5rem!important}.p-3{padding:1rem!important}.p-4{padding:1.5rem!important}.p-5{padding:3rem!important}.px-0{padding-right:0!important;padding-left:0!important}.px-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-3{padding-right:1rem!important;padding-left:1rem!important}.px-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-5{padding-right:3rem!important;padding-left:3rem!important}.py-0{padding-top:0!important;padding-bottom:0!important}.py-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-0{padding-top:0!important}.pt-1{padding-top:.25rem!important}.pt-2{padding-top:.5rem!important}.pt-3{padding-top:1rem!important}.pt-4{padding-top:1.5rem!important}.pt-5{padding-top:3rem!important}.pe-0{padding-right:0!important}.pe-1{padding-right:.25rem!important}.pe-2{padding-right:.5rem!important}.pe-3{padding-right:1rem!important}.pe-4{padding-right:1.5rem!important}.pe-5{padding-right:3rem!important}.pb-0{padding-bottom:0!important}.pb-1{padding-bottom:.25rem!important}.pb-2{padding-bottom:.5rem!important}.pb-3{padding-bottom:1rem!important}.pb-4{padding-bottom:1.5rem!important}.pb-5{padding-bottom:3rem!important}.ps-0{padding-left:0!important}.ps-1{padding-left:.25rem!important}.ps-2{padding-left:.5rem!important}.ps-3{padding-left:1rem!important}.ps-4{padding-left:1.5rem!important}.ps-5{padding-left:3rem!important}.font-monospace{font-family:var(--bs-font-monospace)!important}.fs-1{font-size:calc(1.375rem + 1.5vw)!important}.fs-2{font-size:calc(1.325rem + .9vw)!important}.fs-3{font-size:calc(1.3rem + .6vw)!important}.fs-4{font-size:calc(1.275rem + .3vw)!important}.fs-5{font-size:1.25rem!important}.fs-6{font-size:1rem!important}.fst-italic{font-style:italic!important}.fst-normal{font-style:normal!important}.fw-light{font-weight:300!important}.fw-lighter{font-weight:lighter!important}.fw-normal{font-weight:400!important}.fw-bold{font-weight:700!important}.fw-bolder{font-weight:bolder!important}.lh-1{line-height:1!important}.lh-sm{line-height:1.25!important}.lh-base{line-height:1.5!important}.lh-lg{line-height:2!important}.text-start{text-align:left!important}.text-end{text-align:right!important}.text-center{text-align:center!important}.text-decoration-none{text-decoration:none!important}.text-decoration-underline{text-decoration:underline!important}.text-decoration-line-through{text-decoration:line-through!important}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-break{word-wrap:break-word!important;word-break:break-word!important}.text-primary{--bs-text-opacity:1;color:rgba(var(--bs-primary-rgb),var(--bs-text-opacity))!important}.text-secondary{--bs-text-opacity:1;color:rgba(var(--bs-secondary-rgb),var(--bs-text-opacity))!important}.text-success{--bs-text-opacity:1;color:rgba(var(--bs-success-rgb),var(--bs-text-opacity))!important}.text-info{--bs-text-opacity:1;color:rgba(var(--bs-info-rgb),var(--bs-text-opacity))!important}.text-warning{--bs-text-opacity:1;color:rgba(var(--bs-warning-rgb),var(--bs-text-opacity))!important}.text-danger{--bs-text-opacity:1;color:rgba(var(--bs-danger-rgb),var(--bs-text-opacity))!important}.text-light{--bs-text-opacity:1;color:rgba(var(--bs-light-rgb),var(--bs-text-opacity))!important}.text-dark{--bs-text-opacity:1;color:rgba(var(--bs-dark-rgb),var(--bs-text-opacity))!important}.text-black{--bs-text-opacity:1;color:rgba(var(--bs-black-rgb),var(--bs-text-opacity))!important}.text-white{--bs-text-opacity:1;color:rgba(var(--bs-white-rgb),var(--bs-text-opacity))!important}.text-body{--bs-text-opacity:1;color:rgba(var(--bs-body-rgb),var(--bs-text-opacity))!important}.text-muted{--bs-text-opacity:1;color:#6c757d!important}.text-black-50{--bs-text-opacity:1;color:rgba(0,0,0,.5)!important}.text-white-50{--bs-text-opacity:1;color:rgba(255,255,255,.5)!important}.text-reset{--bs-text-opacity:1;color:inherit!important}.text-opacity-25{--bs-text-opacity:0.25}.text-opacity-50{--bs-text-opacity:0.5}.text-opacity-75{--bs-text-opacity:0.75}.text-opacity-100{--bs-text-opacity:1}.bg-primary{--bs-bg-opacity:1;background-color:rgba(var(--bs-primary-rgb),var(--bs-bg-opacity))!important}.bg-secondary{--bs-bg-opacity:1;background-color:rgba(var(--bs-secondary-rgb),var(--bs-bg-opacity))!important}.bg-success{--bs-bg-opacity:1;background-color:rgba(var(--bs-success-rgb),var(--bs-bg-opacity))!important}.bg-info{--bs-bg-opacity:1;background-color:rgba(var(--bs-info-rgb),var(--bs-bg-opacity))!important}.bg-warning{--bs-bg-opacity:1;background-color:rgba(var(--bs-warning-rgb),var(--bs-bg-opacity))!important}.bg-danger{--bs-bg-opacity:1;background-color:rgba(var(--bs-danger-rgb),var(--bs-bg-opacity))!important}.bg-light{--bs-bg-opacity:1;background-color:rgba(var(--bs-light-rgb),var(--bs-bg-opacity))!important}.bg-dark{--bs-bg-opacity:1;background-color:rgba(var(--bs-dark-rgb),var(--bs-bg-opacity))!important}.bg-black{--bs-bg-opacity:1;background-color:rgba(var(--bs-black-rgb),var(--bs-bg-opacity))!important}.bg-white{--bs-bg-opacity:1;background-color:rgba(var(--bs-white-rgb),var(--bs-bg-opacity))!important}.bg-body{--bs-bg-opacity:1;background-color:rgba(var(--bs-body-rgb),var(--bs-bg-opacity))!important}.bg-transparent{--bs-bg-opacity:1;background-color:transparent!important}.bg-opacity-10{--bs-bg-opacity:0.1}.bg-opacity-25{--bs-bg-opacity:0.25}.bg-opacity-50{--bs-bg-opacity:0.5}.bg-opacity-75{--bs-bg-opacity:0.75}.bg-opacity-100{--bs-bg-opacity:1}.bg-gradient{background-image:var(--bs-gradient)!important}.user-select-all{-webkit-user-select:all!important;-moz-user-select:all!important;user-select:all!important}.user-select-auto{-webkit-user-select:auto!important;-moz-user-select:auto!important;user-select:auto!important}.user-select-none{-webkit-user-select:none!important;-moz-user-select:none!important;user-select:none!important}.pe-none{pointer-events:none!important}.pe-auto{pointer-events:auto!important}.rounded{border-radius:.25rem!important}.rounded-0{border-radius:0!important}.rounded-1{border-radius:.2rem!important}.rounded-2{border-radius:.25rem!important}.rounded-3{border-radius:.3rem!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:50rem!important}.rounded-top{border-top-left-radius:.25rem!important;border-top-right-radius:.25rem!important}.rounded-end{border-top-right-radius:.25rem!important;border-bottom-right-radius:.25rem!important}.rounded-bottom{border-bottom-right-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-start{border-bottom-left-radius:.25rem!important;border-top-left-radius:.25rem!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media (min-width:576px){.float-sm-start{float:left!important}.float-sm-end{float:right!important}.float-sm-none{float:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-grid{display:grid!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:flex!important}.d-sm-inline-flex{display:inline-flex!important}.d-sm-none{display:none!important}.flex-sm-fill{flex:1 1 auto!important}.flex-sm-row{flex-direction:row!important}.flex-sm-column{flex-direction:column!important}.flex-sm-row-reverse{flex-direction:row-reverse!important}.flex-sm-column-reverse{flex-direction:column-reverse!important}.flex-sm-grow-0{flex-grow:0!important}.flex-sm-grow-1{flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.gap-sm-0{gap:0!important}.gap-sm-1{gap:.25rem!important}.gap-sm-2{gap:.5rem!important}.gap-sm-3{gap:1rem!important}.gap-sm-4{gap:1.5rem!important}.gap-sm-5{gap:3rem!important}.justify-content-sm-start{justify-content:flex-start!important}.justify-content-sm-end{justify-content:flex-end!important}.justify-content-sm-center{justify-content:center!important}.justify-content-sm-between{justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.justify-content-sm-evenly{justify-content:space-evenly!important}.align-items-sm-start{align-items:flex-start!important}.align-items-sm-end{align-items:flex-end!important}.align-items-sm-center{align-items:center!important}.align-items-sm-baseline{align-items:baseline!important}.align-items-sm-stretch{align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}.order-sm-first{order:-1!important}.order-sm-0{order:0!important}.order-sm-1{order:1!important}.order-sm-2{order:2!important}.order-sm-3{order:3!important}.order-sm-4{order:4!important}.order-sm-5{order:5!important}.order-sm-last{order:6!important}.m-sm-0{margin:0!important}.m-sm-1{margin:.25rem!important}.m-sm-2{margin:.5rem!important}.m-sm-3{margin:1rem!important}.m-sm-4{margin:1.5rem!important}.m-sm-5{margin:3rem!important}.m-sm-auto{margin:auto!important}.mx-sm-0{margin-right:0!important;margin-left:0!important}.mx-sm-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-sm-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-sm-3{margin-right:1rem!important;margin-left:1rem!important}.mx-sm-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-sm-5{margin-right:3rem!important;margin-left:3rem!important}.mx-sm-auto{margin-right:auto!important;margin-left:auto!important}.my-sm-0{margin-top:0!important;margin-bottom:0!important}.my-sm-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-sm-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-sm-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-sm-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-sm-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-sm-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-sm-0{margin-top:0!important}.mt-sm-1{margin-top:.25rem!important}.mt-sm-2{margin-top:.5rem!important}.mt-sm-3{margin-top:1rem!important}.mt-sm-4{margin-top:1.5rem!important}.mt-sm-5{margin-top:3rem!important}.mt-sm-auto{margin-top:auto!important}.me-sm-0{margin-right:0!important}.me-sm-1{margin-right:.25rem!important}.me-sm-2{margin-right:.5rem!important}.me-sm-3{margin-right:1rem!important}.me-sm-4{margin-right:1.5rem!important}.me-sm-5{margin-right:3rem!important}.me-sm-auto{margin-right:auto!important}.mb-sm-0{margin-bottom:0!important}.mb-sm-1{margin-bottom:.25rem!important}.mb-sm-2{margin-bottom:.5rem!important}.mb-sm-3{margin-bottom:1rem!important}.mb-sm-4{margin-bottom:1.5rem!important}.mb-sm-5{margin-bottom:3rem!important}.mb-sm-auto{margin-bottom:auto!important}.ms-sm-0{margin-left:0!important}.ms-sm-1{margin-left:.25rem!important}.ms-sm-2{margin-left:.5rem!important}.ms-sm-3{margin-left:1rem!important}.ms-sm-4{margin-left:1.5rem!important}.ms-sm-5{margin-left:3rem!important}.ms-sm-auto{margin-left:auto!important}.p-sm-0{padding:0!important}.p-sm-1{padding:.25rem!important}.p-sm-2{padding:.5rem!important}.p-sm-3{padding:1rem!important}.p-sm-4{padding:1.5rem!important}.p-sm-5{padding:3rem!important}.px-sm-0{padding-right:0!important;padding-left:0!important}.px-sm-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-sm-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-sm-3{padding-right:1rem!important;padding-left:1rem!important}.px-sm-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-sm-5{padding-right:3rem!important;padding-left:3rem!important}.py-sm-0{padding-top:0!important;padding-bottom:0!important}.py-sm-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-sm-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-sm-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-sm-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-sm-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-sm-0{padding-top:0!important}.pt-sm-1{padding-top:.25rem!important}.pt-sm-2{padding-top:.5rem!important}.pt-sm-3{padding-top:1rem!important}.pt-sm-4{padding-top:1.5rem!important}.pt-sm-5{padding-top:3rem!important}.pe-sm-0{padding-right:0!important}.pe-sm-1{padding-right:.25rem!important}.pe-sm-2{padding-right:.5rem!important}.pe-sm-3{padding-right:1rem!important}.pe-sm-4{padding-right:1.5rem!important}.pe-sm-5{padding-right:3rem!important}.pb-sm-0{padding-bottom:0!important}.pb-sm-1{padding-bottom:.25rem!important}.pb-sm-2{padding-bottom:.5rem!important}.pb-sm-3{padding-bottom:1rem!important}.pb-sm-4{padding-bottom:1.5rem!important}.pb-sm-5{padding-bottom:3rem!important}.ps-sm-0{padding-left:0!important}.ps-sm-1{padding-left:.25rem!important}.ps-sm-2{padding-left:.5rem!important}.ps-sm-3{padding-left:1rem!important}.ps-sm-4{padding-left:1.5rem!important}.ps-sm-5{padding-left:3rem!important}.text-sm-start{text-align:left!important}.text-sm-end{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.float-md-start{float:left!important}.float-md-end{float:right!important}.float-md-none{float:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-grid{display:grid!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:flex!important}.d-md-inline-flex{display:inline-flex!important}.d-md-none{display:none!important}.flex-md-fill{flex:1 1 auto!important}.flex-md-row{flex-direction:row!important}.flex-md-column{flex-direction:column!important}.flex-md-row-reverse{flex-direction:row-reverse!important}.flex-md-column-reverse{flex-direction:column-reverse!important}.flex-md-grow-0{flex-grow:0!important}.flex-md-grow-1{flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.gap-md-0{gap:0!important}.gap-md-1{gap:.25rem!important}.gap-md-2{gap:.5rem!important}.gap-md-3{gap:1rem!important}.gap-md-4{gap:1.5rem!important}.gap-md-5{gap:3rem!important}.justify-content-md-start{justify-content:flex-start!important}.justify-content-md-end{justify-content:flex-end!important}.justify-content-md-center{justify-content:center!important}.justify-content-md-between{justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.justify-content-md-evenly{justify-content:space-evenly!important}.align-items-md-start{align-items:flex-start!important}.align-items-md-end{align-items:flex-end!important}.align-items-md-center{align-items:center!important}.align-items-md-baseline{align-items:baseline!important}.align-items-md-stretch{align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}.order-md-first{order:-1!important}.order-md-0{order:0!important}.order-md-1{order:1!important}.order-md-2{order:2!important}.order-md-3{order:3!important}.order-md-4{order:4!important}.order-md-5{order:5!important}.order-md-last{order:6!important}.m-md-0{margin:0!important}.m-md-1{margin:.25rem!important}.m-md-2{margin:.5rem!important}.m-md-3{margin:1rem!important}.m-md-4{margin:1.5rem!important}.m-md-5{margin:3rem!important}.m-md-auto{margin:auto!important}.mx-md-0{margin-right:0!important;margin-left:0!important}.mx-md-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-md-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-md-3{margin-right:1rem!important;margin-left:1rem!important}.mx-md-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-md-5{margin-right:3rem!important;margin-left:3rem!important}.mx-md-auto{margin-right:auto!important;margin-left:auto!important}.my-md-0{margin-top:0!important;margin-bottom:0!important}.my-md-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-md-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-md-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-md-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-md-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-md-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-md-0{margin-top:0!important}.mt-md-1{margin-top:.25rem!important}.mt-md-2{margin-top:.5rem!important}.mt-md-3{margin-top:1rem!important}.mt-md-4{margin-top:1.5rem!important}.mt-md-5{margin-top:3rem!important}.mt-md-auto{margin-top:auto!important}.me-md-0{margin-right:0!important}.me-md-1{margin-right:.25rem!important}.me-md-2{margin-right:.5rem!important}.me-md-3{margin-right:1rem!important}.me-md-4{margin-right:1.5rem!important}.me-md-5{margin-right:3rem!important}.me-md-auto{margin-right:auto!important}.mb-md-0{margin-bottom:0!important}.mb-md-1{margin-bottom:.25rem!important}.mb-md-2{margin-bottom:.5rem!important}.mb-md-3{margin-bottom:1rem!important}.mb-md-4{margin-bottom:1.5rem!important}.mb-md-5{margin-bottom:3rem!important}.mb-md-auto{margin-bottom:auto!important}.ms-md-0{margin-left:0!important}.ms-md-1{margin-left:.25rem!important}.ms-md-2{margin-left:.5rem!important}.ms-md-3{margin-left:1rem!important}.ms-md-4{margin-left:1.5rem!important}.ms-md-5{margin-left:3rem!important}.ms-md-auto{margin-left:auto!important}.p-md-0{padding:0!important}.p-md-1{padding:.25rem!important}.p-md-2{padding:.5rem!important}.p-md-3{padding:1rem!important}.p-md-4{padding:1.5rem!important}.p-md-5{padding:3rem!important}.px-md-0{padding-right:0!important;padding-left:0!important}.px-md-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-md-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-md-3{padding-right:1rem!important;padding-left:1rem!important}.px-md-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-md-5{padding-right:3rem!important;padding-left:3rem!important}.py-md-0{padding-top:0!important;padding-bottom:0!important}.py-md-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-md-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-md-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-md-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-md-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-md-0{padding-top:0!important}.pt-md-1{padding-top:.25rem!important}.pt-md-2{padding-top:.5rem!important}.pt-md-3{padding-top:1rem!important}.pt-md-4{padding-top:1.5rem!important}.pt-md-5{padding-top:3rem!important}.pe-md-0{padding-right:0!important}.pe-md-1{padding-right:.25rem!important}.pe-md-2{padding-right:.5rem!important}.pe-md-3{padding-right:1rem!important}.pe-md-4{padding-right:1.5rem!important}.pe-md-5{padding-right:3rem!important}.pb-md-0{padding-bottom:0!important}.pb-md-1{padding-bottom:.25rem!important}.pb-md-2{padding-bottom:.5rem!important}.pb-md-3{padding-bottom:1rem!important}.pb-md-4{padding-bottom:1.5rem!important}.pb-md-5{padding-bottom:3rem!important}.ps-md-0{padding-left:0!important}.ps-md-1{padding-left:.25rem!important}.ps-md-2{padding-left:.5rem!important}.ps-md-3{padding-left:1rem!important}.ps-md-4{padding-left:1.5rem!important}.ps-md-5{padding-left:3rem!important}.text-md-start{text-align:left!important}.text-md-end{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.float-lg-start{float:left!important}.float-lg-end{float:right!important}.float-lg-none{float:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-grid{display:grid!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:flex!important}.d-lg-inline-flex{display:inline-flex!important}.d-lg-none{display:none!important}.flex-lg-fill{flex:1 1 auto!important}.flex-lg-row{flex-direction:row!important}.flex-lg-column{flex-direction:column!important}.flex-lg-row-reverse{flex-direction:row-reverse!important}.flex-lg-column-reverse{flex-direction:column-reverse!important}.flex-lg-grow-0{flex-grow:0!important}.flex-lg-grow-1{flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.gap-lg-0{gap:0!important}.gap-lg-1{gap:.25rem!important}.gap-lg-2{gap:.5rem!important}.gap-lg-3{gap:1rem!important}.gap-lg-4{gap:1.5rem!important}.gap-lg-5{gap:3rem!important}.justify-content-lg-start{justify-content:flex-start!important}.justify-content-lg-end{justify-content:flex-end!important}.justify-content-lg-center{justify-content:center!important}.justify-content-lg-between{justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.justify-content-lg-evenly{justify-content:space-evenly!important}.align-items-lg-start{align-items:flex-start!important}.align-items-lg-end{align-items:flex-end!important}.align-items-lg-center{align-items:center!important}.align-items-lg-baseline{align-items:baseline!important}.align-items-lg-stretch{align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}.order-lg-first{order:-1!important}.order-lg-0{order:0!important}.order-lg-1{order:1!important}.order-lg-2{order:2!important}.order-lg-3{order:3!important}.order-lg-4{order:4!important}.order-lg-5{order:5!important}.order-lg-last{order:6!important}.m-lg-0{margin:0!important}.m-lg-1{margin:.25rem!important}.m-lg-2{margin:.5rem!important}.m-lg-3{margin:1rem!important}.m-lg-4{margin:1.5rem!important}.m-lg-5{margin:3rem!important}.m-lg-auto{margin:auto!important}.mx-lg-0{margin-right:0!important;margin-left:0!important}.mx-lg-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-lg-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-lg-3{margin-right:1rem!important;margin-left:1rem!important}.mx-lg-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-lg-5{margin-right:3rem!important;margin-left:3rem!important}.mx-lg-auto{margin-right:auto!important;margin-left:auto!important}.my-lg-0{margin-top:0!important;margin-bottom:0!important}.my-lg-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-lg-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-lg-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-lg-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-lg-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-lg-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-lg-0{margin-top:0!important}.mt-lg-1{margin-top:.25rem!important}.mt-lg-2{margin-top:.5rem!important}.mt-lg-3{margin-top:1rem!important}.mt-lg-4{margin-top:1.5rem!important}.mt-lg-5{margin-top:3rem!important}.mt-lg-auto{margin-top:auto!important}.me-lg-0{margin-right:0!important}.me-lg-1{margin-right:.25rem!important}.me-lg-2{margin-right:.5rem!important}.me-lg-3{margin-right:1rem!important}.me-lg-4{margin-right:1.5rem!important}.me-lg-5{margin-right:3rem!important}.me-lg-auto{margin-right:auto!important}.mb-lg-0{margin-bottom:0!important}.mb-lg-1{margin-bottom:.25rem!important}.mb-lg-2{margin-bottom:.5rem!important}.mb-lg-3{margin-bottom:1rem!important}.mb-lg-4{margin-bottom:1.5rem!important}.mb-lg-5{margin-bottom:3rem!important}.mb-lg-auto{margin-bottom:auto!important}.ms-lg-0{margin-left:0!important}.ms-lg-1{margin-left:.25rem!important}.ms-lg-2{margin-left:.5rem!important}.ms-lg-3{margin-left:1rem!important}.ms-lg-4{margin-left:1.5rem!important}.ms-lg-5{margin-left:3rem!important}.ms-lg-auto{margin-left:auto!important}.p-lg-0{padding:0!important}.p-lg-1{padding:.25rem!important}.p-lg-2{padding:.5rem!important}.p-lg-3{padding:1rem!important}.p-lg-4{padding:1.5rem!important}.p-lg-5{padding:3rem!important}.px-lg-0{padding-right:0!important;padding-left:0!important}.px-lg-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-lg-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-lg-3{padding-right:1rem!important;padding-left:1rem!important}.px-lg-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-lg-5{padding-right:3rem!important;padding-left:3rem!important}.py-lg-0{padding-top:0!important;padding-bottom:0!important}.py-lg-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-lg-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-lg-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-lg-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-lg-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-lg-0{padding-top:0!important}.pt-lg-1{padding-top:.25rem!important}.pt-lg-2{padding-top:.5rem!important}.pt-lg-3{padding-top:1rem!important}.pt-lg-4{padding-top:1.5rem!important}.pt-lg-5{padding-top:3rem!important}.pe-lg-0{padding-right:0!important}.pe-lg-1{padding-right:.25rem!important}.pe-lg-2{padding-right:.5rem!important}.pe-lg-3{padding-right:1rem!important}.pe-lg-4{padding-right:1.5rem!important}.pe-lg-5{padding-right:3rem!important}.pb-lg-0{padding-bottom:0!important}.pb-lg-1{padding-bottom:.25rem!important}.pb-lg-2{padding-bottom:.5rem!important}.pb-lg-3{padding-bottom:1rem!important}.pb-lg-4{padding-bottom:1.5rem!important}.pb-lg-5{padding-bottom:3rem!important}.ps-lg-0{padding-left:0!important}.ps-lg-1{padding-left:.25rem!important}.ps-lg-2{padding-left:.5rem!important}.ps-lg-3{padding-left:1rem!important}.ps-lg-4{padding-left:1.5rem!important}.ps-lg-5{padding-left:3rem!important}.text-lg-start{text-align:left!important}.text-lg-end{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.float-xl-start{float:left!important}.float-xl-end{float:right!important}.float-xl-none{float:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-grid{display:grid!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:flex!important}.d-xl-inline-flex{display:inline-flex!important}.d-xl-none{display:none!important}.flex-xl-fill{flex:1 1 auto!important}.flex-xl-row{flex-direction:row!important}.flex-xl-column{flex-direction:column!important}.flex-xl-row-reverse{flex-direction:row-reverse!important}.flex-xl-column-reverse{flex-direction:column-reverse!important}.flex-xl-grow-0{flex-grow:0!important}.flex-xl-grow-1{flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.gap-xl-0{gap:0!important}.gap-xl-1{gap:.25rem!important}.gap-xl-2{gap:.5rem!important}.gap-xl-3{gap:1rem!important}.gap-xl-4{gap:1.5rem!important}.gap-xl-5{gap:3rem!important}.justify-content-xl-start{justify-content:flex-start!important}.justify-content-xl-end{justify-content:flex-end!important}.justify-content-xl-center{justify-content:center!important}.justify-content-xl-between{justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.justify-content-xl-evenly{justify-content:space-evenly!important}.align-items-xl-start{align-items:flex-start!important}.align-items-xl-end{align-items:flex-end!important}.align-items-xl-center{align-items:center!important}.align-items-xl-baseline{align-items:baseline!important}.align-items-xl-stretch{align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}.order-xl-first{order:-1!important}.order-xl-0{order:0!important}.order-xl-1{order:1!important}.order-xl-2{order:2!important}.order-xl-3{order:3!important}.order-xl-4{order:4!important}.order-xl-5{order:5!important}.order-xl-last{order:6!important}.m-xl-0{margin:0!important}.m-xl-1{margin:.25rem!important}.m-xl-2{margin:.5rem!important}.m-xl-3{margin:1rem!important}.m-xl-4{margin:1.5rem!important}.m-xl-5{margin:3rem!important}.m-xl-auto{margin:auto!important}.mx-xl-0{margin-right:0!important;margin-left:0!important}.mx-xl-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-xl-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-xl-3{margin-right:1rem!important;margin-left:1rem!important}.mx-xl-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-xl-5{margin-right:3rem!important;margin-left:3rem!important}.mx-xl-auto{margin-right:auto!important;margin-left:auto!important}.my-xl-0{margin-top:0!important;margin-bottom:0!important}.my-xl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-xl-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-xl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xl-0{margin-top:0!important}.mt-xl-1{margin-top:.25rem!important}.mt-xl-2{margin-top:.5rem!important}.mt-xl-3{margin-top:1rem!important}.mt-xl-4{margin-top:1.5rem!important}.mt-xl-5{margin-top:3rem!important}.mt-xl-auto{margin-top:auto!important}.me-xl-0{margin-right:0!important}.me-xl-1{margin-right:.25rem!important}.me-xl-2{margin-right:.5rem!important}.me-xl-3{margin-right:1rem!important}.me-xl-4{margin-right:1.5rem!important}.me-xl-5{margin-right:3rem!important}.me-xl-auto{margin-right:auto!important}.mb-xl-0{margin-bottom:0!important}.mb-xl-1{margin-bottom:.25rem!important}.mb-xl-2{margin-bottom:.5rem!important}.mb-xl-3{margin-bottom:1rem!important}.mb-xl-4{margin-bottom:1.5rem!important}.mb-xl-5{margin-bottom:3rem!important}.mb-xl-auto{margin-bottom:auto!important}.ms-xl-0{margin-left:0!important}.ms-xl-1{margin-left:.25rem!important}.ms-xl-2{margin-left:.5rem!important}.ms-xl-3{margin-left:1rem!important}.ms-xl-4{margin-left:1.5rem!important}.ms-xl-5{margin-left:3rem!important}.ms-xl-auto{margin-left:auto!important}.p-xl-0{padding:0!important}.p-xl-1{padding:.25rem!important}.p-xl-2{padding:.5rem!important}.p-xl-3{padding:1rem!important}.p-xl-4{padding:1.5rem!important}.p-xl-5{padding:3rem!important}.px-xl-0{padding-right:0!important;padding-left:0!important}.px-xl-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-xl-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-xl-3{padding-right:1rem!important;padding-left:1rem!important}.px-xl-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-xl-5{padding-right:3rem!important;padding-left:3rem!important}.py-xl-0{padding-top:0!important;padding-bottom:0!important}.py-xl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-xl-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-xl-0{padding-top:0!important}.pt-xl-1{padding-top:.25rem!important}.pt-xl-2{padding-top:.5rem!important}.pt-xl-3{padding-top:1rem!important}.pt-xl-4{padding-top:1.5rem!important}.pt-xl-5{padding-top:3rem!important}.pe-xl-0{padding-right:0!important}.pe-xl-1{padding-right:.25rem!important}.pe-xl-2{padding-right:.5rem!important}.pe-xl-3{padding-right:1rem!important}.pe-xl-4{padding-right:1.5rem!important}.pe-xl-5{padding-right:3rem!important}.pb-xl-0{padding-bottom:0!important}.pb-xl-1{padding-bottom:.25rem!important}.pb-xl-2{padding-bottom:.5rem!important}.pb-xl-3{padding-bottom:1rem!important}.pb-xl-4{padding-bottom:1.5rem!important}.pb-xl-5{padding-bottom:3rem!important}.ps-xl-0{padding-left:0!important}.ps-xl-1{padding-left:.25rem!important}.ps-xl-2{padding-left:.5rem!important}.ps-xl-3{padding-left:1rem!important}.ps-xl-4{padding-left:1.5rem!important}.ps-xl-5{padding-left:3rem!important}.text-xl-start{text-align:left!important}.text-xl-end{text-align:right!important}.text-xl-center{text-align:center!important}}@media (min-width:1400px){.float-xxl-start{float:left!important}.float-xxl-end{float:right!important}.float-xxl-none{float:none!important}.d-xxl-inline{display:inline!important}.d-xxl-inline-block{display:inline-block!important}.d-xxl-block{display:block!important}.d-xxl-grid{display:grid!important}.d-xxl-table{display:table!important}.d-xxl-table-row{display:table-row!important}.d-xxl-table-cell{display:table-cell!important}.d-xxl-flex{display:flex!important}.d-xxl-inline-flex{display:inline-flex!important}.d-xxl-none{display:none!important}.flex-xxl-fill{flex:1 1 auto!important}.flex-xxl-row{flex-direction:row!important}.flex-xxl-column{flex-direction:column!important}.flex-xxl-row-reverse{flex-direction:row-reverse!important}.flex-xxl-column-reverse{flex-direction:column-reverse!important}.flex-xxl-grow-0{flex-grow:0!important}.flex-xxl-grow-1{flex-grow:1!important}.flex-xxl-shrink-0{flex-shrink:0!important}.flex-xxl-shrink-1{flex-shrink:1!important}.flex-xxl-wrap{flex-wrap:wrap!important}.flex-xxl-nowrap{flex-wrap:nowrap!important}.flex-xxl-wrap-reverse{flex-wrap:wrap-reverse!important}.gap-xxl-0{gap:0!important}.gap-xxl-1{gap:.25rem!important}.gap-xxl-2{gap:.5rem!important}.gap-xxl-3{gap:1rem!important}.gap-xxl-4{gap:1.5rem!important}.gap-xxl-5{gap:3rem!important}.justify-content-xxl-start{justify-content:flex-start!important}.justify-content-xxl-end{justify-content:flex-end!important}.justify-content-xxl-center{justify-content:center!important}.justify-content-xxl-between{justify-content:space-between!important}.justify-content-xxl-around{justify-content:space-around!important}.justify-content-xxl-evenly{justify-content:space-evenly!important}.align-items-xxl-start{align-items:flex-start!important}.align-items-xxl-end{align-items:flex-end!important}.align-items-xxl-center{align-items:center!important}.align-items-xxl-baseline{align-items:baseline!important}.align-items-xxl-stretch{align-items:stretch!important}.align-content-xxl-start{align-content:flex-start!important}.align-content-xxl-end{align-content:flex-end!important}.align-content-xxl-center{align-content:center!important}.align-content-xxl-between{align-content:space-between!important}.align-content-xxl-around{align-content:space-around!important}.align-content-xxl-stretch{align-content:stretch!important}.align-self-xxl-auto{align-self:auto!important}.align-self-xxl-start{align-self:flex-start!important}.align-self-xxl-end{align-self:flex-end!important}.align-self-xxl-center{align-self:center!important}.align-self-xxl-baseline{align-self:baseline!important}.align-self-xxl-stretch{align-self:stretch!important}.order-xxl-first{order:-1!important}.order-xxl-0{order:0!important}.order-xxl-1{order:1!important}.order-xxl-2{order:2!important}.order-xxl-3{order:3!important}.order-xxl-4{order:4!important}.order-xxl-5{order:5!important}.order-xxl-last{order:6!important}.m-xxl-0{margin:0!important}.m-xxl-1{margin:.25rem!important}.m-xxl-2{margin:.5rem!important}.m-xxl-3{margin:1rem!important}.m-xxl-4{margin:1.5rem!important}.m-xxl-5{margin:3rem!important}.m-xxl-auto{margin:auto!important}.mx-xxl-0{margin-right:0!important;margin-left:0!important}.mx-xxl-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-xxl-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-xxl-3{margin-right:1rem!important;margin-left:1rem!important}.mx-xxl-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-xxl-5{margin-right:3rem!important;margin-left:3rem!important}.mx-xxl-auto{margin-right:auto!important;margin-left:auto!important}.my-xxl-0{margin-top:0!important;margin-bottom:0!important}.my-xxl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xxl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xxl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xxl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-xxl-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-xxl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xxl-0{margin-top:0!important}.mt-xxl-1{margin-top:.25rem!important}.mt-xxl-2{margin-top:.5rem!important}.mt-xxl-3{margin-top:1rem!important}.mt-xxl-4{margin-top:1.5rem!important}.mt-xxl-5{margin-top:3rem!important}.mt-xxl-auto{margin-top:auto!important}.me-xxl-0{margin-right:0!important}.me-xxl-1{margin-right:.25rem!important}.me-xxl-2{margin-right:.5rem!important}.me-xxl-3{margin-right:1rem!important}.me-xxl-4{margin-right:1.5rem!important}.me-xxl-5{margin-right:3rem!important}.me-xxl-auto{margin-right:auto!important}.mb-xxl-0{margin-bottom:0!important}.mb-xxl-1{margin-bottom:.25rem!important}.mb-xxl-2{margin-bottom:.5rem!important}.mb-xxl-3{margin-bottom:1rem!important}.mb-xxl-4{margin-bottom:1.5rem!important}.mb-xxl-5{margin-bottom:3rem!important}.mb-xxl-auto{margin-bottom:auto!important}.ms-xxl-0{margin-left:0!important}.ms-xxl-1{margin-left:.25rem!important}.ms-xxl-2{margin-left:.5rem!important}.ms-xxl-3{margin-left:1rem!important}.ms-xxl-4{margin-left:1.5rem!important}.ms-xxl-5{margin-left:3rem!important}.ms-xxl-auto{margin-left:auto!important}.p-xxl-0{padding:0!important}.p-xxl-1{padding:.25rem!important}.p-xxl-2{padding:.5rem!important}.p-xxl-3{padding:1rem!important}.p-xxl-4{padding:1.5rem!important}.p-xxl-5{padding:3rem!important}.px-xxl-0{padding-right:0!important;padding-left:0!important}.px-xxl-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-xxl-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-xxl-3{padding-right:1rem!important;padding-left:1rem!important}.px-xxl-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-xxl-5{padding-right:3rem!important;padding-left:3rem!important}.py-xxl-0{padding-top:0!important;padding-bottom:0!important}.py-xxl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xxl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xxl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xxl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-xxl-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-xxl-0{padding-top:0!important}.pt-xxl-1{padding-top:.25rem!important}.pt-xxl-2{padding-top:.5rem!important}.pt-xxl-3{padding-top:1rem!important}.pt-xxl-4{padding-top:1.5rem!important}.pt-xxl-5{padding-top:3rem!important}.pe-xxl-0{padding-right:0!important}.pe-xxl-1{padding-right:.25rem!important}.pe-xxl-2{padding-right:.5rem!important}.pe-xxl-3{padding-right:1rem!important}.pe-xxl-4{padding-right:1.5rem!important}.pe-xxl-5{padding-right:3rem!important}.pb-xxl-0{padding-bottom:0!important}.pb-xxl-1{padding-bottom:.25rem!important}.pb-xxl-2{padding-bottom:.5rem!important}.pb-xxl-3{padding-bottom:1rem!important}.pb-xxl-4{padding-bottom:1.5rem!important}.pb-xxl-5{padding-bottom:3rem!important}.ps-xxl-0{padding-left:0!important}.ps-xxl-1{padding-left:.25rem!important}.ps-xxl-2{padding-left:.5rem!important}.ps-xxl-3{padding-left:1rem!important}.ps-xxl-4{padding-left:1.5rem!important}.ps-xxl-5{padding-left:3rem!important}.text-xxl-start{text-align:left!important}.text-xxl-end{text-align:right!important}.text-xxl-center{text-align:center!important}}@media (min-width:1200px){.fs-1{font-size:2.5rem!important}.fs-2{font-size:2rem!important}.fs-3{font-size:1.75rem!important}.fs-4{font-size:1.5rem!important}}@media print{.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-grid{display:grid!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:flex!important}.d-print-inline-flex{display:inline-flex!important}.d-print-none{display:none!important}} /*# sourceMappingURL=bootstrap.min.css.map */ /*! - * Font Awesome Free 5.12.0 by @fontawesome - https://fontawesome.com + * Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) */ -.fa,.fab,.fad,.fal,.far,.fas{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1}.fa-lg{font-size:1.33333em;line-height:.75em;vertical-align:-.0667em}.fa-xs{font-size:.75em}.fa-sm{font-size:.875em}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:2.5em;padding-left:0}.fa-ul>li{position:relative}.fa-li{left:-2em;position:absolute;text-align:center;width:2em;line-height:inherit}.fa-border{border:.08em solid #eee;border-radius:.1em;padding:.2em .25em .15em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left,.fab.fa-pull-left,.fal.fa-pull-left,.far.fa-pull-left,.fas.fa-pull-left{margin-right:.3em}.fa.fa-pull-right,.fab.fa-pull-right,.fal.fa-pull-right,.far.fa-pull-right,.fas.fa-pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s linear infinite;animation:fa-spin 2s linear infinite}.fa-pulse{-webkit-animation:fa-spin 1s steps(8) infinite;animation:fa-spin 1s steps(8) infinite}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scaleX(-1);transform:scaleX(-1)}.fa-flip-vertical{-webkit-transform:scaleY(-1);transform:scaleY(-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical,.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{-webkit-transform:scale(-1);transform:scale(-1)}:root .fa-flip-both,:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270{-webkit-filter:none;filter:none}.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2.5em}.fa-stack-1x,.fa-stack-2x{left:0;position:absolute;text-align:center;width:100%}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-500px:before{content:"\f26e"}.fa-accessible-icon:before{content:"\f368"}.fa-accusoft:before{content:"\f369"}.fa-acquisitions-incorporated:before{content:"\f6af"}.fa-ad:before{content:"\f641"}.fa-address-book:before{content:"\f2b9"}.fa-address-card:before{content:"\f2bb"}.fa-adjust:before{content:"\f042"}.fa-adn:before{content:"\f170"}.fa-adobe:before{content:"\f778"}.fa-adversal:before{content:"\f36a"}.fa-affiliatetheme:before{content:"\f36b"}.fa-air-freshener:before{content:"\f5d0"}.fa-airbnb:before{content:"\f834"}.fa-algolia:before{content:"\f36c"}.fa-align-center:before{content:"\f037"}.fa-align-justify:before{content:"\f039"}.fa-align-left:before{content:"\f036"}.fa-align-right:before{content:"\f038"}.fa-alipay:before{content:"\f642"}.fa-allergies:before{content:"\f461"}.fa-amazon:before{content:"\f270"}.fa-amazon-pay:before{content:"\f42c"}.fa-ambulance:before{content:"\f0f9"}.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-amilia:before{content:"\f36d"}.fa-anchor:before{content:"\f13d"}.fa-android:before{content:"\f17b"}.fa-angellist:before{content:"\f209"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-down:before{content:"\f107"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angry:before{content:"\f556"}.fa-angrycreative:before{content:"\f36e"}.fa-angular:before{content:"\f420"}.fa-ankh:before{content:"\f644"}.fa-app-store:before{content:"\f36f"}.fa-app-store-ios:before{content:"\f370"}.fa-apper:before{content:"\f371"}.fa-apple:before{content:"\f179"}.fa-apple-alt:before{content:"\f5d1"}.fa-apple-pay:before{content:"\f415"}.fa-archive:before{content:"\f187"}.fa-archway:before{content:"\f557"}.fa-arrow-alt-circle-down:before{content:"\f358"}.fa-arrow-alt-circle-left:before{content:"\f359"}.fa-arrow-alt-circle-right:before{content:"\f35a"}.fa-arrow-alt-circle-up:before{content:"\f35b"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-down:before{content:"\f063"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrows-alt:before{content:"\f0b2"}.fa-arrows-alt-h:before{content:"\f337"}.fa-arrows-alt-v:before{content:"\f338"}.fa-artstation:before{content:"\f77a"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asterisk:before{content:"\f069"}.fa-asymmetrik:before{content:"\f372"}.fa-at:before{content:"\f1fa"}.fa-atlas:before{content:"\f558"}.fa-atlassian:before{content:"\f77b"}.fa-atom:before{content:"\f5d2"}.fa-audible:before{content:"\f373"}.fa-audio-description:before{content:"\f29e"}.fa-autoprefixer:before{content:"\f41c"}.fa-avianex:before{content:"\f374"}.fa-aviato:before{content:"\f421"}.fa-award:before{content:"\f559"}.fa-aws:before{content:"\f375"}.fa-baby:before{content:"\f77c"}.fa-baby-carriage:before{content:"\f77d"}.fa-backspace:before{content:"\f55a"}.fa-backward:before{content:"\f04a"}.fa-bacon:before{content:"\f7e5"}.fa-bahai:before{content:"\f666"}.fa-balance-scale:before{content:"\f24e"}.fa-balance-scale-left:before{content:"\f515"}.fa-balance-scale-right:before{content:"\f516"}.fa-ban:before{content:"\f05e"}.fa-band-aid:before{content:"\f462"}.fa-bandcamp:before{content:"\f2d5"}.fa-barcode:before{content:"\f02a"}.fa-bars:before{content:"\f0c9"}.fa-baseball-ball:before{content:"\f433"}.fa-basketball-ball:before{content:"\f434"}.fa-bath:before{content:"\f2cd"}.fa-battery-empty:before{content:"\f244"}.fa-battery-full:before{content:"\f240"}.fa-battery-half:before{content:"\f242"}.fa-battery-quarter:before{content:"\f243"}.fa-battery-three-quarters:before{content:"\f241"}.fa-battle-net:before{content:"\f835"}.fa-bed:before{content:"\f236"}.fa-beer:before{content:"\f0fc"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-bell:before{content:"\f0f3"}.fa-bell-slash:before{content:"\f1f6"}.fa-bezier-curve:before{content:"\f55b"}.fa-bible:before{content:"\f647"}.fa-bicycle:before{content:"\f206"}.fa-biking:before{content:"\f84a"}.fa-bimobject:before{content:"\f378"}.fa-binoculars:before{content:"\f1e5"}.fa-biohazard:before{content:"\f780"}.fa-birthday-cake:before{content:"\f1fd"}.fa-bitbucket:before{content:"\f171"}.fa-bitcoin:before{content:"\f379"}.fa-bity:before{content:"\f37a"}.fa-black-tie:before{content:"\f27e"}.fa-blackberry:before{content:"\f37b"}.fa-blender:before{content:"\f517"}.fa-blender-phone:before{content:"\f6b6"}.fa-blind:before{content:"\f29d"}.fa-blog:before{content:"\f781"}.fa-blogger:before{content:"\f37c"}.fa-blogger-b:before{content:"\f37d"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-bold:before{content:"\f032"}.fa-bolt:before{content:"\f0e7"}.fa-bomb:before{content:"\f1e2"}.fa-bone:before{content:"\f5d7"}.fa-bong:before{content:"\f55c"}.fa-book:before{content:"\f02d"}.fa-book-dead:before{content:"\f6b7"}.fa-book-medical:before{content:"\f7e6"}.fa-book-open:before{content:"\f518"}.fa-book-reader:before{content:"\f5da"}.fa-bookmark:before{content:"\f02e"}.fa-bootstrap:before{content:"\f836"}.fa-border-all:before{content:"\f84c"}.fa-border-none:before{content:"\f850"}.fa-border-style:before{content:"\f853"}.fa-bowling-ball:before{content:"\f436"}.fa-box:before{content:"\f466"}.fa-box-open:before{content:"\f49e"}.fa-boxes:before{content:"\f468"}.fa-braille:before{content:"\f2a1"}.fa-brain:before{content:"\f5dc"}.fa-bread-slice:before{content:"\f7ec"}.fa-briefcase:before{content:"\f0b1"}.fa-briefcase-medical:before{content:"\f469"}.fa-broadcast-tower:before{content:"\f519"}.fa-broom:before{content:"\f51a"}.fa-brush:before{content:"\f55d"}.fa-btc:before{content:"\f15a"}.fa-buffer:before{content:"\f837"}.fa-bug:before{content:"\f188"}.fa-building:before{content:"\f1ad"}.fa-bullhorn:before{content:"\f0a1"}.fa-bullseye:before{content:"\f140"}.fa-burn:before{content:"\f46a"}.fa-buromobelexperte:before{content:"\f37f"}.fa-bus:before{content:"\f207"}.fa-bus-alt:before{content:"\f55e"}.fa-business-time:before{content:"\f64a"}.fa-buy-n-large:before{content:"\f8a6"}.fa-buysellads:before{content:"\f20d"}.fa-calculator:before{content:"\f1ec"}.fa-calendar:before{content:"\f133"}.fa-calendar-alt:before{content:"\f073"}.fa-calendar-check:before{content:"\f274"}.fa-calendar-day:before{content:"\f783"}.fa-calendar-minus:before{content:"\f272"}.fa-calendar-plus:before{content:"\f271"}.fa-calendar-times:before{content:"\f273"}.fa-calendar-week:before{content:"\f784"}.fa-camera:before{content:"\f030"}.fa-camera-retro:before{content:"\f083"}.fa-campground:before{content:"\f6bb"}.fa-canadian-maple-leaf:before{content:"\f785"}.fa-candy-cane:before{content:"\f786"}.fa-cannabis:before{content:"\f55f"}.fa-capsules:before{content:"\f46b"}.fa-car:before{content:"\f1b9"}.fa-car-alt:before{content:"\f5de"}.fa-car-battery:before{content:"\f5df"}.fa-car-crash:before{content:"\f5e1"}.fa-car-side:before{content:"\f5e4"}.fa-caravan:before{content:"\f8ff"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-caret-square-down:before{content:"\f150"}.fa-caret-square-left:before{content:"\f191"}.fa-caret-square-right:before{content:"\f152"}.fa-caret-square-up:before{content:"\f151"}.fa-caret-up:before{content:"\f0d8"}.fa-carrot:before{content:"\f787"}.fa-cart-arrow-down:before{content:"\f218"}.fa-cart-plus:before{content:"\f217"}.fa-cash-register:before{content:"\f788"}.fa-cat:before{content:"\f6be"}.fa-cc-amazon-pay:before{content:"\f42d"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-apple-pay:before{content:"\f416"}.fa-cc-diners-club:before{content:"\f24c"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-cc-visa:before{content:"\f1f0"}.fa-centercode:before{content:"\f380"}.fa-centos:before{content:"\f789"}.fa-certificate:before{content:"\f0a3"}.fa-chair:before{content:"\f6c0"}.fa-chalkboard:before{content:"\f51b"}.fa-chalkboard-teacher:before{content:"\f51c"}.fa-charging-station:before{content:"\f5e7"}.fa-chart-area:before{content:"\f1fe"}.fa-chart-bar:before{content:"\f080"}.fa-chart-line:before{content:"\f201"}.fa-chart-pie:before{content:"\f200"}.fa-check:before{content:"\f00c"}.fa-check-circle:before{content:"\f058"}.fa-check-double:before{content:"\f560"}.fa-check-square:before{content:"\f14a"}.fa-cheese:before{content:"\f7ef"}.fa-chess:before{content:"\f439"}.fa-chess-bishop:before{content:"\f43a"}.fa-chess-board:before{content:"\f43c"}.fa-chess-king:before{content:"\f43f"}.fa-chess-knight:before{content:"\f441"}.fa-chess-pawn:before{content:"\f443"}.fa-chess-queen:before{content:"\f445"}.fa-chess-rook:before{content:"\f447"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-down:before{content:"\f078"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-chevron-up:before{content:"\f077"}.fa-child:before{content:"\f1ae"}.fa-chrome:before{content:"\f268"}.fa-chromecast:before{content:"\f838"}.fa-church:before{content:"\f51d"}.fa-circle:before{content:"\f111"}.fa-circle-notch:before{content:"\f1ce"}.fa-city:before{content:"\f64f"}.fa-clinic-medical:before{content:"\f7f2"}.fa-clipboard:before{content:"\f328"}.fa-clipboard-check:before{content:"\f46c"}.fa-clipboard-list:before{content:"\f46d"}.fa-clock:before{content:"\f017"}.fa-clone:before{content:"\f24d"}.fa-closed-captioning:before{content:"\f20a"}.fa-cloud:before{content:"\f0c2"}.fa-cloud-download-alt:before{content:"\f381"}.fa-cloud-meatball:before{content:"\f73b"}.fa-cloud-moon:before{content:"\f6c3"}.fa-cloud-moon-rain:before{content:"\f73c"}.fa-cloud-rain:before{content:"\f73d"}.fa-cloud-showers-heavy:before{content:"\f740"}.fa-cloud-sun:before{content:"\f6c4"}.fa-cloud-sun-rain:before{content:"\f743"}.fa-cloud-upload-alt:before{content:"\f382"}.fa-cloudscale:before{content:"\f383"}.fa-cloudsmith:before{content:"\f384"}.fa-cloudversify:before{content:"\f385"}.fa-cocktail:before{content:"\f561"}.fa-code:before{content:"\f121"}.fa-code-branch:before{content:"\f126"}.fa-codepen:before{content:"\f1cb"}.fa-codiepie:before{content:"\f284"}.fa-coffee:before{content:"\f0f4"}.fa-cog:before{content:"\f013"}.fa-cogs:before{content:"\f085"}.fa-coins:before{content:"\f51e"}.fa-columns:before{content:"\f0db"}.fa-comment:before{content:"\f075"}.fa-comment-alt:before{content:"\f27a"}.fa-comment-dollar:before{content:"\f651"}.fa-comment-dots:before{content:"\f4ad"}.fa-comment-medical:before{content:"\f7f5"}.fa-comment-slash:before{content:"\f4b3"}.fa-comments:before{content:"\f086"}.fa-comments-dollar:before{content:"\f653"}.fa-compact-disc:before{content:"\f51f"}.fa-compass:before{content:"\f14e"}.fa-compress:before{content:"\f066"}.fa-compress-alt:before{content:"\f422"}.fa-compress-arrows-alt:before{content:"\f78c"}.fa-concierge-bell:before{content:"\f562"}.fa-confluence:before{content:"\f78d"}.fa-connectdevelop:before{content:"\f20e"}.fa-contao:before{content:"\f26d"}.fa-cookie:before{content:"\f563"}.fa-cookie-bite:before{content:"\f564"}.fa-copy:before{content:"\f0c5"}.fa-copyright:before{content:"\f1f9"}.fa-cotton-bureau:before{content:"\f89e"}.fa-couch:before{content:"\f4b8"}.fa-cpanel:before{content:"\f388"}.fa-creative-commons:before{content:"\f25e"}.fa-creative-commons-by:before{content:"\f4e7"}.fa-creative-commons-nc:before{content:"\f4e8"}.fa-creative-commons-nc-eu:before{content:"\f4e9"}.fa-creative-commons-nc-jp:before{content:"\f4ea"}.fa-creative-commons-nd:before{content:"\f4eb"}.fa-creative-commons-pd:before{content:"\f4ec"}.fa-creative-commons-pd-alt:before{content:"\f4ed"}.fa-creative-commons-remix:before{content:"\f4ee"}.fa-creative-commons-sa:before{content:"\f4ef"}.fa-creative-commons-sampling:before{content:"\f4f0"}.fa-creative-commons-sampling-plus:before{content:"\f4f1"}.fa-creative-commons-share:before{content:"\f4f2"}.fa-creative-commons-zero:before{content:"\f4f3"}.fa-credit-card:before{content:"\f09d"}.fa-critical-role:before{content:"\f6c9"}.fa-crop:before{content:"\f125"}.fa-crop-alt:before{content:"\f565"}.fa-cross:before{content:"\f654"}.fa-crosshairs:before{content:"\f05b"}.fa-crow:before{content:"\f520"}.fa-crown:before{content:"\f521"}.fa-crutch:before{content:"\f7f7"}.fa-css3:before{content:"\f13c"}.fa-css3-alt:before{content:"\f38b"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-cut:before{content:"\f0c4"}.fa-cuttlefish:before{content:"\f38c"}.fa-d-and-d:before{content:"\f38d"}.fa-d-and-d-beyond:before{content:"\f6ca"}.fa-dashcube:before{content:"\f210"}.fa-database:before{content:"\f1c0"}.fa-deaf:before{content:"\f2a4"}.fa-delicious:before{content:"\f1a5"}.fa-democrat:before{content:"\f747"}.fa-deploydog:before{content:"\f38e"}.fa-deskpro:before{content:"\f38f"}.fa-desktop:before{content:"\f108"}.fa-dev:before{content:"\f6cc"}.fa-deviantart:before{content:"\f1bd"}.fa-dharmachakra:before{content:"\f655"}.fa-dhl:before{content:"\f790"}.fa-diagnoses:before{content:"\f470"}.fa-diaspora:before{content:"\f791"}.fa-dice:before{content:"\f522"}.fa-dice-d20:before{content:"\f6cf"}.fa-dice-d6:before{content:"\f6d1"}.fa-dice-five:before{content:"\f523"}.fa-dice-four:before{content:"\f524"}.fa-dice-one:before{content:"\f525"}.fa-dice-six:before{content:"\f526"}.fa-dice-three:before{content:"\f527"}.fa-dice-two:before{content:"\f528"}.fa-digg:before{content:"\f1a6"}.fa-digital-ocean:before{content:"\f391"}.fa-digital-tachograph:before{content:"\f566"}.fa-directions:before{content:"\f5eb"}.fa-discord:before{content:"\f392"}.fa-discourse:before{content:"\f393"}.fa-divide:before{content:"\f529"}.fa-dizzy:before{content:"\f567"}.fa-dna:before{content:"\f471"}.fa-dochub:before{content:"\f394"}.fa-docker:before{content:"\f395"}.fa-dog:before{content:"\f6d3"}.fa-dollar-sign:before{content:"\f155"}.fa-dolly:before{content:"\f472"}.fa-dolly-flatbed:before{content:"\f474"}.fa-donate:before{content:"\f4b9"}.fa-door-closed:before{content:"\f52a"}.fa-door-open:before{content:"\f52b"}.fa-dot-circle:before{content:"\f192"}.fa-dove:before{content:"\f4ba"}.fa-download:before{content:"\f019"}.fa-draft2digital:before{content:"\f396"}.fa-drafting-compass:before{content:"\f568"}.fa-dragon:before{content:"\f6d5"}.fa-draw-polygon:before{content:"\f5ee"}.fa-dribbble:before{content:"\f17d"}.fa-dribbble-square:before{content:"\f397"}.fa-dropbox:before{content:"\f16b"}.fa-drum:before{content:"\f569"}.fa-drum-steelpan:before{content:"\f56a"}.fa-drumstick-bite:before{content:"\f6d7"}.fa-drupal:before{content:"\f1a9"}.fa-dumbbell:before{content:"\f44b"}.fa-dumpster:before{content:"\f793"}.fa-dumpster-fire:before{content:"\f794"}.fa-dungeon:before{content:"\f6d9"}.fa-dyalog:before{content:"\f399"}.fa-earlybirds:before{content:"\f39a"}.fa-ebay:before{content:"\f4f4"}.fa-edge:before{content:"\f282"}.fa-edit:before{content:"\f044"}.fa-egg:before{content:"\f7fb"}.fa-eject:before{content:"\f052"}.fa-elementor:before{content:"\f430"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-ello:before{content:"\f5f1"}.fa-ember:before{content:"\f423"}.fa-empire:before{content:"\f1d1"}.fa-envelope:before{content:"\f0e0"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-text:before{content:"\f658"}.fa-envelope-square:before{content:"\f199"}.fa-envira:before{content:"\f299"}.fa-equals:before{content:"\f52c"}.fa-eraser:before{content:"\f12d"}.fa-erlang:before{content:"\f39d"}.fa-ethereum:before{content:"\f42e"}.fa-ethernet:before{content:"\f796"}.fa-etsy:before{content:"\f2d7"}.fa-euro-sign:before{content:"\f153"}.fa-evernote:before{content:"\f839"}.fa-exchange-alt:before{content:"\f362"}.fa-exclamation:before{content:"\f12a"}.fa-exclamation-circle:before{content:"\f06a"}.fa-exclamation-triangle:before{content:"\f071"}.fa-expand:before{content:"\f065"}.fa-expand-alt:before{content:"\f424"}.fa-expand-arrows-alt:before{content:"\f31e"}.fa-expeditedssl:before{content:"\f23e"}.fa-external-link-alt:before{content:"\f35d"}.fa-external-link-square-alt:before{content:"\f360"}.fa-eye:before{content:"\f06e"}.fa-eye-dropper:before{content:"\f1fb"}.fa-eye-slash:before{content:"\f070"}.fa-facebook:before{content:"\f09a"}.fa-facebook-f:before{content:"\f39e"}.fa-facebook-messenger:before{content:"\f39f"}.fa-facebook-square:before{content:"\f082"}.fa-fan:before{content:"\f863"}.fa-fantasy-flight-games:before{content:"\f6dc"}.fa-fast-backward:before{content:"\f049"}.fa-fast-forward:before{content:"\f050"}.fa-fax:before{content:"\f1ac"}.fa-feather:before{content:"\f52d"}.fa-feather-alt:before{content:"\f56b"}.fa-fedex:before{content:"\f797"}.fa-fedora:before{content:"\f798"}.fa-female:before{content:"\f182"}.fa-fighter-jet:before{content:"\f0fb"}.fa-figma:before{content:"\f799"}.fa-file:before{content:"\f15b"}.fa-file-alt:before{content:"\f15c"}.fa-file-archive:before{content:"\f1c6"}.fa-file-audio:before{content:"\f1c7"}.fa-file-code:before{content:"\f1c9"}.fa-file-contract:before{content:"\f56c"}.fa-file-csv:before{content:"\f6dd"}.fa-file-download:before{content:"\f56d"}.fa-file-excel:before{content:"\f1c3"}.fa-file-export:before{content:"\f56e"}.fa-file-image:before{content:"\f1c5"}.fa-file-import:before{content:"\f56f"}.fa-file-invoice:before{content:"\f570"}.fa-file-invoice-dollar:before{content:"\f571"}.fa-file-medical:before{content:"\f477"}.fa-file-medical-alt:before{content:"\f478"}.fa-file-pdf:before{content:"\f1c1"}.fa-file-powerpoint:before{content:"\f1c4"}.fa-file-prescription:before{content:"\f572"}.fa-file-signature:before{content:"\f573"}.fa-file-upload:before{content:"\f574"}.fa-file-video:before{content:"\f1c8"}.fa-file-word:before{content:"\f1c2"}.fa-fill:before{content:"\f575"}.fa-fill-drip:before{content:"\f576"}.fa-film:before{content:"\f008"}.fa-filter:before{content:"\f0b0"}.fa-fingerprint:before{content:"\f577"}.fa-fire:before{content:"\f06d"}.fa-fire-alt:before{content:"\f7e4"}.fa-fire-extinguisher:before{content:"\f134"}.fa-firefox:before{content:"\f269"}.fa-firefox-browser:before{content:"\f907"}.fa-first-aid:before{content:"\f479"}.fa-first-order:before{content:"\f2b0"}.fa-first-order-alt:before{content:"\f50a"}.fa-firstdraft:before{content:"\f3a1"}.fa-fish:before{content:"\f578"}.fa-fist-raised:before{content:"\f6de"}.fa-flag:before{content:"\f024"}.fa-flag-checkered:before{content:"\f11e"}.fa-flag-usa:before{content:"\f74d"}.fa-flask:before{content:"\f0c3"}.fa-flickr:before{content:"\f16e"}.fa-flipboard:before{content:"\f44d"}.fa-flushed:before{content:"\f579"}.fa-fly:before{content:"\f417"}.fa-folder:before{content:"\f07b"}.fa-folder-minus:before{content:"\f65d"}.fa-folder-open:before{content:"\f07c"}.fa-folder-plus:before{content:"\f65e"}.fa-font:before{content:"\f031"}.fa-font-awesome:before{content:"\f2b4"}.fa-font-awesome-alt:before{content:"\f35c"}.fa-font-awesome-flag:before{content:"\f425"}.fa-font-awesome-logo-full:before{content:"\f4e6"}.fa-fonticons:before{content:"\f280"}.fa-fonticons-fi:before{content:"\f3a2"}.fa-football-ball:before{content:"\f44e"}.fa-fort-awesome:before{content:"\f286"}.fa-fort-awesome-alt:before{content:"\f3a3"}.fa-forumbee:before{content:"\f211"}.fa-forward:before{content:"\f04e"}.fa-foursquare:before{content:"\f180"}.fa-free-code-camp:before{content:"\f2c5"}.fa-freebsd:before{content:"\f3a4"}.fa-frog:before{content:"\f52e"}.fa-frown:before{content:"\f119"}.fa-frown-open:before{content:"\f57a"}.fa-fulcrum:before{content:"\f50b"}.fa-funnel-dollar:before{content:"\f662"}.fa-futbol:before{content:"\f1e3"}.fa-galactic-republic:before{content:"\f50c"}.fa-galactic-senate:before{content:"\f50d"}.fa-gamepad:before{content:"\f11b"}.fa-gas-pump:before{content:"\f52f"}.fa-gavel:before{content:"\f0e3"}.fa-gem:before{content:"\f3a5"}.fa-genderless:before{content:"\f22d"}.fa-get-pocket:before{content:"\f265"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-ghost:before{content:"\f6e2"}.fa-gift:before{content:"\f06b"}.fa-gifts:before{content:"\f79c"}.fa-git:before{content:"\f1d3"}.fa-git-alt:before{content:"\f841"}.fa-git-square:before{content:"\f1d2"}.fa-github:before{content:"\f09b"}.fa-github-alt:before{content:"\f113"}.fa-github-square:before{content:"\f092"}.fa-gitkraken:before{content:"\f3a6"}.fa-gitlab:before{content:"\f296"}.fa-gitter:before{content:"\f426"}.fa-glass-cheers:before{content:"\f79f"}.fa-glass-martini:before{content:"\f000"}.fa-glass-martini-alt:before{content:"\f57b"}.fa-glass-whiskey:before{content:"\f7a0"}.fa-glasses:before{content:"\f530"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-globe:before{content:"\f0ac"}.fa-globe-africa:before{content:"\f57c"}.fa-globe-americas:before{content:"\f57d"}.fa-globe-asia:before{content:"\f57e"}.fa-globe-europe:before{content:"\f7a2"}.fa-gofore:before{content:"\f3a7"}.fa-golf-ball:before{content:"\f450"}.fa-goodreads:before{content:"\f3a8"}.fa-goodreads-g:before{content:"\f3a9"}.fa-google:before{content:"\f1a0"}.fa-google-drive:before{content:"\f3aa"}.fa-google-play:before{content:"\f3ab"}.fa-google-plus:before{content:"\f2b3"}.fa-google-plus-g:before{content:"\f0d5"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-wallet:before{content:"\f1ee"}.fa-gopuram:before{content:"\f664"}.fa-graduation-cap:before{content:"\f19d"}.fa-gratipay:before{content:"\f184"}.fa-grav:before{content:"\f2d6"}.fa-greater-than:before{content:"\f531"}.fa-greater-than-equal:before{content:"\f532"}.fa-grimace:before{content:"\f57f"}.fa-grin:before{content:"\f580"}.fa-grin-alt:before{content:"\f581"}.fa-grin-beam:before{content:"\f582"}.fa-grin-beam-sweat:before{content:"\f583"}.fa-grin-hearts:before{content:"\f584"}.fa-grin-squint:before{content:"\f585"}.fa-grin-squint-tears:before{content:"\f586"}.fa-grin-stars:before{content:"\f587"}.fa-grin-tears:before{content:"\f588"}.fa-grin-tongue:before{content:"\f589"}.fa-grin-tongue-squint:before{content:"\f58a"}.fa-grin-tongue-wink:before{content:"\f58b"}.fa-grin-wink:before{content:"\f58c"}.fa-grip-horizontal:before{content:"\f58d"}.fa-grip-lines:before{content:"\f7a4"}.fa-grip-lines-vertical:before{content:"\f7a5"}.fa-grip-vertical:before{content:"\f58e"}.fa-gripfire:before{content:"\f3ac"}.fa-grunt:before{content:"\f3ad"}.fa-guitar:before{content:"\f7a6"}.fa-gulp:before{content:"\f3ae"}.fa-h-square:before{content:"\f0fd"}.fa-hacker-news:before{content:"\f1d4"}.fa-hacker-news-square:before{content:"\f3af"}.fa-hackerrank:before{content:"\f5f7"}.fa-hamburger:before{content:"\f805"}.fa-hammer:before{content:"\f6e3"}.fa-hamsa:before{content:"\f665"}.fa-hand-holding:before{content:"\f4bd"}.fa-hand-holding-heart:before{content:"\f4be"}.fa-hand-holding-usd:before{content:"\f4c0"}.fa-hand-lizard:before{content:"\f258"}.fa-hand-middle-finger:before{content:"\f806"}.fa-hand-paper:before{content:"\f256"}.fa-hand-peace:before{content:"\f25b"}.fa-hand-point-down:before{content:"\f0a7"}.fa-hand-point-left:before{content:"\f0a5"}.fa-hand-point-right:before{content:"\f0a4"}.fa-hand-point-up:before{content:"\f0a6"}.fa-hand-pointer:before{content:"\f25a"}.fa-hand-rock:before{content:"\f255"}.fa-hand-scissors:before{content:"\f257"}.fa-hand-spock:before{content:"\f259"}.fa-hands:before{content:"\f4c2"}.fa-hands-helping:before{content:"\f4c4"}.fa-handshake:before{content:"\f2b5"}.fa-hanukiah:before{content:"\f6e6"}.fa-hard-hat:before{content:"\f807"}.fa-hashtag:before{content:"\f292"}.fa-hat-cowboy:before{content:"\f8c0"}.fa-hat-cowboy-side:before{content:"\f8c1"}.fa-hat-wizard:before{content:"\f6e8"}.fa-hdd:before{content:"\f0a0"}.fa-heading:before{content:"\f1dc"}.fa-headphones:before{content:"\f025"}.fa-headphones-alt:before{content:"\f58f"}.fa-headset:before{content:"\f590"}.fa-heart:before{content:"\f004"}.fa-heart-broken:before{content:"\f7a9"}.fa-heartbeat:before{content:"\f21e"}.fa-helicopter:before{content:"\f533"}.fa-highlighter:before{content:"\f591"}.fa-hiking:before{content:"\f6ec"}.fa-hippo:before{content:"\f6ed"}.fa-hips:before{content:"\f452"}.fa-hire-a-helper:before{content:"\f3b0"}.fa-history:before{content:"\f1da"}.fa-hockey-puck:before{content:"\f453"}.fa-holly-berry:before{content:"\f7aa"}.fa-home:before{content:"\f015"}.fa-hooli:before{content:"\f427"}.fa-hornbill:before{content:"\f592"}.fa-horse:before{content:"\f6f0"}.fa-horse-head:before{content:"\f7ab"}.fa-hospital:before{content:"\f0f8"}.fa-hospital-alt:before{content:"\f47d"}.fa-hospital-symbol:before{content:"\f47e"}.fa-hot-tub:before{content:"\f593"}.fa-hotdog:before{content:"\f80f"}.fa-hotel:before{content:"\f594"}.fa-hotjar:before{content:"\f3b1"}.fa-hourglass:before{content:"\f254"}.fa-hourglass-end:before{content:"\f253"}.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-start:before{content:"\f251"}.fa-house-damage:before{content:"\f6f1"}.fa-houzz:before{content:"\f27c"}.fa-hryvnia:before{content:"\f6f2"}.fa-html5:before{content:"\f13b"}.fa-hubspot:before{content:"\f3b2"}.fa-i-cursor:before{content:"\f246"}.fa-ice-cream:before{content:"\f810"}.fa-icicles:before{content:"\f7ad"}.fa-icons:before{content:"\f86d"}.fa-id-badge:before{content:"\f2c1"}.fa-id-card:before{content:"\f2c2"}.fa-id-card-alt:before{content:"\f47f"}.fa-ideal:before{content:"\f913"}.fa-igloo:before{content:"\f7ae"}.fa-image:before{content:"\f03e"}.fa-images:before{content:"\f302"}.fa-imdb:before{content:"\f2d8"}.fa-inbox:before{content:"\f01c"}.fa-indent:before{content:"\f03c"}.fa-industry:before{content:"\f275"}.fa-infinity:before{content:"\f534"}.fa-info:before{content:"\f129"}.fa-info-circle:before{content:"\f05a"}.fa-instagram:before{content:"\f16d"}.fa-intercom:before{content:"\f7af"}.fa-internet-explorer:before{content:"\f26b"}.fa-invision:before{content:"\f7b0"}.fa-ioxhost:before{content:"\f208"}.fa-italic:before{content:"\f033"}.fa-itch-io:before{content:"\f83a"}.fa-itunes:before{content:"\f3b4"}.fa-itunes-note:before{content:"\f3b5"}.fa-java:before{content:"\f4e4"}.fa-jedi:before{content:"\f669"}.fa-jedi-order:before{content:"\f50e"}.fa-jenkins:before{content:"\f3b6"}.fa-jira:before{content:"\f7b1"}.fa-joget:before{content:"\f3b7"}.fa-joint:before{content:"\f595"}.fa-joomla:before{content:"\f1aa"}.fa-journal-whills:before{content:"\f66a"}.fa-js:before{content:"\f3b8"}.fa-js-square:before{content:"\f3b9"}.fa-jsfiddle:before{content:"\f1cc"}.fa-kaaba:before{content:"\f66b"}.fa-kaggle:before{content:"\f5fa"}.fa-key:before{content:"\f084"}.fa-keybase:before{content:"\f4f5"}.fa-keyboard:before{content:"\f11c"}.fa-keycdn:before{content:"\f3ba"}.fa-khanda:before{content:"\f66d"}.fa-kickstarter:before{content:"\f3bb"}.fa-kickstarter-k:before{content:"\f3bc"}.fa-kiss:before{content:"\f596"}.fa-kiss-beam:before{content:"\f597"}.fa-kiss-wink-heart:before{content:"\f598"}.fa-kiwi-bird:before{content:"\f535"}.fa-korvue:before{content:"\f42f"}.fa-landmark:before{content:"\f66f"}.fa-language:before{content:"\f1ab"}.fa-laptop:before{content:"\f109"}.fa-laptop-code:before{content:"\f5fc"}.fa-laptop-medical:before{content:"\f812"}.fa-laravel:before{content:"\f3bd"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-laugh:before{content:"\f599"}.fa-laugh-beam:before{content:"\f59a"}.fa-laugh-squint:before{content:"\f59b"}.fa-laugh-wink:before{content:"\f59c"}.fa-layer-group:before{content:"\f5fd"}.fa-leaf:before{content:"\f06c"}.fa-leanpub:before{content:"\f212"}.fa-lemon:before{content:"\f094"}.fa-less:before{content:"\f41d"}.fa-less-than:before{content:"\f536"}.fa-less-than-equal:before{content:"\f537"}.fa-level-down-alt:before{content:"\f3be"}.fa-level-up-alt:before{content:"\f3bf"}.fa-life-ring:before{content:"\f1cd"}.fa-lightbulb:before{content:"\f0eb"}.fa-line:before{content:"\f3c0"}.fa-link:before{content:"\f0c1"}.fa-linkedin:before{content:"\f08c"}.fa-linkedin-in:before{content:"\f0e1"}.fa-linode:before{content:"\f2b8"}.fa-linux:before{content:"\f17c"}.fa-lira-sign:before{content:"\f195"}.fa-list:before{content:"\f03a"}.fa-list-alt:before{content:"\f022"}.fa-list-ol:before{content:"\f0cb"}.fa-list-ul:before{content:"\f0ca"}.fa-location-arrow:before{content:"\f124"}.fa-lock:before{content:"\f023"}.fa-lock-open:before{content:"\f3c1"}.fa-long-arrow-alt-down:before{content:"\f309"}.fa-long-arrow-alt-left:before{content:"\f30a"}.fa-long-arrow-alt-right:before{content:"\f30b"}.fa-long-arrow-alt-up:before{content:"\f30c"}.fa-low-vision:before{content:"\f2a8"}.fa-luggage-cart:before{content:"\f59d"}.fa-lyft:before{content:"\f3c3"}.fa-magento:before{content:"\f3c4"}.fa-magic:before{content:"\f0d0"}.fa-magnet:before{content:"\f076"}.fa-mail-bulk:before{content:"\f674"}.fa-mailchimp:before{content:"\f59e"}.fa-male:before{content:"\f183"}.fa-mandalorian:before{content:"\f50f"}.fa-map:before{content:"\f279"}.fa-map-marked:before{content:"\f59f"}.fa-map-marked-alt:before{content:"\f5a0"}.fa-map-marker:before{content:"\f041"}.fa-map-marker-alt:before{content:"\f3c5"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-markdown:before{content:"\f60f"}.fa-marker:before{content:"\f5a1"}.fa-mars:before{content:"\f222"}.fa-mars-double:before{content:"\f227"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mask:before{content:"\f6fa"}.fa-mastodon:before{content:"\f4f6"}.fa-maxcdn:before{content:"\f136"}.fa-mdb:before{content:"\f8ca"}.fa-medal:before{content:"\f5a2"}.fa-medapps:before{content:"\f3c6"}.fa-medium:before{content:"\f23a"}.fa-medium-m:before{content:"\f3c7"}.fa-medkit:before{content:"\f0fa"}.fa-medrt:before{content:"\f3c8"}.fa-meetup:before{content:"\f2e0"}.fa-megaport:before{content:"\f5a3"}.fa-meh:before{content:"\f11a"}.fa-meh-blank:before{content:"\f5a4"}.fa-meh-rolling-eyes:before{content:"\f5a5"}.fa-memory:before{content:"\f538"}.fa-mendeley:before{content:"\f7b3"}.fa-menorah:before{content:"\f676"}.fa-mercury:before{content:"\f223"}.fa-meteor:before{content:"\f753"}.fa-microblog:before{content:"\f91a"}.fa-microchip:before{content:"\f2db"}.fa-microphone:before{content:"\f130"}.fa-microphone-alt:before{content:"\f3c9"}.fa-microphone-alt-slash:before{content:"\f539"}.fa-microphone-slash:before{content:"\f131"}.fa-microscope:before{content:"\f610"}.fa-microsoft:before{content:"\f3ca"}.fa-minus:before{content:"\f068"}.fa-minus-circle:before{content:"\f056"}.fa-minus-square:before{content:"\f146"}.fa-mitten:before{content:"\f7b5"}.fa-mix:before{content:"\f3cb"}.fa-mixcloud:before{content:"\f289"}.fa-mizuni:before{content:"\f3cc"}.fa-mobile:before{content:"\f10b"}.fa-mobile-alt:before{content:"\f3cd"}.fa-modx:before{content:"\f285"}.fa-monero:before{content:"\f3d0"}.fa-money-bill:before{content:"\f0d6"}.fa-money-bill-alt:before{content:"\f3d1"}.fa-money-bill-wave:before{content:"\f53a"}.fa-money-bill-wave-alt:before{content:"\f53b"}.fa-money-check:before{content:"\f53c"}.fa-money-check-alt:before{content:"\f53d"}.fa-monument:before{content:"\f5a6"}.fa-moon:before{content:"\f186"}.fa-mortar-pestle:before{content:"\f5a7"}.fa-mosque:before{content:"\f678"}.fa-motorcycle:before{content:"\f21c"}.fa-mountain:before{content:"\f6fc"}.fa-mouse:before{content:"\f8cc"}.fa-mouse-pointer:before{content:"\f245"}.fa-mug-hot:before{content:"\f7b6"}.fa-music:before{content:"\f001"}.fa-napster:before{content:"\f3d2"}.fa-neos:before{content:"\f612"}.fa-network-wired:before{content:"\f6ff"}.fa-neuter:before{content:"\f22c"}.fa-newspaper:before{content:"\f1ea"}.fa-nimblr:before{content:"\f5a8"}.fa-node:before{content:"\f419"}.fa-node-js:before{content:"\f3d3"}.fa-not-equal:before{content:"\f53e"}.fa-notes-medical:before{content:"\f481"}.fa-npm:before{content:"\f3d4"}.fa-ns8:before{content:"\f3d5"}.fa-nutritionix:before{content:"\f3d6"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-oil-can:before{content:"\f613"}.fa-old-republic:before{content:"\f510"}.fa-om:before{content:"\f679"}.fa-opencart:before{content:"\f23d"}.fa-openid:before{content:"\f19b"}.fa-opera:before{content:"\f26a"}.fa-optin-monster:before{content:"\f23c"}.fa-orcid:before{content:"\f8d2"}.fa-osi:before{content:"\f41a"}.fa-otter:before{content:"\f700"}.fa-outdent:before{content:"\f03b"}.fa-page4:before{content:"\f3d7"}.fa-pagelines:before{content:"\f18c"}.fa-pager:before{content:"\f815"}.fa-paint-brush:before{content:"\f1fc"}.fa-paint-roller:before{content:"\f5aa"}.fa-palette:before{content:"\f53f"}.fa-palfed:before{content:"\f3d8"}.fa-pallet:before{content:"\f482"}.fa-paper-plane:before{content:"\f1d8"}.fa-paperclip:before{content:"\f0c6"}.fa-parachute-box:before{content:"\f4cd"}.fa-paragraph:before{content:"\f1dd"}.fa-parking:before{content:"\f540"}.fa-passport:before{content:"\f5ab"}.fa-pastafarianism:before{content:"\f67b"}.fa-paste:before{content:"\f0ea"}.fa-patreon:before{content:"\f3d9"}.fa-pause:before{content:"\f04c"}.fa-pause-circle:before{content:"\f28b"}.fa-paw:before{content:"\f1b0"}.fa-paypal:before{content:"\f1ed"}.fa-peace:before{content:"\f67c"}.fa-pen:before{content:"\f304"}.fa-pen-alt:before{content:"\f305"}.fa-pen-fancy:before{content:"\f5ac"}.fa-pen-nib:before{content:"\f5ad"}.fa-pen-square:before{content:"\f14b"}.fa-pencil-alt:before{content:"\f303"}.fa-pencil-ruler:before{content:"\f5ae"}.fa-penny-arcade:before{content:"\f704"}.fa-people-carry:before{content:"\f4ce"}.fa-pepper-hot:before{content:"\f816"}.fa-percent:before{content:"\f295"}.fa-percentage:before{content:"\f541"}.fa-periscope:before{content:"\f3da"}.fa-person-booth:before{content:"\f756"}.fa-phabricator:before{content:"\f3db"}.fa-phoenix-framework:before{content:"\f3dc"}.fa-phoenix-squadron:before{content:"\f511"}.fa-phone:before{content:"\f095"}.fa-phone-alt:before{content:"\f879"}.fa-phone-slash:before{content:"\f3dd"}.fa-phone-square:before{content:"\f098"}.fa-phone-square-alt:before{content:"\f87b"}.fa-phone-volume:before{content:"\f2a0"}.fa-photo-video:before{content:"\f87c"}.fa-php:before{content:"\f457"}.fa-pied-piper:before{content:"\f2ae"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-pied-piper-hat:before{content:"\f4e5"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-pied-piper-square:before{content:"\f91e"}.fa-piggy-bank:before{content:"\f4d3"}.fa-pills:before{content:"\f484"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-p:before{content:"\f231"}.fa-pinterest-square:before{content:"\f0d3"}.fa-pizza-slice:before{content:"\f818"}.fa-place-of-worship:before{content:"\f67f"}.fa-plane:before{content:"\f072"}.fa-plane-arrival:before{content:"\f5af"}.fa-plane-departure:before{content:"\f5b0"}.fa-play:before{content:"\f04b"}.fa-play-circle:before{content:"\f144"}.fa-playstation:before{content:"\f3df"}.fa-plug:before{content:"\f1e6"}.fa-plus:before{content:"\f067"}.fa-plus-circle:before{content:"\f055"}.fa-plus-square:before{content:"\f0fe"}.fa-podcast:before{content:"\f2ce"}.fa-poll:before{content:"\f681"}.fa-poll-h:before{content:"\f682"}.fa-poo:before{content:"\f2fe"}.fa-poo-storm:before{content:"\f75a"}.fa-poop:before{content:"\f619"}.fa-portrait:before{content:"\f3e0"}.fa-pound-sign:before{content:"\f154"}.fa-power-off:before{content:"\f011"}.fa-pray:before{content:"\f683"}.fa-praying-hands:before{content:"\f684"}.fa-prescription:before{content:"\f5b1"}.fa-prescription-bottle:before{content:"\f485"}.fa-prescription-bottle-alt:before{content:"\f486"}.fa-print:before{content:"\f02f"}.fa-procedures:before{content:"\f487"}.fa-product-hunt:before{content:"\f288"}.fa-project-diagram:before{content:"\f542"}.fa-pushed:before{content:"\f3e1"}.fa-puzzle-piece:before{content:"\f12e"}.fa-python:before{content:"\f3e2"}.fa-qq:before{content:"\f1d6"}.fa-qrcode:before{content:"\f029"}.fa-question:before{content:"\f128"}.fa-question-circle:before{content:"\f059"}.fa-quidditch:before{content:"\f458"}.fa-quinscape:before{content:"\f459"}.fa-quora:before{content:"\f2c4"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-quran:before{content:"\f687"}.fa-r-project:before{content:"\f4f7"}.fa-radiation:before{content:"\f7b9"}.fa-radiation-alt:before{content:"\f7ba"}.fa-rainbow:before{content:"\f75b"}.fa-random:before{content:"\f074"}.fa-raspberry-pi:before{content:"\f7bb"}.fa-ravelry:before{content:"\f2d9"}.fa-react:before{content:"\f41b"}.fa-reacteurope:before{content:"\f75d"}.fa-readme:before{content:"\f4d5"}.fa-rebel:before{content:"\f1d0"}.fa-receipt:before{content:"\f543"}.fa-record-vinyl:before{content:"\f8d9"}.fa-recycle:before{content:"\f1b8"}.fa-red-river:before{content:"\f3e3"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-alien:before{content:"\f281"}.fa-reddit-square:before{content:"\f1a2"}.fa-redhat:before{content:"\f7bc"}.fa-redo:before{content:"\f01e"}.fa-redo-alt:before{content:"\f2f9"}.fa-registered:before{content:"\f25d"}.fa-remove-format:before{content:"\f87d"}.fa-renren:before{content:"\f18b"}.fa-reply:before{content:"\f3e5"}.fa-reply-all:before{content:"\f122"}.fa-replyd:before{content:"\f3e6"}.fa-republican:before{content:"\f75e"}.fa-researchgate:before{content:"\f4f8"}.fa-resolving:before{content:"\f3e7"}.fa-restroom:before{content:"\f7bd"}.fa-retweet:before{content:"\f079"}.fa-rev:before{content:"\f5b2"}.fa-ribbon:before{content:"\f4d6"}.fa-ring:before{content:"\f70b"}.fa-road:before{content:"\f018"}.fa-robot:before{content:"\f544"}.fa-rocket:before{content:"\f135"}.fa-rocketchat:before{content:"\f3e8"}.fa-rockrms:before{content:"\f3e9"}.fa-route:before{content:"\f4d7"}.fa-rss:before{content:"\f09e"}.fa-rss-square:before{content:"\f143"}.fa-ruble-sign:before{content:"\f158"}.fa-ruler:before{content:"\f545"}.fa-ruler-combined:before{content:"\f546"}.fa-ruler-horizontal:before{content:"\f547"}.fa-ruler-vertical:before{content:"\f548"}.fa-running:before{content:"\f70c"}.fa-rupee-sign:before{content:"\f156"}.fa-sad-cry:before{content:"\f5b3"}.fa-sad-tear:before{content:"\f5b4"}.fa-safari:before{content:"\f267"}.fa-salesforce:before{content:"\f83b"}.fa-sass:before{content:"\f41e"}.fa-satellite:before{content:"\f7bf"}.fa-satellite-dish:before{content:"\f7c0"}.fa-save:before{content:"\f0c7"}.fa-schlix:before{content:"\f3ea"}.fa-school:before{content:"\f549"}.fa-screwdriver:before{content:"\f54a"}.fa-scribd:before{content:"\f28a"}.fa-scroll:before{content:"\f70e"}.fa-sd-card:before{content:"\f7c2"}.fa-search:before{content:"\f002"}.fa-search-dollar:before{content:"\f688"}.fa-search-location:before{content:"\f689"}.fa-search-minus:before{content:"\f010"}.fa-search-plus:before{content:"\f00e"}.fa-searchengin:before{content:"\f3eb"}.fa-seedling:before{content:"\f4d8"}.fa-sellcast:before{content:"\f2da"}.fa-sellsy:before{content:"\f213"}.fa-server:before{content:"\f233"}.fa-servicestack:before{content:"\f3ec"}.fa-shapes:before{content:"\f61f"}.fa-share:before{content:"\f064"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-share-square:before{content:"\f14d"}.fa-shekel-sign:before{content:"\f20b"}.fa-shield-alt:before{content:"\f3ed"}.fa-ship:before{content:"\f21a"}.fa-shipping-fast:before{content:"\f48b"}.fa-shirtsinbulk:before{content:"\f214"}.fa-shoe-prints:before{content:"\f54b"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-shopping-cart:before{content:"\f07a"}.fa-shopware:before{content:"\f5b5"}.fa-shower:before{content:"\f2cc"}.fa-shuttle-van:before{content:"\f5b6"}.fa-sign:before{content:"\f4d9"}.fa-sign-in-alt:before{content:"\f2f6"}.fa-sign-language:before{content:"\f2a7"}.fa-sign-out-alt:before{content:"\f2f5"}.fa-signal:before{content:"\f012"}.fa-signature:before{content:"\f5b7"}.fa-sim-card:before{content:"\f7c4"}.fa-simplybuilt:before{content:"\f215"}.fa-sistrix:before{content:"\f3ee"}.fa-sitemap:before{content:"\f0e8"}.fa-sith:before{content:"\f512"}.fa-skating:before{content:"\f7c5"}.fa-sketch:before{content:"\f7c6"}.fa-skiing:before{content:"\f7c9"}.fa-skiing-nordic:before{content:"\f7ca"}.fa-skull:before{content:"\f54c"}.fa-skull-crossbones:before{content:"\f714"}.fa-skyatlas:before{content:"\f216"}.fa-skype:before{content:"\f17e"}.fa-slack:before{content:"\f198"}.fa-slack-hash:before{content:"\f3ef"}.fa-slash:before{content:"\f715"}.fa-sleigh:before{content:"\f7cc"}.fa-sliders-h:before{content:"\f1de"}.fa-slideshare:before{content:"\f1e7"}.fa-smile:before{content:"\f118"}.fa-smile-beam:before{content:"\f5b8"}.fa-smile-wink:before{content:"\f4da"}.fa-smog:before{content:"\f75f"}.fa-smoking:before{content:"\f48d"}.fa-smoking-ban:before{content:"\f54d"}.fa-sms:before{content:"\f7cd"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-snowboarding:before{content:"\f7ce"}.fa-snowflake:before{content:"\f2dc"}.fa-snowman:before{content:"\f7d0"}.fa-snowplow:before{content:"\f7d2"}.fa-socks:before{content:"\f696"}.fa-solar-panel:before{content:"\f5ba"}.fa-sort:before{content:"\f0dc"}.fa-sort-alpha-down:before{content:"\f15d"}.fa-sort-alpha-down-alt:before{content:"\f881"}.fa-sort-alpha-up:before{content:"\f15e"}.fa-sort-alpha-up-alt:before{content:"\f882"}.fa-sort-amount-down:before{content:"\f160"}.fa-sort-amount-down-alt:before{content:"\f884"}.fa-sort-amount-up:before{content:"\f161"}.fa-sort-amount-up-alt:before{content:"\f885"}.fa-sort-down:before{content:"\f0dd"}.fa-sort-numeric-down:before{content:"\f162"}.fa-sort-numeric-down-alt:before{content:"\f886"}.fa-sort-numeric-up:before{content:"\f163"}.fa-sort-numeric-up-alt:before{content:"\f887"}.fa-sort-up:before{content:"\f0de"}.fa-soundcloud:before{content:"\f1be"}.fa-sourcetree:before{content:"\f7d3"}.fa-spa:before{content:"\f5bb"}.fa-space-shuttle:before{content:"\f197"}.fa-speakap:before{content:"\f3f3"}.fa-speaker-deck:before{content:"\f83c"}.fa-spell-check:before{content:"\f891"}.fa-spider:before{content:"\f717"}.fa-spinner:before{content:"\f110"}.fa-splotch:before{content:"\f5bc"}.fa-spotify:before{content:"\f1bc"}.fa-spray-can:before{content:"\f5bd"}.fa-square:before{content:"\f0c8"}.fa-square-full:before{content:"\f45c"}.fa-square-root-alt:before{content:"\f698"}.fa-squarespace:before{content:"\f5be"}.fa-stack-exchange:before{content:"\f18d"}.fa-stack-overflow:before{content:"\f16c"}.fa-stackpath:before{content:"\f842"}.fa-stamp:before{content:"\f5bf"}.fa-star:before{content:"\f005"}.fa-star-and-crescent:before{content:"\f699"}.fa-star-half:before{content:"\f089"}.fa-star-half-alt:before{content:"\f5c0"}.fa-star-of-david:before{content:"\f69a"}.fa-star-of-life:before{content:"\f621"}.fa-staylinked:before{content:"\f3f5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-steam-symbol:before{content:"\f3f6"}.fa-step-backward:before{content:"\f048"}.fa-step-forward:before{content:"\f051"}.fa-stethoscope:before{content:"\f0f1"}.fa-sticker-mule:before{content:"\f3f7"}.fa-sticky-note:before{content:"\f249"}.fa-stop:before{content:"\f04d"}.fa-stop-circle:before{content:"\f28d"}.fa-stopwatch:before{content:"\f2f2"}.fa-store:before{content:"\f54e"}.fa-store-alt:before{content:"\f54f"}.fa-strava:before{content:"\f428"}.fa-stream:before{content:"\f550"}.fa-street-view:before{content:"\f21d"}.fa-strikethrough:before{content:"\f0cc"}.fa-stripe:before{content:"\f429"}.fa-stripe-s:before{content:"\f42a"}.fa-stroopwafel:before{content:"\f551"}.fa-studiovinari:before{content:"\f3f8"}.fa-stumbleupon:before{content:"\f1a4"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-subscript:before{content:"\f12c"}.fa-subway:before{content:"\f239"}.fa-suitcase:before{content:"\f0f2"}.fa-suitcase-rolling:before{content:"\f5c1"}.fa-sun:before{content:"\f185"}.fa-superpowers:before{content:"\f2dd"}.fa-superscript:before{content:"\f12b"}.fa-supple:before{content:"\f3f9"}.fa-surprise:before{content:"\f5c2"}.fa-suse:before{content:"\f7d6"}.fa-swatchbook:before{content:"\f5c3"}.fa-swift:before{content:"\f8e1"}.fa-swimmer:before{content:"\f5c4"}.fa-swimming-pool:before{content:"\f5c5"}.fa-symfony:before{content:"\f83d"}.fa-synagogue:before{content:"\f69b"}.fa-sync:before{content:"\f021"}.fa-sync-alt:before{content:"\f2f1"}.fa-syringe:before{content:"\f48e"}.fa-table:before{content:"\f0ce"}.fa-table-tennis:before{content:"\f45d"}.fa-tablet:before{content:"\f10a"}.fa-tablet-alt:before{content:"\f3fa"}.fa-tablets:before{content:"\f490"}.fa-tachometer-alt:before{content:"\f3fd"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-tape:before{content:"\f4db"}.fa-tasks:before{content:"\f0ae"}.fa-taxi:before{content:"\f1ba"}.fa-teamspeak:before{content:"\f4f9"}.fa-teeth:before{content:"\f62e"}.fa-teeth-open:before{content:"\f62f"}.fa-telegram:before{content:"\f2c6"}.fa-telegram-plane:before{content:"\f3fe"}.fa-temperature-high:before{content:"\f769"}.fa-temperature-low:before{content:"\f76b"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-tenge:before{content:"\f7d7"}.fa-terminal:before{content:"\f120"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-th:before{content:"\f00a"}.fa-th-large:before{content:"\f009"}.fa-th-list:before{content:"\f00b"}.fa-the-red-yeti:before{content:"\f69d"}.fa-theater-masks:before{content:"\f630"}.fa-themeco:before{content:"\f5c6"}.fa-themeisle:before{content:"\f2b2"}.fa-thermometer:before{content:"\f491"}.fa-thermometer-empty:before{content:"\f2cb"}.fa-thermometer-full:before{content:"\f2c7"}.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-think-peaks:before{content:"\f731"}.fa-thumbs-down:before{content:"\f165"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbtack:before{content:"\f08d"}.fa-ticket-alt:before{content:"\f3ff"}.fa-times:before{content:"\f00d"}.fa-times-circle:before{content:"\f057"}.fa-tint:before{content:"\f043"}.fa-tint-slash:before{content:"\f5c7"}.fa-tired:before{content:"\f5c8"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-toilet:before{content:"\f7d8"}.fa-toilet-paper:before{content:"\f71e"}.fa-toolbox:before{content:"\f552"}.fa-tools:before{content:"\f7d9"}.fa-tooth:before{content:"\f5c9"}.fa-torah:before{content:"\f6a0"}.fa-torii-gate:before{content:"\f6a1"}.fa-tractor:before{content:"\f722"}.fa-trade-federation:before{content:"\f513"}.fa-trademark:before{content:"\f25c"}.fa-traffic-light:before{content:"\f637"}.fa-trailer:before{content:"\f941"}.fa-train:before{content:"\f238"}.fa-tram:before{content:"\f7da"}.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-trash:before{content:"\f1f8"}.fa-trash-alt:before{content:"\f2ed"}.fa-trash-restore:before{content:"\f829"}.fa-trash-restore-alt:before{content:"\f82a"}.fa-tree:before{content:"\f1bb"}.fa-trello:before{content:"\f181"}.fa-tripadvisor:before{content:"\f262"}.fa-trophy:before{content:"\f091"}.fa-truck:before{content:"\f0d1"}.fa-truck-loading:before{content:"\f4de"}.fa-truck-monster:before{content:"\f63b"}.fa-truck-moving:before{content:"\f4df"}.fa-truck-pickup:before{content:"\f63c"}.fa-tshirt:before{content:"\f553"}.fa-tty:before{content:"\f1e4"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-tv:before{content:"\f26c"}.fa-twitch:before{content:"\f1e8"}.fa-twitter:before{content:"\f099"}.fa-twitter-square:before{content:"\f081"}.fa-typo3:before{content:"\f42b"}.fa-uber:before{content:"\f402"}.fa-ubuntu:before{content:"\f7df"}.fa-uikit:before{content:"\f403"}.fa-umbraco:before{content:"\f8e8"}.fa-umbrella:before{content:"\f0e9"}.fa-umbrella-beach:before{content:"\f5ca"}.fa-underline:before{content:"\f0cd"}.fa-undo:before{content:"\f0e2"}.fa-undo-alt:before{content:"\f2ea"}.fa-uniregistry:before{content:"\f404"}.fa-unity:before{content:"\f949"}.fa-universal-access:before{content:"\f29a"}.fa-university:before{content:"\f19c"}.fa-unlink:before{content:"\f127"}.fa-unlock:before{content:"\f09c"}.fa-unlock-alt:before{content:"\f13e"}.fa-untappd:before{content:"\f405"}.fa-upload:before{content:"\f093"}.fa-ups:before{content:"\f7e0"}.fa-usb:before{content:"\f287"}.fa-user:before{content:"\f007"}.fa-user-alt:before{content:"\f406"}.fa-user-alt-slash:before{content:"\f4fa"}.fa-user-astronaut:before{content:"\f4fb"}.fa-user-check:before{content:"\f4fc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-clock:before{content:"\f4fd"}.fa-user-cog:before{content:"\f4fe"}.fa-user-edit:before{content:"\f4ff"}.fa-user-friends:before{content:"\f500"}.fa-user-graduate:before{content:"\f501"}.fa-user-injured:before{content:"\f728"}.fa-user-lock:before{content:"\f502"}.fa-user-md:before{content:"\f0f0"}.fa-user-minus:before{content:"\f503"}.fa-user-ninja:before{content:"\f504"}.fa-user-nurse:before{content:"\f82f"}.fa-user-plus:before{content:"\f234"}.fa-user-secret:before{content:"\f21b"}.fa-user-shield:before{content:"\f505"}.fa-user-slash:before{content:"\f506"}.fa-user-tag:before{content:"\f507"}.fa-user-tie:before{content:"\f508"}.fa-user-times:before{content:"\f235"}.fa-users:before{content:"\f0c0"}.fa-users-cog:before{content:"\f509"}.fa-usps:before{content:"\f7e1"}.fa-ussunnah:before{content:"\f407"}.fa-utensil-spoon:before{content:"\f2e5"}.fa-utensils:before{content:"\f2e7"}.fa-vaadin:before{content:"\f408"}.fa-vector-square:before{content:"\f5cb"}.fa-venus:before{content:"\f221"}.fa-venus-double:before{content:"\f226"}.fa-venus-mars:before{content:"\f228"}.fa-viacoin:before{content:"\f237"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-vial:before{content:"\f492"}.fa-vials:before{content:"\f493"}.fa-viber:before{content:"\f409"}.fa-video:before{content:"\f03d"}.fa-video-slash:before{content:"\f4e2"}.fa-vihara:before{content:"\f6a7"}.fa-vimeo:before{content:"\f40a"}.fa-vimeo-square:before{content:"\f194"}.fa-vimeo-v:before{content:"\f27d"}.fa-vine:before{content:"\f1ca"}.fa-vk:before{content:"\f189"}.fa-vnv:before{content:"\f40b"}.fa-voicemail:before{content:"\f897"}.fa-volleyball-ball:before{content:"\f45f"}.fa-volume-down:before{content:"\f027"}.fa-volume-mute:before{content:"\f6a9"}.fa-volume-off:before{content:"\f026"}.fa-volume-up:before{content:"\f028"}.fa-vote-yea:before{content:"\f772"}.fa-vr-cardboard:before{content:"\f729"}.fa-vuejs:before{content:"\f41f"}.fa-walking:before{content:"\f554"}.fa-wallet:before{content:"\f555"}.fa-warehouse:before{content:"\f494"}.fa-water:before{content:"\f773"}.fa-wave-square:before{content:"\f83e"}.fa-waze:before{content:"\f83f"}.fa-weebly:before{content:"\f5cc"}.fa-weibo:before{content:"\f18a"}.fa-weight:before{content:"\f496"}.fa-weight-hanging:before{content:"\f5cd"}.fa-weixin:before{content:"\f1d7"}.fa-whatsapp:before{content:"\f232"}.fa-whatsapp-square:before{content:"\f40c"}.fa-wheelchair:before{content:"\f193"}.fa-whmcs:before{content:"\f40d"}.fa-wifi:before{content:"\f1eb"}.fa-wikipedia-w:before{content:"\f266"}.fa-wind:before{content:"\f72e"}.fa-window-close:before{content:"\f410"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-windows:before{content:"\f17a"}.fa-wine-bottle:before{content:"\f72f"}.fa-wine-glass:before{content:"\f4e3"}.fa-wine-glass-alt:before{content:"\f5ce"}.fa-wix:before{content:"\f5cf"}.fa-wizards-of-the-coast:before{content:"\f730"}.fa-wolf-pack-battalion:before{content:"\f514"}.fa-won-sign:before{content:"\f159"}.fa-wordpress:before{content:"\f19a"}.fa-wordpress-simple:before{content:"\f411"}.fa-wpbeginner:before{content:"\f297"}.fa-wpexplorer:before{content:"\f2de"}.fa-wpforms:before{content:"\f298"}.fa-wpressr:before{content:"\f3e4"}.fa-wrench:before{content:"\f0ad"}.fa-x-ray:before{content:"\f497"}.fa-xbox:before{content:"\f412"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-y-combinator:before{content:"\f23b"}.fa-yahoo:before{content:"\f19e"}.fa-yammer:before{content:"\f840"}.fa-yandex:before{content:"\f413"}.fa-yandex-international:before{content:"\f414"}.fa-yarn:before{content:"\f7e3"}.fa-yelp:before{content:"\f1e9"}.fa-yen-sign:before{content:"\f157"}.fa-yin-yang:before{content:"\f6ad"}.fa-yoast:before{content:"\f2b1"}.fa-youtube:before{content:"\f167"}.fa-youtube-square:before{content:"\f431"}.fa-zhihu:before{content:"\f63f"}.sr-only{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sr-only-focusable:active,.sr-only-focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}@font-face{font-family:"Font Awesome 5 Brands";font-style:normal;font-weight:normal;font-display:auto;src:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/fontawesome/webfonts/fa-brands-400.eot);src:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/fontawesome/webfonts/fa-brands-400.eot?#iefix) format("embedded-opentype"),url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/fontawesome/webfonts/fa-brands-400.woff2) format("woff2"),url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/fontawesome/webfonts/fa-brands-400.woff) format("woff"),url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/fontawesome/webfonts/fa-brands-400.ttf) format("truetype"),url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/fontawesome/webfonts/fa-brands-400.svg#fontawesome) format("svg")}.fab{font-family:"Font Awesome 5 Brands"}@font-face{font-family:"Font Awesome 5 Free";font-style:normal;font-weight:400;font-display:auto;src:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/fontawesome/webfonts/fa-regular-400.eot);src:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/fontawesome/webfonts/fa-regular-400.eot?#iefix) format("embedded-opentype"),url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/fontawesome/webfonts/fa-regular-400.woff2) format("woff2"),url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/fontawesome/webfonts/fa-regular-400.woff) format("woff"),url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/fontawesome/webfonts/fa-regular-400.ttf) format("truetype"),url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/fontawesome/webfonts/fa-regular-400.svg#fontawesome) format("svg")}.far{font-weight:400}@font-face{font-family:"Font Awesome 5 Free";font-style:normal;font-weight:900;font-display:auto;src:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/fontawesome/webfonts/fa-solid-900.eot);src:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/fontawesome/webfonts/fa-solid-900.eot?#iefix) format("embedded-opentype"),url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/fontawesome/webfonts/fa-solid-900.woff2) format("woff2"),url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/fontawesome/webfonts/fa-solid-900.woff) format("woff"),url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/fontawesome/webfonts/fa-solid-900.ttf) format("truetype"),url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/fontawesome/webfonts/fa-solid-900.svg#fontawesome) format("svg")}.fa,.far,.fas{font-family:"Font Awesome 5 Free"}.fa,.fas{font-weight:900} + .fa,.fab,.fad,.fal,.far,.fas{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1}.fa-lg{font-size:1.33333em;line-height:.75em;vertical-align:-.0667em}.fa-xs{font-size:.75em}.fa-sm{font-size:.875em}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:2.5em;padding-left:0}.fa-ul>li{position:relative}.fa-li{left:-2em;position:absolute;text-align:center;width:2em;line-height:inherit}.fa-border{border:.08em solid #eee;border-radius:.1em;padding:.2em .25em .15em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left,.fab.fa-pull-left,.fal.fa-pull-left,.far.fa-pull-left,.fas.fa-pull-left{margin-right:.3em}.fa.fa-pull-right,.fab.fa-pull-right,.fal.fa-pull-right,.far.fa-pull-right,.fas.fa-pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s linear infinite;animation:fa-spin 2s linear infinite}.fa-pulse{-webkit-animation:fa-spin 1s steps(8) infinite;animation:fa-spin 1s steps(8) infinite}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scaleX(-1);transform:scaleX(-1)}.fa-flip-vertical{-webkit-transform:scaleY(-1);transform:scaleY(-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical,.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{-webkit-transform:scale(-1);transform:scale(-1)}:root .fa-flip-both,:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270{-webkit-filter:none;filter:none}.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2.5em}.fa-stack-1x,.fa-stack-2x{left:0;position:absolute;text-align:center;width:100%}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-500px:before{content:"\f26e"}.fa-accessible-icon:before{content:"\f368"}.fa-accusoft:before{content:"\f369"}.fa-acquisitions-incorporated:before{content:"\f6af"}.fa-ad:before{content:"\f641"}.fa-address-book:before{content:"\f2b9"}.fa-address-card:before{content:"\f2bb"}.fa-adjust:before{content:"\f042"}.fa-adn:before{content:"\f170"}.fa-adversal:before{content:"\f36a"}.fa-affiliatetheme:before{content:"\f36b"}.fa-air-freshener:before{content:"\f5d0"}.fa-airbnb:before{content:"\f834"}.fa-algolia:before{content:"\f36c"}.fa-align-center:before{content:"\f037"}.fa-align-justify:before{content:"\f039"}.fa-align-left:before{content:"\f036"}.fa-align-right:before{content:"\f038"}.fa-alipay:before{content:"\f642"}.fa-allergies:before{content:"\f461"}.fa-amazon:before{content:"\f270"}.fa-amazon-pay:before{content:"\f42c"}.fa-ambulance:before{content:"\f0f9"}.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-amilia:before{content:"\f36d"}.fa-anchor:before{content:"\f13d"}.fa-android:before{content:"\f17b"}.fa-angellist:before{content:"\f209"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-down:before{content:"\f107"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angry:before{content:"\f556"}.fa-angrycreative:before{content:"\f36e"}.fa-angular:before{content:"\f420"}.fa-ankh:before{content:"\f644"}.fa-app-store:before{content:"\f36f"}.fa-app-store-ios:before{content:"\f370"}.fa-apper:before{content:"\f371"}.fa-apple:before{content:"\f179"}.fa-apple-alt:before{content:"\f5d1"}.fa-apple-pay:before{content:"\f415"}.fa-archive:before{content:"\f187"}.fa-archway:before{content:"\f557"}.fa-arrow-alt-circle-down:before{content:"\f358"}.fa-arrow-alt-circle-left:before{content:"\f359"}.fa-arrow-alt-circle-right:before{content:"\f35a"}.fa-arrow-alt-circle-up:before{content:"\f35b"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-down:before{content:"\f063"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrows-alt:before{content:"\f0b2"}.fa-arrows-alt-h:before{content:"\f337"}.fa-arrows-alt-v:before{content:"\f338"}.fa-artstation:before{content:"\f77a"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asterisk:before{content:"\f069"}.fa-asymmetrik:before{content:"\f372"}.fa-at:before{content:"\f1fa"}.fa-atlas:before{content:"\f558"}.fa-atlassian:before{content:"\f77b"}.fa-atom:before{content:"\f5d2"}.fa-audible:before{content:"\f373"}.fa-audio-description:before{content:"\f29e"}.fa-autoprefixer:before{content:"\f41c"}.fa-avianex:before{content:"\f374"}.fa-aviato:before{content:"\f421"}.fa-award:before{content:"\f559"}.fa-aws:before{content:"\f375"}.fa-baby:before{content:"\f77c"}.fa-baby-carriage:before{content:"\f77d"}.fa-backspace:before{content:"\f55a"}.fa-backward:before{content:"\f04a"}.fa-bacon:before{content:"\f7e5"}.fa-bacteria:before{content:"\e059"}.fa-bacterium:before{content:"\e05a"}.fa-bahai:before{content:"\f666"}.fa-balance-scale:before{content:"\f24e"}.fa-balance-scale-left:before{content:"\f515"}.fa-balance-scale-right:before{content:"\f516"}.fa-ban:before{content:"\f05e"}.fa-band-aid:before{content:"\f462"}.fa-bandcamp:before{content:"\f2d5"}.fa-barcode:before{content:"\f02a"}.fa-bars:before{content:"\f0c9"}.fa-baseball-ball:before{content:"\f433"}.fa-basketball-ball:before{content:"\f434"}.fa-bath:before{content:"\f2cd"}.fa-battery-empty:before{content:"\f244"}.fa-battery-full:before{content:"\f240"}.fa-battery-half:before{content:"\f242"}.fa-battery-quarter:before{content:"\f243"}.fa-battery-three-quarters:before{content:"\f241"}.fa-battle-net:before{content:"\f835"}.fa-bed:before{content:"\f236"}.fa-beer:before{content:"\f0fc"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-bell:before{content:"\f0f3"}.fa-bell-slash:before{content:"\f1f6"}.fa-bezier-curve:before{content:"\f55b"}.fa-bible:before{content:"\f647"}.fa-bicycle:before{content:"\f206"}.fa-biking:before{content:"\f84a"}.fa-bimobject:before{content:"\f378"}.fa-binoculars:before{content:"\f1e5"}.fa-biohazard:before{content:"\f780"}.fa-birthday-cake:before{content:"\f1fd"}.fa-bitbucket:before{content:"\f171"}.fa-bitcoin:before{content:"\f379"}.fa-bity:before{content:"\f37a"}.fa-black-tie:before{content:"\f27e"}.fa-blackberry:before{content:"\f37b"}.fa-blender:before{content:"\f517"}.fa-blender-phone:before{content:"\f6b6"}.fa-blind:before{content:"\f29d"}.fa-blog:before{content:"\f781"}.fa-blogger:before{content:"\f37c"}.fa-blogger-b:before{content:"\f37d"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-bold:before{content:"\f032"}.fa-bolt:before{content:"\f0e7"}.fa-bomb:before{content:"\f1e2"}.fa-bone:before{content:"\f5d7"}.fa-bong:before{content:"\f55c"}.fa-book:before{content:"\f02d"}.fa-book-dead:before{content:"\f6b7"}.fa-book-medical:before{content:"\f7e6"}.fa-book-open:before{content:"\f518"}.fa-book-reader:before{content:"\f5da"}.fa-bookmark:before{content:"\f02e"}.fa-bootstrap:before{content:"\f836"}.fa-border-all:before{content:"\f84c"}.fa-border-none:before{content:"\f850"}.fa-border-style:before{content:"\f853"}.fa-bowling-ball:before{content:"\f436"}.fa-box:before{content:"\f466"}.fa-box-open:before{content:"\f49e"}.fa-box-tissue:before{content:"\e05b"}.fa-boxes:before{content:"\f468"}.fa-braille:before{content:"\f2a1"}.fa-brain:before{content:"\f5dc"}.fa-bread-slice:before{content:"\f7ec"}.fa-briefcase:before{content:"\f0b1"}.fa-briefcase-medical:before{content:"\f469"}.fa-broadcast-tower:before{content:"\f519"}.fa-broom:before{content:"\f51a"}.fa-brush:before{content:"\f55d"}.fa-btc:before{content:"\f15a"}.fa-buffer:before{content:"\f837"}.fa-bug:before{content:"\f188"}.fa-building:before{content:"\f1ad"}.fa-bullhorn:before{content:"\f0a1"}.fa-bullseye:before{content:"\f140"}.fa-burn:before{content:"\f46a"}.fa-buromobelexperte:before{content:"\f37f"}.fa-bus:before{content:"\f207"}.fa-bus-alt:before{content:"\f55e"}.fa-business-time:before{content:"\f64a"}.fa-buy-n-large:before{content:"\f8a6"}.fa-buysellads:before{content:"\f20d"}.fa-calculator:before{content:"\f1ec"}.fa-calendar:before{content:"\f133"}.fa-calendar-alt:before{content:"\f073"}.fa-calendar-check:before{content:"\f274"}.fa-calendar-day:before{content:"\f783"}.fa-calendar-minus:before{content:"\f272"}.fa-calendar-plus:before{content:"\f271"}.fa-calendar-times:before{content:"\f273"}.fa-calendar-week:before{content:"\f784"}.fa-camera:before{content:"\f030"}.fa-camera-retro:before{content:"\f083"}.fa-campground:before{content:"\f6bb"}.fa-canadian-maple-leaf:before{content:"\f785"}.fa-candy-cane:before{content:"\f786"}.fa-cannabis:before{content:"\f55f"}.fa-capsules:before{content:"\f46b"}.fa-car:before{content:"\f1b9"}.fa-car-alt:before{content:"\f5de"}.fa-car-battery:before{content:"\f5df"}.fa-car-crash:before{content:"\f5e1"}.fa-car-side:before{content:"\f5e4"}.fa-caravan:before{content:"\f8ff"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-caret-square-down:before{content:"\f150"}.fa-caret-square-left:before{content:"\f191"}.fa-caret-square-right:before{content:"\f152"}.fa-caret-square-up:before{content:"\f151"}.fa-caret-up:before{content:"\f0d8"}.fa-carrot:before{content:"\f787"}.fa-cart-arrow-down:before{content:"\f218"}.fa-cart-plus:before{content:"\f217"}.fa-cash-register:before{content:"\f788"}.fa-cat:before{content:"\f6be"}.fa-cc-amazon-pay:before{content:"\f42d"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-apple-pay:before{content:"\f416"}.fa-cc-diners-club:before{content:"\f24c"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-cc-visa:before{content:"\f1f0"}.fa-centercode:before{content:"\f380"}.fa-centos:before{content:"\f789"}.fa-certificate:before{content:"\f0a3"}.fa-chair:before{content:"\f6c0"}.fa-chalkboard:before{content:"\f51b"}.fa-chalkboard-teacher:before{content:"\f51c"}.fa-charging-station:before{content:"\f5e7"}.fa-chart-area:before{content:"\f1fe"}.fa-chart-bar:before{content:"\f080"}.fa-chart-line:before{content:"\f201"}.fa-chart-pie:before{content:"\f200"}.fa-check:before{content:"\f00c"}.fa-check-circle:before{content:"\f058"}.fa-check-double:before{content:"\f560"}.fa-check-square:before{content:"\f14a"}.fa-cheese:before{content:"\f7ef"}.fa-chess:before{content:"\f439"}.fa-chess-bishop:before{content:"\f43a"}.fa-chess-board:before{content:"\f43c"}.fa-chess-king:before{content:"\f43f"}.fa-chess-knight:before{content:"\f441"}.fa-chess-pawn:before{content:"\f443"}.fa-chess-queen:before{content:"\f445"}.fa-chess-rook:before{content:"\f447"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-down:before{content:"\f078"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-chevron-up:before{content:"\f077"}.fa-child:before{content:"\f1ae"}.fa-chrome:before{content:"\f268"}.fa-chromecast:before{content:"\f838"}.fa-church:before{content:"\f51d"}.fa-circle:before{content:"\f111"}.fa-circle-notch:before{content:"\f1ce"}.fa-city:before{content:"\f64f"}.fa-clinic-medical:before{content:"\f7f2"}.fa-clipboard:before{content:"\f328"}.fa-clipboard-check:before{content:"\f46c"}.fa-clipboard-list:before{content:"\f46d"}.fa-clock:before{content:"\f017"}.fa-clone:before{content:"\f24d"}.fa-closed-captioning:before{content:"\f20a"}.fa-cloud:before{content:"\f0c2"}.fa-cloud-download-alt:before{content:"\f381"}.fa-cloud-meatball:before{content:"\f73b"}.fa-cloud-moon:before{content:"\f6c3"}.fa-cloud-moon-rain:before{content:"\f73c"}.fa-cloud-rain:before{content:"\f73d"}.fa-cloud-showers-heavy:before{content:"\f740"}.fa-cloud-sun:before{content:"\f6c4"}.fa-cloud-sun-rain:before{content:"\f743"}.fa-cloud-upload-alt:before{content:"\f382"}.fa-cloudflare:before{content:"\e07d"}.fa-cloudscale:before{content:"\f383"}.fa-cloudsmith:before{content:"\f384"}.fa-cloudversify:before{content:"\f385"}.fa-cocktail:before{content:"\f561"}.fa-code:before{content:"\f121"}.fa-code-branch:before{content:"\f126"}.fa-codepen:before{content:"\f1cb"}.fa-codiepie:before{content:"\f284"}.fa-coffee:before{content:"\f0f4"}.fa-cog:before{content:"\f013"}.fa-cogs:before{content:"\f085"}.fa-coins:before{content:"\f51e"}.fa-columns:before{content:"\f0db"}.fa-comment:before{content:"\f075"}.fa-comment-alt:before{content:"\f27a"}.fa-comment-dollar:before{content:"\f651"}.fa-comment-dots:before{content:"\f4ad"}.fa-comment-medical:before{content:"\f7f5"}.fa-comment-slash:before{content:"\f4b3"}.fa-comments:before{content:"\f086"}.fa-comments-dollar:before{content:"\f653"}.fa-compact-disc:before{content:"\f51f"}.fa-compass:before{content:"\f14e"}.fa-compress:before{content:"\f066"}.fa-compress-alt:before{content:"\f422"}.fa-compress-arrows-alt:before{content:"\f78c"}.fa-concierge-bell:before{content:"\f562"}.fa-confluence:before{content:"\f78d"}.fa-connectdevelop:before{content:"\f20e"}.fa-contao:before{content:"\f26d"}.fa-cookie:before{content:"\f563"}.fa-cookie-bite:before{content:"\f564"}.fa-copy:before{content:"\f0c5"}.fa-copyright:before{content:"\f1f9"}.fa-cotton-bureau:before{content:"\f89e"}.fa-couch:before{content:"\f4b8"}.fa-cpanel:before{content:"\f388"}.fa-creative-commons:before{content:"\f25e"}.fa-creative-commons-by:before{content:"\f4e7"}.fa-creative-commons-nc:before{content:"\f4e8"}.fa-creative-commons-nc-eu:before{content:"\f4e9"}.fa-creative-commons-nc-jp:before{content:"\f4ea"}.fa-creative-commons-nd:before{content:"\f4eb"}.fa-creative-commons-pd:before{content:"\f4ec"}.fa-creative-commons-pd-alt:before{content:"\f4ed"}.fa-creative-commons-remix:before{content:"\f4ee"}.fa-creative-commons-sa:before{content:"\f4ef"}.fa-creative-commons-sampling:before{content:"\f4f0"}.fa-creative-commons-sampling-plus:before{content:"\f4f1"}.fa-creative-commons-share:before{content:"\f4f2"}.fa-creative-commons-zero:before{content:"\f4f3"}.fa-credit-card:before{content:"\f09d"}.fa-critical-role:before{content:"\f6c9"}.fa-crop:before{content:"\f125"}.fa-crop-alt:before{content:"\f565"}.fa-cross:before{content:"\f654"}.fa-crosshairs:before{content:"\f05b"}.fa-crow:before{content:"\f520"}.fa-crown:before{content:"\f521"}.fa-crutch:before{content:"\f7f7"}.fa-css3:before{content:"\f13c"}.fa-css3-alt:before{content:"\f38b"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-cut:before{content:"\f0c4"}.fa-cuttlefish:before{content:"\f38c"}.fa-d-and-d:before{content:"\f38d"}.fa-d-and-d-beyond:before{content:"\f6ca"}.fa-dailymotion:before{content:"\e052"}.fa-dashcube:before{content:"\f210"}.fa-database:before{content:"\f1c0"}.fa-deaf:before{content:"\f2a4"}.fa-deezer:before{content:"\e077"}.fa-delicious:before{content:"\f1a5"}.fa-democrat:before{content:"\f747"}.fa-deploydog:before{content:"\f38e"}.fa-deskpro:before{content:"\f38f"}.fa-desktop:before{content:"\f108"}.fa-dev:before{content:"\f6cc"}.fa-deviantart:before{content:"\f1bd"}.fa-dharmachakra:before{content:"\f655"}.fa-dhl:before{content:"\f790"}.fa-diagnoses:before{content:"\f470"}.fa-diaspora:before{content:"\f791"}.fa-dice:before{content:"\f522"}.fa-dice-d20:before{content:"\f6cf"}.fa-dice-d6:before{content:"\f6d1"}.fa-dice-five:before{content:"\f523"}.fa-dice-four:before{content:"\f524"}.fa-dice-one:before{content:"\f525"}.fa-dice-six:before{content:"\f526"}.fa-dice-three:before{content:"\f527"}.fa-dice-two:before{content:"\f528"}.fa-digg:before{content:"\f1a6"}.fa-digital-ocean:before{content:"\f391"}.fa-digital-tachograph:before{content:"\f566"}.fa-directions:before{content:"\f5eb"}.fa-discord:before{content:"\f392"}.fa-discourse:before{content:"\f393"}.fa-disease:before{content:"\f7fa"}.fa-divide:before{content:"\f529"}.fa-dizzy:before{content:"\f567"}.fa-dna:before{content:"\f471"}.fa-dochub:before{content:"\f394"}.fa-docker:before{content:"\f395"}.fa-dog:before{content:"\f6d3"}.fa-dollar-sign:before{content:"\f155"}.fa-dolly:before{content:"\f472"}.fa-dolly-flatbed:before{content:"\f474"}.fa-donate:before{content:"\f4b9"}.fa-door-closed:before{content:"\f52a"}.fa-door-open:before{content:"\f52b"}.fa-dot-circle:before{content:"\f192"}.fa-dove:before{content:"\f4ba"}.fa-download:before{content:"\f019"}.fa-draft2digital:before{content:"\f396"}.fa-drafting-compass:before{content:"\f568"}.fa-dragon:before{content:"\f6d5"}.fa-draw-polygon:before{content:"\f5ee"}.fa-dribbble:before{content:"\f17d"}.fa-dribbble-square:before{content:"\f397"}.fa-dropbox:before{content:"\f16b"}.fa-drum:before{content:"\f569"}.fa-drum-steelpan:before{content:"\f56a"}.fa-drumstick-bite:before{content:"\f6d7"}.fa-drupal:before{content:"\f1a9"}.fa-dumbbell:before{content:"\f44b"}.fa-dumpster:before{content:"\f793"}.fa-dumpster-fire:before{content:"\f794"}.fa-dungeon:before{content:"\f6d9"}.fa-dyalog:before{content:"\f399"}.fa-earlybirds:before{content:"\f39a"}.fa-ebay:before{content:"\f4f4"}.fa-edge:before{content:"\f282"}.fa-edge-legacy:before{content:"\e078"}.fa-edit:before{content:"\f044"}.fa-egg:before{content:"\f7fb"}.fa-eject:before{content:"\f052"}.fa-elementor:before{content:"\f430"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-ello:before{content:"\f5f1"}.fa-ember:before{content:"\f423"}.fa-empire:before{content:"\f1d1"}.fa-envelope:before{content:"\f0e0"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-text:before{content:"\f658"}.fa-envelope-square:before{content:"\f199"}.fa-envira:before{content:"\f299"}.fa-equals:before{content:"\f52c"}.fa-eraser:before{content:"\f12d"}.fa-erlang:before{content:"\f39d"}.fa-ethereum:before{content:"\f42e"}.fa-ethernet:before{content:"\f796"}.fa-etsy:before{content:"\f2d7"}.fa-euro-sign:before{content:"\f153"}.fa-evernote:before{content:"\f839"}.fa-exchange-alt:before{content:"\f362"}.fa-exclamation:before{content:"\f12a"}.fa-exclamation-circle:before{content:"\f06a"}.fa-exclamation-triangle:before{content:"\f071"}.fa-expand:before{content:"\f065"}.fa-expand-alt:before{content:"\f424"}.fa-expand-arrows-alt:before{content:"\f31e"}.fa-expeditedssl:before{content:"\f23e"}.fa-external-link-alt:before{content:"\f35d"}.fa-external-link-square-alt:before{content:"\f360"}.fa-eye:before{content:"\f06e"}.fa-eye-dropper:before{content:"\f1fb"}.fa-eye-slash:before{content:"\f070"}.fa-facebook:before{content:"\f09a"}.fa-facebook-f:before{content:"\f39e"}.fa-facebook-messenger:before{content:"\f39f"}.fa-facebook-square:before{content:"\f082"}.fa-fan:before{content:"\f863"}.fa-fantasy-flight-games:before{content:"\f6dc"}.fa-fast-backward:before{content:"\f049"}.fa-fast-forward:before{content:"\f050"}.fa-faucet:before{content:"\e005"}.fa-fax:before{content:"\f1ac"}.fa-feather:before{content:"\f52d"}.fa-feather-alt:before{content:"\f56b"}.fa-fedex:before{content:"\f797"}.fa-fedora:before{content:"\f798"}.fa-female:before{content:"\f182"}.fa-fighter-jet:before{content:"\f0fb"}.fa-figma:before{content:"\f799"}.fa-file:before{content:"\f15b"}.fa-file-alt:before{content:"\f15c"}.fa-file-archive:before{content:"\f1c6"}.fa-file-audio:before{content:"\f1c7"}.fa-file-code:before{content:"\f1c9"}.fa-file-contract:before{content:"\f56c"}.fa-file-csv:before{content:"\f6dd"}.fa-file-download:before{content:"\f56d"}.fa-file-excel:before{content:"\f1c3"}.fa-file-export:before{content:"\f56e"}.fa-file-image:before{content:"\f1c5"}.fa-file-import:before{content:"\f56f"}.fa-file-invoice:before{content:"\f570"}.fa-file-invoice-dollar:before{content:"\f571"}.fa-file-medical:before{content:"\f477"}.fa-file-medical-alt:before{content:"\f478"}.fa-file-pdf:before{content:"\f1c1"}.fa-file-powerpoint:before{content:"\f1c4"}.fa-file-prescription:before{content:"\f572"}.fa-file-signature:before{content:"\f573"}.fa-file-upload:before{content:"\f574"}.fa-file-video:before{content:"\f1c8"}.fa-file-word:before{content:"\f1c2"}.fa-fill:before{content:"\f575"}.fa-fill-drip:before{content:"\f576"}.fa-film:before{content:"\f008"}.fa-filter:before{content:"\f0b0"}.fa-fingerprint:before{content:"\f577"}.fa-fire:before{content:"\f06d"}.fa-fire-alt:before{content:"\f7e4"}.fa-fire-extinguisher:before{content:"\f134"}.fa-firefox:before{content:"\f269"}.fa-firefox-browser:before{content:"\e007"}.fa-first-aid:before{content:"\f479"}.fa-first-order:before{content:"\f2b0"}.fa-first-order-alt:before{content:"\f50a"}.fa-firstdraft:before{content:"\f3a1"}.fa-fish:before{content:"\f578"}.fa-fist-raised:before{content:"\f6de"}.fa-flag:before{content:"\f024"}.fa-flag-checkered:before{content:"\f11e"}.fa-flag-usa:before{content:"\f74d"}.fa-flask:before{content:"\f0c3"}.fa-flickr:before{content:"\f16e"}.fa-flipboard:before{content:"\f44d"}.fa-flushed:before{content:"\f579"}.fa-fly:before{content:"\f417"}.fa-folder:before{content:"\f07b"}.fa-folder-minus:before{content:"\f65d"}.fa-folder-open:before{content:"\f07c"}.fa-folder-plus:before{content:"\f65e"}.fa-font:before{content:"\f031"}.fa-font-awesome:before{content:"\f2b4"}.fa-font-awesome-alt:before{content:"\f35c"}.fa-font-awesome-flag:before{content:"\f425"}.fa-font-awesome-logo-full:before{content:"\f4e6"}.fa-fonticons:before{content:"\f280"}.fa-fonticons-fi:before{content:"\f3a2"}.fa-football-ball:before{content:"\f44e"}.fa-fort-awesome:before{content:"\f286"}.fa-fort-awesome-alt:before{content:"\f3a3"}.fa-forumbee:before{content:"\f211"}.fa-forward:before{content:"\f04e"}.fa-foursquare:before{content:"\f180"}.fa-free-code-camp:before{content:"\f2c5"}.fa-freebsd:before{content:"\f3a4"}.fa-frog:before{content:"\f52e"}.fa-frown:before{content:"\f119"}.fa-frown-open:before{content:"\f57a"}.fa-fulcrum:before{content:"\f50b"}.fa-funnel-dollar:before{content:"\f662"}.fa-futbol:before{content:"\f1e3"}.fa-galactic-republic:before{content:"\f50c"}.fa-galactic-senate:before{content:"\f50d"}.fa-gamepad:before{content:"\f11b"}.fa-gas-pump:before{content:"\f52f"}.fa-gavel:before{content:"\f0e3"}.fa-gem:before{content:"\f3a5"}.fa-genderless:before{content:"\f22d"}.fa-get-pocket:before{content:"\f265"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-ghost:before{content:"\f6e2"}.fa-gift:before{content:"\f06b"}.fa-gifts:before{content:"\f79c"}.fa-git:before{content:"\f1d3"}.fa-git-alt:before{content:"\f841"}.fa-git-square:before{content:"\f1d2"}.fa-github:before{content:"\f09b"}.fa-github-alt:before{content:"\f113"}.fa-github-square:before{content:"\f092"}.fa-gitkraken:before{content:"\f3a6"}.fa-gitlab:before{content:"\f296"}.fa-gitter:before{content:"\f426"}.fa-glass-cheers:before{content:"\f79f"}.fa-glass-martini:before{content:"\f000"}.fa-glass-martini-alt:before{content:"\f57b"}.fa-glass-whiskey:before{content:"\f7a0"}.fa-glasses:before{content:"\f530"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-globe:before{content:"\f0ac"}.fa-globe-africa:before{content:"\f57c"}.fa-globe-americas:before{content:"\f57d"}.fa-globe-asia:before{content:"\f57e"}.fa-globe-europe:before{content:"\f7a2"}.fa-gofore:before{content:"\f3a7"}.fa-golf-ball:before{content:"\f450"}.fa-goodreads:before{content:"\f3a8"}.fa-goodreads-g:before{content:"\f3a9"}.fa-google:before{content:"\f1a0"}.fa-google-drive:before{content:"\f3aa"}.fa-google-pay:before{content:"\e079"}.fa-google-play:before{content:"\f3ab"}.fa-google-plus:before{content:"\f2b3"}.fa-google-plus-g:before{content:"\f0d5"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-wallet:before{content:"\f1ee"}.fa-gopuram:before{content:"\f664"}.fa-graduation-cap:before{content:"\f19d"}.fa-gratipay:before{content:"\f184"}.fa-grav:before{content:"\f2d6"}.fa-greater-than:before{content:"\f531"}.fa-greater-than-equal:before{content:"\f532"}.fa-grimace:before{content:"\f57f"}.fa-grin:before{content:"\f580"}.fa-grin-alt:before{content:"\f581"}.fa-grin-beam:before{content:"\f582"}.fa-grin-beam-sweat:before{content:"\f583"}.fa-grin-hearts:before{content:"\f584"}.fa-grin-squint:before{content:"\f585"}.fa-grin-squint-tears:before{content:"\f586"}.fa-grin-stars:before{content:"\f587"}.fa-grin-tears:before{content:"\f588"}.fa-grin-tongue:before{content:"\f589"}.fa-grin-tongue-squint:before{content:"\f58a"}.fa-grin-tongue-wink:before{content:"\f58b"}.fa-grin-wink:before{content:"\f58c"}.fa-grip-horizontal:before{content:"\f58d"}.fa-grip-lines:before{content:"\f7a4"}.fa-grip-lines-vertical:before{content:"\f7a5"}.fa-grip-vertical:before{content:"\f58e"}.fa-gripfire:before{content:"\f3ac"}.fa-grunt:before{content:"\f3ad"}.fa-guilded:before{content:"\e07e"}.fa-guitar:before{content:"\f7a6"}.fa-gulp:before{content:"\f3ae"}.fa-h-square:before{content:"\f0fd"}.fa-hacker-news:before{content:"\f1d4"}.fa-hacker-news-square:before{content:"\f3af"}.fa-hackerrank:before{content:"\f5f7"}.fa-hamburger:before{content:"\f805"}.fa-hammer:before{content:"\f6e3"}.fa-hamsa:before{content:"\f665"}.fa-hand-holding:before{content:"\f4bd"}.fa-hand-holding-heart:before{content:"\f4be"}.fa-hand-holding-medical:before{content:"\e05c"}.fa-hand-holding-usd:before{content:"\f4c0"}.fa-hand-holding-water:before{content:"\f4c1"}.fa-hand-lizard:before{content:"\f258"}.fa-hand-middle-finger:before{content:"\f806"}.fa-hand-paper:before{content:"\f256"}.fa-hand-peace:before{content:"\f25b"}.fa-hand-point-down:before{content:"\f0a7"}.fa-hand-point-left:before{content:"\f0a5"}.fa-hand-point-right:before{content:"\f0a4"}.fa-hand-point-up:before{content:"\f0a6"}.fa-hand-pointer:before{content:"\f25a"}.fa-hand-rock:before{content:"\f255"}.fa-hand-scissors:before{content:"\f257"}.fa-hand-sparkles:before{content:"\e05d"}.fa-hand-spock:before{content:"\f259"}.fa-hands:before{content:"\f4c2"}.fa-hands-helping:before{content:"\f4c4"}.fa-hands-wash:before{content:"\e05e"}.fa-handshake:before{content:"\f2b5"}.fa-handshake-alt-slash:before{content:"\e05f"}.fa-handshake-slash:before{content:"\e060"}.fa-hanukiah:before{content:"\f6e6"}.fa-hard-hat:before{content:"\f807"}.fa-hashtag:before{content:"\f292"}.fa-hat-cowboy:before{content:"\f8c0"}.fa-hat-cowboy-side:before{content:"\f8c1"}.fa-hat-wizard:before{content:"\f6e8"}.fa-hdd:before{content:"\f0a0"}.fa-head-side-cough:before{content:"\e061"}.fa-head-side-cough-slash:before{content:"\e062"}.fa-head-side-mask:before{content:"\e063"}.fa-head-side-virus:before{content:"\e064"}.fa-heading:before{content:"\f1dc"}.fa-headphones:before{content:"\f025"}.fa-headphones-alt:before{content:"\f58f"}.fa-headset:before{content:"\f590"}.fa-heart:before{content:"\f004"}.fa-heart-broken:before{content:"\f7a9"}.fa-heartbeat:before{content:"\f21e"}.fa-helicopter:before{content:"\f533"}.fa-highlighter:before{content:"\f591"}.fa-hiking:before{content:"\f6ec"}.fa-hippo:before{content:"\f6ed"}.fa-hips:before{content:"\f452"}.fa-hire-a-helper:before{content:"\f3b0"}.fa-history:before{content:"\f1da"}.fa-hive:before{content:"\e07f"}.fa-hockey-puck:before{content:"\f453"}.fa-holly-berry:before{content:"\f7aa"}.fa-home:before{content:"\f015"}.fa-hooli:before{content:"\f427"}.fa-hornbill:before{content:"\f592"}.fa-horse:before{content:"\f6f0"}.fa-horse-head:before{content:"\f7ab"}.fa-hospital:before{content:"\f0f8"}.fa-hospital-alt:before{content:"\f47d"}.fa-hospital-symbol:before{content:"\f47e"}.fa-hospital-user:before{content:"\f80d"}.fa-hot-tub:before{content:"\f593"}.fa-hotdog:before{content:"\f80f"}.fa-hotel:before{content:"\f594"}.fa-hotjar:before{content:"\f3b1"}.fa-hourglass:before{content:"\f254"}.fa-hourglass-end:before{content:"\f253"}.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-start:before{content:"\f251"}.fa-house-damage:before{content:"\f6f1"}.fa-house-user:before{content:"\e065"}.fa-houzz:before{content:"\f27c"}.fa-hryvnia:before{content:"\f6f2"}.fa-html5:before{content:"\f13b"}.fa-hubspot:before{content:"\f3b2"}.fa-i-cursor:before{content:"\f246"}.fa-ice-cream:before{content:"\f810"}.fa-icicles:before{content:"\f7ad"}.fa-icons:before{content:"\f86d"}.fa-id-badge:before{content:"\f2c1"}.fa-id-card:before{content:"\f2c2"}.fa-id-card-alt:before{content:"\f47f"}.fa-ideal:before{content:"\e013"}.fa-igloo:before{content:"\f7ae"}.fa-image:before{content:"\f03e"}.fa-images:before{content:"\f302"}.fa-imdb:before{content:"\f2d8"}.fa-inbox:before{content:"\f01c"}.fa-indent:before{content:"\f03c"}.fa-industry:before{content:"\f275"}.fa-infinity:before{content:"\f534"}.fa-info:before{content:"\f129"}.fa-info-circle:before{content:"\f05a"}.fa-innosoft:before{content:"\e080"}.fa-instagram:before{content:"\f16d"}.fa-instagram-square:before{content:"\e055"}.fa-instalod:before{content:"\e081"}.fa-intercom:before{content:"\f7af"}.fa-internet-explorer:before{content:"\f26b"}.fa-invision:before{content:"\f7b0"}.fa-ioxhost:before{content:"\f208"}.fa-italic:before{content:"\f033"}.fa-itch-io:before{content:"\f83a"}.fa-itunes:before{content:"\f3b4"}.fa-itunes-note:before{content:"\f3b5"}.fa-java:before{content:"\f4e4"}.fa-jedi:before{content:"\f669"}.fa-jedi-order:before{content:"\f50e"}.fa-jenkins:before{content:"\f3b6"}.fa-jira:before{content:"\f7b1"}.fa-joget:before{content:"\f3b7"}.fa-joint:before{content:"\f595"}.fa-joomla:before{content:"\f1aa"}.fa-journal-whills:before{content:"\f66a"}.fa-js:before{content:"\f3b8"}.fa-js-square:before{content:"\f3b9"}.fa-jsfiddle:before{content:"\f1cc"}.fa-kaaba:before{content:"\f66b"}.fa-kaggle:before{content:"\f5fa"}.fa-key:before{content:"\f084"}.fa-keybase:before{content:"\f4f5"}.fa-keyboard:before{content:"\f11c"}.fa-keycdn:before{content:"\f3ba"}.fa-khanda:before{content:"\f66d"}.fa-kickstarter:before{content:"\f3bb"}.fa-kickstarter-k:before{content:"\f3bc"}.fa-kiss:before{content:"\f596"}.fa-kiss-beam:before{content:"\f597"}.fa-kiss-wink-heart:before{content:"\f598"}.fa-kiwi-bird:before{content:"\f535"}.fa-korvue:before{content:"\f42f"}.fa-landmark:before{content:"\f66f"}.fa-language:before{content:"\f1ab"}.fa-laptop:before{content:"\f109"}.fa-laptop-code:before{content:"\f5fc"}.fa-laptop-house:before{content:"\e066"}.fa-laptop-medical:before{content:"\f812"}.fa-laravel:before{content:"\f3bd"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-laugh:before{content:"\f599"}.fa-laugh-beam:before{content:"\f59a"}.fa-laugh-squint:before{content:"\f59b"}.fa-laugh-wink:before{content:"\f59c"}.fa-layer-group:before{content:"\f5fd"}.fa-leaf:before{content:"\f06c"}.fa-leanpub:before{content:"\f212"}.fa-lemon:before{content:"\f094"}.fa-less:before{content:"\f41d"}.fa-less-than:before{content:"\f536"}.fa-less-than-equal:before{content:"\f537"}.fa-level-down-alt:before{content:"\f3be"}.fa-level-up-alt:before{content:"\f3bf"}.fa-life-ring:before{content:"\f1cd"}.fa-lightbulb:before{content:"\f0eb"}.fa-line:before{content:"\f3c0"}.fa-link:before{content:"\f0c1"}.fa-linkedin:before{content:"\f08c"}.fa-linkedin-in:before{content:"\f0e1"}.fa-linode:before{content:"\f2b8"}.fa-linux:before{content:"\f17c"}.fa-lira-sign:before{content:"\f195"}.fa-list:before{content:"\f03a"}.fa-list-alt:before{content:"\f022"}.fa-list-ol:before{content:"\f0cb"}.fa-list-ul:before{content:"\f0ca"}.fa-location-arrow:before{content:"\f124"}.fa-lock:before{content:"\f023"}.fa-lock-open:before{content:"\f3c1"}.fa-long-arrow-alt-down:before{content:"\f309"}.fa-long-arrow-alt-left:before{content:"\f30a"}.fa-long-arrow-alt-right:before{content:"\f30b"}.fa-long-arrow-alt-up:before{content:"\f30c"}.fa-low-vision:before{content:"\f2a8"}.fa-luggage-cart:before{content:"\f59d"}.fa-lungs:before{content:"\f604"}.fa-lungs-virus:before{content:"\e067"}.fa-lyft:before{content:"\f3c3"}.fa-magento:before{content:"\f3c4"}.fa-magic:before{content:"\f0d0"}.fa-magnet:before{content:"\f076"}.fa-mail-bulk:before{content:"\f674"}.fa-mailchimp:before{content:"\f59e"}.fa-male:before{content:"\f183"}.fa-mandalorian:before{content:"\f50f"}.fa-map:before{content:"\f279"}.fa-map-marked:before{content:"\f59f"}.fa-map-marked-alt:before{content:"\f5a0"}.fa-map-marker:before{content:"\f041"}.fa-map-marker-alt:before{content:"\f3c5"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-markdown:before{content:"\f60f"}.fa-marker:before{content:"\f5a1"}.fa-mars:before{content:"\f222"}.fa-mars-double:before{content:"\f227"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mask:before{content:"\f6fa"}.fa-mastodon:before{content:"\f4f6"}.fa-maxcdn:before{content:"\f136"}.fa-mdb:before{content:"\f8ca"}.fa-medal:before{content:"\f5a2"}.fa-medapps:before{content:"\f3c6"}.fa-medium:before{content:"\f23a"}.fa-medium-m:before{content:"\f3c7"}.fa-medkit:before{content:"\f0fa"}.fa-medrt:before{content:"\f3c8"}.fa-meetup:before{content:"\f2e0"}.fa-megaport:before{content:"\f5a3"}.fa-meh:before{content:"\f11a"}.fa-meh-blank:before{content:"\f5a4"}.fa-meh-rolling-eyes:before{content:"\f5a5"}.fa-memory:before{content:"\f538"}.fa-mendeley:before{content:"\f7b3"}.fa-menorah:before{content:"\f676"}.fa-mercury:before{content:"\f223"}.fa-meteor:before{content:"\f753"}.fa-microblog:before{content:"\e01a"}.fa-microchip:before{content:"\f2db"}.fa-microphone:before{content:"\f130"}.fa-microphone-alt:before{content:"\f3c9"}.fa-microphone-alt-slash:before{content:"\f539"}.fa-microphone-slash:before{content:"\f131"}.fa-microscope:before{content:"\f610"}.fa-microsoft:before{content:"\f3ca"}.fa-minus:before{content:"\f068"}.fa-minus-circle:before{content:"\f056"}.fa-minus-square:before{content:"\f146"}.fa-mitten:before{content:"\f7b5"}.fa-mix:before{content:"\f3cb"}.fa-mixcloud:before{content:"\f289"}.fa-mixer:before{content:"\e056"}.fa-mizuni:before{content:"\f3cc"}.fa-mobile:before{content:"\f10b"}.fa-mobile-alt:before{content:"\f3cd"}.fa-modx:before{content:"\f285"}.fa-monero:before{content:"\f3d0"}.fa-money-bill:before{content:"\f0d6"}.fa-money-bill-alt:before{content:"\f3d1"}.fa-money-bill-wave:before{content:"\f53a"}.fa-money-bill-wave-alt:before{content:"\f53b"}.fa-money-check:before{content:"\f53c"}.fa-money-check-alt:before{content:"\f53d"}.fa-monument:before{content:"\f5a6"}.fa-moon:before{content:"\f186"}.fa-mortar-pestle:before{content:"\f5a7"}.fa-mosque:before{content:"\f678"}.fa-motorcycle:before{content:"\f21c"}.fa-mountain:before{content:"\f6fc"}.fa-mouse:before{content:"\f8cc"}.fa-mouse-pointer:before{content:"\f245"}.fa-mug-hot:before{content:"\f7b6"}.fa-music:before{content:"\f001"}.fa-napster:before{content:"\f3d2"}.fa-neos:before{content:"\f612"}.fa-network-wired:before{content:"\f6ff"}.fa-neuter:before{content:"\f22c"}.fa-newspaper:before{content:"\f1ea"}.fa-nimblr:before{content:"\f5a8"}.fa-node:before{content:"\f419"}.fa-node-js:before{content:"\f3d3"}.fa-not-equal:before{content:"\f53e"}.fa-notes-medical:before{content:"\f481"}.fa-npm:before{content:"\f3d4"}.fa-ns8:before{content:"\f3d5"}.fa-nutritionix:before{content:"\f3d6"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-octopus-deploy:before{content:"\e082"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-oil-can:before{content:"\f613"}.fa-old-republic:before{content:"\f510"}.fa-om:before{content:"\f679"}.fa-opencart:before{content:"\f23d"}.fa-openid:before{content:"\f19b"}.fa-opera:before{content:"\f26a"}.fa-optin-monster:before{content:"\f23c"}.fa-orcid:before{content:"\f8d2"}.fa-osi:before{content:"\f41a"}.fa-otter:before{content:"\f700"}.fa-outdent:before{content:"\f03b"}.fa-page4:before{content:"\f3d7"}.fa-pagelines:before{content:"\f18c"}.fa-pager:before{content:"\f815"}.fa-paint-brush:before{content:"\f1fc"}.fa-paint-roller:before{content:"\f5aa"}.fa-palette:before{content:"\f53f"}.fa-palfed:before{content:"\f3d8"}.fa-pallet:before{content:"\f482"}.fa-paper-plane:before{content:"\f1d8"}.fa-paperclip:before{content:"\f0c6"}.fa-parachute-box:before{content:"\f4cd"}.fa-paragraph:before{content:"\f1dd"}.fa-parking:before{content:"\f540"}.fa-passport:before{content:"\f5ab"}.fa-pastafarianism:before{content:"\f67b"}.fa-paste:before{content:"\f0ea"}.fa-patreon:before{content:"\f3d9"}.fa-pause:before{content:"\f04c"}.fa-pause-circle:before{content:"\f28b"}.fa-paw:before{content:"\f1b0"}.fa-paypal:before{content:"\f1ed"}.fa-peace:before{content:"\f67c"}.fa-pen:before{content:"\f304"}.fa-pen-alt:before{content:"\f305"}.fa-pen-fancy:before{content:"\f5ac"}.fa-pen-nib:before{content:"\f5ad"}.fa-pen-square:before{content:"\f14b"}.fa-pencil-alt:before{content:"\f303"}.fa-pencil-ruler:before{content:"\f5ae"}.fa-penny-arcade:before{content:"\f704"}.fa-people-arrows:before{content:"\e068"}.fa-people-carry:before{content:"\f4ce"}.fa-pepper-hot:before{content:"\f816"}.fa-perbyte:before{content:"\e083"}.fa-percent:before{content:"\f295"}.fa-percentage:before{content:"\f541"}.fa-periscope:before{content:"\f3da"}.fa-person-booth:before{content:"\f756"}.fa-phabricator:before{content:"\f3db"}.fa-phoenix-framework:before{content:"\f3dc"}.fa-phoenix-squadron:before{content:"\f511"}.fa-phone:before{content:"\f095"}.fa-phone-alt:before{content:"\f879"}.fa-phone-slash:before{content:"\f3dd"}.fa-phone-square:before{content:"\f098"}.fa-phone-square-alt:before{content:"\f87b"}.fa-phone-volume:before{content:"\f2a0"}.fa-photo-video:before{content:"\f87c"}.fa-php:before{content:"\f457"}.fa-pied-piper:before{content:"\f2ae"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-pied-piper-hat:before{content:"\f4e5"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-pied-piper-square:before{content:"\e01e"}.fa-piggy-bank:before{content:"\f4d3"}.fa-pills:before{content:"\f484"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-p:before{content:"\f231"}.fa-pinterest-square:before{content:"\f0d3"}.fa-pizza-slice:before{content:"\f818"}.fa-place-of-worship:before{content:"\f67f"}.fa-plane:before{content:"\f072"}.fa-plane-arrival:before{content:"\f5af"}.fa-plane-departure:before{content:"\f5b0"}.fa-plane-slash:before{content:"\e069"}.fa-play:before{content:"\f04b"}.fa-play-circle:before{content:"\f144"}.fa-playstation:before{content:"\f3df"}.fa-plug:before{content:"\f1e6"}.fa-plus:before{content:"\f067"}.fa-plus-circle:before{content:"\f055"}.fa-plus-square:before{content:"\f0fe"}.fa-podcast:before{content:"\f2ce"}.fa-poll:before{content:"\f681"}.fa-poll-h:before{content:"\f682"}.fa-poo:before{content:"\f2fe"}.fa-poo-storm:before{content:"\f75a"}.fa-poop:before{content:"\f619"}.fa-portrait:before{content:"\f3e0"}.fa-pound-sign:before{content:"\f154"}.fa-power-off:before{content:"\f011"}.fa-pray:before{content:"\f683"}.fa-praying-hands:before{content:"\f684"}.fa-prescription:before{content:"\f5b1"}.fa-prescription-bottle:before{content:"\f485"}.fa-prescription-bottle-alt:before{content:"\f486"}.fa-print:before{content:"\f02f"}.fa-procedures:before{content:"\f487"}.fa-product-hunt:before{content:"\f288"}.fa-project-diagram:before{content:"\f542"}.fa-pump-medical:before{content:"\e06a"}.fa-pump-soap:before{content:"\e06b"}.fa-pushed:before{content:"\f3e1"}.fa-puzzle-piece:before{content:"\f12e"}.fa-python:before{content:"\f3e2"}.fa-qq:before{content:"\f1d6"}.fa-qrcode:before{content:"\f029"}.fa-question:before{content:"\f128"}.fa-question-circle:before{content:"\f059"}.fa-quidditch:before{content:"\f458"}.fa-quinscape:before{content:"\f459"}.fa-quora:before{content:"\f2c4"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-quran:before{content:"\f687"}.fa-r-project:before{content:"\f4f7"}.fa-radiation:before{content:"\f7b9"}.fa-radiation-alt:before{content:"\f7ba"}.fa-rainbow:before{content:"\f75b"}.fa-random:before{content:"\f074"}.fa-raspberry-pi:before{content:"\f7bb"}.fa-ravelry:before{content:"\f2d9"}.fa-react:before{content:"\f41b"}.fa-reacteurope:before{content:"\f75d"}.fa-readme:before{content:"\f4d5"}.fa-rebel:before{content:"\f1d0"}.fa-receipt:before{content:"\f543"}.fa-record-vinyl:before{content:"\f8d9"}.fa-recycle:before{content:"\f1b8"}.fa-red-river:before{content:"\f3e3"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-alien:before{content:"\f281"}.fa-reddit-square:before{content:"\f1a2"}.fa-redhat:before{content:"\f7bc"}.fa-redo:before{content:"\f01e"}.fa-redo-alt:before{content:"\f2f9"}.fa-registered:before{content:"\f25d"}.fa-remove-format:before{content:"\f87d"}.fa-renren:before{content:"\f18b"}.fa-reply:before{content:"\f3e5"}.fa-reply-all:before{content:"\f122"}.fa-replyd:before{content:"\f3e6"}.fa-republican:before{content:"\f75e"}.fa-researchgate:before{content:"\f4f8"}.fa-resolving:before{content:"\f3e7"}.fa-restroom:before{content:"\f7bd"}.fa-retweet:before{content:"\f079"}.fa-rev:before{content:"\f5b2"}.fa-ribbon:before{content:"\f4d6"}.fa-ring:before{content:"\f70b"}.fa-road:before{content:"\f018"}.fa-robot:before{content:"\f544"}.fa-rocket:before{content:"\f135"}.fa-rocketchat:before{content:"\f3e8"}.fa-rockrms:before{content:"\f3e9"}.fa-route:before{content:"\f4d7"}.fa-rss:before{content:"\f09e"}.fa-rss-square:before{content:"\f143"}.fa-ruble-sign:before{content:"\f158"}.fa-ruler:before{content:"\f545"}.fa-ruler-combined:before{content:"\f546"}.fa-ruler-horizontal:before{content:"\f547"}.fa-ruler-vertical:before{content:"\f548"}.fa-running:before{content:"\f70c"}.fa-rupee-sign:before{content:"\f156"}.fa-rust:before{content:"\e07a"}.fa-sad-cry:before{content:"\f5b3"}.fa-sad-tear:before{content:"\f5b4"}.fa-safari:before{content:"\f267"}.fa-salesforce:before{content:"\f83b"}.fa-sass:before{content:"\f41e"}.fa-satellite:before{content:"\f7bf"}.fa-satellite-dish:before{content:"\f7c0"}.fa-save:before{content:"\f0c7"}.fa-schlix:before{content:"\f3ea"}.fa-school:before{content:"\f549"}.fa-screwdriver:before{content:"\f54a"}.fa-scribd:before{content:"\f28a"}.fa-scroll:before{content:"\f70e"}.fa-sd-card:before{content:"\f7c2"}.fa-search:before{content:"\f002"}.fa-search-dollar:before{content:"\f688"}.fa-search-location:before{content:"\f689"}.fa-search-minus:before{content:"\f010"}.fa-search-plus:before{content:"\f00e"}.fa-searchengin:before{content:"\f3eb"}.fa-seedling:before{content:"\f4d8"}.fa-sellcast:before{content:"\f2da"}.fa-sellsy:before{content:"\f213"}.fa-server:before{content:"\f233"}.fa-servicestack:before{content:"\f3ec"}.fa-shapes:before{content:"\f61f"}.fa-share:before{content:"\f064"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-share-square:before{content:"\f14d"}.fa-shekel-sign:before{content:"\f20b"}.fa-shield-alt:before{content:"\f3ed"}.fa-shield-virus:before{content:"\e06c"}.fa-ship:before{content:"\f21a"}.fa-shipping-fast:before{content:"\f48b"}.fa-shirtsinbulk:before{content:"\f214"}.fa-shoe-prints:before{content:"\f54b"}.fa-shopify:before{content:"\e057"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-shopping-cart:before{content:"\f07a"}.fa-shopware:before{content:"\f5b5"}.fa-shower:before{content:"\f2cc"}.fa-shuttle-van:before{content:"\f5b6"}.fa-sign:before{content:"\f4d9"}.fa-sign-in-alt:before{content:"\f2f6"}.fa-sign-language:before{content:"\f2a7"}.fa-sign-out-alt:before{content:"\f2f5"}.fa-signal:before{content:"\f012"}.fa-signature:before{content:"\f5b7"}.fa-sim-card:before{content:"\f7c4"}.fa-simplybuilt:before{content:"\f215"}.fa-sink:before{content:"\e06d"}.fa-sistrix:before{content:"\f3ee"}.fa-sitemap:before{content:"\f0e8"}.fa-sith:before{content:"\f512"}.fa-skating:before{content:"\f7c5"}.fa-sketch:before{content:"\f7c6"}.fa-skiing:before{content:"\f7c9"}.fa-skiing-nordic:before{content:"\f7ca"}.fa-skull:before{content:"\f54c"}.fa-skull-crossbones:before{content:"\f714"}.fa-skyatlas:before{content:"\f216"}.fa-skype:before{content:"\f17e"}.fa-slack:before{content:"\f198"}.fa-slack-hash:before{content:"\f3ef"}.fa-slash:before{content:"\f715"}.fa-sleigh:before{content:"\f7cc"}.fa-sliders-h:before{content:"\f1de"}.fa-slideshare:before{content:"\f1e7"}.fa-smile:before{content:"\f118"}.fa-smile-beam:before{content:"\f5b8"}.fa-smile-wink:before{content:"\f4da"}.fa-smog:before{content:"\f75f"}.fa-smoking:before{content:"\f48d"}.fa-smoking-ban:before{content:"\f54d"}.fa-sms:before{content:"\f7cd"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-snowboarding:before{content:"\f7ce"}.fa-snowflake:before{content:"\f2dc"}.fa-snowman:before{content:"\f7d0"}.fa-snowplow:before{content:"\f7d2"}.fa-soap:before{content:"\e06e"}.fa-socks:before{content:"\f696"}.fa-solar-panel:before{content:"\f5ba"}.fa-sort:before{content:"\f0dc"}.fa-sort-alpha-down:before{content:"\f15d"}.fa-sort-alpha-down-alt:before{content:"\f881"}.fa-sort-alpha-up:before{content:"\f15e"}.fa-sort-alpha-up-alt:before{content:"\f882"}.fa-sort-amount-down:before{content:"\f160"}.fa-sort-amount-down-alt:before{content:"\f884"}.fa-sort-amount-up:before{content:"\f161"}.fa-sort-amount-up-alt:before{content:"\f885"}.fa-sort-down:before{content:"\f0dd"}.fa-sort-numeric-down:before{content:"\f162"}.fa-sort-numeric-down-alt:before{content:"\f886"}.fa-sort-numeric-up:before{content:"\f163"}.fa-sort-numeric-up-alt:before{content:"\f887"}.fa-sort-up:before{content:"\f0de"}.fa-soundcloud:before{content:"\f1be"}.fa-sourcetree:before{content:"\f7d3"}.fa-spa:before{content:"\f5bb"}.fa-space-shuttle:before{content:"\f197"}.fa-speakap:before{content:"\f3f3"}.fa-speaker-deck:before{content:"\f83c"}.fa-spell-check:before{content:"\f891"}.fa-spider:before{content:"\f717"}.fa-spinner:before{content:"\f110"}.fa-splotch:before{content:"\f5bc"}.fa-spotify:before{content:"\f1bc"}.fa-spray-can:before{content:"\f5bd"}.fa-square:before{content:"\f0c8"}.fa-square-full:before{content:"\f45c"}.fa-square-root-alt:before{content:"\f698"}.fa-squarespace:before{content:"\f5be"}.fa-stack-exchange:before{content:"\f18d"}.fa-stack-overflow:before{content:"\f16c"}.fa-stackpath:before{content:"\f842"}.fa-stamp:before{content:"\f5bf"}.fa-star:before{content:"\f005"}.fa-star-and-crescent:before{content:"\f699"}.fa-star-half:before{content:"\f089"}.fa-star-half-alt:before{content:"\f5c0"}.fa-star-of-david:before{content:"\f69a"}.fa-star-of-life:before{content:"\f621"}.fa-staylinked:before{content:"\f3f5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-steam-symbol:before{content:"\f3f6"}.fa-step-backward:before{content:"\f048"}.fa-step-forward:before{content:"\f051"}.fa-stethoscope:before{content:"\f0f1"}.fa-sticker-mule:before{content:"\f3f7"}.fa-sticky-note:before{content:"\f249"}.fa-stop:before{content:"\f04d"}.fa-stop-circle:before{content:"\f28d"}.fa-stopwatch:before{content:"\f2f2"}.fa-stopwatch-20:before{content:"\e06f"}.fa-store:before{content:"\f54e"}.fa-store-alt:before{content:"\f54f"}.fa-store-alt-slash:before{content:"\e070"}.fa-store-slash:before{content:"\e071"}.fa-strava:before{content:"\f428"}.fa-stream:before{content:"\f550"}.fa-street-view:before{content:"\f21d"}.fa-strikethrough:before{content:"\f0cc"}.fa-stripe:before{content:"\f429"}.fa-stripe-s:before{content:"\f42a"}.fa-stroopwafel:before{content:"\f551"}.fa-studiovinari:before{content:"\f3f8"}.fa-stumbleupon:before{content:"\f1a4"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-subscript:before{content:"\f12c"}.fa-subway:before{content:"\f239"}.fa-suitcase:before{content:"\f0f2"}.fa-suitcase-rolling:before{content:"\f5c1"}.fa-sun:before{content:"\f185"}.fa-superpowers:before{content:"\f2dd"}.fa-superscript:before{content:"\f12b"}.fa-supple:before{content:"\f3f9"}.fa-surprise:before{content:"\f5c2"}.fa-suse:before{content:"\f7d6"}.fa-swatchbook:before{content:"\f5c3"}.fa-swift:before{content:"\f8e1"}.fa-swimmer:before{content:"\f5c4"}.fa-swimming-pool:before{content:"\f5c5"}.fa-symfony:before{content:"\f83d"}.fa-synagogue:before{content:"\f69b"}.fa-sync:before{content:"\f021"}.fa-sync-alt:before{content:"\f2f1"}.fa-syringe:before{content:"\f48e"}.fa-table:before{content:"\f0ce"}.fa-table-tennis:before{content:"\f45d"}.fa-tablet:before{content:"\f10a"}.fa-tablet-alt:before{content:"\f3fa"}.fa-tablets:before{content:"\f490"}.fa-tachometer-alt:before{content:"\f3fd"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-tape:before{content:"\f4db"}.fa-tasks:before{content:"\f0ae"}.fa-taxi:before{content:"\f1ba"}.fa-teamspeak:before{content:"\f4f9"}.fa-teeth:before{content:"\f62e"}.fa-teeth-open:before{content:"\f62f"}.fa-telegram:before{content:"\f2c6"}.fa-telegram-plane:before{content:"\f3fe"}.fa-temperature-high:before{content:"\f769"}.fa-temperature-low:before{content:"\f76b"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-tenge:before{content:"\f7d7"}.fa-terminal:before{content:"\f120"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-th:before{content:"\f00a"}.fa-th-large:before{content:"\f009"}.fa-th-list:before{content:"\f00b"}.fa-the-red-yeti:before{content:"\f69d"}.fa-theater-masks:before{content:"\f630"}.fa-themeco:before{content:"\f5c6"}.fa-themeisle:before{content:"\f2b2"}.fa-thermometer:before{content:"\f491"}.fa-thermometer-empty:before{content:"\f2cb"}.fa-thermometer-full:before{content:"\f2c7"}.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-think-peaks:before{content:"\f731"}.fa-thumbs-down:before{content:"\f165"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbtack:before{content:"\f08d"}.fa-ticket-alt:before{content:"\f3ff"}.fa-tiktok:before{content:"\e07b"}.fa-times:before{content:"\f00d"}.fa-times-circle:before{content:"\f057"}.fa-tint:before{content:"\f043"}.fa-tint-slash:before{content:"\f5c7"}.fa-tired:before{content:"\f5c8"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-toilet:before{content:"\f7d8"}.fa-toilet-paper:before{content:"\f71e"}.fa-toilet-paper-slash:before{content:"\e072"}.fa-toolbox:before{content:"\f552"}.fa-tools:before{content:"\f7d9"}.fa-tooth:before{content:"\f5c9"}.fa-torah:before{content:"\f6a0"}.fa-torii-gate:before{content:"\f6a1"}.fa-tractor:before{content:"\f722"}.fa-trade-federation:before{content:"\f513"}.fa-trademark:before{content:"\f25c"}.fa-traffic-light:before{content:"\f637"}.fa-trailer:before{content:"\e041"}.fa-train:before{content:"\f238"}.fa-tram:before{content:"\f7da"}.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-trash:before{content:"\f1f8"}.fa-trash-alt:before{content:"\f2ed"}.fa-trash-restore:before{content:"\f829"}.fa-trash-restore-alt:before{content:"\f82a"}.fa-tree:before{content:"\f1bb"}.fa-trello:before{content:"\f181"}.fa-trophy:before{content:"\f091"}.fa-truck:before{content:"\f0d1"}.fa-truck-loading:before{content:"\f4de"}.fa-truck-monster:before{content:"\f63b"}.fa-truck-moving:before{content:"\f4df"}.fa-truck-pickup:before{content:"\f63c"}.fa-tshirt:before{content:"\f553"}.fa-tty:before{content:"\f1e4"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-tv:before{content:"\f26c"}.fa-twitch:before{content:"\f1e8"}.fa-twitter:before{content:"\f099"}.fa-twitter-square:before{content:"\f081"}.fa-typo3:before{content:"\f42b"}.fa-uber:before{content:"\f402"}.fa-ubuntu:before{content:"\f7df"}.fa-uikit:before{content:"\f403"}.fa-umbraco:before{content:"\f8e8"}.fa-umbrella:before{content:"\f0e9"}.fa-umbrella-beach:before{content:"\f5ca"}.fa-uncharted:before{content:"\e084"}.fa-underline:before{content:"\f0cd"}.fa-undo:before{content:"\f0e2"}.fa-undo-alt:before{content:"\f2ea"}.fa-uniregistry:before{content:"\f404"}.fa-unity:before{content:"\e049"}.fa-universal-access:before{content:"\f29a"}.fa-university:before{content:"\f19c"}.fa-unlink:before{content:"\f127"}.fa-unlock:before{content:"\f09c"}.fa-unlock-alt:before{content:"\f13e"}.fa-unsplash:before{content:"\e07c"}.fa-untappd:before{content:"\f405"}.fa-upload:before{content:"\f093"}.fa-ups:before{content:"\f7e0"}.fa-usb:before{content:"\f287"}.fa-user:before{content:"\f007"}.fa-user-alt:before{content:"\f406"}.fa-user-alt-slash:before{content:"\f4fa"}.fa-user-astronaut:before{content:"\f4fb"}.fa-user-check:before{content:"\f4fc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-clock:before{content:"\f4fd"}.fa-user-cog:before{content:"\f4fe"}.fa-user-edit:before{content:"\f4ff"}.fa-user-friends:before{content:"\f500"}.fa-user-graduate:before{content:"\f501"}.fa-user-injured:before{content:"\f728"}.fa-user-lock:before{content:"\f502"}.fa-user-md:before{content:"\f0f0"}.fa-user-minus:before{content:"\f503"}.fa-user-ninja:before{content:"\f504"}.fa-user-nurse:before{content:"\f82f"}.fa-user-plus:before{content:"\f234"}.fa-user-secret:before{content:"\f21b"}.fa-user-shield:before{content:"\f505"}.fa-user-slash:before{content:"\f506"}.fa-user-tag:before{content:"\f507"}.fa-user-tie:before{content:"\f508"}.fa-user-times:before{content:"\f235"}.fa-users:before{content:"\f0c0"}.fa-users-cog:before{content:"\f509"}.fa-users-slash:before{content:"\e073"}.fa-usps:before{content:"\f7e1"}.fa-ussunnah:before{content:"\f407"}.fa-utensil-spoon:before{content:"\f2e5"}.fa-utensils:before{content:"\f2e7"}.fa-vaadin:before{content:"\f408"}.fa-vector-square:before{content:"\f5cb"}.fa-venus:before{content:"\f221"}.fa-venus-double:before{content:"\f226"}.fa-venus-mars:before{content:"\f228"}.fa-vest:before{content:"\e085"}.fa-vest-patches:before{content:"\e086"}.fa-viacoin:before{content:"\f237"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-vial:before{content:"\f492"}.fa-vials:before{content:"\f493"}.fa-viber:before{content:"\f409"}.fa-video:before{content:"\f03d"}.fa-video-slash:before{content:"\f4e2"}.fa-vihara:before{content:"\f6a7"}.fa-vimeo:before{content:"\f40a"}.fa-vimeo-square:before{content:"\f194"}.fa-vimeo-v:before{content:"\f27d"}.fa-vine:before{content:"\f1ca"}.fa-virus:before{content:"\e074"}.fa-virus-slash:before{content:"\e075"}.fa-viruses:before{content:"\e076"}.fa-vk:before{content:"\f189"}.fa-vnv:before{content:"\f40b"}.fa-voicemail:before{content:"\f897"}.fa-volleyball-ball:before{content:"\f45f"}.fa-volume-down:before{content:"\f027"}.fa-volume-mute:before{content:"\f6a9"}.fa-volume-off:before{content:"\f026"}.fa-volume-up:before{content:"\f028"}.fa-vote-yea:before{content:"\f772"}.fa-vr-cardboard:before{content:"\f729"}.fa-vuejs:before{content:"\f41f"}.fa-walking:before{content:"\f554"}.fa-wallet:before{content:"\f555"}.fa-warehouse:before{content:"\f494"}.fa-watchman-monitoring:before{content:"\e087"}.fa-water:before{content:"\f773"}.fa-wave-square:before{content:"\f83e"}.fa-waze:before{content:"\f83f"}.fa-weebly:before{content:"\f5cc"}.fa-weibo:before{content:"\f18a"}.fa-weight:before{content:"\f496"}.fa-weight-hanging:before{content:"\f5cd"}.fa-weixin:before{content:"\f1d7"}.fa-whatsapp:before{content:"\f232"}.fa-whatsapp-square:before{content:"\f40c"}.fa-wheelchair:before{content:"\f193"}.fa-whmcs:before{content:"\f40d"}.fa-wifi:before{content:"\f1eb"}.fa-wikipedia-w:before{content:"\f266"}.fa-wind:before{content:"\f72e"}.fa-window-close:before{content:"\f410"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-windows:before{content:"\f17a"}.fa-wine-bottle:before{content:"\f72f"}.fa-wine-glass:before{content:"\f4e3"}.fa-wine-glass-alt:before{content:"\f5ce"}.fa-wix:before{content:"\f5cf"}.fa-wizards-of-the-coast:before{content:"\f730"}.fa-wodu:before{content:"\e088"}.fa-wolf-pack-battalion:before{content:"\f514"}.fa-won-sign:before{content:"\f159"}.fa-wordpress:before{content:"\f19a"}.fa-wordpress-simple:before{content:"\f411"}.fa-wpbeginner:before{content:"\f297"}.fa-wpexplorer:before{content:"\f2de"}.fa-wpforms:before{content:"\f298"}.fa-wpressr:before{content:"\f3e4"}.fa-wrench:before{content:"\f0ad"}.fa-x-ray:before{content:"\f497"}.fa-xbox:before{content:"\f412"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-y-combinator:before{content:"\f23b"}.fa-yahoo:before{content:"\f19e"}.fa-yammer:before{content:"\f840"}.fa-yandex:before{content:"\f413"}.fa-yandex-international:before{content:"\f414"}.fa-yarn:before{content:"\f7e3"}.fa-yelp:before{content:"\f1e9"}.fa-yen-sign:before{content:"\f157"}.fa-yin-yang:before{content:"\f6ad"}.fa-yoast:before{content:"\f2b1"}.fa-youtube:before{content:"\f167"}.fa-youtube-square:before{content:"\f431"}.fa-zhihu:before{content:"\f63f"}.sr-only{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sr-only-focusable:active,.sr-only-focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}@font-face{font-family:"Font Awesome 5 Brands";font-style:normal;font-weight:400;font-display:block;src:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/fontawesome/webfonts/fa-brands-400.eot);src:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/fontawesome/webfonts/fa-brands-400.eot?#iefix) format("embedded-opentype"),url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/fontawesome/webfonts/fa-brands-400.woff2) format("woff2"),url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/fontawesome/webfonts/fa-brands-400.woff) format("woff"),url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/fontawesome/webfonts/fa-brands-400.ttf) format("truetype"),url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/fontawesome/webfonts/fa-brands-400.svg#fontawesome) format("svg")}.fab{font-family:"Font Awesome 5 Brands"}@font-face{font-family:"Font Awesome 5 Free";font-style:normal;font-weight:400;font-display:block;src:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/fontawesome/webfonts/fa-regular-400.eot);src:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/fontawesome/webfonts/fa-regular-400.eot?#iefix) format("embedded-opentype"),url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/fontawesome/webfonts/fa-regular-400.woff2) format("woff2"),url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/fontawesome/webfonts/fa-regular-400.woff) format("woff"),url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/fontawesome/webfonts/fa-regular-400.ttf) format("truetype"),url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/fontawesome/webfonts/fa-regular-400.svg#fontawesome) format("svg")}.fab,.far{font-weight:400}@font-face{font-family:"Font Awesome 5 Free";font-style:normal;font-weight:900;font-display:block;src:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/fontawesome/webfonts/fa-solid-900.eot);src:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/fontawesome/webfonts/fa-solid-900.eot?#iefix) format("embedded-opentype"),url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/fontawesome/webfonts/fa-solid-900.woff2) format("woff2"),url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/fontawesome/webfonts/fa-solid-900.woff) format("woff"),url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/fontawesome/webfonts/fa-solid-900.ttf) format("truetype"),url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/fontawesome/webfonts/fa-solid-900.svg#fontawesome) format("svg")}.fa,.far,.fas{font-family:"Font Awesome 5 Free"}.fa,.fas{font-weight:900} .flag-icon-background{background-size:contain;background-position:50%;background-repeat:no-repeat}.flag-icon{background-size:contain;background-position:50%;background-repeat:no-repeat;position:relative;display:inline-block;width:1.33333333em;line-height:1em}.flag-icon:before{content:" "}.flag-icon.flag-icon-squared{width:1em}.flag-icon-ad{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/ad.svg)}.flag-icon-ad.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/ad.svg)}.flag-icon-ae{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/ae.svg)}.flag-icon-ae.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/ae.svg)}.flag-icon-af{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/af.svg)}.flag-icon-af.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/af.svg)}.flag-icon-ag{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/ag.svg)}.flag-icon-ag.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/ag.svg)}.flag-icon-ai{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/ai.svg)}.flag-icon-ai.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/ai.svg)}.flag-icon-al{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/al.svg)}.flag-icon-al.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/al.svg)}.flag-icon-am{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/am.svg)}.flag-icon-am.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/am.svg)}.flag-icon-ao{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/ao.svg)}.flag-icon-ao.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/ao.svg)}.flag-icon-aq{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/aq.svg)}.flag-icon-aq.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/aq.svg)}.flag-icon-ar{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/ar.svg)}.flag-icon-ar.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/ar.svg)}.flag-icon-as{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/as.svg)}.flag-icon-as.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/as.svg)}.flag-icon-at{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/at.svg)}.flag-icon-at.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/at.svg)}.flag-icon-au{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/au.svg)}.flag-icon-au.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/au.svg)}.flag-icon-aw{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/aw.svg)}.flag-icon-aw.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/aw.svg)}.flag-icon-ax{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/ax.svg)}.flag-icon-ax.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/ax.svg)}.flag-icon-az{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/az.svg)}.flag-icon-az.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/az.svg)}.flag-icon-ba{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/ba.svg)}.flag-icon-ba.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/ba.svg)}.flag-icon-bb{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/bb.svg)}.flag-icon-bb.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/bb.svg)}.flag-icon-bd{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/bd.svg)}.flag-icon-bd.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/bd.svg)}.flag-icon-be{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/be.svg)}.flag-icon-be.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/be.svg)}.flag-icon-bf{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/bf.svg)}.flag-icon-bf.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/bf.svg)}.flag-icon-bg{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/bg.svg)}.flag-icon-bg.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/bg.svg)}.flag-icon-bh{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/bh.svg)}.flag-icon-bh.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/bh.svg)}.flag-icon-bi{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/bi.svg)}.flag-icon-bi.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/bi.svg)}.flag-icon-bj{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/bj.svg)}.flag-icon-bj.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/bj.svg)}.flag-icon-bl{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/bl.svg)}.flag-icon-bl.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/bl.svg)}.flag-icon-bm{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/bm.svg)}.flag-icon-bm.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/bm.svg)}.flag-icon-bn{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/bn.svg)}.flag-icon-bn.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/bn.svg)}.flag-icon-bo{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/bo.svg)}.flag-icon-bo.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/bo.svg)}.flag-icon-bq{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/bq.svg)}.flag-icon-bq.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/bq.svg)}.flag-icon-br{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/br.svg)}.flag-icon-br.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/br.svg)}.flag-icon-bs{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/bs.svg)}.flag-icon-bs.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/bs.svg)}.flag-icon-bt{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/bt.svg)}.flag-icon-bt.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/bt.svg)}.flag-icon-bv{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/bv.svg)}.flag-icon-bv.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/bv.svg)}.flag-icon-bw{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/bw.svg)}.flag-icon-bw.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/bw.svg)}.flag-icon-by{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/by.svg)}.flag-icon-by.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/by.svg)}.flag-icon-bz{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/bz.svg)}.flag-icon-bz.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/bz.svg)}.flag-icon-ca{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/ca.svg)}.flag-icon-ca.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/ca.svg)}.flag-icon-cc{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/cc.svg)}.flag-icon-cc.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/cc.svg)}.flag-icon-cd{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/cd.svg)}.flag-icon-cd.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/cd.svg)}.flag-icon-cf{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/cf.svg)}.flag-icon-cf.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/cf.svg)}.flag-icon-cg{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/cg.svg)}.flag-icon-cg.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/cg.svg)}.flag-icon-ch{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/ch.svg)}.flag-icon-ch.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/ch.svg)}.flag-icon-ci{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/ci.svg)}.flag-icon-ci.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/ci.svg)}.flag-icon-ck{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/ck.svg)}.flag-icon-ck.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/ck.svg)}.flag-icon-cl{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/cl.svg)}.flag-icon-cl.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/cl.svg)}.flag-icon-cm{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/cm.svg)}.flag-icon-cm.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/cm.svg)}.flag-icon-cn{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/cn.svg)}.flag-icon-cn.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/cn.svg)}.flag-icon-co{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/co.svg)}.flag-icon-co.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/co.svg)}.flag-icon-cr{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/cr.svg)}.flag-icon-cr.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/cr.svg)}.flag-icon-cu{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/cu.svg)}.flag-icon-cu.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/cu.svg)}.flag-icon-cv{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/cv.svg)}.flag-icon-cv.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/cv.svg)}.flag-icon-cw{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/cw.svg)}.flag-icon-cw.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/cw.svg)}.flag-icon-cx{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/cx.svg)}.flag-icon-cx.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/cx.svg)}.flag-icon-cy{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/cy.svg)}.flag-icon-cy.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/cy.svg)}.flag-icon-cz{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/cz.svg)}.flag-icon-cz.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/cz.svg)}.flag-icon-de{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/de.svg)}.flag-icon-de.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/de.svg)}.flag-icon-dj{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/dj.svg)}.flag-icon-dj.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/dj.svg)}.flag-icon-dk{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/dk.svg)}.flag-icon-dk.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/dk.svg)}.flag-icon-dm{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/dm.svg)}.flag-icon-dm.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/dm.svg)}.flag-icon-do{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/do.svg)}.flag-icon-do.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/do.svg)}.flag-icon-dz{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/dz.svg)}.flag-icon-dz.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/dz.svg)}.flag-icon-ec{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/ec.svg)}.flag-icon-ec.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/ec.svg)}.flag-icon-ee{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/ee.svg)}.flag-icon-ee.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/ee.svg)}.flag-icon-eg{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/eg.svg)}.flag-icon-eg.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/eg.svg)}.flag-icon-eh{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/eh.svg)}.flag-icon-eh.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/eh.svg)}.flag-icon-er{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/er.svg)}.flag-icon-er.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/er.svg)}.flag-icon-es{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/es.svg)}.flag-icon-es.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/es.svg)}.flag-icon-et{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/et.svg)}.flag-icon-et.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/et.svg)}.flag-icon-fi{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/fi.svg)}.flag-icon-fi.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/fi.svg)}.flag-icon-fj{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/fj.svg)}.flag-icon-fj.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/fj.svg)}.flag-icon-fk{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/fk.svg)}.flag-icon-fk.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/fk.svg)}.flag-icon-fm{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/fm.svg)}.flag-icon-fm.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/fm.svg)}.flag-icon-fo{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/fo.svg)}.flag-icon-fo.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/fo.svg)}.flag-icon-fr{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/fr.svg)}.flag-icon-fr.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/fr.svg)}.flag-icon-ga{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/ga.svg)}.flag-icon-ga.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/ga.svg)}.flag-icon-gb{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/gb.svg)}.flag-icon-gb.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/gb.svg)}.flag-icon-gd{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/gd.svg)}.flag-icon-gd.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/gd.svg)}.flag-icon-ge{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/ge.svg)}.flag-icon-ge.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/ge.svg)}.flag-icon-gf{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/gf.svg)}.flag-icon-gf.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/gf.svg)}.flag-icon-gg{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/gg.svg)}.flag-icon-gg.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/gg.svg)}.flag-icon-gh{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/gh.svg)}.flag-icon-gh.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/gh.svg)}.flag-icon-gi{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/gi.svg)}.flag-icon-gi.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/gi.svg)}.flag-icon-gl{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/gl.svg)}.flag-icon-gl.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/gl.svg)}.flag-icon-gm{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/gm.svg)}.flag-icon-gm.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/gm.svg)}.flag-icon-gn{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/gn.svg)}.flag-icon-gn.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/gn.svg)}.flag-icon-gp{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/gp.svg)}.flag-icon-gp.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/gp.svg)}.flag-icon-gq{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/gq.svg)}.flag-icon-gq.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/gq.svg)}.flag-icon-gr{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/gr.svg)}.flag-icon-gr.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/gr.svg)}.flag-icon-gs{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/gs.svg)}.flag-icon-gs.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/gs.svg)}.flag-icon-gt{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/gt.svg)}.flag-icon-gt.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/gt.svg)}.flag-icon-gu{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/gu.svg)}.flag-icon-gu.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/gu.svg)}.flag-icon-gw{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/gw.svg)}.flag-icon-gw.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/gw.svg)}.flag-icon-gy{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/gy.svg)}.flag-icon-gy.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/gy.svg)}.flag-icon-hk{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/hk.svg)}.flag-icon-hk.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/hk.svg)}.flag-icon-hm{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/hm.svg)}.flag-icon-hm.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/hm.svg)}.flag-icon-hn{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/hn.svg)}.flag-icon-hn.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/hn.svg)}.flag-icon-hr{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/hr.svg)}.flag-icon-hr.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/hr.svg)}.flag-icon-ht{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/ht.svg)}.flag-icon-ht.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/ht.svg)}.flag-icon-hu{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/hu.svg)}.flag-icon-hu.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/hu.svg)}.flag-icon-id{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/id.svg)}.flag-icon-id.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/id.svg)}.flag-icon-ie{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/ie.svg)}.flag-icon-ie.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/ie.svg)}.flag-icon-il{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/il.svg)}.flag-icon-il.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/il.svg)}.flag-icon-im{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/im.svg)}.flag-icon-im.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/im.svg)}.flag-icon-in{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/in.svg)}.flag-icon-in.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/in.svg)}.flag-icon-io{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/io.svg)}.flag-icon-io.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/io.svg)}.flag-icon-iq{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/iq.svg)}.flag-icon-iq.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/iq.svg)}.flag-icon-ir{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/ir.svg)}.flag-icon-ir.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/ir.svg)}.flag-icon-is{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/is.svg)}.flag-icon-is.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/is.svg)}.flag-icon-it{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/it.svg)}.flag-icon-it.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/it.svg)}.flag-icon-je{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/je.svg)}.flag-icon-je.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/je.svg)}.flag-icon-jm{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/jm.svg)}.flag-icon-jm.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/jm.svg)}.flag-icon-jo{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/jo.svg)}.flag-icon-jo.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/jo.svg)}.flag-icon-jp{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/jp.svg)}.flag-icon-jp.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/jp.svg)}.flag-icon-ke{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/ke.svg)}.flag-icon-ke.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/ke.svg)}.flag-icon-kg{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/kg.svg)}.flag-icon-kg.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/kg.svg)}.flag-icon-kh{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/kh.svg)}.flag-icon-kh.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/kh.svg)}.flag-icon-ki{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/ki.svg)}.flag-icon-ki.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/ki.svg)}.flag-icon-km{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/km.svg)}.flag-icon-km.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/km.svg)}.flag-icon-kn{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/kn.svg)}.flag-icon-kn.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/kn.svg)}.flag-icon-kp{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/kp.svg)}.flag-icon-kp.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/kp.svg)}.flag-icon-kr{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/kr.svg)}.flag-icon-kr.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/kr.svg)}.flag-icon-kw{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/kw.svg)}.flag-icon-kw.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/kw.svg)}.flag-icon-ky{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/ky.svg)}.flag-icon-ky.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/ky.svg)}.flag-icon-kz{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/kz.svg)}.flag-icon-kz.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/kz.svg)}.flag-icon-la{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/la.svg)}.flag-icon-la.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/la.svg)}.flag-icon-lb{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/lb.svg)}.flag-icon-lb.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/lb.svg)}.flag-icon-lc{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/lc.svg)}.flag-icon-lc.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/lc.svg)}.flag-icon-li{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/li.svg)}.flag-icon-li.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/li.svg)}.flag-icon-lk{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/lk.svg)}.flag-icon-lk.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/lk.svg)}.flag-icon-lr{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/lr.svg)}.flag-icon-lr.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/lr.svg)}.flag-icon-ls{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/ls.svg)}.flag-icon-ls.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/ls.svg)}.flag-icon-lt{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/lt.svg)}.flag-icon-lt.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/lt.svg)}.flag-icon-lu{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/lu.svg)}.flag-icon-lu.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/lu.svg)}.flag-icon-lv{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/lv.svg)}.flag-icon-lv.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/lv.svg)}.flag-icon-ly{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/ly.svg)}.flag-icon-ly.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/ly.svg)}.flag-icon-ma{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/ma.svg)}.flag-icon-ma.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/ma.svg)}.flag-icon-mc{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/mc.svg)}.flag-icon-mc.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/mc.svg)}.flag-icon-md{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/md.svg)}.flag-icon-md.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/md.svg)}.flag-icon-me{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/me.svg)}.flag-icon-me.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/me.svg)}.flag-icon-mf{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/mf.svg)}.flag-icon-mf.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/mf.svg)}.flag-icon-mg{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/mg.svg)}.flag-icon-mg.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/mg.svg)}.flag-icon-mh{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/mh.svg)}.flag-icon-mh.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/mh.svg)}.flag-icon-mk{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/mk.svg)}.flag-icon-mk.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/mk.svg)}.flag-icon-ml{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/ml.svg)}.flag-icon-ml.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/ml.svg)}.flag-icon-mm{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/mm.svg)}.flag-icon-mm.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/mm.svg)}.flag-icon-mn{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/mn.svg)}.flag-icon-mn.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/mn.svg)}.flag-icon-mo{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/mo.svg)}.flag-icon-mo.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/mo.svg)}.flag-icon-mp{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/mp.svg)}.flag-icon-mp.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/mp.svg)}.flag-icon-mq{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/mq.svg)}.flag-icon-mq.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/mq.svg)}.flag-icon-mr{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/mr.svg)}.flag-icon-mr.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/mr.svg)}.flag-icon-ms{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/ms.svg)}.flag-icon-ms.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/ms.svg)}.flag-icon-mt{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/mt.svg)}.flag-icon-mt.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/mt.svg)}.flag-icon-mu{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/mu.svg)}.flag-icon-mu.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/mu.svg)}.flag-icon-mv{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/mv.svg)}.flag-icon-mv.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/mv.svg)}.flag-icon-mw{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/mw.svg)}.flag-icon-mw.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/mw.svg)}.flag-icon-mx{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/mx.svg)}.flag-icon-mx.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/mx.svg)}.flag-icon-my{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/my.svg)}.flag-icon-my.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/my.svg)}.flag-icon-mz{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/mz.svg)}.flag-icon-mz.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/mz.svg)}.flag-icon-na{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/na.svg)}.flag-icon-na.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/na.svg)}.flag-icon-nc{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/nc.svg)}.flag-icon-nc.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/nc.svg)}.flag-icon-ne{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/ne.svg)}.flag-icon-ne.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/ne.svg)}.flag-icon-nf{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/nf.svg)}.flag-icon-nf.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/nf.svg)}.flag-icon-ng{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/ng.svg)}.flag-icon-ng.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/ng.svg)}.flag-icon-ni{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/ni.svg)}.flag-icon-ni.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/ni.svg)}.flag-icon-nl{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/nl.svg)}.flag-icon-nl.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/nl.svg)}.flag-icon-no{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/no.svg)}.flag-icon-no.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/no.svg)}.flag-icon-np{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/np.svg)}.flag-icon-np.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/np.svg)}.flag-icon-nr{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/nr.svg)}.flag-icon-nr.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/nr.svg)}.flag-icon-nu{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/nu.svg)}.flag-icon-nu.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/nu.svg)}.flag-icon-nz{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/nz.svg)}.flag-icon-nz.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/nz.svg)}.flag-icon-om{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/om.svg)}.flag-icon-om.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/om.svg)}.flag-icon-pa{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/pa.svg)}.flag-icon-pa.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/pa.svg)}.flag-icon-pe{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/pe.svg)}.flag-icon-pe.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/pe.svg)}.flag-icon-pf{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/pf.svg)}.flag-icon-pf.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/pf.svg)}.flag-icon-pg{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/pg.svg)}.flag-icon-pg.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/pg.svg)}.flag-icon-ph{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/ph.svg)}.flag-icon-ph.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/ph.svg)}.flag-icon-pk{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/pk.svg)}.flag-icon-pk.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/pk.svg)}.flag-icon-pl{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/pl.svg)}.flag-icon-pl.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/pl.svg)}.flag-icon-pm{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/pm.svg)}.flag-icon-pm.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/pm.svg)}.flag-icon-pn{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/pn.svg)}.flag-icon-pn.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/pn.svg)}.flag-icon-pr{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/pr.svg)}.flag-icon-pr.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/pr.svg)}.flag-icon-ps{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/ps.svg)}.flag-icon-ps.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/ps.svg)}.flag-icon-pt{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/pt.svg)}.flag-icon-pt.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/pt.svg)}.flag-icon-pw{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/pw.svg)}.flag-icon-pw.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/pw.svg)}.flag-icon-py{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/py.svg)}.flag-icon-py.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/py.svg)}.flag-icon-qa{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/qa.svg)}.flag-icon-qa.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/qa.svg)}.flag-icon-re{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/re.svg)}.flag-icon-re.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/re.svg)}.flag-icon-ro{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/ro.svg)}.flag-icon-ro.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/ro.svg)}.flag-icon-rs{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/rs.svg)}.flag-icon-rs.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/rs.svg)}.flag-icon-ru{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/ru.svg)}.flag-icon-ru.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/ru.svg)}.flag-icon-rw{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/rw.svg)}.flag-icon-rw.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/rw.svg)}.flag-icon-sa{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/sa.svg)}.flag-icon-sa.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/sa.svg)}.flag-icon-sb{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/sb.svg)}.flag-icon-sb.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/sb.svg)}.flag-icon-sc{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/sc.svg)}.flag-icon-sc.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/sc.svg)}.flag-icon-sd{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/sd.svg)}.flag-icon-sd.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/sd.svg)}.flag-icon-se{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/se.svg)}.flag-icon-se.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/se.svg)}.flag-icon-sg{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/sg.svg)}.flag-icon-sg.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/sg.svg)}.flag-icon-sh{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/sh.svg)}.flag-icon-sh.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/sh.svg)}.flag-icon-si{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/si.svg)}.flag-icon-si.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/si.svg)}.flag-icon-sj{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/sj.svg)}.flag-icon-sj.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/sj.svg)}.flag-icon-sk{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/sk.svg)}.flag-icon-sk.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/sk.svg)}.flag-icon-sl{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/sl.svg)}.flag-icon-sl.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/sl.svg)}.flag-icon-sm{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/sm.svg)}.flag-icon-sm.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/sm.svg)}.flag-icon-sn{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/sn.svg)}.flag-icon-sn.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/sn.svg)}.flag-icon-so{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/so.svg)}.flag-icon-so.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/so.svg)}.flag-icon-sr{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/sr.svg)}.flag-icon-sr.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/sr.svg)}.flag-icon-ss{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/ss.svg)}.flag-icon-ss.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/ss.svg)}.flag-icon-st{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/st.svg)}.flag-icon-st.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/st.svg)}.flag-icon-sv{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/sv.svg)}.flag-icon-sv.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/sv.svg)}.flag-icon-sx{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/sx.svg)}.flag-icon-sx.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/sx.svg)}.flag-icon-sy{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/sy.svg)}.flag-icon-sy.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/sy.svg)}.flag-icon-sz{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/sz.svg)}.flag-icon-sz.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/sz.svg)}.flag-icon-tc{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/tc.svg)}.flag-icon-tc.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/tc.svg)}.flag-icon-td{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/td.svg)}.flag-icon-td.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/td.svg)}.flag-icon-tf{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/tf.svg)}.flag-icon-tf.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/tf.svg)}.flag-icon-tg{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/tg.svg)}.flag-icon-tg.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/tg.svg)}.flag-icon-th{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/th.svg)}.flag-icon-th.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/th.svg)}.flag-icon-tj{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/tj.svg)}.flag-icon-tj.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/tj.svg)}.flag-icon-tk{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/tk.svg)}.flag-icon-tk.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/tk.svg)}.flag-icon-tl{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/tl.svg)}.flag-icon-tl.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/tl.svg)}.flag-icon-tm{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/tm.svg)}.flag-icon-tm.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/tm.svg)}.flag-icon-tn{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/tn.svg)}.flag-icon-tn.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/tn.svg)}.flag-icon-to{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/to.svg)}.flag-icon-to.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/to.svg)}.flag-icon-tr{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/tr.svg)}.flag-icon-tr.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/tr.svg)}.flag-icon-tt{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/tt.svg)}.flag-icon-tt.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/tt.svg)}.flag-icon-tv{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/tv.svg)}.flag-icon-tv.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/tv.svg)}.flag-icon-tw{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/tw.svg)}.flag-icon-tw.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/tw.svg)}.flag-icon-tz{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/tz.svg)}.flag-icon-tz.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/tz.svg)}.flag-icon-ua{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/ua.svg)}.flag-icon-ua.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/ua.svg)}.flag-icon-ug{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/ug.svg)}.flag-icon-ug.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/ug.svg)}.flag-icon-um{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/um.svg)}.flag-icon-um.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/um.svg)}.flag-icon-us{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/us.svg)}.flag-icon-us.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/us.svg)}.flag-icon-uy{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/uy.svg)}.flag-icon-uy.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/uy.svg)}.flag-icon-uz{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/uz.svg)}.flag-icon-uz.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/uz.svg)}.flag-icon-va{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/va.svg)}.flag-icon-va.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/va.svg)}.flag-icon-vc{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/vc.svg)}.flag-icon-vc.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/vc.svg)}.flag-icon-ve{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/ve.svg)}.flag-icon-ve.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/ve.svg)}.flag-icon-vg{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/vg.svg)}.flag-icon-vg.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/vg.svg)}.flag-icon-vi{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/vi.svg)}.flag-icon-vi.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/vi.svg)}.flag-icon-vn{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/vn.svg)}.flag-icon-vn.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/vn.svg)}.flag-icon-vu{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/vu.svg)}.flag-icon-vu.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/vu.svg)}.flag-icon-wf{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/wf.svg)}.flag-icon-wf.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/wf.svg)}.flag-icon-ws{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/ws.svg)}.flag-icon-ws.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/ws.svg)}.flag-icon-ye{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/ye.svg)}.flag-icon-ye.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/ye.svg)}.flag-icon-yt{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/yt.svg)}.flag-icon-yt.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/yt.svg)}.flag-icon-za{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/za.svg)}.flag-icon-za.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/za.svg)}.flag-icon-zm{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/zm.svg)}.flag-icon-zm.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/zm.svg)}.flag-icon-zw{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/zw.svg)}.flag-icon-zw.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/zw.svg)}.flag-icon-es-ca{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/es-ca.svg)}.flag-icon-es-ca.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/es-ca.svg)}.flag-icon-es-ga{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/es-ga.svg)}.flag-icon-es-ga.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/es-ga.svg)}.flag-icon-eu{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/eu.svg)}.flag-icon-eu.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/eu.svg)}.flag-icon-gb-eng{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/gb-eng.svg)}.flag-icon-gb-eng.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/gb-eng.svg)}.flag-icon-gb-nir{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/gb-nir.svg)}.flag-icon-gb-nir.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/gb-nir.svg)}.flag-icon-gb-sct{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/gb-sct.svg)}.flag-icon-gb-sct.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/gb-sct.svg)}.flag-icon-gb-wls{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/gb-wls.svg)}.flag-icon-gb-wls.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/gb-wls.svg)}.flag-icon-un{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/un.svg)}.flag-icon-un.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/un.svg)}.flag-icon-xk{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/4x3/xk.svg)}.flag-icon-xk.flag-icon-squared{background-image:url(_content/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/libs/flag-icon/flags/1x1/xk.svg)} -body:before{content:"mobile";display:none;visibility:hidden}@media(min-width:768px){body:before{content:"tablet"}}@media(min-width:992px){body:before{content:"desktop"}}@media(min-width:1200px){body:before{content:"widescreen"}}@media(min-width:1400px){body:before{content:"fullhd"}}hr.divider.divider-solid{border-top:var(--b-divider-thickness,1px) solid var(--b-divider-color,#999)}hr.divider.divider-dashed{border-top:var(--b-divider-thickness,1px) dashed var(--b-divider-color,#999)}hr.divider.divider-dotted{border-top:var(--b-divider-thickness,1px) dotted var(--b-divider-color,#999)}hr.divider.divider-text{position:relative;border:none;height:var(--b-divider-thickness,1px);background:var(--b-divider-color,#999)}hr.divider.divider-text::before{content:attr(data-content);display:inline-block;background:#fff;font-weight:bold;font-size:var(--b-divider-font-size,.85rem);color:var(--b-divider-color,#999);border-radius:30rem;padding:.2rem 2rem;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.b-drop-zone{position:relative;transition:all 300ms cubic-bezier(.4,0,.2,1) 0ms}.b-drop-zone.b-drop-zone-drag-block>*{pointer-events:none}.b-drop-zone.b-drop-zone-drop-allowed{outline:1px solid var(--b-theme-success,"#00FF00") !important}.b-drop-zone.b-drop-zone-drop-not-allowed{outline:1px solid var(--b-theme-danger,"#FF0000") !important}.b-drop-zone-draggable:not(.draggable-preview-start){cursor:grab;user-select:none}.b-drop-zone-draggable:not(.draggable-preview-start):active{cursor:grabbing}.b-drop-zone .draggable-placeholder{outline:2px dashed var(--b-theme-primary,"#0000FF") !important;padding:1rem}.b-drop-zone .draggable-preview-start{height:20px;width:100%;position:absolute;top:0;left:0;z-index:1}.b-file-picker{display:inline-block;width:100%}.b-file-picker .b-text-drop{border:1px solid rgba(0,0,0,.15);margin-top:.5rem;display:block;text-align:center;font-size:.75rem;padding-top:.25rem;padding-bottom:.25rem}.b-file-picker .b-file-picker-file{min-width:25rem}.b-file-picker .b-file-picker-file span{display:block}.b-file-picker .b-file-picker-file .b-file-picker-file-size,.b-file-picker .b-file-picker-file .b-file-picker-file-status,.b-file-picker .b-file-picker-file .b-file-picker-file-relativepath{font-size:.75rem}.b-input-color-picker{padding:.6rem}.b-input-color-picker>.b-input-color-picker-preview{position:relative;z-index:1;width:100%;height:100%;display:flex;flex-direction:row;justify-content:space-between}.b-input-color-picker>.b-input-color-picker-preview::before{position:absolute;content:"";top:0;left:0;width:100%;height:100%;background:url('data:image/svg+xml;utf8, ');background-size:.5em;border-radius:.15em;z-index:-1}.b-input-color-picker>.b-input-color-picker-preview>.b-input-color-picker-curent-color{display:inline-block;width:100%;height:100%}.b-input-color-picker[aria-disabled=true]{opacity:.65}.progress.progress-xs{height:.25rem}.progress.progress-sm{height:.5rem}.progress.progress-md{height:1rem}.progress.progress-lg{height:1.5rem}.progress.progress-xl{height:2rem}.b-page-progress{width:100%;height:4px;z-index:9999;top:0;left:0;position:fixed;display:none}.b-page-progress .b-page-progress-indicator{width:0;height:100%;transition:height .3s;background-color:#000;transition:width 1s}.b-page-progress .b-page-progress-indicator.b-page-progress-indicator-indeterminate{width:30%;animation:running-page-progress 2s cubic-bezier(.4,0,.2,1) infinite}.b-page-progress.b-page-progress-active{display:block}@keyframes running-page-progress{0%{margin-left:0;margin-right:100%}50%{margin-left:25%;margin-right:0%}100%{margin-left:100%;margin-right:0}}.tippy-box[data-animation=scale][data-placement^=top]{transform-origin:bottom}.tippy-box[data-animation=scale][data-placement^=bottom]{transform-origin:top}.tippy-box[data-animation=scale][data-placement^=left]{transform-origin:right}.tippy-box[data-animation=scale][data-placement^=right]{transform-origin:left}.tippy-box[data-animation=scale][data-state=hidden]{transform:scale(.5);opacity:0}.tippy-box[data-theme~=blazorise]{background-color:RGBA(var(--b-tooltip-background-color-r,128),var(--b-tooltip-background-color-g,128),var(--b-tooltip-background-color-b,128),var(--b-tooltip-background-opacity,.9));color:var(--b-tooltip-color,#fff)}.tippy-box[data-theme~=blazorise][data-placement^=top]>.tippy-arrow::before{border-top-color:RGBA(var(--b-tooltip-background-color-r,128),var(--b-tooltip-background-color-g,128),var(--b-tooltip-background-color-b,128),var(--b-tooltip-background-opacity,.9))}.tippy-box[data-theme~=blazorise][data-placement^=bottom]>.tippy-arrow::before{border-bottom-color:RGBA(var(--b-tooltip-background-color-r,128),var(--b-tooltip-background-color-g,128),var(--b-tooltip-background-color-b,128),var(--b-tooltip-background-opacity,.9))}.tippy-box[data-theme~=blazorise][data-placement^=left]>.tippy-arrow::before{border-left-color:RGBA(var(--b-tooltip-background-color-r,128),var(--b-tooltip-background-color-g,128),var(--b-tooltip-background-color-b,128),var(--b-tooltip-background-opacity,.9))}.tippy-box[data-theme~=blazorise][data-placement^=right]>.tippy-arrow::before{border-right-color:RGBA(var(--b-tooltip-background-color-r,128),var(--b-tooltip-background-color-g,128),var(--b-tooltip-background-color-b,128),var(--b-tooltip-background-opacity,.9))}.tippy-box[data-theme~=blazorise]>.tippy-svg-arrow{fill:RGBA(var(--b-tooltip-background-color-r,128),var(--b-tooltip-background-color-g,128),var(--b-tooltip-background-color-b,128),var(--b-tooltip-background-opacity,.9))}.b-tooltip-inline{display:inline-block}.b-layout{display:flex;flex:auto;flex-direction:column}.b-layout.b-layout-root{height:100vh}.b-layout,.b-layout *{box-sizing:border-box}@keyframes spinner{0%{transform:translate3d(-50%,-50%,0) rotate(0deg)}100%{transform:translate3d(-50%,-50%,0) rotate(360deg)}}.b-layout>.b-layout-loading{z-index:9999;position:fixed;width:100%;height:100%;background:rgba(0,0,0,.3)}.b-layout>.b-layout-loading:before{animation:1s linear infinite spinner;border:solid 3px #eee;border-bottom-color:var(--b-theme-primary);border-radius:50%;height:40px;left:50%;position:absolute;top:50%;transform:translate3d(-50%,-50%,0);width:40px;content:" "}.b-layout.b-layout-has-sider{flex-direction:row;min-height:0}.b-layout.b-layout-has-sider .b-layout{overflow-x:hidden}.b-layout-header,.b-layout-footer{flex:0 0 auto}.b-layout-header{color:rgba(0,0,0,.65)}.b-layout.b-layout-root.b-layout-has-sider>.b-layout-header-fixed,.b-layout.b-layout-root.b-layout-has-sider>.b-layout>.b-layout-header-fixed{position:sticky;top:0;width:100%;flex:0}.b-layout.b-layout-root:not(.b-layout-has-sider) .b-layout-header-fixed,.b-layout.b-layout-root:not(.b-layout-has-sider)>.b-layout .b-layout-header-fixed{position:fixed;top:0;left:0;right:0;flex:0}.b-layout.b-layout-root:not(.b-layout-has-sider) .b-layout-header-fixed+.b-layout-content,.b-layout.b-layout-root:not(.b-layout-has-sider)>.b-layout .b-layout-header-fixed+.b-layout-content{margin-top:var(--b-bar-horizontal-height,auto)}.b-layout.b-layout-root>.b-layout-header.b-layout-header-fixed+.b-layout.b-layout-has-sider{margin-top:var(--b-bar-horizontal-height,auto)}.b-layout-footer{color:rgba(0,0,0,.65)}.b-layout-footer-fixed{position:sticky;z-index:1;bottom:0;flex:0}.b-layout-content{flex:1}.b-layout-sider{display:flex;position:relative;background:#001529}.b-layout-sider-content{position:sticky;top:0;z-index:2}.b-layout-header .navbar{line-height:inherit}.b-bar-horizontal[data-collapse=hide]{flex-wrap:nowrap}.b-bar-horizontal[data-collapse=hide][data-broken=true]{height:auto}.b-bar-horizontal[data-broken=false]{height:auto}.b-layout>.b-layout-header .b-bar-horizontal[data-collapse=hide][data-broken=true]{height:var(--b-bar-horizontal-height,auto)}.b-layout>.b-layout-header .b-bar-horizontal[data-broken=false]{height:var(--b-bar-horizontal-height,auto)}.b-bar-initial{display:none !important}.b-bar-vertical-inline,.b-bar-vertical-popout,.b-bar-vertical-small{display:flex;flex-direction:column;flex-wrap:nowrap;position:sticky;top:0;padding:0;min-width:var(--b-vertical-bar-width,230px);max-width:var(--b-vertical-bar-width,230px);width:var(--b-vertical-bar-width,230px);box-shadow:2px 0 6px rgba(0,21,41,.35);height:100%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.b-bar-vertical-inline:not(.b-bar-initial),.b-bar-vertical-popout:not(.b-bar-initial),.b-bar-vertical-small:not(.b-bar-initial){transition:width 200ms ease-in-out,min-width 200ms ease-in-out}.b-bar-vertical-inline .b-bar-menu,.b-bar-vertical-popout .b-bar-menu,.b-bar-vertical-small .b-bar-menu{width:100%;display:flex;flex:1;justify-content:space-between;flex-direction:column;align-self:stretch}.b-bar-vertical-inline .b-bar-brand,.b-bar-vertical-popout .b-bar-brand,.b-bar-vertical-small .b-bar-brand{width:100%;display:flex;height:var(--b-vertical-bar-brand-height,64px);min-height:var(--b-vertical-bar-brand-height,64px)}.b-bar-vertical-inline .b-bar-toggler-inline,.b-bar-vertical-popout .b-bar-toggler-inline,.b-bar-vertical-small .b-bar-toggler-inline{height:var(--b-vertical-bar-brand-height,64px);padding:12px;display:inline-flex;cursor:pointer;position:absolute;right:0}.b-bar-vertical-inline .b-bar-toggler-inline>*,.b-bar-vertical-popout .b-bar-toggler-inline>*,.b-bar-vertical-small .b-bar-toggler-inline>*{margin:auto}.b-bar-vertical-inline .b-bar-toggler-popout:not(.b-bar-mobile-toggle),.b-bar-vertical-popout .b-bar-toggler-popout:not(.b-bar-mobile-toggle),.b-bar-vertical-small .b-bar-toggler-popout:not(.b-bar-mobile-toggle){display:flex;position:fixed;left:var(--b-vertical-bar-width,230px);border-radius:0 10px 10px 0;border:0;width:10px;height:40px;padding:5px;align-items:center;box-shadow:2px 0 6px rgba(0,21,41,.35);cursor:pointer}.b-bar-vertical-inline .b-bar-toggler-popout:not(.b-bar-mobile-toggle):not(.b-bar-initial),.b-bar-vertical-popout .b-bar-toggler-popout:not(.b-bar-mobile-toggle):not(.b-bar-initial),.b-bar-vertical-small .b-bar-toggler-popout:not(.b-bar-mobile-toggle):not(.b-bar-initial){transition:width 200ms ease-in-out,left 200ms ease-in-out}.b-bar-vertical-inline .b-bar-toggler-popout:not(.b-bar-mobile-toggle)>*,.b-bar-vertical-popout .b-bar-toggler-popout:not(.b-bar-mobile-toggle)>*,.b-bar-vertical-small .b-bar-toggler-popout:not(.b-bar-mobile-toggle)>*{margin:auto;display:none}.b-bar-vertical-inline .b-bar-toggler-popout:not(.b-bar-mobile-toggle):hover,.b-bar-vertical-popout .b-bar-toggler-popout:not(.b-bar-mobile-toggle):hover,.b-bar-vertical-small .b-bar-toggler-popout:not(.b-bar-mobile-toggle):hover{width:45px}.b-bar-vertical-inline .b-bar-toggler-popout:not(.b-bar-mobile-toggle):hover>*,.b-bar-vertical-popout .b-bar-toggler-popout:not(.b-bar-mobile-toggle):hover>*,.b-bar-vertical-small .b-bar-toggler-popout:not(.b-bar-mobile-toggle):hover>*{display:block}.b-bar-vertical-inline .b-bar-item,.b-bar-vertical-popout .b-bar-item,.b-bar-vertical-small .b-bar-item{margin:auto;flex-grow:1;min-height:40px}.b-bar-vertical-inline .b-bar-item .b-bar-icon,.b-bar-vertical-popout .b-bar-item .b-bar-icon,.b-bar-vertical-small .b-bar-item .b-bar-icon{font-size:1.25rem;vertical-align:middle;margin:3px;display:inline-block}.b-bar-vertical-inline .b-bar-start,.b-bar-vertical-popout .b-bar-start,.b-bar-vertical-small .b-bar-start{width:100%;display:block}.b-bar-vertical-inline .b-bar-end,.b-bar-vertical-popout .b-bar-end,.b-bar-vertical-small .b-bar-end{padding-bottom:1rem;width:100%;padding-top:1rem;display:block}.b-bar-vertical-inline .b-bar-end .b-bar-dropdown,.b-bar-vertical-popout .b-bar-end .b-bar-dropdown,.b-bar-vertical-small .b-bar-end .b-bar-dropdown{position:relative}.b-bar-vertical-inline .b-bar-end .b-bar-dropdown-menu-container,.b-bar-vertical-popout .b-bar-end .b-bar-dropdown-menu-container,.b-bar-vertical-small .b-bar-end .b-bar-dropdown-menu-container{bottom:0}.b-bar-vertical-inline .b-bar-link,.b-bar-vertical-popout .b-bar-link,.b-bar-vertical-small .b-bar-link{display:block;width:100%;text-decoration:none;padding:.5rem .5rem .5rem 1.5rem;cursor:pointer;overflow-x:hidden;line-height:1.5rem;vertical-align:middle;transition:font-size 150ms ease-in}.b-bar-vertical-inline .b-bar-label,.b-bar-vertical-popout .b-bar-label,.b-bar-vertical-small .b-bar-label{background:transparent;color:#adb5bd;padding:.375rem 1.25rem;font-size:.75rem;text-overflow:ellipsis;overflow-x:hidden}.b-bar-vertical-inline .b-bar-dropdown .b-bar-dropdown-toggle:before,.b-bar-vertical-popout .b-bar-dropdown .b-bar-dropdown-toggle:before,.b-bar-vertical-small .b-bar-dropdown .b-bar-dropdown-toggle:before{content:" ";border:solid;border-width:0 2px 2px 0;display:inline-block;padding:2px;right:1rem;transition:transform 200ms ease-out;float:right;position:relative;-webkit-transform:rotate(225deg);transform:rotate(225deg);top:.7rem}.b-bar-vertical-inline .b-bar-dropdown:not([data-visible=true]) .b-bar-dropdown-toggle:before,.b-bar-vertical-popout .b-bar-dropdown:not([data-visible=true]) .b-bar-dropdown-toggle:before,.b-bar-vertical-small .b-bar-dropdown:not([data-visible=true]) .b-bar-dropdown-toggle:before{-webkit-transform:rotate(45deg);transform:rotate(45deg);top:.5rem}.b-bar-vertical-inline .b-bar-dropdown .b-bar-dropdown-menu,.b-bar-vertical-popout .b-bar-dropdown .b-bar-dropdown-menu,.b-bar-vertical-small .b-bar-dropdown .b-bar-dropdown-menu{display:none;background:inherit;color:inherit;float:none;padding:5px 0}.b-bar-vertical-inline .b-bar-dropdown .b-bar-dropdown-menu[data-visible=true],.b-bar-vertical-popout .b-bar-dropdown .b-bar-dropdown-menu[data-visible=true],.b-bar-vertical-small .b-bar-dropdown .b-bar-dropdown-menu[data-visible=true]{display:block}.b-bar-vertical-inline .b-bar-dropdown .b-bar-dropdown-menu .b-bar-dropdown-item,.b-bar-vertical-popout .b-bar-dropdown .b-bar-dropdown-menu .b-bar-dropdown-item,.b-bar-vertical-small .b-bar-dropdown .b-bar-dropdown-menu .b-bar-dropdown-item{position:relative;color:inherit;transition:background 100ms ease-in-out,color 100ms ease-in-out;text-decoration:none;display:block;width:100%;overflow-x:hidden}.b-bar-vertical-inline .b-bar-dropdown .b-bar-dropdown-menu .b-bar-dropdown-item i,.b-bar-vertical-popout .b-bar-dropdown .b-bar-dropdown-menu .b-bar-dropdown-item i,.b-bar-vertical-small .b-bar-dropdown .b-bar-dropdown-menu .b-bar-dropdown-item i{margin-right:.3rem}.b-bar-vertical-inline .b-bar-dropdown .b-bar-dropdown-menu:before,.b-bar-vertical-popout .b-bar-dropdown .b-bar-dropdown-menu:before,.b-bar-vertical-small .b-bar-dropdown .b-bar-dropdown-menu:before{background:inherit;box-shadow:none}.b-bar-vertical-inline .b-bar-mobile-toggle,.b-bar-vertical-popout .b-bar-mobile-toggle,.b-bar-vertical-small .b-bar-mobile-toggle{right:20px;margin:auto;display:none}.b-bar-vertical-inline .b-bar-item-multi-line,.b-bar-vertical-popout .b-bar-item-multi-line,.b-bar-vertical-small .b-bar-item-multi-line{display:-webkit-box !important;-webkit-box-orient:vertical;-webkit-line-clamp:var(--b-bar-item-lines,2);white-space:normal !important;overflow:hidden;text-overflow:ellipsis}.b-bar-vertical-inline.b-bar-dark,.b-bar-vertical-popout.b-bar-dark,.b-bar-vertical-small.b-bar-dark{background:var(--b-bar-dark-background,#001529);color:var(--b-bar-dark-color,rgba(255,255,255,.5))}.b-bar-vertical-inline.b-bar-dark .b-bar-brand,.b-bar-vertical-popout.b-bar-dark .b-bar-brand,.b-bar-vertical-small.b-bar-dark .b-bar-brand{background:var(--b-bar-brand-dark-background,rgba(255,255,255,.025))}.b-bar-vertical-inline.b-bar-dark .b-bar-brand .b-bar-link,.b-bar-vertical-popout.b-bar-dark .b-bar-brand .b-bar-link,.b-bar-vertical-small.b-bar-dark .b-bar-brand .b-bar-link{color:#fff}.b-bar-vertical-inline.b-bar-dark .b-bar-brand .b-bar-link.active,.b-bar-vertical-popout.b-bar-dark .b-bar-brand .b-bar-link.active,.b-bar-vertical-small.b-bar-dark .b-bar-brand .b-bar-link.active{color:#fff;background:inherit}.b-bar-vertical-inline.b-bar-dark .b-bar-brand .b-bar-link:hover,.b-bar-vertical-popout.b-bar-dark .b-bar-brand .b-bar-link:hover,.b-bar-vertical-small.b-bar-dark .b-bar-brand .b-bar-link:hover{color:#fff;background:inherit}.b-bar-vertical-inline.b-bar-dark .b-bar-toggler-popout:not(.b-bar-mobile-toggle),.b-bar-vertical-popout.b-bar-dark .b-bar-toggler-popout:not(.b-bar-mobile-toggle),.b-bar-vertical-small.b-bar-dark .b-bar-toggler-popout:not(.b-bar-mobile-toggle){background:var(--b-bar-dark-background,#001529);color:var(--b-bar-dark-color,rgba(255,255,255,.5))}.b-bar-vertical-inline.b-bar-dark .b-bar-dropdown-menu,.b-bar-vertical-popout.b-bar-dark .b-bar-dropdown-menu,.b-bar-vertical-small.b-bar-dark .b-bar-dropdown-menu{background:var(--b-bar-dropdown-dark-background,#000c17)}.b-bar-vertical-inline.b-bar-dark .b-bar-dropdown-menu .b-bar-dropdown-item.active,.b-bar-vertical-popout.b-bar-dark .b-bar-dropdown-menu .b-bar-dropdown-item.active,.b-bar-vertical-small.b-bar-dark .b-bar-dropdown-menu .b-bar-dropdown-item.active{color:var(--b-bar-item-dark-active-color,#fff);background:var(--b-bar-item-dark-active-background,#0288d1)}.b-bar-vertical-inline.b-bar-dark .b-bar-dropdown-menu .b-bar-dropdown-item:hover,.b-bar-vertical-popout.b-bar-dark .b-bar-dropdown-menu .b-bar-dropdown-item:hover,.b-bar-vertical-small.b-bar-dark .b-bar-dropdown-menu .b-bar-dropdown-item:hover{color:var(--b-bar-item-dark-hover-color,#fff);background:var(--b-bar-item-dark-hover-background,rgba(255,255,255,.3))}.b-bar-vertical-inline.b-bar-dark .b-bar-link,.b-bar-vertical-popout.b-bar-dark .b-bar-link,.b-bar-vertical-small.b-bar-dark .b-bar-link{color:inherit}.b-bar-vertical-inline.b-bar-dark .b-bar-link.active,.b-bar-vertical-popout.b-bar-dark .b-bar-link.active,.b-bar-vertical-small.b-bar-dark .b-bar-link.active{color:var(--b-bar-item-dark-active-color,#fff);background:var(--b-bar-item-dark-active-background,#0288d1)}.b-bar-vertical-inline.b-bar-dark .b-bar-link:hover,.b-bar-vertical-popout.b-bar-dark .b-bar-link:hover,.b-bar-vertical-small.b-bar-dark .b-bar-link:hover{color:var(--b-bar-item-dark-hover-color,#fff);background:var(--b-bar-item-dark-hover-background,rgba(255,255,255,.3))}.b-bar-vertical-inline.b-bar-light,.b-bar-vertical-popout.b-bar-light,.b-bar-vertical-small.b-bar-light{background:var(--b-bar-light-background,#fff);color:var(--b-bar-light-color,rgba(0,0,0,.7))}.b-bar-vertical-inline.b-bar-light .b-bar-brand,.b-bar-vertical-popout.b-bar-light .b-bar-brand,.b-bar-vertical-small.b-bar-light .b-bar-brand{background:var(--b-bar-brand-light-background,rgba(0,0,0,.025))}.b-bar-vertical-inline.b-bar-light .b-bar-brand .b-bar-link,.b-bar-vertical-popout.b-bar-light .b-bar-brand .b-bar-link,.b-bar-vertical-small.b-bar-light .b-bar-brand .b-bar-link{color:#000}.b-bar-vertical-inline.b-bar-light .b-bar-brand .b-bar-link.active,.b-bar-vertical-popout.b-bar-light .b-bar-brand .b-bar-link.active,.b-bar-vertical-small.b-bar-light .b-bar-brand .b-bar-link.active{background:inherit}.b-bar-vertical-inline.b-bar-light .b-bar-brand .b-bar-link:hover,.b-bar-vertical-popout.b-bar-light .b-bar-brand .b-bar-link:hover,.b-bar-vertical-small.b-bar-light .b-bar-brand .b-bar-link:hover{background:inherit}.b-bar-vertical-inline.b-bar-light .b-bar-toggler-popout:not(.b-bar-mobile-toggle),.b-bar-vertical-popout.b-bar-light .b-bar-toggler-popout:not(.b-bar-mobile-toggle),.b-bar-vertical-small.b-bar-light .b-bar-toggler-popout:not(.b-bar-mobile-toggle){background:var(--b-bar-brand-light-background,#fff);color:var(--b-bar-light-color,rgba(0,0,0,.7))}.b-bar-vertical-inline.b-bar-light .b-bar-dropdown-menu,.b-bar-vertical-popout.b-bar-light .b-bar-dropdown-menu,.b-bar-vertical-small.b-bar-light .b-bar-dropdown-menu{background:var(--b-bar-dropdown-light-background,#f2f2f2)}.b-bar-vertical-inline.b-bar-light .b-bar-dropdown-menu .b-bar-dropdown-item.active,.b-bar-vertical-popout.b-bar-light .b-bar-dropdown-menu .b-bar-dropdown-item.active,.b-bar-vertical-small.b-bar-light .b-bar-dropdown-menu .b-bar-dropdown-item.active{color:var(--b-bar-item-light-active-color,#000);background:var(--b-bar-item-light-active-background,#0288d1)}.b-bar-vertical-inline.b-bar-light .b-bar-dropdown-menu .b-bar-dropdown-item:hover,.b-bar-vertical-popout.b-bar-light .b-bar-dropdown-menu .b-bar-dropdown-item:hover,.b-bar-vertical-small.b-bar-light .b-bar-dropdown-menu .b-bar-dropdown-item:hover{color:var(--b-bar-item-light-hover-color,#000);background:var(--b-bar-item-light-hover-background,rgba(0,0,0,.3))}.b-bar-vertical-inline.b-bar-light .b-bar-link,.b-bar-vertical-popout.b-bar-light .b-bar-link,.b-bar-vertical-small.b-bar-light .b-bar-link{color:inherit}.b-bar-vertical-inline.b-bar-light .b-bar-link.active,.b-bar-vertical-popout.b-bar-light .b-bar-link.active,.b-bar-vertical-small.b-bar-light .b-bar-link.active{color:var(--b-bar-item-light-active-color,#000);background:var(--b-bar-item-light-active-background,#0288d1)}.b-bar-vertical-inline.b-bar-light .b-bar-link:hover,.b-bar-vertical-popout.b-bar-light .b-bar-link:hover,.b-bar-vertical-small.b-bar-light .b-bar-link:hover{color:var(--b-bar-item-light-hover-color,#000);background:var(--b-bar-item-light-hover-background,rgba(0,0,0,.3))}.b-bar-vertical-small,.b-bar-vertical-inline[data-collapse=small],.b-bar-vertical-popout[data-collapse=small]{width:var(--b-vertical-bar-small-width,64px);min-width:var(--b-vertical-bar-small-width,64px)}.b-bar-vertical-small:not(.b-bar-initial),.b-bar-vertical-inline[data-collapse=small]:not(.b-bar-initial),.b-bar-vertical-popout[data-collapse=small]:not(.b-bar-initial){transition:width 200ms ease-in-out,min-width 200ms ease-in-out}.b-bar-vertical-small .b-bar-toggler-inline,.b-bar-vertical-inline[data-collapse=small] .b-bar-toggler-inline,.b-bar-vertical-popout[data-collapse=small] .b-bar-toggler-inline{position:relative;width:100%}.b-bar-vertical-small .b-bar-toggler-popout:not(.b-bar-mobile-toggle),.b-bar-vertical-inline[data-collapse=small] .b-bar-toggler-popout:not(.b-bar-mobile-toggle),.b-bar-vertical-popout[data-collapse=small] .b-bar-toggler-popout:not(.b-bar-mobile-toggle){left:var(--b-vertical-bar-small-width,64px)}.b-bar-vertical-small .b-bar-item>.b-bar-dropdown>.b-bar-dropdown-toggle:before,.b-bar-vertical-inline[data-collapse=small] .b-bar-item>.b-bar-dropdown>.b-bar-dropdown-toggle:before,.b-bar-vertical-popout[data-collapse=small] .b-bar-item>.b-bar-dropdown>.b-bar-dropdown-toggle:before{display:none}.b-bar-vertical-small .b-bar-dropdown .b-bar-dropdown-menu-container,.b-bar-vertical-inline[data-collapse=small] .b-bar-dropdown .b-bar-dropdown-menu-container,.b-bar-vertical-popout[data-collapse=small] .b-bar-dropdown .b-bar-dropdown-menu-container{z-index:100;max-height:50vh;position:absolute !important;margin:-42px 5px 0 5px;display:flex;width:var(--b-vertical-bar-popout-menu-width,180px);left:var(--b-vertical-bar-small-width,64px)}.b-bar-vertical-small .b-bar-dropdown .b-bar-dropdown-menu-container.b-bar-right,.b-bar-vertical-inline[data-collapse=small] .b-bar-dropdown .b-bar-dropdown-menu-container.b-bar-right,.b-bar-vertical-popout[data-collapse=small] .b-bar-dropdown .b-bar-dropdown-menu-container.b-bar-right{right:var(--b-vertical-bar-small-width,64px);left:unset}.b-bar-vertical-small .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu,.b-bar-vertical-inline[data-collapse=small] .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu,.b-bar-vertical-popout[data-collapse=small] .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu{box-shadow:0 3px 6px -4px rgba(0,0,0,.12),0 6px 16px 0 rgba(0,0,0,.08),0 9px 28px 8px rgba(0,0,0,.05);border-radius:3px;overflow-y:auto;overflow-x:hidden;flex:1 100%}.b-bar-vertical-small .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu .b-bar-dropdown-item,.b-bar-vertical-inline[data-collapse=small] .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu .b-bar-dropdown-item,.b-bar-vertical-popout[data-collapse=small] .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu .b-bar-dropdown-item{padding:.5rem .5rem .5rem 1.5rem}.b-bar-vertical-small .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu:before,.b-bar-vertical-inline[data-collapse=small] .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu:before,.b-bar-vertical-popout[data-collapse=small] .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu:before{position:absolute;top:0;left:-7px;right:0;bottom:0;width:100%;height:100%;opacity:.0001;content:" ";z-index:-1}.b-bar-vertical-small .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu.b-bar-right:before,.b-bar-vertical-inline[data-collapse=small] .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu.b-bar-right:before,.b-bar-vertical-popout[data-collapse=small] .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu.b-bar-right:before{left:unset;right:-7px}.b-bar-vertical-small .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu>.b-bar-dropdown .b-bar-dropdown-menu-container,.b-bar-vertical-inline[data-collapse=small] .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu>.b-bar-dropdown .b-bar-dropdown-menu-container,.b-bar-vertical-popout[data-collapse=small] .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu>.b-bar-dropdown .b-bar-dropdown-menu-container{left:var(--b-vertical-bar-popout-menu-width,180px)}.b-bar-vertical-small .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu>.b-bar-dropdown .b-bar-dropdown-menu-container.b-bar-right,.b-bar-vertical-inline[data-collapse=small] .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu>.b-bar-dropdown .b-bar-dropdown-menu-container.b-bar-right,.b-bar-vertical-popout[data-collapse=small] .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu>.b-bar-dropdown .b-bar-dropdown-menu-container.b-bar-right{right:var(--b-vertical-bar-popout-menu-width,180px)}.b-bar-vertical-small .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu>.b-bar-dropdown .b-bar-dropdown-toggle:before,.b-bar-vertical-inline[data-collapse=small] .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu>.b-bar-dropdown .b-bar-dropdown-toggle:before,.b-bar-vertical-popout[data-collapse=small] .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu>.b-bar-dropdown .b-bar-dropdown-toggle:before{content:" ";border:solid;border-width:0 2px 2px 0;display:inline-block;padding:2px;right:1rem;transition:transform 200ms ease-out;float:right;position:relative;-webkit-transform:rotate(135deg);transform:rotate(135deg);right:.8rem}.b-bar-vertical-small .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu>.b-bar-dropdown:not([data-visible=true]) .b-bar-dropdown-toggle:before,.b-bar-vertical-inline[data-collapse=small] .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu>.b-bar-dropdown:not([data-visible=true]) .b-bar-dropdown-toggle:before,.b-bar-vertical-popout[data-collapse=small] .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu>.b-bar-dropdown:not([data-visible=true]) .b-bar-dropdown-toggle:before{-webkit-transform:rotate(315deg);transform:rotate(315deg)}@keyframes b-bar-link-small{to{text-align:center;padding-left:0;padding-right:0}}.b-bar-vertical-small .b-bar-item>.b-bar-link,.b-bar-vertical-small .b-bar-item>.b-bar-dropdown>.b-bar-link,.b-bar-vertical-inline[data-collapse=small] .b-bar-item>.b-bar-link,.b-bar-vertical-inline[data-collapse=small] .b-bar-item>.b-bar-dropdown>.b-bar-link,.b-bar-vertical-popout[data-collapse=small] .b-bar-item>.b-bar-link,.b-bar-vertical-popout[data-collapse=small] .b-bar-item>.b-bar-dropdown>.b-bar-link{animation:b-bar-link-small forwards;animation-delay:170ms;font-size:0;transition:font-size 100ms ease-out}.b-bar-vertical-small .b-bar-item>.b-bar-link:after,.b-bar-vertical-small .b-bar-item>.b-bar-dropdown>.b-bar-link:after,.b-bar-vertical-inline[data-collapse=small] .b-bar-item>.b-bar-link:after,.b-bar-vertical-inline[data-collapse=small] .b-bar-item>.b-bar-dropdown>.b-bar-link:after,.b-bar-vertical-popout[data-collapse=small] .b-bar-item>.b-bar-link:after,.b-bar-vertical-popout[data-collapse=small] .b-bar-item>.b-bar-dropdown>.b-bar-link:after{display:none}.b-bar-vertical-small .b-bar-label,.b-bar-vertical-inline[data-collapse=small] .b-bar-label,.b-bar-vertical-popout[data-collapse=small] .b-bar-label{text-align:center}.b-bar-vertical-inline:not([data-collapse]){overflow-y:auto;overflow-x:hidden}.b-bar-vertical-inline:not([data-collapse]) .b-bar-dropdown .b-bar-dropdown-menu-container{position:relative}.b-bar-vertical-inline:not([data-collapse]) .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu{position:relative !important;border:none;border-radius:0;box-shadow:none}.b-bar-vertical-inline:not([data-collapse]) .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu .b-bar-dropdown-item{padding:.5rem .5rem .5rem 3rem}.b-bar-vertical-inline:not([data-collapse]) .b-bar-brand .b-bar-link{display:flex;align-items:center}.b-bar-vertical-popout:not([data-collapse]) .b-bar-dropdown .b-bar-dropdown-toggle:before{content:" ";border:solid;border-width:0 2px 2px 0;display:inline-block;padding:2px;right:1rem;transition:transform 200ms ease-out;float:right;position:relative;-webkit-transform:rotate(135deg);transform:rotate(135deg);right:.8rem}.b-bar-vertical-popout:not([data-collapse]) .b-bar-dropdown:not([data-visible=true]) .b-bar-dropdown-toggle:before{-webkit-transform:rotate(315deg);transform:rotate(315deg)}.b-bar-vertical-popout:not([data-collapse]) .b-bar-dropdown .b-bar-dropdown-menu-container{z-index:100;max-height:50vh;position:absolute !important;margin:-42px 5px 0 5px;display:flex;width:var(--b-vertical-bar-popout-menu-width,180px);left:var(--b-vertical-bar-width,230px)}.b-bar-vertical-popout:not([data-collapse]) .b-bar-dropdown .b-bar-dropdown-menu-container.b-bar-right{right:var(--b-vertical-bar-width,230px);left:unset}.b-bar-vertical-popout:not([data-collapse]) .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu{box-shadow:0 3px 6px -4px rgba(0,0,0,.12),0 6px 16px 0 rgba(0,0,0,.08),0 9px 28px 8px rgba(0,0,0,.05);border-radius:3px;overflow-y:auto;overflow-x:hidden;flex:1 100%}.b-bar-vertical-popout:not([data-collapse]) .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu .b-bar-dropdown-item{padding:.5rem .5rem .5rem 1.5rem}.b-bar-vertical-popout:not([data-collapse]) .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu:before{position:absolute;top:0;left:-7px;right:0;bottom:0;width:100%;height:100%;opacity:.0001;content:" ";z-index:-1}.b-bar-vertical-popout:not([data-collapse]) .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu.b-bar-right:before{left:unset;right:-7px}.b-bar-vertical-popout:not([data-collapse]) .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu>.b-bar-dropdown .b-bar-dropdown-menu-container{left:var(--b-vertical-bar-popout-menu-width,180px)}.b-bar-vertical-popout:not([data-collapse]) .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu>.b-bar-dropdown .b-bar-dropdown-menu-container.b-bar-right{right:var(--b-vertical-bar-popout-menu-width,180px)}.b-bar-vertical-inline[data-collapse=hide],.b-bar-vertical-popout[data-collapse=hide],.b-bar-vertical-small[data-collapse=hide]{width:0;min-width:0;overflow-y:hidden;visibility:hidden}.b-bar-vertical-inline[data-collapse=hide]:not(.b-bar-initial),.b-bar-vertical-popout[data-collapse=hide]:not(.b-bar-initial),.b-bar-vertical-small[data-collapse=hide]:not(.b-bar-initial){transition:width 200ms ease-in-out,min-width 200ms ease-in-out,visibility 100ms}.b-bar-vertical-inline[data-collapse=hide] .b-bar-toggler-inline,.b-bar-vertical-popout[data-collapse=hide] .b-bar-toggler-inline,.b-bar-vertical-small[data-collapse=hide] .b-bar-toggler-inline{display:none}.b-bar-vertical-inline[data-collapse=hide] .b-bar-toggler-popout:not(.b-bar-mobile-toggle),.b-bar-vertical-popout[data-collapse=hide] .b-bar-toggler-popout:not(.b-bar-mobile-toggle),.b-bar-vertical-small[data-collapse=hide] .b-bar-toggler-popout:not(.b-bar-mobile-toggle){visibility:visible;left:0}@media only screen and (max-width:576px){.b-bar-vertical-inline:not([data-collapse]){min-width:100vw}.b-bar-vertical-inline:not([data-collapse]) .b-bar-toggler-inline:not(.b-bar-mobile-toggle){display:none}.b-bar-vertical-inline:not([data-collapse]) .b-bar-toggler-popout:not(.b-bar-mobile-toggle){left:100vw}.b-bar-vertical-inline:not([data-collapse]) .b-bar-mobile-toggle{display:flex}}.b-table.table{position:relative}.b-table.table .b-table-resizer{position:absolute;top:0;right:0;width:5px;cursor:col-resize;user-select:none;z-index:1}.b-table.table .b-table-resizer:hover,.b-table.table .b-table-resizing{cursor:col-resize !important;border-right:2px solid var(--b-theme-primary,#00f)}.b-table.table .b-table-resizing{cursor:col-resize !important}thead tr th{position:relative}.b-character-casing-lower{text-transform:lowercase}.b-character-casing-upper{text-transform:uppercase}.b-character-casing-title{text-transform:lowercase}.b-character-casing-title::first-letter {text-transform:uppercase}.flatpickr-calendar{background:transparent;opacity:0;display:none;text-align:center;visibility:hidden;padding:0;-webkit-animation:none;animation:none;direction:ltr;border:0;font-size:14px;line-height:24px;border-radius:5px;position:absolute;width:307.875px;-webkit-box-sizing:border-box;box-sizing:border-box;-ms-touch-action:manipulation;touch-action:manipulation;background:#fff;-webkit-box-shadow:1px 0 0 #e6e6e6,-1px 0 0 #e6e6e6,0 1px 0 #e6e6e6,0 -1px 0 #e6e6e6,0 3px 13px rgba(0,0,0,.08);box-shadow:1px 0 0 #e6e6e6,-1px 0 0 #e6e6e6,0 1px 0 #e6e6e6,0 -1px 0 #e6e6e6,0 3px 13px rgba(0,0,0,.08)}.flatpickr-calendar.open,.flatpickr-calendar.inline{opacity:1;max-height:640px;visibility:visible}.flatpickr-calendar.open{display:inline-block;z-index:99999}.flatpickr-calendar.animate.open{-webkit-animation:fpFadeInDown 300ms cubic-bezier(.23,1,.32,1);animation:fpFadeInDown 300ms cubic-bezier(.23,1,.32,1)}.flatpickr-calendar.inline{display:block;position:relative;top:2px}.flatpickr-calendar.static{position:absolute;top:calc(100% + 2px)}.flatpickr-calendar.static.open{z-index:999;display:block}.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+1) .flatpickr-day.inRange:nth-child(7n+7){-webkit-box-shadow:none !important;box-shadow:none !important}.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+2) .flatpickr-day.inRange:nth-child(7n+1){-webkit-box-shadow:-2px 0 0 #e6e6e6,5px 0 0 #e6e6e6;box-shadow:-2px 0 0 #e6e6e6,5px 0 0 #e6e6e6}.flatpickr-calendar .hasWeeks .dayContainer,.flatpickr-calendar .hasTime .dayContainer{border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.flatpickr-calendar .hasWeeks .dayContainer{border-left:0}.flatpickr-calendar.hasTime .flatpickr-time{height:40px;border-top:1px solid #e6e6e6}.flatpickr-calendar.noCalendar.hasTime .flatpickr-time{height:auto}.flatpickr-calendar:before,.flatpickr-calendar:after{position:absolute;display:block;pointer-events:none;border:solid transparent;content:"";height:0;width:0;left:22px}.flatpickr-calendar.rightMost:before,.flatpickr-calendar.arrowRight:before,.flatpickr-calendar.rightMost:after,.flatpickr-calendar.arrowRight:after{left:auto;right:22px}.flatpickr-calendar.arrowCenter:before,.flatpickr-calendar.arrowCenter:after{left:50%;right:50%}.flatpickr-calendar:before{border-width:5px;margin:0 -5px}.flatpickr-calendar:after{border-width:4px;margin:0 -4px}.flatpickr-calendar.arrowTop:before,.flatpickr-calendar.arrowTop:after{bottom:100%}.flatpickr-calendar.arrowTop:before{border-bottom-color:#e6e6e6}.flatpickr-calendar.arrowTop:after{border-bottom-color:#fff}.flatpickr-calendar.arrowBottom:before,.flatpickr-calendar.arrowBottom:after{top:100%}.flatpickr-calendar.arrowBottom:before{border-top-color:#e6e6e6}.flatpickr-calendar.arrowBottom:after{border-top-color:#fff}.flatpickr-calendar:focus{outline:0}.flatpickr-wrapper{position:relative;display:contents}.flatpickr-months{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.flatpickr-months .flatpickr-month{background:transparent;color:rgba(0,0,0,.9);fill:rgba(0,0,0,.9);height:34px;line-height:1;text-align:center;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;overflow:hidden;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1}.flatpickr-months .flatpickr-prev-month,.flatpickr-months .flatpickr-next-month{text-decoration:none;cursor:pointer;position:absolute;top:0;height:34px;padding:10px;z-index:3;color:rgba(0,0,0,.9);fill:rgba(0,0,0,.9)}.flatpickr-months .flatpickr-prev-month.flatpickr-disabled,.flatpickr-months .flatpickr-next-month.flatpickr-disabled{display:none}.flatpickr-months .flatpickr-prev-month i,.flatpickr-months .flatpickr-next-month i{position:relative}.flatpickr-months .flatpickr-prev-month.flatpickr-prev-month,.flatpickr-months .flatpickr-next-month.flatpickr-prev-month{left:0}.flatpickr-months .flatpickr-prev-month.flatpickr-next-month,.flatpickr-months .flatpickr-next-month.flatpickr-next-month{right:0}.flatpickr-months .flatpickr-prev-month:hover,.flatpickr-months .flatpickr-next-month:hover{color:#959ea9}.flatpickr-months .flatpickr-prev-month:hover svg,.flatpickr-months .flatpickr-next-month:hover svg{fill:#f64747}.flatpickr-months .flatpickr-prev-month svg,.flatpickr-months .flatpickr-next-month svg{width:14px;height:14px}.flatpickr-months .flatpickr-prev-month svg path,.flatpickr-months .flatpickr-next-month svg path{-webkit-transition:fill .1s;transition:fill .1s;fill:inherit}.numInputWrapper{position:relative;height:auto}.numInputWrapper input,.numInputWrapper span{display:inline-block}.numInputWrapper input{width:100%}.numInputWrapper input::-ms-clear{display:none}.numInputWrapper input::-webkit-outer-spin-button,.numInputWrapper input::-webkit-inner-spin-button{margin:0;-webkit-appearance:none}.numInputWrapper span{position:absolute;right:0;width:14px;padding:0 4px 0 2px;height:50%;line-height:50%;opacity:0;cursor:pointer;border:1px solid rgba(57,57,57,.15);-webkit-box-sizing:border-box;box-sizing:border-box}.numInputWrapper span:hover{background:rgba(0,0,0,.1)}.numInputWrapper span:active{background:rgba(0,0,0,.2)}.numInputWrapper span:after{display:block;content:"";position:absolute}.numInputWrapper span.arrowUp{top:0;border-bottom:0}.numInputWrapper span.arrowUp:after{border-left:4px solid transparent;border-right:4px solid transparent;border-bottom:4px solid rgba(57,57,57,.6);top:26%}.numInputWrapper span.arrowDown{top:50%}.numInputWrapper span.arrowDown:after{border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid rgba(57,57,57,.6);top:40%}.numInputWrapper span svg{width:inherit;height:auto}.numInputWrapper span svg path{fill:rgba(0,0,0,.5)}.numInputWrapper:hover{background:rgba(0,0,0,.05)}.numInputWrapper:hover span{opacity:1}.flatpickr-current-month{font-size:135%;line-height:inherit;font-weight:300;color:inherit;position:absolute;width:75%;left:12.5%;padding:7.48px 0 0 0;line-height:1;height:34px;display:inline-block;text-align:center;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.flatpickr-current-month span.cur-month{font-family:inherit;font-weight:700;color:inherit;display:inline-block;margin-left:.5ch;padding:0}.flatpickr-current-month span.cur-month:hover{background:rgba(0,0,0,.05)}.flatpickr-current-month .numInputWrapper{width:6ch;width:7ch\0;display:inline-block}.flatpickr-current-month .numInputWrapper span.arrowUp:after{border-bottom-color:rgba(0,0,0,.9)}.flatpickr-current-month .numInputWrapper span.arrowDown:after{border-top-color:rgba(0,0,0,.9)}.flatpickr-current-month input.cur-year{background:transparent;-webkit-box-sizing:border-box;box-sizing:border-box;color:inherit;cursor:text;padding:0 0 0 .5ch;margin:0;display:inline-block;font-size:inherit;font-family:inherit;font-weight:300;line-height:inherit;height:auto;border:0;border-radius:0;vertical-align:initial;-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}.flatpickr-current-month input.cur-year:focus{outline:0}.flatpickr-current-month input.cur-year[disabled],.flatpickr-current-month input.cur-year[disabled]:hover{font-size:100%;color:rgba(0,0,0,.5);background:transparent;pointer-events:none}.flatpickr-current-month .flatpickr-monthDropdown-months{appearance:menulist;background:transparent;border:none;border-radius:0;box-sizing:border-box;color:inherit;cursor:pointer;font-size:inherit;font-family:inherit;font-weight:300;height:auto;line-height:inherit;margin:-1px 0 0 0;outline:none;padding:0 0 0 .5ch;position:relative;vertical-align:initial;-webkit-box-sizing:border-box;-webkit-appearance:menulist;-moz-appearance:menulist;width:auto}.flatpickr-current-month .flatpickr-monthDropdown-months:focus,.flatpickr-current-month .flatpickr-monthDropdown-months:active{outline:none}.flatpickr-current-month .flatpickr-monthDropdown-months:hover{background:rgba(0,0,0,.05)}.flatpickr-current-month .flatpickr-monthDropdown-months .flatpickr-monthDropdown-month{background-color:transparent;outline:none;padding:0}.flatpickr-weekdays{background:transparent;text-align:center;overflow:hidden;width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;height:28px}.flatpickr-weekdays .flatpickr-weekdaycontainer{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1}span.flatpickr-weekday{cursor:default;font-size:90%;background:transparent;color:rgba(0,0,0,.54);line-height:1;margin:0;text-align:center;display:block;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;font-weight:bolder}.dayContainer,.flatpickr-weeks{padding:1px 0 0 0}.flatpickr-days{position:relative;overflow:hidden;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:start;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start;width:307.875px}.flatpickr-days:focus{outline:0}.dayContainer{padding:0;outline:0;text-align:left;width:307.875px;min-width:307.875px;max-width:307.875px;-webkit-box-sizing:border-box;box-sizing:border-box;display:inline-block;display:-ms-flexbox;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-wrap:wrap;-ms-flex-pack:justify;-webkit-justify-content:space-around;justify-content:space-around;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}.dayContainer+.dayContainer{-webkit-box-shadow:-1px 0 0 #e6e6e6;box-shadow:-1px 0 0 #e6e6e6}.flatpickr-day{background:none;border:1px solid transparent;border-radius:150px;-webkit-box-sizing:border-box;box-sizing:border-box;color:#393939;cursor:pointer;font-weight:400;width:14.2857143%;-webkit-flex-basis:14.2857143%;-ms-flex-preferred-size:14.2857143%;flex-basis:14.2857143%;max-width:39px;height:39px;line-height:39px;margin:0;display:inline-block;position:relative;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;text-align:center}.flatpickr-day.inRange,.flatpickr-day.prevMonthDay.inRange,.flatpickr-day.nextMonthDay.inRange,.flatpickr-day.today.inRange,.flatpickr-day.prevMonthDay.today.inRange,.flatpickr-day.nextMonthDay.today.inRange,.flatpickr-day:hover,.flatpickr-day.prevMonthDay:hover,.flatpickr-day.nextMonthDay:hover,.flatpickr-day:focus,.flatpickr-day.prevMonthDay:focus,.flatpickr-day.nextMonthDay:focus{cursor:pointer;outline:0;background:#e6e6e6;border-color:#e6e6e6}.flatpickr-day.today{border-color:#959ea9}.flatpickr-day.today:hover,.flatpickr-day.today:focus{border-color:#959ea9;background:#959ea9;color:#fff}.flatpickr-day.selected,.flatpickr-day.startRange,.flatpickr-day.endRange,.flatpickr-day.selected.inRange,.flatpickr-day.startRange.inRange,.flatpickr-day.endRange.inRange,.flatpickr-day.selected:focus,.flatpickr-day.startRange:focus,.flatpickr-day.endRange:focus,.flatpickr-day.selected:hover,.flatpickr-day.startRange:hover,.flatpickr-day.endRange:hover,.flatpickr-day.selected.prevMonthDay,.flatpickr-day.startRange.prevMonthDay,.flatpickr-day.endRange.prevMonthDay,.flatpickr-day.selected.nextMonthDay,.flatpickr-day.startRange.nextMonthDay,.flatpickr-day.endRange.nextMonthDay{background:#569ff7;-webkit-box-shadow:none;box-shadow:none;color:#fff;border-color:#569ff7}.flatpickr-day.selected.startRange,.flatpickr-day.startRange.startRange,.flatpickr-day.endRange.startRange{border-radius:50px 0 0 50px}.flatpickr-day.selected.endRange,.flatpickr-day.startRange.endRange,.flatpickr-day.endRange.endRange{border-radius:0 50px 50px 0}.flatpickr-day.selected.startRange+.endRange:not(:nth-child(7n+1)),.flatpickr-day.startRange.startRange+.endRange:not(:nth-child(7n+1)),.flatpickr-day.endRange.startRange+.endRange:not(:nth-child(7n+1)){-webkit-box-shadow:-10px 0 0 #569ff7;box-shadow:-10px 0 0 #569ff7}.flatpickr-day.selected.startRange.endRange,.flatpickr-day.startRange.startRange.endRange,.flatpickr-day.endRange.startRange.endRange{border-radius:50px}.flatpickr-day.inRange{border-radius:0;-webkit-box-shadow:-5px 0 0 #e6e6e6,5px 0 0 #e6e6e6;box-shadow:-5px 0 0 #e6e6e6,5px 0 0 #e6e6e6}.flatpickr-day.flatpickr-disabled,.flatpickr-day.flatpickr-disabled:hover,.flatpickr-day.prevMonthDay,.flatpickr-day.nextMonthDay,.flatpickr-day.notAllowed,.flatpickr-day.notAllowed.prevMonthDay,.flatpickr-day.notAllowed.nextMonthDay{color:rgba(57,57,57,.3);background:transparent;border-color:transparent;cursor:default}.flatpickr-day.flatpickr-disabled,.flatpickr-day.flatpickr-disabled:hover{cursor:not-allowed;color:rgba(57,57,57,.1)}.flatpickr-day.week.selected{border-radius:0;-webkit-box-shadow:-5px 0 0 #569ff7,5px 0 0 #569ff7;box-shadow:-5px 0 0 #569ff7,5px 0 0 #569ff7}.flatpickr-day.hidden{visibility:hidden}.rangeMode .flatpickr-day{margin-top:1px}.flatpickr-weekwrapper{float:left}.flatpickr-weekwrapper .flatpickr-weeks{padding:0 12px;-webkit-box-shadow:1px 0 0 #e6e6e6;box-shadow:1px 0 0 #e6e6e6}.flatpickr-weekwrapper .flatpickr-weekday{float:none;width:100%;line-height:28px}.flatpickr-weekwrapper span.flatpickr-day,.flatpickr-weekwrapper span.flatpickr-day:hover{display:block;width:100%;max-width:none;color:rgba(57,57,57,.3);background:transparent;cursor:default;border:none}.flatpickr-innerContainer{display:block;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden}.flatpickr-rContainer{display:inline-block;padding:0;-webkit-box-sizing:border-box;box-sizing:border-box}.flatpickr-time{text-align:center;outline:0;display:block;height:0;line-height:40px;max-height:40px;-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.flatpickr-time:after{content:"";display:table;clear:both}.flatpickr-time .numInputWrapper{-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;width:40%;height:40px;float:left}.flatpickr-time .numInputWrapper span.arrowUp:after{border-bottom-color:#393939}.flatpickr-time .numInputWrapper span.arrowDown:after{border-top-color:#393939}.flatpickr-time.hasSeconds .numInputWrapper{width:26%}.flatpickr-time.time24hr .numInputWrapper{width:49%}.flatpickr-time input{background:transparent;-webkit-box-shadow:none;box-shadow:none;border:0;border-radius:0;text-align:center;margin:0;padding:0;height:inherit;line-height:inherit;color:#393939;font-size:14px;position:relative;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}.flatpickr-time input.flatpickr-hour{font-weight:bold}.flatpickr-time input.flatpickr-minute,.flatpickr-time input.flatpickr-second{font-weight:400}.flatpickr-time input:focus{outline:0;border:0}.flatpickr-time .flatpickr-time-separator,.flatpickr-time .flatpickr-am-pm{height:inherit;float:left;line-height:inherit;color:#393939;font-weight:bold;width:2%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-align-self:center;-ms-flex-item-align:center;align-self:center}.flatpickr-time .flatpickr-am-pm{outline:0;width:18%;cursor:pointer;text-align:center;font-weight:400}.flatpickr-time input:hover,.flatpickr-time .flatpickr-am-pm:hover,.flatpickr-time input:focus,.flatpickr-time .flatpickr-am-pm:focus{background:#eee}.flatpickr-input[readonly]{cursor:pointer}@-webkit-keyframes fpFadeInDown{from{opacity:0;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@keyframes fpFadeInDown{from{opacity:0;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.flatpickr-monthSelect-months{margin:10px 1px 3px 1px;flex-wrap:wrap}.flatpickr-monthSelect-month{background:none;border:0;border-radius:2px;-webkit-box-sizing:border-box;box-sizing:border-box;color:#393939;cursor:pointer;display:inline-block;font-weight:400;margin:.5px;justify-content:center;padding:10px;position:relative;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;text-align:center;width:33%}.flatpickr-monthSelect-month.disabled{color:#eee}.flatpickr-monthSelect-month.disabled:hover,.flatpickr-monthSelect-month.disabled:focus{cursor:not-allowed;background:none !important}.flatpickr-monthSelect-theme-dark{background:#3f4458}.flatpickr-monthSelect-theme-dark .flatpickr-current-month input.cur-year{color:#fff}.flatpickr-monthSelect-theme-dark .flatpickr-months .flatpickr-prev-month,.flatpickr-monthSelect-theme-dark .flatpickr-months .flatpickr-next-month{color:#fff;fill:#fff}.flatpickr-monthSelect-theme-dark .flatpickr-monthSelect-month{color:rgba(255,255,255,.95)}.flatpickr-monthSelect-month:hover,.flatpickr-monthSelect-month:focus{background:#e6e6e6;cursor:pointer;outline:0}.flatpickr-monthSelect-theme-dark .flatpickr-monthSelect-month:hover,.flatpickr-monthSelect-theme-dark .flatpickr-monthSelect-month:focus{background:#646c8c;border-color:#646c8c}.flatpickr-monthSelect-month.selected{background-color:#569ff7;color:#fff}.flatpickr-monthSelect-theme-dark .flatpickr-monthSelect-month.selected{background:#80cbc4;-webkit-box-shadow:none;box-shadow:none;color:#fff;border-color:#80cbc4} +body:before{content:"mobile";display:none;visibility:hidden}@media(min-width:768px){body:before{content:"tablet"}}@media(min-width:992px){body:before{content:"desktop"}}@media(min-width:1200px){body:before{content:"widescreen"}}@media(min-width:1400px){body:before{content:"fullhd"}}hr.divider.divider-solid{border-top:var(--b-divider-thickness,1px) solid var(--b-divider-color,#999)}hr.divider.divider-dashed{border-top:var(--b-divider-thickness,1px) dashed var(--b-divider-color,#999)}hr.divider.divider-dotted{border-top:var(--b-divider-thickness,1px) dotted var(--b-divider-color,#999)}hr.divider.divider-text{position:relative;border:0;height:var(--b-divider-thickness,1px);background:var(--b-divider-color,#999)}hr.divider.divider-text::before{content:attr(data-content);display:inline-block;background:#fff;font-weight:bold;font-size:var(--b-divider-font-size,.85rem);color:var(--b-divider-color,#999);border-radius:30rem;padding:.2rem 2rem;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.b-drop-zone{position:relative;transition:all 300ms cubic-bezier(.4,0,.2,1) 0ms}.b-drop-zone.b-drop-zone-drag-block>*{pointer-events:none}.b-drop-zone.b-drop-zone-drop-allowed{outline:1px solid var(--b-theme-success,"#00FF00")!important}.b-drop-zone.b-drop-zone-drop-not-allowed{outline:1px solid var(--b-theme-danger,"#FF0000")!important}.b-drop-zone-draggable:not(.draggable-preview-start){cursor:grab;user-select:none}.b-drop-zone-draggable:not(.draggable-preview-start):active{cursor:grabbing}.b-drop-zone .draggable-placeholder{outline:2px dashed var(--b-theme-primary,"#0000FF")!important;padding:1rem}.b-drop-zone .draggable-preview-start{height:20px;width:100%;position:absolute;top:0;left:0;z-index:1}.b-file-picker{display:inline-block;width:100%}.b-file-picker .b-text-drop{border:1px solid rgba(0,0,0,.15);margin-top:.5rem;display:block;text-align:center;font-size:.75rem;padding-top:.25rem;padding-bottom:.25rem}.b-file-picker .b-file-picker-file{min-width:25rem}.b-file-picker .b-file-picker-file span{display:block}.b-file-picker .b-file-picker-file .b-file-picker-file-size,.b-file-picker .b-file-picker-file .b-file-picker-file-status,.b-file-picker .b-file-picker-file .b-file-picker-file-relativepath{font-size:.75rem}.b-input-color-picker{padding:.6rem}.b-input-color-picker>.b-input-color-picker-preview{position:relative;z-index:1;width:100%;height:100%;display:flex;flex-direction:row;justify-content:space-between}.b-input-color-picker>.b-input-color-picker-preview::before{position:absolute;content:"";top:0;left:0;width:100%;height:100%;background:url('data:image/svg+xml;utf8, ');background-size:.5em;border-radius:.15em;z-index:-1}.b-input-color-picker>.b-input-color-picker-preview>.b-input-color-picker-curent-color{display:inline-block;width:100%;height:100%}.b-input-color-picker[aria-disabled=true]{opacity:.65}.progress.progress-xs{height:.25rem}.progress.progress-sm{height:.5rem}.progress.progress-md{height:1rem}.progress.progress-lg{height:1.5rem}.progress.progress-xl{height:2rem}.b-page-progress{width:100%;height:4px;z-index:9999;top:0;left:0;position:fixed;display:none}.b-page-progress .b-page-progress-indicator{width:0;height:100%;transition:height .3s;background-color:#000;transition:width 1s}.b-page-progress .b-page-progress-indicator.b-page-progress-indicator-indeterminate{width:30%;animation:running-page-progress 2s cubic-bezier(.4,0,.2,1) infinite}.b-page-progress.b-page-progress-active{display:block}@keyframes running-page-progress{0%{margin-left:0;margin-right:100%}50%{margin-left:25%;margin-right:0%}100%{margin-left:100%;margin-right:0}}.tippy-box[data-animation=scale][data-placement^=top]{transform-origin:bottom}.tippy-box[data-animation=scale][data-placement^=bottom]{transform-origin:top}.tippy-box[data-animation=scale][data-placement^=left]{transform-origin:right}.tippy-box[data-animation=scale][data-placement^=right]{transform-origin:left}.tippy-box[data-animation=scale][data-state=hidden]{transform:scale(.5);opacity:0}.tippy-box[data-theme~=blazorise]{background-color:RGBA(var(--b-tooltip-background-color-r,128),var(--b-tooltip-background-color-g,128),var(--b-tooltip-background-color-b,128),var(--b-tooltip-background-opacity,.9));color:var(--b-tooltip-color,#fff)}.tippy-box[data-theme~=blazorise][data-placement^=top]>.tippy-arrow::before{border-top-color:RGBA(var(--b-tooltip-background-color-r,128),var(--b-tooltip-background-color-g,128),var(--b-tooltip-background-color-b,128),var(--b-tooltip-background-opacity,.9))}.tippy-box[data-theme~=blazorise][data-placement^=bottom]>.tippy-arrow::before{border-bottom-color:RGBA(var(--b-tooltip-background-color-r,128),var(--b-tooltip-background-color-g,128),var(--b-tooltip-background-color-b,128),var(--b-tooltip-background-opacity,.9))}.tippy-box[data-theme~=blazorise][data-placement^=left]>.tippy-arrow::before{border-left-color:RGBA(var(--b-tooltip-background-color-r,128),var(--b-tooltip-background-color-g,128),var(--b-tooltip-background-color-b,128),var(--b-tooltip-background-opacity,.9))}.tippy-box[data-theme~=blazorise][data-placement^=right]>.tippy-arrow::before{border-right-color:RGBA(var(--b-tooltip-background-color-r,128),var(--b-tooltip-background-color-g,128),var(--b-tooltip-background-color-b,128),var(--b-tooltip-background-opacity,.9))}.tippy-box[data-theme~=blazorise]>.tippy-svg-arrow{fill:RGBA(var(--b-tooltip-background-color-r,128),var(--b-tooltip-background-color-g,128),var(--b-tooltip-background-color-b,128),var(--b-tooltip-background-opacity,.9))}.b-tooltip-inline{display:inline-block}.b-layout{display:flex;flex:auto;flex-direction:column}.b-layout.b-layout-root{height:100vh}.b-layout,.b-layout *{box-sizing:border-box}@keyframes spinner{0%{transform:translate3d(-50%,-50%,0) rotate(0deg)}100%{transform:translate3d(-50%,-50%,0) rotate(360deg)}}.b-layout>.b-layout-loading{z-index:9999;position:fixed;width:100%;height:100%;background:rgba(0,0,0,.3)}.b-layout>.b-layout-loading:before{animation:1s linear infinite spinner;border:solid 3px #eee;border-bottom-color:var(--b-theme-primary);border-radius:50%;height:40px;left:50%;position:absolute;top:50%;transform:translate3d(-50%,-50%,0);width:40px;content:" "}.b-layout.b-layout-has-sider{flex-direction:row;min-height:0}.b-layout.b-layout-has-sider .b-layout{overflow-x:hidden}.b-layout-header,.b-layout-footer{flex:0 0 auto}.b-layout-header{color:rgba(0,0,0,.65)}.b-layout.b-layout-root.b-layout-has-sider>.b-layout-header-fixed,.b-layout.b-layout-root.b-layout-has-sider>.b-layout>.b-layout-header-fixed{position:sticky;top:0;width:100%;flex:0}.b-layout.b-layout-root:not(.b-layout-has-sider) .b-layout-header-fixed,.b-layout.b-layout-root:not(.b-layout-has-sider)>.b-layout .b-layout-header-fixed{position:fixed;top:0;left:0;right:0;flex:0}.b-layout.b-layout-root:not(.b-layout-has-sider) .b-layout-header-fixed+.b-layout-content,.b-layout.b-layout-root:not(.b-layout-has-sider)>.b-layout .b-layout-header-fixed+.b-layout-content{margin-top:var(--b-bar-horizontal-height,auto)}.b-layout.b-layout-root>.b-layout-header.b-layout-header-fixed+.b-layout.b-layout-has-sider{margin-top:var(--b-bar-horizontal-height,auto)}.b-layout-footer{color:rgba(0,0,0,.65)}.b-layout-footer-fixed{position:sticky;z-index:1;bottom:0;flex:0}.b-layout-content{flex:1}.b-layout-sider{display:flex;position:relative;background:#001529}.b-layout-sider-content{position:sticky;top:0;z-index:2}.b-layout-header .navbar{line-height:inherit}.b-bar-horizontal[data-collapse=hide]{flex-wrap:nowrap}.b-bar-horizontal[data-collapse=hide][data-broken=true]{height:auto}.b-bar-horizontal[data-broken=false]{height:auto}.b-layout>.b-layout-header .b-bar-horizontal[data-collapse=hide][data-broken=true]{height:var(--b-bar-horizontal-height,auto)}.b-layout>.b-layout-header .b-bar-horizontal[data-broken=false]{height:var(--b-bar-horizontal-height,auto)}.b-bar-initial{display:none!important}.b-bar-vertical-inline,.b-bar-vertical-popout,.b-bar-vertical-small{display:flex;flex-direction:column;flex-wrap:nowrap;position:sticky;top:0;padding:0;min-width:var(--b-vertical-bar-width,230px);max-width:var(--b-vertical-bar-width,230px);width:var(--b-vertical-bar-width,230px);box-shadow:2px 0 6px rgba(0,21,41,.35);height:100%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.b-bar-vertical-inline:not(.b-bar-initial),.b-bar-vertical-popout:not(.b-bar-initial),.b-bar-vertical-small:not(.b-bar-initial){transition:width 200ms ease-in-out,min-width 200ms ease-in-out}.b-bar-vertical-inline .b-bar-menu,.b-bar-vertical-popout .b-bar-menu,.b-bar-vertical-small .b-bar-menu{width:100%;display:flex;flex:1;justify-content:space-between;flex-direction:column;align-self:stretch}.b-bar-vertical-inline .b-bar-brand,.b-bar-vertical-popout .b-bar-brand,.b-bar-vertical-small .b-bar-brand{width:100%;display:flex;height:var(--b-vertical-bar-brand-height,64px);min-height:var(--b-vertical-bar-brand-height,64px)}.b-bar-vertical-inline .b-bar-toggler-inline,.b-bar-vertical-popout .b-bar-toggler-inline,.b-bar-vertical-small .b-bar-toggler-inline{height:var(--b-vertical-bar-brand-height,64px);padding:12px;display:inline-flex;cursor:pointer;position:absolute;right:0}.b-bar-vertical-inline .b-bar-toggler-inline>*,.b-bar-vertical-popout .b-bar-toggler-inline>*,.b-bar-vertical-small .b-bar-toggler-inline>*{margin:auto}.b-bar-vertical-inline .b-bar-toggler-popout:not(.b-bar-mobile-toggle),.b-bar-vertical-popout .b-bar-toggler-popout:not(.b-bar-mobile-toggle),.b-bar-vertical-small .b-bar-toggler-popout:not(.b-bar-mobile-toggle){display:flex;position:fixed;left:var(--b-vertical-bar-width,230px);border-radius:0 10px 10px 0;border:0;width:10px;height:40px;padding:5px;align-items:center;box-shadow:2px 0 6px rgba(0,21,41,.35);cursor:pointer}.b-bar-vertical-inline .b-bar-toggler-popout:not(.b-bar-mobile-toggle):not(.b-bar-initial),.b-bar-vertical-popout .b-bar-toggler-popout:not(.b-bar-mobile-toggle):not(.b-bar-initial),.b-bar-vertical-small .b-bar-toggler-popout:not(.b-bar-mobile-toggle):not(.b-bar-initial){transition:width 200ms ease-in-out,left 200ms ease-in-out}.b-bar-vertical-inline .b-bar-toggler-popout:not(.b-bar-mobile-toggle)>*,.b-bar-vertical-popout .b-bar-toggler-popout:not(.b-bar-mobile-toggle)>*,.b-bar-vertical-small .b-bar-toggler-popout:not(.b-bar-mobile-toggle)>*{margin:auto;display:none}.b-bar-vertical-inline .b-bar-toggler-popout:not(.b-bar-mobile-toggle):hover,.b-bar-vertical-popout .b-bar-toggler-popout:not(.b-bar-mobile-toggle):hover,.b-bar-vertical-small .b-bar-toggler-popout:not(.b-bar-mobile-toggle):hover{width:45px}.b-bar-vertical-inline .b-bar-toggler-popout:not(.b-bar-mobile-toggle):hover>*,.b-bar-vertical-popout .b-bar-toggler-popout:not(.b-bar-mobile-toggle):hover>*,.b-bar-vertical-small .b-bar-toggler-popout:not(.b-bar-mobile-toggle):hover>*{display:block}.b-bar-vertical-inline .b-bar-item,.b-bar-vertical-popout .b-bar-item,.b-bar-vertical-small .b-bar-item{margin:auto;flex-grow:1;min-height:40px}.b-bar-vertical-inline .b-bar-item .b-bar-icon,.b-bar-vertical-popout .b-bar-item .b-bar-icon,.b-bar-vertical-small .b-bar-item .b-bar-icon{font-size:1.25rem;vertical-align:middle;margin:3px;display:inline-block}.b-bar-vertical-inline .b-bar-start,.b-bar-vertical-popout .b-bar-start,.b-bar-vertical-small .b-bar-start{width:100%;display:block}.b-bar-vertical-inline .b-bar-end,.b-bar-vertical-popout .b-bar-end,.b-bar-vertical-small .b-bar-end{padding-bottom:1rem;width:100%;padding-top:1rem;display:block}.b-bar-vertical-inline .b-bar-end .b-bar-dropdown,.b-bar-vertical-popout .b-bar-end .b-bar-dropdown,.b-bar-vertical-small .b-bar-end .b-bar-dropdown{position:relative}.b-bar-vertical-inline .b-bar-end .b-bar-dropdown-menu-container,.b-bar-vertical-popout .b-bar-end .b-bar-dropdown-menu-container,.b-bar-vertical-small .b-bar-end .b-bar-dropdown-menu-container{bottom:0}.b-bar-vertical-inline .b-bar-link,.b-bar-vertical-popout .b-bar-link,.b-bar-vertical-small .b-bar-link{display:block;width:100%;text-decoration:none;padding:.5rem .5rem .5rem 1.5rem;cursor:pointer;overflow-x:hidden;line-height:1.5rem;vertical-align:middle;transition:font-size 150ms ease-in}.b-bar-vertical-inline .b-bar-label,.b-bar-vertical-popout .b-bar-label,.b-bar-vertical-small .b-bar-label{background:transparent;color:#adb5bd;padding:.375rem 1.25rem;font-size:.75rem;text-overflow:ellipsis;overflow-x:hidden}.b-bar-vertical-inline .b-bar-dropdown .b-bar-dropdown-toggle:before,.b-bar-vertical-popout .b-bar-dropdown .b-bar-dropdown-toggle:before,.b-bar-vertical-small .b-bar-dropdown .b-bar-dropdown-toggle:before{content:" ";border:solid;border-width:0 2px 2px 0;display:inline-block;padding:2px;right:1rem;transition:transform 200ms ease-out;float:right;position:relative;-webkit-transform:rotate(225deg);transform:rotate(225deg);top:.7rem}.b-bar-vertical-inline .b-bar-dropdown:not([data-visible=true]) .b-bar-dropdown-toggle:before,.b-bar-vertical-popout .b-bar-dropdown:not([data-visible=true]) .b-bar-dropdown-toggle:before,.b-bar-vertical-small .b-bar-dropdown:not([data-visible=true]) .b-bar-dropdown-toggle:before{-webkit-transform:rotate(45deg);transform:rotate(45deg);top:.5rem}.b-bar-vertical-inline .b-bar-dropdown .b-bar-dropdown-menu,.b-bar-vertical-popout .b-bar-dropdown .b-bar-dropdown-menu,.b-bar-vertical-small .b-bar-dropdown .b-bar-dropdown-menu{display:none;background:inherit;color:inherit;float:none;padding:5px 0}.b-bar-vertical-inline .b-bar-dropdown .b-bar-dropdown-menu[data-visible=true],.b-bar-vertical-popout .b-bar-dropdown .b-bar-dropdown-menu[data-visible=true],.b-bar-vertical-small .b-bar-dropdown .b-bar-dropdown-menu[data-visible=true]{display:block}.b-bar-vertical-inline .b-bar-dropdown .b-bar-dropdown-menu .b-bar-dropdown-item,.b-bar-vertical-popout .b-bar-dropdown .b-bar-dropdown-menu .b-bar-dropdown-item,.b-bar-vertical-small .b-bar-dropdown .b-bar-dropdown-menu .b-bar-dropdown-item{position:relative;color:inherit;transition:background 100ms ease-in-out,color 100ms ease-in-out;text-decoration:none;display:block;width:100%;overflow-x:hidden}.b-bar-vertical-inline .b-bar-dropdown .b-bar-dropdown-menu .b-bar-dropdown-item i,.b-bar-vertical-popout .b-bar-dropdown .b-bar-dropdown-menu .b-bar-dropdown-item i,.b-bar-vertical-small .b-bar-dropdown .b-bar-dropdown-menu .b-bar-dropdown-item i{margin-right:.3rem}.b-bar-vertical-inline .b-bar-dropdown .b-bar-dropdown-menu:before,.b-bar-vertical-popout .b-bar-dropdown .b-bar-dropdown-menu:before,.b-bar-vertical-small .b-bar-dropdown .b-bar-dropdown-menu:before{background:inherit;box-shadow:none}.b-bar-vertical-inline .b-bar-mobile-toggle,.b-bar-vertical-popout .b-bar-mobile-toggle,.b-bar-vertical-small .b-bar-mobile-toggle{right:20px;margin:auto;display:none}.b-bar-vertical-inline .b-bar-item-multi-line,.b-bar-vertical-popout .b-bar-item-multi-line,.b-bar-vertical-small .b-bar-item-multi-line{display:-webkit-box!important;-webkit-box-orient:vertical;-webkit-line-clamp:var(--b-bar-item-lines,2);white-space:normal!important;overflow:hidden;text-overflow:ellipsis}.b-bar-vertical-inline.b-bar-dark,.b-bar-vertical-popout.b-bar-dark,.b-bar-vertical-small.b-bar-dark{background:var(--b-bar-dark-background,#001529);color:var(--b-bar-dark-color,rgba(255,255,255,.5))}.b-bar-vertical-inline.b-bar-dark .b-bar-brand,.b-bar-vertical-popout.b-bar-dark .b-bar-brand,.b-bar-vertical-small.b-bar-dark .b-bar-brand{background:var(--b-bar-brand-dark-background,rgba(255,255,255,.025))}.b-bar-vertical-inline.b-bar-dark .b-bar-brand .b-bar-link,.b-bar-vertical-popout.b-bar-dark .b-bar-brand .b-bar-link,.b-bar-vertical-small.b-bar-dark .b-bar-brand .b-bar-link{color:#fff}.b-bar-vertical-inline.b-bar-dark .b-bar-brand .b-bar-link.active,.b-bar-vertical-popout.b-bar-dark .b-bar-brand .b-bar-link.active,.b-bar-vertical-small.b-bar-dark .b-bar-brand .b-bar-link.active{color:#fff;background:inherit}.b-bar-vertical-inline.b-bar-dark .b-bar-brand .b-bar-link:hover,.b-bar-vertical-popout.b-bar-dark .b-bar-brand .b-bar-link:hover,.b-bar-vertical-small.b-bar-dark .b-bar-brand .b-bar-link:hover{color:#fff;background:inherit}.b-bar-vertical-inline.b-bar-dark .b-bar-toggler-popout:not(.b-bar-mobile-toggle),.b-bar-vertical-popout.b-bar-dark .b-bar-toggler-popout:not(.b-bar-mobile-toggle),.b-bar-vertical-small.b-bar-dark .b-bar-toggler-popout:not(.b-bar-mobile-toggle){background:var(--b-bar-dark-background,#001529);color:var(--b-bar-dark-color,rgba(255,255,255,.5))}.b-bar-vertical-inline.b-bar-dark .b-bar-dropdown-menu,.b-bar-vertical-popout.b-bar-dark .b-bar-dropdown-menu,.b-bar-vertical-small.b-bar-dark .b-bar-dropdown-menu{background:var(--b-bar-dropdown-dark-background,#000c17)}.b-bar-vertical-inline.b-bar-dark .b-bar-dropdown-menu .b-bar-dropdown-item.active,.b-bar-vertical-popout.b-bar-dark .b-bar-dropdown-menu .b-bar-dropdown-item.active,.b-bar-vertical-small.b-bar-dark .b-bar-dropdown-menu .b-bar-dropdown-item.active{color:var(--b-bar-item-dark-active-color,#fff);background:var(--b-bar-item-dark-active-background,#0288d1)}.b-bar-vertical-inline.b-bar-dark .b-bar-dropdown-menu .b-bar-dropdown-item:hover,.b-bar-vertical-popout.b-bar-dark .b-bar-dropdown-menu .b-bar-dropdown-item:hover,.b-bar-vertical-small.b-bar-dark .b-bar-dropdown-menu .b-bar-dropdown-item:hover{color:var(--b-bar-item-dark-hover-color,#fff);background:var(--b-bar-item-dark-hover-background,rgba(255,255,255,.3))}.b-bar-vertical-inline.b-bar-dark .b-bar-link,.b-bar-vertical-popout.b-bar-dark .b-bar-link,.b-bar-vertical-small.b-bar-dark .b-bar-link{color:inherit}.b-bar-vertical-inline.b-bar-dark .b-bar-link.active,.b-bar-vertical-popout.b-bar-dark .b-bar-link.active,.b-bar-vertical-small.b-bar-dark .b-bar-link.active{color:var(--b-bar-item-dark-active-color,#fff);background:var(--b-bar-item-dark-active-background,#0288d1)}.b-bar-vertical-inline.b-bar-dark .b-bar-link:hover,.b-bar-vertical-popout.b-bar-dark .b-bar-link:hover,.b-bar-vertical-small.b-bar-dark .b-bar-link:hover{color:var(--b-bar-item-dark-hover-color,#fff);background:var(--b-bar-item-dark-hover-background,rgba(255,255,255,.3))}.b-bar-vertical-inline.b-bar-light,.b-bar-vertical-popout.b-bar-light,.b-bar-vertical-small.b-bar-light{background:var(--b-bar-light-background,#fff);color:var(--b-bar-light-color,rgba(0,0,0,.7))}.b-bar-vertical-inline.b-bar-light .b-bar-brand,.b-bar-vertical-popout.b-bar-light .b-bar-brand,.b-bar-vertical-small.b-bar-light .b-bar-brand{background:var(--b-bar-brand-light-background,rgba(0,0,0,.025))}.b-bar-vertical-inline.b-bar-light .b-bar-brand .b-bar-link,.b-bar-vertical-popout.b-bar-light .b-bar-brand .b-bar-link,.b-bar-vertical-small.b-bar-light .b-bar-brand .b-bar-link{color:#000}.b-bar-vertical-inline.b-bar-light .b-bar-brand .b-bar-link.active,.b-bar-vertical-popout.b-bar-light .b-bar-brand .b-bar-link.active,.b-bar-vertical-small.b-bar-light .b-bar-brand .b-bar-link.active{background:inherit}.b-bar-vertical-inline.b-bar-light .b-bar-brand .b-bar-link:hover,.b-bar-vertical-popout.b-bar-light .b-bar-brand .b-bar-link:hover,.b-bar-vertical-small.b-bar-light .b-bar-brand .b-bar-link:hover{background:inherit}.b-bar-vertical-inline.b-bar-light .b-bar-toggler-popout:not(.b-bar-mobile-toggle),.b-bar-vertical-popout.b-bar-light .b-bar-toggler-popout:not(.b-bar-mobile-toggle),.b-bar-vertical-small.b-bar-light .b-bar-toggler-popout:not(.b-bar-mobile-toggle){background:var(--b-bar-brand-light-background,#fff);color:var(--b-bar-light-color,rgba(0,0,0,.7))}.b-bar-vertical-inline.b-bar-light .b-bar-dropdown-menu,.b-bar-vertical-popout.b-bar-light .b-bar-dropdown-menu,.b-bar-vertical-small.b-bar-light .b-bar-dropdown-menu{background:var(--b-bar-dropdown-light-background,#f2f2f2)}.b-bar-vertical-inline.b-bar-light .b-bar-dropdown-menu .b-bar-dropdown-item.active,.b-bar-vertical-popout.b-bar-light .b-bar-dropdown-menu .b-bar-dropdown-item.active,.b-bar-vertical-small.b-bar-light .b-bar-dropdown-menu .b-bar-dropdown-item.active{color:var(--b-bar-item-light-active-color,#000);background:var(--b-bar-item-light-active-background,#0288d1)}.b-bar-vertical-inline.b-bar-light .b-bar-dropdown-menu .b-bar-dropdown-item:hover,.b-bar-vertical-popout.b-bar-light .b-bar-dropdown-menu .b-bar-dropdown-item:hover,.b-bar-vertical-small.b-bar-light .b-bar-dropdown-menu .b-bar-dropdown-item:hover{color:var(--b-bar-item-light-hover-color,#000);background:var(--b-bar-item-light-hover-background,rgba(0,0,0,.3))}.b-bar-vertical-inline.b-bar-light .b-bar-link,.b-bar-vertical-popout.b-bar-light .b-bar-link,.b-bar-vertical-small.b-bar-light .b-bar-link{color:inherit}.b-bar-vertical-inline.b-bar-light .b-bar-link.active,.b-bar-vertical-popout.b-bar-light .b-bar-link.active,.b-bar-vertical-small.b-bar-light .b-bar-link.active{color:var(--b-bar-item-light-active-color,#000);background:var(--b-bar-item-light-active-background,#0288d1)}.b-bar-vertical-inline.b-bar-light .b-bar-link:hover,.b-bar-vertical-popout.b-bar-light .b-bar-link:hover,.b-bar-vertical-small.b-bar-light .b-bar-link:hover{color:var(--b-bar-item-light-hover-color,#000);background:var(--b-bar-item-light-hover-background,rgba(0,0,0,.3))}.b-bar-vertical-small,.b-bar-vertical-inline[data-collapse=small],.b-bar-vertical-popout[data-collapse=small]{width:var(--b-vertical-bar-small-width,64px);min-width:var(--b-vertical-bar-small-width,64px)}.b-bar-vertical-small:not(.b-bar-initial),.b-bar-vertical-inline[data-collapse=small]:not(.b-bar-initial),.b-bar-vertical-popout[data-collapse=small]:not(.b-bar-initial){transition:width 200ms ease-in-out,min-width 200ms ease-in-out}.b-bar-vertical-small .b-bar-toggler-inline,.b-bar-vertical-inline[data-collapse=small] .b-bar-toggler-inline,.b-bar-vertical-popout[data-collapse=small] .b-bar-toggler-inline{position:relative;width:100%}.b-bar-vertical-small .b-bar-toggler-popout:not(.b-bar-mobile-toggle),.b-bar-vertical-inline[data-collapse=small] .b-bar-toggler-popout:not(.b-bar-mobile-toggle),.b-bar-vertical-popout[data-collapse=small] .b-bar-toggler-popout:not(.b-bar-mobile-toggle){left:var(--b-vertical-bar-small-width,64px)}.b-bar-vertical-small .b-bar-item>.b-bar-dropdown>.b-bar-dropdown-toggle:before,.b-bar-vertical-inline[data-collapse=small] .b-bar-item>.b-bar-dropdown>.b-bar-dropdown-toggle:before,.b-bar-vertical-popout[data-collapse=small] .b-bar-item>.b-bar-dropdown>.b-bar-dropdown-toggle:before{display:none}.b-bar-vertical-small .b-bar-dropdown .b-bar-dropdown-menu-container,.b-bar-vertical-inline[data-collapse=small] .b-bar-dropdown .b-bar-dropdown-menu-container,.b-bar-vertical-popout[data-collapse=small] .b-bar-dropdown .b-bar-dropdown-menu-container{z-index:100;max-height:50vh;position:absolute!important;margin:-42px 5px 0 5px;display:flex;width:var(--b-vertical-bar-popout-menu-width,180px);left:var(--b-vertical-bar-small-width,64px)}.b-bar-vertical-small .b-bar-dropdown .b-bar-dropdown-menu-container.b-bar-right,.b-bar-vertical-inline[data-collapse=small] .b-bar-dropdown .b-bar-dropdown-menu-container.b-bar-right,.b-bar-vertical-popout[data-collapse=small] .b-bar-dropdown .b-bar-dropdown-menu-container.b-bar-right{right:var(--b-vertical-bar-small-width,64px);left:unset}.b-bar-vertical-small .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu,.b-bar-vertical-inline[data-collapse=small] .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu,.b-bar-vertical-popout[data-collapse=small] .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu{box-shadow:0 3px 6px -4px rgba(0,0,0,.12),0 6px 16px 0 rgba(0,0,0,.08),0 9px 28px 8px rgba(0,0,0,.05);border-radius:3px;overflow-y:auto;overflow-x:hidden;flex:1 100%}.b-bar-vertical-small .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu .b-bar-dropdown-item,.b-bar-vertical-inline[data-collapse=small] .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu .b-bar-dropdown-item,.b-bar-vertical-popout[data-collapse=small] .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu .b-bar-dropdown-item{padding:.5rem .5rem .5rem 1.5rem}.b-bar-vertical-small .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu:before,.b-bar-vertical-inline[data-collapse=small] .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu:before,.b-bar-vertical-popout[data-collapse=small] .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu:before{position:absolute;top:0;left:-7px;right:0;bottom:0;width:100%;height:100%;opacity:.0001;content:" ";z-index:-1}.b-bar-vertical-small .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu.b-bar-right:before,.b-bar-vertical-inline[data-collapse=small] .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu.b-bar-right:before,.b-bar-vertical-popout[data-collapse=small] .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu.b-bar-right:before{left:unset;right:-7px}.b-bar-vertical-small .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu>.b-bar-dropdown .b-bar-dropdown-menu-container,.b-bar-vertical-inline[data-collapse=small] .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu>.b-bar-dropdown .b-bar-dropdown-menu-container,.b-bar-vertical-popout[data-collapse=small] .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu>.b-bar-dropdown .b-bar-dropdown-menu-container{left:var(--b-vertical-bar-popout-menu-width,180px)}.b-bar-vertical-small .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu>.b-bar-dropdown .b-bar-dropdown-menu-container.b-bar-right,.b-bar-vertical-inline[data-collapse=small] .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu>.b-bar-dropdown .b-bar-dropdown-menu-container.b-bar-right,.b-bar-vertical-popout[data-collapse=small] .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu>.b-bar-dropdown .b-bar-dropdown-menu-container.b-bar-right{right:var(--b-vertical-bar-popout-menu-width,180px)}.b-bar-vertical-small .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu>.b-bar-dropdown .b-bar-dropdown-toggle:before,.b-bar-vertical-inline[data-collapse=small] .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu>.b-bar-dropdown .b-bar-dropdown-toggle:before,.b-bar-vertical-popout[data-collapse=small] .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu>.b-bar-dropdown .b-bar-dropdown-toggle:before{content:" ";border:solid;border-width:0 2px 2px 0;display:inline-block;padding:2px;right:1rem;transition:transform 200ms ease-out;float:right;position:relative;-webkit-transform:rotate(135deg);transform:rotate(135deg);right:.8rem}.b-bar-vertical-small .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu>.b-bar-dropdown:not([data-visible=true]) .b-bar-dropdown-toggle:before,.b-bar-vertical-inline[data-collapse=small] .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu>.b-bar-dropdown:not([data-visible=true]) .b-bar-dropdown-toggle:before,.b-bar-vertical-popout[data-collapse=small] .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu>.b-bar-dropdown:not([data-visible=true]) .b-bar-dropdown-toggle:before{-webkit-transform:rotate(315deg);transform:rotate(315deg)}@keyframes b-bar-link-small{to{text-align:center;padding-left:0;padding-right:0}}.b-bar-vertical-small .b-bar-item>.b-bar-link,.b-bar-vertical-small .b-bar-item>.b-bar-dropdown>.b-bar-link,.b-bar-vertical-inline[data-collapse=small] .b-bar-item>.b-bar-link,.b-bar-vertical-inline[data-collapse=small] .b-bar-item>.b-bar-dropdown>.b-bar-link,.b-bar-vertical-popout[data-collapse=small] .b-bar-item>.b-bar-link,.b-bar-vertical-popout[data-collapse=small] .b-bar-item>.b-bar-dropdown>.b-bar-link{animation:b-bar-link-small forwards;animation-delay:170ms;font-size:0;transition:font-size 100ms ease-out}.b-bar-vertical-small .b-bar-item>.b-bar-link:after,.b-bar-vertical-small .b-bar-item>.b-bar-dropdown>.b-bar-link:after,.b-bar-vertical-inline[data-collapse=small] .b-bar-item>.b-bar-link:after,.b-bar-vertical-inline[data-collapse=small] .b-bar-item>.b-bar-dropdown>.b-bar-link:after,.b-bar-vertical-popout[data-collapse=small] .b-bar-item>.b-bar-link:after,.b-bar-vertical-popout[data-collapse=small] .b-bar-item>.b-bar-dropdown>.b-bar-link:after{display:none}.b-bar-vertical-small .b-bar-label,.b-bar-vertical-inline[data-collapse=small] .b-bar-label,.b-bar-vertical-popout[data-collapse=small] .b-bar-label{text-align:center}.b-bar-vertical-inline:not([data-collapse]){overflow-y:auto;overflow-x:hidden}.b-bar-vertical-inline:not([data-collapse]) .b-bar-dropdown .b-bar-dropdown-menu-container{position:relative}.b-bar-vertical-inline:not([data-collapse]) .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu{position:relative!important;border:0;border-radius:0;box-shadow:none}.b-bar-vertical-inline:not([data-collapse]) .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu .b-bar-dropdown-item{padding:.5rem .5rem .5rem 3rem}.b-bar-vertical-inline:not([data-collapse]) .b-bar-brand .b-bar-link{display:flex;align-items:center}.b-bar-vertical-popout:not([data-collapse]) .b-bar-dropdown .b-bar-dropdown-toggle:before{content:" ";border:solid;border-width:0 2px 2px 0;display:inline-block;padding:2px;right:1rem;transition:transform 200ms ease-out;float:right;position:relative;-webkit-transform:rotate(135deg);transform:rotate(135deg);right:.8rem}.b-bar-vertical-popout:not([data-collapse]) .b-bar-dropdown:not([data-visible=true]) .b-bar-dropdown-toggle:before{-webkit-transform:rotate(315deg);transform:rotate(315deg)}.b-bar-vertical-popout:not([data-collapse]) .b-bar-dropdown .b-bar-dropdown-menu-container{z-index:100;max-height:50vh;position:absolute!important;margin:-42px 5px 0 5px;display:flex;width:var(--b-vertical-bar-popout-menu-width,180px);left:var(--b-vertical-bar-width,230px)}.b-bar-vertical-popout:not([data-collapse]) .b-bar-dropdown .b-bar-dropdown-menu-container.b-bar-right{right:var(--b-vertical-bar-width,230px);left:unset}.b-bar-vertical-popout:not([data-collapse]) .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu{box-shadow:0 3px 6px -4px rgba(0,0,0,.12),0 6px 16px 0 rgba(0,0,0,.08),0 9px 28px 8px rgba(0,0,0,.05);border-radius:3px;overflow-y:auto;overflow-x:hidden;flex:1 100%}.b-bar-vertical-popout:not([data-collapse]) .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu .b-bar-dropdown-item{padding:.5rem .5rem .5rem 1.5rem}.b-bar-vertical-popout:not([data-collapse]) .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu:before{position:absolute;top:0;left:-7px;right:0;bottom:0;width:100%;height:100%;opacity:.0001;content:" ";z-index:-1}.b-bar-vertical-popout:not([data-collapse]) .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu.b-bar-right:before{left:unset;right:-7px}.b-bar-vertical-popout:not([data-collapse]) .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu>.b-bar-dropdown .b-bar-dropdown-menu-container{left:var(--b-vertical-bar-popout-menu-width,180px)}.b-bar-vertical-popout:not([data-collapse]) .b-bar-dropdown .b-bar-dropdown-menu-container .b-bar-dropdown-menu>.b-bar-dropdown .b-bar-dropdown-menu-container.b-bar-right{right:var(--b-vertical-bar-popout-menu-width,180px)}.b-bar-vertical-inline[data-collapse=hide],.b-bar-vertical-popout[data-collapse=hide],.b-bar-vertical-small[data-collapse=hide]{width:0;min-width:0;overflow-y:hidden;visibility:hidden}.b-bar-vertical-inline[data-collapse=hide]:not(.b-bar-initial),.b-bar-vertical-popout[data-collapse=hide]:not(.b-bar-initial),.b-bar-vertical-small[data-collapse=hide]:not(.b-bar-initial){transition:width 200ms ease-in-out,min-width 200ms ease-in-out,visibility 100ms}.b-bar-vertical-inline[data-collapse=hide] .b-bar-toggler-inline,.b-bar-vertical-popout[data-collapse=hide] .b-bar-toggler-inline,.b-bar-vertical-small[data-collapse=hide] .b-bar-toggler-inline{display:none}.b-bar-vertical-inline[data-collapse=hide] .b-bar-toggler-popout:not(.b-bar-mobile-toggle),.b-bar-vertical-popout[data-collapse=hide] .b-bar-toggler-popout:not(.b-bar-mobile-toggle),.b-bar-vertical-small[data-collapse=hide] .b-bar-toggler-popout:not(.b-bar-mobile-toggle){visibility:visible;left:0}@media only screen and (max-width:576px){.b-bar-vertical-inline:not([data-collapse]){min-width:100vw}.b-bar-vertical-inline:not([data-collapse]) .b-bar-toggler-inline:not(.b-bar-mobile-toggle){display:none}.b-bar-vertical-inline:not([data-collapse]) .b-bar-toggler-popout:not(.b-bar-mobile-toggle){left:100vw}.b-bar-vertical-inline:not([data-collapse]) .b-bar-mobile-toggle{display:flex}}.b-table.table{position:relative}.b-table.table .b-table-resizer{position:absolute;top:0;right:0;width:5px;cursor:col-resize;user-select:none;z-index:1}.b-table.table .b-table-resizer:hover,.b-table.table .b-table-resizing{cursor:col-resize!important;border-right:2px solid var(--b-theme-primary,#00f)}.b-table.table .b-table-resizing{cursor:col-resize!important}thead tr th{position:relative}.b-character-casing-lower{text-transform:lowercase}.b-character-casing-upper{text-transform:uppercase}.b-character-casing-title{text-transform:lowercase}.b-character-casing-title::first-letter {text-transform:uppercase}.flatpickr-calendar{background:transparent;opacity:0;display:none;text-align:center;visibility:hidden;padding:0;-webkit-animation:none;animation:none;direction:ltr;border:0;font-size:14px;line-height:24px;border-radius:5px;position:absolute;width:307.875px;-webkit-box-sizing:border-box;box-sizing:border-box;-ms-touch-action:manipulation;touch-action:manipulation;background:#fff;-webkit-box-shadow:1px 0 0 #e6e6e6,-1px 0 0 #e6e6e6,0 1px 0 #e6e6e6,0 -1px 0 #e6e6e6,0 3px 13px rgba(0,0,0,.08);box-shadow:1px 0 0 #e6e6e6,-1px 0 0 #e6e6e6,0 1px 0 #e6e6e6,0 -1px 0 #e6e6e6,0 3px 13px rgba(0,0,0,.08)}.flatpickr-calendar.open,.flatpickr-calendar.inline{opacity:1;max-height:640px;visibility:visible}.flatpickr-calendar.open{display:inline-block;z-index:99999}.flatpickr-calendar.animate.open{-webkit-animation:fpFadeInDown 300ms cubic-bezier(.23,1,.32,1);animation:fpFadeInDown 300ms cubic-bezier(.23,1,.32,1)}.flatpickr-calendar.inline{display:block;position:relative;top:2px}.flatpickr-calendar.static{position:absolute;top:calc(100% + 2px)}.flatpickr-calendar.static.open{z-index:999;display:block}.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+1) .flatpickr-day.inRange:nth-child(7n+7){-webkit-box-shadow:none!important;box-shadow:none!important}.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+2) .flatpickr-day.inRange:nth-child(7n+1){-webkit-box-shadow:-2px 0 0 #e6e6e6,5px 0 0 #e6e6e6;box-shadow:-2px 0 0 #e6e6e6,5px 0 0 #e6e6e6}.flatpickr-calendar .hasWeeks .dayContainer,.flatpickr-calendar .hasTime .dayContainer{border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.flatpickr-calendar .hasWeeks .dayContainer{border-left:0}.flatpickr-calendar.hasTime .flatpickr-time{height:40px;border-top:1px solid #e6e6e6}.flatpickr-calendar.noCalendar.hasTime .flatpickr-time{height:auto}.flatpickr-calendar:before,.flatpickr-calendar:after{position:absolute;display:block;pointer-events:none;border:solid transparent;content:"";height:0;width:0;left:22px}.flatpickr-calendar.rightMost:before,.flatpickr-calendar.arrowRight:before,.flatpickr-calendar.rightMost:after,.flatpickr-calendar.arrowRight:after{left:auto;right:22px}.flatpickr-calendar.arrowCenter:before,.flatpickr-calendar.arrowCenter:after{left:50%;right:50%}.flatpickr-calendar:before{border-width:5px;margin:0 -5px}.flatpickr-calendar:after{border-width:4px;margin:0 -4px}.flatpickr-calendar.arrowTop:before,.flatpickr-calendar.arrowTop:after{bottom:100%}.flatpickr-calendar.arrowTop:before{border-bottom-color:#e6e6e6}.flatpickr-calendar.arrowTop:after{border-bottom-color:#fff}.flatpickr-calendar.arrowBottom:before,.flatpickr-calendar.arrowBottom:after{top:100%}.flatpickr-calendar.arrowBottom:before{border-top-color:#e6e6e6}.flatpickr-calendar.arrowBottom:after{border-top-color:#fff}.flatpickr-calendar:focus{outline:0}.flatpickr-wrapper{position:relative;display:contents}.flatpickr-months{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.flatpickr-months .flatpickr-month{background:transparent;color:rgba(0,0,0,.9);fill:rgba(0,0,0,.9);height:34px;line-height:1;text-align:center;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;overflow:hidden;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1}.flatpickr-months .flatpickr-prev-month,.flatpickr-months .flatpickr-next-month{text-decoration:none;cursor:pointer;position:absolute;top:0;height:34px;padding:10px;z-index:3;color:rgba(0,0,0,.9);fill:rgba(0,0,0,.9)}.flatpickr-months .flatpickr-prev-month.flatpickr-disabled,.flatpickr-months .flatpickr-next-month.flatpickr-disabled{display:none}.flatpickr-months .flatpickr-prev-month i,.flatpickr-months .flatpickr-next-month i{position:relative}.flatpickr-months .flatpickr-prev-month.flatpickr-prev-month,.flatpickr-months .flatpickr-next-month.flatpickr-prev-month{left:0}.flatpickr-months .flatpickr-prev-month.flatpickr-next-month,.flatpickr-months .flatpickr-next-month.flatpickr-next-month{right:0}.flatpickr-months .flatpickr-prev-month:hover,.flatpickr-months .flatpickr-next-month:hover{color:#959ea9}.flatpickr-months .flatpickr-prev-month:hover svg,.flatpickr-months .flatpickr-next-month:hover svg{fill:#f64747}.flatpickr-months .flatpickr-prev-month svg,.flatpickr-months .flatpickr-next-month svg{width:14px;height:14px}.flatpickr-months .flatpickr-prev-month svg path,.flatpickr-months .flatpickr-next-month svg path{-webkit-transition:fill .1s;transition:fill .1s;fill:inherit}.numInputWrapper{position:relative;height:auto}.numInputWrapper input,.numInputWrapper span{display:inline-block}.numInputWrapper input{width:100%}.numInputWrapper input::-ms-clear{display:none}.numInputWrapper input::-webkit-outer-spin-button,.numInputWrapper input::-webkit-inner-spin-button{margin:0;-webkit-appearance:none}.numInputWrapper span{position:absolute;right:0;width:14px;padding:0 4px 0 2px;height:50%;line-height:50%;opacity:0;cursor:pointer;border:1px solid rgba(57,57,57,.15);-webkit-box-sizing:border-box;box-sizing:border-box}.numInputWrapper span:hover{background:rgba(0,0,0,.1)}.numInputWrapper span:active{background:rgba(0,0,0,.2)}.numInputWrapper span:after{display:block;content:"";position:absolute}.numInputWrapper span.arrowUp{top:0;border-bottom:0}.numInputWrapper span.arrowUp:after{border-left:4px solid transparent;border-right:4px solid transparent;border-bottom:4px solid rgba(57,57,57,.6);top:26%}.numInputWrapper span.arrowDown{top:50%}.numInputWrapper span.arrowDown:after{border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid rgba(57,57,57,.6);top:40%}.numInputWrapper span svg{width:inherit;height:auto}.numInputWrapper span svg path{fill:rgba(0,0,0,.5)}.numInputWrapper:hover{background:rgba(0,0,0,.05)}.numInputWrapper:hover span{opacity:1}.flatpickr-current-month{font-size:135%;line-height:inherit;font-weight:300;color:inherit;position:absolute;width:75%;left:12.5%;padding:7.48px 0 0 0;line-height:1;height:34px;display:inline-block;text-align:center;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.flatpickr-current-month span.cur-month{font-family:inherit;font-weight:700;color:inherit;display:inline-block;margin-left:.5ch;padding:0}.flatpickr-current-month span.cur-month:hover{background:rgba(0,0,0,.05)}.flatpickr-current-month .numInputWrapper{width:6ch;width:7ch\0;display:inline-block}.flatpickr-current-month .numInputWrapper span.arrowUp:after{border-bottom-color:rgba(0,0,0,.9)}.flatpickr-current-month .numInputWrapper span.arrowDown:after{border-top-color:rgba(0,0,0,.9)}.flatpickr-current-month input.cur-year{background:transparent;-webkit-box-sizing:border-box;box-sizing:border-box;color:inherit;cursor:text;padding:0 0 0 .5ch;margin:0;display:inline-block;font-size:inherit;font-family:inherit;font-weight:300;line-height:inherit;height:auto;border:0;border-radius:0;vertical-align:initial;-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}.flatpickr-current-month input.cur-year:focus{outline:0}.flatpickr-current-month input.cur-year[disabled],.flatpickr-current-month input.cur-year[disabled]:hover{font-size:100%;color:rgba(0,0,0,.5);background:transparent;pointer-events:none}.flatpickr-current-month .flatpickr-monthDropdown-months{appearance:menulist;background:transparent;border:0;border-radius:0;box-sizing:border-box;color:inherit;cursor:pointer;font-size:inherit;font-family:inherit;font-weight:300;height:auto;line-height:inherit;margin:-1px 0 0 0;outline:0;padding:0 0 0 .5ch;position:relative;vertical-align:initial;-webkit-box-sizing:border-box;-webkit-appearance:menulist;-moz-appearance:menulist;width:auto}.flatpickr-current-month .flatpickr-monthDropdown-months:focus,.flatpickr-current-month .flatpickr-monthDropdown-months:active{outline:0}.flatpickr-current-month .flatpickr-monthDropdown-months:hover{background:rgba(0,0,0,.05)}.flatpickr-current-month .flatpickr-monthDropdown-months .flatpickr-monthDropdown-month{background-color:transparent;outline:0;padding:0}.flatpickr-weekdays{background:transparent;text-align:center;overflow:hidden;width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;height:28px}.flatpickr-weekdays .flatpickr-weekdaycontainer{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1}span.flatpickr-weekday{cursor:default;font-size:90%;background:transparent;color:rgba(0,0,0,.54);line-height:1;margin:0;text-align:center;display:block;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;font-weight:bolder}.dayContainer,.flatpickr-weeks{padding:1px 0 0 0}.flatpickr-days{position:relative;overflow:hidden;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:start;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start;width:307.875px}.flatpickr-days:focus{outline:0}.dayContainer{padding:0;outline:0;text-align:left;width:307.875px;min-width:307.875px;max-width:307.875px;-webkit-box-sizing:border-box;box-sizing:border-box;display:inline-block;display:-ms-flexbox;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-wrap:wrap;-ms-flex-pack:justify;-webkit-justify-content:space-around;justify-content:space-around;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}.dayContainer+.dayContainer{-webkit-box-shadow:-1px 0 0 #e6e6e6;box-shadow:-1px 0 0 #e6e6e6}.flatpickr-day{background:none;border:1px solid transparent;border-radius:150px;-webkit-box-sizing:border-box;box-sizing:border-box;color:#393939;cursor:pointer;font-weight:400;width:14.2857143%;-webkit-flex-basis:14.2857143%;-ms-flex-preferred-size:14.2857143%;flex-basis:14.2857143%;max-width:39px;height:39px;line-height:39px;margin:0;display:inline-block;position:relative;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;text-align:center}.flatpickr-day.inRange,.flatpickr-day.prevMonthDay.inRange,.flatpickr-day.nextMonthDay.inRange,.flatpickr-day.today.inRange,.flatpickr-day.prevMonthDay.today.inRange,.flatpickr-day.nextMonthDay.today.inRange,.flatpickr-day:hover,.flatpickr-day.prevMonthDay:hover,.flatpickr-day.nextMonthDay:hover,.flatpickr-day:focus,.flatpickr-day.prevMonthDay:focus,.flatpickr-day.nextMonthDay:focus{cursor:pointer;outline:0;background:#e6e6e6;border-color:#e6e6e6}.flatpickr-day.today{border-color:#959ea9}.flatpickr-day.today:hover,.flatpickr-day.today:focus{border-color:#959ea9;background:#959ea9;color:#fff}.flatpickr-day.selected,.flatpickr-day.startRange,.flatpickr-day.endRange,.flatpickr-day.selected.inRange,.flatpickr-day.startRange.inRange,.flatpickr-day.endRange.inRange,.flatpickr-day.selected:focus,.flatpickr-day.startRange:focus,.flatpickr-day.endRange:focus,.flatpickr-day.selected:hover,.flatpickr-day.startRange:hover,.flatpickr-day.endRange:hover,.flatpickr-day.selected.prevMonthDay,.flatpickr-day.startRange.prevMonthDay,.flatpickr-day.endRange.prevMonthDay,.flatpickr-day.selected.nextMonthDay,.flatpickr-day.startRange.nextMonthDay,.flatpickr-day.endRange.nextMonthDay{background:#569ff7;-webkit-box-shadow:none;box-shadow:none;color:#fff;border-color:#569ff7}.flatpickr-day.selected.startRange,.flatpickr-day.startRange.startRange,.flatpickr-day.endRange.startRange{border-radius:50px 0 0 50px}.flatpickr-day.selected.endRange,.flatpickr-day.startRange.endRange,.flatpickr-day.endRange.endRange{border-radius:0 50px 50px 0}.flatpickr-day.selected.startRange+.endRange:not(:nth-child(7n+1)),.flatpickr-day.startRange.startRange+.endRange:not(:nth-child(7n+1)),.flatpickr-day.endRange.startRange+.endRange:not(:nth-child(7n+1)){-webkit-box-shadow:-10px 0 0 #569ff7;box-shadow:-10px 0 0 #569ff7}.flatpickr-day.selected.startRange.endRange,.flatpickr-day.startRange.startRange.endRange,.flatpickr-day.endRange.startRange.endRange{border-radius:50px}.flatpickr-day.inRange{border-radius:0;-webkit-box-shadow:-5px 0 0 #e6e6e6,5px 0 0 #e6e6e6;box-shadow:-5px 0 0 #e6e6e6,5px 0 0 #e6e6e6}.flatpickr-day.flatpickr-disabled,.flatpickr-day.flatpickr-disabled:hover,.flatpickr-day.prevMonthDay,.flatpickr-day.nextMonthDay,.flatpickr-day.notAllowed,.flatpickr-day.notAllowed.prevMonthDay,.flatpickr-day.notAllowed.nextMonthDay{color:rgba(57,57,57,.3);background:transparent;border-color:transparent;cursor:default}.flatpickr-day.flatpickr-disabled,.flatpickr-day.flatpickr-disabled:hover{cursor:not-allowed;color:rgba(57,57,57,.1)}.flatpickr-day.week.selected{border-radius:0;-webkit-box-shadow:-5px 0 0 #569ff7,5px 0 0 #569ff7;box-shadow:-5px 0 0 #569ff7,5px 0 0 #569ff7}.flatpickr-day.hidden{visibility:hidden}.rangeMode .flatpickr-day{margin-top:1px}.flatpickr-weekwrapper{float:left}.flatpickr-weekwrapper .flatpickr-weeks{padding:0 12px;-webkit-box-shadow:1px 0 0 #e6e6e6;box-shadow:1px 0 0 #e6e6e6}.flatpickr-weekwrapper .flatpickr-weekday{float:none;width:100%;line-height:28px}.flatpickr-weekwrapper span.flatpickr-day,.flatpickr-weekwrapper span.flatpickr-day:hover{display:block;width:100%;max-width:none;color:rgba(57,57,57,.3);background:transparent;cursor:default;border:0}.flatpickr-innerContainer{display:block;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden}.flatpickr-rContainer{display:inline-block;padding:0;-webkit-box-sizing:border-box;box-sizing:border-box}.flatpickr-time{text-align:center;outline:0;display:block;height:0;line-height:40px;max-height:40px;-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.flatpickr-time:after{content:"";display:table;clear:both}.flatpickr-time .numInputWrapper{-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;width:40%;height:40px;float:left}.flatpickr-time .numInputWrapper span.arrowUp:after{border-bottom-color:#393939}.flatpickr-time .numInputWrapper span.arrowDown:after{border-top-color:#393939}.flatpickr-time.hasSeconds .numInputWrapper{width:26%}.flatpickr-time.time24hr .numInputWrapper{width:49%}.flatpickr-time input{background:transparent;-webkit-box-shadow:none;box-shadow:none;border:0;border-radius:0;text-align:center;margin:0;padding:0;height:inherit;line-height:inherit;color:#393939;font-size:14px;position:relative;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}.flatpickr-time input.flatpickr-hour{font-weight:bold}.flatpickr-time input.flatpickr-minute,.flatpickr-time input.flatpickr-second{font-weight:400}.flatpickr-time input:focus{outline:0;border:0}.flatpickr-time .flatpickr-time-separator,.flatpickr-time .flatpickr-am-pm{height:inherit;float:left;line-height:inherit;color:#393939;font-weight:bold;width:2%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-align-self:center;-ms-flex-item-align:center;align-self:center}.flatpickr-time .flatpickr-am-pm{outline:0;width:18%;cursor:pointer;text-align:center;font-weight:400}.flatpickr-time input:hover,.flatpickr-time .flatpickr-am-pm:hover,.flatpickr-time input:focus,.flatpickr-time .flatpickr-am-pm:focus{background:#eee}.flatpickr-input[readonly]{cursor:pointer}@-webkit-keyframes fpFadeInDown{from{opacity:0;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@keyframes fpFadeInDown{from{opacity:0;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.flatpickr-monthSelect-months{margin:10px 1px 3px 1px;flex-wrap:wrap}.flatpickr-monthSelect-month{background:none;border:0;border-radius:2px;-webkit-box-sizing:border-box;box-sizing:border-box;color:#393939;cursor:pointer;display:inline-block;font-weight:400;margin:.5px;justify-content:center;padding:10px;position:relative;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;text-align:center;width:33%}.flatpickr-monthSelect-month.disabled{color:#eee}.flatpickr-monthSelect-month.disabled:hover,.flatpickr-monthSelect-month.disabled:focus{cursor:not-allowed;background:none!important}.flatpickr-monthSelect-theme-dark{background:#3f4458}.flatpickr-monthSelect-theme-dark .flatpickr-current-month input.cur-year{color:#fff}.flatpickr-monthSelect-theme-dark .flatpickr-months .flatpickr-prev-month,.flatpickr-monthSelect-theme-dark .flatpickr-months .flatpickr-next-month{color:#fff;fill:#fff}.flatpickr-monthSelect-theme-dark .flatpickr-monthSelect-month{color:rgba(255,255,255,.95)}.flatpickr-monthSelect-month:hover,.flatpickr-monthSelect-month:focus{background:#e6e6e6;cursor:pointer;outline:0}.flatpickr-monthSelect-theme-dark .flatpickr-monthSelect-month:hover,.flatpickr-monthSelect-theme-dark .flatpickr-monthSelect-month:focus{background:#646c8c;border-color:#646c8c}.flatpickr-monthSelect-month.selected{background-color:#569ff7;color:#fff}.flatpickr-monthSelect-theme-dark .flatpickr-monthSelect-month.selected{background:#80cbc4;-webkit-box-shadow:none;box-shadow:none;color:#fff;border-color:#80cbc4} /*! Pickr 1.8.2 MIT | https://github.com/Simonwep/pickr */ -.pickr{position:relative;overflow:visible;transform:translateY(0)}.pickr *{box-sizing:border-box;outline:none;border:none;-webkit-appearance:none}.pickr .pcr-button{position:relative;height:2em;width:2em;padding:.5em;cursor:pointer;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Roboto","Helvetica Neue",Arial,sans-serif;border-radius:.15em;background:url('data:image/svg+xml;utf8, ') no-repeat center;background-size:0;transition:all .3s}.pickr .pcr-button::before{position:absolute;content:"";top:0;left:0;width:100%;height:100%;background:url('data:image/svg+xml;utf8, ');background-size:.5em;border-radius:.15em;z-index:-1}.pickr .pcr-button::before{z-index:initial}.pickr .pcr-button::after{position:absolute;content:"";top:0;left:0;height:100%;width:100%;transition:background .3s;background:var(--pcr-color);border-radius:.15em}.pickr .pcr-button.clear{background-size:70%}.pickr .pcr-button.clear::before{opacity:0}.pickr .pcr-button.clear:focus{box-shadow:0 0 0 1px rgba(255,255,255,.85),0 0 0 3px var(--pcr-color)}.pickr .pcr-button.disabled{cursor:not-allowed}.pickr *,.pcr-app *{box-sizing:border-box;outline:none;border:none;-webkit-appearance:none}.pickr input:focus,.pickr input.pcr-active,.pickr button:focus,.pickr button.pcr-active,.pcr-app input:focus,.pcr-app input.pcr-active,.pcr-app button:focus,.pcr-app button.pcr-active{box-shadow:0 0 0 1px rgba(255,255,255,.85),0 0 0 3px var(--pcr-color)}.pickr .pcr-palette,.pickr .pcr-slider,.pcr-app .pcr-palette,.pcr-app .pcr-slider{transition:box-shadow .3s}.pickr .pcr-palette:focus,.pickr .pcr-slider:focus,.pcr-app .pcr-palette:focus,.pcr-app .pcr-slider:focus{box-shadow:0 0 0 1px rgba(255,255,255,.85),0 0 0 3px rgba(0,0,0,.25)}.pcr-app{position:fixed;display:flex;flex-direction:column;z-index:10000;border-radius:.1em;background:#fff;opacity:0;visibility:hidden;transition:opacity .3s,visibility 0s .3s;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Roboto","Helvetica Neue",Arial,sans-serif;box-shadow:0 .15em 1.5em 0 rgba(0,0,0,.1),0 0 1em 0 rgba(0,0,0,.03);left:0;top:0}.pcr-app.visible{transition:opacity .3s;visibility:visible;opacity:1}.pcr-app .pcr-swatches{display:flex;flex-wrap:wrap;margin-top:.75em}.pcr-app .pcr-swatches.pcr-last{margin:0}@supports (display:grid){.pcr-app .pcr-swatches{display:grid;align-items:center;grid-template-columns:repeat(auto-fit,1.75em)}}.pcr-app .pcr-swatches>button{font-size:1em;position:relative;width:calc(1.75em - 5px);height:calc(1.75em - 5px);border-radius:.15em;cursor:pointer;margin:2.5px;flex-shrink:0;justify-self:center;transition:all .15s;overflow:hidden;background:transparent;z-index:1}.pcr-app .pcr-swatches>button::before{position:absolute;content:"";top:0;left:0;width:100%;height:100%;background:url('data:image/svg+xml;utf8, ');background-size:6px;border-radius:.15em;z-index:-1}.pcr-app .pcr-swatches>button::after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:var(--pcr-color);border:1px solid rgba(0,0,0,.05);border-radius:.15em;box-sizing:border-box}.pcr-app .pcr-swatches>button:hover{filter:brightness(1.05)}.pcr-app .pcr-swatches>button:not(.pcr-active){box-shadow:none}.pcr-app .pcr-interaction{display:flex;flex-wrap:wrap;align-items:center;margin:0 -.2em 0 -.2em}.pcr-app .pcr-interaction>*{margin:0 .2em}.pcr-app .pcr-interaction input{letter-spacing:.07em;font-size:.75em;text-align:center;cursor:pointer;color:#75797e;background:#f1f3f4;border-radius:.15em;transition:all .15s;padding:.45em .5em;margin-top:.75em}.pcr-app .pcr-interaction input:hover{filter:brightness(.975)}.pcr-app .pcr-interaction input:focus{box-shadow:0 0 0 1px rgba(255,255,255,.85),0 0 0 3px rgba(66,133,244,.75)}.pcr-app .pcr-interaction .pcr-result{color:#75797e;text-align:left;flex:1 1 8em;min-width:8em;transition:all .2s;border-radius:.15em;background:#f1f3f4;cursor:text}.pcr-app .pcr-interaction .pcr-result::-moz-selection{background:#4285f4;color:#fff}.pcr-app .pcr-interaction .pcr-result::selection{background:#4285f4;color:#fff}.pcr-app .pcr-interaction .pcr-type.active{color:#fff;background:#4285f4}.pcr-app .pcr-interaction .pcr-save,.pcr-app .pcr-interaction .pcr-cancel,.pcr-app .pcr-interaction .pcr-clear{color:#fff;width:auto}.pcr-app .pcr-interaction .pcr-save,.pcr-app .pcr-interaction .pcr-cancel,.pcr-app .pcr-interaction .pcr-clear{color:#fff}.pcr-app .pcr-interaction .pcr-save:hover,.pcr-app .pcr-interaction .pcr-cancel:hover,.pcr-app .pcr-interaction .pcr-clear:hover{filter:brightness(.925)}.pcr-app .pcr-interaction .pcr-save{background:#4285f4}.pcr-app .pcr-interaction .pcr-clear,.pcr-app .pcr-interaction .pcr-cancel{background:#f44250}.pcr-app .pcr-interaction .pcr-clear:focus,.pcr-app .pcr-interaction .pcr-cancel:focus{box-shadow:0 0 0 1px rgba(255,255,255,.85),0 0 0 3px rgba(244,66,80,.75)}.pcr-app .pcr-selection .pcr-picker{position:absolute;height:18px;width:18px;border:2px solid #fff;border-radius:100%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.pcr-app .pcr-selection .pcr-color-palette,.pcr-app .pcr-selection .pcr-color-chooser,.pcr-app .pcr-selection .pcr-color-opacity{position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:flex;flex-direction:column;cursor:grab;cursor:-webkit-grab}.pcr-app .pcr-selection .pcr-color-palette:active,.pcr-app .pcr-selection .pcr-color-chooser:active,.pcr-app .pcr-selection .pcr-color-opacity:active{cursor:grabbing;cursor:-webkit-grabbing}.pcr-app[data-theme=monolith]{width:14.25em;max-width:95vw;padding:.8em}.pcr-app[data-theme=monolith] .pcr-selection{display:flex;flex-direction:column;justify-content:space-between;flex-grow:1}.pcr-app[data-theme=monolith] .pcr-selection .pcr-color-preview{position:relative;z-index:1;width:100%;height:1em;display:flex;flex-direction:row;justify-content:space-between;margin-bottom:.5em}.pcr-app[data-theme=monolith] .pcr-selection .pcr-color-preview::before{position:absolute;content:"";top:0;left:0;width:100%;height:100%;background:url('data:image/svg+xml;utf8, ');background-size:.5em;border-radius:.15em;z-index:-1}.pcr-app[data-theme=monolith] .pcr-selection .pcr-color-preview .pcr-last-color{cursor:pointer;transition:background-color .3s,box-shadow .3s;border-radius:.15em 0 0 .15em;z-index:2}.pcr-app[data-theme=monolith] .pcr-selection .pcr-color-preview .pcr-current-color{border-radius:0 .15em .15em 0}.pcr-app[data-theme=monolith] .pcr-selection .pcr-color-preview .pcr-last-color,.pcr-app[data-theme=monolith] .pcr-selection .pcr-color-preview .pcr-current-color{background:var(--pcr-color);width:50%;height:100%}.pcr-app[data-theme=monolith] .pcr-selection .pcr-color-palette{width:100%;height:8em;z-index:1}.pcr-app[data-theme=monolith] .pcr-selection .pcr-color-palette .pcr-palette{border-radius:.15em;width:100%;height:100%}.pcr-app[data-theme=monolith] .pcr-selection .pcr-color-palette .pcr-palette::before{position:absolute;content:"";top:0;left:0;width:100%;height:100%;background:url('data:image/svg+xml;utf8, ');background-size:.5em;border-radius:.15em;z-index:-1}.pcr-app[data-theme=monolith] .pcr-selection .pcr-color-chooser,.pcr-app[data-theme=monolith] .pcr-selection .pcr-color-opacity{height:.5em;margin-top:.75em}.pcr-app[data-theme=monolith] .pcr-selection .pcr-color-chooser .pcr-picker,.pcr-app[data-theme=monolith] .pcr-selection .pcr-color-opacity .pcr-picker{top:50%;transform:translateY(-50%)}.pcr-app[data-theme=monolith] .pcr-selection .pcr-color-chooser .pcr-slider,.pcr-app[data-theme=monolith] .pcr-selection .pcr-color-opacity .pcr-slider{flex-grow:1;border-radius:50em}.pcr-app[data-theme=monolith] .pcr-selection .pcr-color-chooser .pcr-slider{background:linear-gradient(to right,#f00,#ff0,#0f0,#0ff,#00f,#f0f,#f00)}.pcr-app[data-theme=monolith] .pcr-selection .pcr-color-opacity .pcr-slider{background:linear-gradient(to right,transparent,#000),url('data:image/svg+xml;utf8, ');background-size:100%,.25em} -@keyframes fadeIn{0%{opacity:0}100%{opacity:1}0%{opacity:0}}@keyframes slideIn{0%{transform:translateY(1rem);opacity:0}100%{transform:translateY(0);opacity:1}0%{transform:translateY(1rem);opacity:0}}.badge-close{cursor:pointer}.badge-close::before{height:2px;width:50%}.badge-close::after{height:50%;width:2px}.badge-close:hover,.badge-close:focus{background-color:rgba(10,10,10,.3)}.badge-close:active{background-color:rgba(10,10,10,.4)}.navbar-nav .nav-item:hover{cursor:pointer}.navbar-nav .nav-link:hover{cursor:pointer}.nav .nav-link:hover{cursor:pointer}.nav-item{position:relative}.b-bar-horizontal .nav-item.dropdown .dropdown-menu>.dropdown>.dropdown-item{width:100%}.b-bar-horizontal .nav-item.dropdown .dropdown-menu>.dropdown>.dropdown-item::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.b-bar-horizontal .nav-item.dropdown .dropdown-menu>.dropdown>.dropdown-item:empty::after{margin-left:0}.b-bar-horizontal .nav-item.dropdown .dropdown-menu>.dropdown>.dropdown-item::after{transform:rotate(-90deg);position:absolute;right:10%;top:45%}.b-bar-horizontal .nav-item.dropdown .dropdown-menu>.dropdown>.dropdown-menu{top:0;left:100%;margin-left:0;margin-right:.1rem}.btn-group>.b-tooltip:not(:last-child)>.btn{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.b-tooltip:not(:first-child)>.btn{border-top-left-radius:0;border-bottom-left-radius:0}.btn-group.btn-group-toggle .btn.active.disabled{opacity:1}.btn-group-vertical>.b-tooltip:not(:last-child)>.btn{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.b-tooltip:not(:first-child)>.btn{border-top-left-radius:0;border-top-right-radius:0}.btn-xs,.btn-group-xs>.btn{padding:.15rem .5rem;font-size:.75rem;line-height:1.5;border-radius:.15rem}.btn-md,.btn-group-md>.btn{padding:.47rem 1rem;font-size:1.125rem;line-height:1.5;border-radius:.25rem}.btn-xl,.btn-group-xl>.btn{padding:.5rem 1rem;font-size:1.5rem;line-height:1.5;border-radius:.4rem}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.5rem}input[type=submit].btn-block,input[type=reset].btn-block,input[type=button].btn-block{width:100%}.card-deck .card{height:100%}.table-fixed-header .table thead tr th.dropdown-table-fixed-header-visible{z-index:11}.dropdown-menu-position-strategy{width:max-content;top:0;left:0}.dropdown-menu-position-strategy-absolute{position:absolute}.dropdown-menu-position-strategy-fixed{position:fixed}.dropdown-toggle.dropdown-toggle-hidden::after{content:none !important}.dropdown-toggle.dropdown-toggle-hidden::before{content:none !important}.dropdown-menu.show{animation-duration:.3s;animation-fill-mode:both;animation-name:fadeIn}.dropdown-menu a:not([href]).dropdown-item:not(.disabled){cursor:pointer}.dropdown-menu.dropdown-menu-scrollable{max-height:var(--dropdown-list-menu-max-height,200px);overflow-y:scroll}.b-is-autocomplete .dropdown-menu{width:100%;max-height:var(--autocomplete-menu-max-height,200px);overflow-y:scroll}.b-is-autocomplete .dropdown-menu .dropdown-item.focus{color:#1e2125 !important;background-color:#e9ecef}.b-is-autocomplete.b-is-autocomplete-multipleselection{display:flex;align-items:center;flex-wrap:wrap;padding-top:.25rem;max-width:100%;width:100%;cursor:text;min-height:calc(1.5em + .75rem + 2px);height:auto;border:1px solid #ced4da;border-radius:.25rem}.b-is-autocomplete.b-is-autocomplete-multipleselection>input.form-control{display:inline-block;border:none;box-shadow:none;outline:none;background-color:transparent;max-width:inherit;width:auto;flex-grow:1}.b-is-autocomplete.b-is-autocomplete-multipleselection>.badge{margin-bottom:.25rem;line-height:1.5;flex-grow:initial}.b-is-autocomplete.b-is-autocomplete-multipleselection .dropdown-menu{top:100%}.b-is-autocomplete.b-is-autocomplete-multipleselection.focus{color:#495057;background-color:#fff;border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.dropdown.btn-group>.btn.dropdown-toggle-split+.dropdown-menu.show{top:100%}.dropdown{position:relative}.dropdown.dropdown-disabled.b-is-autocomplete{background-color:var(--b-theme-light,#e9ecef)}.dropdown>.dropdown-menu>.dropdown:not(.dropup,.dropstart,.dropend){position:relative}.dropdown>.dropdown-menu>.dropdown:not(.dropup,.dropstart,.dropend)>.dropdown-toggle{width:100%}.dropdown>.dropdown-menu>.dropdown:not(.dropup,.dropstart,.dropend)>.dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown>.dropdown-menu>.dropdown:not(.dropup,.dropstart,.dropend)>.dropdown-toggle:empty::after{margin-left:0}.dropdown>.dropdown-menu>.dropdown:not(.dropup,.dropstart,.dropend)>.dropdown-toggle::after{position:absolute;right:10%;top:45%}.dropdown>.dropdown-menu>.dropdown:not(.dropup,.dropstart,.dropend)>.dropdown-menu{top:auto;left:auto;bottom:auto;right:auto}.dropdown>.dropdown-menu>.dropdown.dropup .dropdown-toggle::after,.dropdown>.dropdown-menu>.dropdown.dropend .dropdown-toggle::after{vertical-align:0;position:absolute;right:10%;top:45%}.dropdown>.dropdown-menu>.dropdown.dropstart .dropdown-toggle::after{vertical-align:0}.dropdown.dropup>.dropdown-menu{top:auto;bottom:auto;margin-top:0;margin-bottom:.125rem}.dropdown.dropup>.dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropdown.dropup>.dropdown-toggle:empty::after{margin-left:0}.dropdown.dropend>.dropdown-menu{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropdown.dropend>.dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropdown.dropend>.dropdown-toggle:empty::after{margin-left:0}.dropdown.dropend>.dropdown-toggle::after{vertical-align:0}.dropdown.dropstart>.dropdown-menu{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropdown.dropstart>.dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:""}.dropdown.dropstart>.dropdown-toggle::after{display:none}.dropdown.dropstart>.dropdown-toggle::before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropdown.dropstart>.dropdown-toggle:empty::after{margin-left:0}.dropdown.dropstart>.dropdown-toggle::before{vertical-align:0}.dropdown-menu-start{right:auto;left:0}.dropdown-menu-end{right:0;left:auto}@media(min-width:576px){.dropdown-menu-sm-start{right:auto;left:0}.dropdown-menu-sm-end{right:0;left:auto}}@media(min-width:768px){.dropdown-menu-md-start{right:auto;left:0}.dropdown-menu-md-end{right:0;left:auto}}@media(min-width:992px){.dropdown-menu-lg-start{right:auto;left:0}.dropdown-menu-lg-end{right:0;left:auto}}@media(min-width:1200px){.dropdown-menu-xl-start{right:auto;left:0}.dropdown-menu-xl-end{right:0;left:auto}}hr.divider.divider-text{position:unset}hr.divider.divider-text::before{top:unset}.snackbar-stack{z-index:1059 !important}.snackbar{z-index:1060 !important}.figure.figure-is-16x16{height:16px;width:16px}.figure.figure-is-24x24{height:24px;width:24px}.figure.figure-is-32x32{height:32px;width:32px}.figure.figure-is-48x48{height:48px;width:48px}.figure.figure-is-64x64{height:64px;width:64px}.figure.figure-is-96x96{height:96px;width:96px}.figure.figure-is-128x128{height:128px;width:128px}.figure.figure-is-256x256{height:256px;width:256px}.figure.figure-is-512x512{height:512px;width:512px}.form-check>.form-check-input.form-check-input-pointer,.form-check>.form-check-label.form-check-label-pointer,.form-switch>.form-check-input.form-check-input-pointer,.form-switch>.form-check-label.form-check-label-pointer{cursor:pointer}.form-control-plaintext.form-control-xs,.form-control-plaintext.form-control-md,.form-control-plaintext.form-control-xl{padding-right:0;padding-left:0}.form-control-xs{height:calc(1.5em + .3rem + 2px);padding:.15rem .5rem;font-size:.75rem;line-height:1.5;border-radius:.15rem}.form-control-md{height:calc(1.5em + .94rem + 2px);padding:.47rem 1rem;font-size:1.125rem;line-height:1.5;border-radius:.25rem}.form-control-xl{height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.5rem;line-height:1.5;border-radius:.4rem}.form-select-xs{height:calc(1.5em + .3rem + 2px);padding-top:.15rem;padding-bottom:.15rem;padding-left:.5rem;font-size:.75rem}.form-select-md{height:calc(1.5em + .94rem + 2px);padding-top:.47rem;padding-bottom:.47rem;padding-left:1rem;font-size:1.125rem}.form-select-xl{height:calc(1.5em + 1rem + 2px);padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.5rem}.input-group>.b-numeric:not(:last-child)>input,.input-group>div.flatpickr-wrapper:not(:last-child)>input{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.b-numeric:not(:first-child)>input,.input-group>div.flatpickr-wrapper:not(:first-child)>input{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-xs>.form-control:not(textarea),.input-group-xs>.form-select,.input-group-xs>.b-numeric>input{height:calc(1.5em + .3rem + 2px)}.input-group-xs>.form-control,.input-group-xs>.form-select,.input-group-xs>.input-group-text,.input-group-xs>.btn,.input-group-xs>.b-numeric>input{padding:.15rem .5rem;font-size:.75rem;line-height:1.5;border-radius:.15rem}.input-group-sm>.b-numeric>input{height:calc(1.5em + .5rem + 2px)}.input-group-sm>.b-numeric>input{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.input-group-md>.form-control:not(textarea),.input-group-md>.form-select,.input-group-md>.b-numeric>input{height:calc(1.5em + .94rem + 2px)}.input-group-md>.form-control,.input-group-md>.form-select,.input-group-md>.input-group-text,.input-group-md>.btn,.input-group-md>.b-numeric>input{padding:.47rem 1rem;font-size:1.125rem;line-height:1.5;border-radius:.25rem}.input-group-lg>.b-numeric>input{height:calc(1.5em + 1rem + 2px)}.input-group-lg>.b-numeric>input{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.input-group-xl>.form-control:not(textarea),.input-group-xl>.form-select,.input-group-xl>.b-numeric>input{height:calc(1.5em + 1rem + 2px)}.input-group-xl>.form-control,.input-group-xl>.form-select,.input-group-xl>.input-group-text,.input-group-xl>.btn,.input-group-xl>.b-numeric>input{padding:.5rem 1rem;font-size:1.5rem;line-height:1.5;border-radius:.4rem}.input-group-xs>.form-select,.input-group-md>.form-select,.input-group-xl>.form-select{padding-right:1.75rem}.input-group:not(.has-validation)>.dropdown:first-child>.btn:not(:last-child).dropdown-toggle{border-top-right-radius:0;border-bottom-right-radius:0}.input-group.has-validation>.dropdown>.btn:not(:last-child).dropdown-toggle,.input-group.has-validation>.dropdown>.btn:not(:last-child):not(.dropdown-toggle){border-top-left-radius:0;border-bottom-left-radius:0}.input-group>div.flatpickr-wrapper>.form-control{position:relative;flex:1 1 auto;width:1%;min-width:0}.form-check>.form-check-input.form-check-input-xs{width:.7rem;height:.7rem}.form-check>.form-check-input.form-check-input-xs+.form-check-label{line-height:"normal";padding-left:0}.form-check>.form-check-input.form-check-input-sm{width:.8rem;height:.8rem}.form-check>.form-check-input.form-check-input-sm+.form-check-label{line-height:"normal";padding-left:0}.form-check>.form-check-input.form-check-input-md{width:1.25rem;height:1.25rem}.form-check>.form-check-input.form-check-input-md+.form-check-label{line-height:1.7rem;padding-left:3px}.form-check>.form-check-input.form-check-input-lg{width:1.55rem;height:1.55rem}.form-check>.form-check-input.form-check-input-lg+.form-check-label{line-height:2rem;padding-left:6px}.form-check>.form-check-input.form-check-input-xl{width:1.85rem;height:1.85rem}.form-check>.form-check-input.form-check-input-xl+.form-check-label{line-height:2.5rem;padding-left:10px}select[readonly]{pointer-events:none}select[readonly] option,select[readonly] optgroup{display:none}.b-numeric{position:relative;width:100%}.b-numeric:hover>.b-numeric-handler-wrap{opacity:1}.b-numeric input:disabled+.b-numeric-handler-wrap,.b-numeric input:read-only+.b-numeric-handler-wrap{display:none}.b-numeric-handler-wrap{position:absolute;top:0;right:0;width:22px;height:100%;background:#fff;border:1px solid #d9d9d9;opacity:0}.input-group .b-numeric{-ms-flex:1 1 auto;flex:1 1 auto;width:1%}.b-numeric-handler-wrap .b-numeric-handler.b-numeric-handler-down{border-top:1px solid #d9d9d9}.b-numeric-handler{position:relative;display:flex;width:100%;height:50%;overflow:hidden;color:rgba(0,0,0,.45);font-weight:700;line-height:0;align-items:center;justify-content:center}.b-numeric-handler.btn{padding:0}.form-control+.b-numeric-handler-wrap{font-size:1rem;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.form-control-xs+.b-numeric-handler-wrap{font-size:.75rem;border-top-right-radius:.15rem;border-bottom-right-radius:.15rem}.form-control-xs+.b-numeric-handler-wrap>.b-numeric-handler.btn{font-size:.75rem}.form-control-sm+.b-numeric-handler-wrap{font-size:.875rem;border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.form-control-sm+.b-numeric-handler-wrap>.b-numeric-handler.btn{font-size:.875rem}.form-control-md+.b-numeric-handler-wrap{font-size:1.125rem;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.form-control-md+.b-numeric-handler-wrap>.b-numeric-handler.btn{font-size:1.125rem}.form-control-lg+.b-numeric-handler-wrap{font-size:1.25rem;border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.form-control-lg+.b-numeric-handler-wrap>.b-numeric-handler.btn{font-size:1.25rem}.form-control-xl+.b-numeric-handler-wrap{font-size:1.5rem;border-top-right-radius:.4rem;border-bottom-right-radius:.4rem}.form-control-xl+.b-numeric-handler-wrap>.b-numeric-handler.btn{font-size:1.5rem}.custom-file-label{overflow:hidden}input[readonly][type=range],input[readonly=readonly][type=range]{pointer-events:none}input[readonly][type=range]::-webkit-slider-thumb,input[readonly=readonly][type=range]::-webkit-slider-thumb{pointer-events:none}input[readonly][type=range]::-moz-range-thumb,input[readonly=readonly][type=range]::-moz-range-thumb{pointer-events:none}input[readonly][type=range]::-ms-thumb,input[readonly=readonly][type=range]::-ms-thumb{pointer-events:none}.form-group{margin-bottom:1rem}.form-inline{display:flex;flex-flow:row wrap;align-items:center}.form-inline .form-check{width:100%}@media(min-width:576px){.form-inline label{display:flex;align-items:center;justify-content:center;margin-bottom:0}.form-inline .form-group{display:flex;flex:0 0 auto;flex-flow:row wrap;align-items:center;margin-bottom:0}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-plaintext{display:inline-block}.form-inline .input-group,.form-inline .custom-select{width:auto}.form-inline .form-check{display:flex;align-items:center;justify-content:center;width:auto;padding-left:0}.form-inline .form-check-input{position:relative;flex-shrink:0;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline .form-select{align-items:center;justify-content:center}.form-inline .form-check-label{margin-bottom:0}}.b-input-color-picker{padding:.5rem .6rem}.b-input-color-picker>.b-input-color-picker-preview{height:.55rem}.focus-trap{display:contents}.form-file input[type=file]{margin-left:-2px !important}.form-file input[type=file]::-webkit-file-upload-button{display:none}.form-file input[type=file]::file-selector-button{display:none}.form-label-required:after{content:" *";color:var(--b-theme-danger,#dc3545)}.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#e9ecef;border-radius:.3rem}@media(min-width:576px){.jumbotron{padding:4rem 2rem}}.jumbotron-fluid{padding-right:0;padding-left:0;border-radius:0}.jumbotron.jumbotron-primary{background-color:#007bff;color:#fff}.jumbotron.jumbotron-secondary{background-color:#6c757d;color:#fff}.jumbotron.jumbotron-success{background-color:#28a745;color:#fff}.jumbotron.jumbotron-info{background-color:#17a2b8;color:#fff}.jumbotron.jumbotron-warning{background-color:#ffc107;color:#212529}.jumbotron.jumbotron-danger{background-color:#dc3545;color:#fff}.jumbotron.jumbotron-light{background-color:#f8f9fa;color:#212529}.jumbotron.jumbotron-dark{background-color:#343a40;color:#fff}.jumbotron.jumbotron-link{background-color:#3273dc;color:#fff}.b-layout-header-fixed{z-index:1030}.b-layout-footer-fixed{z-index:1030}.b-layout-sider-content{z-index:1031}li.list-group-item-action{cursor:pointer}.list-group-scrollable{overflow-y:scroll}.media{display:flex;align-items:flex-start}.media-body{flex:1}.modal.fade{transition:opacity var(--modal-animation-duration,300ms) linear}.modal.fade .modal-dialog{transition:-webkit-transform var(--modal-animation-duration,300ms) ease-out;transition:transform var(--modal-animation-duration,300ms) ease-out}.offcanvas-footer{position:sticky;bottom:0;top:auto;display:flex;align-items:center;justify-content:space-between;padding:var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x)}.page-item:not(.disabled) .page-link{cursor:pointer}.pagination-xs .page-link{padding:.125rem .25rem;font-size:.75rem;line-height:1.5}.pagination-xs .page-item:first-child .page-link{border-top-left-radius:.15rem;border-bottom-left-radius:.15rem}.pagination-xs .page-item:last-child .page-link{border-top-right-radius:.15rem;border-bottom-right-radius:.15rem}.pagination-md .page-link{padding:.625rem 1.25rem;font-size:1.125rem;line-height:1.5}.pagination-md .page-item:first-child .page-link{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.pagination-md .page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.pagination-xl .page-link{padding:1rem 2rem;font-size:1.5rem;line-height:1.5}.pagination-xl .page-item:first-child .page-link{border-top-left-radius:.4rem;border-bottom-left-radius:.4rem}.pagination-xl .page-item:last-child .page-link{border-top-right-radius:.4rem;border-bottom-right-radius:.4rem}.b-page-progress .b-page-progress-indicator.b-page-progress-indicator-primary{background-color:#007bff}.b-page-progress .b-page-progress-indicator.b-page-progress-indicator-secondary{background-color:#6c757d}.b-page-progress .b-page-progress-indicator.b-page-progress-indicator-success{background-color:#28a745}.b-page-progress .b-page-progress-indicator.b-page-progress-indicator-info{background-color:#17a2b8}.b-page-progress .b-page-progress-indicator.b-page-progress-indicator-warning{background-color:#ffc107}.b-page-progress .b-page-progress-indicator.b-page-progress-indicator-danger{background-color:#dc3545}.b-page-progress .b-page-progress-indicator.b-page-progress-indicator-light{background-color:#f8f9fa}.b-page-progress .b-page-progress-indicator.b-page-progress-indicator-dark{background-color:#343a40}.b-page-progress .b-page-progress-indicator.b-page-progress-indicator-link{background-color:#3273dc}.rating:not(.rating-disabled):not(.rating-readonly):hover .rating-item{cursor:pointer}.rating.rating-disabled{opacity:.65}.rating .rating-item.rating-item-primary{color:#007bff}.rating .rating-item.rating-item-secondary{color:#6c757d}.rating .rating-item.rating-item-success{color:#28a745}.rating .rating-item.rating-item-info{color:#17a2b8}.rating .rating-item.rating-item-warning{color:#ffc107}.rating .rating-item.rating-item-danger{color:#dc3545}.rating .rating-item.rating-item-light{color:#f8f9fa}.rating .rating-item.rating-item-dark{color:#343a40}.rating .rating-item.rating-item-link{color:#3273dc}.rating .rating-item.rating-item-hover{opacity:.7}.gap-y-0{row-gap:0 !important}.gap-x-0{column-gap:0 !important}.gap-y-1{row-gap:.25rem !important}.gap-x-1{column-gap:.25rem !important}.gap-y-2{row-gap:.5rem !important}.gap-x-2{column-gap:.5rem !important}.gap-y-3{row-gap:1rem !important}.gap-x-3{column-gap:1rem !important}.gap-y-4{row-gap:1.5rem !important}.gap-x-4{column-gap:1.5rem !important}.gap-y-5{row-gap:3rem !important}.gap-x-5{column-gap:3rem !important}.steps{padding:0;margin:0;list-style:none;display:flex;overflow-x:auto}.steps .step:first-child{margin-left:auto}.steps .step:last-child{margin-right:auto}.step:first-of-type .step-circle::before{display:none}.step:last-of-type .step-container{padding-right:0}.step-container{box-sizing:content-box;display:flex;align-items:center;flex-direction:column;width:5rem;min-width:5rem;max-width:5rem;padding-top:.5rem;padding-right:1rem}.step-circle{position:relative;display:flex;justify-content:center;align-items:center;width:1.5rem;height:1.5rem;color:#adb5bd;border:2px solid #adb5bd;border-radius:100%;background-color:#fff}.step-circle::before{content:"";display:block;position:absolute;top:50%;left:-2px;width:calc(5rem + 1rem - 1.5rem);height:2px;transform:translate(-100%,-50%);color:#adb5bd;background-color:currentColor}.step-text{color:#adb5bd;word-break:keep-all;text-align:center;margin-top:.25em}.step-completed .step-circle{color:#fff;background-color:#28a745;border-color:#28a745}.step-completed .step-circle::before{color:#28a745}.step-completed .step-text{color:#28a745}.step-active .step-circle{color:#fff;background-color:#007bff;border-color:#007bff}.step-active .step-circle::before{color:#007bff}.step-active .step-text{color:#007bff}.step-primary .step-circle{color:#007bff;border-color:#007bff}.step-primary.step-completed .step-circle{color:#fff;background-color:#007bff;border-color:#007bff}.step-primary.step-completed .step-circle::before{color:#007bff}.step-primary.step-completed .step-text{color:#007bff}.step-primary.step-active .step-circle{color:#fff;background-color:#007bff;border-color:#007bff}.step-primary.step-active::before{color:#007bff}.step-primary.step-active .step-text{color:#007bff}.step-secondary .step-circle{color:#6c757d;border-color:#6c757d}.step-secondary.step-completed .step-circle{color:#fff;background-color:#6c757d;border-color:#6c757d}.step-secondary.step-completed .step-circle::before{color:#6c757d}.step-secondary.step-completed .step-text{color:#6c757d}.step-secondary.step-active .step-circle{color:#fff;background-color:#007bff;border-color:#007bff}.step-secondary.step-active::before{color:#007bff}.step-secondary.step-active .step-text{color:#007bff}.step-success .step-circle{color:#28a745;border-color:#28a745}.step-success.step-completed .step-circle{color:#fff;background-color:#28a745;border-color:#28a745}.step-success.step-completed .step-circle::before{color:#28a745}.step-success.step-completed .step-text{color:#28a745}.step-success.step-active .step-circle{color:#fff;background-color:#007bff;border-color:#007bff}.step-success.step-active::before{color:#007bff}.step-success.step-active .step-text{color:#007bff}.step-info .step-circle{color:#17a2b8;border-color:#17a2b8}.step-info.step-completed .step-circle{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.step-info.step-completed .step-circle::before{color:#17a2b8}.step-info.step-completed .step-text{color:#17a2b8}.step-info.step-active .step-circle{color:#fff;background-color:#007bff;border-color:#007bff}.step-info.step-active::before{color:#007bff}.step-info.step-active .step-text{color:#007bff}.step-warning .step-circle{color:#ffc107;border-color:#ffc107}.step-warning.step-completed .step-circle{color:#fff;background-color:#ffc107;border-color:#ffc107}.step-warning.step-completed .step-circle::before{color:#ffc107}.step-warning.step-completed .step-text{color:#ffc107}.step-warning.step-active .step-circle{color:#fff;background-color:#007bff;border-color:#007bff}.step-warning.step-active::before{color:#007bff}.step-warning.step-active .step-text{color:#007bff}.step-danger .step-circle{color:#dc3545;border-color:#dc3545}.step-danger.step-completed .step-circle{color:#fff;background-color:#dc3545;border-color:#dc3545}.step-danger.step-completed .step-circle::before{color:#dc3545}.step-danger.step-completed .step-text{color:#dc3545}.step-danger.step-active .step-circle{color:#fff;background-color:#007bff;border-color:#007bff}.step-danger.step-active::before{color:#007bff}.step-danger.step-active .step-text{color:#007bff}.step-light .step-circle{color:#f8f9fa;border-color:#f8f9fa}.step-light.step-completed .step-circle{color:#fff;background-color:#f8f9fa;border-color:#f8f9fa}.step-light.step-completed .step-circle::before{color:#f8f9fa}.step-light.step-completed .step-text{color:#f8f9fa}.step-light.step-active .step-circle{color:#fff;background-color:#007bff;border-color:#007bff}.step-light.step-active::before{color:#007bff}.step-light.step-active .step-text{color:#007bff}.step-dark .step-circle{color:#343a40;border-color:#343a40}.step-dark.step-completed .step-circle{color:#fff;background-color:#343a40;border-color:#343a40}.step-dark.step-completed .step-circle::before{color:#343a40}.step-dark.step-completed .step-text{color:#343a40}.step-dark.step-active .step-circle{color:#fff;background-color:#007bff;border-color:#007bff}.step-dark.step-active::before{color:#007bff}.step-dark.step-active .step-text{color:#007bff}.step-link .step-circle{color:#3273dc;border-color:#3273dc}.step-link.step-completed .step-circle{color:#fff;background-color:#3273dc;border-color:#3273dc}.step-link.step-completed .step-circle::before{color:#3273dc}.step-link.step-completed .step-text{color:#3273dc}.step-link.step-active .step-circle{color:#fff;background-color:#007bff;border-color:#007bff}.step-link.step-active::before{color:#007bff}.step-link.step-active .step-text{color:#007bff}.steps-content{margin:1rem 0}.steps-content>.step-panel{display:none}.steps-content>.active{display:block}.form-check.form-switch .form-check-input.form-check-input-primary:checked{background-color:#007bff;border-color:#007bff}.form-check.form-switch .form-check-input.form-check-input-secondary:checked{background-color:#6c757d;border-color:#6c757d}.form-check.form-switch .form-check-input.form-check-input-success:checked{background-color:#28a745;border-color:#28a745}.form-check.form-switch .form-check-input.form-check-input-info:checked{background-color:#17a2b8;border-color:#17a2b8}.form-check.form-switch .form-check-input.form-check-input-warning:checked{background-color:#ffc107;border-color:#ffc107}.form-check.form-switch .form-check-input.form-check-input-danger:checked{background-color:#dc3545;border-color:#dc3545}.form-check.form-switch .form-check-input.form-check-input-light:checked{background-color:#f8f9fa;border-color:#f8f9fa}.form-check.form-switch .form-check-input.form-check-input-dark:checked{background-color:#343a40;border-color:#343a40}.form-check.form-switch .form-check-input.form-check-input-link:checked{background-color:#3273dc;border-color:#3273dc}.form-check.form-switch .form-check-input.form-check-input-xs{width:calc(.75rem + (.5rem/2));height:.5rem;margin-left:-2.5em}.form-check.form-switch .form-check-input.form-check-input-xs+.form-check-label{line-height:1rem;vertical-align:middle;padding-left:0}.form-check.form-switch .form-check-input.form-check-input-xs:checked~.form-check-label::after{transform:translateX(calc(.75rem - (.5rem/2)))}.form-check.form-switch .form-check-input.form-check-input-sm{width:calc(1rem + (.75rem/2));height:.75rem;margin-left:-2.5em}.form-check.form-switch .form-check-input.form-check-input-sm+.form-check-label{line-height:1.25rem;vertical-align:middle;padding-left:.75rem}.form-check.form-switch .form-check-input.form-check-input-sm:checked~.form-check-label::after{transform:translateX(calc(1rem - (.75rem/2)))}.form-check.form-switch .form-check-input.form-check-input-md{width:calc(2rem + (1.5rem/2));height:1.5rem;margin-left:-2.5em}.form-check.form-switch .form-check-input.form-check-input-md+.form-check-label{line-height:2rem;vertical-align:middle;padding-left:.75rem}.form-check.form-switch .form-check-input.form-check-input-md:checked~.form-check-label::after{transform:translateX(calc(2rem - (1.5rem/2)))}.form-check.form-switch .form-check-input.form-check-input-lg{width:calc(3rem + (2rem/2));height:2rem;margin-left:-2.5em}.form-check.form-switch .form-check-input.form-check-input-lg+.form-check-label{line-height:2.5rem;vertical-align:middle;padding-left:.75rem}.form-check.form-switch .form-check-input.form-check-input-lg:checked~.form-check-label::after{transform:translateX(calc(3rem - (2rem/2)))}.form-check.form-switch .form-check-input.form-check-input-xl{width:calc(4rem + (2.5rem/2));height:2.5rem;margin-left:-2.5em}.form-check.form-switch .form-check-input.form-check-input-xl+.form-check-label{line-height:3rem;vertical-align:middle;padding-left:.75rem}.form-check.form-switch .form-check-input.form-check-input-xl:checked~.form-check-label::after{transform:translateX(calc(4rem - (2.5rem/2)))}table.table tbody tr:not(.table-group).selected{background-color:var(--bs-primary)}table.table tbody tr.table-group{cursor:pointer;background-color:var(--b-theme-light,var(--bs-light,#f5f5f5));font-weight:700}tr.table-row-selectable:hover{cursor:pointer}tr.table-row-selectable:focus[tabindex="0"]{outline:none}.table-fixed-header{overflow-y:auto}.table-fixed-header>.table{border-collapse:separate;border-spacing:0}.table-fixed-header>.table>thead:not(.table-thead-theme)>tr>th{background:#fff}.table-fixed-header>.table>thead>tr>th{border-top:none;position:sticky;z-index:10}.table-fixed-header>.table>thead>tr:nth-child(1)>th{top:0}.table-fixed-header>.table-bordered>:not(caption)>*>*{border-width:1px 1px}.overflow-auto-auto{overflow:auto auto !important}.overflow-auto-hidden{overflow:auto hidden !important}.overflow-auto-visible{overflow:auto visible !important}.overflow-auto-scroll{overflow:auto scroll !important}.overflow-hidden-auto{overflow:hidden auto !important}.overflow-hidden-hidden{overflow:hidden hidden !important}.overflow-hidden-visible{overflow:hidden visible !important}.overflow-hidden-scroll{overflow:hidden scroll !important}.overflow-visible-auto{overflow:visible auto !important}.overflow-visible-hidden{overflow:visible hidden !important}.overflow-visible-visible{overflow:visible visible !important}.overflow-visible-scroll{overflow:visible scroll !important}.overflow-scroll-auto{overflow:scroll auto !important}.overflow-scroll-hidden{overflow:scroll hidden !important}.overflow-scroll-visible{overflow:scroll visible !important}.overflow-scroll-scroll{overflow:scroll scroll !important}ol.ordered-list-lower-alpha{list-style-type:lower-alpha}ol.ordered-list-lower-roman{list-style-type:lower-roman}ol.ordered-list-upper-alpha{list-style-type:upper-alpha}ol.ordered-list-upper-roman{list-style-type:upper-roman}.border-1{border:1px solid #dee2e6 !important}.border-1.border-primary{border-color:#007bff !important}.border-1.border-secondary{border-color:#6c757d !important}.border-1.border-success{border-color:#28a745 !important}.border-1.border-info{border-color:#17a2b8 !important}.border-1.border-warning{border-color:#ffc107 !important}.border-1.border-danger{border-color:#dc3545 !important}.border-1.border-light{border-color:#f8f9fa !important}.border-1.border-dark{border-color:#343a40 !important}.border-1.border-link{border-color:#3273dc !important}.border-primary-1{border:1px solid #007bff !important}.border-secondary-1{border:1px solid #6c757d !important}.border-success-1{border:1px solid #28a745 !important}.border-info-1{border:1px solid #17a2b8 !important}.border-warning-1{border:1px solid #ffc107 !important}.border-danger-1{border:1px solid #dc3545 !important}.border-light-1{border:1px solid #f8f9fa !important}.border-dark-1{border:1px solid #343a40 !important}.border-link-1{border:1px solid #3273dc !important}.border-top-1{border-top:1px solid #dee2e6 !important}.border-primary-top-1{border-top:1px solid #007bff !important}.border-secondary-top-1{border-top:1px solid #6c757d !important}.border-success-top-1{border-top:1px solid #28a745 !important}.border-info-top-1{border-top:1px solid #17a2b8 !important}.border-warning-top-1{border-top:1px solid #ffc107 !important}.border-danger-top-1{border-top:1px solid #dc3545 !important}.border-light-top-1{border-top:1px solid #f8f9fa !important}.border-dark-top-1{border-top:1px solid #343a40 !important}.border-link-top-1{border-top:1px solid #3273dc !important}.border-end-1{border-right:1px solid #dee2e6 !important}.border-primary-end-1{border-right:1px solid #007bff !important}.border-secondary-end-1{border-right:1px solid #6c757d !important}.border-success-end-1{border-right:1px solid #28a745 !important}.border-info-end-1{border-right:1px solid #17a2b8 !important}.border-warning-end-1{border-right:1px solid #ffc107 !important}.border-danger-end-1{border-right:1px solid #dc3545 !important}.border-light-end-1{border-right:1px solid #f8f9fa !important}.border-dark-end-1{border-right:1px solid #343a40 !important}.border-link-end-1{border-right:1px solid #3273dc !important}.border-bottom-1{border-bottom:1px solid #dee2e6 !important}.border-primary-bottom-1{border-bottom:1px solid #007bff !important}.border-secondary-bottom-1{border-bottom:1px solid #6c757d !important}.border-success-bottom-1{border-bottom:1px solid #28a745 !important}.border-info-bottom-1{border-bottom:1px solid #17a2b8 !important}.border-warning-bottom-1{border-bottom:1px solid #ffc107 !important}.border-danger-bottom-1{border-bottom:1px solid #dc3545 !important}.border-light-bottom-1{border-bottom:1px solid #f8f9fa !important}.border-dark-bottom-1{border-bottom:1px solid #343a40 !important}.border-link-bottom-1{border-bottom:1px solid #3273dc !important}.border-start-1{border-left:1px solid #dee2e6 !important}.border-primary-start-1{border-left:1px solid #007bff !important}.border-secondary-start-1{border-left:1px solid #6c757d !important}.border-success-start-1{border-left:1px solid #28a745 !important}.border-info-start-1{border-left:1px solid #17a2b8 !important}.border-warning-start-1{border-left:1px solid #ffc107 !important}.border-danger-start-1{border-left:1px solid #dc3545 !important}.border-light-start-1{border-left:1px solid #f8f9fa !important}.border-dark-start-1{border-left:1px solid #343a40 !important}.border-link-start-1{border-left:1px solid #3273dc !important}.border-2{border:2px solid #dee2e6 !important}.border-2.border-primary{border-color:#007bff !important}.border-2.border-secondary{border-color:#6c757d !important}.border-2.border-success{border-color:#28a745 !important}.border-2.border-info{border-color:#17a2b8 !important}.border-2.border-warning{border-color:#ffc107 !important}.border-2.border-danger{border-color:#dc3545 !important}.border-2.border-light{border-color:#f8f9fa !important}.border-2.border-dark{border-color:#343a40 !important}.border-2.border-link{border-color:#3273dc !important}.border-primary-2{border:2px solid #007bff !important}.border-secondary-2{border:2px solid #6c757d !important}.border-success-2{border:2px solid #28a745 !important}.border-info-2{border:2px solid #17a2b8 !important}.border-warning-2{border:2px solid #ffc107 !important}.border-danger-2{border:2px solid #dc3545 !important}.border-light-2{border:2px solid #f8f9fa !important}.border-dark-2{border:2px solid #343a40 !important}.border-link-2{border:2px solid #3273dc !important}.border-top-2{border-top:2px solid #dee2e6 !important}.border-primary-top-2{border-top:2px solid #007bff !important}.border-secondary-top-2{border-top:2px solid #6c757d !important}.border-success-top-2{border-top:2px solid #28a745 !important}.border-info-top-2{border-top:2px solid #17a2b8 !important}.border-warning-top-2{border-top:2px solid #ffc107 !important}.border-danger-top-2{border-top:2px solid #dc3545 !important}.border-light-top-2{border-top:2px solid #f8f9fa !important}.border-dark-top-2{border-top:2px solid #343a40 !important}.border-link-top-2{border-top:2px solid #3273dc !important}.border-end-2{border-right:2px solid #dee2e6 !important}.border-primary-end-2{border-right:2px solid #007bff !important}.border-secondary-end-2{border-right:2px solid #6c757d !important}.border-success-end-2{border-right:2px solid #28a745 !important}.border-info-end-2{border-right:2px solid #17a2b8 !important}.border-warning-end-2{border-right:2px solid #ffc107 !important}.border-danger-end-2{border-right:2px solid #dc3545 !important}.border-light-end-2{border-right:2px solid #f8f9fa !important}.border-dark-end-2{border-right:2px solid #343a40 !important}.border-link-end-2{border-right:2px solid #3273dc !important}.border-bottom-2{border-bottom:2px solid #dee2e6 !important}.border-primary-bottom-2{border-bottom:2px solid #007bff !important}.border-secondary-bottom-2{border-bottom:2px solid #6c757d !important}.border-success-bottom-2{border-bottom:2px solid #28a745 !important}.border-info-bottom-2{border-bottom:2px solid #17a2b8 !important}.border-warning-bottom-2{border-bottom:2px solid #ffc107 !important}.border-danger-bottom-2{border-bottom:2px solid #dc3545 !important}.border-light-bottom-2{border-bottom:2px solid #f8f9fa !important}.border-dark-bottom-2{border-bottom:2px solid #343a40 !important}.border-link-bottom-2{border-bottom:2px solid #3273dc !important}.border-start-2{border-left:2px solid #dee2e6 !important}.border-primary-start-2{border-left:2px solid #007bff !important}.border-secondary-start-2{border-left:2px solid #6c757d !important}.border-success-start-2{border-left:2px solid #28a745 !important}.border-info-start-2{border-left:2px solid #17a2b8 !important}.border-warning-start-2{border-left:2px solid #ffc107 !important}.border-danger-start-2{border-left:2px solid #dc3545 !important}.border-light-start-2{border-left:2px solid #f8f9fa !important}.border-dark-start-2{border-left:2px solid #343a40 !important}.border-link-start-2{border-left:2px solid #3273dc !important}.border-3{border:3px solid #dee2e6 !important}.border-3.border-primary{border-color:#007bff !important}.border-3.border-secondary{border-color:#6c757d !important}.border-3.border-success{border-color:#28a745 !important}.border-3.border-info{border-color:#17a2b8 !important}.border-3.border-warning{border-color:#ffc107 !important}.border-3.border-danger{border-color:#dc3545 !important}.border-3.border-light{border-color:#f8f9fa !important}.border-3.border-dark{border-color:#343a40 !important}.border-3.border-link{border-color:#3273dc !important}.border-primary-3{border:3px solid #007bff !important}.border-secondary-3{border:3px solid #6c757d !important}.border-success-3{border:3px solid #28a745 !important}.border-info-3{border:3px solid #17a2b8 !important}.border-warning-3{border:3px solid #ffc107 !important}.border-danger-3{border:3px solid #dc3545 !important}.border-light-3{border:3px solid #f8f9fa !important}.border-dark-3{border:3px solid #343a40 !important}.border-link-3{border:3px solid #3273dc !important}.border-top-3{border-top:3px solid #dee2e6 !important}.border-primary-top-3{border-top:3px solid #007bff !important}.border-secondary-top-3{border-top:3px solid #6c757d !important}.border-success-top-3{border-top:3px solid #28a745 !important}.border-info-top-3{border-top:3px solid #17a2b8 !important}.border-warning-top-3{border-top:3px solid #ffc107 !important}.border-danger-top-3{border-top:3px solid #dc3545 !important}.border-light-top-3{border-top:3px solid #f8f9fa !important}.border-dark-top-3{border-top:3px solid #343a40 !important}.border-link-top-3{border-top:3px solid #3273dc !important}.border-end-3{border-right:3px solid #dee2e6 !important}.border-primary-end-3{border-right:3px solid #007bff !important}.border-secondary-end-3{border-right:3px solid #6c757d !important}.border-success-end-3{border-right:3px solid #28a745 !important}.border-info-end-3{border-right:3px solid #17a2b8 !important}.border-warning-end-3{border-right:3px solid #ffc107 !important}.border-danger-end-3{border-right:3px solid #dc3545 !important}.border-light-end-3{border-right:3px solid #f8f9fa !important}.border-dark-end-3{border-right:3px solid #343a40 !important}.border-link-end-3{border-right:3px solid #3273dc !important}.border-bottom-3{border-bottom:3px solid #dee2e6 !important}.border-primary-bottom-3{border-bottom:3px solid #007bff !important}.border-secondary-bottom-3{border-bottom:3px solid #6c757d !important}.border-success-bottom-3{border-bottom:3px solid #28a745 !important}.border-info-bottom-3{border-bottom:3px solid #17a2b8 !important}.border-warning-bottom-3{border-bottom:3px solid #ffc107 !important}.border-danger-bottom-3{border-bottom:3px solid #dc3545 !important}.border-light-bottom-3{border-bottom:3px solid #f8f9fa !important}.border-dark-bottom-3{border-bottom:3px solid #343a40 !important}.border-link-bottom-3{border-bottom:3px solid #3273dc !important}.border-start-3{border-left:3px solid #dee2e6 !important}.border-primary-start-3{border-left:3px solid #007bff !important}.border-secondary-start-3{border-left:3px solid #6c757d !important}.border-success-start-3{border-left:3px solid #28a745 !important}.border-info-start-3{border-left:3px solid #17a2b8 !important}.border-warning-start-3{border-left:3px solid #ffc107 !important}.border-danger-start-3{border-left:3px solid #dc3545 !important}.border-light-start-3{border-left:3px solid #f8f9fa !important}.border-dark-start-3{border-left:3px solid #343a40 !important}.border-link-start-3{border-left:3px solid #3273dc !important}.border-4{border:4px solid #dee2e6 !important}.border-4.border-primary{border-color:#007bff !important}.border-4.border-secondary{border-color:#6c757d !important}.border-4.border-success{border-color:#28a745 !important}.border-4.border-info{border-color:#17a2b8 !important}.border-4.border-warning{border-color:#ffc107 !important}.border-4.border-danger{border-color:#dc3545 !important}.border-4.border-light{border-color:#f8f9fa !important}.border-4.border-dark{border-color:#343a40 !important}.border-4.border-link{border-color:#3273dc !important}.border-primary-4{border:4px solid #007bff !important}.border-secondary-4{border:4px solid #6c757d !important}.border-success-4{border:4px solid #28a745 !important}.border-info-4{border:4px solid #17a2b8 !important}.border-warning-4{border:4px solid #ffc107 !important}.border-danger-4{border:4px solid #dc3545 !important}.border-light-4{border:4px solid #f8f9fa !important}.border-dark-4{border:4px solid #343a40 !important}.border-link-4{border:4px solid #3273dc !important}.border-top-4{border-top:4px solid #dee2e6 !important}.border-primary-top-4{border-top:4px solid #007bff !important}.border-secondary-top-4{border-top:4px solid #6c757d !important}.border-success-top-4{border-top:4px solid #28a745 !important}.border-info-top-4{border-top:4px solid #17a2b8 !important}.border-warning-top-4{border-top:4px solid #ffc107 !important}.border-danger-top-4{border-top:4px solid #dc3545 !important}.border-light-top-4{border-top:4px solid #f8f9fa !important}.border-dark-top-4{border-top:4px solid #343a40 !important}.border-link-top-4{border-top:4px solid #3273dc !important}.border-end-4{border-right:4px solid #dee2e6 !important}.border-primary-end-4{border-right:4px solid #007bff !important}.border-secondary-end-4{border-right:4px solid #6c757d !important}.border-success-end-4{border-right:4px solid #28a745 !important}.border-info-end-4{border-right:4px solid #17a2b8 !important}.border-warning-end-4{border-right:4px solid #ffc107 !important}.border-danger-end-4{border-right:4px solid #dc3545 !important}.border-light-end-4{border-right:4px solid #f8f9fa !important}.border-dark-end-4{border-right:4px solid #343a40 !important}.border-link-end-4{border-right:4px solid #3273dc !important}.border-bottom-4{border-bottom:4px solid #dee2e6 !important}.border-primary-bottom-4{border-bottom:4px solid #007bff !important}.border-secondary-bottom-4{border-bottom:4px solid #6c757d !important}.border-success-bottom-4{border-bottom:4px solid #28a745 !important}.border-info-bottom-4{border-bottom:4px solid #17a2b8 !important}.border-warning-bottom-4{border-bottom:4px solid #ffc107 !important}.border-danger-bottom-4{border-bottom:4px solid #dc3545 !important}.border-light-bottom-4{border-bottom:4px solid #f8f9fa !important}.border-dark-bottom-4{border-bottom:4px solid #343a40 !important}.border-link-bottom-4{border-bottom:4px solid #3273dc !important}.border-start-4{border-left:4px solid #dee2e6 !important}.border-primary-start-4{border-left:4px solid #007bff !important}.border-secondary-start-4{border-left:4px solid #6c757d !important}.border-success-start-4{border-left:4px solid #28a745 !important}.border-info-start-4{border-left:4px solid #17a2b8 !important}.border-warning-start-4{border-left:4px solid #ffc107 !important}.border-danger-start-4{border-left:4px solid #dc3545 !important}.border-light-start-4{border-left:4px solid #f8f9fa !important}.border-dark-start-4{border-left:4px solid #343a40 !important}.border-link-start-4{border-left:4px solid #3273dc !important}.border-5{border:5px solid #dee2e6 !important}.border-5.border-primary{border-color:#007bff !important}.border-5.border-secondary{border-color:#6c757d !important}.border-5.border-success{border-color:#28a745 !important}.border-5.border-info{border-color:#17a2b8 !important}.border-5.border-warning{border-color:#ffc107 !important}.border-5.border-danger{border-color:#dc3545 !important}.border-5.border-light{border-color:#f8f9fa !important}.border-5.border-dark{border-color:#343a40 !important}.border-5.border-link{border-color:#3273dc !important}.border-primary-5{border:5px solid #007bff !important}.border-secondary-5{border:5px solid #6c757d !important}.border-success-5{border:5px solid #28a745 !important}.border-info-5{border:5px solid #17a2b8 !important}.border-warning-5{border:5px solid #ffc107 !important}.border-danger-5{border:5px solid #dc3545 !important}.border-light-5{border:5px solid #f8f9fa !important}.border-dark-5{border:5px solid #343a40 !important}.border-link-5{border:5px solid #3273dc !important}.border-top-5{border-top:5px solid #dee2e6 !important}.border-primary-top-5{border-top:5px solid #007bff !important}.border-secondary-top-5{border-top:5px solid #6c757d !important}.border-success-top-5{border-top:5px solid #28a745 !important}.border-info-top-5{border-top:5px solid #17a2b8 !important}.border-warning-top-5{border-top:5px solid #ffc107 !important}.border-danger-top-5{border-top:5px solid #dc3545 !important}.border-light-top-5{border-top:5px solid #f8f9fa !important}.border-dark-top-5{border-top:5px solid #343a40 !important}.border-link-top-5{border-top:5px solid #3273dc !important}.border-end-5{border-right:5px solid #dee2e6 !important}.border-primary-end-5{border-right:5px solid #007bff !important}.border-secondary-end-5{border-right:5px solid #6c757d !important}.border-success-end-5{border-right:5px solid #28a745 !important}.border-info-end-5{border-right:5px solid #17a2b8 !important}.border-warning-end-5{border-right:5px solid #ffc107 !important}.border-danger-end-5{border-right:5px solid #dc3545 !important}.border-light-end-5{border-right:5px solid #f8f9fa !important}.border-dark-end-5{border-right:5px solid #343a40 !important}.border-link-end-5{border-right:5px solid #3273dc !important}.border-bottom-5{border-bottom:5px solid #dee2e6 !important}.border-primary-bottom-5{border-bottom:5px solid #007bff !important}.border-secondary-bottom-5{border-bottom:5px solid #6c757d !important}.border-success-bottom-5{border-bottom:5px solid #28a745 !important}.border-info-bottom-5{border-bottom:5px solid #17a2b8 !important}.border-warning-bottom-5{border-bottom:5px solid #ffc107 !important}.border-danger-bottom-5{border-bottom:5px solid #dc3545 !important}.border-light-bottom-5{border-bottom:5px solid #f8f9fa !important}.border-dark-bottom-5{border-bottom:5px solid #343a40 !important}.border-link-bottom-5{border-bottom:5px solid #3273dc !important}.border-start-5{border-left:5px solid #dee2e6 !important}.border-primary-start-5{border-left:5px solid #007bff !important}.border-secondary-start-5{border-left:5px solid #6c757d !important}.border-success-start-5{border-left:5px solid #28a745 !important}.border-info-start-5{border-left:5px solid #17a2b8 !important}.border-warning-start-5{border-left:5px solid #ffc107 !important}.border-danger-start-5{border-left:5px solid #dc3545 !important}.border-light-start-5{border-left:5px solid #f8f9fa !important}.border-dark-start-5{border-left:5px solid #343a40 !important}.border-link-start-5{border-left:5px solid #3273dc !important}.cursor-pointer{cursor:pointer}.fs-xs{font-size:.75rem !important}.fs-sm{font-size:.925rem !important}.fs-md{font-size:1.125rem !important}.fs-lg{font-size:1.25rem !important}.fs-xl{font-size:1.5rem !important}.grid{display:grid;grid-template-rows:repeat(1,1fr);grid-template-columns:repeat(12,1fr);gap:1.5rem}.grid.g-rows-1{grid-template-rows:repeat(1,minmax(0,1fr))}.grid.g-rows-2{grid-template-rows:repeat(2,minmax(0,1fr))}.grid.g-rows-3{grid-template-rows:repeat(3,minmax(0,1fr))}.grid.g-rows-4{grid-template-rows:repeat(4,minmax(0,1fr))}.grid.g-rows-5{grid-template-rows:repeat(5,minmax(0,1fr))}.grid.g-rows-6{grid-template-rows:repeat(6,minmax(0,1fr))}.grid.g-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid.g-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.g-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.g-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid.g-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.grid.g-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.grid.g-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.grid.g-cols-8{grid-template-columns:repeat(8,minmax(0,1fr))}.grid.g-cols-9{grid-template-columns:repeat(9,minmax(0,1fr))}.grid.g-cols-10{grid-template-columns:repeat(10,minmax(0,1fr))}.grid.g-cols-11{grid-template-columns:repeat(11,minmax(0,1fr))}.grid.g-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.grid .g-col-1{grid-column:auto/span 1}.grid .g-col-2{grid-column:auto/span 2}.grid .g-col-3{grid-column:auto/span 3}.grid .g-col-4{grid-column:auto/span 4}.grid .g-col-5{grid-column:auto/span 5}.grid .g-col-6{grid-column:auto/span 6}.grid .g-col-7{grid-column:auto/span 7}.grid .g-col-8{grid-column:auto/span 8}.grid .g-col-9{grid-column:auto/span 9}.grid .g-col-10{grid-column:auto/span 10}.grid .g-col-11{grid-column:auto/span 11}.grid .g-col-12{grid-column:auto/span 12}@media(min-width:576px){.grid .g-col-sm-1{grid-column:auto/span 1}.grid .g-col-sm-2{grid-column:auto/span 2}.grid .g-col-sm-3{grid-column:auto/span 3}.grid .g-col-sm-4{grid-column:auto/span 4}.grid .g-col-sm-5{grid-column:auto/span 5}.grid .g-col-sm-6{grid-column:auto/span 6}.grid .g-col-sm-7{grid-column:auto/span 7}.grid .g-col-sm-8{grid-column:auto/span 8}.grid .g-col-sm-9{grid-column:auto/span 9}.grid .g-col-sm-10{grid-column:auto/span 10}.grid .g-col-sm-11{grid-column:auto/span 11}.grid .g-col-sm-12{grid-column:auto/span 12}}@media(min-width:768px){.grid .g-col-md-1{grid-column:auto/span 1}.grid .g-col-md-2{grid-column:auto/span 2}.grid .g-col-md-3{grid-column:auto/span 3}.grid .g-col-md-4{grid-column:auto/span 4}.grid .g-col-md-5{grid-column:auto/span 5}.grid .g-col-md-6{grid-column:auto/span 6}.grid .g-col-md-7{grid-column:auto/span 7}.grid .g-col-md-8{grid-column:auto/span 8}.grid .g-col-md-9{grid-column:auto/span 9}.grid .g-col-md-10{grid-column:auto/span 10}.grid .g-col-md-11{grid-column:auto/span 11}.grid .g-col-md-12{grid-column:auto/span 12}}@media(min-width:992px){.grid .g-col-lg-1{grid-column:auto/span 1}.grid .g-col-lg-2{grid-column:auto/span 2}.grid .g-col-lg-3{grid-column:auto/span 3}.grid .g-col-lg-4{grid-column:auto/span 4}.grid .g-col-lg-5{grid-column:auto/span 5}.grid .g-col-lg-6{grid-column:auto/span 6}.grid .g-col-lg-7{grid-column:auto/span 7}.grid .g-col-lg-8{grid-column:auto/span 8}.grid .g-col-lg-9{grid-column:auto/span 9}.grid .g-col-lg-10{grid-column:auto/span 10}.grid .g-col-lg-11{grid-column:auto/span 11}.grid .g-col-lg-12{grid-column:auto/span 12}}@media(min-width:1200px){.grid .g-col-xl-1{grid-column:auto/span 1}.grid .g-col-xl-2{grid-column:auto/span 2}.grid .g-col-xl-3{grid-column:auto/span 3}.grid .g-col-xl-4{grid-column:auto/span 4}.grid .g-col-xl-5{grid-column:auto/span 5}.grid .g-col-xl-6{grid-column:auto/span 6}.grid .g-col-xl-7{grid-column:auto/span 7}.grid .g-col-xl-8{grid-column:auto/span 8}.grid .g-col-xl-9{grid-column:auto/span 9}.grid .g-col-xl-10{grid-column:auto/span 10}.grid .g-col-xl-11{grid-column:auto/span 11}.grid .g-col-xl-12{grid-column:auto/span 12}}.flatpickr-months{margin:.5rem 0}.flatpickr-months .flatpickr-month,.flatpickr-months .flatpickr-next-month,.flatpickr-months .flatpickr-prev-month{height:auto;position:relative}.flatpickr-months .flatpickr-month:hover svg,.flatpickr-months .flatpickr-next-month:hover svg,.flatpickr-months .flatpickr-prev-month:hover svg{fill:#007bff}.flatpickr-months .flatpickr-month{color:#212529}.flatpickr-current-month{padding:13px 0 0 0;font-size:115%}.flatpickr-current-month span.cur-month{font-weight:700}.flatpickr-current-month span.cur-month:hover{background:rgba(0,123,255,.15)}.numInputWrapper:hover{background:rgba(0,123,255,.15)}.flatpickr-day{border-radius:.25rem;font-weight:500;color:#212529}.flatpickr-day.today{border-color:#007bff}.flatpickr-day.today:hover{background:#007bff;border-color:#007bff}.flatpickr-day:hover{background:rgba(0,123,255,.1);border-color:rgba(0,0,0,0)}span.flatpickr-weekday{color:#212529}.flatpickr-day.selected,.flatpickr-day.startRange,.flatpickr-day.endRange,.flatpickr-day.selected.inRange,.flatpickr-day.startRange.inRange,.flatpickr-day.endRange.inRange,.flatpickr-day.selected:focus,.flatpickr-day.startRange:focus,.flatpickr-day.endRange:focus,.flatpickr-day.selected:hover,.flatpickr-day.startRange:hover,.flatpickr-day.endRange:hover,.flatpickr-day.selected.prevMonthDay,.flatpickr-day.startRange.prevMonthDay,.flatpickr-day.endRange.prevMonthDay,.flatpickr-day.selected.nextMonthDay,.flatpickr-day.startRange.nextMonthDay,.flatpickr-day.endRange.nextMonthDay{background:#007bff;border-color:#007bff}.flatpickr-day.selected.startRange+.endRange:not(:nth-child(7n+1)),.flatpickr-day.startRange.startRange+.endRange:not(:nth-child(7n+1)),.flatpickr-day.endRange.startRange+.endRange:not(:nth-child(7n+1)){box-shadow:-10px 0 0 #007bff}.flatpickr-day.selected.startRange,.flatpickr-day.startRange.startRange,.flatpickr-day.endRange.startRange{border-radius:.25rem 0 0 .25rem}.flatpickr-day.selected.endRange,.flatpickr-day.startRange.endRange,.flatpickr-day.endRange.endRange{border-radius:0 .25rem .25rem 0}.flatpickr-monthSelect-month:hover,.flatpickr-monthSelect-month:focus{background:rgba(0,123,255,.1)}.flatpickr-monthSelect-month.selected{background-color:#007bff} -.snackbar{align-items:center;background-color:var(--b-snackbar-background,#323232);color:var(--b-snackbar-text-color,#fff);font-size:.875rem;line-height:1.428572;opacity:0;padding:.875rem 1.5rem;position:fixed;bottom:0;left:0;transform:translateY(100%);transition:opacity 0s var(--transition-duration-mobile-leaving,.195s),transform var(--transition-duration-mobile-leaving,.195s) cubic-bezier(.4,0,1,1);width:100%;z-index:60}@media(min-width:768px){.snackbar{border-radius:2px;max-width:35.5rem;min-width:18rem;left:50%;transform:translate(-50%,100%);width:auto}}@media(min-width:768px){.snackbar{transition:opacity 0s var(--transition-duration-tablet-leaving,.2535s),transform var(--transition-duration-tablet-leaving,.2535s) cubic-bezier(.4,0,1,1)}}@media(min-width:1200px){.snackbar{transition:opacity 0s var(--transition-duration-desktop-leaving,.13s),transform var(--transition-duration-desktop-leaving,.13s) cubic-bezier(.4,0,1,1)}}@media screen and (prefers-reduced-motion:reduce){.snackbar{transition:none}}.snackbar.snackbar-show{transition-duration:var(--transition-duration-mobile-entering,.225s);transition-property:transform;transition-timing-function:cubic-bezier(0,0,.2,1);opacity:1;transform:translateY(0)}@media(min-width:768px){.snackbar.snackbar-show{transition-duration:var(--transition-duration-tablet-entering,.2925s)}}@media(min-width:1200px){.snackbar.snackbar-show{transition-duration:var(--transition-duration-desktop-entering,.15s)}}@media screen and (prefers-reduced-motion:reduce){.snackbar.snackbar-show{transition:none}}@media(min-width:768px){.snackbar.snackbar-show{transform:translate(-50%,-1.5rem)}}.snackbar-header{display:flex;-ms-flex-pack:justify;justify-content:space-between;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background-color:DARKEN(var(--b-snackbar-background,#323232),30%);margin-right:auto;min-width:0;font-weight:bold;padding-bottom:.875rem}.snackbar-footer{display:flex;-ms-flex-pack:justify;justify-content:space-between;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background-color:DARKEN(var(--b-snackbar-background,#323232),30%);margin-right:auto;min-width:0;padding-top:.875rem}.snackbar-body{display:flex;-ms-flex-pack:justify;justify-content:space-between;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-right:auto;max-height:100%;min-width:0}.snackbar-action-button{transition-duration:var(--transition-duration-mobile,.3s);transition-property:background-color,background-image;transition-timing-function:cubic-bezier(.4,0,.2,1);background-color:transparent;background-image:none;border:0;color:var(--b-snackbar-button-color,var(--b-snackbar-button-color,#ff4081));cursor:pointer;display:block;flex-shrink:0;font-size:inherit;font-weight:500;line-height:inherit;padding:0;text-transform:uppercase;white-space:nowrap}@media(min-width:768px){.snackbar-action-button{transition-duration:var(--transition-duration-tablet,.39s)}}@media(min-width:1200px){.snackbar-action-button{transition-duration:var(--transition-duration-desktop,.2s)}}@media screen and (prefers-reduced-motion:reduce){.snackbar-action-button{transition:none}}.snackbar-action-button:focus,.snackbar-action-button:hover{color:var(--b-snackbar-button-hover-color,var(--b-snackbar-button-hover-color,#ff80ab));text-decoration:none}@media(min-width:768px){.snackbar-action-button{margin-left:3rem}}.snackbar-action-button:focus{outline:0}@media(min-width:768px){.snackbar-bottom-start,.snackbar-bottom-end{transform:translateY(100%)}.snackbar-bottom-start.snackbar-show,.snackbar-bottom-end.snackbar-show{transform:translateY(-1.5rem)}}@media(min-width:768px){.snackbar-bottom-start{left:1.5rem}}@media(min-width:768px){.snackbar-bottom-end{right:1.5rem;left:auto}}.snackbar-top{top:0;bottom:auto;transform:translateY(-100%)}@media(min-width:768px){.snackbar-top{transform:translateX(-50%) translateY(-100%)}.snackbar-top.snackbar-show{transform:translate(-50%,1.5rem)}}.snackbar-top-start{top:0;bottom:auto;transform:translateY(-100%);left:0}@media(min-width:768px){.snackbar-top-start{transform:translateY(-100%);left:1.5rem}.snackbar-top-start.snackbar-show{transform:translateY(1.5rem)}}.snackbar-top-end{top:0;bottom:auto;transform:translateY(-100%)}@media(min-width:768px){.snackbar-top-end{transform:translateY(-100%);right:1.5rem;left:auto}.snackbar-top-end.snackbar-show{transform:translateY(1.5rem)}}.snackbar-multi-line{padding-top:1.25rem;padding-bottom:1.25rem}.snackbar-multi-line .snackbar-body{white-space:normal}.snackbar-primary{background-color:var(--b-snackbar-background-primary,#cce5ff);color:var(--b-snackbar-text-primary,#004085)}.snackbar-action-button-primary{color:var(--b-snackbar-button-primary,#ff4081)}.snackbar-action-button-primary:focus,.snackbar-action-button-primary:hover{color:var(--b-snackbar-button-hover-primary,#ff80ab)}.snackbar-secondary{background-color:var(--b-snackbar-background-secondary,#e2e3e5);color:var(--b-snackbar-text-secondary,#383d41)}.snackbar-action-button-secondary{color:var(--b-snackbar-button-secondary,#ff4081)}.snackbar-action-button-secondary:focus,.snackbar-action-button-secondary:hover{color:var(--b-snackbar-button-hover-secondary,#ff80ab)}.snackbar-success{background-color:var(--b-snackbar-background-success,#d4edda);color:var(--b-snackbar-text-success,#155724)}.snackbar-action-button-success{color:var(--b-snackbar-button-success,#ff4081)}.snackbar-action-button-success:focus,.snackbar-action-button-success:hover{color:var(--b-snackbar-button-hover-success,#ff80ab)}.snackbar-danger{background-color:var(--b-snackbar-background-danger,#f8d7da);color:var(--b-snackbar-text-danger,#721c24)}.snackbar-action-button-danger{color:var(--b-snackbar-button-danger,#ff4081)}.snackbar-action-button-danger:focus,.snackbar-action-button-danger:hover{color:var(--b-snackbar-button-hover-danger,#ff80ab)}.snackbar-warning{background-color:var(--b-snackbar-background-warning,#fff3cd);color:var(--b-snackbar-text-warning,#856404)}.snackbar-action-button-warning{color:var(--b-snackbar-button-warning,#ff4081)}.snackbar-action-button-warning:focus,.snackbar-action-button-warning:hover{color:var(--b-snackbar-button-hover-warning,#ff80ab)}.snackbar-info{background-color:var(--b-snackbar-background-info,#d1ecf1);color:var(--b-snackbar-text-info,#0c5460)}.snackbar-action-button-info{color:var(--b-snackbar-button-info,#ff4081)}.snackbar-action-button-info:focus,.snackbar-action-button-info:hover{color:var(--b-snackbar-button-hover-info,#ff80ab)}.snackbar-light{background-color:var(--b-snackbar-background-light,#fefefe);color:var(--b-snackbar-text-light,#818182)}.snackbar-action-button-light{color:var(--b-snackbar-button-light,#ff4081)}.snackbar-action-button-light:focus,.snackbar-action-button-light:hover{color:var(--b-snackbar-button-hover-light,#ff80ab)}.snackbar-dark{background-color:var(--b-snackbar-background-dark,#d6d8d9);color:var(--b-snackbar-text-dark,#1b1e21)}.snackbar-action-button-dark{color:var(--b-snackbar-button-dark,#ff4081)}.snackbar-action-button-dark:focus,.snackbar-action-button-dark:hover{color:var(--b-snackbar-button-hover-dark,#ff80ab)}.snackbar-stack-bottom-end,.snackbar-stack-bottom-start,.snackbar-stack-bottom{display:flex;flex-direction:column;position:fixed;z-index:1090 !important;bottom:0}.snackbar-stack-bottom-end .snackbar,.snackbar-stack-bottom-start .snackbar,.snackbar-stack-bottom .snackbar{position:relative;flex-direction:row;margin-bottom:0}.snackbar-stack-bottom-end .snackbar:not(:last-child),.snackbar-stack-bottom-start .snackbar:not(:last-child),.snackbar-stack-bottom .snackbar:not(:last-child){margin-bottom:1.5rem}.snackbar-stack-top-end,.snackbar-stack-top-start,.snackbar-stack-top{display:flex;flex-direction:column;align-items:center;justify-content:center;align-content:center;position:fixed;z-index:1090 !important;top:0}.snackbar-stack-top-end .snackbar,.snackbar-stack-top-start .snackbar,.snackbar-stack-top .snackbar{position:relative;flex-direction:row;margin-bottom:0}.snackbar-stack-top-end .snackbar.snackbar-show,.snackbar-stack-top-start .snackbar.snackbar-show,.snackbar-stack-top .snackbar.snackbar-show{transform:translate(-50%)}.snackbar-stack-top-end .snackbar:not(:last-child),.snackbar-stack-top-start .snackbar:not(:last-child),.snackbar-stack-top .snackbar:not(:last-child){margin-bottom:1.5rem}.snackbar-stack-top .snackbar.snackbar-show,.snackbar-stack-top-start .snackbar.snackbar-show,.snackbar-stack-top-end .snackbar.snackbar-show{transition:all var(--stack-transition-duration,1000);animation:showTop var(--stack-animation-duration,500) forwards;opacity:1}.snackbar-stack-top .snackbar-hide,.snackbar-stack-top-start .snackbar-hide,.snackbar-stack-top-end .snackbar-hide{transition:all var(--stack-transition-duration,1000);animation:hideTop var(--stack-animation-duration,500) forwards;opacity:0}.snackbar-stack-bottom .snackbar.snackbar-show,.snackbar-stack-bottom-start .snackbar.snackbar-show,.snackbar-stack-bottom-end .snackbar.snackbar-show{transition:all var(--stack-transition-duration,1000);animation:showBottom var(--stack-animation-duration,500) forwards;opacity:1}.snackbar-stack-bottom .snackbar-hide,.snackbar-stack-bottom-start .snackbar-hide,.snackbar-stack-bottom-end .snackbar-hide{transition:all var(--stack-transition-duration,1000);animation:hideBottom var(--stack-animation-duration,500) forwards;opacity:0}@keyframes showTop{0%{max-height:0;padding:0;transform:translate(-50%) translateY(-50px);opacity:0}100%{max-height:150px;padding:.5rem 1rem;transform:translate(-50%) translateY(0);opacity:1}}@keyframes hideTop{0%{max-height:150px;padding:.5rem 1rem;transform:translate(-50%) translateY(0);opacity:1}100%{max-height:0;padding:0;transform:translate(-50%) translateY(-50px);opacity:0}}@keyframes showBottom{0%{max-height:0;padding:0;opacity:0;transform:translate(-50%) translateY(50px)}100%{max-height:150px;padding:.5rem 1rem;opacity:1;transform:translate(-50%) translateY(0)}}@keyframes hideBottom{0%{max-height:150px;transform:translate(-50%) translateY(0);padding:.5rem 1rem;opacity:1}100%{max-height:0;padding:0;transform:translate(-50%) translateY(50px);opacity:0}}@media(min-width:576px){.snackbar-stack-bottom{left:50%;transform:translate(-50%,0%);bottom:1.5rem}.snackbar-stack-bottom-start{left:1.5rem;bottom:1.5rem}.snackbar-stack-bottom-end{right:1.5rem;bottom:1.5rem}.snackbar-stack-top-start{left:1.5rem;top:1.5rem}.snackbar-stack-top-end{right:1.5rem;top:1.5rem}.snackbar-stack-top{left:50%;transform:translate(-50%,0%);top:1.5rem}} +.pickr{position:relative;overflow:visible;transform:translateY(0)}.pickr *{box-sizing:border-box;outline:0;border:0;-webkit-appearance:none}.pickr .pcr-button{position:relative;height:2em;width:2em;padding:.5em;cursor:pointer;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Roboto","Helvetica Neue",Arial,sans-serif;border-radius:.15em;background:url('data:image/svg+xml;utf8, ') no-repeat center;background-size:0;transition:all .3s}.pickr .pcr-button::before{position:absolute;content:"";top:0;left:0;width:100%;height:100%;background:url('data:image/svg+xml;utf8, ');background-size:.5em;border-radius:.15em;z-index:-1}.pickr .pcr-button::before{z-index:initial}.pickr .pcr-button::after{position:absolute;content:"";top:0;left:0;height:100%;width:100%;transition:background .3s;background:var(--pcr-color);border-radius:.15em}.pickr .pcr-button.clear{background-size:70%}.pickr .pcr-button.clear::before{opacity:0}.pickr .pcr-button.clear:focus{box-shadow:0 0 0 1px rgba(255,255,255,.85),0 0 0 3px var(--pcr-color)}.pickr .pcr-button.disabled{cursor:not-allowed}.pickr *,.pcr-app *{box-sizing:border-box;outline:0;border:0;-webkit-appearance:none}.pickr input:focus,.pickr input.pcr-active,.pickr button:focus,.pickr button.pcr-active,.pcr-app input:focus,.pcr-app input.pcr-active,.pcr-app button:focus,.pcr-app button.pcr-active{box-shadow:0 0 0 1px rgba(255,255,255,.85),0 0 0 3px var(--pcr-color)}.pickr .pcr-palette,.pickr .pcr-slider,.pcr-app .pcr-palette,.pcr-app .pcr-slider{transition:box-shadow .3s}.pickr .pcr-palette:focus,.pickr .pcr-slider:focus,.pcr-app .pcr-palette:focus,.pcr-app .pcr-slider:focus{box-shadow:0 0 0 1px rgba(255,255,255,.85),0 0 0 3px rgba(0,0,0,.25)}.pcr-app{position:fixed;display:flex;flex-direction:column;z-index:10000;border-radius:.1em;background:#fff;opacity:0;visibility:hidden;transition:opacity .3s,visibility 0s .3s;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Roboto","Helvetica Neue",Arial,sans-serif;box-shadow:0 .15em 1.5em 0 rgba(0,0,0,.1),0 0 1em 0 rgba(0,0,0,.03);left:0;top:0}.pcr-app.visible{transition:opacity .3s;visibility:visible;opacity:1}.pcr-app .pcr-swatches{display:flex;flex-wrap:wrap;margin-top:.75em}.pcr-app .pcr-swatches.pcr-last{margin:0}@supports(display:grid){.pcr-app .pcr-swatches{display:grid;align-items:center;grid-template-columns:repeat(auto-fit,1.75em)}}.pcr-app .pcr-swatches>button{font-size:1em;position:relative;width:calc(1.75em - 5px);height:calc(1.75em - 5px);border-radius:.15em;cursor:pointer;margin:2.5px;flex-shrink:0;justify-self:center;transition:all .15s;overflow:hidden;background:transparent;z-index:1}.pcr-app .pcr-swatches>button::before{position:absolute;content:"";top:0;left:0;width:100%;height:100%;background:url('data:image/svg+xml;utf8, ');background-size:6px;border-radius:.15em;z-index:-1}.pcr-app .pcr-swatches>button::after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:var(--pcr-color);border:1px solid rgba(0,0,0,.05);border-radius:.15em;box-sizing:border-box}.pcr-app .pcr-swatches>button:hover{filter:brightness(1.05)}.pcr-app .pcr-swatches>button:not(.pcr-active){box-shadow:none}.pcr-app .pcr-interaction{display:flex;flex-wrap:wrap;align-items:center;margin:0 -.2em 0 -.2em}.pcr-app .pcr-interaction>*{margin:0 .2em}.pcr-app .pcr-interaction input{letter-spacing:.07em;font-size:.75em;text-align:center;cursor:pointer;color:#75797e;background:#f1f3f4;border-radius:.15em;transition:all .15s;padding:.45em .5em;margin-top:.75em}.pcr-app .pcr-interaction input:hover{filter:brightness(.975)}.pcr-app .pcr-interaction input:focus{box-shadow:0 0 0 1px rgba(255,255,255,.85),0 0 0 3px rgba(66,133,244,.75)}.pcr-app .pcr-interaction .pcr-result{color:#75797e;text-align:left;flex:1 1 8em;min-width:8em;transition:all .2s;border-radius:.15em;background:#f1f3f4;cursor:text}.pcr-app .pcr-interaction .pcr-result::-moz-selection{background:#4285f4;color:#fff}.pcr-app .pcr-interaction .pcr-result::selection{background:#4285f4;color:#fff}.pcr-app .pcr-interaction .pcr-type.active{color:#fff;background:#4285f4}.pcr-app .pcr-interaction .pcr-save,.pcr-app .pcr-interaction .pcr-cancel,.pcr-app .pcr-interaction .pcr-clear{color:#fff;width:auto}.pcr-app .pcr-interaction .pcr-save,.pcr-app .pcr-interaction .pcr-cancel,.pcr-app .pcr-interaction .pcr-clear{color:#fff}.pcr-app .pcr-interaction .pcr-save:hover,.pcr-app .pcr-interaction .pcr-cancel:hover,.pcr-app .pcr-interaction .pcr-clear:hover{filter:brightness(.925)}.pcr-app .pcr-interaction .pcr-save{background:#4285f4}.pcr-app .pcr-interaction .pcr-clear,.pcr-app .pcr-interaction .pcr-cancel{background:#f44250}.pcr-app .pcr-interaction .pcr-clear:focus,.pcr-app .pcr-interaction .pcr-cancel:focus{box-shadow:0 0 0 1px rgba(255,255,255,.85),0 0 0 3px rgba(244,66,80,.75)}.pcr-app .pcr-selection .pcr-picker{position:absolute;height:18px;width:18px;border:2px solid #fff;border-radius:100%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.pcr-app .pcr-selection .pcr-color-palette,.pcr-app .pcr-selection .pcr-color-chooser,.pcr-app .pcr-selection .pcr-color-opacity{position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:flex;flex-direction:column;cursor:grab;cursor:-webkit-grab}.pcr-app .pcr-selection .pcr-color-palette:active,.pcr-app .pcr-selection .pcr-color-chooser:active,.pcr-app .pcr-selection .pcr-color-opacity:active{cursor:grabbing;cursor:-webkit-grabbing}.pcr-app[data-theme=monolith]{width:14.25em;max-width:95vw;padding:.8em}.pcr-app[data-theme=monolith] .pcr-selection{display:flex;flex-direction:column;justify-content:space-between;flex-grow:1}.pcr-app[data-theme=monolith] .pcr-selection .pcr-color-preview{position:relative;z-index:1;width:100%;height:1em;display:flex;flex-direction:row;justify-content:space-between;margin-bottom:.5em}.pcr-app[data-theme=monolith] .pcr-selection .pcr-color-preview::before{position:absolute;content:"";top:0;left:0;width:100%;height:100%;background:url('data:image/svg+xml;utf8, ');background-size:.5em;border-radius:.15em;z-index:-1}.pcr-app[data-theme=monolith] .pcr-selection .pcr-color-preview .pcr-last-color{cursor:pointer;transition:background-color .3s,box-shadow .3s;border-radius:.15em 0 0 .15em;z-index:2}.pcr-app[data-theme=monolith] .pcr-selection .pcr-color-preview .pcr-current-color{border-radius:0 .15em .15em 0}.pcr-app[data-theme=monolith] .pcr-selection .pcr-color-preview .pcr-last-color,.pcr-app[data-theme=monolith] .pcr-selection .pcr-color-preview .pcr-current-color{background:var(--pcr-color);width:50%;height:100%}.pcr-app[data-theme=monolith] .pcr-selection .pcr-color-palette{width:100%;height:8em;z-index:1}.pcr-app[data-theme=monolith] .pcr-selection .pcr-color-palette .pcr-palette{border-radius:.15em;width:100%;height:100%}.pcr-app[data-theme=monolith] .pcr-selection .pcr-color-palette .pcr-palette::before{position:absolute;content:"";top:0;left:0;width:100%;height:100%;background:url('data:image/svg+xml;utf8, ');background-size:.5em;border-radius:.15em;z-index:-1}.pcr-app[data-theme=monolith] .pcr-selection .pcr-color-chooser,.pcr-app[data-theme=monolith] .pcr-selection .pcr-color-opacity{height:.5em;margin-top:.75em}.pcr-app[data-theme=monolith] .pcr-selection .pcr-color-chooser .pcr-picker,.pcr-app[data-theme=monolith] .pcr-selection .pcr-color-opacity .pcr-picker{top:50%;transform:translateY(-50%)}.pcr-app[data-theme=monolith] .pcr-selection .pcr-color-chooser .pcr-slider,.pcr-app[data-theme=monolith] .pcr-selection .pcr-color-opacity .pcr-slider{flex-grow:1;border-radius:50em}.pcr-app[data-theme=monolith] .pcr-selection .pcr-color-chooser .pcr-slider{background:linear-gradient(to right,#f00,#ff0,#0f0,#0ff,#00f,#f0f,#f00)}.pcr-app[data-theme=monolith] .pcr-selection .pcr-color-opacity .pcr-slider{background:linear-gradient(to right,transparent,#000),url('data:image/svg+xml;utf8, ');background-size:100%,.25em} +@keyframes fadeIn{0%{opacity:0}100%{opacity:1}0%{opacity:0}}@keyframes slideIn{0%{transform:translateY(1rem);opacity:0}100%{transform:translateY(0);opacity:1}0%{transform:translateY(1rem);opacity:0}}.badge-close{cursor:pointer}.badge-close::before{height:2px;width:50%}.badge-close::after{height:50%;width:2px}.badge-close:hover,.badge-close:focus{background-color:rgba(10,10,10,.3)}.badge-close:active{background-color:rgba(10,10,10,.4)}.navbar-nav .nav-item:hover{cursor:pointer}.navbar-nav .nav-link:hover{cursor:pointer}.nav .nav-link:hover{cursor:pointer}.nav-item{position:relative}.b-bar-horizontal .nav-item.dropdown .dropdown-menu>.dropdown>.dropdown-item{width:100%}.b-bar-horizontal .nav-item.dropdown .dropdown-menu>.dropdown>.dropdown-item::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.b-bar-horizontal .nav-item.dropdown .dropdown-menu>.dropdown>.dropdown-item:empty::after{margin-left:0}.b-bar-horizontal .nav-item.dropdown .dropdown-menu>.dropdown>.dropdown-item::after{transform:rotate(-90deg);position:absolute;right:10%;top:45%}.b-bar-horizontal .nav-item.dropdown .dropdown-menu>.dropdown>.dropdown-menu{top:0;left:100%;margin-left:0;margin-right:.1rem}.btn-group>.b-tooltip:not(:last-child)>.btn{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.b-tooltip:not(:first-child)>.btn{border-top-left-radius:0;border-bottom-left-radius:0}.btn-group.btn-group-toggle .btn.active.disabled{opacity:1}.btn-group-vertical>.b-tooltip:not(:last-child)>.btn{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.b-tooltip:not(:first-child)>.btn{border-top-left-radius:0;border-top-right-radius:0}.btn-xs,.btn-group-xs>.btn{padding:.15rem .5rem;font-size:.75rem;line-height:1.5;border-radius:.15rem}.btn-md,.btn-group-md>.btn{padding:.47rem 1rem;font-size:1.125rem;line-height:1.5;border-radius:.25rem}.btn-xl,.btn-group-xl>.btn{padding:.5rem 1rem;font-size:1.5rem;line-height:1.5;border-radius:.4rem}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.5rem}input[type=submit].btn-block,input[type=reset].btn-block,input[type=button].btn-block{width:100%}.card-deck .card{height:100%;margin-bottom:.75rem}@media(min-width:576px){.card-deck{display:flex;flex-flow:row wrap;margin-right:-.75rem;margin-left:-.75rem}.card-deck .card{flex:1 0 0%;margin-right:.75rem;margin-bottom:0;margin-left:.75rem}}.table-fixed-header .table thead tr th.dropdown-table-fixed-header-visible{z-index:11}.dropdown-menu-position-strategy{width:max-content;top:0;left:0}.dropdown-menu-position-strategy-absolute{position:absolute}.dropdown-menu-position-strategy-fixed{position:fixed}.dropdown-toggle.dropdown-toggle-hidden::after{content:none!important}.dropdown-toggle.dropdown-toggle-hidden::before{content:none!important}.dropdown-menu.show{animation-duration:.3s;animation-fill-mode:both;animation-name:fadeIn}.dropdown-menu a:not([href]).dropdown-item:not(.disabled){cursor:pointer}.dropdown-menu.dropdown-menu-scrollable{max-height:var(--dropdown-list-menu-max-height,200px);overflow-y:scroll}.b-is-autocomplete .dropdown-menu{width:100%;max-height:var(--autocomplete-menu-max-height,200px);overflow-y:scroll}.b-is-autocomplete .dropdown-menu .dropdown-item.focus{color:#1e2125!important;background-color:#e9ecef}.b-is-autocomplete.b-is-autocomplete-multipleselection{display:flex;align-items:center;flex-wrap:wrap;max-width:100%;width:100%;cursor:text;min-height:calc(1.5em + .75rem + 2px);height:auto;border:1px solid #ced4da;border-radius:.25rem}.b-is-autocomplete.b-is-autocomplete-multipleselection>input.form-control{display:inline-block;border:0;box-shadow:none;outline:0;background-color:transparent;max-width:inherit;width:auto;flex-grow:1}.b-is-autocomplete.b-is-autocomplete-multipleselection>.badge{margin-top:.25rem;margin-bottom:.25rem;line-height:1.5;flex-grow:initial}.b-is-autocomplete.b-is-autocomplete-multipleselection .dropdown-menu{top:100%}.b-is-autocomplete.b-is-autocomplete-multipleselection.focus{color:#495057;background-color:#fff;border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.dropdown.btn-group>.btn.dropdown-toggle-split+.dropdown-menu.show{top:100%}.dropdown{position:relative}.dropdown .btn.dropdown-toggle:not(.btn-outline){box-shadow:none;border:0}.dropdown.dropdown-disabled.b-is-autocomplete{background-color:var(--b-theme-light,#e9ecef)}.dropdown>.dropdown-menu>.dropdown:not(.dropup,.dropstart,.dropend){position:relative}.dropdown>.dropdown-menu>.dropdown:not(.dropup,.dropstart,.dropend)>.dropdown-toggle{width:100%}.dropdown>.dropdown-menu>.dropdown:not(.dropup,.dropstart,.dropend)>.dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown>.dropdown-menu>.dropdown:not(.dropup,.dropstart,.dropend)>.dropdown-toggle:empty::after{margin-left:0}.dropdown>.dropdown-menu>.dropdown:not(.dropup,.dropstart,.dropend)>.dropdown-toggle::after{position:absolute;right:10%;top:45%}.dropdown>.dropdown-menu>.dropdown:not(.dropup,.dropstart,.dropend)>.dropdown-menu{top:auto;left:auto;bottom:auto;right:auto}.dropdown>.dropdown-menu>.dropdown.dropup .dropdown-toggle::after,.dropdown>.dropdown-menu>.dropdown.dropend .dropdown-toggle::after{vertical-align:0;position:absolute;right:10%;top:45%}.dropdown>.dropdown-menu>.dropdown.dropstart .dropdown-toggle::after{vertical-align:0}.dropdown.dropup>.dropdown-menu{top:auto;bottom:auto;margin-top:0;margin-bottom:.125rem}.dropdown.dropup>.dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropdown.dropup>.dropdown-toggle:empty::after{margin-left:0}.dropdown.dropend>.dropdown-menu{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropdown.dropend>.dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropdown.dropend>.dropdown-toggle:empty::after{margin-left:0}.dropdown.dropend>.dropdown-toggle::after{vertical-align:0}.dropdown.dropstart>.dropdown-menu{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropdown.dropstart>.dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:""}.dropdown.dropstart>.dropdown-toggle::after{display:none}.dropdown.dropstart>.dropdown-toggle::before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropdown.dropstart>.dropdown-toggle:empty::after{margin-left:0}.dropdown.dropstart>.dropdown-toggle::before{vertical-align:0}.dropdown-menu-start{right:auto;left:0}.dropdown-menu-end{right:0;left:auto}@media(min-width:576px){.dropdown-menu-sm-start{right:auto;left:0}.dropdown-menu-sm-end{right:0;left:auto}}@media(min-width:768px){.dropdown-menu-md-start{right:auto;left:0}.dropdown-menu-md-end{right:0;left:auto}}@media(min-width:992px){.dropdown-menu-lg-start{right:auto;left:0}.dropdown-menu-lg-end{right:0;left:auto}}@media(min-width:1200px){.dropdown-menu-xl-start{right:auto;left:0}.dropdown-menu-xl-end{right:0;left:auto}}hr.divider.divider-text{position:unset}hr.divider.divider-text::before{top:unset}.snackbar-stack{z-index:1059!important}.snackbar{z-index:1060!important}.figure.figure-is-16x16{height:16px;width:16px}.figure.figure-is-24x24{height:24px;width:24px}.figure.figure-is-32x32{height:32px;width:32px}.figure.figure-is-48x48{height:48px;width:48px}.figure.figure-is-64x64{height:64px;width:64px}.figure.figure-is-96x96{height:96px;width:96px}.figure.figure-is-128x128{height:128px;width:128px}.figure.figure-is-256x256{height:256px;width:256px}.figure.figure-is-512x512{height:512px;width:512px}.form-check>.form-check-input.form-check-input-pointer,.form-check>.form-check-label.form-check-label-pointer,.form-switch>.form-check-input.form-check-input-pointer,.form-switch>.form-check-label.form-check-label-pointer{cursor:pointer}.form-control-plaintext.form-control-xs,.form-control-plaintext.form-control-md,.form-control-plaintext.form-control-xl{padding-right:0;padding-left:0}.form-control-xs{height:calc(1.5em + .3rem + 2px);padding:.15rem .5rem;font-size:.75rem;line-height:1.5;border-radius:.15rem}.form-control-md{height:calc(1.5em + .94rem + 2px);padding:.47rem 1rem;font-size:1.125rem;line-height:1.5;border-radius:.25rem}.form-control-xl{height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.5rem;line-height:1.5;border-radius:.4rem}.form-select-xs{height:calc(1.5em + .3rem + 2px);padding-top:.15rem;padding-bottom:.15rem;padding-left:.5rem;font-size:.75rem}.form-select-md{height:calc(1.5em + .94rem + 2px);padding-top:.47rem;padding-bottom:.47rem;padding-left:1rem;font-size:1.125rem}.form-select-xl{height:calc(1.5em + 1rem + 2px);padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.5rem}.input-group>.b-numeric:not(:last-child)>input,.input-group>div.flatpickr-wrapper:not(:last-child)>input{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.b-numeric:not(:first-child)>input,.input-group>div.flatpickr-wrapper:not(:first-child)>input{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-xs>.form-control:not(textarea),.input-group-xs>.form-select,.input-group-xs>.b-numeric>input{height:calc(1.5em + .3rem + 2px)}.input-group-xs>.form-control,.input-group-xs>.form-select,.input-group-xs>.input-group-text,.input-group-xs>.btn,.input-group-xs>.b-numeric>input{padding:.15rem .5rem;font-size:.75rem;line-height:1.5;border-radius:.15rem}.input-group-sm>.b-numeric>input{height:calc(1.5em + .5rem + 2px)}.input-group-sm>.b-numeric>input{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.input-group-md>.form-control:not(textarea),.input-group-md>.form-select,.input-group-md>.b-numeric>input{height:calc(1.5em + .94rem + 2px)}.input-group-md>.form-control,.input-group-md>.form-select,.input-group-md>.input-group-text,.input-group-md>.btn,.input-group-md>.b-numeric>input{padding:.47rem 1rem;font-size:1.125rem;line-height:1.5;border-radius:.25rem}.input-group-lg>.b-numeric>input{height:calc(1.5em + 1rem + 2px)}.input-group-lg>.b-numeric>input{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.input-group-xl>.form-control:not(textarea),.input-group-xl>.form-select,.input-group-xl>.b-numeric>input{height:calc(1.5em + 1rem + 2px)}.input-group-xl>.form-control,.input-group-xl>.form-select,.input-group-xl>.input-group-text,.input-group-xl>.btn,.input-group-xl>.b-numeric>input{padding:.5rem 1rem;font-size:1.5rem;line-height:1.5;border-radius:.4rem}.input-group-xs>.form-select,.input-group-md>.form-select,.input-group-xl>.form-select{padding-right:1.75rem}.input-group:not(.has-validation)>.dropdown:first-child>.btn:not(:last-child).dropdown-toggle{border-top-right-radius:0;border-bottom-right-radius:0}.input-group.has-validation>.dropdown>.btn:not(:last-child).dropdown-toggle,.input-group.has-validation>.dropdown>.btn:not(:last-child):not(.dropdown-toggle){border-top-left-radius:0;border-bottom-left-radius:0}.input-group>div.flatpickr-wrapper>.form-control{position:relative;flex:1 1 auto;width:1%;min-width:0}.form-check>.form-check-input.form-check-input-xs{width:.7rem;height:.7rem}.form-check>.form-check-input.form-check-input-xs+.form-check-label{line-height:"normal";padding-left:0}.form-check>.form-check-input.form-check-input-sm{width:.8rem;height:.8rem}.form-check>.form-check-input.form-check-input-sm+.form-check-label{line-height:"normal";padding-left:0}.form-check>.form-check-input.form-check-input-md{width:1.25rem;height:1.25rem}.form-check>.form-check-input.form-check-input-md+.form-check-label{line-height:1.7rem;padding-left:3px}.form-check>.form-check-input.form-check-input-lg{width:1.55rem;height:1.55rem}.form-check>.form-check-input.form-check-input-lg+.form-check-label{line-height:2rem;padding-left:6px}.form-check>.form-check-input.form-check-input-xl{width:1.85rem;height:1.85rem}.form-check>.form-check-input.form-check-input-xl+.form-check-label{line-height:2.5rem;padding-left:10px}select[readonly]{pointer-events:none}select[readonly] option,select[readonly] optgroup{display:none}.b-numeric{position:relative;width:100%}.b-numeric:hover>.b-numeric-handler-wrap{opacity:1}.b-numeric input:disabled+.b-numeric-handler-wrap,.b-numeric input:read-only+.b-numeric-handler-wrap{display:none}.b-numeric-handler-wrap{position:absolute;top:0;right:0;width:22px;height:100%;background:#fff;border:1px solid #d9d9d9;opacity:0}.input-group .b-numeric{-ms-flex:1 1 auto;flex:1 1 auto;width:1%}.b-numeric-handler-wrap .b-numeric-handler.b-numeric-handler-down{border-top:1px solid #d9d9d9}.b-numeric-handler{position:relative;display:flex;width:100%;height:50%;overflow:hidden;color:rgba(0,0,0,.45);font-weight:700;line-height:0;align-items:center;justify-content:center}.b-numeric-handler.btn{padding:0}.form-control+.b-numeric-handler-wrap{font-size:1rem;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.form-control-xs+.b-numeric-handler-wrap{font-size:.75rem;border-top-right-radius:.15rem;border-bottom-right-radius:.15rem}.form-control-xs+.b-numeric-handler-wrap>.b-numeric-handler.btn{font-size:.75rem}.form-control-sm+.b-numeric-handler-wrap{font-size:.875rem;border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.form-control-sm+.b-numeric-handler-wrap>.b-numeric-handler.btn{font-size:.875rem}.form-control-md+.b-numeric-handler-wrap{font-size:1.125rem;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.form-control-md+.b-numeric-handler-wrap>.b-numeric-handler.btn{font-size:1.125rem}.form-control-lg+.b-numeric-handler-wrap{font-size:1.25rem;border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.form-control-lg+.b-numeric-handler-wrap>.b-numeric-handler.btn{font-size:1.25rem}.form-control-xl+.b-numeric-handler-wrap{font-size:1.5rem;border-top-right-radius:.4rem;border-bottom-right-radius:.4rem}.form-control-xl+.b-numeric-handler-wrap>.b-numeric-handler.btn{font-size:1.5rem}.custom-file-label{overflow:hidden}input[readonly][type=range],input[readonly=readonly][type=range]{pointer-events:none}input[readonly][type=range]::-webkit-slider-thumb,input[readonly=readonly][type=range]::-webkit-slider-thumb{pointer-events:none}input[readonly][type=range]::-moz-range-thumb,input[readonly=readonly][type=range]::-moz-range-thumb{pointer-events:none}input[readonly][type=range]::-ms-thumb,input[readonly=readonly][type=range]::-ms-thumb{pointer-events:none}.form-group{margin-bottom:1rem}.form-inline{display:flex;flex-flow:row wrap;align-items:center}.form-inline .form-check{width:100%}@media(min-width:576px){.form-inline label{display:flex;align-items:center;justify-content:center;margin-bottom:0}.form-inline .form-group{display:flex;flex:0 0 auto;flex-flow:row wrap;align-items:center;margin-bottom:0}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-plaintext{display:inline-block}.form-inline .input-group,.form-inline .custom-select{width:auto}.form-inline .form-check{display:flex;align-items:center;justify-content:center;width:auto;padding-left:0}.form-inline .form-check-input{position:relative;flex-shrink:0;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline .form-select{align-items:center;justify-content:center}.form-inline .form-check-label{margin-bottom:0}}.b-input-color-picker{padding:.5rem .6rem}.b-input-color-picker>.b-input-color-picker-preview{height:.55rem}.focus-trap{display:contents}.form-file input[type=file]{margin-left:-2px!important}.form-file input[type=file]::-webkit-file-upload-button{display:none}.form-file input[type=file]::file-selector-button{display:none}.form-label-required:after{content:" *";color:var(--b-theme-danger,#dc3545)}.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#e9ecef;border-radius:.3rem}@media(min-width:576px){.jumbotron{padding:4rem 2rem}}.jumbotron-fluid{padding-right:0;padding-left:0;border-radius:0}.jumbotron.jumbotron-primary{background-color:#007bff;color:#fff}.jumbotron.jumbotron-secondary{background-color:#6c757d;color:#fff}.jumbotron.jumbotron-success{background-color:#28a745;color:#fff}.jumbotron.jumbotron-info{background-color:#17a2b8;color:#fff}.jumbotron.jumbotron-warning{background-color:#ffc107;color:#212529}.jumbotron.jumbotron-danger{background-color:#dc3545;color:#fff}.jumbotron.jumbotron-light{background-color:#f8f9fa;color:#212529}.jumbotron.jumbotron-dark{background-color:#343a40;color:#fff}.jumbotron.jumbotron-link{background-color:#3273dc;color:#fff}.b-layout-header-fixed{z-index:1030}.b-layout-footer-fixed{z-index:1030}.b-layout-sider-content{z-index:1031}li.list-group-item-action{cursor:pointer}.list-group-scrollable{overflow-y:scroll}.media{display:flex;align-items:flex-start}.media-body{flex:1}.modal.fade{transition:opacity var(--modal-animation-duration,300ms) linear}.modal.fade .modal-dialog{transition:-webkit-transform var(--modal-animation-duration,300ms) ease-out;transition:transform var(--modal-animation-duration,300ms) ease-out}.offcanvas-footer{position:sticky;bottom:0;top:auto;display:flex;align-items:center;justify-content:space-between;padding:var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x)}.page-item:not(.disabled) .page-link{cursor:pointer}.pagination-xs .page-link{padding:.125rem .25rem;font-size:.75rem;line-height:1.5}.pagination-xs .page-item:first-child .page-link{border-top-left-radius:.15rem;border-bottom-left-radius:.15rem}.pagination-xs .page-item:last-child .page-link{border-top-right-radius:.15rem;border-bottom-right-radius:.15rem}.pagination-md .page-link{padding:.625rem 1.25rem;font-size:1.125rem;line-height:1.5}.pagination-md .page-item:first-child .page-link{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.pagination-md .page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.pagination-xl .page-link{padding:1rem 2rem;font-size:1.5rem;line-height:1.5}.pagination-xl .page-item:first-child .page-link{border-top-left-radius:.4rem;border-bottom-left-radius:.4rem}.pagination-xl .page-item:last-child .page-link{border-top-right-radius:.4rem;border-bottom-right-radius:.4rem}.b-page-progress .b-page-progress-indicator.b-page-progress-indicator-primary{background-color:#007bff}.b-page-progress .b-page-progress-indicator.b-page-progress-indicator-secondary{background-color:#6c757d}.b-page-progress .b-page-progress-indicator.b-page-progress-indicator-success{background-color:#28a745}.b-page-progress .b-page-progress-indicator.b-page-progress-indicator-info{background-color:#17a2b8}.b-page-progress .b-page-progress-indicator.b-page-progress-indicator-warning{background-color:#ffc107}.b-page-progress .b-page-progress-indicator.b-page-progress-indicator-danger{background-color:#dc3545}.b-page-progress .b-page-progress-indicator.b-page-progress-indicator-light{background-color:#f8f9fa}.b-page-progress .b-page-progress-indicator.b-page-progress-indicator-dark{background-color:#343a40}.b-page-progress .b-page-progress-indicator.b-page-progress-indicator-link{background-color:#3273dc}.rating:not(.rating-disabled):not(.rating-readonly):hover .rating-item{cursor:pointer}.rating.rating-disabled{opacity:.65}.rating .rating-item.rating-item-primary{color:#007bff}.rating .rating-item.rating-item-secondary{color:#6c757d}.rating .rating-item.rating-item-success{color:#28a745}.rating .rating-item.rating-item-info{color:#17a2b8}.rating .rating-item.rating-item-warning{color:#ffc107}.rating .rating-item.rating-item-danger{color:#dc3545}.rating .rating-item.rating-item-light{color:#f8f9fa}.rating .rating-item.rating-item-dark{color:#343a40}.rating .rating-item.rating-item-link{color:#3273dc}.rating .rating-item.rating-item-hover{opacity:.7}.gap-y-0{row-gap:0!important}.gap-x-0{column-gap:0!important}.gap-y-1{row-gap:.25rem!important}.gap-x-1{column-gap:.25rem!important}.gap-y-2{row-gap:.5rem!important}.gap-x-2{column-gap:.5rem!important}.gap-y-3{row-gap:1rem!important}.gap-x-3{column-gap:1rem!important}.gap-y-4{row-gap:1.5rem!important}.gap-x-4{column-gap:1.5rem!important}.gap-y-5{row-gap:3rem!important}.gap-x-5{column-gap:3rem!important}.steps{padding:0;margin:0;list-style:none;display:flex;overflow-x:auto}.steps .step:first-child{margin-left:auto}.steps .step:last-child{margin-right:auto}.step:first-of-type .step-circle::before{display:none}.step:last-of-type .step-container{padding-right:0}.step-container{box-sizing:content-box;display:flex;align-items:center;flex-direction:column;width:5rem;min-width:5rem;max-width:5rem;padding-top:.5rem;padding-right:1rem}.step-circle{position:relative;display:flex;justify-content:center;align-items:center;width:1.5rem;height:1.5rem;color:#adb5bd;border:2px solid #adb5bd;border-radius:100%;background-color:#fff}.step-circle::before{content:"";display:block;position:absolute;top:50%;left:-2px;width:calc(5rem + 1rem - 1.5rem);height:2px;transform:translate(-100%,-50%);color:#adb5bd;background-color:currentColor}.step-text{color:#adb5bd;word-break:keep-all;text-align:center;margin-top:.25em}.step-completed .step-circle{color:#fff;background-color:#28a745;border-color:#28a745}.step-completed .step-circle::before{color:#28a745}.step-completed .step-text{color:#28a745}.step-active .step-circle{color:#fff;background-color:#007bff;border-color:#007bff}.step-active .step-circle::before{color:#007bff}.step-active .step-text{color:#007bff}.step-primary .step-circle{color:#007bff;border-color:#007bff}.step-primary.step-completed .step-circle{color:#fff;background-color:#007bff;border-color:#007bff}.step-primary.step-completed .step-circle::before{color:#007bff}.step-primary.step-completed .step-text{color:#007bff}.step-primary.step-active .step-circle{color:#fff;background-color:#007bff;border-color:#007bff}.step-primary.step-active::before{color:#007bff}.step-primary.step-active .step-text{color:#007bff}.step-secondary .step-circle{color:#6c757d;border-color:#6c757d}.step-secondary.step-completed .step-circle{color:#fff;background-color:#6c757d;border-color:#6c757d}.step-secondary.step-completed .step-circle::before{color:#6c757d}.step-secondary.step-completed .step-text{color:#6c757d}.step-secondary.step-active .step-circle{color:#fff;background-color:#007bff;border-color:#007bff}.step-secondary.step-active::before{color:#007bff}.step-secondary.step-active .step-text{color:#007bff}.step-success .step-circle{color:#28a745;border-color:#28a745}.step-success.step-completed .step-circle{color:#fff;background-color:#28a745;border-color:#28a745}.step-success.step-completed .step-circle::before{color:#28a745}.step-success.step-completed .step-text{color:#28a745}.step-success.step-active .step-circle{color:#fff;background-color:#007bff;border-color:#007bff}.step-success.step-active::before{color:#007bff}.step-success.step-active .step-text{color:#007bff}.step-info .step-circle{color:#17a2b8;border-color:#17a2b8}.step-info.step-completed .step-circle{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.step-info.step-completed .step-circle::before{color:#17a2b8}.step-info.step-completed .step-text{color:#17a2b8}.step-info.step-active .step-circle{color:#fff;background-color:#007bff;border-color:#007bff}.step-info.step-active::before{color:#007bff}.step-info.step-active .step-text{color:#007bff}.step-warning .step-circle{color:#ffc107;border-color:#ffc107}.step-warning.step-completed .step-circle{color:#fff;background-color:#ffc107;border-color:#ffc107}.step-warning.step-completed .step-circle::before{color:#ffc107}.step-warning.step-completed .step-text{color:#ffc107}.step-warning.step-active .step-circle{color:#fff;background-color:#007bff;border-color:#007bff}.step-warning.step-active::before{color:#007bff}.step-warning.step-active .step-text{color:#007bff}.step-danger .step-circle{color:#dc3545;border-color:#dc3545}.step-danger.step-completed .step-circle{color:#fff;background-color:#dc3545;border-color:#dc3545}.step-danger.step-completed .step-circle::before{color:#dc3545}.step-danger.step-completed .step-text{color:#dc3545}.step-danger.step-active .step-circle{color:#fff;background-color:#007bff;border-color:#007bff}.step-danger.step-active::before{color:#007bff}.step-danger.step-active .step-text{color:#007bff}.step-light .step-circle{color:#f8f9fa;border-color:#f8f9fa}.step-light.step-completed .step-circle{color:#fff;background-color:#f8f9fa;border-color:#f8f9fa}.step-light.step-completed .step-circle::before{color:#f8f9fa}.step-light.step-completed .step-text{color:#f8f9fa}.step-light.step-active .step-circle{color:#fff;background-color:#007bff;border-color:#007bff}.step-light.step-active::before{color:#007bff}.step-light.step-active .step-text{color:#007bff}.step-dark .step-circle{color:#343a40;border-color:#343a40}.step-dark.step-completed .step-circle{color:#fff;background-color:#343a40;border-color:#343a40}.step-dark.step-completed .step-circle::before{color:#343a40}.step-dark.step-completed .step-text{color:#343a40}.step-dark.step-active .step-circle{color:#fff;background-color:#007bff;border-color:#007bff}.step-dark.step-active::before{color:#007bff}.step-dark.step-active .step-text{color:#007bff}.step-link .step-circle{color:#3273dc;border-color:#3273dc}.step-link.step-completed .step-circle{color:#fff;background-color:#3273dc;border-color:#3273dc}.step-link.step-completed .step-circle::before{color:#3273dc}.step-link.step-completed .step-text{color:#3273dc}.step-link.step-active .step-circle{color:#fff;background-color:#007bff;border-color:#007bff}.step-link.step-active::before{color:#007bff}.step-link.step-active .step-text{color:#007bff}.steps-content{margin:1rem 0}.steps-content>.step-panel{display:none}.steps-content>.active{display:block}.form-check.form-switch .form-check-input.form-check-input-primary:checked{background-color:#007bff;border-color:#007bff}.form-check.form-switch .form-check-input.form-check-input-secondary:checked{background-color:#6c757d;border-color:#6c757d}.form-check.form-switch .form-check-input.form-check-input-success:checked{background-color:#28a745;border-color:#28a745}.form-check.form-switch .form-check-input.form-check-input-info:checked{background-color:#17a2b8;border-color:#17a2b8}.form-check.form-switch .form-check-input.form-check-input-warning:checked{background-color:#ffc107;border-color:#ffc107}.form-check.form-switch .form-check-input.form-check-input-danger:checked{background-color:#dc3545;border-color:#dc3545}.form-check.form-switch .form-check-input.form-check-input-light:checked{background-color:#f8f9fa;border-color:#f8f9fa}.form-check.form-switch .form-check-input.form-check-input-dark:checked{background-color:#343a40;border-color:#343a40}.form-check.form-switch .form-check-input.form-check-input-link:checked{background-color:#3273dc;border-color:#3273dc}.form-check.form-switch .form-check-input.form-check-input-xs{width:calc(.75rem + (.5rem/2));height:.5rem;margin-left:-2.5em}.form-check.form-switch .form-check-input.form-check-input-xs+.form-check-label{line-height:1rem;vertical-align:middle;padding-left:0}.form-check.form-switch .form-check-input.form-check-input-xs:checked~.form-check-label::after{transform:translateX(calc(.75rem - (.5rem/2)))}.form-check.form-switch .form-check-input.form-check-input-sm{width:calc(1rem + (.75rem/2));height:.75rem;margin-left:-2.5em}.form-check.form-switch .form-check-input.form-check-input-sm+.form-check-label{line-height:1.25rem;vertical-align:middle;padding-left:.75rem}.form-check.form-switch .form-check-input.form-check-input-sm:checked~.form-check-label::after{transform:translateX(calc(1rem - (.75rem/2)))}.form-check.form-switch .form-check-input.form-check-input-md{width:calc(2rem + (1.5rem/2));height:1.5rem;margin-left:-2.5em}.form-check.form-switch .form-check-input.form-check-input-md+.form-check-label{line-height:2rem;vertical-align:middle;padding-left:.75rem}.form-check.form-switch .form-check-input.form-check-input-md:checked~.form-check-label::after{transform:translateX(calc(2rem - (1.5rem/2)))}.form-check.form-switch .form-check-input.form-check-input-lg{width:calc(3rem + (2rem/2));height:2rem;margin-left:-2.5em}.form-check.form-switch .form-check-input.form-check-input-lg+.form-check-label{line-height:2.5rem;vertical-align:middle;padding-left:.75rem}.form-check.form-switch .form-check-input.form-check-input-lg:checked~.form-check-label::after{transform:translateX(calc(3rem - (2rem/2)))}.form-check.form-switch .form-check-input.form-check-input-xl{width:calc(4rem + (2.5rem/2));height:2.5rem;margin-left:-2.5em}.form-check.form-switch .form-check-input.form-check-input-xl+.form-check-label{line-height:3rem;vertical-align:middle;padding-left:.75rem}.form-check.form-switch .form-check-input.form-check-input-xl:checked~.form-check-label::after{transform:translateX(calc(4rem - (2.5rem/2)))}table.table tbody tr:not(.table-group).selected{background-color:var(--bs-primary)}table.table tbody tr.table-group{cursor:pointer;background-color:var(--b-theme-light,var(--bs-light,#f5f5f5));font-weight:700}tr.table-row-selectable:hover{cursor:pointer}tr.table-row-selectable:focus[tabindex="0"]{outline:0}.table-fixed-header{overflow-y:auto}.table-fixed-header>.table{border-collapse:separate;border-spacing:0}.table-fixed-header>.table>thead:not(.table-thead-theme)>tr>th{background:#fff}.table-fixed-header>.table>thead>tr>th{border-top:0;position:sticky;z-index:10}.table-fixed-header>.table>thead>tr:nth-child(1)>th{top:0}.table-fixed-header>.table-bordered>:not(caption)>*>*{border-width:1px 1px}.overflow-auto-auto{overflow:auto auto!important}.overflow-auto-hidden{overflow:auto hidden!important}.overflow-auto-visible{overflow:auto visible!important}.overflow-auto-scroll{overflow:auto scroll!important}.overflow-hidden-auto{overflow:hidden auto!important}.overflow-hidden-hidden{overflow:hidden hidden!important}.overflow-hidden-visible{overflow:hidden visible!important}.overflow-hidden-scroll{overflow:hidden scroll!important}.overflow-visible-auto{overflow:visible auto!important}.overflow-visible-hidden{overflow:visible hidden!important}.overflow-visible-visible{overflow:visible visible!important}.overflow-visible-scroll{overflow:visible scroll!important}.overflow-scroll-auto{overflow:scroll auto!important}.overflow-scroll-hidden{overflow:scroll hidden!important}.overflow-scroll-visible{overflow:scroll visible!important}.overflow-scroll-scroll{overflow:scroll scroll!important}ol.ordered-list-lower-alpha{list-style-type:lower-alpha}ol.ordered-list-lower-roman{list-style-type:lower-roman}ol.ordered-list-upper-alpha{list-style-type:upper-alpha}ol.ordered-list-upper-roman{list-style-type:upper-roman}.border-1{border:1px solid #dee2e6!important}.border-1.border-primary{border-color:#007bff!important}.border-1.border-secondary{border-color:#6c757d!important}.border-1.border-success{border-color:#28a745!important}.border-1.border-info{border-color:#17a2b8!important}.border-1.border-warning{border-color:#ffc107!important}.border-1.border-danger{border-color:#dc3545!important}.border-1.border-light{border-color:#f8f9fa!important}.border-1.border-dark{border-color:#343a40!important}.border-1.border-link{border-color:#3273dc!important}.border-primary-1{border:1px solid #007bff!important}.border-secondary-1{border:1px solid #6c757d!important}.border-success-1{border:1px solid #28a745!important}.border-info-1{border:1px solid #17a2b8!important}.border-warning-1{border:1px solid #ffc107!important}.border-danger-1{border:1px solid #dc3545!important}.border-light-1{border:1px solid #f8f9fa!important}.border-dark-1{border:1px solid #343a40!important}.border-link-1{border:1px solid #3273dc!important}.border-top-1{border-top:1px solid #dee2e6!important}.border-primary-top-1{border-top:1px solid #007bff!important}.border-secondary-top-1{border-top:1px solid #6c757d!important}.border-success-top-1{border-top:1px solid #28a745!important}.border-info-top-1{border-top:1px solid #17a2b8!important}.border-warning-top-1{border-top:1px solid #ffc107!important}.border-danger-top-1{border-top:1px solid #dc3545!important}.border-light-top-1{border-top:1px solid #f8f9fa!important}.border-dark-top-1{border-top:1px solid #343a40!important}.border-link-top-1{border-top:1px solid #3273dc!important}.border-end-1{border-right:1px solid #dee2e6!important}.border-primary-end-1{border-right:1px solid #007bff!important}.border-secondary-end-1{border-right:1px solid #6c757d!important}.border-success-end-1{border-right:1px solid #28a745!important}.border-info-end-1{border-right:1px solid #17a2b8!important}.border-warning-end-1{border-right:1px solid #ffc107!important}.border-danger-end-1{border-right:1px solid #dc3545!important}.border-light-end-1{border-right:1px solid #f8f9fa!important}.border-dark-end-1{border-right:1px solid #343a40!important}.border-link-end-1{border-right:1px solid #3273dc!important}.border-bottom-1{border-bottom:1px solid #dee2e6!important}.border-primary-bottom-1{border-bottom:1px solid #007bff!important}.border-secondary-bottom-1{border-bottom:1px solid #6c757d!important}.border-success-bottom-1{border-bottom:1px solid #28a745!important}.border-info-bottom-1{border-bottom:1px solid #17a2b8!important}.border-warning-bottom-1{border-bottom:1px solid #ffc107!important}.border-danger-bottom-1{border-bottom:1px solid #dc3545!important}.border-light-bottom-1{border-bottom:1px solid #f8f9fa!important}.border-dark-bottom-1{border-bottom:1px solid #343a40!important}.border-link-bottom-1{border-bottom:1px solid #3273dc!important}.border-start-1{border-left:1px solid #dee2e6!important}.border-primary-start-1{border-left:1px solid #007bff!important}.border-secondary-start-1{border-left:1px solid #6c757d!important}.border-success-start-1{border-left:1px solid #28a745!important}.border-info-start-1{border-left:1px solid #17a2b8!important}.border-warning-start-1{border-left:1px solid #ffc107!important}.border-danger-start-1{border-left:1px solid #dc3545!important}.border-light-start-1{border-left:1px solid #f8f9fa!important}.border-dark-start-1{border-left:1px solid #343a40!important}.border-link-start-1{border-left:1px solid #3273dc!important}.border-2{border:2px solid #dee2e6!important}.border-2.border-primary{border-color:#007bff!important}.border-2.border-secondary{border-color:#6c757d!important}.border-2.border-success{border-color:#28a745!important}.border-2.border-info{border-color:#17a2b8!important}.border-2.border-warning{border-color:#ffc107!important}.border-2.border-danger{border-color:#dc3545!important}.border-2.border-light{border-color:#f8f9fa!important}.border-2.border-dark{border-color:#343a40!important}.border-2.border-link{border-color:#3273dc!important}.border-primary-2{border:2px solid #007bff!important}.border-secondary-2{border:2px solid #6c757d!important}.border-success-2{border:2px solid #28a745!important}.border-info-2{border:2px solid #17a2b8!important}.border-warning-2{border:2px solid #ffc107!important}.border-danger-2{border:2px solid #dc3545!important}.border-light-2{border:2px solid #f8f9fa!important}.border-dark-2{border:2px solid #343a40!important}.border-link-2{border:2px solid #3273dc!important}.border-top-2{border-top:2px solid #dee2e6!important}.border-primary-top-2{border-top:2px solid #007bff!important}.border-secondary-top-2{border-top:2px solid #6c757d!important}.border-success-top-2{border-top:2px solid #28a745!important}.border-info-top-2{border-top:2px solid #17a2b8!important}.border-warning-top-2{border-top:2px solid #ffc107!important}.border-danger-top-2{border-top:2px solid #dc3545!important}.border-light-top-2{border-top:2px solid #f8f9fa!important}.border-dark-top-2{border-top:2px solid #343a40!important}.border-link-top-2{border-top:2px solid #3273dc!important}.border-end-2{border-right:2px solid #dee2e6!important}.border-primary-end-2{border-right:2px solid #007bff!important}.border-secondary-end-2{border-right:2px solid #6c757d!important}.border-success-end-2{border-right:2px solid #28a745!important}.border-info-end-2{border-right:2px solid #17a2b8!important}.border-warning-end-2{border-right:2px solid #ffc107!important}.border-danger-end-2{border-right:2px solid #dc3545!important}.border-light-end-2{border-right:2px solid #f8f9fa!important}.border-dark-end-2{border-right:2px solid #343a40!important}.border-link-end-2{border-right:2px solid #3273dc!important}.border-bottom-2{border-bottom:2px solid #dee2e6!important}.border-primary-bottom-2{border-bottom:2px solid #007bff!important}.border-secondary-bottom-2{border-bottom:2px solid #6c757d!important}.border-success-bottom-2{border-bottom:2px solid #28a745!important}.border-info-bottom-2{border-bottom:2px solid #17a2b8!important}.border-warning-bottom-2{border-bottom:2px solid #ffc107!important}.border-danger-bottom-2{border-bottom:2px solid #dc3545!important}.border-light-bottom-2{border-bottom:2px solid #f8f9fa!important}.border-dark-bottom-2{border-bottom:2px solid #343a40!important}.border-link-bottom-2{border-bottom:2px solid #3273dc!important}.border-start-2{border-left:2px solid #dee2e6!important}.border-primary-start-2{border-left:2px solid #007bff!important}.border-secondary-start-2{border-left:2px solid #6c757d!important}.border-success-start-2{border-left:2px solid #28a745!important}.border-info-start-2{border-left:2px solid #17a2b8!important}.border-warning-start-2{border-left:2px solid #ffc107!important}.border-danger-start-2{border-left:2px solid #dc3545!important}.border-light-start-2{border-left:2px solid #f8f9fa!important}.border-dark-start-2{border-left:2px solid #343a40!important}.border-link-start-2{border-left:2px solid #3273dc!important}.border-3{border:3px solid #dee2e6!important}.border-3.border-primary{border-color:#007bff!important}.border-3.border-secondary{border-color:#6c757d!important}.border-3.border-success{border-color:#28a745!important}.border-3.border-info{border-color:#17a2b8!important}.border-3.border-warning{border-color:#ffc107!important}.border-3.border-danger{border-color:#dc3545!important}.border-3.border-light{border-color:#f8f9fa!important}.border-3.border-dark{border-color:#343a40!important}.border-3.border-link{border-color:#3273dc!important}.border-primary-3{border:3px solid #007bff!important}.border-secondary-3{border:3px solid #6c757d!important}.border-success-3{border:3px solid #28a745!important}.border-info-3{border:3px solid #17a2b8!important}.border-warning-3{border:3px solid #ffc107!important}.border-danger-3{border:3px solid #dc3545!important}.border-light-3{border:3px solid #f8f9fa!important}.border-dark-3{border:3px solid #343a40!important}.border-link-3{border:3px solid #3273dc!important}.border-top-3{border-top:3px solid #dee2e6!important}.border-primary-top-3{border-top:3px solid #007bff!important}.border-secondary-top-3{border-top:3px solid #6c757d!important}.border-success-top-3{border-top:3px solid #28a745!important}.border-info-top-3{border-top:3px solid #17a2b8!important}.border-warning-top-3{border-top:3px solid #ffc107!important}.border-danger-top-3{border-top:3px solid #dc3545!important}.border-light-top-3{border-top:3px solid #f8f9fa!important}.border-dark-top-3{border-top:3px solid #343a40!important}.border-link-top-3{border-top:3px solid #3273dc!important}.border-end-3{border-right:3px solid #dee2e6!important}.border-primary-end-3{border-right:3px solid #007bff!important}.border-secondary-end-3{border-right:3px solid #6c757d!important}.border-success-end-3{border-right:3px solid #28a745!important}.border-info-end-3{border-right:3px solid #17a2b8!important}.border-warning-end-3{border-right:3px solid #ffc107!important}.border-danger-end-3{border-right:3px solid #dc3545!important}.border-light-end-3{border-right:3px solid #f8f9fa!important}.border-dark-end-3{border-right:3px solid #343a40!important}.border-link-end-3{border-right:3px solid #3273dc!important}.border-bottom-3{border-bottom:3px solid #dee2e6!important}.border-primary-bottom-3{border-bottom:3px solid #007bff!important}.border-secondary-bottom-3{border-bottom:3px solid #6c757d!important}.border-success-bottom-3{border-bottom:3px solid #28a745!important}.border-info-bottom-3{border-bottom:3px solid #17a2b8!important}.border-warning-bottom-3{border-bottom:3px solid #ffc107!important}.border-danger-bottom-3{border-bottom:3px solid #dc3545!important}.border-light-bottom-3{border-bottom:3px solid #f8f9fa!important}.border-dark-bottom-3{border-bottom:3px solid #343a40!important}.border-link-bottom-3{border-bottom:3px solid #3273dc!important}.border-start-3{border-left:3px solid #dee2e6!important}.border-primary-start-3{border-left:3px solid #007bff!important}.border-secondary-start-3{border-left:3px solid #6c757d!important}.border-success-start-3{border-left:3px solid #28a745!important}.border-info-start-3{border-left:3px solid #17a2b8!important}.border-warning-start-3{border-left:3px solid #ffc107!important}.border-danger-start-3{border-left:3px solid #dc3545!important}.border-light-start-3{border-left:3px solid #f8f9fa!important}.border-dark-start-3{border-left:3px solid #343a40!important}.border-link-start-3{border-left:3px solid #3273dc!important}.border-4{border:4px solid #dee2e6!important}.border-4.border-primary{border-color:#007bff!important}.border-4.border-secondary{border-color:#6c757d!important}.border-4.border-success{border-color:#28a745!important}.border-4.border-info{border-color:#17a2b8!important}.border-4.border-warning{border-color:#ffc107!important}.border-4.border-danger{border-color:#dc3545!important}.border-4.border-light{border-color:#f8f9fa!important}.border-4.border-dark{border-color:#343a40!important}.border-4.border-link{border-color:#3273dc!important}.border-primary-4{border:4px solid #007bff!important}.border-secondary-4{border:4px solid #6c757d!important}.border-success-4{border:4px solid #28a745!important}.border-info-4{border:4px solid #17a2b8!important}.border-warning-4{border:4px solid #ffc107!important}.border-danger-4{border:4px solid #dc3545!important}.border-light-4{border:4px solid #f8f9fa!important}.border-dark-4{border:4px solid #343a40!important}.border-link-4{border:4px solid #3273dc!important}.border-top-4{border-top:4px solid #dee2e6!important}.border-primary-top-4{border-top:4px solid #007bff!important}.border-secondary-top-4{border-top:4px solid #6c757d!important}.border-success-top-4{border-top:4px solid #28a745!important}.border-info-top-4{border-top:4px solid #17a2b8!important}.border-warning-top-4{border-top:4px solid #ffc107!important}.border-danger-top-4{border-top:4px solid #dc3545!important}.border-light-top-4{border-top:4px solid #f8f9fa!important}.border-dark-top-4{border-top:4px solid #343a40!important}.border-link-top-4{border-top:4px solid #3273dc!important}.border-end-4{border-right:4px solid #dee2e6!important}.border-primary-end-4{border-right:4px solid #007bff!important}.border-secondary-end-4{border-right:4px solid #6c757d!important}.border-success-end-4{border-right:4px solid #28a745!important}.border-info-end-4{border-right:4px solid #17a2b8!important}.border-warning-end-4{border-right:4px solid #ffc107!important}.border-danger-end-4{border-right:4px solid #dc3545!important}.border-light-end-4{border-right:4px solid #f8f9fa!important}.border-dark-end-4{border-right:4px solid #343a40!important}.border-link-end-4{border-right:4px solid #3273dc!important}.border-bottom-4{border-bottom:4px solid #dee2e6!important}.border-primary-bottom-4{border-bottom:4px solid #007bff!important}.border-secondary-bottom-4{border-bottom:4px solid #6c757d!important}.border-success-bottom-4{border-bottom:4px solid #28a745!important}.border-info-bottom-4{border-bottom:4px solid #17a2b8!important}.border-warning-bottom-4{border-bottom:4px solid #ffc107!important}.border-danger-bottom-4{border-bottom:4px solid #dc3545!important}.border-light-bottom-4{border-bottom:4px solid #f8f9fa!important}.border-dark-bottom-4{border-bottom:4px solid #343a40!important}.border-link-bottom-4{border-bottom:4px solid #3273dc!important}.border-start-4{border-left:4px solid #dee2e6!important}.border-primary-start-4{border-left:4px solid #007bff!important}.border-secondary-start-4{border-left:4px solid #6c757d!important}.border-success-start-4{border-left:4px solid #28a745!important}.border-info-start-4{border-left:4px solid #17a2b8!important}.border-warning-start-4{border-left:4px solid #ffc107!important}.border-danger-start-4{border-left:4px solid #dc3545!important}.border-light-start-4{border-left:4px solid #f8f9fa!important}.border-dark-start-4{border-left:4px solid #343a40!important}.border-link-start-4{border-left:4px solid #3273dc!important}.border-5{border:5px solid #dee2e6!important}.border-5.border-primary{border-color:#007bff!important}.border-5.border-secondary{border-color:#6c757d!important}.border-5.border-success{border-color:#28a745!important}.border-5.border-info{border-color:#17a2b8!important}.border-5.border-warning{border-color:#ffc107!important}.border-5.border-danger{border-color:#dc3545!important}.border-5.border-light{border-color:#f8f9fa!important}.border-5.border-dark{border-color:#343a40!important}.border-5.border-link{border-color:#3273dc!important}.border-primary-5{border:5px solid #007bff!important}.border-secondary-5{border:5px solid #6c757d!important}.border-success-5{border:5px solid #28a745!important}.border-info-5{border:5px solid #17a2b8!important}.border-warning-5{border:5px solid #ffc107!important}.border-danger-5{border:5px solid #dc3545!important}.border-light-5{border:5px solid #f8f9fa!important}.border-dark-5{border:5px solid #343a40!important}.border-link-5{border:5px solid #3273dc!important}.border-top-5{border-top:5px solid #dee2e6!important}.border-primary-top-5{border-top:5px solid #007bff!important}.border-secondary-top-5{border-top:5px solid #6c757d!important}.border-success-top-5{border-top:5px solid #28a745!important}.border-info-top-5{border-top:5px solid #17a2b8!important}.border-warning-top-5{border-top:5px solid #ffc107!important}.border-danger-top-5{border-top:5px solid #dc3545!important}.border-light-top-5{border-top:5px solid #f8f9fa!important}.border-dark-top-5{border-top:5px solid #343a40!important}.border-link-top-5{border-top:5px solid #3273dc!important}.border-end-5{border-right:5px solid #dee2e6!important}.border-primary-end-5{border-right:5px solid #007bff!important}.border-secondary-end-5{border-right:5px solid #6c757d!important}.border-success-end-5{border-right:5px solid #28a745!important}.border-info-end-5{border-right:5px solid #17a2b8!important}.border-warning-end-5{border-right:5px solid #ffc107!important}.border-danger-end-5{border-right:5px solid #dc3545!important}.border-light-end-5{border-right:5px solid #f8f9fa!important}.border-dark-end-5{border-right:5px solid #343a40!important}.border-link-end-5{border-right:5px solid #3273dc!important}.border-bottom-5{border-bottom:5px solid #dee2e6!important}.border-primary-bottom-5{border-bottom:5px solid #007bff!important}.border-secondary-bottom-5{border-bottom:5px solid #6c757d!important}.border-success-bottom-5{border-bottom:5px solid #28a745!important}.border-info-bottom-5{border-bottom:5px solid #17a2b8!important}.border-warning-bottom-5{border-bottom:5px solid #ffc107!important}.border-danger-bottom-5{border-bottom:5px solid #dc3545!important}.border-light-bottom-5{border-bottom:5px solid #f8f9fa!important}.border-dark-bottom-5{border-bottom:5px solid #343a40!important}.border-link-bottom-5{border-bottom:5px solid #3273dc!important}.border-start-5{border-left:5px solid #dee2e6!important}.border-primary-start-5{border-left:5px solid #007bff!important}.border-secondary-start-5{border-left:5px solid #6c757d!important}.border-success-start-5{border-left:5px solid #28a745!important}.border-info-start-5{border-left:5px solid #17a2b8!important}.border-warning-start-5{border-left:5px solid #ffc107!important}.border-danger-start-5{border-left:5px solid #dc3545!important}.border-light-start-5{border-left:5px solid #f8f9fa!important}.border-dark-start-5{border-left:5px solid #343a40!important}.border-link-start-5{border-left:5px solid #3273dc!important}.cursor-pointer{cursor:pointer}.fs-xs{font-size:.75rem!important}.fs-sm{font-size:.925rem!important}.fs-md{font-size:1.125rem!important}.fs-lg{font-size:1.25rem!important}.fs-xl{font-size:1.5rem!important}.grid{display:grid;grid-template-rows:repeat(1,1fr);grid-template-columns:repeat(12,1fr);gap:1.5rem}.grid.g-rows-1{grid-template-rows:repeat(1,minmax(0,1fr))}.grid.g-rows-2{grid-template-rows:repeat(2,minmax(0,1fr))}.grid.g-rows-3{grid-template-rows:repeat(3,minmax(0,1fr))}.grid.g-rows-4{grid-template-rows:repeat(4,minmax(0,1fr))}.grid.g-rows-5{grid-template-rows:repeat(5,minmax(0,1fr))}.grid.g-rows-6{grid-template-rows:repeat(6,minmax(0,1fr))}.grid.g-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid.g-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.g-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.g-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid.g-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.grid.g-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.grid.g-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.grid.g-cols-8{grid-template-columns:repeat(8,minmax(0,1fr))}.grid.g-cols-9{grid-template-columns:repeat(9,minmax(0,1fr))}.grid.g-cols-10{grid-template-columns:repeat(10,minmax(0,1fr))}.grid.g-cols-11{grid-template-columns:repeat(11,minmax(0,1fr))}.grid.g-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}@media(min-width:576px){.grid.g-rows-sm-1{grid-template-rows:repeat(1,minmax(0,1fr))}.grid.g-rows-sm-2{grid-template-rows:repeat(2,minmax(0,1fr))}.grid.g-rows-sm-3{grid-template-rows:repeat(3,minmax(0,1fr))}.grid.g-rows-sm-4{grid-template-rows:repeat(4,minmax(0,1fr))}.grid.g-rows-sm-5{grid-template-rows:repeat(5,minmax(0,1fr))}.grid.g-rows-sm-6{grid-template-rows:repeat(6,minmax(0,1fr))}.grid.g-cols-sm-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid.g-cols-sm-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.g-cols-sm-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.g-cols-sm-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid.g-cols-sm-5{grid-template-columns:repeat(5,minmax(0,1fr))}.grid.g-cols-sm-6{grid-template-columns:repeat(6,minmax(0,1fr))}.grid.g-cols-sm-7{grid-template-columns:repeat(7,minmax(0,1fr))}.grid.g-cols-sm-8{grid-template-columns:repeat(8,minmax(0,1fr))}.grid.g-cols-sm-9{grid-template-columns:repeat(9,minmax(0,1fr))}.grid.g-cols-sm-10{grid-template-columns:repeat(10,minmax(0,1fr))}.grid.g-cols-sm-11{grid-template-columns:repeat(11,minmax(0,1fr))}.grid.g-cols-sm-12{grid-template-columns:repeat(12,minmax(0,1fr))}}@media(min-width:768px){.grid.g-rows-md-1{grid-template-rows:repeat(1,minmax(0,1fr))}.grid.g-rows-md-2{grid-template-rows:repeat(2,minmax(0,1fr))}.grid.g-rows-md-3{grid-template-rows:repeat(3,minmax(0,1fr))}.grid.g-rows-md-4{grid-template-rows:repeat(4,minmax(0,1fr))}.grid.g-rows-md-5{grid-template-rows:repeat(5,minmax(0,1fr))}.grid.g-rows-md-6{grid-template-rows:repeat(6,minmax(0,1fr))}.grid.g-cols-md-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid.g-cols-md-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.g-cols-md-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.g-cols-md-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid.g-cols-md-5{grid-template-columns:repeat(5,minmax(0,1fr))}.grid.g-cols-md-6{grid-template-columns:repeat(6,minmax(0,1fr))}.grid.g-cols-md-7{grid-template-columns:repeat(7,minmax(0,1fr))}.grid.g-cols-md-8{grid-template-columns:repeat(8,minmax(0,1fr))}.grid.g-cols-md-9{grid-template-columns:repeat(9,minmax(0,1fr))}.grid.g-cols-md-10{grid-template-columns:repeat(10,minmax(0,1fr))}.grid.g-cols-md-11{grid-template-columns:repeat(11,minmax(0,1fr))}.grid.g-cols-md-12{grid-template-columns:repeat(12,minmax(0,1fr))}}@media(min-width:992px){.grid.g-rows-lg-1{grid-template-rows:repeat(1,minmax(0,1fr))}.grid.g-rows-lg-2{grid-template-rows:repeat(2,minmax(0,1fr))}.grid.g-rows-lg-3{grid-template-rows:repeat(3,minmax(0,1fr))}.grid.g-rows-lg-4{grid-template-rows:repeat(4,minmax(0,1fr))}.grid.g-rows-lg-5{grid-template-rows:repeat(5,minmax(0,1fr))}.grid.g-rows-lg-6{grid-template-rows:repeat(6,minmax(0,1fr))}.grid.g-cols-lg-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid.g-cols-lg-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.g-cols-lg-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.g-cols-lg-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid.g-cols-lg-5{grid-template-columns:repeat(5,minmax(0,1fr))}.grid.g-cols-lg-6{grid-template-columns:repeat(6,minmax(0,1fr))}.grid.g-cols-lg-7{grid-template-columns:repeat(7,minmax(0,1fr))}.grid.g-cols-lg-8{grid-template-columns:repeat(8,minmax(0,1fr))}.grid.g-cols-lg-9{grid-template-columns:repeat(9,minmax(0,1fr))}.grid.g-cols-lg-10{grid-template-columns:repeat(10,minmax(0,1fr))}.grid.g-cols-lg-11{grid-template-columns:repeat(11,minmax(0,1fr))}.grid.g-cols-lg-12{grid-template-columns:repeat(12,minmax(0,1fr))}}@media(min-width:1200px){.grid.g-rows-xl-1{grid-template-rows:repeat(1,minmax(0,1fr))}.grid.g-rows-xl-2{grid-template-rows:repeat(2,minmax(0,1fr))}.grid.g-rows-xl-3{grid-template-rows:repeat(3,minmax(0,1fr))}.grid.g-rows-xl-4{grid-template-rows:repeat(4,minmax(0,1fr))}.grid.g-rows-xl-5{grid-template-rows:repeat(5,minmax(0,1fr))}.grid.g-rows-xl-6{grid-template-rows:repeat(6,minmax(0,1fr))}.grid.g-cols-xl-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid.g-cols-xl-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.g-cols-xl-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.g-cols-xl-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid.g-cols-xl-5{grid-template-columns:repeat(5,minmax(0,1fr))}.grid.g-cols-xl-6{grid-template-columns:repeat(6,minmax(0,1fr))}.grid.g-cols-xl-7{grid-template-columns:repeat(7,minmax(0,1fr))}.grid.g-cols-xl-8{grid-template-columns:repeat(8,minmax(0,1fr))}.grid.g-cols-xl-9{grid-template-columns:repeat(9,minmax(0,1fr))}.grid.g-cols-xl-10{grid-template-columns:repeat(10,minmax(0,1fr))}.grid.g-cols-xl-11{grid-template-columns:repeat(11,minmax(0,1fr))}.grid.g-cols-xl-12{grid-template-columns:repeat(12,minmax(0,1fr))}}.grid .g-col-1{grid-column:auto/span 1}.grid .g-col-2{grid-column:auto/span 2}.grid .g-col-3{grid-column:auto/span 3}.grid .g-col-4{grid-column:auto/span 4}.grid .g-col-5{grid-column:auto/span 5}.grid .g-col-6{grid-column:auto/span 6}.grid .g-col-7{grid-column:auto/span 7}.grid .g-col-8{grid-column:auto/span 8}.grid .g-col-9{grid-column:auto/span 9}.grid .g-col-10{grid-column:auto/span 10}.grid .g-col-11{grid-column:auto/span 11}.grid .g-col-12{grid-column:auto/span 12}@media(min-width:576px){.grid .g-col-sm-1{grid-column:auto/span 1}.grid .g-col-sm-2{grid-column:auto/span 2}.grid .g-col-sm-3{grid-column:auto/span 3}.grid .g-col-sm-4{grid-column:auto/span 4}.grid .g-col-sm-5{grid-column:auto/span 5}.grid .g-col-sm-6{grid-column:auto/span 6}.grid .g-col-sm-7{grid-column:auto/span 7}.grid .g-col-sm-8{grid-column:auto/span 8}.grid .g-col-sm-9{grid-column:auto/span 9}.grid .g-col-sm-10{grid-column:auto/span 10}.grid .g-col-sm-11{grid-column:auto/span 11}.grid .g-col-sm-12{grid-column:auto/span 12}}@media(min-width:768px){.grid .g-col-md-1{grid-column:auto/span 1}.grid .g-col-md-2{grid-column:auto/span 2}.grid .g-col-md-3{grid-column:auto/span 3}.grid .g-col-md-4{grid-column:auto/span 4}.grid .g-col-md-5{grid-column:auto/span 5}.grid .g-col-md-6{grid-column:auto/span 6}.grid .g-col-md-7{grid-column:auto/span 7}.grid .g-col-md-8{grid-column:auto/span 8}.grid .g-col-md-9{grid-column:auto/span 9}.grid .g-col-md-10{grid-column:auto/span 10}.grid .g-col-md-11{grid-column:auto/span 11}.grid .g-col-md-12{grid-column:auto/span 12}}@media(min-width:992px){.grid .g-col-lg-1{grid-column:auto/span 1}.grid .g-col-lg-2{grid-column:auto/span 2}.grid .g-col-lg-3{grid-column:auto/span 3}.grid .g-col-lg-4{grid-column:auto/span 4}.grid .g-col-lg-5{grid-column:auto/span 5}.grid .g-col-lg-6{grid-column:auto/span 6}.grid .g-col-lg-7{grid-column:auto/span 7}.grid .g-col-lg-8{grid-column:auto/span 8}.grid .g-col-lg-9{grid-column:auto/span 9}.grid .g-col-lg-10{grid-column:auto/span 10}.grid .g-col-lg-11{grid-column:auto/span 11}.grid .g-col-lg-12{grid-column:auto/span 12}}@media(min-width:1200px){.grid .g-col-xl-1{grid-column:auto/span 1}.grid .g-col-xl-2{grid-column:auto/span 2}.grid .g-col-xl-3{grid-column:auto/span 3}.grid .g-col-xl-4{grid-column:auto/span 4}.grid .g-col-xl-5{grid-column:auto/span 5}.grid .g-col-xl-6{grid-column:auto/span 6}.grid .g-col-xl-7{grid-column:auto/span 7}.grid .g-col-xl-8{grid-column:auto/span 8}.grid .g-col-xl-9{grid-column:auto/span 9}.grid .g-col-xl-10{grid-column:auto/span 10}.grid .g-col-xl-11{grid-column:auto/span 11}.grid .g-col-xl-12{grid-column:auto/span 12}}.flatpickr-months{margin:.5rem 0}.flatpickr-months .flatpickr-month,.flatpickr-months .flatpickr-next-month,.flatpickr-months .flatpickr-prev-month{height:auto;position:relative}.flatpickr-months .flatpickr-month:hover svg,.flatpickr-months .flatpickr-next-month:hover svg,.flatpickr-months .flatpickr-prev-month:hover svg{fill:#007bff}.flatpickr-months .flatpickr-month{color:#212529}.flatpickr-current-month{padding:13px 0 0 0;font-size:115%}.flatpickr-current-month span.cur-month{font-weight:700}.flatpickr-current-month span.cur-month:hover{background:rgba(0,123,255,.15)}.numInputWrapper:hover{background:rgba(0,123,255,.15)}.flatpickr-day{border-radius:.25rem;font-weight:500;color:#212529}.flatpickr-day.today{border-color:#007bff}.flatpickr-day.today:hover{background:#007bff;border-color:#007bff}.flatpickr-day:hover{background:rgba(0,123,255,.1);border-color:rgba(0,0,0,0)}span.flatpickr-weekday{color:#212529}.flatpickr-day.selected,.flatpickr-day.startRange,.flatpickr-day.endRange,.flatpickr-day.selected.inRange,.flatpickr-day.startRange.inRange,.flatpickr-day.endRange.inRange,.flatpickr-day.selected:focus,.flatpickr-day.startRange:focus,.flatpickr-day.endRange:focus,.flatpickr-day.selected:hover,.flatpickr-day.startRange:hover,.flatpickr-day.endRange:hover,.flatpickr-day.selected.prevMonthDay,.flatpickr-day.startRange.prevMonthDay,.flatpickr-day.endRange.prevMonthDay,.flatpickr-day.selected.nextMonthDay,.flatpickr-day.startRange.nextMonthDay,.flatpickr-day.endRange.nextMonthDay{background:#007bff;border-color:#007bff}.flatpickr-day.selected.startRange+.endRange:not(:nth-child(7n+1)),.flatpickr-day.startRange.startRange+.endRange:not(:nth-child(7n+1)),.flatpickr-day.endRange.startRange+.endRange:not(:nth-child(7n+1)){box-shadow:-10px 0 0 #007bff}.flatpickr-day.selected.startRange,.flatpickr-day.startRange.startRange,.flatpickr-day.endRange.startRange{border-radius:.25rem 0 0 .25rem}.flatpickr-day.selected.endRange,.flatpickr-day.startRange.endRange,.flatpickr-day.endRange.endRange{border-radius:0 .25rem .25rem 0}.flatpickr-monthSelect-month:hover,.flatpickr-monthSelect-month:focus{background:rgba(0,123,255,.1)}.flatpickr-monthSelect-month.selected{background-color:#007bff} +.snackbar{align-items:center;background-color:var(--b-snackbar-background,#323232);color:var(--b-snackbar-text-color,#fff);font-size:.875rem;line-height:1.428572;opacity:0;padding:.875rem 1.5rem;position:fixed;bottom:0;left:0;transform:translateY(100%);transition:opacity 0s var(--transition-duration-mobile-leaving,.195s),transform var(--transition-duration-mobile-leaving,.195s) cubic-bezier(.4,0,1,1);width:100%;z-index:60}@media(min-width:768px){.snackbar{border-radius:2px;max-width:35.5rem;min-width:18rem;left:50%;transform:translate(-50%,100%);width:auto}}@media(min-width:768px){.snackbar{transition:opacity 0s var(--transition-duration-tablet-leaving,.2535s),transform var(--transition-duration-tablet-leaving,.2535s) cubic-bezier(.4,0,1,1)}}@media(min-width:1200px){.snackbar{transition:opacity 0s var(--transition-duration-desktop-leaving,.13s),transform var(--transition-duration-desktop-leaving,.13s) cubic-bezier(.4,0,1,1)}}@media screen and (prefers-reduced-motion:reduce){.snackbar{transition:none}}.snackbar.snackbar-show{transition-duration:var(--transition-duration-mobile-entering,.225s);transition-property:transform;transition-timing-function:cubic-bezier(0,0,.2,1);opacity:1;transform:translateY(0)}@media(min-width:768px){.snackbar.snackbar-show{transition-duration:var(--transition-duration-tablet-entering,.2925s)}}@media(min-width:1200px){.snackbar.snackbar-show{transition-duration:var(--transition-duration-desktop-entering,.15s)}}@media screen and (prefers-reduced-motion:reduce){.snackbar.snackbar-show{transition:none}}@media(min-width:768px){.snackbar.snackbar-show{transform:translate(-50%,-1.5rem)}}.snackbar-header{display:flex;-ms-flex-pack:justify;justify-content:space-between;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background-color:DARKEN(var(--b-snackbar-background,#323232),30%);margin-right:auto;min-width:0;font-weight:bold;padding-bottom:.875rem}.snackbar-footer{display:flex;-ms-flex-pack:justify;justify-content:space-between;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background-color:DARKEN(var(--b-snackbar-background,#323232),30%);margin-right:auto;min-width:0;padding-top:.875rem}.snackbar-body{display:flex;-ms-flex-pack:justify;justify-content:space-between;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-right:auto;max-height:100%;min-width:0}.snackbar-action-button{transition-duration:var(--transition-duration-mobile,.3s);transition-property:background-color,background-image;transition-timing-function:cubic-bezier(.4,0,.2,1);background-color:transparent;background-image:none;border:0;color:var(--b-snackbar-button-color,var(--b-snackbar-button-color,#ff4081));cursor:pointer;display:block;flex-shrink:0;font-size:inherit;font-weight:500;line-height:inherit;padding:0;text-transform:uppercase;white-space:nowrap}@media(min-width:768px){.snackbar-action-button{transition-duration:var(--transition-duration-tablet,.39s)}}@media(min-width:1200px){.snackbar-action-button{transition-duration:var(--transition-duration-desktop,.2s)}}@media screen and (prefers-reduced-motion:reduce){.snackbar-action-button{transition:none}}.snackbar-action-button:focus,.snackbar-action-button:hover{color:var(--b-snackbar-button-hover-color,var(--b-snackbar-button-hover-color,#ff80ab));text-decoration:none}@media(min-width:768px){.snackbar-action-button{margin-left:3rem}}.snackbar-action-button:focus{outline:0}@media(min-width:768px){.snackbar-bottom-start,.snackbar-bottom-end{transform:translateY(100%)}.snackbar-bottom-start.snackbar-show,.snackbar-bottom-end.snackbar-show{transform:translateY(-1.5rem)}}@media(min-width:768px){.snackbar-bottom-start{left:1.5rem}}@media(min-width:768px){.snackbar-bottom-end{right:1.5rem;left:auto}}.snackbar-top{top:0;bottom:auto;transform:translateY(-100%)}@media(min-width:768px){.snackbar-top{transform:translateX(-50%) translateY(-100%)}.snackbar-top.snackbar-show{transform:translate(-50%,1.5rem)}}.snackbar-top-start{top:0;bottom:auto;transform:translateY(-100%);left:0}@media(min-width:768px){.snackbar-top-start{transform:translateY(-100%);left:1.5rem}.snackbar-top-start.snackbar-show{transform:translateY(1.5rem)}}.snackbar-top-end{top:0;bottom:auto;transform:translateY(-100%)}@media(min-width:768px){.snackbar-top-end{transform:translateY(-100%);right:1.5rem;left:auto}.snackbar-top-end.snackbar-show{transform:translateY(1.5rem)}}.snackbar-multi-line{padding-top:1.25rem;padding-bottom:1.25rem}.snackbar-multi-line .snackbar-body{white-space:normal}.snackbar-primary{background-color:var(--b-snackbar-background-primary,#cce5ff);color:var(--b-snackbar-text-primary,#004085)}.snackbar-action-button-primary{color:var(--b-snackbar-button-primary,#ff4081)}.snackbar-action-button-primary:focus,.snackbar-action-button-primary:hover{color:var(--b-snackbar-button-hover-primary,#ff80ab)}.snackbar-secondary{background-color:var(--b-snackbar-background-secondary,#e2e3e5);color:var(--b-snackbar-text-secondary,#383d41)}.snackbar-action-button-secondary{color:var(--b-snackbar-button-secondary,#ff4081)}.snackbar-action-button-secondary:focus,.snackbar-action-button-secondary:hover{color:var(--b-snackbar-button-hover-secondary,#ff80ab)}.snackbar-success{background-color:var(--b-snackbar-background-success,#d4edda);color:var(--b-snackbar-text-success,#155724)}.snackbar-action-button-success{color:var(--b-snackbar-button-success,#ff4081)}.snackbar-action-button-success:focus,.snackbar-action-button-success:hover{color:var(--b-snackbar-button-hover-success,#ff80ab)}.snackbar-danger{background-color:var(--b-snackbar-background-danger,#f8d7da);color:var(--b-snackbar-text-danger,#721c24)}.snackbar-action-button-danger{color:var(--b-snackbar-button-danger,#ff4081)}.snackbar-action-button-danger:focus,.snackbar-action-button-danger:hover{color:var(--b-snackbar-button-hover-danger,#ff80ab)}.snackbar-warning{background-color:var(--b-snackbar-background-warning,#fff3cd);color:var(--b-snackbar-text-warning,#856404)}.snackbar-action-button-warning{color:var(--b-snackbar-button-warning,#ff4081)}.snackbar-action-button-warning:focus,.snackbar-action-button-warning:hover{color:var(--b-snackbar-button-hover-warning,#ff80ab)}.snackbar-info{background-color:var(--b-snackbar-background-info,#d1ecf1);color:var(--b-snackbar-text-info,#0c5460)}.snackbar-action-button-info{color:var(--b-snackbar-button-info,#ff4081)}.snackbar-action-button-info:focus,.snackbar-action-button-info:hover{color:var(--b-snackbar-button-hover-info,#ff80ab)}.snackbar-light{background-color:var(--b-snackbar-background-light,#fefefe);color:var(--b-snackbar-text-light,#818182)}.snackbar-action-button-light{color:var(--b-snackbar-button-light,#ff4081)}.snackbar-action-button-light:focus,.snackbar-action-button-light:hover{color:var(--b-snackbar-button-hover-light,#ff80ab)}.snackbar-dark{background-color:var(--b-snackbar-background-dark,#d6d8d9);color:var(--b-snackbar-text-dark,#1b1e21)}.snackbar-action-button-dark{color:var(--b-snackbar-button-dark,#ff4081)}.snackbar-action-button-dark:focus,.snackbar-action-button-dark:hover{color:var(--b-snackbar-button-hover-dark,#ff80ab)}.snackbar-stack-bottom-end,.snackbar-stack-bottom-start,.snackbar-stack-bottom{display:flex;flex-direction:column;position:fixed;z-index:1090!important;bottom:0}.snackbar-stack-bottom-end .snackbar,.snackbar-stack-bottom-start .snackbar,.snackbar-stack-bottom .snackbar{position:relative;flex-direction:row;margin-bottom:0}.snackbar-stack-bottom-end .snackbar:not(:last-child),.snackbar-stack-bottom-start .snackbar:not(:last-child),.snackbar-stack-bottom .snackbar:not(:last-child){margin-bottom:1.5rem}.snackbar-stack-top-end,.snackbar-stack-top-start,.snackbar-stack-top{display:flex;flex-direction:column;align-items:center;justify-content:center;align-content:center;position:fixed;z-index:1090!important;top:0}.snackbar-stack-top-end .snackbar,.snackbar-stack-top-start .snackbar,.snackbar-stack-top .snackbar{position:relative;flex-direction:row;margin-bottom:0}.snackbar-stack-top-end .snackbar.snackbar-show,.snackbar-stack-top-start .snackbar.snackbar-show,.snackbar-stack-top .snackbar.snackbar-show{transform:translate(-50%)}.snackbar-stack-top-end .snackbar:not(:last-child),.snackbar-stack-top-start .snackbar:not(:last-child),.snackbar-stack-top .snackbar:not(:last-child){margin-bottom:1.5rem}.snackbar-stack-top .snackbar.snackbar-show,.snackbar-stack-top-start .snackbar.snackbar-show,.snackbar-stack-top-end .snackbar.snackbar-show{transition:all var(--stack-transition-duration,1000);animation:showTop var(--stack-animation-duration,500) forwards;opacity:1}.snackbar-stack-top .snackbar-hide,.snackbar-stack-top-start .snackbar-hide,.snackbar-stack-top-end .snackbar-hide{transition:all var(--stack-transition-duration,1000);animation:hideTop var(--stack-animation-duration,500) forwards;opacity:0}.snackbar-stack-bottom .snackbar.snackbar-show,.snackbar-stack-bottom-start .snackbar.snackbar-show,.snackbar-stack-bottom-end .snackbar.snackbar-show{transition:all var(--stack-transition-duration,1000);animation:showBottom var(--stack-animation-duration,500) forwards;opacity:1}.snackbar-stack-bottom .snackbar-hide,.snackbar-stack-bottom-start .snackbar-hide,.snackbar-stack-bottom-end .snackbar-hide{transition:all var(--stack-transition-duration,1000);animation:hideBottom var(--stack-animation-duration,500) forwards;opacity:0}@keyframes showTop{0%{max-height:0;padding:0;transform:translate(-50%) translateY(-50px);opacity:0}100%{max-height:150px;padding:.5rem 1rem;transform:translate(-50%) translateY(0);opacity:1}}@keyframes hideTop{0%{max-height:150px;padding:.5rem 1rem;transform:translate(-50%) translateY(0);opacity:1}100%{max-height:0;padding:0;transform:translate(-50%) translateY(-50px);opacity:0}}@keyframes showBottom{0%{max-height:0;padding:0;opacity:0;transform:translate(-50%) translateY(50px)}100%{max-height:150px;padding:.5rem 1rem;opacity:1;transform:translate(-50%) translateY(0)}}@keyframes hideBottom{0%{max-height:150px;transform:translate(-50%) translateY(0);padding:.5rem 1rem;opacity:1}100%{max-height:0;padding:0;transform:translate(-50%) translateY(50px);opacity:0}}@media(min-width:576px){.snackbar-stack-bottom{left:50%;transform:translate(-50%,0%);bottom:1.5rem}.snackbar-stack-bottom-start{left:1.5rem;bottom:1.5rem}.snackbar-stack-bottom-end{right:1.5rem;bottom:1.5rem}.snackbar-stack-top-start{left:1.5rem;top:1.5rem}.snackbar-stack-top-end{right:1.5rem;top:1.5rem}.snackbar-stack-top{left:50%;transform:translate(-50%,0%);top:1.5rem}} +.radar-spinner,.radar-spinner *{box-sizing:border-box}.radar-spinner{height:60px;width:60px;position:relative}.radar-spinner .circle{position:absolute;height:100%;width:100%;top:0;left:0;animation:radar-spinner-animation 2s infinite}.radar-spinner .circle:nth-child(1){padding:calc(60px*5*2*0/110);animation-delay:300ms}.radar-spinner .circle:nth-child(2){padding:calc(60px*5*2*1/110);animation-delay:300ms}.radar-spinner .circle:nth-child(3){padding:calc(60px*5*2*2/110);animation-delay:300ms}.radar-spinner .circle:nth-child(4){padding:calc(60px*5*2*3/110);animation-delay:0ms}.radar-spinner .circle-inner,.radar-spinner .circle-inner-container{height:100%;width:100%;border-radius:50%;border:calc(60px*5/110) solid transparent}.radar-spinner .circle-inner{border-left-color:var(--secondary,#ff1d5e);border-right-color:var(--secondary,#ff1d5e)}@keyframes radar-spinner-animation{50%{transform:rotate(180deg)}100%{transform:rotate(0deg)}} @keyframes chartjs-render-animation{from{opacity:.99}to{opacity:1}}.chartjs-render-monitor{animation:chartjs-render-animation 1ms}.chartjs-size-monitor,.chartjs-size-monitor-expand,.chartjs-size-monitor-shrink{position:absolute;direction:ltr;left:0;top:0;right:0;bottom:0;overflow:hidden;pointer-events:none;visibility:hidden;z-index:-1}.chartjs-size-monitor-expand>div{position:absolute;width:1000000px;height:1000000px;left:0;top:0}.chartjs-size-monitor-shrink>div{position:absolute;width:200%;height:200%;left:0;top:0} /*! * Datepicker for Bootstrap v1.9.0 (https://github.com/uxsolutions/bootstrap-datepicker) @@ -24,4 +25,4 @@ body:before{content:"mobile";display:none;visibility:hidden}@media(min-width:768 */ .datepicker{padding:4px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;direction:ltr}.datepicker-inline{width:220px}.datepicker-rtl{direction:rtl}.datepicker-rtl.dropdown-menu{left:auto}.datepicker-rtl table tr td span{float:right}.datepicker-dropdown{top:0;left:0}.datepicker-dropdown:before{content:'';display:inline-block;border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid #999;border-top:0;border-bottom-color:rgba(0,0,0,.2);position:absolute}.datepicker-dropdown:after{content:'';display:inline-block;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #fff;border-top:0;position:absolute}.datepicker-dropdown.datepicker-orient-left:before{left:6px}.datepicker-dropdown.datepicker-orient-left:after{left:7px}.datepicker-dropdown.datepicker-orient-right:before{right:6px}.datepicker-dropdown.datepicker-orient-right:after{right:7px}.datepicker-dropdown.datepicker-orient-bottom:before{top:-7px}.datepicker-dropdown.datepicker-orient-bottom:after{top:-6px}.datepicker-dropdown.datepicker-orient-top:before{bottom:-7px;border-bottom:0;border-top:7px solid #999}.datepicker-dropdown.datepicker-orient-top:after{bottom:-6px;border-bottom:0;border-top:6px solid #fff}.datepicker table{margin:0;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.datepicker td,.datepicker th{text-align:center;width:20px;height:20px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;border:none}.table-striped .datepicker table tr td,.table-striped .datepicker table tr th{background-color:transparent}.datepicker table tr td.day.focused,.datepicker table tr td.day:hover{background:#eee;cursor:pointer}.datepicker table tr td.new,.datepicker table tr td.old{color:#999}.datepicker table tr td.disabled,.datepicker table tr td.disabled:hover{background:0 0;color:#999;cursor:default}.datepicker table tr td.highlighted{background:#d9edf7;border-radius:0}.datepicker table tr td.today,.datepicker table tr td.today.disabled,.datepicker table tr td.today.disabled:hover,.datepicker table tr td.today:hover{background-color:#fde19a;background-image:-moz-linear-gradient(to bottom,#fdd49a,#fdf59a);background-image:-ms-linear-gradient(to bottom,#fdd49a,#fdf59a);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fdd49a),to(#fdf59a));background-image:-webkit-linear-gradient(to bottom,#fdd49a,#fdf59a);background-image:-o-linear-gradient(to bottom,#fdd49a,#fdf59a);background-image:linear-gradient(to bottom,#fdd49a,#fdf59a);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fdd49a', endColorstr='#fdf59a', GradientType=0);border-color:#fdf59a #fdf59a #fbed50;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);color:#000}.datepicker table tr td.today.active,.datepicker table tr td.today.disabled,.datepicker table tr td.today.disabled.active,.datepicker table tr td.today.disabled.disabled,.datepicker table tr td.today.disabled:active,.datepicker table tr td.today.disabled:hover,.datepicker table tr td.today.disabled:hover.active,.datepicker table tr td.today.disabled:hover.disabled,.datepicker table tr td.today.disabled:hover:active,.datepicker table tr td.today.disabled:hover:hover,.datepicker table tr td.today.disabled:hover[disabled],.datepicker table tr td.today.disabled[disabled],.datepicker table tr td.today:active,.datepicker table tr td.today:hover,.datepicker table tr td.today:hover.active,.datepicker table tr td.today:hover.disabled,.datepicker table tr td.today:hover:active,.datepicker table tr td.today:hover:hover,.datepicker table tr td.today:hover[disabled],.datepicker table tr td.today[disabled]{background-color:#fdf59a}.datepicker table tr td.today.active,.datepicker table tr td.today.disabled.active,.datepicker table tr td.today.disabled:active,.datepicker table tr td.today.disabled:hover.active,.datepicker table tr td.today.disabled:hover:active,.datepicker table tr td.today:active,.datepicker table tr td.today:hover.active,.datepicker table tr td.today:hover:active{background-color:#fbf069\9}.datepicker table tr td.today:hover:hover{color:#000}.datepicker table tr td.today.active:hover{color:#fff}.datepicker table tr td.range,.datepicker table tr td.range.disabled,.datepicker table tr td.range.disabled:hover,.datepicker table tr td.range:hover{background:#eee;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.datepicker table tr td.range.today,.datepicker table tr td.range.today.disabled,.datepicker table tr td.range.today.disabled:hover,.datepicker table tr td.range.today:hover{background-color:#f3d17a;background-image:-moz-linear-gradient(to bottom,#f3c17a,#f3e97a);background-image:-ms-linear-gradient(to bottom,#f3c17a,#f3e97a);background-image:-webkit-gradient(linear,0 0,0 100%,from(#f3c17a),to(#f3e97a));background-image:-webkit-linear-gradient(to bottom,#f3c17a,#f3e97a);background-image:-o-linear-gradient(to bottom,#f3c17a,#f3e97a);background-image:linear-gradient(to bottom,#f3c17a,#f3e97a);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#f3c17a', endColorstr='#f3e97a', GradientType=0);border-color:#f3e97a #f3e97a #edde34;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.datepicker table tr td.range.today.active,.datepicker table tr td.range.today.disabled,.datepicker table tr td.range.today.disabled.active,.datepicker table tr td.range.today.disabled.disabled,.datepicker table tr td.range.today.disabled:active,.datepicker table tr td.range.today.disabled:hover,.datepicker table tr td.range.today.disabled:hover.active,.datepicker table tr td.range.today.disabled:hover.disabled,.datepicker table tr td.range.today.disabled:hover:active,.datepicker table tr td.range.today.disabled:hover:hover,.datepicker table tr td.range.today.disabled:hover[disabled],.datepicker table tr td.range.today.disabled[disabled],.datepicker table tr td.range.today:active,.datepicker table tr td.range.today:hover,.datepicker table tr td.range.today:hover.active,.datepicker table tr td.range.today:hover.disabled,.datepicker table tr td.range.today:hover:active,.datepicker table tr td.range.today:hover:hover,.datepicker table tr td.range.today:hover[disabled],.datepicker table tr td.range.today[disabled]{background-color:#f3e97a}.datepicker table tr td.range.today.active,.datepicker table tr td.range.today.disabled.active,.datepicker table tr td.range.today.disabled:active,.datepicker table tr td.range.today.disabled:hover.active,.datepicker table tr td.range.today.disabled:hover:active,.datepicker table tr td.range.today:active,.datepicker table tr td.range.today:hover.active,.datepicker table tr td.range.today:hover:active{background-color:#efe24b\9}.datepicker table tr td.selected,.datepicker table tr td.selected.disabled,.datepicker table tr td.selected.disabled:hover,.datepicker table tr td.selected:hover{background-color:#9e9e9e;background-image:-moz-linear-gradient(to bottom,#b3b3b3,grey);background-image:-ms-linear-gradient(to bottom,#b3b3b3,grey);background-image:-webkit-gradient(linear,0 0,0 100%,from(#b3b3b3),to(grey));background-image:-webkit-linear-gradient(to bottom,#b3b3b3,grey);background-image:-o-linear-gradient(to bottom,#b3b3b3,grey);background-image:linear-gradient(to bottom,#b3b3b3,grey);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#b3b3b3', endColorstr='#808080', GradientType=0);border-color:grey grey #595959;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.25)}.datepicker table tr td.selected.active,.datepicker table tr td.selected.disabled,.datepicker table tr td.selected.disabled.active,.datepicker table tr td.selected.disabled.disabled,.datepicker table tr td.selected.disabled:active,.datepicker table tr td.selected.disabled:hover,.datepicker table tr td.selected.disabled:hover.active,.datepicker table tr td.selected.disabled:hover.disabled,.datepicker table tr td.selected.disabled:hover:active,.datepicker table tr td.selected.disabled:hover:hover,.datepicker table tr td.selected.disabled:hover[disabled],.datepicker table tr td.selected.disabled[disabled],.datepicker table tr td.selected:active,.datepicker table tr td.selected:hover,.datepicker table tr td.selected:hover.active,.datepicker table tr td.selected:hover.disabled,.datepicker table tr td.selected:hover:active,.datepicker table tr td.selected:hover:hover,.datepicker table tr td.selected:hover[disabled],.datepicker table tr td.selected[disabled]{background-color:grey}.datepicker table tr td.selected.active,.datepicker table tr td.selected.disabled.active,.datepicker table tr td.selected.disabled:active,.datepicker table tr td.selected.disabled:hover.active,.datepicker table tr td.selected.disabled:hover:active,.datepicker table tr td.selected:active,.datepicker table tr td.selected:hover.active,.datepicker table tr td.selected:hover:active{background-color:#666\9}.datepicker table tr td.active,.datepicker table tr td.active.disabled,.datepicker table tr td.active.disabled:hover,.datepicker table tr td.active:hover{background-color:#006dcc;background-image:-moz-linear-gradient(to bottom,#08c,#04c);background-image:-ms-linear-gradient(to bottom,#08c,#04c);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#04c));background-image:-webkit-linear-gradient(to bottom,#08c,#04c);background-image:-o-linear-gradient(to bottom,#08c,#04c);background-image:linear-gradient(to bottom,#08c,#04c);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#08c', endColorstr='#0044cc', GradientType=0);border-color:#04c #04c #002a80;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.25)}.datepicker table tr td.active.active,.datepicker table tr td.active.disabled,.datepicker table tr td.active.disabled.active,.datepicker table tr td.active.disabled.disabled,.datepicker table tr td.active.disabled:active,.datepicker table tr td.active.disabled:hover,.datepicker table tr td.active.disabled:hover.active,.datepicker table tr td.active.disabled:hover.disabled,.datepicker table tr td.active.disabled:hover:active,.datepicker table tr td.active.disabled:hover:hover,.datepicker table tr td.active.disabled:hover[disabled],.datepicker table tr td.active.disabled[disabled],.datepicker table tr td.active:active,.datepicker table tr td.active:hover,.datepicker table tr td.active:hover.active,.datepicker table tr td.active:hover.disabled,.datepicker table tr td.active:hover:active,.datepicker table tr td.active:hover:hover,.datepicker table tr td.active:hover[disabled],.datepicker table tr td.active[disabled]{background-color:#04c}.datepicker table tr td.active.active,.datepicker table tr td.active.disabled.active,.datepicker table tr td.active.disabled:active,.datepicker table tr td.active.disabled:hover.active,.datepicker table tr td.active.disabled:hover:active,.datepicker table tr td.active:active,.datepicker table tr td.active:hover.active,.datepicker table tr td.active:hover:active{background-color:#039\9}.datepicker table tr td span{display:block;width:23%;height:54px;line-height:54px;float:left;margin:1%;cursor:pointer;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.datepicker table tr td span.focused,.datepicker table tr td span:hover{background:#eee}.datepicker table tr td span.disabled,.datepicker table tr td span.disabled:hover{background:0 0;color:#999;cursor:default}.datepicker table tr td span.active,.datepicker table tr td span.active.disabled,.datepicker table tr td span.active.disabled:hover,.datepicker table tr td span.active:hover{background-color:#006dcc;background-image:-moz-linear-gradient(to bottom,#08c,#04c);background-image:-ms-linear-gradient(to bottom,#08c,#04c);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#04c));background-image:-webkit-linear-gradient(to bottom,#08c,#04c);background-image:-o-linear-gradient(to bottom,#08c,#04c);background-image:linear-gradient(to bottom,#08c,#04c);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#08c', endColorstr='#0044cc', GradientType=0);border-color:#04c #04c #002a80;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.25)}.datepicker table tr td span.active.active,.datepicker table tr td span.active.disabled,.datepicker table tr td span.active.disabled.active,.datepicker table tr td span.active.disabled.disabled,.datepicker table tr td span.active.disabled:active,.datepicker table tr td span.active.disabled:hover,.datepicker table tr td span.active.disabled:hover.active,.datepicker table tr td span.active.disabled:hover.disabled,.datepicker table tr td span.active.disabled:hover:active,.datepicker table tr td span.active.disabled:hover:hover,.datepicker table tr td span.active.disabled:hover[disabled],.datepicker table tr td span.active.disabled[disabled],.datepicker table tr td span.active:active,.datepicker table tr td span.active:hover,.datepicker table tr td span.active:hover.active,.datepicker table tr td span.active:hover.disabled,.datepicker table tr td span.active:hover:active,.datepicker table tr td span.active:hover:hover,.datepicker table tr td span.active:hover[disabled],.datepicker table tr td span.active[disabled]{background-color:#04c}.datepicker table tr td span.active.active,.datepicker table tr td span.active.disabled.active,.datepicker table tr td span.active.disabled:active,.datepicker table tr td span.active.disabled:hover.active,.datepicker table tr td span.active.disabled:hover:active,.datepicker table tr td span.active:active,.datepicker table tr td span.active:hover.active,.datepicker table tr td span.active:hover:active{background-color:#039\9}.datepicker table tr td span.new,.datepicker table tr td span.old{color:#999}.datepicker .datepicker-switch{width:145px}.datepicker .datepicker-switch,.datepicker .next,.datepicker .prev,.datepicker tfoot tr th{cursor:pointer}.datepicker .datepicker-switch:hover,.datepicker .next:hover,.datepicker .prev:hover,.datepicker tfoot tr th:hover{background:#eee}.datepicker .next.disabled,.datepicker .prev.disabled{visibility:hidden}.datepicker .cw{font-size:10px;width:12px;padding:0 2px 0 5px;vertical-align:middle}.input-append.date .add-on,.input-prepend.date .add-on{cursor:pointer}.input-append.date .add-on i,.input-prepend.date .add-on i{margin-top:3px}.input-daterange input{text-align:center}.input-daterange input:first-child{-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px}.input-daterange input:last-child{-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0}.input-daterange .add-on{display:inline-block;width:auto;min-width:16px;height:18px;padding:4px 5px;font-weight:400;line-height:18px;text-align:center;text-shadow:0 1px 0 #fff;vertical-align:middle;background-color:#eee;border:1px solid #ccc;margin-left:-5px;margin-right:-5px} -@font-face{font-family:"bootstrap-icons";src:url("_content/Volo.Abp.AspNetCore.Components.Web.LeptonXLiteTheme/side-menu/libs/bootstrap-icons/font/fonts/bootstrap-icons.woff2?30af91bf14e37666a085fb8a161ff36d") format("woff2"),url("_content/Volo.Abp.AspNetCore.Components.Web.LeptonXLiteTheme/side-menu/libs/bootstrap-icons/font/fonts/bootstrap-icons.woff?30af91bf14e37666a085fb8a161ff36d") format("woff")}.bi::before,[class^="bi-"]::before,[class*=" bi-"]::before{display:inline-block;font-family:bootstrap-icons !important;font-style:normal;font-weight:normal !important;font-variant:normal;text-transform:none;line-height:1;vertical-align:-.125em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.bi-123::before{content:""}.bi-alarm-fill::before{content:""}.bi-alarm::before{content:""}.bi-align-bottom::before{content:""}.bi-align-center::before{content:""}.bi-align-end::before{content:""}.bi-align-middle::before{content:""}.bi-align-start::before{content:""}.bi-align-top::before{content:""}.bi-alt::before{content:""}.bi-app-indicator::before{content:""}.bi-app::before{content:""}.bi-archive-fill::before{content:""}.bi-archive::before{content:""}.bi-arrow-90deg-down::before{content:""}.bi-arrow-90deg-left::before{content:""}.bi-arrow-90deg-right::before{content:""}.bi-arrow-90deg-up::before{content:""}.bi-arrow-bar-down::before{content:""}.bi-arrow-bar-left::before{content:""}.bi-arrow-bar-right::before{content:""}.bi-arrow-bar-up::before{content:""}.bi-arrow-clockwise::before{content:""}.bi-arrow-counterclockwise::before{content:""}.bi-arrow-down-circle-fill::before{content:""}.bi-arrow-down-circle::before{content:""}.bi-arrow-down-left-circle-fill::before{content:""}.bi-arrow-down-left-circle::before{content:""}.bi-arrow-down-left-square-fill::before{content:""}.bi-arrow-down-left-square::before{content:""}.bi-arrow-down-left::before{content:""}.bi-arrow-down-right-circle-fill::before{content:""}.bi-arrow-down-right-circle::before{content:""}.bi-arrow-down-right-square-fill::before{content:""}.bi-arrow-down-right-square::before{content:""}.bi-arrow-down-right::before{content:""}.bi-arrow-down-short::before{content:""}.bi-arrow-down-square-fill::before{content:""}.bi-arrow-down-square::before{content:""}.bi-arrow-down-up::before{content:""}.bi-arrow-down::before{content:""}.bi-arrow-left-circle-fill::before{content:""}.bi-arrow-left-circle::before{content:""}.bi-arrow-left-right::before{content:""}.bi-arrow-left-short::before{content:""}.bi-arrow-left-square-fill::before{content:""}.bi-arrow-left-square::before{content:""}.bi-arrow-left::before{content:""}.bi-arrow-repeat::before{content:""}.bi-arrow-return-left::before{content:""}.bi-arrow-return-right::before{content:""}.bi-arrow-right-circle-fill::before{content:""}.bi-arrow-right-circle::before{content:""}.bi-arrow-right-short::before{content:""}.bi-arrow-right-square-fill::before{content:""}.bi-arrow-right-square::before{content:""}.bi-arrow-right::before{content:""}.bi-arrow-up-circle-fill::before{content:""}.bi-arrow-up-circle::before{content:""}.bi-arrow-up-left-circle-fill::before{content:""}.bi-arrow-up-left-circle::before{content:""}.bi-arrow-up-left-square-fill::before{content:""}.bi-arrow-up-left-square::before{content:""}.bi-arrow-up-left::before{content:""}.bi-arrow-up-right-circle-fill::before{content:""}.bi-arrow-up-right-circle::before{content:""}.bi-arrow-up-right-square-fill::before{content:""}.bi-arrow-up-right-square::before{content:""}.bi-arrow-up-right::before{content:""}.bi-arrow-up-short::before{content:""}.bi-arrow-up-square-fill::before{content:""}.bi-arrow-up-square::before{content:""}.bi-arrow-up::before{content:""}.bi-arrows-angle-contract::before{content:""}.bi-arrows-angle-expand::before{content:""}.bi-arrows-collapse::before{content:""}.bi-arrows-expand::before{content:""}.bi-arrows-fullscreen::before{content:""}.bi-arrows-move::before{content:""}.bi-aspect-ratio-fill::before{content:""}.bi-aspect-ratio::before{content:""}.bi-asterisk::before{content:""}.bi-at::before{content:""}.bi-award-fill::before{content:""}.bi-award::before{content:""}.bi-back::before{content:""}.bi-backspace-fill::before{content:""}.bi-backspace-reverse-fill::before{content:""}.bi-backspace-reverse::before{content:""}.bi-backspace::before{content:""}.bi-badge-3d-fill::before{content:""}.bi-badge-3d::before{content:""}.bi-badge-4k-fill::before{content:""}.bi-badge-4k::before{content:""}.bi-badge-8k-fill::before{content:""}.bi-badge-8k::before{content:""}.bi-badge-ad-fill::before{content:""}.bi-badge-ad::before{content:""}.bi-badge-ar-fill::before{content:""}.bi-badge-ar::before{content:""}.bi-badge-cc-fill::before{content:""}.bi-badge-cc::before{content:""}.bi-badge-hd-fill::before{content:""}.bi-badge-hd::before{content:""}.bi-badge-tm-fill::before{content:""}.bi-badge-tm::before{content:""}.bi-badge-vo-fill::before{content:""}.bi-badge-vo::before{content:""}.bi-badge-vr-fill::before{content:""}.bi-badge-vr::before{content:""}.bi-badge-wc-fill::before{content:""}.bi-badge-wc::before{content:""}.bi-bag-check-fill::before{content:""}.bi-bag-check::before{content:""}.bi-bag-dash-fill::before{content:""}.bi-bag-dash::before{content:""}.bi-bag-fill::before{content:""}.bi-bag-plus-fill::before{content:""}.bi-bag-plus::before{content:""}.bi-bag-x-fill::before{content:""}.bi-bag-x::before{content:""}.bi-bag::before{content:""}.bi-bar-chart-fill::before{content:""}.bi-bar-chart-line-fill::before{content:""}.bi-bar-chart-line::before{content:""}.bi-bar-chart-steps::before{content:""}.bi-bar-chart::before{content:""}.bi-basket-fill::before{content:""}.bi-basket::before{content:""}.bi-basket2-fill::before{content:""}.bi-basket2::before{content:""}.bi-basket3-fill::before{content:""}.bi-basket3::before{content:""}.bi-battery-charging::before{content:""}.bi-battery-full::before{content:""}.bi-battery-half::before{content:""}.bi-battery::before{content:""}.bi-bell-fill::before{content:""}.bi-bell::before{content:""}.bi-bezier::before{content:""}.bi-bezier2::before{content:""}.bi-bicycle::before{content:""}.bi-binoculars-fill::before{content:""}.bi-binoculars::before{content:""}.bi-blockquote-left::before{content:""}.bi-blockquote-right::before{content:""}.bi-book-fill::before{content:""}.bi-book-half::before{content:""}.bi-book::before{content:""}.bi-bookmark-check-fill::before{content:""}.bi-bookmark-check::before{content:""}.bi-bookmark-dash-fill::before{content:""}.bi-bookmark-dash::before{content:""}.bi-bookmark-fill::before{content:""}.bi-bookmark-heart-fill::before{content:""}.bi-bookmark-heart::before{content:""}.bi-bookmark-plus-fill::before{content:""}.bi-bookmark-plus::before{content:""}.bi-bookmark-star-fill::before{content:""}.bi-bookmark-star::before{content:""}.bi-bookmark-x-fill::before{content:""}.bi-bookmark-x::before{content:""}.bi-bookmark::before{content:""}.bi-bookmarks-fill::before{content:""}.bi-bookmarks::before{content:""}.bi-bookshelf::before{content:""}.bi-bootstrap-fill::before{content:""}.bi-bootstrap-reboot::before{content:""}.bi-bootstrap::before{content:""}.bi-border-all::before{content:""}.bi-border-bottom::before{content:""}.bi-border-center::before{content:""}.bi-border-inner::before{content:""}.bi-border-left::before{content:""}.bi-border-middle::before{content:""}.bi-border-outer::before{content:""}.bi-border-right::before{content:""}.bi-border-style::before{content:""}.bi-border-top::before{content:""}.bi-border-width::before{content:""}.bi-border::before{content:""}.bi-bounding-box-circles::before{content:""}.bi-bounding-box::before{content:""}.bi-box-arrow-down-left::before{content:""}.bi-box-arrow-down-right::before{content:""}.bi-box-arrow-down::before{content:""}.bi-box-arrow-in-down-left::before{content:""}.bi-box-arrow-in-down-right::before{content:""}.bi-box-arrow-in-down::before{content:""}.bi-box-arrow-in-left::before{content:""}.bi-box-arrow-in-right::before{content:""}.bi-box-arrow-in-up-left::before{content:""}.bi-box-arrow-in-up-right::before{content:""}.bi-box-arrow-in-up::before{content:""}.bi-box-arrow-left::before{content:""}.bi-box-arrow-right::before{content:""}.bi-box-arrow-up-left::before{content:""}.bi-box-arrow-up-right::before{content:""}.bi-box-arrow-up::before{content:""}.bi-box-seam::before{content:""}.bi-box::before{content:""}.bi-braces::before{content:""}.bi-bricks::before{content:""}.bi-briefcase-fill::before{content:""}.bi-briefcase::before{content:""}.bi-brightness-alt-high-fill::before{content:""}.bi-brightness-alt-high::before{content:""}.bi-brightness-alt-low-fill::before{content:""}.bi-brightness-alt-low::before{content:""}.bi-brightness-high-fill::before{content:""}.bi-brightness-high::before{content:""}.bi-brightness-low-fill::before{content:""}.bi-brightness-low::before{content:""}.bi-broadcast-pin::before{content:""}.bi-broadcast::before{content:""}.bi-brush-fill::before{content:""}.bi-brush::before{content:""}.bi-bucket-fill::before{content:""}.bi-bucket::before{content:""}.bi-bug-fill::before{content:""}.bi-bug::before{content:""}.bi-building::before{content:""}.bi-bullseye::before{content:""}.bi-calculator-fill::before{content:""}.bi-calculator::before{content:""}.bi-calendar-check-fill::before{content:""}.bi-calendar-check::before{content:""}.bi-calendar-date-fill::before{content:""}.bi-calendar-date::before{content:""}.bi-calendar-day-fill::before{content:""}.bi-calendar-day::before{content:""}.bi-calendar-event-fill::before{content:""}.bi-calendar-event::before{content:""}.bi-calendar-fill::before{content:""}.bi-calendar-minus-fill::before{content:""}.bi-calendar-minus::before{content:""}.bi-calendar-month-fill::before{content:""}.bi-calendar-month::before{content:""}.bi-calendar-plus-fill::before{content:""}.bi-calendar-plus::before{content:""}.bi-calendar-range-fill::before{content:""}.bi-calendar-range::before{content:""}.bi-calendar-week-fill::before{content:""}.bi-calendar-week::before{content:""}.bi-calendar-x-fill::before{content:""}.bi-calendar-x::before{content:""}.bi-calendar::before{content:""}.bi-calendar2-check-fill::before{content:""}.bi-calendar2-check::before{content:""}.bi-calendar2-date-fill::before{content:""}.bi-calendar2-date::before{content:""}.bi-calendar2-day-fill::before{content:""}.bi-calendar2-day::before{content:""}.bi-calendar2-event-fill::before{content:""}.bi-calendar2-event::before{content:""}.bi-calendar2-fill::before{content:""}.bi-calendar2-minus-fill::before{content:""}.bi-calendar2-minus::before{content:""}.bi-calendar2-month-fill::before{content:""}.bi-calendar2-month::before{content:""}.bi-calendar2-plus-fill::before{content:""}.bi-calendar2-plus::before{content:""}.bi-calendar2-range-fill::before{content:""}.bi-calendar2-range::before{content:""}.bi-calendar2-week-fill::before{content:""}.bi-calendar2-week::before{content:""}.bi-calendar2-x-fill::before{content:""}.bi-calendar2-x::before{content:""}.bi-calendar2::before{content:""}.bi-calendar3-event-fill::before{content:""}.bi-calendar3-event::before{content:""}.bi-calendar3-fill::before{content:""}.bi-calendar3-range-fill::before{content:""}.bi-calendar3-range::before{content:""}.bi-calendar3-week-fill::before{content:""}.bi-calendar3-week::before{content:""}.bi-calendar3::before{content:""}.bi-calendar4-event::before{content:""}.bi-calendar4-range::before{content:""}.bi-calendar4-week::before{content:""}.bi-calendar4::before{content:""}.bi-camera-fill::before{content:""}.bi-camera-reels-fill::before{content:""}.bi-camera-reels::before{content:""}.bi-camera-video-fill::before{content:""}.bi-camera-video-off-fill::before{content:""}.bi-camera-video-off::before{content:""}.bi-camera-video::before{content:""}.bi-camera::before{content:""}.bi-camera2::before{content:""}.bi-capslock-fill::before{content:""}.bi-capslock::before{content:""}.bi-card-checklist::before{content:""}.bi-card-heading::before{content:""}.bi-card-image::before{content:""}.bi-card-list::before{content:""}.bi-card-text::before{content:""}.bi-caret-down-fill::before{content:""}.bi-caret-down-square-fill::before{content:""}.bi-caret-down-square::before{content:""}.bi-caret-down::before{content:""}.bi-caret-left-fill::before{content:""}.bi-caret-left-square-fill::before{content:""}.bi-caret-left-square::before{content:""}.bi-caret-left::before{content:""}.bi-caret-right-fill::before{content:""}.bi-caret-right-square-fill::before{content:""}.bi-caret-right-square::before{content:""}.bi-caret-right::before{content:""}.bi-caret-up-fill::before{content:""}.bi-caret-up-square-fill::before{content:""}.bi-caret-up-square::before{content:""}.bi-caret-up::before{content:""}.bi-cart-check-fill::before{content:""}.bi-cart-check::before{content:""}.bi-cart-dash-fill::before{content:""}.bi-cart-dash::before{content:""}.bi-cart-fill::before{content:""}.bi-cart-plus-fill::before{content:""}.bi-cart-plus::before{content:""}.bi-cart-x-fill::before{content:""}.bi-cart-x::before{content:""}.bi-cart::before{content:""}.bi-cart2::before{content:""}.bi-cart3::before{content:""}.bi-cart4::before{content:""}.bi-cash-stack::before{content:""}.bi-cash::before{content:""}.bi-cast::before{content:""}.bi-chat-dots-fill::before{content:""}.bi-chat-dots::before{content:""}.bi-chat-fill::before{content:""}.bi-chat-left-dots-fill::before{content:""}.bi-chat-left-dots::before{content:""}.bi-chat-left-fill::before{content:""}.bi-chat-left-quote-fill::before{content:""}.bi-chat-left-quote::before{content:""}.bi-chat-left-text-fill::before{content:""}.bi-chat-left-text::before{content:""}.bi-chat-left::before{content:""}.bi-chat-quote-fill::before{content:""}.bi-chat-quote::before{content:""}.bi-chat-right-dots-fill::before{content:""}.bi-chat-right-dots::before{content:""}.bi-chat-right-fill::before{content:""}.bi-chat-right-quote-fill::before{content:""}.bi-chat-right-quote::before{content:""}.bi-chat-right-text-fill::before{content:""}.bi-chat-right-text::before{content:""}.bi-chat-right::before{content:""}.bi-chat-square-dots-fill::before{content:""}.bi-chat-square-dots::before{content:""}.bi-chat-square-fill::before{content:""}.bi-chat-square-quote-fill::before{content:""}.bi-chat-square-quote::before{content:""}.bi-chat-square-text-fill::before{content:""}.bi-chat-square-text::before{content:""}.bi-chat-square::before{content:""}.bi-chat-text-fill::before{content:""}.bi-chat-text::before{content:""}.bi-chat::before{content:""}.bi-check-all::before{content:""}.bi-check-circle-fill::before{content:""}.bi-check-circle::before{content:""}.bi-check-square-fill::before{content:""}.bi-check-square::before{content:""}.bi-check::before{content:""}.bi-check2-all::before{content:""}.bi-check2-circle::before{content:""}.bi-check2-square::before{content:""}.bi-check2::before{content:""}.bi-chevron-bar-contract::before{content:""}.bi-chevron-bar-down::before{content:""}.bi-chevron-bar-expand::before{content:""}.bi-chevron-bar-left::before{content:""}.bi-chevron-bar-right::before{content:""}.bi-chevron-bar-up::before{content:""}.bi-chevron-compact-down::before{content:""}.bi-chevron-compact-left::before{content:""}.bi-chevron-compact-right::before{content:""}.bi-chevron-compact-up::before{content:""}.bi-chevron-contract::before{content:""}.bi-chevron-double-down::before{content:""}.bi-chevron-double-left::before{content:""}.bi-chevron-double-right::before{content:""}.bi-chevron-double-up::before{content:""}.bi-chevron-down::before{content:""}.bi-chevron-expand::before{content:""}.bi-chevron-left::before{content:""}.bi-chevron-right::before{content:""}.bi-chevron-up::before{content:""}.bi-circle-fill::before{content:""}.bi-circle-half::before{content:""}.bi-circle-square::before{content:""}.bi-circle::before{content:""}.bi-clipboard-check::before{content:""}.bi-clipboard-data::before{content:""}.bi-clipboard-minus::before{content:""}.bi-clipboard-plus::before{content:""}.bi-clipboard-x::before{content:""}.bi-clipboard::before{content:""}.bi-clock-fill::before{content:""}.bi-clock-history::before{content:""}.bi-clock::before{content:""}.bi-cloud-arrow-down-fill::before{content:""}.bi-cloud-arrow-down::before{content:""}.bi-cloud-arrow-up-fill::before{content:""}.bi-cloud-arrow-up::before{content:""}.bi-cloud-check-fill::before{content:""}.bi-cloud-check::before{content:""}.bi-cloud-download-fill::before{content:""}.bi-cloud-download::before{content:""}.bi-cloud-drizzle-fill::before{content:""}.bi-cloud-drizzle::before{content:""}.bi-cloud-fill::before{content:""}.bi-cloud-fog-fill::before{content:""}.bi-cloud-fog::before{content:""}.bi-cloud-fog2-fill::before{content:""}.bi-cloud-fog2::before{content:""}.bi-cloud-hail-fill::before{content:""}.bi-cloud-hail::before{content:""}.bi-cloud-haze-1::before{content:""}.bi-cloud-haze-fill::before{content:""}.bi-cloud-haze::before{content:""}.bi-cloud-haze2-fill::before{content:""}.bi-cloud-lightning-fill::before{content:""}.bi-cloud-lightning-rain-fill::before{content:""}.bi-cloud-lightning-rain::before{content:""}.bi-cloud-lightning::before{content:""}.bi-cloud-minus-fill::before{content:""}.bi-cloud-minus::before{content:""}.bi-cloud-moon-fill::before{content:""}.bi-cloud-moon::before{content:""}.bi-cloud-plus-fill::before{content:""}.bi-cloud-plus::before{content:""}.bi-cloud-rain-fill::before{content:""}.bi-cloud-rain-heavy-fill::before{content:""}.bi-cloud-rain-heavy::before{content:""}.bi-cloud-rain::before{content:""}.bi-cloud-slash-fill::before{content:""}.bi-cloud-slash::before{content:""}.bi-cloud-sleet-fill::before{content:""}.bi-cloud-sleet::before{content:""}.bi-cloud-snow-fill::before{content:""}.bi-cloud-snow::before{content:""}.bi-cloud-sun-fill::before{content:""}.bi-cloud-sun::before{content:""}.bi-cloud-upload-fill::before{content:""}.bi-cloud-upload::before{content:""}.bi-cloud::before{content:""}.bi-clouds-fill::before{content:""}.bi-clouds::before{content:""}.bi-cloudy-fill::before{content:""}.bi-cloudy::before{content:""}.bi-code-slash::before{content:""}.bi-code-square::before{content:""}.bi-code::before{content:""}.bi-collection-fill::before{content:""}.bi-collection-play-fill::before{content:""}.bi-collection-play::before{content:""}.bi-collection::before{content:""}.bi-columns-gap::before{content:""}.bi-columns::before{content:""}.bi-command::before{content:""}.bi-compass-fill::before{content:""}.bi-compass::before{content:""}.bi-cone-striped::before{content:""}.bi-cone::before{content:""}.bi-controller::before{content:""}.bi-cpu-fill::before{content:""}.bi-cpu::before{content:""}.bi-credit-card-2-back-fill::before{content:""}.bi-credit-card-2-back::before{content:""}.bi-credit-card-2-front-fill::before{content:""}.bi-credit-card-2-front::before{content:""}.bi-credit-card-fill::before{content:""}.bi-credit-card::before{content:""}.bi-crop::before{content:""}.bi-cup-fill::before{content:""}.bi-cup-straw::before{content:""}.bi-cup::before{content:""}.bi-cursor-fill::before{content:""}.bi-cursor-text::before{content:""}.bi-cursor::before{content:""}.bi-dash-circle-dotted::before{content:""}.bi-dash-circle-fill::before{content:""}.bi-dash-circle::before{content:""}.bi-dash-square-dotted::before{content:""}.bi-dash-square-fill::before{content:""}.bi-dash-square::before{content:""}.bi-dash::before{content:""}.bi-diagram-2-fill::before{content:""}.bi-diagram-2::before{content:""}.bi-diagram-3-fill::before{content:""}.bi-diagram-3::before{content:""}.bi-diamond-fill::before{content:""}.bi-diamond-half::before{content:""}.bi-diamond::before{content:""}.bi-dice-1-fill::before{content:""}.bi-dice-1::before{content:""}.bi-dice-2-fill::before{content:""}.bi-dice-2::before{content:""}.bi-dice-3-fill::before{content:""}.bi-dice-3::before{content:""}.bi-dice-4-fill::before{content:""}.bi-dice-4::before{content:""}.bi-dice-5-fill::before{content:""}.bi-dice-5::before{content:""}.bi-dice-6-fill::before{content:""}.bi-dice-6::before{content:""}.bi-disc-fill::before{content:""}.bi-disc::before{content:""}.bi-discord::before{content:""}.bi-display-fill::before{content:""}.bi-display::before{content:""}.bi-distribute-horizontal::before{content:""}.bi-distribute-vertical::before{content:""}.bi-door-closed-fill::before{content:""}.bi-door-closed::before{content:""}.bi-door-open-fill::before{content:""}.bi-door-open::before{content:""}.bi-dot::before{content:""}.bi-download::before{content:""}.bi-droplet-fill::before{content:""}.bi-droplet-half::before{content:""}.bi-droplet::before{content:""}.bi-earbuds::before{content:""}.bi-easel-fill::before{content:""}.bi-easel::before{content:""}.bi-egg-fill::before{content:""}.bi-egg-fried::before{content:""}.bi-egg::before{content:""}.bi-eject-fill::before{content:""}.bi-eject::before{content:""}.bi-emoji-angry-fill::before{content:""}.bi-emoji-angry::before{content:""}.bi-emoji-dizzy-fill::before{content:""}.bi-emoji-dizzy::before{content:""}.bi-emoji-expressionless-fill::before{content:""}.bi-emoji-expressionless::before{content:""}.bi-emoji-frown-fill::before{content:""}.bi-emoji-frown::before{content:""}.bi-emoji-heart-eyes-fill::before{content:""}.bi-emoji-heart-eyes::before{content:""}.bi-emoji-laughing-fill::before{content:""}.bi-emoji-laughing::before{content:""}.bi-emoji-neutral-fill::before{content:""}.bi-emoji-neutral::before{content:""}.bi-emoji-smile-fill::before{content:""}.bi-emoji-smile-upside-down-fill::before{content:""}.bi-emoji-smile-upside-down::before{content:""}.bi-emoji-smile::before{content:""}.bi-emoji-sunglasses-fill::before{content:""}.bi-emoji-sunglasses::before{content:""}.bi-emoji-wink-fill::before{content:""}.bi-emoji-wink::before{content:""}.bi-envelope-fill::before{content:""}.bi-envelope-open-fill::before{content:""}.bi-envelope-open::before{content:""}.bi-envelope::before{content:""}.bi-eraser-fill::before{content:""}.bi-eraser::before{content:""}.bi-exclamation-circle-fill::before{content:""}.bi-exclamation-circle::before{content:""}.bi-exclamation-diamond-fill::before{content:""}.bi-exclamation-diamond::before{content:""}.bi-exclamation-octagon-fill::before{content:""}.bi-exclamation-octagon::before{content:""}.bi-exclamation-square-fill::before{content:""}.bi-exclamation-square::before{content:""}.bi-exclamation-triangle-fill::before{content:""}.bi-exclamation-triangle::before{content:""}.bi-exclamation::before{content:""}.bi-exclude::before{content:""}.bi-eye-fill::before{content:""}.bi-eye-slash-fill::before{content:""}.bi-eye-slash::before{content:""}.bi-eye::before{content:""}.bi-eyedropper::before{content:""}.bi-eyeglasses::before{content:""}.bi-facebook::before{content:""}.bi-file-arrow-down-fill::before{content:""}.bi-file-arrow-down::before{content:""}.bi-file-arrow-up-fill::before{content:""}.bi-file-arrow-up::before{content:""}.bi-file-bar-graph-fill::before{content:""}.bi-file-bar-graph::before{content:""}.bi-file-binary-fill::before{content:""}.bi-file-binary::before{content:""}.bi-file-break-fill::before{content:""}.bi-file-break::before{content:""}.bi-file-check-fill::before{content:""}.bi-file-check::before{content:""}.bi-file-code-fill::before{content:""}.bi-file-code::before{content:""}.bi-file-diff-fill::before{content:""}.bi-file-diff::before{content:""}.bi-file-earmark-arrow-down-fill::before{content:""}.bi-file-earmark-arrow-down::before{content:""}.bi-file-earmark-arrow-up-fill::before{content:""}.bi-file-earmark-arrow-up::before{content:""}.bi-file-earmark-bar-graph-fill::before{content:""}.bi-file-earmark-bar-graph::before{content:""}.bi-file-earmark-binary-fill::before{content:""}.bi-file-earmark-binary::before{content:""}.bi-file-earmark-break-fill::before{content:""}.bi-file-earmark-break::before{content:""}.bi-file-earmark-check-fill::before{content:""}.bi-file-earmark-check::before{content:""}.bi-file-earmark-code-fill::before{content:""}.bi-file-earmark-code::before{content:""}.bi-file-earmark-diff-fill::before{content:""}.bi-file-earmark-diff::before{content:""}.bi-file-earmark-easel-fill::before{content:""}.bi-file-earmark-easel::before{content:""}.bi-file-earmark-excel-fill::before{content:""}.bi-file-earmark-excel::before{content:""}.bi-file-earmark-fill::before{content:""}.bi-file-earmark-font-fill::before{content:""}.bi-file-earmark-font::before{content:""}.bi-file-earmark-image-fill::before{content:""}.bi-file-earmark-image::before{content:""}.bi-file-earmark-lock-fill::before{content:""}.bi-file-earmark-lock::before{content:""}.bi-file-earmark-lock2-fill::before{content:""}.bi-file-earmark-lock2::before{content:""}.bi-file-earmark-medical-fill::before{content:""}.bi-file-earmark-medical::before{content:""}.bi-file-earmark-minus-fill::before{content:""}.bi-file-earmark-minus::before{content:""}.bi-file-earmark-music-fill::before{content:""}.bi-file-earmark-music::before{content:""}.bi-file-earmark-person-fill::before{content:""}.bi-file-earmark-person::before{content:""}.bi-file-earmark-play-fill::before{content:""}.bi-file-earmark-play::before{content:""}.bi-file-earmark-plus-fill::before{content:""}.bi-file-earmark-plus::before{content:""}.bi-file-earmark-post-fill::before{content:""}.bi-file-earmark-post::before{content:""}.bi-file-earmark-ppt-fill::before{content:""}.bi-file-earmark-ppt::before{content:""}.bi-file-earmark-richtext-fill::before{content:""}.bi-file-earmark-richtext::before{content:""}.bi-file-earmark-ruled-fill::before{content:""}.bi-file-earmark-ruled::before{content:""}.bi-file-earmark-slides-fill::before{content:""}.bi-file-earmark-slides::before{content:""}.bi-file-earmark-spreadsheet-fill::before{content:""}.bi-file-earmark-spreadsheet::before{content:""}.bi-file-earmark-text-fill::before{content:""}.bi-file-earmark-text::before{content:""}.bi-file-earmark-word-fill::before{content:""}.bi-file-earmark-word::before{content:""}.bi-file-earmark-x-fill::before{content:""}.bi-file-earmark-x::before{content:""}.bi-file-earmark-zip-fill::before{content:""}.bi-file-earmark-zip::before{content:""}.bi-file-earmark::before{content:""}.bi-file-easel-fill::before{content:""}.bi-file-easel::before{content:""}.bi-file-excel-fill::before{content:""}.bi-file-excel::before{content:""}.bi-file-fill::before{content:""}.bi-file-font-fill::before{content:""}.bi-file-font::before{content:""}.bi-file-image-fill::before{content:""}.bi-file-image::before{content:""}.bi-file-lock-fill::before{content:""}.bi-file-lock::before{content:""}.bi-file-lock2-fill::before{content:""}.bi-file-lock2::before{content:""}.bi-file-medical-fill::before{content:""}.bi-file-medical::before{content:""}.bi-file-minus-fill::before{content:""}.bi-file-minus::before{content:""}.bi-file-music-fill::before{content:""}.bi-file-music::before{content:""}.bi-file-person-fill::before{content:""}.bi-file-person::before{content:""}.bi-file-play-fill::before{content:""}.bi-file-play::before{content:""}.bi-file-plus-fill::before{content:""}.bi-file-plus::before{content:""}.bi-file-post-fill::before{content:""}.bi-file-post::before{content:""}.bi-file-ppt-fill::before{content:""}.bi-file-ppt::before{content:""}.bi-file-richtext-fill::before{content:""}.bi-file-richtext::before{content:""}.bi-file-ruled-fill::before{content:""}.bi-file-ruled::before{content:""}.bi-file-slides-fill::before{content:""}.bi-file-slides::before{content:""}.bi-file-spreadsheet-fill::before{content:""}.bi-file-spreadsheet::before{content:""}.bi-file-text-fill::before{content:""}.bi-file-text::before{content:""}.bi-file-word-fill::before{content:""}.bi-file-word::before{content:""}.bi-file-x-fill::before{content:""}.bi-file-x::before{content:""}.bi-file-zip-fill::before{content:""}.bi-file-zip::before{content:""}.bi-file::before{content:""}.bi-files-alt::before{content:""}.bi-files::before{content:""}.bi-film::before{content:""}.bi-filter-circle-fill::before{content:""}.bi-filter-circle::before{content:""}.bi-filter-left::before{content:""}.bi-filter-right::before{content:""}.bi-filter-square-fill::before{content:""}.bi-filter-square::before{content:""}.bi-filter::before{content:""}.bi-flag-fill::before{content:""}.bi-flag::before{content:""}.bi-flower1::before{content:""}.bi-flower2::before{content:""}.bi-flower3::before{content:""}.bi-folder-check::before{content:""}.bi-folder-fill::before{content:""}.bi-folder-minus::before{content:""}.bi-folder-plus::before{content:""}.bi-folder-symlink-fill::before{content:""}.bi-folder-symlink::before{content:""}.bi-folder-x::before{content:""}.bi-folder::before{content:""}.bi-folder2-open::before{content:""}.bi-folder2::before{content:""}.bi-fonts::before{content:""}.bi-forward-fill::before{content:""}.bi-forward::before{content:""}.bi-front::before{content:""}.bi-fullscreen-exit::before{content:""}.bi-fullscreen::before{content:""}.bi-funnel-fill::before{content:""}.bi-funnel::before{content:""}.bi-gear-fill::before{content:""}.bi-gear-wide-connected::before{content:""}.bi-gear-wide::before{content:""}.bi-gear::before{content:""}.bi-gem::before{content:""}.bi-geo-alt-fill::before{content:""}.bi-geo-alt::before{content:""}.bi-geo-fill::before{content:""}.bi-geo::before{content:""}.bi-gift-fill::before{content:""}.bi-gift::before{content:""}.bi-github::before{content:""}.bi-globe::before{content:""}.bi-globe2::before{content:""}.bi-google::before{content:""}.bi-graph-down::before{content:""}.bi-graph-up::before{content:""}.bi-grid-1x2-fill::before{content:""}.bi-grid-1x2::before{content:""}.bi-grid-3x2-gap-fill::before{content:""}.bi-grid-3x2-gap::before{content:""}.bi-grid-3x2::before{content:""}.bi-grid-3x3-gap-fill::before{content:""}.bi-grid-3x3-gap::before{content:""}.bi-grid-3x3::before{content:""}.bi-grid-fill::before{content:""}.bi-grid::before{content:""}.bi-grip-horizontal::before{content:""}.bi-grip-vertical::before{content:""}.bi-hammer::before{content:""}.bi-hand-index-fill::before{content:""}.bi-hand-index-thumb-fill::before{content:""}.bi-hand-index-thumb::before{content:""}.bi-hand-index::before{content:""}.bi-hand-thumbs-down-fill::before{content:""}.bi-hand-thumbs-down::before{content:""}.bi-hand-thumbs-up-fill::before{content:""}.bi-hand-thumbs-up::before{content:""}.bi-handbag-fill::before{content:""}.bi-handbag::before{content:""}.bi-hash::before{content:""}.bi-hdd-fill::before{content:""}.bi-hdd-network-fill::before{content:""}.bi-hdd-network::before{content:""}.bi-hdd-rack-fill::before{content:""}.bi-hdd-rack::before{content:""}.bi-hdd-stack-fill::before{content:""}.bi-hdd-stack::before{content:""}.bi-hdd::before{content:""}.bi-headphones::before{content:""}.bi-headset::before{content:""}.bi-heart-fill::before{content:""}.bi-heart-half::before{content:""}.bi-heart::before{content:""}.bi-heptagon-fill::before{content:""}.bi-heptagon-half::before{content:""}.bi-heptagon::before{content:""}.bi-hexagon-fill::before{content:""}.bi-hexagon-half::before{content:""}.bi-hexagon::before{content:""}.bi-hourglass-bottom::before{content:""}.bi-hourglass-split::before{content:""}.bi-hourglass-top::before{content:""}.bi-hourglass::before{content:""}.bi-house-door-fill::before{content:""}.bi-house-door::before{content:""}.bi-house-fill::before{content:""}.bi-house::before{content:""}.bi-hr::before{content:""}.bi-hurricane::before{content:""}.bi-image-alt::before{content:""}.bi-image-fill::before{content:""}.bi-image::before{content:""}.bi-images::before{content:""}.bi-inbox-fill::before{content:""}.bi-inbox::before{content:""}.bi-inboxes-fill::before{content:""}.bi-inboxes::before{content:""}.bi-info-circle-fill::before{content:""}.bi-info-circle::before{content:""}.bi-info-square-fill::before{content:""}.bi-info-square::before{content:""}.bi-info::before{content:""}.bi-input-cursor-text::before{content:""}.bi-input-cursor::before{content:""}.bi-instagram::before{content:""}.bi-intersect::before{content:""}.bi-journal-album::before{content:""}.bi-journal-arrow-down::before{content:""}.bi-journal-arrow-up::before{content:""}.bi-journal-bookmark-fill::before{content:""}.bi-journal-bookmark::before{content:""}.bi-journal-check::before{content:""}.bi-journal-code::before{content:""}.bi-journal-medical::before{content:""}.bi-journal-minus::before{content:""}.bi-journal-plus::before{content:""}.bi-journal-richtext::before{content:""}.bi-journal-text::before{content:""}.bi-journal-x::before{content:""}.bi-journal::before{content:""}.bi-journals::before{content:""}.bi-joystick::before{content:""}.bi-justify-left::before{content:""}.bi-justify-right::before{content:""}.bi-justify::before{content:""}.bi-kanban-fill::before{content:""}.bi-kanban::before{content:""}.bi-key-fill::before{content:""}.bi-key::before{content:""}.bi-keyboard-fill::before{content:""}.bi-keyboard::before{content:""}.bi-ladder::before{content:""}.bi-lamp-fill::before{content:""}.bi-lamp::before{content:""}.bi-laptop-fill::before{content:""}.bi-laptop::before{content:""}.bi-layer-backward::before{content:""}.bi-layer-forward::before{content:""}.bi-layers-fill::before{content:""}.bi-layers-half::before{content:""}.bi-layers::before{content:""}.bi-layout-sidebar-inset-reverse::before{content:""}.bi-layout-sidebar-inset::before{content:""}.bi-layout-sidebar-reverse::before{content:""}.bi-layout-sidebar::before{content:""}.bi-layout-split::before{content:""}.bi-layout-text-sidebar-reverse::before{content:""}.bi-layout-text-sidebar::before{content:""}.bi-layout-text-window-reverse::before{content:""}.bi-layout-text-window::before{content:""}.bi-layout-three-columns::before{content:""}.bi-layout-wtf::before{content:""}.bi-life-preserver::before{content:""}.bi-lightbulb-fill::before{content:""}.bi-lightbulb-off-fill::before{content:""}.bi-lightbulb-off::before{content:""}.bi-lightbulb::before{content:""}.bi-lightning-charge-fill::before{content:""}.bi-lightning-charge::before{content:""}.bi-lightning-fill::before{content:""}.bi-lightning::before{content:""}.bi-link-45deg::before{content:""}.bi-link::before{content:""}.bi-linkedin::before{content:""}.bi-list-check::before{content:""}.bi-list-nested::before{content:""}.bi-list-ol::before{content:""}.bi-list-stars::before{content:""}.bi-list-task::before{content:""}.bi-list-ul::before{content:""}.bi-list::before{content:""}.bi-lock-fill::before{content:""}.bi-lock::before{content:""}.bi-mailbox::before{content:""}.bi-mailbox2::before{content:""}.bi-map-fill::before{content:""}.bi-map::before{content:""}.bi-markdown-fill::before{content:""}.bi-markdown::before{content:""}.bi-mask::before{content:""}.bi-megaphone-fill::before{content:""}.bi-megaphone::before{content:""}.bi-menu-app-fill::before{content:""}.bi-menu-app::before{content:""}.bi-menu-button-fill::before{content:""}.bi-menu-button-wide-fill::before{content:""}.bi-menu-button-wide::before{content:""}.bi-menu-button::before{content:""}.bi-menu-down::before{content:""}.bi-menu-up::before{content:""}.bi-mic-fill::before{content:""}.bi-mic-mute-fill::before{content:""}.bi-mic-mute::before{content:""}.bi-mic::before{content:""}.bi-minecart-loaded::before{content:""}.bi-minecart::before{content:""}.bi-moisture::before{content:""}.bi-moon-fill::before{content:""}.bi-moon-stars-fill::before{content:""}.bi-moon-stars::before{content:""}.bi-moon::before{content:""}.bi-mouse-fill::before{content:""}.bi-mouse::before{content:""}.bi-mouse2-fill::before{content:""}.bi-mouse2::before{content:""}.bi-mouse3-fill::before{content:""}.bi-mouse3::before{content:""}.bi-music-note-beamed::before{content:""}.bi-music-note-list::before{content:""}.bi-music-note::before{content:""}.bi-music-player-fill::before{content:""}.bi-music-player::before{content:""}.bi-newspaper::before{content:""}.bi-node-minus-fill::before{content:""}.bi-node-minus::before{content:""}.bi-node-plus-fill::before{content:""}.bi-node-plus::before{content:""}.bi-nut-fill::before{content:""}.bi-nut::before{content:""}.bi-octagon-fill::before{content:""}.bi-octagon-half::before{content:""}.bi-octagon::before{content:""}.bi-option::before{content:""}.bi-outlet::before{content:""}.bi-paint-bucket::before{content:""}.bi-palette-fill::before{content:""}.bi-palette::before{content:""}.bi-palette2::before{content:""}.bi-paperclip::before{content:""}.bi-paragraph::before{content:""}.bi-patch-check-fill::before{content:""}.bi-patch-check::before{content:""}.bi-patch-exclamation-fill::before{content:""}.bi-patch-exclamation::before{content:""}.bi-patch-minus-fill::before{content:""}.bi-patch-minus::before{content:""}.bi-patch-plus-fill::before{content:""}.bi-patch-plus::before{content:""}.bi-patch-question-fill::before{content:""}.bi-patch-question::before{content:""}.bi-pause-btn-fill::before{content:""}.bi-pause-btn::before{content:""}.bi-pause-circle-fill::before{content:""}.bi-pause-circle::before{content:""}.bi-pause-fill::before{content:""}.bi-pause::before{content:""}.bi-peace-fill::before{content:""}.bi-peace::before{content:""}.bi-pen-fill::before{content:""}.bi-pen::before{content:""}.bi-pencil-fill::before{content:""}.bi-pencil-square::before{content:""}.bi-pencil::before{content:""}.bi-pentagon-fill::before{content:""}.bi-pentagon-half::before{content:""}.bi-pentagon::before{content:""}.bi-people-fill::before{content:""}.bi-people::before{content:""}.bi-percent::before{content:""}.bi-person-badge-fill::before{content:""}.bi-person-badge::before{content:""}.bi-person-bounding-box::before{content:""}.bi-person-check-fill::before{content:""}.bi-person-check::before{content:""}.bi-person-circle::before{content:""}.bi-person-dash-fill::before{content:""}.bi-person-dash::before{content:""}.bi-person-fill::before{content:""}.bi-person-lines-fill::before{content:""}.bi-person-plus-fill::before{content:""}.bi-person-plus::before{content:""}.bi-person-square::before{content:""}.bi-person-x-fill::before{content:""}.bi-person-x::before{content:""}.bi-person::before{content:""}.bi-phone-fill::before{content:""}.bi-phone-landscape-fill::before{content:""}.bi-phone-landscape::before{content:""}.bi-phone-vibrate-fill::before{content:""}.bi-phone-vibrate::before{content:""}.bi-phone::before{content:""}.bi-pie-chart-fill::before{content:""}.bi-pie-chart::before{content:""}.bi-pin-angle-fill::before{content:""}.bi-pin-angle::before{content:""}.bi-pin-fill::before{content:""}.bi-pin::before{content:""}.bi-pip-fill::before{content:""}.bi-pip::before{content:""}.bi-play-btn-fill::before{content:""}.bi-play-btn::before{content:""}.bi-play-circle-fill::before{content:""}.bi-play-circle::before{content:""}.bi-play-fill::before{content:""}.bi-play::before{content:""}.bi-plug-fill::before{content:""}.bi-plug::before{content:""}.bi-plus-circle-dotted::before{content:""}.bi-plus-circle-fill::before{content:""}.bi-plus-circle::before{content:""}.bi-plus-square-dotted::before{content:""}.bi-plus-square-fill::before{content:""}.bi-plus-square::before{content:""}.bi-plus::before{content:""}.bi-power::before{content:""}.bi-printer-fill::before{content:""}.bi-printer::before{content:""}.bi-puzzle-fill::before{content:""}.bi-puzzle::before{content:""}.bi-question-circle-fill::before{content:""}.bi-question-circle::before{content:""}.bi-question-diamond-fill::before{content:""}.bi-question-diamond::before{content:""}.bi-question-octagon-fill::before{content:""}.bi-question-octagon::before{content:""}.bi-question-square-fill::before{content:""}.bi-question-square::before{content:""}.bi-question::before{content:""}.bi-rainbow::before{content:""}.bi-receipt-cutoff::before{content:""}.bi-receipt::before{content:""}.bi-reception-0::before{content:""}.bi-reception-1::before{content:""}.bi-reception-2::before{content:""}.bi-reception-3::before{content:""}.bi-reception-4::before{content:""}.bi-record-btn-fill::before{content:""}.bi-record-btn::before{content:""}.bi-record-circle-fill::before{content:""}.bi-record-circle::before{content:""}.bi-record-fill::before{content:""}.bi-record::before{content:""}.bi-record2-fill::before{content:""}.bi-record2::before{content:""}.bi-reply-all-fill::before{content:""}.bi-reply-all::before{content:""}.bi-reply-fill::before{content:""}.bi-reply::before{content:""}.bi-rss-fill::before{content:""}.bi-rss::before{content:""}.bi-rulers::before{content:""}.bi-save-fill::before{content:""}.bi-save::before{content:""}.bi-save2-fill::before{content:""}.bi-save2::before{content:""}.bi-scissors::before{content:""}.bi-screwdriver::before{content:""}.bi-search::before{content:""}.bi-segmented-nav::before{content:""}.bi-server::before{content:""}.bi-share-fill::before{content:""}.bi-share::before{content:""}.bi-shield-check::before{content:""}.bi-shield-exclamation::before{content:""}.bi-shield-fill-check::before{content:""}.bi-shield-fill-exclamation::before{content:""}.bi-shield-fill-minus::before{content:""}.bi-shield-fill-plus::before{content:""}.bi-shield-fill-x::before{content:""}.bi-shield-fill::before{content:""}.bi-shield-lock-fill::before{content:""}.bi-shield-lock::before{content:""}.bi-shield-minus::before{content:""}.bi-shield-plus::before{content:""}.bi-shield-shaded::before{content:""}.bi-shield-slash-fill::before{content:""}.bi-shield-slash::before{content:""}.bi-shield-x::before{content:""}.bi-shield::before{content:""}.bi-shift-fill::before{content:""}.bi-shift::before{content:""}.bi-shop-window::before{content:""}.bi-shop::before{content:""}.bi-shuffle::before{content:""}.bi-signpost-2-fill::before{content:""}.bi-signpost-2::before{content:""}.bi-signpost-fill::before{content:""}.bi-signpost-split-fill::before{content:""}.bi-signpost-split::before{content:""}.bi-signpost::before{content:""}.bi-sim-fill::before{content:""}.bi-sim::before{content:""}.bi-skip-backward-btn-fill::before{content:""}.bi-skip-backward-btn::before{content:""}.bi-skip-backward-circle-fill::before{content:""}.bi-skip-backward-circle::before{content:""}.bi-skip-backward-fill::before{content:""}.bi-skip-backward::before{content:""}.bi-skip-end-btn-fill::before{content:""}.bi-skip-end-btn::before{content:""}.bi-skip-end-circle-fill::before{content:""}.bi-skip-end-circle::before{content:""}.bi-skip-end-fill::before{content:""}.bi-skip-end::before{content:""}.bi-skip-forward-btn-fill::before{content:""}.bi-skip-forward-btn::before{content:""}.bi-skip-forward-circle-fill::before{content:""}.bi-skip-forward-circle::before{content:""}.bi-skip-forward-fill::before{content:""}.bi-skip-forward::before{content:""}.bi-skip-start-btn-fill::before{content:""}.bi-skip-start-btn::before{content:""}.bi-skip-start-circle-fill::before{content:""}.bi-skip-start-circle::before{content:""}.bi-skip-start-fill::before{content:""}.bi-skip-start::before{content:""}.bi-slack::before{content:""}.bi-slash-circle-fill::before{content:""}.bi-slash-circle::before{content:""}.bi-slash-square-fill::before{content:""}.bi-slash-square::before{content:""}.bi-slash::before{content:""}.bi-sliders::before{content:""}.bi-smartwatch::before{content:""}.bi-snow::before{content:""}.bi-snow2::before{content:""}.bi-snow3::before{content:""}.bi-sort-alpha-down-alt::before{content:""}.bi-sort-alpha-down::before{content:""}.bi-sort-alpha-up-alt::before{content:""}.bi-sort-alpha-up::before{content:""}.bi-sort-down-alt::before{content:""}.bi-sort-down::before{content:""}.bi-sort-numeric-down-alt::before{content:""}.bi-sort-numeric-down::before{content:""}.bi-sort-numeric-up-alt::before{content:""}.bi-sort-numeric-up::before{content:""}.bi-sort-up-alt::before{content:""}.bi-sort-up::before{content:""}.bi-soundwave::before{content:""}.bi-speaker-fill::before{content:""}.bi-speaker::before{content:""}.bi-speedometer::before{content:""}.bi-speedometer2::before{content:""}.bi-spellcheck::before{content:""}.bi-square-fill::before{content:""}.bi-square-half::before{content:""}.bi-square::before{content:""}.bi-stack::before{content:""}.bi-star-fill::before{content:""}.bi-star-half::before{content:""}.bi-star::before{content:""}.bi-stars::before{content:""}.bi-stickies-fill::before{content:""}.bi-stickies::before{content:""}.bi-sticky-fill::before{content:""}.bi-sticky::before{content:""}.bi-stop-btn-fill::before{content:""}.bi-stop-btn::before{content:""}.bi-stop-circle-fill::before{content:""}.bi-stop-circle::before{content:""}.bi-stop-fill::before{content:""}.bi-stop::before{content:""}.bi-stoplights-fill::before{content:""}.bi-stoplights::before{content:""}.bi-stopwatch-fill::before{content:""}.bi-stopwatch::before{content:""}.bi-subtract::before{content:""}.bi-suit-club-fill::before{content:""}.bi-suit-club::before{content:""}.bi-suit-diamond-fill::before{content:""}.bi-suit-diamond::before{content:""}.bi-suit-heart-fill::before{content:""}.bi-suit-heart::before{content:""}.bi-suit-spade-fill::before{content:""}.bi-suit-spade::before{content:""}.bi-sun-fill::before{content:""}.bi-sun::before{content:""}.bi-sunglasses::before{content:""}.bi-sunrise-fill::before{content:""}.bi-sunrise::before{content:""}.bi-sunset-fill::before{content:""}.bi-sunset::before{content:""}.bi-symmetry-horizontal::before{content:""}.bi-symmetry-vertical::before{content:""}.bi-table::before{content:""}.bi-tablet-fill::before{content:""}.bi-tablet-landscape-fill::before{content:""}.bi-tablet-landscape::before{content:""}.bi-tablet::before{content:""}.bi-tag-fill::before{content:""}.bi-tag::before{content:""}.bi-tags-fill::before{content:""}.bi-tags::before{content:""}.bi-telegram::before{content:""}.bi-telephone-fill::before{content:""}.bi-telephone-forward-fill::before{content:""}.bi-telephone-forward::before{content:""}.bi-telephone-inbound-fill::before{content:""}.bi-telephone-inbound::before{content:""}.bi-telephone-minus-fill::before{content:""}.bi-telephone-minus::before{content:""}.bi-telephone-outbound-fill::before{content:""}.bi-telephone-outbound::before{content:""}.bi-telephone-plus-fill::before{content:""}.bi-telephone-plus::before{content:""}.bi-telephone-x-fill::before{content:""}.bi-telephone-x::before{content:""}.bi-telephone::before{content:""}.bi-terminal-fill::before{content:""}.bi-terminal::before{content:""}.bi-text-center::before{content:""}.bi-text-indent-left::before{content:""}.bi-text-indent-right::before{content:""}.bi-text-left::before{content:""}.bi-text-paragraph::before{content:""}.bi-text-right::before{content:""}.bi-textarea-resize::before{content:""}.bi-textarea-t::before{content:""}.bi-textarea::before{content:""}.bi-thermometer-half::before{content:""}.bi-thermometer-high::before{content:""}.bi-thermometer-low::before{content:""}.bi-thermometer-snow::before{content:""}.bi-thermometer-sun::before{content:""}.bi-thermometer::before{content:""}.bi-three-dots-vertical::before{content:""}.bi-three-dots::before{content:""}.bi-toggle-off::before{content:""}.bi-toggle-on::before{content:""}.bi-toggle2-off::before{content:""}.bi-toggle2-on::before{content:""}.bi-toggles::before{content:""}.bi-toggles2::before{content:""}.bi-tools::before{content:""}.bi-tornado::before{content:""}.bi-trash-fill::before{content:""}.bi-trash::before{content:""}.bi-trash2-fill::before{content:""}.bi-trash2::before{content:""}.bi-tree-fill::before{content:""}.bi-tree::before{content:""}.bi-triangle-fill::before{content:""}.bi-triangle-half::before{content:""}.bi-triangle::before{content:""}.bi-trophy-fill::before{content:""}.bi-trophy::before{content:""}.bi-tropical-storm::before{content:""}.bi-truck-flatbed::before{content:""}.bi-truck::before{content:""}.bi-tsunami::before{content:""}.bi-tv-fill::before{content:""}.bi-tv::before{content:""}.bi-twitch::before{content:""}.bi-twitter::before{content:""}.bi-type-bold::before{content:""}.bi-type-h1::before{content:""}.bi-type-h2::before{content:""}.bi-type-h3::before{content:""}.bi-type-italic::before{content:""}.bi-type-strikethrough::before{content:""}.bi-type-underline::before{content:""}.bi-type::before{content:""}.bi-ui-checks-grid::before{content:""}.bi-ui-checks::before{content:""}.bi-ui-radios-grid::before{content:""}.bi-ui-radios::before{content:""}.bi-umbrella-fill::before{content:""}.bi-umbrella::before{content:""}.bi-union::before{content:""}.bi-unlock-fill::before{content:""}.bi-unlock::before{content:""}.bi-upc-scan::before{content:""}.bi-upc::before{content:""}.bi-upload::before{content:""}.bi-vector-pen::before{content:""}.bi-view-list::before{content:""}.bi-view-stacked::before{content:""}.bi-vinyl-fill::before{content:""}.bi-vinyl::before{content:""}.bi-voicemail::before{content:""}.bi-volume-down-fill::before{content:""}.bi-volume-down::before{content:""}.bi-volume-mute-fill::before{content:""}.bi-volume-mute::before{content:""}.bi-volume-off-fill::before{content:""}.bi-volume-off::before{content:""}.bi-volume-up-fill::before{content:""}.bi-volume-up::before{content:""}.bi-vr::before{content:""}.bi-wallet-fill::before{content:""}.bi-wallet::before{content:""}.bi-wallet2::before{content:""}.bi-watch::before{content:""}.bi-water::before{content:""}.bi-whatsapp::before{content:""}.bi-wifi-1::before{content:""}.bi-wifi-2::before{content:""}.bi-wifi-off::before{content:""}.bi-wifi::before{content:""}.bi-wind::before{content:""}.bi-window-dock::before{content:""}.bi-window-sidebar::before{content:""}.bi-window::before{content:""}.bi-wrench::before{content:""}.bi-x-circle-fill::before{content:""}.bi-x-circle::before{content:""}.bi-x-diamond-fill::before{content:""}.bi-x-diamond::before{content:""}.bi-x-octagon-fill::before{content:""}.bi-x-octagon::before{content:""}.bi-x-square-fill::before{content:""}.bi-x-square::before{content:""}.bi-x::before{content:""}.bi-youtube::before{content:""}.bi-zoom-in::before{content:""}.bi-zoom-out::before{content:""}.bi-bank::before{content:""}.bi-bank2::before{content:""}.bi-bell-slash-fill::before{content:""}.bi-bell-slash::before{content:""}.bi-cash-coin::before{content:""}.bi-check-lg::before{content:""}.bi-coin::before{content:""}.bi-currency-bitcoin::before{content:""}.bi-currency-dollar::before{content:""}.bi-currency-euro::before{content:""}.bi-currency-exchange::before{content:""}.bi-currency-pound::before{content:""}.bi-currency-yen::before{content:""}.bi-dash-lg::before{content:""}.bi-exclamation-lg::before{content:""}.bi-file-earmark-pdf-fill::before{content:""}.bi-file-earmark-pdf::before{content:""}.bi-file-pdf-fill::before{content:""}.bi-file-pdf::before{content:""}.bi-gender-ambiguous::before{content:""}.bi-gender-female::before{content:""}.bi-gender-male::before{content:""}.bi-gender-trans::before{content:""}.bi-headset-vr::before{content:""}.bi-info-lg::before{content:""}.bi-mastodon::before{content:""}.bi-messenger::before{content:""}.bi-piggy-bank-fill::before{content:""}.bi-piggy-bank::before{content:""}.bi-pin-map-fill::before{content:""}.bi-pin-map::before{content:""}.bi-plus-lg::before{content:""}.bi-question-lg::before{content:""}.bi-recycle::before{content:""}.bi-reddit::before{content:""}.bi-safe-fill::before{content:""}.bi-safe2-fill::before{content:""}.bi-safe2::before{content:""}.bi-sd-card-fill::before{content:""}.bi-sd-card::before{content:""}.bi-skype::before{content:""}.bi-slash-lg::before{content:""}.bi-translate::before{content:""}.bi-x-lg::before{content:""}.bi-safe::before{content:""}.bi-apple::before{content:""}.bi-microsoft::before{content:""}.bi-windows::before{content:""}.bi-behance::before{content:""}.bi-dribbble::before{content:""}.bi-line::before{content:""}.bi-medium::before{content:""}.bi-paypal::before{content:""}.bi-pinterest::before{content:""}.bi-signal::before{content:""}.bi-snapchat::before{content:""}.bi-spotify::before{content:""}.bi-stack-overflow::before{content:""}.bi-strava::before{content:""}.bi-wordpress::before{content:""}.bi-vimeo::before{content:""}.bi-activity::before{content:""}.bi-easel2-fill::before{content:""}.bi-easel2::before{content:""}.bi-easel3-fill::before{content:""}.bi-easel3::before{content:""}.bi-fan::before{content:""}.bi-fingerprint::before{content:""}.bi-graph-down-arrow::before{content:""}.bi-graph-up-arrow::before{content:""}.bi-hypnotize::before{content:""}.bi-magic::before{content:""}.bi-person-rolodex::before{content:""}.bi-person-video::before{content:""}.bi-person-video2::before{content:""}.bi-person-video3::before{content:""}.bi-person-workspace::before{content:""}.bi-radioactive::before{content:""}.bi-webcam-fill::before{content:""}.bi-webcam::before{content:""}.bi-yin-yang::before{content:""}.bi-bandaid-fill::before{content:""}.bi-bandaid::before{content:""}.bi-bluetooth::before{content:""}.bi-body-text::before{content:""}.bi-boombox::before{content:""}.bi-boxes::before{content:""}.bi-dpad-fill::before{content:""}.bi-dpad::before{content:""}.bi-ear-fill::before{content:""}.bi-ear::before{content:""}.bi-envelope-check-1::before{content:""}.bi-envelope-check-fill::before{content:""}.bi-envelope-check::before{content:""}.bi-envelope-dash-1::before{content:""}.bi-envelope-dash-fill::before{content:""}.bi-envelope-dash::before{content:""}.bi-envelope-exclamation-1::before{content:""}.bi-envelope-exclamation-fill::before{content:""}.bi-envelope-exclamation::before{content:""}.bi-envelope-plus-fill::before{content:""}.bi-envelope-plus::before{content:""}.bi-envelope-slash-1::before{content:""}.bi-envelope-slash-fill::before{content:""}.bi-envelope-slash::before{content:""}.bi-envelope-x-1::before{content:""}.bi-envelope-x-fill::before{content:""}.bi-envelope-x::before{content:""}.bi-explicit-fill::before{content:""}.bi-explicit::before{content:""}.bi-git::before{content:""}.bi-infinity::before{content:""}.bi-list-columns-reverse::before{content:""}.bi-list-columns::before{content:""}.bi-meta::before{content:""}.bi-mortorboard-fill::before{content:""}.bi-mortorboard::before{content:""}.bi-nintendo-switch::before{content:""}.bi-pc-display-horizontal::before{content:""}.bi-pc-display::before{content:""}.bi-pc-horizontal::before{content:""}.bi-pc::before{content:""}.bi-playstation::before{content:""}.bi-plus-slash-minus::before{content:""}.bi-projector-fill::before{content:""}.bi-projector::before{content:""}.bi-qr-code-scan::before{content:""}.bi-qr-code::before{content:""}.bi-quora::before{content:""}.bi-quote::before{content:""}.bi-robot::before{content:""}.bi-send-check-fill::before{content:""}.bi-send-check::before{content:""}.bi-send-dash-fill::before{content:""}.bi-send-dash::before{content:""}.bi-send-exclamation-1::before{content:""}.bi-send-exclamation-fill::before{content:""}.bi-send-exclamation::before{content:""}.bi-send-fill::before{content:""}.bi-send-plus-fill::before{content:""}.bi-send-plus::before{content:""}.bi-send-slash-fill::before{content:""}.bi-send-slash::before{content:""}.bi-send-x-fill::before{content:""}.bi-send-x::before{content:""}.bi-send::before{content:""}.bi-steam::before{content:""}.bi-terminal-dash-1::before{content:""}.bi-terminal-dash::before{content:""}.bi-terminal-plus::before{content:""}.bi-terminal-split::before{content:""}.bi-ticket-detailed-fill::before{content:""}.bi-ticket-detailed::before{content:""}.bi-ticket-fill::before{content:""}.bi-ticket-perforated-fill::before{content:""}.bi-ticket-perforated::before{content:""}.bi-ticket::before{content:""}.bi-tiktok::before{content:""}.bi-window-dash::before{content:""}.bi-window-desktop::before{content:""}.bi-window-fullscreen::before{content:""}.bi-window-plus::before{content:""}.bi-window-split::before{content:""}.bi-window-stack::before{content:""}.bi-window-x::before{content:""}.bi-xbox::before{content:""}.bi-ethernet::before{content:""}.bi-hdmi-fill::before{content:""}.bi-hdmi::before{content:""}.bi-usb-c-fill::before{content:""}.bi-usb-c::before{content:""}.bi-usb-fill::before{content:""}.bi-usb-plug-fill::before{content:""}.bi-usb-plug::before{content:""}.bi-usb-symbol::before{content:""}.bi-usb::before{content:""}.bi-boombox-fill::before{content:""}.bi-displayport-1::before{content:""}.bi-displayport::before{content:""}.bi-gpu-card::before{content:""}.bi-memory::before{content:""}.bi-modem-fill::before{content:""}.bi-modem::before{content:""}.bi-motherboard-fill::before{content:""}.bi-motherboard::before{content:""}.bi-optical-audio-fill::before{content:""}.bi-optical-audio::before{content:""}.bi-pci-card::before{content:""}.bi-router-fill::before{content:""}.bi-router::before{content:""}.bi-ssd-fill::before{content:""}.bi-ssd::before{content:""}.bi-thunderbolt-fill::before{content:""}.bi-thunderbolt::before{content:""}.bi-usb-drive-fill::before{content:""}.bi-usb-drive::before{content:""}.bi-usb-micro-fill::before{content:""}.bi-usb-micro::before{content:""}.bi-usb-mini-fill::before{content:""}.bi-usb-mini::before{content:""}.bi-cloud-haze2::before{content:""}.bi-device-hdd-fill::before{content:""}.bi-device-hdd::before{content:""}.bi-device-ssd-fill::before{content:""}.bi-device-ssd::before{content:""}.bi-displayport-fill::before{content:""}.bi-mortarboard-fill::before{content:""}.bi-mortarboard::before{content:""}.bi-terminal-x::before{content:""} +@font-face{font-family:"bootstrap-icons";src:url("_content/Volo.Abp.AspNetCore.Components.Web.LeptonXLiteTheme/side-menu/libs/bootstrap-icons/font/fonts/bootstrap-icons.woff2?30af91bf14e37666a085fb8a161ff36d") format("woff2"),url("_content/Volo.Abp.AspNetCore.Components.Web.LeptonXLiteTheme/side-menu/libs/bootstrap-icons/font/fonts/bootstrap-icons.woff?30af91bf14e37666a085fb8a161ff36d") format("woff")}.bi::before,[class^="bi-"]::before,[class*=" bi-"]::before{display:inline-block;font-family:bootstrap-icons!important;font-style:normal;font-weight:normal!important;font-variant:normal;text-transform:none;line-height:1;vertical-align:-.125em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.bi-123::before{content:""}.bi-alarm-fill::before{content:""}.bi-alarm::before{content:""}.bi-align-bottom::before{content:""}.bi-align-center::before{content:""}.bi-align-end::before{content:""}.bi-align-middle::before{content:""}.bi-align-start::before{content:""}.bi-align-top::before{content:""}.bi-alt::before{content:""}.bi-app-indicator::before{content:""}.bi-app::before{content:""}.bi-archive-fill::before{content:""}.bi-archive::before{content:""}.bi-arrow-90deg-down::before{content:""}.bi-arrow-90deg-left::before{content:""}.bi-arrow-90deg-right::before{content:""}.bi-arrow-90deg-up::before{content:""}.bi-arrow-bar-down::before{content:""}.bi-arrow-bar-left::before{content:""}.bi-arrow-bar-right::before{content:""}.bi-arrow-bar-up::before{content:""}.bi-arrow-clockwise::before{content:""}.bi-arrow-counterclockwise::before{content:""}.bi-arrow-down-circle-fill::before{content:""}.bi-arrow-down-circle::before{content:""}.bi-arrow-down-left-circle-fill::before{content:""}.bi-arrow-down-left-circle::before{content:""}.bi-arrow-down-left-square-fill::before{content:""}.bi-arrow-down-left-square::before{content:""}.bi-arrow-down-left::before{content:""}.bi-arrow-down-right-circle-fill::before{content:""}.bi-arrow-down-right-circle::before{content:""}.bi-arrow-down-right-square-fill::before{content:""}.bi-arrow-down-right-square::before{content:""}.bi-arrow-down-right::before{content:""}.bi-arrow-down-short::before{content:""}.bi-arrow-down-square-fill::before{content:""}.bi-arrow-down-square::before{content:""}.bi-arrow-down-up::before{content:""}.bi-arrow-down::before{content:""}.bi-arrow-left-circle-fill::before{content:""}.bi-arrow-left-circle::before{content:""}.bi-arrow-left-right::before{content:""}.bi-arrow-left-short::before{content:""}.bi-arrow-left-square-fill::before{content:""}.bi-arrow-left-square::before{content:""}.bi-arrow-left::before{content:""}.bi-arrow-repeat::before{content:""}.bi-arrow-return-left::before{content:""}.bi-arrow-return-right::before{content:""}.bi-arrow-right-circle-fill::before{content:""}.bi-arrow-right-circle::before{content:""}.bi-arrow-right-short::before{content:""}.bi-arrow-right-square-fill::before{content:""}.bi-arrow-right-square::before{content:""}.bi-arrow-right::before{content:""}.bi-arrow-up-circle-fill::before{content:""}.bi-arrow-up-circle::before{content:""}.bi-arrow-up-left-circle-fill::before{content:""}.bi-arrow-up-left-circle::before{content:""}.bi-arrow-up-left-square-fill::before{content:""}.bi-arrow-up-left-square::before{content:""}.bi-arrow-up-left::before{content:""}.bi-arrow-up-right-circle-fill::before{content:""}.bi-arrow-up-right-circle::before{content:""}.bi-arrow-up-right-square-fill::before{content:""}.bi-arrow-up-right-square::before{content:""}.bi-arrow-up-right::before{content:""}.bi-arrow-up-short::before{content:""}.bi-arrow-up-square-fill::before{content:""}.bi-arrow-up-square::before{content:""}.bi-arrow-up::before{content:""}.bi-arrows-angle-contract::before{content:""}.bi-arrows-angle-expand::before{content:""}.bi-arrows-collapse::before{content:""}.bi-arrows-expand::before{content:""}.bi-arrows-fullscreen::before{content:""}.bi-arrows-move::before{content:""}.bi-aspect-ratio-fill::before{content:""}.bi-aspect-ratio::before{content:""}.bi-asterisk::before{content:""}.bi-at::before{content:""}.bi-award-fill::before{content:""}.bi-award::before{content:""}.bi-back::before{content:""}.bi-backspace-fill::before{content:""}.bi-backspace-reverse-fill::before{content:""}.bi-backspace-reverse::before{content:""}.bi-backspace::before{content:""}.bi-badge-3d-fill::before{content:""}.bi-badge-3d::before{content:""}.bi-badge-4k-fill::before{content:""}.bi-badge-4k::before{content:""}.bi-badge-8k-fill::before{content:""}.bi-badge-8k::before{content:""}.bi-badge-ad-fill::before{content:""}.bi-badge-ad::before{content:""}.bi-badge-ar-fill::before{content:""}.bi-badge-ar::before{content:""}.bi-badge-cc-fill::before{content:""}.bi-badge-cc::before{content:""}.bi-badge-hd-fill::before{content:""}.bi-badge-hd::before{content:""}.bi-badge-tm-fill::before{content:""}.bi-badge-tm::before{content:""}.bi-badge-vo-fill::before{content:""}.bi-badge-vo::before{content:""}.bi-badge-vr-fill::before{content:""}.bi-badge-vr::before{content:""}.bi-badge-wc-fill::before{content:""}.bi-badge-wc::before{content:""}.bi-bag-check-fill::before{content:""}.bi-bag-check::before{content:""}.bi-bag-dash-fill::before{content:""}.bi-bag-dash::before{content:""}.bi-bag-fill::before{content:""}.bi-bag-plus-fill::before{content:""}.bi-bag-plus::before{content:""}.bi-bag-x-fill::before{content:""}.bi-bag-x::before{content:""}.bi-bag::before{content:""}.bi-bar-chart-fill::before{content:""}.bi-bar-chart-line-fill::before{content:""}.bi-bar-chart-line::before{content:""}.bi-bar-chart-steps::before{content:""}.bi-bar-chart::before{content:""}.bi-basket-fill::before{content:""}.bi-basket::before{content:""}.bi-basket2-fill::before{content:""}.bi-basket2::before{content:""}.bi-basket3-fill::before{content:""}.bi-basket3::before{content:""}.bi-battery-charging::before{content:""}.bi-battery-full::before{content:""}.bi-battery-half::before{content:""}.bi-battery::before{content:""}.bi-bell-fill::before{content:""}.bi-bell::before{content:""}.bi-bezier::before{content:""}.bi-bezier2::before{content:""}.bi-bicycle::before{content:""}.bi-binoculars-fill::before{content:""}.bi-binoculars::before{content:""}.bi-blockquote-left::before{content:""}.bi-blockquote-right::before{content:""}.bi-book-fill::before{content:""}.bi-book-half::before{content:""}.bi-book::before{content:""}.bi-bookmark-check-fill::before{content:""}.bi-bookmark-check::before{content:""}.bi-bookmark-dash-fill::before{content:""}.bi-bookmark-dash::before{content:""}.bi-bookmark-fill::before{content:""}.bi-bookmark-heart-fill::before{content:""}.bi-bookmark-heart::before{content:""}.bi-bookmark-plus-fill::before{content:""}.bi-bookmark-plus::before{content:""}.bi-bookmark-star-fill::before{content:""}.bi-bookmark-star::before{content:""}.bi-bookmark-x-fill::before{content:""}.bi-bookmark-x::before{content:""}.bi-bookmark::before{content:""}.bi-bookmarks-fill::before{content:""}.bi-bookmarks::before{content:""}.bi-bookshelf::before{content:""}.bi-bootstrap-fill::before{content:""}.bi-bootstrap-reboot::before{content:""}.bi-bootstrap::before{content:""}.bi-border-all::before{content:""}.bi-border-bottom::before{content:""}.bi-border-center::before{content:""}.bi-border-inner::before{content:""}.bi-border-left::before{content:""}.bi-border-middle::before{content:""}.bi-border-outer::before{content:""}.bi-border-right::before{content:""}.bi-border-style::before{content:""}.bi-border-top::before{content:""}.bi-border-width::before{content:""}.bi-border::before{content:""}.bi-bounding-box-circles::before{content:""}.bi-bounding-box::before{content:""}.bi-box-arrow-down-left::before{content:""}.bi-box-arrow-down-right::before{content:""}.bi-box-arrow-down::before{content:""}.bi-box-arrow-in-down-left::before{content:""}.bi-box-arrow-in-down-right::before{content:""}.bi-box-arrow-in-down::before{content:""}.bi-box-arrow-in-left::before{content:""}.bi-box-arrow-in-right::before{content:""}.bi-box-arrow-in-up-left::before{content:""}.bi-box-arrow-in-up-right::before{content:""}.bi-box-arrow-in-up::before{content:""}.bi-box-arrow-left::before{content:""}.bi-box-arrow-right::before{content:""}.bi-box-arrow-up-left::before{content:""}.bi-box-arrow-up-right::before{content:""}.bi-box-arrow-up::before{content:""}.bi-box-seam::before{content:""}.bi-box::before{content:""}.bi-braces::before{content:""}.bi-bricks::before{content:""}.bi-briefcase-fill::before{content:""}.bi-briefcase::before{content:""}.bi-brightness-alt-high-fill::before{content:""}.bi-brightness-alt-high::before{content:""}.bi-brightness-alt-low-fill::before{content:""}.bi-brightness-alt-low::before{content:""}.bi-brightness-high-fill::before{content:""}.bi-brightness-high::before{content:""}.bi-brightness-low-fill::before{content:""}.bi-brightness-low::before{content:""}.bi-broadcast-pin::before{content:""}.bi-broadcast::before{content:""}.bi-brush-fill::before{content:""}.bi-brush::before{content:""}.bi-bucket-fill::before{content:""}.bi-bucket::before{content:""}.bi-bug-fill::before{content:""}.bi-bug::before{content:""}.bi-building::before{content:""}.bi-bullseye::before{content:""}.bi-calculator-fill::before{content:""}.bi-calculator::before{content:""}.bi-calendar-check-fill::before{content:""}.bi-calendar-check::before{content:""}.bi-calendar-date-fill::before{content:""}.bi-calendar-date::before{content:""}.bi-calendar-day-fill::before{content:""}.bi-calendar-day::before{content:""}.bi-calendar-event-fill::before{content:""}.bi-calendar-event::before{content:""}.bi-calendar-fill::before{content:""}.bi-calendar-minus-fill::before{content:""}.bi-calendar-minus::before{content:""}.bi-calendar-month-fill::before{content:""}.bi-calendar-month::before{content:""}.bi-calendar-plus-fill::before{content:""}.bi-calendar-plus::before{content:""}.bi-calendar-range-fill::before{content:""}.bi-calendar-range::before{content:""}.bi-calendar-week-fill::before{content:""}.bi-calendar-week::before{content:""}.bi-calendar-x-fill::before{content:""}.bi-calendar-x::before{content:""}.bi-calendar::before{content:""}.bi-calendar2-check-fill::before{content:""}.bi-calendar2-check::before{content:""}.bi-calendar2-date-fill::before{content:""}.bi-calendar2-date::before{content:""}.bi-calendar2-day-fill::before{content:""}.bi-calendar2-day::before{content:""}.bi-calendar2-event-fill::before{content:""}.bi-calendar2-event::before{content:""}.bi-calendar2-fill::before{content:""}.bi-calendar2-minus-fill::before{content:""}.bi-calendar2-minus::before{content:""}.bi-calendar2-month-fill::before{content:""}.bi-calendar2-month::before{content:""}.bi-calendar2-plus-fill::before{content:""}.bi-calendar2-plus::before{content:""}.bi-calendar2-range-fill::before{content:""}.bi-calendar2-range::before{content:""}.bi-calendar2-week-fill::before{content:""}.bi-calendar2-week::before{content:""}.bi-calendar2-x-fill::before{content:""}.bi-calendar2-x::before{content:""}.bi-calendar2::before{content:""}.bi-calendar3-event-fill::before{content:""}.bi-calendar3-event::before{content:""}.bi-calendar3-fill::before{content:""}.bi-calendar3-range-fill::before{content:""}.bi-calendar3-range::before{content:""}.bi-calendar3-week-fill::before{content:""}.bi-calendar3-week::before{content:""}.bi-calendar3::before{content:""}.bi-calendar4-event::before{content:""}.bi-calendar4-range::before{content:""}.bi-calendar4-week::before{content:""}.bi-calendar4::before{content:""}.bi-camera-fill::before{content:""}.bi-camera-reels-fill::before{content:""}.bi-camera-reels::before{content:""}.bi-camera-video-fill::before{content:""}.bi-camera-video-off-fill::before{content:""}.bi-camera-video-off::before{content:""}.bi-camera-video::before{content:""}.bi-camera::before{content:""}.bi-camera2::before{content:""}.bi-capslock-fill::before{content:""}.bi-capslock::before{content:""}.bi-card-checklist::before{content:""}.bi-card-heading::before{content:""}.bi-card-image::before{content:""}.bi-card-list::before{content:""}.bi-card-text::before{content:""}.bi-caret-down-fill::before{content:""}.bi-caret-down-square-fill::before{content:""}.bi-caret-down-square::before{content:""}.bi-caret-down::before{content:""}.bi-caret-left-fill::before{content:""}.bi-caret-left-square-fill::before{content:""}.bi-caret-left-square::before{content:""}.bi-caret-left::before{content:""}.bi-caret-right-fill::before{content:""}.bi-caret-right-square-fill::before{content:""}.bi-caret-right-square::before{content:""}.bi-caret-right::before{content:""}.bi-caret-up-fill::before{content:""}.bi-caret-up-square-fill::before{content:""}.bi-caret-up-square::before{content:""}.bi-caret-up::before{content:""}.bi-cart-check-fill::before{content:""}.bi-cart-check::before{content:""}.bi-cart-dash-fill::before{content:""}.bi-cart-dash::before{content:""}.bi-cart-fill::before{content:""}.bi-cart-plus-fill::before{content:""}.bi-cart-plus::before{content:""}.bi-cart-x-fill::before{content:""}.bi-cart-x::before{content:""}.bi-cart::before{content:""}.bi-cart2::before{content:""}.bi-cart3::before{content:""}.bi-cart4::before{content:""}.bi-cash-stack::before{content:""}.bi-cash::before{content:""}.bi-cast::before{content:""}.bi-chat-dots-fill::before{content:""}.bi-chat-dots::before{content:""}.bi-chat-fill::before{content:""}.bi-chat-left-dots-fill::before{content:""}.bi-chat-left-dots::before{content:""}.bi-chat-left-fill::before{content:""}.bi-chat-left-quote-fill::before{content:""}.bi-chat-left-quote::before{content:""}.bi-chat-left-text-fill::before{content:""}.bi-chat-left-text::before{content:""}.bi-chat-left::before{content:""}.bi-chat-quote-fill::before{content:""}.bi-chat-quote::before{content:""}.bi-chat-right-dots-fill::before{content:""}.bi-chat-right-dots::before{content:""}.bi-chat-right-fill::before{content:""}.bi-chat-right-quote-fill::before{content:""}.bi-chat-right-quote::before{content:""}.bi-chat-right-text-fill::before{content:""}.bi-chat-right-text::before{content:""}.bi-chat-right::before{content:""}.bi-chat-square-dots-fill::before{content:""}.bi-chat-square-dots::before{content:""}.bi-chat-square-fill::before{content:""}.bi-chat-square-quote-fill::before{content:""}.bi-chat-square-quote::before{content:""}.bi-chat-square-text-fill::before{content:""}.bi-chat-square-text::before{content:""}.bi-chat-square::before{content:""}.bi-chat-text-fill::before{content:""}.bi-chat-text::before{content:""}.bi-chat::before{content:""}.bi-check-all::before{content:""}.bi-check-circle-fill::before{content:""}.bi-check-circle::before{content:""}.bi-check-square-fill::before{content:""}.bi-check-square::before{content:""}.bi-check::before{content:""}.bi-check2-all::before{content:""}.bi-check2-circle::before{content:""}.bi-check2-square::before{content:""}.bi-check2::before{content:""}.bi-chevron-bar-contract::before{content:""}.bi-chevron-bar-down::before{content:""}.bi-chevron-bar-expand::before{content:""}.bi-chevron-bar-left::before{content:""}.bi-chevron-bar-right::before{content:""}.bi-chevron-bar-up::before{content:""}.bi-chevron-compact-down::before{content:""}.bi-chevron-compact-left::before{content:""}.bi-chevron-compact-right::before{content:""}.bi-chevron-compact-up::before{content:""}.bi-chevron-contract::before{content:""}.bi-chevron-double-down::before{content:""}.bi-chevron-double-left::before{content:""}.bi-chevron-double-right::before{content:""}.bi-chevron-double-up::before{content:""}.bi-chevron-down::before{content:""}.bi-chevron-expand::before{content:""}.bi-chevron-left::before{content:""}.bi-chevron-right::before{content:""}.bi-chevron-up::before{content:""}.bi-circle-fill::before{content:""}.bi-circle-half::before{content:""}.bi-circle-square::before{content:""}.bi-circle::before{content:""}.bi-clipboard-check::before{content:""}.bi-clipboard-data::before{content:""}.bi-clipboard-minus::before{content:""}.bi-clipboard-plus::before{content:""}.bi-clipboard-x::before{content:""}.bi-clipboard::before{content:""}.bi-clock-fill::before{content:""}.bi-clock-history::before{content:""}.bi-clock::before{content:""}.bi-cloud-arrow-down-fill::before{content:""}.bi-cloud-arrow-down::before{content:""}.bi-cloud-arrow-up-fill::before{content:""}.bi-cloud-arrow-up::before{content:""}.bi-cloud-check-fill::before{content:""}.bi-cloud-check::before{content:""}.bi-cloud-download-fill::before{content:""}.bi-cloud-download::before{content:""}.bi-cloud-drizzle-fill::before{content:""}.bi-cloud-drizzle::before{content:""}.bi-cloud-fill::before{content:""}.bi-cloud-fog-fill::before{content:""}.bi-cloud-fog::before{content:""}.bi-cloud-fog2-fill::before{content:""}.bi-cloud-fog2::before{content:""}.bi-cloud-hail-fill::before{content:""}.bi-cloud-hail::before{content:""}.bi-cloud-haze-1::before{content:""}.bi-cloud-haze-fill::before{content:""}.bi-cloud-haze::before{content:""}.bi-cloud-haze2-fill::before{content:""}.bi-cloud-lightning-fill::before{content:""}.bi-cloud-lightning-rain-fill::before{content:""}.bi-cloud-lightning-rain::before{content:""}.bi-cloud-lightning::before{content:""}.bi-cloud-minus-fill::before{content:""}.bi-cloud-minus::before{content:""}.bi-cloud-moon-fill::before{content:""}.bi-cloud-moon::before{content:""}.bi-cloud-plus-fill::before{content:""}.bi-cloud-plus::before{content:""}.bi-cloud-rain-fill::before{content:""}.bi-cloud-rain-heavy-fill::before{content:""}.bi-cloud-rain-heavy::before{content:""}.bi-cloud-rain::before{content:""}.bi-cloud-slash-fill::before{content:""}.bi-cloud-slash::before{content:""}.bi-cloud-sleet-fill::before{content:""}.bi-cloud-sleet::before{content:""}.bi-cloud-snow-fill::before{content:""}.bi-cloud-snow::before{content:""}.bi-cloud-sun-fill::before{content:""}.bi-cloud-sun::before{content:""}.bi-cloud-upload-fill::before{content:""}.bi-cloud-upload::before{content:""}.bi-cloud::before{content:""}.bi-clouds-fill::before{content:""}.bi-clouds::before{content:""}.bi-cloudy-fill::before{content:""}.bi-cloudy::before{content:""}.bi-code-slash::before{content:""}.bi-code-square::before{content:""}.bi-code::before{content:""}.bi-collection-fill::before{content:""}.bi-collection-play-fill::before{content:""}.bi-collection-play::before{content:""}.bi-collection::before{content:""}.bi-columns-gap::before{content:""}.bi-columns::before{content:""}.bi-command::before{content:""}.bi-compass-fill::before{content:""}.bi-compass::before{content:""}.bi-cone-striped::before{content:""}.bi-cone::before{content:""}.bi-controller::before{content:""}.bi-cpu-fill::before{content:""}.bi-cpu::before{content:""}.bi-credit-card-2-back-fill::before{content:""}.bi-credit-card-2-back::before{content:""}.bi-credit-card-2-front-fill::before{content:""}.bi-credit-card-2-front::before{content:""}.bi-credit-card-fill::before{content:""}.bi-credit-card::before{content:""}.bi-crop::before{content:""}.bi-cup-fill::before{content:""}.bi-cup-straw::before{content:""}.bi-cup::before{content:""}.bi-cursor-fill::before{content:""}.bi-cursor-text::before{content:""}.bi-cursor::before{content:""}.bi-dash-circle-dotted::before{content:""}.bi-dash-circle-fill::before{content:""}.bi-dash-circle::before{content:""}.bi-dash-square-dotted::before{content:""}.bi-dash-square-fill::before{content:""}.bi-dash-square::before{content:""}.bi-dash::before{content:""}.bi-diagram-2-fill::before{content:""}.bi-diagram-2::before{content:""}.bi-diagram-3-fill::before{content:""}.bi-diagram-3::before{content:""}.bi-diamond-fill::before{content:""}.bi-diamond-half::before{content:""}.bi-diamond::before{content:""}.bi-dice-1-fill::before{content:""}.bi-dice-1::before{content:""}.bi-dice-2-fill::before{content:""}.bi-dice-2::before{content:""}.bi-dice-3-fill::before{content:""}.bi-dice-3::before{content:""}.bi-dice-4-fill::before{content:""}.bi-dice-4::before{content:""}.bi-dice-5-fill::before{content:""}.bi-dice-5::before{content:""}.bi-dice-6-fill::before{content:""}.bi-dice-6::before{content:""}.bi-disc-fill::before{content:""}.bi-disc::before{content:""}.bi-discord::before{content:""}.bi-display-fill::before{content:""}.bi-display::before{content:""}.bi-distribute-horizontal::before{content:""}.bi-distribute-vertical::before{content:""}.bi-door-closed-fill::before{content:""}.bi-door-closed::before{content:""}.bi-door-open-fill::before{content:""}.bi-door-open::before{content:""}.bi-dot::before{content:""}.bi-download::before{content:""}.bi-droplet-fill::before{content:""}.bi-droplet-half::before{content:""}.bi-droplet::before{content:""}.bi-earbuds::before{content:""}.bi-easel-fill::before{content:""}.bi-easel::before{content:""}.bi-egg-fill::before{content:""}.bi-egg-fried::before{content:""}.bi-egg::before{content:""}.bi-eject-fill::before{content:""}.bi-eject::before{content:""}.bi-emoji-angry-fill::before{content:""}.bi-emoji-angry::before{content:""}.bi-emoji-dizzy-fill::before{content:""}.bi-emoji-dizzy::before{content:""}.bi-emoji-expressionless-fill::before{content:""}.bi-emoji-expressionless::before{content:""}.bi-emoji-frown-fill::before{content:""}.bi-emoji-frown::before{content:""}.bi-emoji-heart-eyes-fill::before{content:""}.bi-emoji-heart-eyes::before{content:""}.bi-emoji-laughing-fill::before{content:""}.bi-emoji-laughing::before{content:""}.bi-emoji-neutral-fill::before{content:""}.bi-emoji-neutral::before{content:""}.bi-emoji-smile-fill::before{content:""}.bi-emoji-smile-upside-down-fill::before{content:""}.bi-emoji-smile-upside-down::before{content:""}.bi-emoji-smile::before{content:""}.bi-emoji-sunglasses-fill::before{content:""}.bi-emoji-sunglasses::before{content:""}.bi-emoji-wink-fill::before{content:""}.bi-emoji-wink::before{content:""}.bi-envelope-fill::before{content:""}.bi-envelope-open-fill::before{content:""}.bi-envelope-open::before{content:""}.bi-envelope::before{content:""}.bi-eraser-fill::before{content:""}.bi-eraser::before{content:""}.bi-exclamation-circle-fill::before{content:""}.bi-exclamation-circle::before{content:""}.bi-exclamation-diamond-fill::before{content:""}.bi-exclamation-diamond::before{content:""}.bi-exclamation-octagon-fill::before{content:""}.bi-exclamation-octagon::before{content:""}.bi-exclamation-square-fill::before{content:""}.bi-exclamation-square::before{content:""}.bi-exclamation-triangle-fill::before{content:""}.bi-exclamation-triangle::before{content:""}.bi-exclamation::before{content:""}.bi-exclude::before{content:""}.bi-eye-fill::before{content:""}.bi-eye-slash-fill::before{content:""}.bi-eye-slash::before{content:""}.bi-eye::before{content:""}.bi-eyedropper::before{content:""}.bi-eyeglasses::before{content:""}.bi-facebook::before{content:""}.bi-file-arrow-down-fill::before{content:""}.bi-file-arrow-down::before{content:""}.bi-file-arrow-up-fill::before{content:""}.bi-file-arrow-up::before{content:""}.bi-file-bar-graph-fill::before{content:""}.bi-file-bar-graph::before{content:""}.bi-file-binary-fill::before{content:""}.bi-file-binary::before{content:""}.bi-file-break-fill::before{content:""}.bi-file-break::before{content:""}.bi-file-check-fill::before{content:""}.bi-file-check::before{content:""}.bi-file-code-fill::before{content:""}.bi-file-code::before{content:""}.bi-file-diff-fill::before{content:""}.bi-file-diff::before{content:""}.bi-file-earmark-arrow-down-fill::before{content:""}.bi-file-earmark-arrow-down::before{content:""}.bi-file-earmark-arrow-up-fill::before{content:""}.bi-file-earmark-arrow-up::before{content:""}.bi-file-earmark-bar-graph-fill::before{content:""}.bi-file-earmark-bar-graph::before{content:""}.bi-file-earmark-binary-fill::before{content:""}.bi-file-earmark-binary::before{content:""}.bi-file-earmark-break-fill::before{content:""}.bi-file-earmark-break::before{content:""}.bi-file-earmark-check-fill::before{content:""}.bi-file-earmark-check::before{content:""}.bi-file-earmark-code-fill::before{content:""}.bi-file-earmark-code::before{content:""}.bi-file-earmark-diff-fill::before{content:""}.bi-file-earmark-diff::before{content:""}.bi-file-earmark-easel-fill::before{content:""}.bi-file-earmark-easel::before{content:""}.bi-file-earmark-excel-fill::before{content:""}.bi-file-earmark-excel::before{content:""}.bi-file-earmark-fill::before{content:""}.bi-file-earmark-font-fill::before{content:""}.bi-file-earmark-font::before{content:""}.bi-file-earmark-image-fill::before{content:""}.bi-file-earmark-image::before{content:""}.bi-file-earmark-lock-fill::before{content:""}.bi-file-earmark-lock::before{content:""}.bi-file-earmark-lock2-fill::before{content:""}.bi-file-earmark-lock2::before{content:""}.bi-file-earmark-medical-fill::before{content:""}.bi-file-earmark-medical::before{content:""}.bi-file-earmark-minus-fill::before{content:""}.bi-file-earmark-minus::before{content:""}.bi-file-earmark-music-fill::before{content:""}.bi-file-earmark-music::before{content:""}.bi-file-earmark-person-fill::before{content:""}.bi-file-earmark-person::before{content:""}.bi-file-earmark-play-fill::before{content:""}.bi-file-earmark-play::before{content:""}.bi-file-earmark-plus-fill::before{content:""}.bi-file-earmark-plus::before{content:""}.bi-file-earmark-post-fill::before{content:""}.bi-file-earmark-post::before{content:""}.bi-file-earmark-ppt-fill::before{content:""}.bi-file-earmark-ppt::before{content:""}.bi-file-earmark-richtext-fill::before{content:""}.bi-file-earmark-richtext::before{content:""}.bi-file-earmark-ruled-fill::before{content:""}.bi-file-earmark-ruled::before{content:""}.bi-file-earmark-slides-fill::before{content:""}.bi-file-earmark-slides::before{content:""}.bi-file-earmark-spreadsheet-fill::before{content:""}.bi-file-earmark-spreadsheet::before{content:""}.bi-file-earmark-text-fill::before{content:""}.bi-file-earmark-text::before{content:""}.bi-file-earmark-word-fill::before{content:""}.bi-file-earmark-word::before{content:""}.bi-file-earmark-x-fill::before{content:""}.bi-file-earmark-x::before{content:""}.bi-file-earmark-zip-fill::before{content:""}.bi-file-earmark-zip::before{content:""}.bi-file-earmark::before{content:""}.bi-file-easel-fill::before{content:""}.bi-file-easel::before{content:""}.bi-file-excel-fill::before{content:""}.bi-file-excel::before{content:""}.bi-file-fill::before{content:""}.bi-file-font-fill::before{content:""}.bi-file-font::before{content:""}.bi-file-image-fill::before{content:""}.bi-file-image::before{content:""}.bi-file-lock-fill::before{content:""}.bi-file-lock::before{content:""}.bi-file-lock2-fill::before{content:""}.bi-file-lock2::before{content:""}.bi-file-medical-fill::before{content:""}.bi-file-medical::before{content:""}.bi-file-minus-fill::before{content:""}.bi-file-minus::before{content:""}.bi-file-music-fill::before{content:""}.bi-file-music::before{content:""}.bi-file-person-fill::before{content:""}.bi-file-person::before{content:""}.bi-file-play-fill::before{content:""}.bi-file-play::before{content:""}.bi-file-plus-fill::before{content:""}.bi-file-plus::before{content:""}.bi-file-post-fill::before{content:""}.bi-file-post::before{content:""}.bi-file-ppt-fill::before{content:""}.bi-file-ppt::before{content:""}.bi-file-richtext-fill::before{content:""}.bi-file-richtext::before{content:""}.bi-file-ruled-fill::before{content:""}.bi-file-ruled::before{content:""}.bi-file-slides-fill::before{content:""}.bi-file-slides::before{content:""}.bi-file-spreadsheet-fill::before{content:""}.bi-file-spreadsheet::before{content:""}.bi-file-text-fill::before{content:""}.bi-file-text::before{content:""}.bi-file-word-fill::before{content:""}.bi-file-word::before{content:""}.bi-file-x-fill::before{content:""}.bi-file-x::before{content:""}.bi-file-zip-fill::before{content:""}.bi-file-zip::before{content:""}.bi-file::before{content:""}.bi-files-alt::before{content:""}.bi-files::before{content:""}.bi-film::before{content:""}.bi-filter-circle-fill::before{content:""}.bi-filter-circle::before{content:""}.bi-filter-left::before{content:""}.bi-filter-right::before{content:""}.bi-filter-square-fill::before{content:""}.bi-filter-square::before{content:""}.bi-filter::before{content:""}.bi-flag-fill::before{content:""}.bi-flag::before{content:""}.bi-flower1::before{content:""}.bi-flower2::before{content:""}.bi-flower3::before{content:""}.bi-folder-check::before{content:""}.bi-folder-fill::before{content:""}.bi-folder-minus::before{content:""}.bi-folder-plus::before{content:""}.bi-folder-symlink-fill::before{content:""}.bi-folder-symlink::before{content:""}.bi-folder-x::before{content:""}.bi-folder::before{content:""}.bi-folder2-open::before{content:""}.bi-folder2::before{content:""}.bi-fonts::before{content:""}.bi-forward-fill::before{content:""}.bi-forward::before{content:""}.bi-front::before{content:""}.bi-fullscreen-exit::before{content:""}.bi-fullscreen::before{content:""}.bi-funnel-fill::before{content:""}.bi-funnel::before{content:""}.bi-gear-fill::before{content:""}.bi-gear-wide-connected::before{content:""}.bi-gear-wide::before{content:""}.bi-gear::before{content:""}.bi-gem::before{content:""}.bi-geo-alt-fill::before{content:""}.bi-geo-alt::before{content:""}.bi-geo-fill::before{content:""}.bi-geo::before{content:""}.bi-gift-fill::before{content:""}.bi-gift::before{content:""}.bi-github::before{content:""}.bi-globe::before{content:""}.bi-globe2::before{content:""}.bi-google::before{content:""}.bi-graph-down::before{content:""}.bi-graph-up::before{content:""}.bi-grid-1x2-fill::before{content:""}.bi-grid-1x2::before{content:""}.bi-grid-3x2-gap-fill::before{content:""}.bi-grid-3x2-gap::before{content:""}.bi-grid-3x2::before{content:""}.bi-grid-3x3-gap-fill::before{content:""}.bi-grid-3x3-gap::before{content:""}.bi-grid-3x3::before{content:""}.bi-grid-fill::before{content:""}.bi-grid::before{content:""}.bi-grip-horizontal::before{content:""}.bi-grip-vertical::before{content:""}.bi-hammer::before{content:""}.bi-hand-index-fill::before{content:""}.bi-hand-index-thumb-fill::before{content:""}.bi-hand-index-thumb::before{content:""}.bi-hand-index::before{content:""}.bi-hand-thumbs-down-fill::before{content:""}.bi-hand-thumbs-down::before{content:""}.bi-hand-thumbs-up-fill::before{content:""}.bi-hand-thumbs-up::before{content:""}.bi-handbag-fill::before{content:""}.bi-handbag::before{content:""}.bi-hash::before{content:""}.bi-hdd-fill::before{content:""}.bi-hdd-network-fill::before{content:""}.bi-hdd-network::before{content:""}.bi-hdd-rack-fill::before{content:""}.bi-hdd-rack::before{content:""}.bi-hdd-stack-fill::before{content:""}.bi-hdd-stack::before{content:""}.bi-hdd::before{content:""}.bi-headphones::before{content:""}.bi-headset::before{content:""}.bi-heart-fill::before{content:""}.bi-heart-half::before{content:""}.bi-heart::before{content:""}.bi-heptagon-fill::before{content:""}.bi-heptagon-half::before{content:""}.bi-heptagon::before{content:""}.bi-hexagon-fill::before{content:""}.bi-hexagon-half::before{content:""}.bi-hexagon::before{content:""}.bi-hourglass-bottom::before{content:""}.bi-hourglass-split::before{content:""}.bi-hourglass-top::before{content:""}.bi-hourglass::before{content:""}.bi-house-door-fill::before{content:""}.bi-house-door::before{content:""}.bi-house-fill::before{content:""}.bi-house::before{content:""}.bi-hr::before{content:""}.bi-hurricane::before{content:""}.bi-image-alt::before{content:""}.bi-image-fill::before{content:""}.bi-image::before{content:""}.bi-images::before{content:""}.bi-inbox-fill::before{content:""}.bi-inbox::before{content:""}.bi-inboxes-fill::before{content:""}.bi-inboxes::before{content:""}.bi-info-circle-fill::before{content:""}.bi-info-circle::before{content:""}.bi-info-square-fill::before{content:""}.bi-info-square::before{content:""}.bi-info::before{content:""}.bi-input-cursor-text::before{content:""}.bi-input-cursor::before{content:""}.bi-instagram::before{content:""}.bi-intersect::before{content:""}.bi-journal-album::before{content:""}.bi-journal-arrow-down::before{content:""}.bi-journal-arrow-up::before{content:""}.bi-journal-bookmark-fill::before{content:""}.bi-journal-bookmark::before{content:""}.bi-journal-check::before{content:""}.bi-journal-code::before{content:""}.bi-journal-medical::before{content:""}.bi-journal-minus::before{content:""}.bi-journal-plus::before{content:""}.bi-journal-richtext::before{content:""}.bi-journal-text::before{content:""}.bi-journal-x::before{content:""}.bi-journal::before{content:""}.bi-journals::before{content:""}.bi-joystick::before{content:""}.bi-justify-left::before{content:""}.bi-justify-right::before{content:""}.bi-justify::before{content:""}.bi-kanban-fill::before{content:""}.bi-kanban::before{content:""}.bi-key-fill::before{content:""}.bi-key::before{content:""}.bi-keyboard-fill::before{content:""}.bi-keyboard::before{content:""}.bi-ladder::before{content:""}.bi-lamp-fill::before{content:""}.bi-lamp::before{content:""}.bi-laptop-fill::before{content:""}.bi-laptop::before{content:""}.bi-layer-backward::before{content:""}.bi-layer-forward::before{content:""}.bi-layers-fill::before{content:""}.bi-layers-half::before{content:""}.bi-layers::before{content:""}.bi-layout-sidebar-inset-reverse::before{content:""}.bi-layout-sidebar-inset::before{content:""}.bi-layout-sidebar-reverse::before{content:""}.bi-layout-sidebar::before{content:""}.bi-layout-split::before{content:""}.bi-layout-text-sidebar-reverse::before{content:""}.bi-layout-text-sidebar::before{content:""}.bi-layout-text-window-reverse::before{content:""}.bi-layout-text-window::before{content:""}.bi-layout-three-columns::before{content:""}.bi-layout-wtf::before{content:""}.bi-life-preserver::before{content:""}.bi-lightbulb-fill::before{content:""}.bi-lightbulb-off-fill::before{content:""}.bi-lightbulb-off::before{content:""}.bi-lightbulb::before{content:""}.bi-lightning-charge-fill::before{content:""}.bi-lightning-charge::before{content:""}.bi-lightning-fill::before{content:""}.bi-lightning::before{content:""}.bi-link-45deg::before{content:""}.bi-link::before{content:""}.bi-linkedin::before{content:""}.bi-list-check::before{content:""}.bi-list-nested::before{content:""}.bi-list-ol::before{content:""}.bi-list-stars::before{content:""}.bi-list-task::before{content:""}.bi-list-ul::before{content:""}.bi-list::before{content:""}.bi-lock-fill::before{content:""}.bi-lock::before{content:""}.bi-mailbox::before{content:""}.bi-mailbox2::before{content:""}.bi-map-fill::before{content:""}.bi-map::before{content:""}.bi-markdown-fill::before{content:""}.bi-markdown::before{content:""}.bi-mask::before{content:""}.bi-megaphone-fill::before{content:""}.bi-megaphone::before{content:""}.bi-menu-app-fill::before{content:""}.bi-menu-app::before{content:""}.bi-menu-button-fill::before{content:""}.bi-menu-button-wide-fill::before{content:""}.bi-menu-button-wide::before{content:""}.bi-menu-button::before{content:""}.bi-menu-down::before{content:""}.bi-menu-up::before{content:""}.bi-mic-fill::before{content:""}.bi-mic-mute-fill::before{content:""}.bi-mic-mute::before{content:""}.bi-mic::before{content:""}.bi-minecart-loaded::before{content:""}.bi-minecart::before{content:""}.bi-moisture::before{content:""}.bi-moon-fill::before{content:""}.bi-moon-stars-fill::before{content:""}.bi-moon-stars::before{content:""}.bi-moon::before{content:""}.bi-mouse-fill::before{content:""}.bi-mouse::before{content:""}.bi-mouse2-fill::before{content:""}.bi-mouse2::before{content:""}.bi-mouse3-fill::before{content:""}.bi-mouse3::before{content:""}.bi-music-note-beamed::before{content:""}.bi-music-note-list::before{content:""}.bi-music-note::before{content:""}.bi-music-player-fill::before{content:""}.bi-music-player::before{content:""}.bi-newspaper::before{content:""}.bi-node-minus-fill::before{content:""}.bi-node-minus::before{content:""}.bi-node-plus-fill::before{content:""}.bi-node-plus::before{content:""}.bi-nut-fill::before{content:""}.bi-nut::before{content:""}.bi-octagon-fill::before{content:""}.bi-octagon-half::before{content:""}.bi-octagon::before{content:""}.bi-option::before{content:""}.bi-outlet::before{content:""}.bi-paint-bucket::before{content:""}.bi-palette-fill::before{content:""}.bi-palette::before{content:""}.bi-palette2::before{content:""}.bi-paperclip::before{content:""}.bi-paragraph::before{content:""}.bi-patch-check-fill::before{content:""}.bi-patch-check::before{content:""}.bi-patch-exclamation-fill::before{content:""}.bi-patch-exclamation::before{content:""}.bi-patch-minus-fill::before{content:""}.bi-patch-minus::before{content:""}.bi-patch-plus-fill::before{content:""}.bi-patch-plus::before{content:""}.bi-patch-question-fill::before{content:""}.bi-patch-question::before{content:""}.bi-pause-btn-fill::before{content:""}.bi-pause-btn::before{content:""}.bi-pause-circle-fill::before{content:""}.bi-pause-circle::before{content:""}.bi-pause-fill::before{content:""}.bi-pause::before{content:""}.bi-peace-fill::before{content:""}.bi-peace::before{content:""}.bi-pen-fill::before{content:""}.bi-pen::before{content:""}.bi-pencil-fill::before{content:""}.bi-pencil-square::before{content:""}.bi-pencil::before{content:""}.bi-pentagon-fill::before{content:""}.bi-pentagon-half::before{content:""}.bi-pentagon::before{content:""}.bi-people-fill::before{content:""}.bi-people::before{content:""}.bi-percent::before{content:""}.bi-person-badge-fill::before{content:""}.bi-person-badge::before{content:""}.bi-person-bounding-box::before{content:""}.bi-person-check-fill::before{content:""}.bi-person-check::before{content:""}.bi-person-circle::before{content:""}.bi-person-dash-fill::before{content:""}.bi-person-dash::before{content:""}.bi-person-fill::before{content:""}.bi-person-lines-fill::before{content:""}.bi-person-plus-fill::before{content:""}.bi-person-plus::before{content:""}.bi-person-square::before{content:""}.bi-person-x-fill::before{content:""}.bi-person-x::before{content:""}.bi-person::before{content:""}.bi-phone-fill::before{content:""}.bi-phone-landscape-fill::before{content:""}.bi-phone-landscape::before{content:""}.bi-phone-vibrate-fill::before{content:""}.bi-phone-vibrate::before{content:""}.bi-phone::before{content:""}.bi-pie-chart-fill::before{content:""}.bi-pie-chart::before{content:""}.bi-pin-angle-fill::before{content:""}.bi-pin-angle::before{content:""}.bi-pin-fill::before{content:""}.bi-pin::before{content:""}.bi-pip-fill::before{content:""}.bi-pip::before{content:""}.bi-play-btn-fill::before{content:""}.bi-play-btn::before{content:""}.bi-play-circle-fill::before{content:""}.bi-play-circle::before{content:""}.bi-play-fill::before{content:""}.bi-play::before{content:""}.bi-plug-fill::before{content:""}.bi-plug::before{content:""}.bi-plus-circle-dotted::before{content:""}.bi-plus-circle-fill::before{content:""}.bi-plus-circle::before{content:""}.bi-plus-square-dotted::before{content:""}.bi-plus-square-fill::before{content:""}.bi-plus-square::before{content:""}.bi-plus::before{content:""}.bi-power::before{content:""}.bi-printer-fill::before{content:""}.bi-printer::before{content:""}.bi-puzzle-fill::before{content:""}.bi-puzzle::before{content:""}.bi-question-circle-fill::before{content:""}.bi-question-circle::before{content:""}.bi-question-diamond-fill::before{content:""}.bi-question-diamond::before{content:""}.bi-question-octagon-fill::before{content:""}.bi-question-octagon::before{content:""}.bi-question-square-fill::before{content:""}.bi-question-square::before{content:""}.bi-question::before{content:""}.bi-rainbow::before{content:""}.bi-receipt-cutoff::before{content:""}.bi-receipt::before{content:""}.bi-reception-0::before{content:""}.bi-reception-1::before{content:""}.bi-reception-2::before{content:""}.bi-reception-3::before{content:""}.bi-reception-4::before{content:""}.bi-record-btn-fill::before{content:""}.bi-record-btn::before{content:""}.bi-record-circle-fill::before{content:""}.bi-record-circle::before{content:""}.bi-record-fill::before{content:""}.bi-record::before{content:""}.bi-record2-fill::before{content:""}.bi-record2::before{content:""}.bi-reply-all-fill::before{content:""}.bi-reply-all::before{content:""}.bi-reply-fill::before{content:""}.bi-reply::before{content:""}.bi-rss-fill::before{content:""}.bi-rss::before{content:""}.bi-rulers::before{content:""}.bi-save-fill::before{content:""}.bi-save::before{content:""}.bi-save2-fill::before{content:""}.bi-save2::before{content:""}.bi-scissors::before{content:""}.bi-screwdriver::before{content:""}.bi-search::before{content:""}.bi-segmented-nav::before{content:""}.bi-server::before{content:""}.bi-share-fill::before{content:""}.bi-share::before{content:""}.bi-shield-check::before{content:""}.bi-shield-exclamation::before{content:""}.bi-shield-fill-check::before{content:""}.bi-shield-fill-exclamation::before{content:""}.bi-shield-fill-minus::before{content:""}.bi-shield-fill-plus::before{content:""}.bi-shield-fill-x::before{content:""}.bi-shield-fill::before{content:""}.bi-shield-lock-fill::before{content:""}.bi-shield-lock::before{content:""}.bi-shield-minus::before{content:""}.bi-shield-plus::before{content:""}.bi-shield-shaded::before{content:""}.bi-shield-slash-fill::before{content:""}.bi-shield-slash::before{content:""}.bi-shield-x::before{content:""}.bi-shield::before{content:""}.bi-shift-fill::before{content:""}.bi-shift::before{content:""}.bi-shop-window::before{content:""}.bi-shop::before{content:""}.bi-shuffle::before{content:""}.bi-signpost-2-fill::before{content:""}.bi-signpost-2::before{content:""}.bi-signpost-fill::before{content:""}.bi-signpost-split-fill::before{content:""}.bi-signpost-split::before{content:""}.bi-signpost::before{content:""}.bi-sim-fill::before{content:""}.bi-sim::before{content:""}.bi-skip-backward-btn-fill::before{content:""}.bi-skip-backward-btn::before{content:""}.bi-skip-backward-circle-fill::before{content:""}.bi-skip-backward-circle::before{content:""}.bi-skip-backward-fill::before{content:""}.bi-skip-backward::before{content:""}.bi-skip-end-btn-fill::before{content:""}.bi-skip-end-btn::before{content:""}.bi-skip-end-circle-fill::before{content:""}.bi-skip-end-circle::before{content:""}.bi-skip-end-fill::before{content:""}.bi-skip-end::before{content:""}.bi-skip-forward-btn-fill::before{content:""}.bi-skip-forward-btn::before{content:""}.bi-skip-forward-circle-fill::before{content:""}.bi-skip-forward-circle::before{content:""}.bi-skip-forward-fill::before{content:""}.bi-skip-forward::before{content:""}.bi-skip-start-btn-fill::before{content:""}.bi-skip-start-btn::before{content:""}.bi-skip-start-circle-fill::before{content:""}.bi-skip-start-circle::before{content:""}.bi-skip-start-fill::before{content:""}.bi-skip-start::before{content:""}.bi-slack::before{content:""}.bi-slash-circle-fill::before{content:""}.bi-slash-circle::before{content:""}.bi-slash-square-fill::before{content:""}.bi-slash-square::before{content:""}.bi-slash::before{content:""}.bi-sliders::before{content:""}.bi-smartwatch::before{content:""}.bi-snow::before{content:""}.bi-snow2::before{content:""}.bi-snow3::before{content:""}.bi-sort-alpha-down-alt::before{content:""}.bi-sort-alpha-down::before{content:""}.bi-sort-alpha-up-alt::before{content:""}.bi-sort-alpha-up::before{content:""}.bi-sort-down-alt::before{content:""}.bi-sort-down::before{content:""}.bi-sort-numeric-down-alt::before{content:""}.bi-sort-numeric-down::before{content:""}.bi-sort-numeric-up-alt::before{content:""}.bi-sort-numeric-up::before{content:""}.bi-sort-up-alt::before{content:""}.bi-sort-up::before{content:""}.bi-soundwave::before{content:""}.bi-speaker-fill::before{content:""}.bi-speaker::before{content:""}.bi-speedometer::before{content:""}.bi-speedometer2::before{content:""}.bi-spellcheck::before{content:""}.bi-square-fill::before{content:""}.bi-square-half::before{content:""}.bi-square::before{content:""}.bi-stack::before{content:""}.bi-star-fill::before{content:""}.bi-star-half::before{content:""}.bi-star::before{content:""}.bi-stars::before{content:""}.bi-stickies-fill::before{content:""}.bi-stickies::before{content:""}.bi-sticky-fill::before{content:""}.bi-sticky::before{content:""}.bi-stop-btn-fill::before{content:""}.bi-stop-btn::before{content:""}.bi-stop-circle-fill::before{content:""}.bi-stop-circle::before{content:""}.bi-stop-fill::before{content:""}.bi-stop::before{content:""}.bi-stoplights-fill::before{content:""}.bi-stoplights::before{content:""}.bi-stopwatch-fill::before{content:""}.bi-stopwatch::before{content:""}.bi-subtract::before{content:""}.bi-suit-club-fill::before{content:""}.bi-suit-club::before{content:""}.bi-suit-diamond-fill::before{content:""}.bi-suit-diamond::before{content:""}.bi-suit-heart-fill::before{content:""}.bi-suit-heart::before{content:""}.bi-suit-spade-fill::before{content:""}.bi-suit-spade::before{content:""}.bi-sun-fill::before{content:""}.bi-sun::before{content:""}.bi-sunglasses::before{content:""}.bi-sunrise-fill::before{content:""}.bi-sunrise::before{content:""}.bi-sunset-fill::before{content:""}.bi-sunset::before{content:""}.bi-symmetry-horizontal::before{content:""}.bi-symmetry-vertical::before{content:""}.bi-table::before{content:""}.bi-tablet-fill::before{content:""}.bi-tablet-landscape-fill::before{content:""}.bi-tablet-landscape::before{content:""}.bi-tablet::before{content:""}.bi-tag-fill::before{content:""}.bi-tag::before{content:""}.bi-tags-fill::before{content:""}.bi-tags::before{content:""}.bi-telegram::before{content:""}.bi-telephone-fill::before{content:""}.bi-telephone-forward-fill::before{content:""}.bi-telephone-forward::before{content:""}.bi-telephone-inbound-fill::before{content:""}.bi-telephone-inbound::before{content:""}.bi-telephone-minus-fill::before{content:""}.bi-telephone-minus::before{content:""}.bi-telephone-outbound-fill::before{content:""}.bi-telephone-outbound::before{content:""}.bi-telephone-plus-fill::before{content:""}.bi-telephone-plus::before{content:""}.bi-telephone-x-fill::before{content:""}.bi-telephone-x::before{content:""}.bi-telephone::before{content:""}.bi-terminal-fill::before{content:""}.bi-terminal::before{content:""}.bi-text-center::before{content:""}.bi-text-indent-left::before{content:""}.bi-text-indent-right::before{content:""}.bi-text-left::before{content:""}.bi-text-paragraph::before{content:""}.bi-text-right::before{content:""}.bi-textarea-resize::before{content:""}.bi-textarea-t::before{content:""}.bi-textarea::before{content:""}.bi-thermometer-half::before{content:""}.bi-thermometer-high::before{content:""}.bi-thermometer-low::before{content:""}.bi-thermometer-snow::before{content:""}.bi-thermometer-sun::before{content:""}.bi-thermometer::before{content:""}.bi-three-dots-vertical::before{content:""}.bi-three-dots::before{content:""}.bi-toggle-off::before{content:""}.bi-toggle-on::before{content:""}.bi-toggle2-off::before{content:""}.bi-toggle2-on::before{content:""}.bi-toggles::before{content:""}.bi-toggles2::before{content:""}.bi-tools::before{content:""}.bi-tornado::before{content:""}.bi-trash-fill::before{content:""}.bi-trash::before{content:""}.bi-trash2-fill::before{content:""}.bi-trash2::before{content:""}.bi-tree-fill::before{content:""}.bi-tree::before{content:""}.bi-triangle-fill::before{content:""}.bi-triangle-half::before{content:""}.bi-triangle::before{content:""}.bi-trophy-fill::before{content:""}.bi-trophy::before{content:""}.bi-tropical-storm::before{content:""}.bi-truck-flatbed::before{content:""}.bi-truck::before{content:""}.bi-tsunami::before{content:""}.bi-tv-fill::before{content:""}.bi-tv::before{content:""}.bi-twitch::before{content:""}.bi-twitter::before{content:""}.bi-type-bold::before{content:""}.bi-type-h1::before{content:""}.bi-type-h2::before{content:""}.bi-type-h3::before{content:""}.bi-type-italic::before{content:""}.bi-type-strikethrough::before{content:""}.bi-type-underline::before{content:""}.bi-type::before{content:""}.bi-ui-checks-grid::before{content:""}.bi-ui-checks::before{content:""}.bi-ui-radios-grid::before{content:""}.bi-ui-radios::before{content:""}.bi-umbrella-fill::before{content:""}.bi-umbrella::before{content:""}.bi-union::before{content:""}.bi-unlock-fill::before{content:""}.bi-unlock::before{content:""}.bi-upc-scan::before{content:""}.bi-upc::before{content:""}.bi-upload::before{content:""}.bi-vector-pen::before{content:""}.bi-view-list::before{content:""}.bi-view-stacked::before{content:""}.bi-vinyl-fill::before{content:""}.bi-vinyl::before{content:""}.bi-voicemail::before{content:""}.bi-volume-down-fill::before{content:""}.bi-volume-down::before{content:""}.bi-volume-mute-fill::before{content:""}.bi-volume-mute::before{content:""}.bi-volume-off-fill::before{content:""}.bi-volume-off::before{content:""}.bi-volume-up-fill::before{content:""}.bi-volume-up::before{content:""}.bi-vr::before{content:""}.bi-wallet-fill::before{content:""}.bi-wallet::before{content:""}.bi-wallet2::before{content:""}.bi-watch::before{content:""}.bi-water::before{content:""}.bi-whatsapp::before{content:""}.bi-wifi-1::before{content:""}.bi-wifi-2::before{content:""}.bi-wifi-off::before{content:""}.bi-wifi::before{content:""}.bi-wind::before{content:""}.bi-window-dock::before{content:""}.bi-window-sidebar::before{content:""}.bi-window::before{content:""}.bi-wrench::before{content:""}.bi-x-circle-fill::before{content:""}.bi-x-circle::before{content:""}.bi-x-diamond-fill::before{content:""}.bi-x-diamond::before{content:""}.bi-x-octagon-fill::before{content:""}.bi-x-octagon::before{content:""}.bi-x-square-fill::before{content:""}.bi-x-square::before{content:""}.bi-x::before{content:""}.bi-youtube::before{content:""}.bi-zoom-in::before{content:""}.bi-zoom-out::before{content:""}.bi-bank::before{content:""}.bi-bank2::before{content:""}.bi-bell-slash-fill::before{content:""}.bi-bell-slash::before{content:""}.bi-cash-coin::before{content:""}.bi-check-lg::before{content:""}.bi-coin::before{content:""}.bi-currency-bitcoin::before{content:""}.bi-currency-dollar::before{content:""}.bi-currency-euro::before{content:""}.bi-currency-exchange::before{content:""}.bi-currency-pound::before{content:""}.bi-currency-yen::before{content:""}.bi-dash-lg::before{content:""}.bi-exclamation-lg::before{content:""}.bi-file-earmark-pdf-fill::before{content:""}.bi-file-earmark-pdf::before{content:""}.bi-file-pdf-fill::before{content:""}.bi-file-pdf::before{content:""}.bi-gender-ambiguous::before{content:""}.bi-gender-female::before{content:""}.bi-gender-male::before{content:""}.bi-gender-trans::before{content:""}.bi-headset-vr::before{content:""}.bi-info-lg::before{content:""}.bi-mastodon::before{content:""}.bi-messenger::before{content:""}.bi-piggy-bank-fill::before{content:""}.bi-piggy-bank::before{content:""}.bi-pin-map-fill::before{content:""}.bi-pin-map::before{content:""}.bi-plus-lg::before{content:""}.bi-question-lg::before{content:""}.bi-recycle::before{content:""}.bi-reddit::before{content:""}.bi-safe-fill::before{content:""}.bi-safe2-fill::before{content:""}.bi-safe2::before{content:""}.bi-sd-card-fill::before{content:""}.bi-sd-card::before{content:""}.bi-skype::before{content:""}.bi-slash-lg::before{content:""}.bi-translate::before{content:""}.bi-x-lg::before{content:""}.bi-safe::before{content:""}.bi-apple::before{content:""}.bi-microsoft::before{content:""}.bi-windows::before{content:""}.bi-behance::before{content:""}.bi-dribbble::before{content:""}.bi-line::before{content:""}.bi-medium::before{content:""}.bi-paypal::before{content:""}.bi-pinterest::before{content:""}.bi-signal::before{content:""}.bi-snapchat::before{content:""}.bi-spotify::before{content:""}.bi-stack-overflow::before{content:""}.bi-strava::before{content:""}.bi-wordpress::before{content:""}.bi-vimeo::before{content:""}.bi-activity::before{content:""}.bi-easel2-fill::before{content:""}.bi-easel2::before{content:""}.bi-easel3-fill::before{content:""}.bi-easel3::before{content:""}.bi-fan::before{content:""}.bi-fingerprint::before{content:""}.bi-graph-down-arrow::before{content:""}.bi-graph-up-arrow::before{content:""}.bi-hypnotize::before{content:""}.bi-magic::before{content:""}.bi-person-rolodex::before{content:""}.bi-person-video::before{content:""}.bi-person-video2::before{content:""}.bi-person-video3::before{content:""}.bi-person-workspace::before{content:""}.bi-radioactive::before{content:""}.bi-webcam-fill::before{content:""}.bi-webcam::before{content:""}.bi-yin-yang::before{content:""}.bi-bandaid-fill::before{content:""}.bi-bandaid::before{content:""}.bi-bluetooth::before{content:""}.bi-body-text::before{content:""}.bi-boombox::before{content:""}.bi-boxes::before{content:""}.bi-dpad-fill::before{content:""}.bi-dpad::before{content:""}.bi-ear-fill::before{content:""}.bi-ear::before{content:""}.bi-envelope-check-1::before{content:""}.bi-envelope-check-fill::before{content:""}.bi-envelope-check::before{content:""}.bi-envelope-dash-1::before{content:""}.bi-envelope-dash-fill::before{content:""}.bi-envelope-dash::before{content:""}.bi-envelope-exclamation-1::before{content:""}.bi-envelope-exclamation-fill::before{content:""}.bi-envelope-exclamation::before{content:""}.bi-envelope-plus-fill::before{content:""}.bi-envelope-plus::before{content:""}.bi-envelope-slash-1::before{content:""}.bi-envelope-slash-fill::before{content:""}.bi-envelope-slash::before{content:""}.bi-envelope-x-1::before{content:""}.bi-envelope-x-fill::before{content:""}.bi-envelope-x::before{content:""}.bi-explicit-fill::before{content:""}.bi-explicit::before{content:""}.bi-git::before{content:""}.bi-infinity::before{content:""}.bi-list-columns-reverse::before{content:""}.bi-list-columns::before{content:""}.bi-meta::before{content:""}.bi-mortorboard-fill::before{content:""}.bi-mortorboard::before{content:""}.bi-nintendo-switch::before{content:""}.bi-pc-display-horizontal::before{content:""}.bi-pc-display::before{content:""}.bi-pc-horizontal::before{content:""}.bi-pc::before{content:""}.bi-playstation::before{content:""}.bi-plus-slash-minus::before{content:""}.bi-projector-fill::before{content:""}.bi-projector::before{content:""}.bi-qr-code-scan::before{content:""}.bi-qr-code::before{content:""}.bi-quora::before{content:""}.bi-quote::before{content:""}.bi-robot::before{content:""}.bi-send-check-fill::before{content:""}.bi-send-check::before{content:""}.bi-send-dash-fill::before{content:""}.bi-send-dash::before{content:""}.bi-send-exclamation-1::before{content:""}.bi-send-exclamation-fill::before{content:""}.bi-send-exclamation::before{content:""}.bi-send-fill::before{content:""}.bi-send-plus-fill::before{content:""}.bi-send-plus::before{content:""}.bi-send-slash-fill::before{content:""}.bi-send-slash::before{content:""}.bi-send-x-fill::before{content:""}.bi-send-x::before{content:""}.bi-send::before{content:""}.bi-steam::before{content:""}.bi-terminal-dash-1::before{content:""}.bi-terminal-dash::before{content:""}.bi-terminal-plus::before{content:""}.bi-terminal-split::before{content:""}.bi-ticket-detailed-fill::before{content:""}.bi-ticket-detailed::before{content:""}.bi-ticket-fill::before{content:""}.bi-ticket-perforated-fill::before{content:""}.bi-ticket-perforated::before{content:""}.bi-ticket::before{content:""}.bi-tiktok::before{content:""}.bi-window-dash::before{content:""}.bi-window-desktop::before{content:""}.bi-window-fullscreen::before{content:""}.bi-window-plus::before{content:""}.bi-window-split::before{content:""}.bi-window-stack::before{content:""}.bi-window-x::before{content:""}.bi-xbox::before{content:""}.bi-ethernet::before{content:""}.bi-hdmi-fill::before{content:""}.bi-hdmi::before{content:""}.bi-usb-c-fill::before{content:""}.bi-usb-c::before{content:""}.bi-usb-fill::before{content:""}.bi-usb-plug-fill::before{content:""}.bi-usb-plug::before{content:""}.bi-usb-symbol::before{content:""}.bi-usb::before{content:""}.bi-boombox-fill::before{content:""}.bi-displayport-1::before{content:""}.bi-displayport::before{content:""}.bi-gpu-card::before{content:""}.bi-memory::before{content:""}.bi-modem-fill::before{content:""}.bi-modem::before{content:""}.bi-motherboard-fill::before{content:""}.bi-motherboard::before{content:""}.bi-optical-audio-fill::before{content:""}.bi-optical-audio::before{content:""}.bi-pci-card::before{content:""}.bi-router-fill::before{content:""}.bi-router::before{content:""}.bi-ssd-fill::before{content:""}.bi-ssd::before{content:""}.bi-thunderbolt-fill::before{content:""}.bi-thunderbolt::before{content:""}.bi-usb-drive-fill::before{content:""}.bi-usb-drive::before{content:""}.bi-usb-micro-fill::before{content:""}.bi-usb-micro::before{content:""}.bi-usb-mini-fill::before{content:""}.bi-usb-mini::before{content:""}.bi-cloud-haze2::before{content:""}.bi-device-hdd-fill::before{content:""}.bi-device-hdd::before{content:""}.bi-device-ssd-fill::before{content:""}.bi-device-ssd::before{content:""}.bi-displayport-fill::before{content:""}.bi-mortarboard-fill::before{content:""}.bi-mortarboard::before{content:""}.bi-terminal-x::before{content:""} diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Client/wwwroot/global.js b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Client/wwwroot/global.js index c129078cdb..2de22906d9 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Client/wwwroot/global.js +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Client/wwwroot/global.js @@ -1,4 +1,4 @@ -(()=>{"use strict";var e,t,n;!function(e){const t=[],n="__jsObjectId",r="__dotNetObject",o="__byte[]",i="__dotNetStream",s="__jsStreamReferenceLength";let a,c;class l{constructor(e){this._jsObject=e,this._cachedFunctions=new Map}findFunction(e){const t=this._cachedFunctions.get(e);if(t)return t;let n,r=this._jsObject;if(e.split(".").forEach((t=>{if(!(t in r))throw new Error(`Could not find '${e}' ('${t}' was undefined).`);n=r,r=r[t]})),r instanceof Function)return r=r.bind(n),this._cachedFunctions.set(e,r),r;throw new Error(`The value '${e}' is not a function.`)}getWrappedObject(){return this._jsObject}}const u={0:new l(window)};u[0]._cachedFunctions.set("import",(e=>("string"==typeof e&&e.startsWith("./")&&(e=new URL(e.substr(2),document.baseURI).toString()),import(e))));let d,f=1;function m(e){t.push(e)}function h(e){if(e&&"object"==typeof e){u[f]=new l(e);const t={[n]:f};return f++,t}throw new Error(`Cannot create a JSObjectReference from the value '${e}'.`)}function p(e){let t=-1;if(e instanceof ArrayBuffer&&(e=new Uint8Array(e)),e instanceof Blob)t=e.size;else{if(!(e.buffer instanceof ArrayBuffer))throw new Error("Supplied value is not a typed array or blob.");if(void 0===e.byteLength)throw new Error(`Cannot create a JSStreamReference from the value '${e}' as it doesn't have a byteLength.`);t=e.byteLength}const r={[s]:t};try{const t=h(e);r[n]=t[n]}catch(t){throw new Error(`Cannot create a JSStreamReference from the value '${e}'.`)}return r}function g(e,n){c=e;const r=n?JSON.parse(n,((e,n)=>t.reduce(((t,n)=>n(e,t)),n))):null;return c=void 0,r}function v(){if(void 0===a)throw new Error("No call dispatcher has been set.");if(null===a)throw new Error("There are multiple .NET runtimes present, so a default dispatcher could not be resolved. Use DotNetObject to invoke .NET instance methods.");return a}e.attachDispatcher=function(e){const t=new y(e);return void 0===a?a=t:a&&(a=null),t},e.attachReviver=m,e.invokeMethod=function(e,t,...n){return v().invokeDotNetStaticMethod(e,t,...n)},e.invokeMethodAsync=function(e,t,...n){return v().invokeDotNetStaticMethodAsync(e,t,...n)},e.createJSObjectReference=h,e.createJSStreamReference=p,e.disposeJSObjectReference=function(e){const t=e&&e[n];"number"==typeof t&&E(t)},function(e){e[e.Default=0]="Default",e[e.JSObjectReference=1]="JSObjectReference",e[e.JSStreamReference=2]="JSStreamReference",e[e.JSVoidResult=3]="JSVoidResult"}(d=e.JSCallResultType||(e.JSCallResultType={}));class y{constructor(e){this._dotNetCallDispatcher=e,this._byteArraysToBeRevived=new Map,this._pendingDotNetToJSStreams=new Map,this._pendingAsyncCalls={},this._nextAsyncCallId=1}getDotNetCallDispatcher(){return this._dotNetCallDispatcher}invokeJSFromDotNet(e,t,n,r){const o=g(this,t),i=A(w(e,r)(...o||[]),n);return null==i?null:_(this,i)}beginInvokeJSFromDotNet(e,t,n,r,o){const i=new Promise((e=>{const r=g(this,n);e(w(t,o)(...r||[]))}));e&&i.then((t=>_(this,[e,!0,A(t,r)]))).then((t=>this._dotNetCallDispatcher.endInvokeJSFromDotNet(e,!0,t)),(t=>this._dotNetCallDispatcher.endInvokeJSFromDotNet(e,!1,JSON.stringify([e,!1,b(t)]))))}endInvokeDotNetFromJS(e,t,n){const r=t?g(this,n):new Error(n);this.completePendingCall(parseInt(e,10),t,r)}invokeDotNetStaticMethod(e,t,...n){return this.invokeDotNetMethod(e,t,null,n)}invokeDotNetStaticMethodAsync(e,t,...n){return this.invokeDotNetMethodAsync(e,t,null,n)}invokeDotNetMethod(e,t,n,r){if(this._dotNetCallDispatcher.invokeDotNetFromJS){const o=_(this,r),i=this._dotNetCallDispatcher.invokeDotNetFromJS(e,t,n,o);return i?g(this,i):null}throw new Error("The current dispatcher does not support synchronous calls from JS to .NET. Use invokeDotNetMethodAsync instead.")}invokeDotNetMethodAsync(e,t,n,r){if(e&&n)throw new Error(`For instance method calls, assemblyName should be null. Received '${e}'.`);const o=this._nextAsyncCallId++,i=new Promise(((e,t)=>{this._pendingAsyncCalls[o]={resolve:e,reject:t}}));try{const i=_(this,r);this._dotNetCallDispatcher.beginInvokeDotNetFromJS(o,e,t,n,i)}catch(e){this.completePendingCall(o,!1,e)}return i}receiveByteArray(e,t){this._byteArraysToBeRevived.set(e,t)}processByteArray(e){const t=this._byteArraysToBeRevived.get(e);return t?(this._byteArraysToBeRevived.delete(e),t):null}supplyDotNetStream(e,t){if(this._pendingDotNetToJSStreams.has(e)){const n=this._pendingDotNetToJSStreams.get(e);this._pendingDotNetToJSStreams.delete(e),n.resolve(t)}else{const n=new N;n.resolve(t),this._pendingDotNetToJSStreams.set(e,n)}}getDotNetStreamPromise(e){let t;if(this._pendingDotNetToJSStreams.has(e))t=this._pendingDotNetToJSStreams.get(e).streamPromise,this._pendingDotNetToJSStreams.delete(e);else{const n=new N;this._pendingDotNetToJSStreams.set(e,n),t=n.streamPromise}return t}completePendingCall(e,t,n){if(!this._pendingAsyncCalls.hasOwnProperty(e))throw new Error(`There is no pending async call with ID ${e}.`);const r=this._pendingAsyncCalls[e];delete this._pendingAsyncCalls[e],t?r.resolve(n):r.reject(n)}}function b(e){return e instanceof Error?`${e.message}\n${e.stack}`:e?e.toString():"null"}function w(e,t){const n=u[t];if(n)return n.findFunction(e);throw new Error(`JS object instance with ID ${t} does not exist (has it been disposed?).`)}function E(e){delete u[e]}e.findJSFunction=w,e.disposeJSObjectReferenceById=E;class S{constructor(e,t){this._id=e,this._callDispatcher=t}invokeMethod(e,...t){return this._callDispatcher.invokeDotNetMethod(null,e,this._id,t)}invokeMethodAsync(e,...t){return this._callDispatcher.invokeDotNetMethodAsync(null,e,this._id,t)}dispose(){this._callDispatcher.invokeDotNetMethodAsync(null,"__Dispose",this._id,null).catch((e=>console.error(e)))}serializeAsArg(){return{[r]:this._id}}}e.DotNetObject=S,m((function(e,t){if(t&&"object"==typeof t){if(t.hasOwnProperty(r))return new S(t[r],c);if(t.hasOwnProperty(n)){const e=t[n],r=u[e];if(r)return r.getWrappedObject();throw new Error(`JS object instance with Id '${e}' does not exist. It may have been disposed.`)}if(t.hasOwnProperty(o)){const e=t[o],n=c.processByteArray(e);if(void 0===n)throw new Error(`Byte array index '${e}' does not exist.`);return n}if(t.hasOwnProperty(i)){const e=t[i],n=c.getDotNetStreamPromise(e);return new I(n)}}return t}));class I{constructor(e){this._streamPromise=e}stream(){return this._streamPromise}async arrayBuffer(){return new Response(await this.stream()).arrayBuffer()}}class N{constructor(){this.streamPromise=new Promise(((e,t)=>{this.resolve=e,this.reject=t}))}}function A(e,t){switch(t){case d.Default:return e;case d.JSObjectReference:return h(e);case d.JSStreamReference:return p(e);case d.JSVoidResult:return null;default:throw new Error(`Invalid JS call result type '${t}'.`)}}let C=0;function _(e,t){C=0,c=e;const n=JSON.stringify(t,k);return c=void 0,n}function k(e,t){if(t instanceof S)return t.serializeAsArg();if(t instanceof Uint8Array){c.getDotNetCallDispatcher().sendByteArray(C,t);const e={[o]:C};return C++,e}return t}}(e||(e={})),function(e){e[e.prependFrame=1]="prependFrame",e[e.removeFrame=2]="removeFrame",e[e.setAttribute=3]="setAttribute",e[e.removeAttribute=4]="removeAttribute",e[e.updateText=5]="updateText",e[e.stepIn=6]="stepIn",e[e.stepOut=7]="stepOut",e[e.updateMarkup=8]="updateMarkup",e[e.permutationListEntry=9]="permutationListEntry",e[e.permutationListEnd=10]="permutationListEnd"}(t||(t={})),function(e){e[e.element=1]="element",e[e.text=2]="text",e[e.attribute=3]="attribute",e[e.component=4]="component",e[e.region=5]="region",e[e.elementReferenceCapture=6]="elementReferenceCapture",e[e.markup=8]="markup",e[e.namedEvent=10]="namedEvent"}(n||(n={}));class r{constructor(e,t){this.componentId=e,this.fieldValue=t}static fromEvent(e,t){const n=t.target;if(n instanceof Element){const t=function(e){return e instanceof HTMLInputElement?e.type&&"checkbox"===e.type.toLowerCase()?{value:e.checked}:{value:e.value}:e instanceof HTMLSelectElement||e instanceof HTMLTextAreaElement?{value:e.value}:null}(n);if(t)return new r(e,t.value)}return null}}const o=new Map,i=new Map,s=[];function a(e){return o.get(e)}function c(e){const t=o.get(e);return(null==t?void 0:t.browserEventName)||e}function l(e,t){e.forEach((e=>o.set(e,t)))}function u(e){const t=[];for(let n=0;ne.selected)).map((e=>e.value))}}{const e=function(e){return!!e&&"INPUT"===e.tagName&&"checkbox"===e.getAttribute("type")}(t);return{value:e?!!t.checked:t.value}}}}),l(["copy","cut","paste"],{createEventArgs:e=>({type:e.type})}),l(["drag","dragend","dragenter","dragleave","dragover","dragstart","drop"],{createEventArgs:e=>{return{...d(t=e),dataTransfer:t.dataTransfer?{dropEffect:t.dataTransfer.dropEffect,effectAllowed:t.dataTransfer.effectAllowed,files:Array.from(t.dataTransfer.files).map((e=>e.name)),items:Array.from(t.dataTransfer.items).map((e=>({kind:e.kind,type:e.type}))),types:t.dataTransfer.types}:null};var t}}),l(["focus","blur","focusin","focusout"],{createEventArgs:e=>({type:e.type})}),l(["keydown","keyup","keypress"],{createEventArgs:e=>{return{key:(t=e).key,code:t.code,location:t.location,repeat:t.repeat,ctrlKey:t.ctrlKey,shiftKey:t.shiftKey,altKey:t.altKey,metaKey:t.metaKey,type:t.type};var t}}),l(["contextmenu","click","mouseover","mouseout","mousemove","mousedown","mouseup","mouseleave","mouseenter","dblclick"],{createEventArgs:e=>d(e)}),l(["error"],{createEventArgs:e=>{return{message:(t=e).message,filename:t.filename,lineno:t.lineno,colno:t.colno,type:t.type};var t}}),l(["loadstart","timeout","abort","load","loadend","progress"],{createEventArgs:e=>{return{lengthComputable:(t=e).lengthComputable,loaded:t.loaded,total:t.total,type:t.type};var t}}),l(["touchcancel","touchend","touchmove","touchenter","touchleave","touchstart"],{createEventArgs:e=>{return{detail:(t=e).detail,touches:u(t.touches),targetTouches:u(t.targetTouches),changedTouches:u(t.changedTouches),ctrlKey:t.ctrlKey,shiftKey:t.shiftKey,altKey:t.altKey,metaKey:t.metaKey,type:t.type};var t}}),l(["gotpointercapture","lostpointercapture","pointercancel","pointerdown","pointerenter","pointerleave","pointermove","pointerout","pointerover","pointerup"],{createEventArgs:e=>{return{...d(t=e),pointerId:t.pointerId,width:t.width,height:t.height,pressure:t.pressure,tiltX:t.tiltX,tiltY:t.tiltY,pointerType:t.pointerType,isPrimary:t.isPrimary};var t}}),l(["wheel","mousewheel"],{createEventArgs:e=>{return{...d(t=e),deltaX:t.deltaX,deltaY:t.deltaY,deltaZ:t.deltaZ,deltaMode:t.deltaMode};var t}}),l(["toggle"],{createEventArgs:()=>({})});const f=["date","datetime-local","month","time","week"],m=new Map;let h,p,g=0;const v={async add(e,t,n){if(!n)throw new Error("initialParameters must be an object, even if empty.");const r="__bl-dynamic-root:"+(++g).toString();m.set(r,e);const o=await w().invokeMethodAsync("AddRootComponent",t,r),i=new b(o,p[t]);return await i.setParameters(n),i}};class y{invoke(e){return this._callback(e)}setCallback(t){this._selfJSObjectReference||(this._selfJSObjectReference=e.createJSObjectReference(this)),this._callback=t}getJSObjectReference(){return this._selfJSObjectReference}dispose(){this._selfJSObjectReference&&e.disposeJSObjectReference(this._selfJSObjectReference)}}class b{constructor(e,t){this._jsEventCallbackWrappers=new Map,this._componentId=e;for(const e of t)"eventcallback"===e.type&&this._jsEventCallbackWrappers.set(e.name.toLowerCase(),new y)}setParameters(e){const t={},n=Object.entries(e||{}),r=n.length;for(const[e,r]of n){const n=this._jsEventCallbackWrappers.get(e.toLowerCase());n&&r?(n.setCallback(r),t[e]=n.getJSObjectReference()):t[e]=r}return w().invokeMethodAsync("SetRootComponentParameters",this._componentId,r,t)}async dispose(){if(null!==this._componentId){await w().invokeMethodAsync("RemoveRootComponent",this._componentId),this._componentId=null;for(const e of this._jsEventCallbackWrappers.values())e.dispose()}}}function w(){if(!h)throw new Error("Dynamic root components have not been enabled in this application.");return h}const E=new Map,S=new Map,I=new Map;let N;function A(e,t,n){return _(e,t.eventHandlerId,(()=>C(e).invokeMethodAsync("DispatchEventAsync",t,n)))}function C(e){const t=E.get(e);if(!t)throw new Error(`No interop methods are registered for renderer ${e}`);return t}new Promise((e=>{N=e}));let _=(e,t,n)=>n();const k=M(["abort","blur","canplay","canplaythrough","change","cuechange","durationchange","emptied","ended","error","focus","load","loadeddata","loadedmetadata","loadend","loadstart","mouseenter","mouseleave","pointerenter","pointerleave","pause","play","playing","progress","ratechange","reset","scroll","seeked","seeking","stalled","submit","suspend","timeupdate","toggle","unload","volumechange","waiting","DOMNodeInsertedIntoDocument","DOMNodeRemovedFromDocument"]),D={submit:!0},R=M(["click","dblclick","mousedown","mousemove","mouseup"]);class F{constructor(e){this.browserRendererId=e,this.afterClickCallbacks=[];const t=++F.nextEventDelegatorId;this.eventsCollectionKey=`_blazorEvents_${t}`,this.eventInfoStore=new T(this.onGlobalEvent.bind(this))}setListener(e,t,n,r){const o=this.getEventHandlerInfosForElement(e,!0),i=o.getHandler(t);if(i)this.eventInfoStore.update(i.eventHandlerId,n);else{const i={element:e,eventName:t,eventHandlerId:n,renderingComponentId:r};this.eventInfoStore.add(i),o.setHandler(t,i)}}getHandler(e){return this.eventInfoStore.get(e)}removeListener(e){const t=this.eventInfoStore.remove(e);if(t){const e=t.element,n=this.getEventHandlerInfosForElement(e,!1);n&&n.removeHandler(t.eventName)}}notifyAfterClick(e){this.afterClickCallbacks.push(e),this.eventInfoStore.addGlobalListener("click")}setStopPropagation(e,t,n){this.getEventHandlerInfosForElement(e,!0).stopPropagation(t,n)}setPreventDefault(e,t,n){this.getEventHandlerInfosForElement(e,!0).preventDefault(t,n)}onGlobalEvent(e){if(!(e.target instanceof Element))return;this.dispatchGlobalEventToAllElements(e.type,e);const t=(n=e.type,i.get(n));var n;t&&t.forEach((t=>this.dispatchGlobalEventToAllElements(t,e))),"click"===e.type&&this.afterClickCallbacks.forEach((t=>t(e)))}dispatchGlobalEventToAllElements(e,t){const n=t.composedPath();let o=n.shift(),i=null,s=!1;const c=Object.prototype.hasOwnProperty.call(k,e);let l=!1;for(;o;){const f=o,m=this.getEventHandlerInfosForElement(f,!1);if(m){const n=m.getHandler(e);if(n&&(u=f,d=t.type,!((u instanceof HTMLButtonElement||u instanceof HTMLInputElement||u instanceof HTMLTextAreaElement||u instanceof HTMLSelectElement)&&Object.prototype.hasOwnProperty.call(R,d)&&u.disabled))){if(!s){const n=a(e);i=(null==n?void 0:n.createEventArgs)?n.createEventArgs(t):{},s=!0}Object.prototype.hasOwnProperty.call(D,t.type)&&t.preventDefault(),A(this.browserRendererId,{eventHandlerId:n.eventHandlerId,eventName:e,eventFieldInfo:r.fromEvent(n.renderingComponentId,t)},i)}m.stopPropagation(e)&&(l=!0),m.preventDefault(e)&&t.preventDefault()}o=c||l?void 0:n.shift()}var u,d}getEventHandlerInfosForElement(e,t){return Object.prototype.hasOwnProperty.call(e,this.eventsCollectionKey)?e[this.eventsCollectionKey]:t?e[this.eventsCollectionKey]=new O:null}}F.nextEventDelegatorId=0;class T{constructor(e){this.globalListener=e,this.infosByEventHandlerId={},this.countByEventName={},s.push(this.handleEventNameAliasAdded.bind(this))}add(e){if(this.infosByEventHandlerId[e.eventHandlerId])throw new Error(`Event ${e.eventHandlerId} is already tracked`);this.infosByEventHandlerId[e.eventHandlerId]=e,this.addGlobalListener(e.eventName)}get(e){return this.infosByEventHandlerId[e]}addGlobalListener(e){if(e=c(e),Object.prototype.hasOwnProperty.call(this.countByEventName,e))this.countByEventName[e]++;else{this.countByEventName[e]=1;const t=Object.prototype.hasOwnProperty.call(k,e);document.addEventListener(e,this.globalListener,t)}}update(e,t){if(Object.prototype.hasOwnProperty.call(this.infosByEventHandlerId,t))throw new Error(`Event ${t} is already tracked`);const n=this.infosByEventHandlerId[e];delete this.infosByEventHandlerId[e],n.eventHandlerId=t,this.infosByEventHandlerId[t]=n}remove(e){const t=this.infosByEventHandlerId[e];if(t){delete this.infosByEventHandlerId[e];const n=c(t.eventName);0==--this.countByEventName[n]&&(delete this.countByEventName[n],document.removeEventListener(n,this.globalListener))}return t}handleEventNameAliasAdded(e,t){if(Object.prototype.hasOwnProperty.call(this.countByEventName,e)){const n=this.countByEventName[e];delete this.countByEventName[e],document.removeEventListener(e,this.globalListener),this.addGlobalListener(t),this.countByEventName[t]+=n-1}}}class O{constructor(){this.handlers={},this.preventDefaultFlags=null,this.stopPropagationFlags=null}getHandler(e){return Object.prototype.hasOwnProperty.call(this.handlers,e)?this.handlers[e]:null}setHandler(e,t){this.handlers[e]=t}removeHandler(e){delete this.handlers[e]}preventDefault(e,t){return void 0!==t&&(this.preventDefaultFlags=this.preventDefaultFlags||{},this.preventDefaultFlags[e]=t),!!this.preventDefaultFlags&&this.preventDefaultFlags[e]}stopPropagation(e,t){return void 0!==t&&(this.stopPropagationFlags=this.stopPropagationFlags||{},this.stopPropagationFlags[e]=t),!!this.stopPropagationFlags&&this.stopPropagationFlags[e]}}function M(e){const t={};return e.forEach((e=>{t[e]=!0})),t}const x=Symbol(),L=Symbol(),P=Symbol();function J(e,t){if(x in e)return e;const n=[];if(e.childNodes.length>0){if(!t)throw new Error("New logical elements must start empty, or allowExistingContents must be true");e.childNodes.forEach((t=>{const r=J(t,!0);r[L]=e,n.push(r)}))}return e[x]=n,e}function B(e){const t=W(e);for(;t.length;)$(e,0)}function j(e,t){const n=document.createComment("!");return H(n,e,t),n}function H(e,t,n){const r=e;let o=e;if(x in e){const t=q(r);if(t!==e){const n=new Range;n.setStartBefore(e),n.setEndAfter(t),o=n.extractContents()}}const i=U(r);if(i){const e=W(i),t=Array.prototype.indexOf.call(e,r);e.splice(t,1),delete r[L]}const s=W(t);if(n0;)$(n,0)}const r=n;r.parentNode.removeChild(r)}function U(e){return e[L]||null}function z(e,t){return W(e)[t]}function K(e){const t=Y(e);return"http://www.w3.org/2000/svg"===t.namespaceURI&&"foreignObject"!==t.tagName}function W(e){return e[x]}function V(e){const t=W(U(e));return t[Array.prototype.indexOf.call(t,e)+1]||null}function X(e,t){const n=W(e);t.forEach((e=>{e.moveRangeStart=n[e.fromSiblingIndex],e.moveRangeEnd=q(e.moveRangeStart)})),t.forEach((t=>{const r=document.createComment("marker");t.moveToBeforeMarker=r;const o=n[t.toSiblingIndex+1];o?o.parentNode.insertBefore(r,o):G(r,e)})),t.forEach((e=>{const t=e.moveToBeforeMarker,n=t.parentNode,r=e.moveRangeStart,o=e.moveRangeEnd;let i=r;for(;i;){const e=i.nextSibling;if(n.insertBefore(i,t),i===o)break;i=e}n.removeChild(t)})),t.forEach((e=>{n[e.toSiblingIndex]=e.moveRangeStart}))}function Y(e){if(e instanceof Element||e instanceof DocumentFragment)return e;if(e instanceof Comment)return e.parentNode;throw new Error("Not a valid logical element")}function G(e,t){if(t instanceof Element||t instanceof DocumentFragment)t.appendChild(e);else{if(!(t instanceof Comment))throw new Error(`Cannot append node because the parent is not a valid logical element. Parent: ${t}`);{const n=V(t);n?n.parentNode.insertBefore(e,n):G(e,U(t))}}}function q(e){if(e instanceof Element||e instanceof DocumentFragment)return e;const t=V(e);if(t)return t.previousSibling;{const t=U(e);return t instanceof Element||t instanceof DocumentFragment?t.lastChild:q(t)}}function Z(e){return`_bl_${e}`}const Q="__internalId";e.attachReviver(((e,t)=>t&&"object"==typeof t&&Object.prototype.hasOwnProperty.call(t,Q)&&"string"==typeof t[Q]?function(e){const t=`[${Z(e)}]`;return document.querySelector(t)}(t[Q]):t));const ee="_blazorDeferredValue";function te(e){return"select-multiple"===e.type}function ne(e,t){e.value=t||""}function re(e,t){e instanceof HTMLSelectElement?te(e)?function(e,t){t||(t=[]);for(let n=0;n{Ne()&&function(e,t){if(0!==e.button||function(e){return e.ctrlKey||e.shiftKey||e.altKey||e.metaKey}(e))return;if(e.defaultPrevented)return;const n=function(e){const t=!window._blazorDisableComposedPath&&e.composedPath&&e.composedPath();if(t){for(let e=0;edocument.baseURI,getLocationHref:()=>location.href,scrollToElement:Me};function Me(e){const t=document.getElementById(e);return!!t&&(t.scrollIntoView(),!0)}function xe(e,t,n=!1){const r=Se(e);!t.forceLoad&&be(r)?Ue()?Le(r,!1,t.replaceHistoryEntry,t.historyEntryState,n):Ee(r,t.replaceHistoryEntry):function(e,t){if(location.href===e){const t=e+"?";history.replaceState(null,"",t),location.replace(e)}else t?location.replace(e):location.href=e}(e,t.replaceHistoryEntry)}async function Le(e,t,n,r=void 0,o=!1){if(Be(),function(e){const t=e.indexOf("#");return t>-1&&location.href.replace(location.hash,"")===e.substring(0,t)}(e))!function(e,t,n){Pe(e,t,n);const r=e.indexOf("#");r!==e.length-1&&Me(e.substring(r+1))}(e,n,r);else{if(!o&&Ce&&!await je(e,r,t))return;he=!0,Pe(e,n,r),await He(t)}}function Pe(e,t,n=void 0){t?history.replaceState({userState:n,_index:_e},"",e):(_e++,history.pushState({userState:n,_index:_e},"",e))}function Je(e){return new Promise((t=>{const n=Fe;Fe=()=>{Fe=n,t()},history.go(e)}))}function Be(){Te&&(Te(!1),Te=null)}function je(e,t,n){return new Promise((r=>{Be(),Re?(ke++,Te=r,Re(ke,e,t,n)):r(!1)}))}async function He(e){var t;De&&await De(location.href,null===(t=history.state)||void 0===t?void 0:t.userState,e)}async function $e(e){var t,n;Fe&&Ue()&&await Fe(e),_e=null!==(n=null===(t=history.state)||void 0===t?void 0:t._index)&&void 0!==n?n:0}function Ue(){return Ne()||!we()}const ze={focus:function(e,t){if(e instanceof HTMLElement)e.focus({preventScroll:t});else{if(!(e instanceof SVGElement))throw new Error("Unable to focus an invalid element.");if(!e.hasAttribute("tabindex"))throw new Error("Unable to focus an SVG element that does not have a tabindex.");e.focus({preventScroll:t})}},focusBySelector:function(e,t){const n=document.querySelector(e);n&&(n.hasAttribute("tabindex")||(n.tabIndex=-1),n.focus({preventScroll:!0}))}},Ke={init:function(e,t,n,r=50){const o=Ve(t);(o||document.documentElement).style.overflowAnchor="none";const i=document.createRange();u(n.parentElement)&&(t.style.display="table-row",n.style.display="table-row");const s=new IntersectionObserver((function(r){r.forEach((r=>{var o;if(!r.isIntersecting)return;i.setStartAfter(t),i.setEndBefore(n);const s=i.getBoundingClientRect().height,a=null===(o=r.rootBounds)||void 0===o?void 0:o.height;r.target===t?e.invokeMethodAsync("OnSpacerBeforeVisible",r.intersectionRect.top-r.boundingClientRect.top,s,a):r.target===n&&n.offsetHeight>0&&e.invokeMethodAsync("OnSpacerAfterVisible",r.boundingClientRect.bottom-r.intersectionRect.bottom,s,a)}))}),{root:o,rootMargin:`${r}px`});s.observe(t),s.observe(n);const a=l(t),c=l(n);function l(e){const t={attributes:!0},n=new MutationObserver(((n,r)=>{u(e.parentElement)&&(r.disconnect(),e.style.display="table-row",r.observe(e,t)),s.unobserve(e),s.observe(e)}));return n.observe(e,t),n}function u(e){return null!==e&&(e instanceof HTMLTableElement&&""===e.style.display||"table"===e.style.display||e instanceof HTMLTableSectionElement&&""===e.style.display||"table-row-group"===e.style.display)}We[e._id]={intersectionObserver:s,mutationObserverBefore:a,mutationObserverAfter:c}},dispose:function(e){const t=We[e._id];t&&(t.intersectionObserver.disconnect(),t.mutationObserverBefore.disconnect(),t.mutationObserverAfter.disconnect(),e.dispose(),delete We[e._id])}},We={};function Ve(e){return e&&e!==document.body&&e!==document.documentElement?"visible"!==getComputedStyle(e).overflowY?e:Ve(e.parentElement):null}const Xe={getAndRemoveExistingTitle:function(){var e;const t=document.head?document.head.getElementsByTagName("title"):[];if(0===t.length)return null;let n=null;for(let r=t.length-1;r>=0;r--){const o=t[r],i=o.previousSibling;i instanceof Comment&&null!==U(i)||(null===n&&(n=o.textContent),null===(e=o.parentNode)||void 0===e||e.removeChild(o))}return n}},Ye={init:function(e,t){t._blazorInputFileNextFileId=0,t.addEventListener("click",(function(){t.value=""})),t.addEventListener("change",(function(){t._blazorFilesById={};const n=Array.prototype.map.call(t.files,(function(e){const n={id:++t._blazorInputFileNextFileId,lastModified:new Date(e.lastModified).toISOString(),name:e.name,size:e.size,contentType:e.type,readPromise:void 0,arrayBuffer:void 0,blob:e};return t._blazorFilesById[n.id]=n,n}));e.invokeMethodAsync("NotifyChange",n)}))},toImageFile:async function(e,t,n,r,o){const i=Ge(e,t),s=await new Promise((function(e){const t=new Image;t.onload=function(){URL.revokeObjectURL(t.src),e(t)},t.onerror=function(){t.onerror=null,URL.revokeObjectURL(t.src)},t.src=URL.createObjectURL(i.blob)})),a=await new Promise((function(e){var t;const i=Math.min(1,r/s.width),a=Math.min(1,o/s.height),c=Math.min(i,a),l=document.createElement("canvas");l.width=Math.round(s.width*c),l.height=Math.round(s.height*c),null===(t=l.getContext("2d"))||void 0===t||t.drawImage(s,0,0,l.width,l.height),l.toBlob(e,n)})),c={id:++e._blazorInputFileNextFileId,lastModified:i.lastModified,name:i.name,size:(null==a?void 0:a.size)||0,contentType:n,blob:a||i.blob};return e._blazorFilesById[c.id]=c,c},readFileData:async function(e,t){return Ge(e,t).blob}};function Ge(e,t){const n=e._blazorFilesById[t];if(!n)throw new Error(`There is no file with ID ${t}. The file list may have changed. See https://aka.ms/aspnet/blazor-input-file-multiple-selections.`);return n}const qe=new Set,Ze={enableNavigationPrompt:function(e){0===qe.size&&window.addEventListener("beforeunload",Qe),qe.add(e)},disableNavigationPrompt:function(e){qe.delete(e),0===qe.size&&window.removeEventListener("beforeunload",Qe)}};function Qe(e){e.preventDefault(),e.returnValue=!0}const et=new Map,tt={navigateTo:function(e,t,n=!1){xe(e,t instanceof Object?t:{forceLoad:t,replaceHistoryEntry:n})},registerCustomEventType:function(e,t){if(!t)throw new Error("The options parameter is required.");if(o.has(e))throw new Error(`The event '${e}' is already registered.`);if(t.browserEventName){const n=i.get(t.browserEventName);n?n.push(e):i.set(t.browserEventName,[e]),s.forEach((n=>n(e,t.browserEventName)))}o.set(e,t)},rootComponents:v,runtime:{},_internal:{navigationManager:Oe,domWrapper:ze,Virtualize:Ke,PageTitle:Xe,InputFile:Ye,NavigationLock:Ze,getJSDataStreamChunk:async function(e,t,n){return e instanceof Blob?await async function(e,t,n){const r=e.slice(t,t+n),o=await r.arrayBuffer();return new Uint8Array(o)}(e,t,n):function(e,t,n){return new Uint8Array(e.buffer,e.byteOffset+t,n)}(e,t,n)},attachWebRendererInterop:function(t,n,r,o){if(E.has(t))throw new Error(`Interop methods are already registered for renderer ${t}`);E.set(t,n),Object.keys(r).length>0&&function(t,n,r){if(h)throw new Error("Dynamic root components have already been enabled.");h=t,p=n;for(const[t,o]of Object.entries(r)){const r=e.findJSFunction(t,0);for(const e of o)r(e,n[e])}}(C(t),r,o),N(),function(e){const t=S.get(e);t&&(S.delete(e),I.delete(e),t())}(t)}}};var nt,rt;window.Blazor=tt;const ot=navigator,it=ot.userAgentData&&ot.userAgentData.brands,st=it&&it.length>0?it.some((e=>"Google Chrome"===e.brand||"Microsoft Edge"===e.brand||"Chromium"===e.brand)):window.chrome,at=null!==(rt=null===(nt=ot.userAgentData)||void 0===nt?void 0:nt.platform)&&void 0!==rt?rt:navigator.platform;function ct(e){return 0!==e.debugLevel&&(st||navigator.userAgent.includes("Firefox"))}let lt,ut,dt,ft,mt,ht,pt=!1;function gt(){const e=document.querySelector("#blazor-error-ui");e&&(e.style.display="block"),pt||(pt=!0,document.querySelectorAll("#blazor-error-ui .reload").forEach((e=>{e.onclick=function(e){location.reload(),e.preventDefault()}})),document.querySelectorAll("#blazor-error-ui .dismiss").forEach((e=>{e.onclick=function(e){const t=document.querySelector("#blazor-error-ui");t&&(t.style.display="none"),e.preventDefault()}})))}const vt=Math.pow(2,32),yt=Math.pow(2,21)-1;let bt=null;function wt(e){return ut.getI32(e)}const Et={load:function(e,t){return async function(e,t){const{dotnet:n}=await async function(e){if("undefined"==typeof WebAssembly||!WebAssembly.validate)throw new Error("This browser does not support WebAssembly.");let t="_framework/dotnet.js";if(e.loadBootResource){const n="dotnetjs",r=e.loadBootResource(n,"dotnet.js",t,"","js-module-dotnet");if("string"==typeof r)t=r;else if(r)throw new Error(`For a ${n} resource, custom loaders must supply a URI string.`)}const n=new URL(t,document.baseURI).toString();return await import(n)}(e),r=function(e,t){const n={maxParallelDownloads:1e6,enableDownloadRetry:!1,applicationEnvironment:e.environment},r={...window.Module||{},onConfigLoaded:async(n,{invokeLibraryInitializers:r})=>{var o,i;n.environmentVariables||(n.environmentVariables={}),"sharded"===n.globalizationMode&&(n.environmentVariables.__BLAZOR_SHARDED_ICU="1"),tt._internal.getApplicationEnvironment=()=>n.applicationEnvironment,null==t||t(n);const s=[e,null!==(i=null===(o=n.resources)||void 0===o?void 0:o.extensions)&&void 0!==i?i:{}];await r("beforeStart",s)},onDownloadResourceProgress:St,config:n,disableDotnet6Compatibility:!1,out:Nt,err:At};return r}(e,t);e.applicationCulture&&n.withApplicationCulture(e.applicationCulture),e.environment&&n.withApplicationEnvironment(e.environment),e.loadBootResource&&n.withResourceLoader(e.loadBootResource),n.withModuleConfig(r),e.configureRuntime&&e.configureRuntime(n),ht=await n.create()}(e,t)},start:function(){return async function(){if(!ht)throw new Error("The runtime must be loaded it gets configured.");const{MONO:t,BINDING:n,Module:r,setModuleImports:o,INTERNAL:i,getConfig:s,invokeLibraryInitializers:a}=ht;dt=r,lt=n,ut=t,mt=i,function(e){const t=at.match(/^Mac/i)?"Cmd":"Alt";ct(e)&&console.info(`Debugging hotkey: Shift+${t}+D (when application has focus)`),document.addEventListener("keydown",(t=>{t.shiftKey&&(t.metaKey||t.altKey)&&"KeyD"===t.code&&(ct(e)?navigator.userAgent.includes("Firefox")?async function(){const e=await fetch(`_framework/debug?url=${encodeURIComponent(location.href)}&isFirefox=true`);200!==e.status&&console.warn(await e.text())}():st?function(){const e=document.createElement("a");e.href=`_framework/debug?url=${encodeURIComponent(location.href)}`,e.target="_blank",e.rel="noopener noreferrer",e.click()}():console.error("Currently, only Microsoft Edge (80+), Google Chrome, or Chromium, are supported for debugging."):console.error("Cannot start debugging, because the application was not compiled with debugging enabled."))}))}(s()),tt.runtime=ht,tt._internal.dotNetCriticalError=At,o("blazor-internal",{Blazor:{_internal:tt._internal}});const c=await ht.getAssemblyExports("Microsoft.AspNetCore.Components.WebAssembly");return Object.assign(tt._internal,{dotNetExports:{...c.Microsoft.AspNetCore.Components.WebAssembly.Services.DefaultWebAssemblyJSRuntime}}),ft=e.attachDispatcher({beginInvokeDotNetFromJS:(e,t,n,r,o)=>{if(_t(),!r&&!t)throw new Error("Either assemblyName or dotNetObjectId must have a non null value.");const i=r?r.toString():t;tt._internal.dotNetExports.BeginInvokeDotNet(e?e.toString():null,i,n,o)},endInvokeJSFromDotNet:(e,t,n)=>{tt._internal.dotNetExports.EndInvokeJS(n)},sendByteArray:(e,t)=>{tt._internal.dotNetExports.ReceiveByteArrayFromJS(e,t)},invokeDotNetFromJS:(e,t,n,r)=>(_t(),tt._internal.dotNetExports.InvokeDotNet(e||null,t,null!=n?n:0,r))}),{invokeLibraryInitializers:a}}()},callEntryPoint:async function(){try{await ht.runMain(ht.getConfig().mainAssemblyName,[])}catch(e){console.error(e),gt()}},toUint8Array:function(e){const t=Ct(e),n=wt(t),r=new Uint8Array(n);return r.set(dt.HEAPU8.subarray(t+4,t+4+n)),r},getArrayLength:function(e){return wt(Ct(e))},getArrayEntryPtr:function(e,t,n){return Ct(e)+4+t*n},getObjectFieldsBaseAddress:function(e){return e+8},readInt16Field:function(e,t){return n=e+(t||0),ut.getI16(n);var n},readInt32Field:function(e,t){return wt(e+(t||0))},readUint64Field:function(e,t){return function(e){const t=e>>2,n=dt.HEAPU32[t+1];if(n>yt)throw new Error(`Cannot read uint64 with high order part ${n}, because the result would exceed Number.MAX_SAFE_INTEGER.`);return n*vt+dt.HEAPU32[t]}(e+(t||0))},readFloatField:function(e,t){return n=e+(t||0),ut.getF32(n);var n},readObjectField:function(e,t){return wt(e+(t||0))},readStringField:function(e,t,n){const r=wt(e+(t||0));if(0===r)return null;if(n){const e=lt.unbox_mono_obj(r);return"boolean"==typeof e?e?"":null:e}return lt.conv_string(r)},readStructField:function(e,t){return e+(t||0)},beginHeapLock:function(){return _t(),bt=kt.create(),bt},invokeWhenHeapUnlocked:function(e){bt?bt.enqueuePostReleaseAction(e):e()}};function St(e,t){const n=e/t*100;document.documentElement.style.setProperty("--blazor-load-percentage",`${n}%`),document.documentElement.style.setProperty("--blazor-load-percentage-text",`"${Math.floor(n)}%"`)}const It=["DEBUGGING ENABLED"],Nt=e=>It.indexOf(e)<0&&console.log(e),At=e=>{console.error(e||"(null)"),gt()};function Ct(e){return e+12}function _t(){if(bt)throw new Error("Assertion failed - heap is currently locked")}class kt{enqueuePostReleaseAction(e){this.postReleaseActions||(this.postReleaseActions=[]),this.postReleaseActions.push(e)}release(){var e;if(bt!==this)throw new Error("Trying to release a lock which isn't current");for(mt.mono_wasm_gc_unlock(),bt=null;null===(e=this.postReleaseActions)||void 0===e?void 0:e.length;)this.postReleaseActions.shift()(),_t()}static create(){return mt.mono_wasm_gc_lock(),new kt}}let Dt;class Rt{constructor(e){this.batchAddress=e,this.arrayRangeReader=Ft,this.arrayBuilderSegmentReader=Tt,this.diffReader=Ot,this.editReader=Mt,this.frameReader=xt}updatedComponents(){return Dt.readStructField(this.batchAddress,0)}referenceFrames(){return Dt.readStructField(this.batchAddress,Ft.structLength)}disposedComponentIds(){return Dt.readStructField(this.batchAddress,2*Ft.structLength)}disposedEventHandlerIds(){return Dt.readStructField(this.batchAddress,3*Ft.structLength)}updatedComponentsEntry(e,t){return Lt(e,t,Ot.structLength)}referenceFramesEntry(e,t){return Lt(e,t,xt.structLength)}disposedComponentIdsEntry(e,t){const n=Lt(e,t,4);return Dt.readInt32Field(n)}disposedEventHandlerIdsEntry(e,t){const n=Lt(e,t,8);return Dt.readUint64Field(n)}}const Ft={structLength:8,values:e=>Dt.readObjectField(e,0),count:e=>Dt.readInt32Field(e,4)},Tt={structLength:12,values:e=>{const t=Dt.readObjectField(e,0),n=Dt.getObjectFieldsBaseAddress(t);return Dt.readObjectField(n,0)},offset:e=>Dt.readInt32Field(e,4),count:e=>Dt.readInt32Field(e,8)},Ot={structLength:4+Tt.structLength,componentId:e=>Dt.readInt32Field(e,0),edits:e=>Dt.readStructField(e,4),editsEntry:(e,t)=>Lt(e,t,Mt.structLength)},Mt={structLength:20,editType:e=>Dt.readInt32Field(e,0),siblingIndex:e=>Dt.readInt32Field(e,4),newTreeIndex:e=>Dt.readInt32Field(e,8),moveToSiblingIndex:e=>Dt.readInt32Field(e,8),removedAttributeName:e=>Dt.readStringField(e,16)},xt={structLength:36,frameType:e=>Dt.readInt16Field(e,4),subtreeLength:e=>Dt.readInt32Field(e,8),elementReferenceCaptureId:e=>Dt.readStringField(e,16),componentId:e=>Dt.readInt32Field(e,12),elementName:e=>Dt.readStringField(e,16),textContent:e=>Dt.readStringField(e,16),markupContent:e=>Dt.readStringField(e,16),attributeName:e=>Dt.readStringField(e,16),attributeValue:e=>Dt.readStringField(e,24,!0),attributeEventHandlerId:e=>Dt.readUint64Field(e,8)};function Lt(e,t,n){return Dt.getArrayEntryPtr(e,t,n)}const Pt=/^\s*Blazor-Component-State:(?[a-zA-Z0-9+/=]+)$/;function Jt(e){var t;if(e.nodeType===Node.COMMENT_NODE){const n=e.textContent||"",r=Pt.exec(n),o=r&&r.groups&&r.groups.state;return o&&(null===(t=e.parentNode)||void 0===t||t.removeChild(e)),o}if(!e.hasChildNodes())return;const n=e.childNodes;for(let e=0;e.*)$/);function Ht(e,t){const n=e.currentElement;var r,o,i;if(n&&n.nodeType===Node.COMMENT_NODE&&n.textContent){const s=jt.exec(n.textContent),a=s&&s.groups&&s.groups.descriptor;if(!a)return;!function(e){if(e.parentNode instanceof Document)throw new Error("Root components cannot be marked as interactive. The element must be rendered statically so that scripts are not evaluated multiple times.")}(n);try{const s=function(e){const t=JSON.parse(e),{type:n}=t;if("server"!==n&&"webassembly"!==n&&"auto"!==n)throw new Error(`Invalid component type '${n}'.`);return t}(a),c=function(e,t,n){const{prerenderId:r}=e;if(r){for(;n.next()&&n.currentElement;){const e=n.currentElement;if(e.nodeType!==Node.COMMENT_NODE)continue;if(!e.textContent)continue;const t=jt.exec(e.textContent),o=t&&t[1];if(o)return Vt(o,r),e}throw new Error(`Could not find an end component comment for '${t}'.`)}}(s,n,e);if(t!==s.type)return;switch(s.type){case"webassembly":return o=n,i=c,Wt(r=s),{...r,uniqueId:zt++,start:o,end:i};case"server":return function(e,t,n){return Kt(e),{...e,uniqueId:zt++,start:t,end:n}}(s,n,c);case"auto":return function(e,t,n){return Kt(e),Wt(e),{...e,uniqueId:zt++,start:t,end:n}}(s,n,c)}}catch(e){throw new Error(`Found malformed component comment at ${n.textContent}`)}}}let $t,Ut,zt=0;function Kt(e){const{descriptor:t,sequence:n}=e;if(!t)throw new Error("descriptor must be defined when using a descriptor.");if(void 0===n)throw new Error("sequence must be defined when using a descriptor.");if(!Number.isInteger(n))throw new Error(`Error parsing the sequence '${n}' for component '${JSON.stringify(e)}'`)}function Wt(e){const{assembly:t,typeName:n}=e;if(!t)throw new Error("assembly must be defined when using a descriptor.");if(!n)throw new Error("typeName must be defined when using a descriptor.");e.parameterDefinitions=e.parameterDefinitions&&atob(e.parameterDefinitions),e.parameterValues=e.parameterValues&&atob(e.parameterValues)}function Vt(e,t){const n=JSON.parse(e);if(1!==Object.keys(n).length)throw new Error(`Invalid end of component comment: '${e}'`);const r=n.prerenderId;if(!r)throw new Error(`End of component comment must have a value for the prerendered property: '${e}'`);if(r!==t)throw new Error(`End of component comment prerendered property must match the start comment prerender id: '${t}', '${r}'`)}class Xt{constructor(e){this.childNodes=e,this.currentIndex=-1,this.length=e.length}next(){return this.currentIndex++,this.currentIndex{}));const t=en();!function(e){const t=_;_=(e,n,r)=>{((e,t,n)=>{const r=function(e){return me[e]}(e);r.eventDelegator.getHandler(t)&&Et.invokeWhenHeapUnlocked(n)})(e,n,(()=>t(e,n,r)))}}(),tt._internal.applyHotReload=(e,t,n,r)=>{ft.invokeDotNetStaticMethod("Microsoft.AspNetCore.Components.WebAssembly","ApplyHotReloadDelta",e,t,n,r)},tt._internal.getApplyUpdateCapabilities=()=>ft.invokeDotNetStaticMethod("Microsoft.AspNetCore.Components.WebAssembly","GetApplyUpdateCapabilities"),tt._internal.invokeJSFromDotNet=tn,tt._internal.invokeJSJson=nn,tt._internal.endInvokeDotNetFromJS=rn,tt._internal.receiveWebAssemblyDotNetDataStream=on,tt._internal.receiveByteArray=sn;const n=(Dt=Et,Dt);tt.platform=n,tt._internal.renderBatch=(e,t)=>{const n=Et.beginHeapLock();try{!function(e,t){const n=me[e];if(!n)throw new Error(`There is no browser renderer with ID ${e}.`);const r=t.arrayRangeReader,o=t.updatedComponents(),i=r.values(o),s=r.count(o),a=t.referenceFrames(),c=r.values(a),l=t.diffReader;for(let e=0;e{await ft.invokeDotNetStaticMethodAsync("Microsoft.AspNetCore.Components.WebAssembly","NotifyLocationChanged",e,t,n)}),(async(e,t,n,r)=>{const o=await ft.invokeDotNetStaticMethodAsync("Microsoft.AspNetCore.Components.WebAssembly","NotifyLocationChangingAsync",t,n,r);tt._internal.navigationManager.endLocationChanging(e,o)}));const r=new Yt(e);let o;tt._internal.registeredComponents={getRegisteredComponentsCount:()=>r.getCount(),getAssembly:e=>r.getAssembly(e),getTypeName:e=>r.getTypeName(e),getParameterDefinitions:e=>r.getParameterDefinitions(e)||"",getParameterValues:e=>r.getParameterValues(e)||""},tt._internal.getPersistedState=()=>Jt(document)||"",tt._internal.attachRootComponentToElement=(e,t,n)=>{const o=r.resolveRegisteredElement(e,t);o?pe(n,o,t,!1):function(e,t,n){const r="::before";let o=!1;if(e.endsWith("::after"))e=e.slice(0,-7),o=!0;else if(e.endsWith(r))throw new Error(`The '${r}' selector is not supported.`);const i=function(e){const t=m.get(e);if(t)return m.delete(e),t}(e)||document.querySelector(e);if(!i)throw new Error(`Could not find any element matching selector '${e}'.`);pe(n||0,J(i,!0),t,o)}(e,t,n)};try{await t,o=await n.start()}catch(e){throw new Error(`Failed to start platform. Reason: ${e}`)}n.callEntryPoint(),o.invokeLibraryInitializers("afterStarted",[tt])}function en(){return null!=Ut||(Ut=Et.load(null!=$t?$t:{},Gt)),Ut}function tn(t,n,r,o){const i=Et.readStringField(t,0),s=Et.readInt32Field(t,4),a=Et.readStringField(t,8),c=Et.readUint64Field(t,20);if(null!==a){const e=Et.readUint64Field(t,12);if(0!==e)return ft.beginInvokeJSFromDotNet(e,i,a,s,c),0;{const e=ft.invokeJSFromDotNet(i,a,s,c);return null===e?0:lt.js_string_to_mono_string(e)}}{const t=e.findJSFunction(i,c).call(null,n,r,o);switch(s){case e.JSCallResultType.Default:return t;case e.JSCallResultType.JSObjectReference:return e.createJSObjectReference(t).__jsObjectId;case e.JSCallResultType.JSStreamReference:{const n=e.createJSStreamReference(t),r=JSON.stringify(n);return lt.js_string_to_mono_string(r)}case e.JSCallResultType.JSVoidResult:return null;default:throw new Error(`Invalid JS call result type '${s}'.`)}}}function nn(e,t,n,r,o){return 0!==o?(ft.beginInvokeJSFromDotNet(o,e,r,n,t),null):ft.invokeJSFromDotNet(e,r,n,t)}function rn(e,t,n){ft.endInvokeDotNetFromJS(e,t,n)}function on(e,t,n,r){!function(e,t,n,r,o){let i=et.get(t);if(!i){const n=new ReadableStream({start(e){et.set(t,e),i=e}});e.supplyDotNetStream(t,n)}o?(i.error(o),et.delete(t)):0===r?(i.close(),et.delete(t)):i.enqueue(n.length===r?n:n.subarray(0,r))}(ft,e,t,n,r)}function sn(e,t){ft.receiveByteArray(e,t)}new Promise((e=>{Gt=e}));class an{constructor(e){this.initialComponents=e}resolveRootComponent(e,t){return this.initialComponents[e]}}let cn=!1;async function ln(e){if(cn)throw new Error("Blazor has already started.");cn=!0,Zt(e);const t=Bt(document,"webassembly"),n=new an(t);await Qt(n)}tt.start=ln,window.DotNet=e,document&&document.currentScript&&"false"!==document.currentScript.getAttribute("autostart")&&ln().catch((e=>{void 0!==dt&&dt.err?dt.err(e):console.error(e)}))})(); +(()=>{"use strict";var e,t,n;!function(e){const t=[],n="__jsObjectId",r="__dotNetObject",o="__byte[]",i="__dotNetStream",s="__jsStreamReferenceLength";let a,c;class l{constructor(e){this._jsObject=e,this._cachedFunctions=new Map}findFunction(e){const t=this._cachedFunctions.get(e);if(t)return t;let n,r=this._jsObject;if(e.split(".").forEach((t=>{if(!(t in r))throw new Error(`Could not find '${e}' ('${t}' was undefined).`);n=r,r=r[t]})),r instanceof Function)return r=r.bind(n),this._cachedFunctions.set(e,r),r;throw new Error(`The value '${e}' is not a function.`)}getWrappedObject(){return this._jsObject}}const u={0:new l(window)};u[0]._cachedFunctions.set("import",(e=>("string"==typeof e&&e.startsWith("./")&&(e=new URL(e.substr(2),document.baseURI).toString()),import(e))));let d,f=1;function m(e){t.push(e)}function h(e){if(e&&"object"==typeof e){u[f]=new l(e);const t={[n]:f};return f++,t}throw new Error(`Cannot create a JSObjectReference from the value '${e}'.`)}function p(e){let t=-1;if(e instanceof ArrayBuffer&&(e=new Uint8Array(e)),e instanceof Blob)t=e.size;else{if(!(e.buffer instanceof ArrayBuffer))throw new Error("Supplied value is not a typed array or blob.");if(void 0===e.byteLength)throw new Error(`Cannot create a JSStreamReference from the value '${e}' as it doesn't have a byteLength.`);t=e.byteLength}const r={[s]:t};try{const t=h(e);r[n]=t[n]}catch(t){throw new Error(`Cannot create a JSStreamReference from the value '${e}'.`)}return r}function v(e,n){c=e;const r=n?JSON.parse(n,((e,n)=>t.reduce(((t,n)=>n(e,t)),n))):null;return c=void 0,r}function b(){if(void 0===a)throw new Error("No call dispatcher has been set.");if(null===a)throw new Error("There are multiple .NET runtimes present, so a default dispatcher could not be resolved. Use DotNetObject to invoke .NET instance methods.");return a}e.attachDispatcher=function(e){const t=new g(e);return void 0===a?a=t:a&&(a=null),t},e.attachReviver=m,e.invokeMethod=function(e,t,...n){return b().invokeDotNetStaticMethod(e,t,...n)},e.invokeMethodAsync=function(e,t,...n){return b().invokeDotNetStaticMethodAsync(e,t,...n)},e.createJSObjectReference=h,e.createJSStreamReference=p,e.disposeJSObjectReference=function(e){const t=e&&e[n];"number"==typeof t&&E(t)},function(e){e[e.Default=0]="Default",e[e.JSObjectReference=1]="JSObjectReference",e[e.JSStreamReference=2]="JSStreamReference",e[e.JSVoidResult=3]="JSVoidResult"}(d=e.JSCallResultType||(e.JSCallResultType={}));class g{constructor(e){this._dotNetCallDispatcher=e,this._byteArraysToBeRevived=new Map,this._pendingDotNetToJSStreams=new Map,this._pendingAsyncCalls={},this._nextAsyncCallId=1}getDotNetCallDispatcher(){return this._dotNetCallDispatcher}invokeJSFromDotNet(e,t,n,r){const o=v(this,t),i=I(w(e,r)(...o||[]),n);return null==i?null:_(this,i)}beginInvokeJSFromDotNet(e,t,n,r,o){const i=new Promise((e=>{const r=v(this,n);e(w(t,o)(...r||[]))}));e&&i.then((t=>_(this,[e,!0,I(t,r)]))).then((t=>this._dotNetCallDispatcher.endInvokeJSFromDotNet(e,!0,t)),(t=>this._dotNetCallDispatcher.endInvokeJSFromDotNet(e,!1,JSON.stringify([e,!1,y(t)]))))}endInvokeDotNetFromJS(e,t,n){const r=t?v(this,n):new Error(n);this.completePendingCall(parseInt(e,10),t,r)}invokeDotNetStaticMethod(e,t,...n){return this.invokeDotNetMethod(e,t,null,n)}invokeDotNetStaticMethodAsync(e,t,...n){return this.invokeDotNetMethodAsync(e,t,null,n)}invokeDotNetMethod(e,t,n,r){if(this._dotNetCallDispatcher.invokeDotNetFromJS){const o=_(this,r),i=this._dotNetCallDispatcher.invokeDotNetFromJS(e,t,n,o);return i?v(this,i):null}throw new Error("The current dispatcher does not support synchronous calls from JS to .NET. Use invokeDotNetMethodAsync instead.")}invokeDotNetMethodAsync(e,t,n,r){if(e&&n)throw new Error(`For instance method calls, assemblyName should be null. Received '${e}'.`);const o=this._nextAsyncCallId++,i=new Promise(((e,t)=>{this._pendingAsyncCalls[o]={resolve:e,reject:t}}));try{const i=_(this,r);this._dotNetCallDispatcher.beginInvokeDotNetFromJS(o,e,t,n,i)}catch(e){this.completePendingCall(o,!1,e)}return i}receiveByteArray(e,t){this._byteArraysToBeRevived.set(e,t)}processByteArray(e){const t=this._byteArraysToBeRevived.get(e);return t?(this._byteArraysToBeRevived.delete(e),t):null}supplyDotNetStream(e,t){if(this._pendingDotNetToJSStreams.has(e)){const n=this._pendingDotNetToJSStreams.get(e);this._pendingDotNetToJSStreams.delete(e),n.resolve(t)}else{const n=new C;n.resolve(t),this._pendingDotNetToJSStreams.set(e,n)}}getDotNetStreamPromise(e){let t;if(this._pendingDotNetToJSStreams.has(e))t=this._pendingDotNetToJSStreams.get(e).streamPromise,this._pendingDotNetToJSStreams.delete(e);else{const n=new C;this._pendingDotNetToJSStreams.set(e,n),t=n.streamPromise}return t}completePendingCall(e,t,n){if(!this._pendingAsyncCalls.hasOwnProperty(e))throw new Error(`There is no pending async call with ID ${e}.`);const r=this._pendingAsyncCalls[e];delete this._pendingAsyncCalls[e],t?r.resolve(n):r.reject(n)}}function y(e){return e instanceof Error?`${e.message}\n${e.stack}`:e?e.toString():"null"}function w(e,t){const n=u[t];if(n)return n.findFunction(e);throw new Error(`JS object instance with ID ${t} does not exist (has it been disposed?).`)}function E(e){delete u[e]}e.findJSFunction=w,e.disposeJSObjectReferenceById=E;class S{constructor(e,t){this._id=e,this._callDispatcher=t}invokeMethod(e,...t){return this._callDispatcher.invokeDotNetMethod(null,e,this._id,t)}invokeMethodAsync(e,...t){return this._callDispatcher.invokeDotNetMethodAsync(null,e,this._id,t)}dispose(){this._callDispatcher.invokeDotNetMethodAsync(null,"__Dispose",this._id,null).catch((e=>console.error(e)))}serializeAsArg(){return{[r]:this._id}}}e.DotNetObject=S,m((function(e,t){if(t&&"object"==typeof t){if(t.hasOwnProperty(r))return new S(t[r],c);if(t.hasOwnProperty(n)){const e=t[n],r=u[e];if(r)return r.getWrappedObject();throw new Error(`JS object instance with Id '${e}' does not exist. It may have been disposed.`)}if(t.hasOwnProperty(o)){const e=t[o],n=c.processByteArray(e);if(void 0===n)throw new Error(`Byte array index '${e}' does not exist.`);return n}if(t.hasOwnProperty(i)){const e=t[i],n=c.getDotNetStreamPromise(e);return new A(n)}}return t}));class A{constructor(e){this._streamPromise=e}stream(){return this._streamPromise}async arrayBuffer(){return new Response(await this.stream()).arrayBuffer()}}class C{constructor(){this.streamPromise=new Promise(((e,t)=>{this.resolve=e,this.reject=t}))}}function I(e,t){switch(t){case d.Default:return e;case d.JSObjectReference:return h(e);case d.JSStreamReference:return p(e);case d.JSVoidResult:return null;default:throw new Error(`Invalid JS call result type '${t}'.`)}}let N=0;function _(e,t){N=0,c=e;const n=JSON.stringify(t,R);return c=void 0,n}function R(e,t){if(t instanceof S)return t.serializeAsArg();if(t instanceof Uint8Array){c.getDotNetCallDispatcher().sendByteArray(N,t);const e={[o]:N};return N++,e}return t}}(e||(e={})),function(e){e[e.prependFrame=1]="prependFrame",e[e.removeFrame=2]="removeFrame",e[e.setAttribute=3]="setAttribute",e[e.removeAttribute=4]="removeAttribute",e[e.updateText=5]="updateText",e[e.stepIn=6]="stepIn",e[e.stepOut=7]="stepOut",e[e.updateMarkup=8]="updateMarkup",e[e.permutationListEntry=9]="permutationListEntry",e[e.permutationListEnd=10]="permutationListEnd"}(t||(t={})),function(e){e[e.element=1]="element",e[e.text=2]="text",e[e.attribute=3]="attribute",e[e.component=4]="component",e[e.region=5]="region",e[e.elementReferenceCapture=6]="elementReferenceCapture",e[e.markup=8]="markup",e[e.namedEvent=10]="namedEvent"}(n||(n={}));class r{constructor(e,t){this.componentId=e,this.fieldValue=t}static fromEvent(e,t){const n=t.target;if(n instanceof Element){const t=function(e){return e instanceof HTMLInputElement?e.type&&"checkbox"===e.type.toLowerCase()?{value:e.checked}:{value:e.value}:e instanceof HTMLSelectElement||e instanceof HTMLTextAreaElement?{value:e.value}:null}(n);if(t)return new r(e,t.value)}return null}}const o=new Map,i=new Map,s=[];function a(e){return o.get(e)}function c(e){const t=o.get(e);return(null==t?void 0:t.browserEventName)||e}function l(e,t){e.forEach((e=>o.set(e,t)))}function u(e){const t=[];for(let n=0;ne.selected)).map((e=>e.value))}}{const e=function(e){return!!e&&"INPUT"===e.tagName&&"checkbox"===e.getAttribute("type")}(t);return{value:e?!!t.checked:t.value}}}}),l(["copy","cut","paste"],{createEventArgs:e=>({type:e.type})}),l(["drag","dragend","dragenter","dragleave","dragover","dragstart","drop"],{createEventArgs:e=>{return{...d(t=e),dataTransfer:t.dataTransfer?{dropEffect:t.dataTransfer.dropEffect,effectAllowed:t.dataTransfer.effectAllowed,files:Array.from(t.dataTransfer.files).map((e=>e.name)),items:Array.from(t.dataTransfer.items).map((e=>({kind:e.kind,type:e.type}))),types:t.dataTransfer.types}:null};var t}}),l(["focus","blur","focusin","focusout"],{createEventArgs:e=>({type:e.type})}),l(["keydown","keyup","keypress"],{createEventArgs:e=>{return{key:(t=e).key,code:t.code,location:t.location,repeat:t.repeat,ctrlKey:t.ctrlKey,shiftKey:t.shiftKey,altKey:t.altKey,metaKey:t.metaKey,type:t.type};var t}}),l(["contextmenu","click","mouseover","mouseout","mousemove","mousedown","mouseup","mouseleave","mouseenter","dblclick"],{createEventArgs:e=>d(e)}),l(["error"],{createEventArgs:e=>{return{message:(t=e).message,filename:t.filename,lineno:t.lineno,colno:t.colno,type:t.type};var t}}),l(["loadstart","timeout","abort","load","loadend","progress"],{createEventArgs:e=>{return{lengthComputable:(t=e).lengthComputable,loaded:t.loaded,total:t.total,type:t.type};var t}}),l(["touchcancel","touchend","touchmove","touchenter","touchleave","touchstart"],{createEventArgs:e=>{return{detail:(t=e).detail,touches:u(t.touches),targetTouches:u(t.targetTouches),changedTouches:u(t.changedTouches),ctrlKey:t.ctrlKey,shiftKey:t.shiftKey,altKey:t.altKey,metaKey:t.metaKey,type:t.type};var t}}),l(["gotpointercapture","lostpointercapture","pointercancel","pointerdown","pointerenter","pointerleave","pointermove","pointerout","pointerover","pointerup"],{createEventArgs:e=>{return{...d(t=e),pointerId:t.pointerId,width:t.width,height:t.height,pressure:t.pressure,tiltX:t.tiltX,tiltY:t.tiltY,pointerType:t.pointerType,isPrimary:t.isPrimary};var t}}),l(["wheel","mousewheel"],{createEventArgs:e=>{return{...d(t=e),deltaX:t.deltaX,deltaY:t.deltaY,deltaZ:t.deltaZ,deltaMode:t.deltaMode};var t}}),l(["cancel","close","toggle"],{createEventArgs:()=>({})});const f=["date","datetime-local","month","time","week"],m=new Map;let h,p,v=0;const b={async add(e,t,n){if(!n)throw new Error("initialParameters must be an object, even if empty.");const r="__bl-dynamic-root:"+(++v).toString();m.set(r,e);const o=await w().invokeMethodAsync("AddRootComponent",t,r),i=new y(o,p[t]);return await i.setParameters(n),i}};class g{invoke(e){return this._callback(e)}setCallback(t){this._selfJSObjectReference||(this._selfJSObjectReference=e.createJSObjectReference(this)),this._callback=t}getJSObjectReference(){return this._selfJSObjectReference}dispose(){this._selfJSObjectReference&&e.disposeJSObjectReference(this._selfJSObjectReference)}}class y{constructor(e,t){this._jsEventCallbackWrappers=new Map,this._componentId=e;for(const e of t)"eventcallback"===e.type&&this._jsEventCallbackWrappers.set(e.name.toLowerCase(),new g)}setParameters(e){const t={},n=Object.entries(e||{}),r=n.length;for(const[e,r]of n){const n=this._jsEventCallbackWrappers.get(e.toLowerCase());n&&r?(n.setCallback(r),t[e]=n.getJSObjectReference()):t[e]=r}return w().invokeMethodAsync("SetRootComponentParameters",this._componentId,r,t)}async dispose(){if(null!==this._componentId){await w().invokeMethodAsync("RemoveRootComponent",this._componentId),this._componentId=null;for(const e of this._jsEventCallbackWrappers.values())e.dispose()}}}function w(){if(!h)throw new Error("Dynamic root components have not been enabled in this application.");return h}const E=new Map,S=[],A=new Map;function C(e,t,n){return N(e,t.eventHandlerId,(()=>I(e).invokeMethodAsync("DispatchEventAsync",t,n)))}function I(e){const t=E.get(e);if(!t)throw new Error(`No interop methods are registered for renderer ${e}`);return t}let N=(e,t,n)=>n();const _=O(["abort","blur","cancel","canplay","canplaythrough","change","close","cuechange","durationchange","emptied","ended","error","focus","load","loadeddata","loadedmetadata","loadend","loadstart","mouseenter","mouseleave","pointerenter","pointerleave","pause","play","playing","progress","ratechange","reset","scroll","seeked","seeking","stalled","submit","suspend","timeupdate","toggle","unload","volumechange","waiting","DOMNodeInsertedIntoDocument","DOMNodeRemovedFromDocument"]),R={submit:!0},D=O(["click","dblclick","mousedown","mousemove","mouseup"]);class k{constructor(e){this.browserRendererId=e,this.afterClickCallbacks=[];const t=++k.nextEventDelegatorId;this.eventsCollectionKey=`_blazorEvents_${t}`,this.eventInfoStore=new F(this.onGlobalEvent.bind(this))}setListener(e,t,n,r){const o=this.getEventHandlerInfosForElement(e,!0),i=o.getHandler(t);if(i)this.eventInfoStore.update(i.eventHandlerId,n);else{const i={element:e,eventName:t,eventHandlerId:n,renderingComponentId:r};this.eventInfoStore.add(i),o.setHandler(t,i)}}getHandler(e){return this.eventInfoStore.get(e)}removeListener(e){const t=this.eventInfoStore.remove(e);if(t){const e=t.element,n=this.getEventHandlerInfosForElement(e,!1);n&&n.removeHandler(t.eventName)}}notifyAfterClick(e){this.afterClickCallbacks.push(e),this.eventInfoStore.addGlobalListener("click")}setStopPropagation(e,t,n){this.getEventHandlerInfosForElement(e,!0).stopPropagation(t,n)}setPreventDefault(e,t,n){this.getEventHandlerInfosForElement(e,!0).preventDefault(t,n)}onGlobalEvent(e){if(!(e.target instanceof Element))return;this.dispatchGlobalEventToAllElements(e.type,e);const t=(n=e.type,i.get(n));var n;t&&t.forEach((t=>this.dispatchGlobalEventToAllElements(t,e))),"click"===e.type&&this.afterClickCallbacks.forEach((t=>t(e)))}dispatchGlobalEventToAllElements(e,t){const n=t.composedPath();let o=n.shift(),i=null,s=!1;const c=Object.prototype.hasOwnProperty.call(_,e);let l=!1;for(;o;){const f=o,m=this.getEventHandlerInfosForElement(f,!1);if(m){const n=m.getHandler(e);if(n&&(u=f,d=t.type,!((u instanceof HTMLButtonElement||u instanceof HTMLInputElement||u instanceof HTMLTextAreaElement||u instanceof HTMLSelectElement)&&Object.prototype.hasOwnProperty.call(D,d)&&u.disabled))){if(!s){const n=a(e);i=(null==n?void 0:n.createEventArgs)?n.createEventArgs(t):{},s=!0}Object.prototype.hasOwnProperty.call(R,t.type)&&t.preventDefault(),C(this.browserRendererId,{eventHandlerId:n.eventHandlerId,eventName:e,eventFieldInfo:r.fromEvent(n.renderingComponentId,t)},i)}m.stopPropagation(e)&&(l=!0),m.preventDefault(e)&&t.preventDefault()}o=c||l?void 0:n.shift()}var u,d}getEventHandlerInfosForElement(e,t){return Object.prototype.hasOwnProperty.call(e,this.eventsCollectionKey)?e[this.eventsCollectionKey]:t?e[this.eventsCollectionKey]=new T:null}}k.nextEventDelegatorId=0;class F{constructor(e){this.globalListener=e,this.infosByEventHandlerId={},this.countByEventName={},s.push(this.handleEventNameAliasAdded.bind(this))}add(e){if(this.infosByEventHandlerId[e.eventHandlerId])throw new Error(`Event ${e.eventHandlerId} is already tracked`);this.infosByEventHandlerId[e.eventHandlerId]=e,this.addGlobalListener(e.eventName)}get(e){return this.infosByEventHandlerId[e]}addGlobalListener(e){if(e=c(e),Object.prototype.hasOwnProperty.call(this.countByEventName,e))this.countByEventName[e]++;else{this.countByEventName[e]=1;const t=Object.prototype.hasOwnProperty.call(_,e);document.addEventListener(e,this.globalListener,t)}}update(e,t){if(Object.prototype.hasOwnProperty.call(this.infosByEventHandlerId,t))throw new Error(`Event ${t} is already tracked`);const n=this.infosByEventHandlerId[e];delete this.infosByEventHandlerId[e],n.eventHandlerId=t,this.infosByEventHandlerId[t]=n}remove(e){const t=this.infosByEventHandlerId[e];if(t){delete this.infosByEventHandlerId[e];const n=c(t.eventName);0==--this.countByEventName[n]&&(delete this.countByEventName[n],document.removeEventListener(n,this.globalListener))}return t}handleEventNameAliasAdded(e,t){if(Object.prototype.hasOwnProperty.call(this.countByEventName,e)){const n=this.countByEventName[e];delete this.countByEventName[e],document.removeEventListener(e,this.globalListener),this.addGlobalListener(t),this.countByEventName[t]+=n-1}}}class T{constructor(){this.handlers={},this.preventDefaultFlags=null,this.stopPropagationFlags=null}getHandler(e){return Object.prototype.hasOwnProperty.call(this.handlers,e)?this.handlers[e]:null}setHandler(e,t){this.handlers[e]=t}removeHandler(e){delete this.handlers[e]}preventDefault(e,t){return void 0!==t&&(this.preventDefaultFlags=this.preventDefaultFlags||{},this.preventDefaultFlags[e]=t),!!this.preventDefaultFlags&&this.preventDefaultFlags[e]}stopPropagation(e,t){return void 0!==t&&(this.stopPropagationFlags=this.stopPropagationFlags||{},this.stopPropagationFlags[e]=t),!!this.stopPropagationFlags&&this.stopPropagationFlags[e]}}function O(e){const t={};return e.forEach((e=>{t[e]=!0})),t}const L=Symbol(),M=Symbol(),x=Symbol();function P(e,t){if(L in e)return e;const n=[];if(e.childNodes.length>0){if(!t)throw new Error("New logical elements must start empty, or allowExistingContents must be true");e.childNodes.forEach((t=>{const r=P(t,!0);r[M]=e,n.push(r)}))}return e[L]=n,e}function B(e){const t=U(e);for(;t.length;)H(e,0)}function J(e,t){const n=document.createComment("!");return j(n,e,t),n}function j(e,t,n){const r=e;let o=e;if(L in e){const t=G(r);if(t!==e){const n=new Range;n.setStartBefore(e),n.setEndAfter(t),o=n.extractContents()}}const i=$(r);if(i){const e=U(i),t=Array.prototype.indexOf.call(e,r);e.splice(t,1),delete r[M]}const s=U(t);if(n0;)H(n,0)}const r=n;r.parentNode.removeChild(r)}function $(e){return e[M]||null}function z(e,t){return U(e)[t]}function W(e){const t=X(e);return"http://www.w3.org/2000/svg"===t.namespaceURI&&"foreignObject"!==t.tagName}function U(e){return e[L]}function K(e){const t=U($(e));return t[Array.prototype.indexOf.call(t,e)+1]||null}function V(e,t){const n=U(e);t.forEach((e=>{e.moveRangeStart=n[e.fromSiblingIndex],e.moveRangeEnd=G(e.moveRangeStart)})),t.forEach((t=>{const r=document.createComment("marker");t.moveToBeforeMarker=r;const o=n[t.toSiblingIndex+1];o?o.parentNode.insertBefore(r,o):Y(r,e)})),t.forEach((e=>{const t=e.moveToBeforeMarker,n=t.parentNode,r=e.moveRangeStart,o=e.moveRangeEnd;let i=r;for(;i;){const e=i.nextSibling;if(n.insertBefore(i,t),i===o)break;i=e}n.removeChild(t)})),t.forEach((e=>{n[e.toSiblingIndex]=e.moveRangeStart}))}function X(e){if(e instanceof Element||e instanceof DocumentFragment)return e;if(e instanceof Comment)return e.parentNode;throw new Error("Not a valid logical element")}function Y(e,t){if(t instanceof Element||t instanceof DocumentFragment)t.appendChild(e);else{if(!(t instanceof Comment))throw new Error(`Cannot append node because the parent is not a valid logical element. Parent: ${t}`);{const n=K(t);n?n.parentNode.insertBefore(e,n):Y(e,$(t))}}}function G(e){if(e instanceof Element||e instanceof DocumentFragment)return e;const t=K(e);if(t)return t.previousSibling;{const t=$(e);return t instanceof Element||t instanceof DocumentFragment?t.lastChild:G(t)}}function q(e){return`_bl_${e}`}const Z="__internalId";e.attachReviver(((e,t)=>t&&"object"==typeof t&&Object.prototype.hasOwnProperty.call(t,Z)&&"string"==typeof t[Z]?function(e){const t=`[${q(e)}]`;return document.querySelector(t)}(t[Z]):t));const Q="_blazorDeferredValue";function ee(e){return"select-multiple"===e.type}function te(e,t){e.value=t||""}function ne(e,t){e instanceof HTMLSelectElement?ee(e)?function(e,t){t||(t=[]);for(let n=0;n{Ie()&&function(e,t){if(0!==e.button||function(e){return e.ctrlKey||e.shiftKey||e.altKey||e.metaKey}(e))return;if(e.defaultPrevented)return;const n=function(e){const t=!window._blazorDisableComposedPath&&e.composedPath&&e.composedPath();if(t){for(let e=0;e{const t=document.createElement("script");t.textContent=e.textContent,e.getAttributeNames().forEach((n=>{t.setAttribute(n,e.getAttribute(n))})),e.parentNode.replaceChild(t,e)})),oe.content));var s;let a=0;for(;i.firstChild;)j(i.firstChild,o,a++)}applyAttribute(e,t,n,r){const o=e.frameReader,i=o.attributeName(r),s=o.attributeEventHandlerId(r);if(s){const e=fe(i);return void this.eventDelegator.setListener(n,e,s,t)}const a=o.attributeValue(r);this.setOrRemoveAttributeOrProperty(n,i,a)}insertFrameRange(e,t,n,r,o,i,s){const a=r;for(let a=i;a{He(t,e)})},enableNavigationInterception:function(e){if(void 0!==he&&he!==e)throw new Error("Only one interactive runtime may enable navigation interception at a time.");he=e},setHasLocationChangingListeners:function(e,t){const n=ke.get(e);if(!n)throw new Error(`Renderer with ID '${e}' is not listening for navigation events`);n.hasLocationChangingEventListeners=t},endLocationChanging:function(e,t){Te&&e===De&&(Te(t),Te=null)},navigateTo:function(e,t){Me(e,t,!0)},refresh:function(e){!e&&Ee()?Se(location.href,!0):location.reload()},getBaseURI:()=>document.baseURI,getLocationHref:()=>location.href,scrollToElement:Le};function Le(e){const t=document.getElementById(e);return!!t&&(t.scrollIntoView(),!0)}function Me(e,t,n=!1){const r=Ae(e);!t.forceLoad&&we(r)?We()?xe(r,!1,t.replaceHistoryEntry,t.historyEntryState,n):Se(r,t.replaceHistoryEntry):function(e,t){if(location.href===e){const t=e+"?";history.replaceState(null,"",t),location.replace(e)}else t?location.replace(e):location.href=e}(e,t.replaceHistoryEntry)}async function xe(e,t,n,r=void 0,o=!1){if(Je(),function(e){const t=e.indexOf("#");return t>-1&&location.href.replace(location.hash,"")===e.substring(0,t)}(e))return void function(e,t,n){Pe(e,t,n);const r=e.indexOf("#");r!==e.length-1&&Le(e.substring(r+1))}(e,n,r);const i=ze();(o||!(null==i?void 0:i.hasLocationChangingEventListeners)||await je(e,r,t,i))&&(ge=!0,Pe(e,n,r),await He(t))}function Pe(e,t,n=void 0){t?history.replaceState({userState:n,_index:Re},"",e):(Re++,history.pushState({userState:n,_index:Re},"",e))}function Be(e){return new Promise((t=>{const n=Fe;Fe=()=>{Fe=n,t()},history.go(e)}))}function Je(){Te&&(Te(!1),Te=null)}function je(e,t,n,r){return new Promise((o=>{Je(),De++,Te=o,r.locationChanging(De,e,t,n)}))}async function He(e,t){const n=null!=t?t:location.href;await Promise.all(Array.from(ke,(async([t,r])=>{var o,i;i=t,E.has(i)&&await r.locationChanged(n,null===(o=history.state)||void 0===o?void 0:o.userState,e)})))}async function $e(e){var t,n;Fe&&We()&&await Fe(e),Re=null!==(n=null===(t=history.state)||void 0===t?void 0:t._index)&&void 0!==n?n:0}function ze(){const e=Ne();if(void 0!==e)return ke.get(e)}function We(){return Ie()||!Ee()}const Ue={focus:function(e,t){if(e instanceof HTMLElement)e.focus({preventScroll:t});else{if(!(e instanceof SVGElement))throw new Error("Unable to focus an invalid element.");if(!e.hasAttribute("tabindex"))throw new Error("Unable to focus an SVG element that does not have a tabindex.");e.focus({preventScroll:t})}},focusBySelector:function(e,t){const n=document.querySelector(e);n&&(n.hasAttribute("tabindex")||(n.tabIndex=-1),n.focus({preventScroll:!0}))}},Ke={init:function(e,t,n,r=50){const o=Xe(t);(o||document.documentElement).style.overflowAnchor="none";const i=document.createRange();f(n.parentElement)&&(t.style.display="table-row",n.style.display="table-row");const s=new IntersectionObserver((function(r){r.forEach((r=>{var o;if(!r.isIntersecting)return;i.setStartAfter(t),i.setEndBefore(n);const s=i.getBoundingClientRect().height,a=null===(o=r.rootBounds)||void 0===o?void 0:o.height;r.target===t?e.invokeMethodAsync("OnSpacerBeforeVisible",r.intersectionRect.top-r.boundingClientRect.top,s,a):r.target===n&&n.offsetHeight>0&&e.invokeMethodAsync("OnSpacerAfterVisible",r.boundingClientRect.bottom-r.intersectionRect.bottom,s,a)}))}),{root:o,rootMargin:`${r}px`});s.observe(t),s.observe(n);const a=d(t),c=d(n),{observersByDotNetObjectId:l,id:u}=Ye(e);function d(e){const t={attributes:!0},n=new MutationObserver(((n,r)=>{f(e.parentElement)&&(r.disconnect(),e.style.display="table-row",r.observe(e,t)),s.unobserve(e),s.observe(e)}));return n.observe(e,t),n}function f(e){return null!==e&&(e instanceof HTMLTableElement&&""===e.style.display||"table"===e.style.display||e instanceof HTMLTableSectionElement&&""===e.style.display||"table-row-group"===e.style.display)}l[u]={intersectionObserver:s,mutationObserverBefore:a,mutationObserverAfter:c}},dispose:function(e){const{observersByDotNetObjectId:t,id:n}=Ye(e),r=t[n];r&&(r.intersectionObserver.disconnect(),r.mutationObserverBefore.disconnect(),r.mutationObserverAfter.disconnect(),e.dispose(),delete t[n])}},Ve=Symbol();function Xe(e){return e&&e!==document.body&&e!==document.documentElement?"visible"!==getComputedStyle(e).overflowY?e:Xe(e.parentElement):null}function Ye(e){var t;const n=e._callDispatcher,r=e._id;return null!==(t=n[Ve])&&void 0!==t||(n[Ve]={}),{observersByDotNetObjectId:n[Ve],id:r}}const Ge={getAndRemoveExistingTitle:function(){var e;const t=document.head?document.head.getElementsByTagName("title"):[];if(0===t.length)return null;let n=null;for(let r=t.length-1;r>=0;r--){const o=t[r],i=o.previousSibling;i instanceof Comment&&null!==$(i)||(null===n&&(n=o.textContent),null===(e=o.parentNode)||void 0===e||e.removeChild(o))}return n}},qe={init:function(e,t){t._blazorInputFileNextFileId=0,t.addEventListener("click",(function(){t.value=""})),t.addEventListener("change",(function(){t._blazorFilesById={};const n=Array.prototype.map.call(t.files,(function(e){const n={id:++t._blazorInputFileNextFileId,lastModified:new Date(e.lastModified).toISOString(),name:e.name,size:e.size,contentType:e.type,readPromise:void 0,arrayBuffer:void 0,blob:e};return t._blazorFilesById[n.id]=n,n}));e.invokeMethodAsync("NotifyChange",n)}))},toImageFile:async function(e,t,n,r,o){const i=Ze(e,t),s=await new Promise((function(e){const t=new Image;t.onload=function(){URL.revokeObjectURL(t.src),e(t)},t.onerror=function(){t.onerror=null,URL.revokeObjectURL(t.src)},t.src=URL.createObjectURL(i.blob)})),a=await new Promise((function(e){var t;const i=Math.min(1,r/s.width),a=Math.min(1,o/s.height),c=Math.min(i,a),l=document.createElement("canvas");l.width=Math.round(s.width*c),l.height=Math.round(s.height*c),null===(t=l.getContext("2d"))||void 0===t||t.drawImage(s,0,0,l.width,l.height),l.toBlob(e,n)})),c={id:++e._blazorInputFileNextFileId,lastModified:i.lastModified,name:i.name,size:(null==a?void 0:a.size)||0,contentType:n,blob:a||i.blob};return e._blazorFilesById[c.id]=c,c},readFileData:async function(e,t){return Ze(e,t).blob}};function Ze(e,t){const n=e._blazorFilesById[t];if(!n)throw new Error(`There is no file with ID ${t}. The file list may have changed. See https://aka.ms/aspnet/blazor-input-file-multiple-selections.`);return n}const Qe=new Set,et={enableNavigationPrompt:function(e){0===Qe.size&&window.addEventListener("beforeunload",tt),Qe.add(e)},disableNavigationPrompt:function(e){Qe.delete(e),0===Qe.size&&window.removeEventListener("beforeunload",tt)}};function tt(e){e.preventDefault(),e.returnValue=!0}const nt=new Map,rt={navigateTo:function(e,t,n=!1){Me(e,t instanceof Object?t:{forceLoad:t,replaceHistoryEntry:n})},registerCustomEventType:function(e,t){if(!t)throw new Error("The options parameter is required.");if(o.has(e))throw new Error(`The event '${e}' is already registered.`);if(t.browserEventName){const n=i.get(t.browserEventName);n?n.push(e):i.set(t.browserEventName,[e]),s.forEach((n=>n(e,t.browserEventName)))}o.set(e,t)},rootComponents:b,runtime:{},_internal:{navigationManager:Oe,domWrapper:Ue,Virtualize:Ke,PageTitle:Ge,InputFile:qe,NavigationLock:et,getJSDataStreamChunk:async function(e,t,n){return e instanceof Blob?await async function(e,t,n){const r=e.slice(t,t+n),o=await r.arrayBuffer();return new Uint8Array(o)}(e,t,n):function(e,t,n){return new Uint8Array(e.buffer,e.byteOffset+t,n)}(e,t,n)},attachWebRendererInterop:function(t,n,r,o){var i,s;if(E.has(t))throw new Error(`Interop methods are already registered for renderer ${t}`);E.set(t,n),r&&o&&Object.keys(r).length>0&&function(t,n,r){if(h)throw new Error("Dynamic root components have already been enabled.");h=t,p=n;for(const[t,o]of Object.entries(r)){const r=e.findJSFunction(t,0);for(const e of o)r(e,n[e])}}(I(t),r,o),null===(s=null===(i=A.get(t))||void 0===i?void 0:i[0])||void 0===s||s.call(i),function(e){for(const t of S)t(e)}(t)}}};var ot,it;window.Blazor=rt;const st=navigator,at=st.userAgentData&&st.userAgentData.brands,ct=at&&at.length>0?at.some((e=>"Google Chrome"===e.brand||"Microsoft Edge"===e.brand||"Chromium"===e.brand)):window.chrome,lt=null!==(it=null===(ot=st.userAgentData)||void 0===ot?void 0:ot.platform)&&void 0!==it?it:navigator.platform;function ut(e){return 0!==e.debugLevel&&(ct||navigator.userAgent.includes("Firefox"))}let dt=!1;function ft(){const e=document.querySelector("#blazor-error-ui");e&&(e.style.display="block"),dt||(dt=!0,document.querySelectorAll("#blazor-error-ui .reload").forEach((e=>{e.onclick=function(e){location.reload(),e.preventDefault()}})),document.querySelectorAll("#blazor-error-ui .dismiss").forEach((e=>{e.onclick=function(e){const t=document.querySelector("#blazor-error-ui");t&&(t.style.display="none"),e.preventDefault()}})))}var mt,ht;!function(e){e[e.Default=0]="Default",e[e.Server=1]="Server",e[e.WebAssembly=2]="WebAssembly",e[e.WebView=3]="WebView"}(mt||(mt={})),function(e){e[e.Trace=0]="Trace",e[e.Debug=1]="Debug",e[e.Information=2]="Information",e[e.Warning=3]="Warning",e[e.Error=4]="Error",e[e.Critical=5]="Critical",e[e.None=6]="None"}(ht||(ht={}));class pt{constructor(e=!0,t,n,r=0){this.singleRuntime=e,this.logger=t,this.webRendererId=r,this.afterStartedCallbacks=[],n&&this.afterStartedCallbacks.push(...n)}async importInitializersAsync(e,t){await Promise.all(e.map((e=>async function(e,n){const r=function(e){const t=document.baseURI;return t.endsWith("/")?`${t}${e}`:`${t}/${e}`}(n),o=await import(r);if(void 0!==o){if(e.singleRuntime){const{beforeStart:n,afterStarted:r,beforeWebAssemblyStart:s,afterWebAssemblyStarted:a,beforeServerStart:c,afterServerStarted:l}=o;let u=n;e.webRendererId===mt.Server&&c&&(u=c),e.webRendererId===mt.WebAssembly&&s&&(u=s);let d=r;return e.webRendererId===mt.Server&&l&&(d=l),e.webRendererId===mt.WebAssembly&&a&&(d=a),i(e,u,d,t)}return function(e,t,n){var o;const s=n[0],{beforeStart:a,afterStarted:c,beforeWebStart:l,afterWebStarted:u,beforeWebAssemblyStart:d,afterWebAssemblyStarted:f,beforeServerStart:m,afterServerStarted:h}=t,p=!(l||u||d||f||m||h||!a&&!c),v=p&&s.enableClassicInitializers;if(p&&!s.enableClassicInitializers)null===(o=e.logger)||void 0===o||o.log(ht.Warning,`Initializer '${r}' will be ignored because multiple runtimes are available. use 'before(web|webAssembly|server)Start' and 'after(web|webAssembly|server)Started?' instead.)`);else if(v)return i(e,a,c,n);if(function(e){e.webAssembly?e.webAssembly.initializers||(e.webAssembly.initializers={beforeStart:[],afterStarted:[]}):e.webAssembly={initializers:{beforeStart:[],afterStarted:[]}},e.circuit?e.circuit.initializers||(e.circuit.initializers={beforeStart:[],afterStarted:[]}):e.circuit={initializers:{beforeStart:[],afterStarted:[]}}}(s),d&&s.webAssembly.initializers.beforeStart.push(d),f&&s.webAssembly.initializers.afterStarted.push(f),m&&s.circuit.initializers.beforeStart.push(m),h&&s.circuit.initializers.afterStarted.push(h),u&&e.afterStartedCallbacks.push(u),l)return l(s)}(e,o,t)}function i(e,t,n,r){if(n&&e.afterStartedCallbacks.push(n),t)return t(...r)}}(this,e))))}async invokeAfterStartedCallbacks(e){const t=function(e){var t;return null===(t=A.get(e))||void 0===t?void 0:t[1]}(this.webRendererId);t&&await t,await Promise.all(this.afterStartedCallbacks.map((t=>t(e))))}}let vt,bt,gt,yt,wt,Et,St;const At=Math.pow(2,32),Ct=Math.pow(2,21)-1;let It=null;function Nt(e){return bt.getI32(e)}const _t={load:function(e,t){return async function(e,t){const{dotnet:n}=await async function(e){if("undefined"==typeof WebAssembly||!WebAssembly.validate)throw new Error("This browser does not support WebAssembly.");let t="_framework/dotnet.js";if(e.loadBootResource){const n="dotnetjs",r=e.loadBootResource(n,"dotnet.js",t,"","js-module-dotnet");if("string"==typeof r)t=r;else if(r)throw new Error(`For a ${n} resource, custom loaders must supply a URI string.`)}const n=new URL(t,document.baseURI).toString();return await import(n)}(e),r=function(e,t){const n={maxParallelDownloads:1e6,enableDownloadRetry:!1,applicationEnvironment:e.environment},r={...window.Module||{},onConfigLoaded:async n=>{n.environmentVariables||(n.environmentVariables={}),"sharded"===n.globalizationMode&&(n.environmentVariables.__BLAZOR_SHARDED_ICU="1"),rt._internal.getApplicationEnvironment=()=>n.applicationEnvironment,null==t||t(n),St=await async function(e,t){var n,r,o;if(e.initializers)return await Promise.all(e.initializers.beforeStart.map((t=>t(e)))),new pt(!1,void 0,e.initializers.afterStarted,mt.WebAssembly);{const i=[e,null!==(r=null===(n=t.resources)||void 0===n?void 0:n.extensions)&&void 0!==r?r:{}],s=new pt(!0,void 0,void 0,mt.WebAssembly),a=Object.keys((null===(o=null==t?void 0:t.resources)||void 0===o?void 0:o.libraryInitializers)||{});return await s.importInitializersAsync(a,i),s}}(e,n)},onDownloadResourceProgress:Rt,config:n,disableDotnet6Compatibility:!1,out:kt,err:Ft};return r}(e,t);e.applicationCulture&&n.withApplicationCulture(e.applicationCulture),e.environment&&n.withApplicationEnvironment(e.environment),e.loadBootResource&&n.withResourceLoader(e.loadBootResource),n.withModuleConfig(r),e.configureRuntime&&e.configureRuntime(n),Et=await n.create()}(e,t)},start:function(){return async function(){if(!Et)throw new Error("The runtime must be loaded it gets configured.");const{MONO:t,BINDING:n,Module:r,setModuleImports:o,INTERNAL:i,getConfig:s,invokeLibraryInitializers:a}=Et;gt=r,vt=n,bt=t,wt=i,function(e){const t=lt.match(/^Mac/i)?"Cmd":"Alt";ut(e)&&console.info(`Debugging hotkey: Shift+${t}+D (when application has focus)`),document.addEventListener("keydown",(t=>{t.shiftKey&&(t.metaKey||t.altKey)&&"KeyD"===t.code&&(ut(e)?navigator.userAgent.includes("Firefox")?async function(){const e=await fetch(`_framework/debug?url=${encodeURIComponent(location.href)}&isFirefox=true`);200!==e.status&&console.warn(await e.text())}():ct?function(){const e=document.createElement("a");e.href=`_framework/debug?url=${encodeURIComponent(location.href)}`,e.target="_blank",e.rel="noopener noreferrer",e.click()}():console.error("Currently, only Microsoft Edge (80+), Google Chrome, or Chromium, are supported for debugging."):console.error("Cannot start debugging, because the application was not compiled with debugging enabled."))}))}(s()),rt.runtime=Et,rt._internal.dotNetCriticalError=Ft,o("blazor-internal",{Blazor:{_internal:rt._internal}});const c=await Et.getAssemblyExports("Microsoft.AspNetCore.Components.WebAssembly");return Object.assign(rt._internal,{dotNetExports:{...c.Microsoft.AspNetCore.Components.WebAssembly.Services.DefaultWebAssemblyJSRuntime}}),yt=e.attachDispatcher({beginInvokeDotNetFromJS:(e,t,n,r,o)=>{if(Ot(),!r&&!t)throw new Error("Either assemblyName or dotNetObjectId must have a non null value.");const i=r?r.toString():t;rt._internal.dotNetExports.BeginInvokeDotNet(e?e.toString():null,i,n,o)},endInvokeJSFromDotNet:(e,t,n)=>{rt._internal.dotNetExports.EndInvokeJS(n)},sendByteArray:(e,t)=>{rt._internal.dotNetExports.ReceiveByteArrayFromJS(e,t)},invokeDotNetFromJS:(e,t,n,r)=>(Ot(),rt._internal.dotNetExports.InvokeDotNet(e||null,t,null!=n?n:0,r))}),{invokeLibraryInitializers:a}}()},callEntryPoint:async function(){try{await Et.runMain(Et.getConfig().mainAssemblyName,[])}catch(e){console.error(e),ft()}},toUint8Array:function(e){const t=Tt(e),n=Nt(t),r=new Uint8Array(n);return r.set(gt.HEAPU8.subarray(t+4,t+4+n)),r},getArrayLength:function(e){return Nt(Tt(e))},getArrayEntryPtr:function(e,t,n){return Tt(e)+4+t*n},getObjectFieldsBaseAddress:function(e){return e+8},readInt16Field:function(e,t){return n=e+(t||0),bt.getI16(n);var n},readInt32Field:function(e,t){return Nt(e+(t||0))},readUint64Field:function(e,t){return function(e){const t=e>>2,n=gt.HEAPU32[t+1];if(n>Ct)throw new Error(`Cannot read uint64 with high order part ${n}, because the result would exceed Number.MAX_SAFE_INTEGER.`);return n*At+gt.HEAPU32[t]}(e+(t||0))},readFloatField:function(e,t){return n=e+(t||0),bt.getF32(n);var n},readObjectField:function(e,t){return Nt(e+(t||0))},readStringField:function(e,t,n){const r=Nt(e+(t||0));if(0===r)return null;if(n){const e=vt.unbox_mono_obj(r);return"boolean"==typeof e?e?"":null:e}return vt.conv_string(r)},readStructField:function(e,t){return e+(t||0)},beginHeapLock:function(){return Ot(),It=Lt.create(),It},invokeWhenHeapUnlocked:function(e){It?It.enqueuePostReleaseAction(e):e()}};function Rt(e,t){const n=e/t*100;document.documentElement.style.setProperty("--blazor-load-percentage",`${n}%`),document.documentElement.style.setProperty("--blazor-load-percentage-text",`"${Math.floor(n)}%"`)}const Dt=["DEBUGGING ENABLED"],kt=e=>Dt.indexOf(e)<0&&console.log(e),Ft=e=>{console.error(e||"(null)"),ft()};function Tt(e){return e+12}function Ot(){if(It)throw new Error("Assertion failed - heap is currently locked")}class Lt{enqueuePostReleaseAction(e){this.postReleaseActions||(this.postReleaseActions=[]),this.postReleaseActions.push(e)}release(){var e;if(It!==this)throw new Error("Trying to release a lock which isn't current");for(wt.mono_wasm_gc_unlock(),It=null;null===(e=this.postReleaseActions)||void 0===e?void 0:e.length;)this.postReleaseActions.shift()(),Ot()}static create(){return wt.mono_wasm_gc_lock(),new Lt}}let Mt;class xt{constructor(e){this.batchAddress=e,this.arrayRangeReader=Pt,this.arrayBuilderSegmentReader=Bt,this.diffReader=Jt,this.editReader=jt,this.frameReader=Ht}updatedComponents(){return Mt.readStructField(this.batchAddress,0)}referenceFrames(){return Mt.readStructField(this.batchAddress,Pt.structLength)}disposedComponentIds(){return Mt.readStructField(this.batchAddress,2*Pt.structLength)}disposedEventHandlerIds(){return Mt.readStructField(this.batchAddress,3*Pt.structLength)}updatedComponentsEntry(e,t){return $t(e,t,Jt.structLength)}referenceFramesEntry(e,t){return $t(e,t,Ht.structLength)}disposedComponentIdsEntry(e,t){const n=$t(e,t,4);return Mt.readInt32Field(n)}disposedEventHandlerIdsEntry(e,t){const n=$t(e,t,8);return Mt.readUint64Field(n)}}const Pt={structLength:8,values:e=>Mt.readObjectField(e,0),count:e=>Mt.readInt32Field(e,4)},Bt={structLength:12,values:e=>{const t=Mt.readObjectField(e,0),n=Mt.getObjectFieldsBaseAddress(t);return Mt.readObjectField(n,0)},offset:e=>Mt.readInt32Field(e,4),count:e=>Mt.readInt32Field(e,8)},Jt={structLength:4+Bt.structLength,componentId:e=>Mt.readInt32Field(e,0),edits:e=>Mt.readStructField(e,4),editsEntry:(e,t)=>$t(e,t,jt.structLength)},jt={structLength:20,editType:e=>Mt.readInt32Field(e,0),siblingIndex:e=>Mt.readInt32Field(e,4),newTreeIndex:e=>Mt.readInt32Field(e,8),moveToSiblingIndex:e=>Mt.readInt32Field(e,8),removedAttributeName:e=>Mt.readStringField(e,16)},Ht={structLength:36,frameType:e=>Mt.readInt16Field(e,4),subtreeLength:e=>Mt.readInt32Field(e,8),elementReferenceCaptureId:e=>Mt.readStringField(e,16),componentId:e=>Mt.readInt32Field(e,12),elementName:e=>Mt.readStringField(e,16),textContent:e=>Mt.readStringField(e,16),markupContent:e=>Mt.readStringField(e,16),attributeName:e=>Mt.readStringField(e,16),attributeValue:e=>Mt.readStringField(e,24,!0),attributeEventHandlerId:e=>Mt.readUint64Field(e,8)};function $t(e,t,n){return Mt.getArrayEntryPtr(e,t,n)}const zt=/^\s*Blazor-WebAssembly-Component-State:(?[a-zA-Z0-9+/=]+)$/;function Wt(e,t,n="state"){var r;if(e.nodeType===Node.COMMENT_NODE){const o=e.textContent||"",i=t.exec(o),s=i&&i.groups&&i.groups[n];return s&&(null===(r=e.parentNode)||void 0===r||r.removeChild(e)),s}if(!e.hasChildNodes())return;const o=e.childNodes;for(let e=0;e.*)$/);function Vt(e,t){const n=e.currentElement;var r,o,i;if(n&&n.nodeType===Node.COMMENT_NODE&&n.textContent){const s=Kt.exec(n.textContent),a=s&&s.groups&&s.groups.descriptor;if(!a)return;!function(e){if(e.parentNode instanceof Document)throw new Error("Root components cannot be marked as interactive. The element must be rendered statically so that scripts are not evaluated multiple times.")}(n);try{const s=function(e){const t=JSON.parse(e),{type:n}=t;if("server"!==n&&"webassembly"!==n&&"auto"!==n)throw new Error(`Invalid component type '${n}'.`);return t}(a),c=function(e,t,n){const{prerenderId:r}=e;if(r){for(;n.next()&&n.currentElement;){const e=n.currentElement;if(e.nodeType!==Node.COMMENT_NODE)continue;if(!e.textContent)continue;const t=Kt.exec(e.textContent),o=t&&t[1];if(o)return en(o,r),e}throw new Error(`Could not find an end component comment for '${t}'.`)}}(s,n,e);if(t!==s.type)return;switch(s.type){case"webassembly":return o=n,i=c,Qt(r=s),{...r,uniqueId:qt++,start:o,end:i};case"server":return function(e,t,n){return Zt(e),{...e,uniqueId:qt++,start:t,end:n}}(s,n,c);case"auto":return function(e,t,n){return Zt(e),Qt(e),{...e,uniqueId:qt++,start:t,end:n}}(s,n,c)}}catch(e){throw new Error(`Found malformed component comment at ${n.textContent}`)}}}let Xt,Yt,Gt,qt=0;function Zt(e){const{descriptor:t,sequence:n}=e;if(!t)throw new Error("descriptor must be defined when using a descriptor.");if(void 0===n)throw new Error("sequence must be defined when using a descriptor.");if(!Number.isInteger(n))throw new Error(`Error parsing the sequence '${n}' for component '${JSON.stringify(e)}'`)}function Qt(e){const{assembly:t,typeName:n}=e;if(!t)throw new Error("assembly must be defined when using a descriptor.");if(!n)throw new Error("typeName must be defined when using a descriptor.");e.parameterDefinitions=e.parameterDefinitions&&atob(e.parameterDefinitions),e.parameterValues=e.parameterValues&&atob(e.parameterValues)}function en(e,t){const n=JSON.parse(e);if(1!==Object.keys(n).length)throw new Error(`Invalid end of component comment: '${e}'`);const r=n.prerenderId;if(!r)throw new Error(`End of component comment must have a value for the prerendered property: '${e}'`);if(r!==t)throw new Error(`End of component comment prerendered property must match the start comment prerender id: '${t}', '${r}'`)}class tn{constructor(e){this.childNodes=e,this.currentIndex=-1,this.length=e.length}next(){return this.currentIndex++,this.currentIndex{on=e}));const un=new Promise((e=>{sn=e}));let dn;function fn(e){if(Xt)throw new Error("WebAssembly options have already been configured.");!async function(e){const t=await e;Xt=t,dn()}(e)}function mn(e){if(void 0!==rn)throw new Error("Blazor WebAssembly has already started.");return rn=new Promise(hn.bind(null,e)),rn}async function hn(e,t,n){(function(){if(window.parent!==window&&!window.opener&&window.frameElement){const e=window.sessionStorage&&window.sessionStorage["Microsoft.AspNetCore.Components.WebAssembly.Authentication.CachedAuthSettings"],t=e&&JSON.parse(e);return t&&t.redirect_uri&&location.href.startsWith(t.redirect_uri)}return!1})()&&await new Promise((()=>{}));const r=pn();!function(e){const t=N;N=(e,n,r)=>{((e,t,n)=>{const r=function(e){return me[e]}(e);(null==r?void 0:r.eventDelegator.getHandler(t))&&_t.invokeWhenHeapUnlocked(n)})(e,n,(()=>t(e,n,r)))}}(),rt._internal.applyHotReload=(e,t,n,r)=>{yt.invokeDotNetStaticMethod("Microsoft.AspNetCore.Components.WebAssembly","ApplyHotReloadDelta",e,t,n,r)},rt._internal.getApplyUpdateCapabilities=()=>yt.invokeDotNetStaticMethod("Microsoft.AspNetCore.Components.WebAssembly","GetApplyUpdateCapabilities"),rt._internal.invokeJSFromDotNet=vn,rt._internal.invokeJSJson=bn,rt._internal.endInvokeDotNetFromJS=gn,rt._internal.receiveWebAssemblyDotNetDataStream=yn,rt._internal.receiveByteArray=wn;const o=(Mt=_t,Mt);rt.platform=o,rt._internal.renderBatch=(e,t)=>{const n=_t.beginHeapLock();try{!function(e,t){const n=me[e];if(!n)throw new Error(`There is no browser renderer with ID ${e}.`);const r=t.arrayRangeReader,o=t.updatedComponents(),i=r.values(o),s=r.count(o),a=t.referenceFrames(),c=r.values(a),l=t.diffReader;for(let e=0;e{await yt.invokeDotNetStaticMethodAsync("Microsoft.AspNetCore.Components.WebAssembly","NotifyLocationChanged",e,t,n)}),(async(e,t,n,r)=>{const o=await yt.invokeDotNetStaticMethodAsync("Microsoft.AspNetCore.Components.WebAssembly","NotifyLocationChangingAsync",t,n,r);rt._internal.navigationManager.endLocationChanging(e,o)}));const i=new nn(e);let s;rt._internal.registeredComponents={getRegisteredComponentsCount:()=>i.getCount(),getAssembly:e=>i.getAssembly(e),getTypeName:e=>i.getTypeName(e),getParameterDefinitions:e=>i.getParameterDefinitions(e)||"",getParameterValues:e=>i.getParameterValues(e)||""},rt._internal.getPersistedState=()=>Wt(document,zt)||"",rt._internal.getInitialComponentsUpdate=()=>un,rt._internal.updateRootComponents=e=>{var t;return null===(t=rt._internal.dotNetExports)||void 0===t?void 0:t.UpdateRootComponentsCore(e)},rt._internal.endUpdateRootComponents=t=>{var n;return null===(n=e.onAfterUpdateRootComponents)||void 0===n?void 0:n.call(e,t)},rt._internal.attachRootComponentToElement=(e,t,n)=>{const r=i.resolveRegisteredElement(e);r?ye(n,r,t,!1):function(e,t,n){const r="::before";let o=!1;if(e.endsWith("::after"))e=e.slice(0,-7),o=!0;else if(e.endsWith(r))throw new Error(`The '${r}' selector is not supported.`);const i=function(e){const t=m.get(e);if(t)return m.delete(e),t}(e)||document.querySelector(e);if(!i)throw new Error(`Could not find any element matching selector '${e}'.`);ye(n,P(i,!0),t,o)}(e,t,n)};try{await r,s=await o.start()}catch(e){throw new Error(`Failed to start platform. Reason: ${e}`)}o.callEntryPoint(),St.invokeAfterStartedCallbacks(rt),cn=!0,t()}function pn(){return null!=Gt||(Gt=(async()=>{await Yt;const e=null!=Xt?Xt:{},t=null==Xt?void 0:Xt.configureRuntime;e.configureRuntime=e=>{null==t||t(e),ln&&e.withEnvironmentVariable("__BLAZOR_WEBASSEMBLY_WAIT_FOR_ROOT_COMPONENTS","true")},await _t.load(e,on),an=!0})()),Gt}function vn(t,n,r,o){const i=_t.readStringField(t,0),s=_t.readInt32Field(t,4),a=_t.readStringField(t,8),c=_t.readUint64Field(t,20);if(null!==a){const e=_t.readUint64Field(t,12);if(0!==e)return yt.beginInvokeJSFromDotNet(e,i,a,s,c),0;{const e=yt.invokeJSFromDotNet(i,a,s,c);return null===e?0:vt.js_string_to_mono_string(e)}}{const t=e.findJSFunction(i,c).call(null,n,r,o);switch(s){case e.JSCallResultType.Default:return t;case e.JSCallResultType.JSObjectReference:return e.createJSObjectReference(t).__jsObjectId;case e.JSCallResultType.JSStreamReference:{const n=e.createJSStreamReference(t),r=JSON.stringify(n);return vt.js_string_to_mono_string(r)}case e.JSCallResultType.JSVoidResult:return null;default:throw new Error(`Invalid JS call result type '${s}'.`)}}}function bn(e,t,n,r,o){return 0!==o?(yt.beginInvokeJSFromDotNet(o,e,r,n,t),null):yt.invokeJSFromDotNet(e,r,n,t)}function gn(e,t,n){yt.endInvokeDotNetFromJS(e,t,n)}function yn(e,t,n,r){!function(e,t,n,r,o){let i=nt.get(t);if(!i){const n=new ReadableStream({start(e){nt.set(t,e),i=e}});e.supplyDotNetStream(t,n)}o?(i.error(o),nt.delete(t)):0===r?(i.close(),nt.delete(t)):i.enqueue(n.length===r?n:n.subarray(0,r))}(yt,e,t,n,r)}function wn(e,t){yt.receiveByteArray(e,t)}Yt=new Promise((e=>{dn=e}));class En{constructor(e){this.initialComponents=e}resolveRootComponent(e){return this.initialComponents[e]}}class Sn{constructor(){this._eventListeners=new Map}static create(e){const t=new Sn;return e.addEventListener=t.addEventListener.bind(t),e.removeEventListener=t.removeEventListener.bind(t),t}addEventListener(e,t){let n=this._eventListeners.get(e);n||(n=new Set,this._eventListeners.set(e,n)),n.add(t)}removeEventListener(e,t){var n;null===(n=this._eventListeners.get(e))||void 0===n||n.delete(t)}dispatchEvent(e,t){const n=this._eventListeners.get(e);if(!n)return;const r={...t,type:e};for(const e of n)e(r)}}let An=!1;async function Cn(e){if(An)throw new Error("Blazor has already started.");An=!0,fn(Promise.resolve(e||{})),Sn.create(rt);const t=Ut(document,"webassembly"),n=new En(t);await mn(n)}rt.start=Cn,window.DotNet=e,document&&document.currentScript&&"false"!==document.currentScript.getAttribute("autostart")&&Cn().catch((e=>{void 0!==gt&>.err?gt.err(e):console.error(e)}))})(); /*! For license information please see AuthenticationService.js.LICENSE.txt */ var t,e;t={671:function(t){var e;e=function(){return function(t){var e={};function r(n){if(e[n])return e[n].exports;var i=e[n]={i:n,l:!1,exports:{}};return t[n].call(i.exports,i,i.exports,r),i.l=!0,i.exports}return r.m=t,r.c=e,r.d=function(t,e,n){r.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:n})},r.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},r.t=function(t,e){if(1&e&&(t=r(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var i in t)r.d(n,i,function(e){return t[e]}.bind(null,i));return n},r.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return r.d(e,"a",e),e},r.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},r.p="",r(r.s=22)}([function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=function(){function t(t,e){for(var r=0;r=4){for(var t=arguments.length,e=Array(t),r=0;r=3){for(var t=arguments.length,e=Array(t),r=0;r=2){for(var t=arguments.length,e=Array(t),r=0;r=1){for(var t=arguments.length,e=Array(t),r=0;r1&&void 0!==arguments[1]?arguments[1]:o.JsonService;if(function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),!e)throw i.Log.error("MetadataService: No settings passed to MetadataService"),new Error("settings");this._settings=e,this._jsonService=new r(["application/jwk-set+json"])}return t.prototype.resetSigningKeys=function(){this._settings=this._settings||{},this._settings.signingKeys=void 0},t.prototype.getMetadata=function(){var t=this;return this._settings.metadata?(i.Log.debug("MetadataService.getMetadata: Returning metadata from settings"),Promise.resolve(this._settings.metadata)):this.metadataUrl?(i.Log.debug("MetadataService.getMetadata: getting metadata from",this.metadataUrl),this._jsonService.getJson(this.metadataUrl).then((function(e){i.Log.debug("MetadataService.getMetadata: json received");var r=t._settings.metadataSeed||{};return t._settings.metadata=Object.assign({},r,e),t._settings.metadata}))):(i.Log.error("MetadataService.getMetadata: No authority or metadataUrl configured on settings"),Promise.reject(new Error("No authority or metadataUrl configured on settings")))},t.prototype.getIssuer=function(){return this._getMetadataProperty("issuer")},t.prototype.getAuthorizationEndpoint=function(){return this._getMetadataProperty("authorization_endpoint")},t.prototype.getUserInfoEndpoint=function(){return this._getMetadataProperty("userinfo_endpoint")},t.prototype.getTokenEndpoint=function(){var t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return this._getMetadataProperty("token_endpoint",t)},t.prototype.getCheckSessionIframe=function(){return this._getMetadataProperty("check_session_iframe",!0)},t.prototype.getEndSessionEndpoint=function(){return this._getMetadataProperty("end_session_endpoint",!0)},t.prototype.getRevocationEndpoint=function(){return this._getMetadataProperty("revocation_endpoint",!0)},t.prototype.getKeysEndpoint=function(){return this._getMetadataProperty("jwks_uri",!0)},t.prototype._getMetadataProperty=function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return i.Log.debug("MetadataService.getMetadataProperty for: "+t),this.getMetadata().then((function(r){if(i.Log.debug("MetadataService.getMetadataProperty: metadata recieved"),void 0===r[t]){if(!0===e)return void i.Log.warn("MetadataService.getMetadataProperty: Metadata does not contain optional property "+t);throw i.Log.error("MetadataService.getMetadataProperty: Metadata does not contain property "+t),new Error("Metadata does not contain property "+t)}return r[t]}))},t.prototype.getSigningKeys=function(){var t=this;return this._settings.signingKeys?(i.Log.debug("MetadataService.getSigningKeys: Returning signingKeys from settings"),Promise.resolve(this._settings.signingKeys)):this._getMetadataProperty("jwks_uri").then((function(e){return i.Log.debug("MetadataService.getSigningKeys: jwks_uri received",e),t._jsonService.getJson(e).then((function(e){if(i.Log.debug("MetadataService.getSigningKeys: key set received",e),!e.keys)throw i.Log.error("MetadataService.getSigningKeys: Missing keys on keyset"),new Error("Missing keys on keyset");return t._settings.signingKeys=e.keys,t._settings.signingKeys}))}))},n(t,[{key:"metadataUrl",get:function(){return this._metadataUrl||(this._settings.metadataUrl?this._metadataUrl=this._settings.metadataUrl:(this._metadataUrl=this._settings.authority,this._metadataUrl&&this._metadataUrl.indexOf(s)<0&&("/"!==this._metadataUrl[this._metadataUrl.length-1]&&(this._metadataUrl+="/"),this._metadataUrl+=s))),this._metadataUrl}}]),t}()},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.UrlUtility=void 0;var n=r(0),i=r(1);e.UrlUtility=function(){function t(){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t)}return t.addQueryParam=function(t,e,r){return t.indexOf("?")<0&&(t+="?"),"?"!==t[t.length-1]&&(t+="&"),t+=encodeURIComponent(e),(t+="=")+encodeURIComponent(r)},t.parseUrlFragment=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"#",r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:i.Global;"string"!=typeof t&&(t=r.location.href);var o=t.lastIndexOf(e);o>=0&&(t=t.substr(o+1)),"?"===e&&(o=t.indexOf("#"))>=0&&(t=t.substr(0,o));for(var s,a={},u=/([^&=]+)=([^&]*)/g,c=0;s=u.exec(t);)if(a[decodeURIComponent(s[1])]=decodeURIComponent(s[2].replace(/\+/g," ")),c++>50)return n.Log.error("UrlUtility.parseUrlFragment: response exceeded expected number of parameters",t),{error:"Response exceeded expected number of parameters"};for(var h in a)return a;return{}},t}()},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.JoseUtil=void 0;var n=r(26),i=function(t){return t&&t.__esModule?t:{default:t}}(r(33));e.JoseUtil=(0,i.default)({jws:n.jws,KeyUtil:n.KeyUtil,X509:n.X509,crypto:n.crypto,hextob64u:n.hextob64u,b64tohex:n.b64tohex,AllowedSigningAlgs:n.AllowedSigningAlgs})},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.OidcClientSettings=void 0;var n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},i=function(){function t(t,e){for(var r=0;r0&&void 0!==arguments[0]?arguments[0]:{},r=e.authority,i=e.metadataUrl,o=e.metadata,h=e.signingKeys,d=e.metadataSeed,p=e.client_id,v=e.client_secret,y=e.response_type,m=void 0===y?l:y,_=e.scope,S=void 0===_?f:_,w=e.redirect_uri,b=e.post_logout_redirect_uri,F=e.client_authentication,E=void 0===F?g:F,x=e.prompt,A=e.display,k=e.max_age,P=e.ui_locales,C=e.acr_values,T=e.resource,R=e.response_mode,I=e.filterProtocolClaims,D=void 0===I||I,L=e.loadUserInfo,N=void 0===L||L,U=e.staleStateAge,O=void 0===U?900:U,B=e.clockSkew,M=void 0===B?300:B,j=e.clockService,H=void 0===j?new s.ClockService:j,K=e.userInfoJwtIssuer,V=void 0===K?"OP":K,q=e.mergeClaims,J=void 0!==q&&q,W=e.stateStore,z=void 0===W?new a.WebStorageStateStore:W,Y=e.ResponseValidatorCtor,G=void 0===Y?u.ResponseValidator:Y,$=e.MetadataServiceCtor,X=void 0===$?c.MetadataService:$,Q=e.extraQueryParams,Z=void 0===Q?{}:Q,tt=e.extraTokenParams,et=void 0===tt?{}:tt;(function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")})(this,t),this._authority=r,this._metadataUrl=i,this._metadata=o,this._metadataSeed=d,this._signingKeys=h,this._client_id=p,this._client_secret=v,this._response_type=m,this._scope=S,this._redirect_uri=w,this._post_logout_redirect_uri=b,this._client_authentication=E,this._prompt=x,this._display=A,this._max_age=k,this._ui_locales=P,this._acr_values=C,this._resource=T,this._response_mode=R,this._filterProtocolClaims=!!D,this._loadUserInfo=!!N,this._staleStateAge=O,this._clockSkew=M,this._clockService=H,this._userInfoJwtIssuer=V,this._mergeClaims=!!J,this._stateStore=z,this._validator=new G(this),this._metadataService=new X(this),this._extraQueryParams="object"===(void 0===Z?"undefined":n(Z))?Z:{},this._extraTokenParams="object"===(void 0===et?"undefined":n(et))?et:{}}return t.prototype.getEpochTime=function(){return this._clockService.getEpochTime()},i(t,[{key:"client_id",get:function(){return this._client_id},set:function(t){if(this._client_id)throw o.Log.error("OidcClientSettings.set_client_id: client_id has already been assigned."),new Error("client_id has already been assigned.");this._client_id=t}},{key:"client_secret",get:function(){return this._client_secret}},{key:"response_type",get:function(){return this._response_type}},{key:"scope",get:function(){return this._scope}},{key:"redirect_uri",get:function(){return this._redirect_uri}},{key:"post_logout_redirect_uri",get:function(){return this._post_logout_redirect_uri}},{key:"client_authentication",get:function(){return this._client_authentication}},{key:"prompt",get:function(){return this._prompt}},{key:"display",get:function(){return this._display}},{key:"max_age",get:function(){return this._max_age}},{key:"ui_locales",get:function(){return this._ui_locales}},{key:"acr_values",get:function(){return this._acr_values}},{key:"resource",get:function(){return this._resource}},{key:"response_mode",get:function(){return this._response_mode}},{key:"authority",get:function(){return this._authority},set:function(t){if(this._authority)throw o.Log.error("OidcClientSettings.set_authority: authority has already been assigned."),new Error("authority has already been assigned.");this._authority=t}},{key:"metadataUrl",get:function(){return this._metadataUrl||(this._metadataUrl=this.authority,this._metadataUrl&&this._metadataUrl.indexOf(h)<0&&("/"!==this._metadataUrl[this._metadataUrl.length-1]&&(this._metadataUrl+="/"),this._metadataUrl+=h)),this._metadataUrl}},{key:"metadata",get:function(){return this._metadata},set:function(t){this._metadata=t}},{key:"metadataSeed",get:function(){return this._metadataSeed},set:function(t){this._metadataSeed=t}},{key:"signingKeys",get:function(){return this._signingKeys},set:function(t){this._signingKeys=t}},{key:"filterProtocolClaims",get:function(){return this._filterProtocolClaims}},{key:"loadUserInfo",get:function(){return this._loadUserInfo}},{key:"staleStateAge",get:function(){return this._staleStateAge}},{key:"clockSkew",get:function(){return this._clockSkew}},{key:"userInfoJwtIssuer",get:function(){return this._userInfoJwtIssuer}},{key:"mergeClaims",get:function(){return this._mergeClaims}},{key:"stateStore",get:function(){return this._stateStore}},{key:"validator",get:function(){return this._validator}},{key:"metadataService",get:function(){return this._metadataService}},{key:"extraQueryParams",get:function(){return this._extraQueryParams},set:function(t){"object"===(void 0===t?"undefined":n(t))?this._extraQueryParams=t:this._extraQueryParams={}}},{key:"extraTokenParams",get:function(){return this._extraTokenParams},set:function(t){"object"===(void 0===t?"undefined":n(t))?this._extraTokenParams=t:this._extraTokenParams={}}}]),t}()},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.WebStorageStateStore=void 0;var n=r(0),i=r(1);e.WebStorageStateStore=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=e.prefix,n=void 0===r?"oidc.":r,o=e.store,s=void 0===o?i.Global.localStorage:o;(function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")})(this,t),this._store=s,this._prefix=n}return t.prototype.set=function(t,e){return n.Log.debug("WebStorageStateStore.set",t),t=this._prefix+t,this._store.setItem(t,e),Promise.resolve()},t.prototype.get=function(t){n.Log.debug("WebStorageStateStore.get",t),t=this._prefix+t;var e=this._store.getItem(t);return Promise.resolve(e)},t.prototype.remove=function(t){n.Log.debug("WebStorageStateStore.remove",t),t=this._prefix+t;var e=this._store.getItem(t);return this._store.removeItem(t),Promise.resolve(e)},t.prototype.getAllKeys=function(){n.Log.debug("WebStorageStateStore.getAllKeys");for(var t=[],e=0;e0&&void 0!==arguments[0]?arguments[0]:null,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:i.Global.XMLHttpRequest,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;(function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")})(this,t),e&&Array.isArray(e)?this._contentTypes=e.slice():this._contentTypes=[],this._contentTypes.push("application/json"),n&&this._contentTypes.push("application/jwt"),this._XMLHttpRequest=r,this._jwtHandler=n}return t.prototype.getJson=function(t,e){var r=this;if(!t)throw n.Log.error("JsonService.getJson: No url passed"),new Error("url");return n.Log.debug("JsonService.getJson, url: ",t),new Promise((function(i,o){var s=new r._XMLHttpRequest;s.open("GET",t);var a=r._contentTypes,u=r._jwtHandler;s.onload=function(){if(n.Log.debug("JsonService.getJson: HTTP response received, status",s.status),200===s.status){var e=s.getResponseHeader("Content-Type");if(e){var r=a.find((function(t){if(e.startsWith(t))return!0}));if("application/jwt"==r)return void u(s).then(i,o);if(r)try{return void i(JSON.parse(s.responseText))}catch(t){return n.Log.error("JsonService.getJson: Error parsing JSON response",t.message),void o(t)}}o(Error("Invalid response Content-Type: "+e+", from URL: "+t))}else o(Error(s.statusText+" ("+s.status+")"))},s.onerror=function(){n.Log.error("JsonService.getJson: network error"),o(Error("Network Error"))},e&&(n.Log.debug("JsonService.getJson: token passed, setting Authorization header"),s.setRequestHeader("Authorization","Bearer "+e)),s.send()}))},t.prototype.postForm=function(t,e,r){var i=this;if(!t)throw n.Log.error("JsonService.postForm: No url passed"),new Error("url");return n.Log.debug("JsonService.postForm, url: ",t),new Promise((function(o,s){var a=new i._XMLHttpRequest;a.open("POST",t);var u=i._contentTypes;a.onload=function(){if(n.Log.debug("JsonService.postForm: HTTP response received, status",a.status),200!==a.status){if(400===a.status&&(r=a.getResponseHeader("Content-Type"))&&u.find((function(t){if(r.startsWith(t))return!0})))try{var e=JSON.parse(a.responseText);if(e&&e.error)return n.Log.error("JsonService.postForm: Error from server: ",e.error),void s(new Error(e.error))}catch(t){return n.Log.error("JsonService.postForm: Error parsing JSON response",t.message),void s(t)}s(Error(a.statusText+" ("+a.status+")"))}else{var r;if((r=a.getResponseHeader("Content-Type"))&&u.find((function(t){if(r.startsWith(t))return!0})))try{return void o(JSON.parse(a.responseText))}catch(t){return n.Log.error("JsonService.postForm: Error parsing JSON response",t.message),void s(t)}s(Error("Invalid response Content-Type: "+r+", from URL: "+t))}},a.onerror=function(){n.Log.error("JsonService.postForm: network error"),s(Error("Network Error"))};var c="";for(var h in e){var l=e[h];l&&(c.length>0&&(c+="&"),c+=encodeURIComponent(h),c+="=",c+=encodeURIComponent(l))}a.setRequestHeader("Content-Type","application/x-www-form-urlencoded"),void 0!==r&&a.setRequestHeader("Authorization","Basic "+btoa(r)),a.send(c)}))},t}()},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.SigninRequest=void 0;var n=r(0),i=r(3),o=r(13);e.SigninRequest=function(){function t(e){var r=e.url,s=e.client_id,a=e.redirect_uri,u=e.response_type,c=e.scope,h=e.authority,l=e.data,f=e.prompt,g=e.display,d=e.max_age,p=e.ui_locales,v=e.id_token_hint,y=e.login_hint,m=e.acr_values,_=e.resource,S=e.response_mode,w=e.request,b=e.request_uri,F=e.extraQueryParams,E=e.request_type,x=e.client_secret,A=e.extraTokenParams,k=e.skipUserInfo;if(function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),!r)throw n.Log.error("SigninRequest.ctor: No url passed"),new Error("url");if(!s)throw n.Log.error("SigninRequest.ctor: No client_id passed"),new Error("client_id");if(!a)throw n.Log.error("SigninRequest.ctor: No redirect_uri passed"),new Error("redirect_uri");if(!u)throw n.Log.error("SigninRequest.ctor: No response_type passed"),new Error("response_type");if(!c)throw n.Log.error("SigninRequest.ctor: No scope passed"),new Error("scope");if(!h)throw n.Log.error("SigninRequest.ctor: No authority passed"),new Error("authority");var P=t.isOidc(u),C=t.isCode(u);S||(S=t.isCode(u)?"query":null),this.state=new o.SigninState({nonce:P,data:l,client_id:s,authority:h,redirect_uri:a,code_verifier:C,request_type:E,response_mode:S,client_secret:x,scope:c,extraTokenParams:A,skipUserInfo:k}),r=i.UrlUtility.addQueryParam(r,"client_id",s),r=i.UrlUtility.addQueryParam(r,"redirect_uri",a),r=i.UrlUtility.addQueryParam(r,"response_type",u),r=i.UrlUtility.addQueryParam(r,"scope",c),r=i.UrlUtility.addQueryParam(r,"state",this.state.id),P&&(r=i.UrlUtility.addQueryParam(r,"nonce",this.state.nonce)),C&&(r=i.UrlUtility.addQueryParam(r,"code_challenge",this.state.code_challenge),r=i.UrlUtility.addQueryParam(r,"code_challenge_method","S256"));var T={prompt:f,display:g,max_age:d,ui_locales:p,id_token_hint:v,login_hint:y,acr_values:m,resource:_,request:w,request_uri:b,response_mode:S};for(var R in T)T[R]&&(r=i.UrlUtility.addQueryParam(r,R,T[R]));for(var I in F)r=i.UrlUtility.addQueryParam(r,I,F[I]);this.url=r}return t.isOidc=function(t){return!!t.split(/\s+/g).filter((function(t){return"id_token"===t}))[0]},t.isOAuth=function(t){return!!t.split(/\s+/g).filter((function(t){return"token"===t}))[0]},t.isCode=function(t){return!!t.split(/\s+/g).filter((function(t){return"code"===t}))[0]},t}()},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.State=void 0;var n=function(){function t(t,e){for(var r=0;r0&&void 0!==arguments[0]?arguments[0]:{},r=e.id,n=e.data,i=e.created,s=e.request_type;(function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")})(this,t),this._id=r||(0,o.default)(),this._data=n,this._created="number"==typeof i&&i>0?i:parseInt(Date.now()/1e3),this._request_type=s}return t.prototype.toStorageString=function(){return i.Log.debug("State.toStorageString"),JSON.stringify({id:this.id,data:this.data,created:this.created,request_type:this.request_type})},t.fromStorageString=function(e){return i.Log.debug("State.fromStorageString"),new t(JSON.parse(e))},t.clearStaleState=function(e,r){var n=Date.now()/1e3-r;return e.getAllKeys().then((function(r){i.Log.debug("State.clearStaleState: got keys",r);for(var o=[],s=function(s){var a=r[s];u=e.get(a).then((function(r){var o=!1;if(r)try{var s=t.fromStorageString(r);i.Log.debug("State.clearStaleState: got item from key: ",a,s.created),s.created<=n&&(o=!0)}catch(t){i.Log.error("State.clearStaleState: Error parsing state for key",a,t.message),o=!0}else i.Log.debug("State.clearStaleState: no item in storage for key: ",a),o=!0;if(o)return i.Log.debug("State.clearStaleState: removed item for key: ",a),e.remove(a)})),o.push(u)},a=0;a0&&void 0!==arguments[0]?arguments[0]:{};(function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")})(this,t),e instanceof o.OidcClientSettings?this._settings=e:this._settings=new o.OidcClientSettings(e)}return t.prototype.createSigninRequest=function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=e.response_type,n=e.scope,o=e.redirect_uri,s=e.data,u=e.state,c=e.prompt,h=e.display,l=e.max_age,f=e.ui_locales,g=e.id_token_hint,d=e.login_hint,p=e.acr_values,v=e.resource,y=e.request,m=e.request_uri,_=e.response_mode,S=e.extraQueryParams,w=e.extraTokenParams,b=e.request_type,F=e.skipUserInfo,E=arguments[1];i.Log.debug("OidcClient.createSigninRequest");var x=this._settings.client_id;r=r||this._settings.response_type,n=n||this._settings.scope,o=o||this._settings.redirect_uri,c=c||this._settings.prompt,h=h||this._settings.display,l=l||this._settings.max_age,f=f||this._settings.ui_locales,p=p||this._settings.acr_values,v=v||this._settings.resource,_=_||this._settings.response_mode,S=S||this._settings.extraQueryParams,w=w||this._settings.extraTokenParams;var A=this._settings.authority;return a.SigninRequest.isCode(r)&&"code"!==r?Promise.reject(new Error("OpenID Connect hybrid flow is not supported")):this._metadataService.getAuthorizationEndpoint().then((function(e){i.Log.debug("OidcClient.createSigninRequest: Received authorization endpoint",e);var k=new a.SigninRequest({url:e,client_id:x,redirect_uri:o,response_type:r,scope:n,data:s||u,authority:A,prompt:c,display:h,max_age:l,ui_locales:f,id_token_hint:g,login_hint:d,acr_values:p,resource:v,request:y,request_uri:m,extraQueryParams:S,extraTokenParams:w,request_type:b,response_mode:_,client_secret:t._settings.client_secret,skipUserInfo:F}),P=k.state;return(E=E||t._stateStore).set(P.id,P.toStorageString()).then((function(){return k}))}))},t.prototype.readSigninResponseState=function(t,e){var r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];i.Log.debug("OidcClient.readSigninResponseState");var n="query"===this._settings.response_mode||!this._settings.response_mode&&a.SigninRequest.isCode(this._settings.response_type)?"?":"#",o=new u.SigninResponse(t,n);return o.state?(e=e||this._stateStore,(r?e.remove.bind(e):e.get.bind(e))(o.state).then((function(t){if(!t)throw i.Log.error("OidcClient.readSigninResponseState: No matching state found in storage"),new Error("No matching state found in storage");return{state:l.SigninState.fromStorageString(t),response:o}}))):(i.Log.error("OidcClient.readSigninResponseState: No state in response"),Promise.reject(new Error("No state in response")))},t.prototype.processSigninResponse=function(t,e){var r=this;return i.Log.debug("OidcClient.processSigninResponse"),this.readSigninResponseState(t,e,!0).then((function(t){var e=t.state,n=t.response;return i.Log.debug("OidcClient.processSigninResponse: Received state from storage; validating response"),r._validator.validateSigninResponse(e,n)}))},t.prototype.createSignoutRequest=function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=e.id_token_hint,n=e.data,o=e.state,s=e.post_logout_redirect_uri,a=e.extraQueryParams,u=e.request_type,h=arguments[1];return i.Log.debug("OidcClient.createSignoutRequest"),s=s||this._settings.post_logout_redirect_uri,a=a||this._settings.extraQueryParams,this._metadataService.getEndSessionEndpoint().then((function(e){if(!e)throw i.Log.error("OidcClient.createSignoutRequest: No end session endpoint url returned"),new Error("no end session endpoint");i.Log.debug("OidcClient.createSignoutRequest: Received end session endpoint",e);var l=new c.SignoutRequest({url:e,id_token_hint:r,post_logout_redirect_uri:s,data:n||o,extraQueryParams:a,request_type:u}),f=l.state;return f&&(i.Log.debug("OidcClient.createSignoutRequest: Signout request has state to persist"),(h=h||t._stateStore).set(f.id,f.toStorageString())),l}))},t.prototype.readSignoutResponseState=function(t,e){var r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];i.Log.debug("OidcClient.readSignoutResponseState");var n=new h.SignoutResponse(t);if(!n.state)return i.Log.debug("OidcClient.readSignoutResponseState: No state in response"),n.error?(i.Log.warn("OidcClient.readSignoutResponseState: Response was error: ",n.error),Promise.reject(new s.ErrorResponse(n))):Promise.resolve({state:void 0,response:n});var o=n.state;return e=e||this._stateStore,(r?e.remove.bind(e):e.get.bind(e))(o).then((function(t){if(!t)throw i.Log.error("OidcClient.readSignoutResponseState: No matching state found in storage"),new Error("No matching state found in storage");return{state:f.State.fromStorageString(t),response:n}}))},t.prototype.processSignoutResponse=function(t,e){var r=this;return i.Log.debug("OidcClient.processSignoutResponse"),this.readSignoutResponseState(t,e,!0).then((function(t){var e=t.state,n=t.response;return e?(i.Log.debug("OidcClient.processSignoutResponse: Received state from storage; validating response"),r._validator.validateSignoutResponse(e,n)):(i.Log.debug("OidcClient.processSignoutResponse: No state from storage; skipping validating response"),n)}))},t.prototype.clearStaleState=function(t){return i.Log.debug("OidcClient.clearStaleState"),t=t||this._stateStore,f.State.clearStaleState(t,this.settings.staleStateAge)},n(t,[{key:"_stateStore",get:function(){return this.settings.stateStore}},{key:"_validator",get:function(){return this.settings.validator}},{key:"_metadataService",get:function(){return this.settings.metadataService}},{key:"settings",get:function(){return this._settings}},{key:"metadataService",get:function(){return this._metadataService}}]),t}()},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.TokenClient=void 0;var n=r(7),i=r(2),o=r(0);e.TokenClient=function(){function t(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:n.JsonService,s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:i.MetadataService;if(function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),!e)throw o.Log.error("TokenClient.ctor: No settings passed"),new Error("settings");this._settings=e,this._jsonService=new r,this._metadataService=new s(this._settings)}return t.prototype.exchangeCode=function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(e=Object.assign({},e)).grant_type=e.grant_type||"authorization_code",e.client_id=e.client_id||this._settings.client_id,e.client_secret=e.client_secret||this._settings.client_secret,e.redirect_uri=e.redirect_uri||this._settings.redirect_uri;var r=void 0,n=e._client_authentication||this._settings._client_authentication;return delete e._client_authentication,e.code?e.redirect_uri?e.code_verifier?e.client_id?e.client_secret||"client_secret_basic"!=n?("client_secret_basic"==n&&(r=e.client_id+":"+e.client_secret,delete e.client_id,delete e.client_secret),this._metadataService.getTokenEndpoint(!1).then((function(n){return o.Log.debug("TokenClient.exchangeCode: Received token endpoint"),t._jsonService.postForm(n,e,r).then((function(t){return o.Log.debug("TokenClient.exchangeCode: response received"),t}))}))):(o.Log.error("TokenClient.exchangeCode: No client_secret passed"),Promise.reject(new Error("A client_secret is required"))):(o.Log.error("TokenClient.exchangeCode: No client_id passed"),Promise.reject(new Error("A client_id is required"))):(o.Log.error("TokenClient.exchangeCode: No code_verifier passed"),Promise.reject(new Error("A code_verifier is required"))):(o.Log.error("TokenClient.exchangeCode: No redirect_uri passed"),Promise.reject(new Error("A redirect_uri is required"))):(o.Log.error("TokenClient.exchangeCode: No code passed"),Promise.reject(new Error("A code is required")))},t.prototype.exchangeRefreshToken=function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(e=Object.assign({},e)).grant_type=e.grant_type||"refresh_token",e.client_id=e.client_id||this._settings.client_id,e.client_secret=e.client_secret||this._settings.client_secret;var r=void 0,n=e._client_authentication||this._settings._client_authentication;return delete e._client_authentication,e.refresh_token?e.client_id?("client_secret_basic"==n&&(r=e.client_id+":"+e.client_secret,delete e.client_id,delete e.client_secret),this._metadataService.getTokenEndpoint(!1).then((function(n){return o.Log.debug("TokenClient.exchangeRefreshToken: Received token endpoint"),t._jsonService.postForm(n,e,r).then((function(t){return o.Log.debug("TokenClient.exchangeRefreshToken: response received"),t}))}))):(o.Log.error("TokenClient.exchangeRefreshToken: No client_id passed"),Promise.reject(new Error("A client_id is required"))):(o.Log.error("TokenClient.exchangeRefreshToken: No refresh_token passed"),Promise.reject(new Error("A refresh_token is required")))},t}()},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ErrorResponse=void 0;var n=r(0);e.ErrorResponse=function(t){function e(){var r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=r.error,o=r.error_description,s=r.error_uri,a=r.state,u=r.session_state;if(function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,e),!i)throw n.Log.error("No error passed to ErrorResponse"),new Error("error");var c=function(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}(this,t.call(this,o||i));return c.name="ErrorResponse",c.error=i,c.error_description=o,c.error_uri=s,c.state=a,c.session_state=u,c}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}(e,t),e}(Error)},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.SigninState=void 0;var n=function(){function t(t,e){for(var r=0;r0&&void 0!==arguments[0]?arguments[0]:{},n=r.nonce,i=r.authority,o=r.client_id,u=r.redirect_uri,c=r.code_verifier,h=r.response_mode,l=r.client_secret,f=r.scope,g=r.extraTokenParams,d=r.skipUserInfo;!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,e);var p=function(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}(this,t.call(this,arguments[0]));if(!0===n?p._nonce=(0,a.default)():n&&(p._nonce=n),!0===c?p._code_verifier=(0,a.default)()+(0,a.default)()+(0,a.default)():c&&(p._code_verifier=c),p.code_verifier){var v=s.JoseUtil.hashString(p.code_verifier,"SHA256");p._code_challenge=s.JoseUtil.hexToBase64Url(v)}return p._redirect_uri=u,p._authority=i,p._client_id=o,p._response_mode=h,p._client_secret=l,p._scope=f,p._extraTokenParams=g,p._skipUserInfo=d,p}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}(e,t),e.prototype.toStorageString=function(){return i.Log.debug("SigninState.toStorageString"),JSON.stringify({id:this.id,data:this.data,created:this.created,request_type:this.request_type,nonce:this.nonce,code_verifier:this.code_verifier,redirect_uri:this.redirect_uri,authority:this.authority,client_id:this.client_id,response_mode:this.response_mode,client_secret:this.client_secret,scope:this.scope,extraTokenParams:this.extraTokenParams,skipUserInfo:this.skipUserInfo})},e.fromStorageString=function(t){return i.Log.debug("SigninState.fromStorageString"),new e(JSON.parse(t))},n(e,[{key:"nonce",get:function(){return this._nonce}},{key:"authority",get:function(){return this._authority}},{key:"client_id",get:function(){return this._client_id}},{key:"redirect_uri",get:function(){return this._redirect_uri}},{key:"code_verifier",get:function(){return this._code_verifier}},{key:"code_challenge",get:function(){return this._code_challenge}},{key:"response_mode",get:function(){return this._response_mode}},{key:"client_secret",get:function(){return this._client_secret}},{key:"scope",get:function(){return this._scope}},{key:"extraTokenParams",get:function(){return this._extraTokenParams}},{key:"skipUserInfo",get:function(){return this._skipUserInfo}}]),e}(o.State)},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(){return("undefined"!=n&&null!==n&&void 0!==n.getRandomValues?i:o)().replace(/-/g,"")};var n="undefined"!=typeof window?window.crypto||window.msCrypto:null;function i(){return([1e7]+-1e3+-4e3+-8e3+-1e11).replace(/[018]/g,(function(t){return(t^n.getRandomValues(new Uint8Array(1))[0]&15>>t/4).toString(16)}))}function o(){return([1e7]+-1e3+-4e3+-8e3+-1e11).replace(/[018]/g,(function(t){return(t^16*Math.random()>>t/4).toString(16)}))}t.exports=e.default},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.User=void 0;var n=function(){function t(t,e){for(var r=0;r0){var r=parseInt(Date.now()/1e3);this.expires_at=r+e}}},{key:"expired",get:function(){var t=this.expires_in;if(void 0!==t)return t<=0}},{key:"scopes",get:function(){return(this.scope||"").split(" ")}}]),t}()},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.AccessTokenEvents=void 0;var n=r(0),i=r(46);e.AccessTokenEvents=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=e.accessTokenExpiringNotificationTime,n=void 0===r?60:r,o=e.accessTokenExpiringTimer,s=void 0===o?new i.Timer("Access token expiring"):o,a=e.accessTokenExpiredTimer,u=void 0===a?new i.Timer("Access token expired"):a;(function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")})(this,t),this._accessTokenExpiringNotificationTime=n,this._accessTokenExpiring=s,this._accessTokenExpired=u}return t.prototype.load=function(t){if(t.access_token&&void 0!==t.expires_in){var e=t.expires_in;if(n.Log.debug("AccessTokenEvents.load: access token present, remaining duration:",e),e>0){var r=e-this._accessTokenExpiringNotificationTime;r<=0&&(r=1),n.Log.debug("AccessTokenEvents.load: registering expiring timer in:",r),this._accessTokenExpiring.init(r)}else n.Log.debug("AccessTokenEvents.load: canceling existing expiring timer becase we're past expiration."),this._accessTokenExpiring.cancel();var i=e+1;n.Log.debug("AccessTokenEvents.load: registering expired timer in:",i),this._accessTokenExpired.init(i)}else this._accessTokenExpiring.cancel(),this._accessTokenExpired.cancel()},t.prototype.unload=function(){n.Log.debug("AccessTokenEvents.unload: canceling existing access token timers"),this._accessTokenExpiring.cancel(),this._accessTokenExpired.cancel()},t.prototype.addAccessTokenExpiring=function(t){this._accessTokenExpiring.addHandler(t)},t.prototype.removeAccessTokenExpiring=function(t){this._accessTokenExpiring.removeHandler(t)},t.prototype.addAccessTokenExpired=function(t){this._accessTokenExpired.addHandler(t)},t.prototype.removeAccessTokenExpired=function(t){this._accessTokenExpired.removeHandler(t)},t}()},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Event=void 0;var n=r(0);e.Event=function(){function t(e){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this._name=e,this._callbacks=[]}return t.prototype.addHandler=function(t){this._callbacks.push(t)},t.prototype.removeHandler=function(t){var e=this._callbacks.findIndex((function(e){return e===t}));e>=0&&this._callbacks.splice(e,1)},t.prototype.raise=function(){n.Log.debug("Event: Raising event: "+this._name);for(var t=0;t1&&void 0!==arguments[1]?arguments[1]:o.CheckSessionIFrame,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:s.Global.timer;if(function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),!e)throw i.Log.error("SessionMonitor.ctor: No user manager passed to SessionMonitor"),new Error("userManager");this._userManager=e,this._CheckSessionIFrameCtor=n,this._timer=a,this._userManager.events.addUserLoaded(this._start.bind(this)),this._userManager.events.addUserUnloaded(this._stop.bind(this)),Promise.resolve(this._userManager.getUser().then((function(t){t?r._start(t):r._settings.monitorAnonymousSession&&r._userManager.querySessionStatus().then((function(t){var e={session_state:t.session_state};t.sub&&t.sid&&(e.profile={sub:t.sub,sid:t.sid}),r._start(e)})).catch((function(t){i.Log.error("SessionMonitor ctor: error from querySessionStatus:",t.message)}))})).catch((function(t){i.Log.error("SessionMonitor ctor: error from getUser:",t.message)})))}return t.prototype._start=function(t){var e=this,r=t.session_state;r&&(t.profile?(this._sub=t.profile.sub,this._sid=t.profile.sid,i.Log.debug("SessionMonitor._start: session_state:",r,", sub:",this._sub)):(this._sub=void 0,this._sid=void 0,i.Log.debug("SessionMonitor._start: session_state:",r,", anonymous user")),this._checkSessionIFrame?this._checkSessionIFrame.start(r):this._metadataService.getCheckSessionIframe().then((function(t){if(t){i.Log.debug("SessionMonitor._start: Initializing check session iframe");var n=e._client_id,o=e._checkSessionInterval,s=e._stopCheckSessionOnError;e._checkSessionIFrame=new e._CheckSessionIFrameCtor(e._callback.bind(e),n,t,o,s),e._checkSessionIFrame.load().then((function(){e._checkSessionIFrame.start(r)}))}else i.Log.warn("SessionMonitor._start: No check session iframe found in the metadata")})).catch((function(t){i.Log.error("SessionMonitor._start: Error from getCheckSessionIframe:",t.message)})))},t.prototype._stop=function(){var t=this;if(this._sub=void 0,this._sid=void 0,this._checkSessionIFrame&&(i.Log.debug("SessionMonitor._stop"),this._checkSessionIFrame.stop()),this._settings.monitorAnonymousSession)var e=this._timer.setInterval((function(){t._timer.clearInterval(e),t._userManager.querySessionStatus().then((function(e){var r={session_state:e.session_state};e.sub&&e.sid&&(r.profile={sub:e.sub,sid:e.sid}),t._start(r)})).catch((function(t){i.Log.error("SessionMonitor: error from querySessionStatus:",t.message)}))}),1e3)},t.prototype._callback=function(){var t=this;this._userManager.querySessionStatus().then((function(e){var r=!0;e?e.sub===t._sub?(r=!1,t._checkSessionIFrame.start(e.session_state),e.sid===t._sid?i.Log.debug("SessionMonitor._callback: Same sub still logged in at OP, restarting check session iframe; session_state:",e.session_state):(i.Log.debug("SessionMonitor._callback: Same sub still logged in at OP, session state has changed, restarting check session iframe; session_state:",e.session_state),t._userManager.events._raiseUserSessionChanged())):i.Log.debug("SessionMonitor._callback: Different subject signed into OP:",e.sub):i.Log.debug("SessionMonitor._callback: Subject no longer signed into OP"),r&&(t._sub?(i.Log.debug("SessionMonitor._callback: SessionMonitor._callback; raising signed out event"),t._userManager.events._raiseUserSignedOut()):(i.Log.debug("SessionMonitor._callback: SessionMonitor._callback; raising signed in event"),t._userManager.events._raiseUserSignedIn()))})).catch((function(e){t._sub&&(i.Log.debug("SessionMonitor._callback: Error calling queryCurrentSigninSession; raising signed out event",e.message),t._userManager.events._raiseUserSignedOut())}))},n(t,[{key:"_settings",get:function(){return this._userManager.settings}},{key:"_metadataService",get:function(){return this._userManager.metadataService}},{key:"_client_id",get:function(){return this._settings.client_id}},{key:"_checkSessionInterval",get:function(){return this._settings.checkSessionInterval}},{key:"_stopCheckSessionOnError",get:function(){return this._settings.stopCheckSessionOnError}}]),t}()},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.CheckSessionIFrame=void 0;var n=r(0);e.CheckSessionIFrame=function(){function t(e,r,n,i){var o=!(arguments.length>4&&void 0!==arguments[4])||arguments[4];(function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")})(this,t),this._callback=e,this._client_id=r,this._url=n,this._interval=i||2e3,this._stopOnError=o;var s=n.indexOf("/",n.indexOf("//")+2);this._frame_origin=n.substr(0,s),this._frame=window.document.createElement("iframe"),this._frame.style.visibility="hidden",this._frame.style.position="absolute",this._frame.style.display="none",this._frame.width=0,this._frame.height=0,this._frame.src=n}return t.prototype.load=function(){var t=this;return new Promise((function(e){t._frame.onload=function(){e()},window.document.body.appendChild(t._frame),t._boundMessageEvent=t._message.bind(t),window.addEventListener("message",t._boundMessageEvent,!1)}))},t.prototype._message=function(t){t.origin===this._frame_origin&&t.source===this._frame.contentWindow&&("error"===t.data?(n.Log.error("CheckSessionIFrame: error message from check session op iframe"),this._stopOnError&&this.stop()):"changed"===t.data?(n.Log.debug("CheckSessionIFrame: changed message from check session op iframe"),this.stop(),this._callback()):n.Log.debug("CheckSessionIFrame: "+t.data+" message from check session op iframe"))},t.prototype.start=function(t){var e=this;if(this._session_state!==t){n.Log.debug("CheckSessionIFrame.start"),this.stop(),this._session_state=t;var r=function(){e._frame.contentWindow.postMessage(e._client_id+" "+e._session_state,e._frame_origin)};r(),this._timer=window.setInterval(r,this._interval)}},t.prototype.stop=function(){this._session_state=null,this._timer&&(n.Log.debug("CheckSessionIFrame.stop"),window.clearInterval(this._timer),this._timer=null)},t}()},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.TokenRevocationClient=void 0;var n=r(0),i=r(2),o=r(1),s="access_token",a="refresh_token";e.TokenRevocationClient=function(){function t(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:o.Global.XMLHttpRequest,s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:i.MetadataService;if(function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),!e)throw n.Log.error("TokenRevocationClient.ctor: No settings provided"),new Error("No settings provided.");this._settings=e,this._XMLHttpRequestCtor=r,this._metadataService=new s(this._settings)}return t.prototype.revoke=function(t,e){var r=this,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"access_token";if(!t)throw n.Log.error("TokenRevocationClient.revoke: No token provided"),new Error("No token provided.");if(i!==s&&i!=a)throw n.Log.error("TokenRevocationClient.revoke: Invalid token type"),new Error("Invalid token type.");return this._metadataService.getRevocationEndpoint().then((function(o){if(o){n.Log.debug("TokenRevocationClient.revoke: Revoking "+i);var s=r._settings.client_id,a=r._settings.client_secret;return r._revoke(o,s,a,t,i)}if(e)throw n.Log.error("TokenRevocationClient.revoke: Revocation not supported"),new Error("Revocation not supported")}))},t.prototype._revoke=function(t,e,r,i,o){var s=this;return new Promise((function(a,u){var c=new s._XMLHttpRequestCtor;c.open("POST",t),c.onload=function(){n.Log.debug("TokenRevocationClient.revoke: HTTP response received, status",c.status),200===c.status?a():u(Error(c.statusText+" ("+c.status+")"))},c.onerror=function(){n.Log.debug("TokenRevocationClient.revoke: Network Error."),u("Network Error")};var h="client_id="+encodeURIComponent(e);r&&(h+="&client_secret="+encodeURIComponent(r)),h+="&token_type_hint="+encodeURIComponent(o),h+="&token="+encodeURIComponent(i),c.setRequestHeader("Content-Type","application/x-www-form-urlencoded"),c.send(h)}))},t}()},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.CordovaPopupWindow=void 0;var n=function(){function t(t,e){for(var r=0;r1&&void 0!==arguments[1]?arguments[1]:o.MetadataService,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:s.UserInfoService,u=arguments.length>3&&void 0!==arguments[3]?arguments[3]:c.JoseUtil,h=arguments.length>4&&void 0!==arguments[4]?arguments[4]:a.TokenClient;if(function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),!e)throw i.Log.error("ResponseValidator.ctor: No settings passed to ResponseValidator"),new Error("settings");this._settings=e,this._metadataService=new r(this._settings),this._userInfoService=new n(this._settings),this._joseUtil=u,this._tokenClient=new h(this._settings)}return t.prototype.validateSigninResponse=function(t,e){var r=this;return i.Log.debug("ResponseValidator.validateSigninResponse"),this._processSigninParams(t,e).then((function(e){return i.Log.debug("ResponseValidator.validateSigninResponse: state processed"),r._validateTokens(t,e).then((function(e){return i.Log.debug("ResponseValidator.validateSigninResponse: tokens validated"),r._processClaims(t,e).then((function(t){return i.Log.debug("ResponseValidator.validateSigninResponse: claims processed"),t}))}))}))},t.prototype.validateSignoutResponse=function(t,e){return t.id!==e.state?(i.Log.error("ResponseValidator.validateSignoutResponse: State does not match"),Promise.reject(new Error("State does not match"))):(i.Log.debug("ResponseValidator.validateSignoutResponse: state validated"),e.state=t.data,e.error?(i.Log.warn("ResponseValidator.validateSignoutResponse: Response was error",e.error),Promise.reject(new u.ErrorResponse(e))):Promise.resolve(e))},t.prototype._processSigninParams=function(t,e){if(t.id!==e.state)return i.Log.error("ResponseValidator._processSigninParams: State does not match"),Promise.reject(new Error("State does not match"));if(!t.client_id)return i.Log.error("ResponseValidator._processSigninParams: No client_id on state"),Promise.reject(new Error("No client_id on state"));if(!t.authority)return i.Log.error("ResponseValidator._processSigninParams: No authority on state"),Promise.reject(new Error("No authority on state"));if(this._settings.authority){if(this._settings.authority&&this._settings.authority!==t.authority)return i.Log.error("ResponseValidator._processSigninParams: authority mismatch on settings vs. signin state"),Promise.reject(new Error("authority mismatch on settings vs. signin state"))}else this._settings.authority=t.authority;if(this._settings.client_id){if(this._settings.client_id&&this._settings.client_id!==t.client_id)return i.Log.error("ResponseValidator._processSigninParams: client_id mismatch on settings vs. signin state"),Promise.reject(new Error("client_id mismatch on settings vs. signin state"))}else this._settings.client_id=t.client_id;return i.Log.debug("ResponseValidator._processSigninParams: state validated"),e.state=t.data,e.error?(i.Log.warn("ResponseValidator._processSigninParams: Response was error",e.error),Promise.reject(new u.ErrorResponse(e))):t.nonce&&!e.id_token?(i.Log.error("ResponseValidator._processSigninParams: Expecting id_token in response"),Promise.reject(new Error("No id_token in response"))):!t.nonce&&e.id_token?(i.Log.error("ResponseValidator._processSigninParams: Not expecting id_token in response"),Promise.reject(new Error("Unexpected id_token in response"))):t.code_verifier&&!e.code?(i.Log.error("ResponseValidator._processSigninParams: Expecting code in response"),Promise.reject(new Error("No code in response"))):!t.code_verifier&&e.code?(i.Log.error("ResponseValidator._processSigninParams: Not expecting code in response"),Promise.reject(new Error("Unexpected code in response"))):(e.scope||(e.scope=t.scope),Promise.resolve(e))},t.prototype._processClaims=function(t,e){var r=this;if(e.isOpenIdConnect){if(i.Log.debug("ResponseValidator._processClaims: response is OIDC, processing claims"),e.profile=this._filterProtocolClaims(e.profile),!0!==t.skipUserInfo&&this._settings.loadUserInfo&&e.access_token)return i.Log.debug("ResponseValidator._processClaims: loading user info"),this._userInfoService.getClaims(e.access_token).then((function(t){return i.Log.debug("ResponseValidator._processClaims: user info claims received from user info endpoint"),t.sub!==e.profile.sub?(i.Log.error("ResponseValidator._processClaims: sub from user info endpoint does not match sub in id_token"),Promise.reject(new Error("sub from user info endpoint does not match sub in id_token"))):(e.profile=r._mergeClaims(e.profile,t),i.Log.debug("ResponseValidator._processClaims: user info claims received, updated profile:",e.profile),e)}));i.Log.debug("ResponseValidator._processClaims: not loading user info")}else i.Log.debug("ResponseValidator._processClaims: response is not OIDC, not processing claims");return Promise.resolve(e)},t.prototype._mergeClaims=function(t,e){var r=Object.assign({},t);for(var i in e){var o=e[i];Array.isArray(o)||(o=[o]);for(var s=0;s1)return i.Log.error("ResponseValidator._validateIdToken: No kid found in id_token and more than one key found in metadata"),Promise.reject(new Error("No kid found in id_token and more than one key found in metadata"));o=r[0]}return Promise.resolve(o)}))},t.prototype._getSigningKeyForJwtWithSingleRetry=function(t){var e=this;return this._getSigningKeyForJwt(t).then((function(r){return r?Promise.resolve(r):(e._metadataService.resetSigningKeys(),e._getSigningKeyForJwt(t))}))},t.prototype._validateIdToken=function(t,e){var r=this;if(!t.nonce)return i.Log.error("ResponseValidator._validateIdToken: No nonce on state"),Promise.reject(new Error("No nonce on state"));var n=this._joseUtil.parseJwt(e.id_token);return n&&n.header&&n.payload?t.nonce!==n.payload.nonce?(i.Log.error("ResponseValidator._validateIdToken: Invalid nonce in id_token"),Promise.reject(new Error("Invalid nonce in id_token"))):this._metadataService.getIssuer().then((function(o){return i.Log.debug("ResponseValidator._validateIdToken: Received issuer"),r._getSigningKeyForJwtWithSingleRetry(n).then((function(s){if(!s)return i.Log.error("ResponseValidator._validateIdToken: No key matching kid or alg found in signing keys"),Promise.reject(new Error("No key matching kid or alg found in signing keys"));var a=t.client_id,u=r._settings.clockSkew;return i.Log.debug("ResponseValidator._validateIdToken: Validaing JWT; using clock skew (in seconds) of: ",u),r._joseUtil.validateJwt(e.id_token,s,o,a,u).then((function(){return i.Log.debug("ResponseValidator._validateIdToken: JWT validation successful"),n.payload.sub?(e.profile=n.payload,e):(i.Log.error("ResponseValidator._validateIdToken: No sub present in id_token"),Promise.reject(new Error("No sub present in id_token")))}))}))})):(i.Log.error("ResponseValidator._validateIdToken: Failed to parse id_token",n),Promise.reject(new Error("Failed to parse id_token")))},t.prototype._filterByAlg=function(t,e){var r=null;if(e.startsWith("RS"))r="RSA";else if(e.startsWith("PS"))r="PS";else{if(!e.startsWith("ES"))return i.Log.debug("ResponseValidator._filterByAlg: alg not supported: ",e),[];r="EC"}return i.Log.debug("ResponseValidator._filterByAlg: Looking for keys that match kty: ",r),t=t.filter((function(t){return t.kty===r})),i.Log.debug("ResponseValidator._filterByAlg: Number of keys that match kty: ",r,t.length),t},t.prototype._validateAccessToken=function(t){if(!t.profile)return i.Log.error("ResponseValidator._validateAccessToken: No profile loaded from id_token"),Promise.reject(new Error("No profile loaded from id_token"));if(!t.profile.at_hash)return i.Log.error("ResponseValidator._validateAccessToken: No at_hash in id_token"),Promise.reject(new Error("No at_hash in id_token"));if(!t.id_token)return i.Log.error("ResponseValidator._validateAccessToken: No id_token"),Promise.reject(new Error("No id_token"));var e=this._joseUtil.parseJwt(t.id_token);if(!e||!e.header)return i.Log.error("ResponseValidator._validateAccessToken: Failed to parse id_token",e),Promise.reject(new Error("Failed to parse id_token"));var r=e.header.alg;if(!r||5!==r.length)return i.Log.error("ResponseValidator._validateAccessToken: Unsupported alg:",r),Promise.reject(new Error("Unsupported alg: "+r));var n=r.substr(2,3);if(!n)return i.Log.error("ResponseValidator._validateAccessToken: Unsupported alg:",r,n),Promise.reject(new Error("Unsupported alg: "+r));if(256!==(n=parseInt(n))&&384!==n&&512!==n)return i.Log.error("ResponseValidator._validateAccessToken: Unsupported alg:",r,n),Promise.reject(new Error("Unsupported alg: "+r));var o="sha"+n,s=this._joseUtil.hashString(t.access_token,o);if(!s)return i.Log.error("ResponseValidator._validateAccessToken: access_token hash failed:",o),Promise.reject(new Error("Failed to validate at_hash"));var a=s.substr(0,s.length/2),u=this._joseUtil.hexToBase64Url(a);return u!==t.profile.at_hash?(i.Log.error("ResponseValidator._validateAccessToken: Failed to validate at_hash",u,t.profile.at_hash),Promise.reject(new Error("Failed to validate at_hash"))):(i.Log.debug("ResponseValidator._validateAccessToken: success"),Promise.resolve(t))},t}()},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.UserInfoService=void 0;var n=r(7),i=r(2),o=r(0),s=r(4);e.UserInfoService=function(){function t(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:n.JsonService,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:i.MetadataService,u=arguments.length>3&&void 0!==arguments[3]?arguments[3]:s.JoseUtil;if(function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),!e)throw o.Log.error("UserInfoService.ctor: No settings passed"),new Error("settings");this._settings=e,this._jsonService=new r(void 0,void 0,this._getClaimsFromJwt.bind(this)),this._metadataService=new a(this._settings),this._joseUtil=u}return t.prototype.getClaims=function(t){var e=this;return t?this._metadataService.getUserInfoEndpoint().then((function(r){return o.Log.debug("UserInfoService.getClaims: received userinfo url",r),e._jsonService.getJson(r,t).then((function(t){return o.Log.debug("UserInfoService.getClaims: claims received",t),t}))})):(o.Log.error("UserInfoService.getClaims: No token passed"),Promise.reject(new Error("A token is required")))},t.prototype._getClaimsFromJwt=function t(e){var r=this;try{var n=this._joseUtil.parseJwt(e.responseText);if(!n||!n.header||!n.payload)return o.Log.error("UserInfoService._getClaimsFromJwt: Failed to parse JWT",n),Promise.reject(new Error("Failed to parse id_token"));var i=n.header.kid,s=void 0;switch(this._settings.userInfoJwtIssuer){case"OP":s=this._metadataService.getIssuer();break;case"ANY":s=Promise.resolve(n.payload.iss);break;default:s=Promise.resolve(this._settings.userInfoJwtIssuer)}return s.then((function(t){return o.Log.debug("UserInfoService._getClaimsFromJwt: Received issuer:"+t),r._metadataService.getSigningKeys().then((function(s){if(!s)return o.Log.error("UserInfoService._getClaimsFromJwt: No signing keys from metadata"),Promise.reject(new Error("No signing keys from metadata"));o.Log.debug("UserInfoService._getClaimsFromJwt: Received signing keys");var a=void 0;if(i)a=s.filter((function(t){return t.kid===i}))[0];else{if((s=r._filterByAlg(s,n.header.alg)).length>1)return o.Log.error("UserInfoService._getClaimsFromJwt: No kid found in id_token and more than one key found in metadata"),Promise.reject(new Error("No kid found in id_token and more than one key found in metadata"));a=s[0]}if(!a)return o.Log.error("UserInfoService._getClaimsFromJwt: No key matching kid or alg found in signing keys"),Promise.reject(new Error("No key matching kid or alg found in signing keys"));var u=r._settings.client_id,c=r._settings.clockSkew;return o.Log.debug("UserInfoService._getClaimsFromJwt: Validaing JWT; using clock skew (in seconds) of: ",c),r._joseUtil.validateJwt(e.responseText,a,t,u,c,void 0,!0).then((function(){return o.Log.debug("UserInfoService._getClaimsFromJwt: JWT validation successful"),n.payload}))}))}))}catch(t){return o.Log.error("UserInfoService._getClaimsFromJwt: Error parsing JWT response",t.message),void reject(t)}},t.prototype._filterByAlg=function(t,e){var r=null;if(e.startsWith("RS"))r="RSA";else if(e.startsWith("PS"))r="PS";else{if(!e.startsWith("ES"))return o.Log.debug("UserInfoService._filterByAlg: alg not supported: ",e),[];r="EC"}return o.Log.debug("UserInfoService._filterByAlg: Looking for keys that match kty: ",r),t=t.filter((function(t){return t.kty===r})),o.Log.debug("UserInfoService._filterByAlg: Number of keys that match kty: ",r,t.length),t},t}()},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.AllowedSigningAlgs=e.b64tohex=e.hextob64u=e.crypto=e.X509=e.KeyUtil=e.jws=void 0;var n=r(27);e.jws=n.jws,e.KeyUtil=n.KEYUTIL,e.X509=n.X509,e.crypto=n.crypto,e.hextob64u=n.hextob64u,e.b64tohex=n.b64tohex,e.AllowedSigningAlgs=["RS256","RS384","RS512","PS256","PS384","PS512","ES256","ES384","ES512"]},function(t,e,r){"use strict";(function(t){Object.defineProperty(e,"__esModule",{value:!0});var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},n={userAgent:!1},i={};if(void 0===o)var o={};o.lang={extend:function(t,e,r){if(!e||!t)throw new Error("YAHOO.lang.extend failed, please check that all dependencies are included.");var i=function(){};if(i.prototype=e.prototype,t.prototype=new i,t.prototype.constructor=t,t.superclass=e.prototype,e.prototype.constructor==Object.prototype.constructor&&(e.prototype.constructor=e),r){var o;for(o in r)t.prototype[o]=r[o];var s=function(){},a=["toString","valueOf"];try{/MSIE/.test(n.userAgent)&&(s=function(t,e){for(o=0;o>>2]>>>24-o%4*8&255;e[n+o>>>2]|=s<<24-(n+o)%4*8}else for(o=0;o>>2]=r[o>>>2];return this.sigBytes+=i,this},clamp:function(){var t=this.words,e=this.sigBytes;t[e>>>2]&=4294967295<<32-e%4*8,t.length=s.ceil(e/4)},clone:function(){var t=c.clone.call(this);return t.words=this.words.slice(0),t},random:function(t){for(var e=[],r=0;r>>2]>>>24-i%4*8&255;n.push((o>>>4).toString(16)),n.push((15&o).toString(16))}return n.join("")},parse:function(t){for(var e=t.length,r=[],n=0;n>>3]|=parseInt(t.substr(n,2),16)<<24-n%8*4;return new h.init(r,e/2)}},g=l.Latin1={stringify:function(t){for(var e=t.words,r=t.sigBytes,n=[],i=0;i>>2]>>>24-i%4*8&255;n.push(String.fromCharCode(o))}return n.join("")},parse:function(t){for(var e=t.length,r=[],n=0;n>>2]|=(255&t.charCodeAt(n))<<24-n%4*8;return new h.init(r,e)}},d=l.Utf8={stringify:function(t){try{return decodeURIComponent(escape(g.stringify(t)))}catch(t){throw new Error("Malformed UTF-8 data")}},parse:function(t){return g.parse(unescape(encodeURIComponent(t)))}},p=u.BufferedBlockAlgorithm=c.extend({reset:function(){this._data=new h.init,this._nDataBytes=0},_append:function(t){"string"==typeof t&&(t=d.parse(t)),this._data.concat(t),this._nDataBytes+=t.sigBytes},_process:function(t){var e=this._data,r=e.words,n=e.sigBytes,i=this.blockSize,o=n/(4*i),a=(o=t?s.ceil(o):s.max((0|o)-this._minBufferSize,0))*i,u=s.min(4*a,n);if(a){for(var c=0;c>>2]>>>24-i%4*8&255)<<16|(e[i+1>>>2]>>>24-(i+1)%4*8&255)<<8|e[i+2>>>2]>>>24-(i+2)%4*8&255,s=0;4>s&&i+.75*s>>6*(3-s)&63));if(e=n.charAt(64))for(;t.length%4;)t.push(e);return t.join("")},parse:function(t){var r=t.length,n=this._map;(i=n.charAt(64))&&-1!=(i=t.indexOf(i))&&(r=i);for(var i=[],o=0,s=0;s>>6-s%4*2;i[o>>>2]|=(a|u)<<24-o%4*8,o++}return e.create(i,o)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="}}(),function(t){for(var e=y,r=(i=e.lib).WordArray,n=i.Hasher,i=e.algo,o=[],s=[],a=function(t){return 4294967296*(t-(0|t))|0},u=2,c=0;64>c;){var h;t:{h=u;for(var l=t.sqrt(h),f=2;f<=l;f++)if(!(h%f)){h=!1;break t}h=!0}h&&(8>c&&(o[c]=a(t.pow(u,.5))),s[c]=a(t.pow(u,1/3)),c++),u++}var g=[];i=i.SHA256=n.extend({_doReset:function(){this._hash=new r.init(o.slice(0))},_doProcessBlock:function(t,e){for(var r=this._hash.words,n=r[0],i=r[1],o=r[2],a=r[3],u=r[4],c=r[5],h=r[6],l=r[7],f=0;64>f;f++){if(16>f)g[f]=0|t[e+f];else{var d=g[f-15],p=g[f-2];g[f]=((d<<25|d>>>7)^(d<<14|d>>>18)^d>>>3)+g[f-7]+((p<<15|p>>>17)^(p<<13|p>>>19)^p>>>10)+g[f-16]}d=l+((u<<26|u>>>6)^(u<<21|u>>>11)^(u<<7|u>>>25))+(u&c^~u&h)+s[f]+g[f],p=((n<<30|n>>>2)^(n<<19|n>>>13)^(n<<10|n>>>22))+(n&i^n&o^i&o),l=h,h=c,c=u,u=a+d|0,a=o,o=i,i=n,n=d+p|0}r[0]=r[0]+n|0,r[1]=r[1]+i|0,r[2]=r[2]+o|0,r[3]=r[3]+a|0,r[4]=r[4]+u|0,r[5]=r[5]+c|0,r[6]=r[6]+h|0,r[7]=r[7]+l|0},_doFinalize:function(){var e=this._data,r=e.words,n=8*this._nDataBytes,i=8*e.sigBytes;return r[i>>>5]|=128<<24-i%32,r[14+(i+64>>>9<<4)]=t.floor(n/4294967296),r[15+(i+64>>>9<<4)]=n,e.sigBytes=4*r.length,this._process(),this._hash},clone:function(){var t=n.clone.call(this);return t._hash=this._hash.clone(),t}}),e.SHA256=n._createHelper(i),e.HmacSHA256=n._createHmacHelper(i)}(Math),function(){function t(){return n.create.apply(n,arguments)}for(var e=y,r=e.lib.Hasher,n=(o=e.x64).Word,i=o.WordArray,o=e.algo,s=[t(1116352408,3609767458),t(1899447441,602891725),t(3049323471,3964484399),t(3921009573,2173295548),t(961987163,4081628472),t(1508970993,3053834265),t(2453635748,2937671579),t(2870763221,3664609560),t(3624381080,2734883394),t(310598401,1164996542),t(607225278,1323610764),t(1426881987,3590304994),t(1925078388,4068182383),t(2162078206,991336113),t(2614888103,633803317),t(3248222580,3479774868),t(3835390401,2666613458),t(4022224774,944711139),t(264347078,2341262773),t(604807628,2007800933),t(770255983,1495990901),t(1249150122,1856431235),t(1555081692,3175218132),t(1996064986,2198950837),t(2554220882,3999719339),t(2821834349,766784016),t(2952996808,2566594879),t(3210313671,3203337956),t(3336571891,1034457026),t(3584528711,2466948901),t(113926993,3758326383),t(338241895,168717936),t(666307205,1188179964),t(773529912,1546045734),t(1294757372,1522805485),t(1396182291,2643833823),t(1695183700,2343527390),t(1986661051,1014477480),t(2177026350,1206759142),t(2456956037,344077627),t(2730485921,1290863460),t(2820302411,3158454273),t(3259730800,3505952657),t(3345764771,106217008),t(3516065817,3606008344),t(3600352804,1432725776),t(4094571909,1467031594),t(275423344,851169720),t(430227734,3100823752),t(506948616,1363258195),t(659060556,3750685593),t(883997877,3785050280),t(958139571,3318307427),t(1322822218,3812723403),t(1537002063,2003034995),t(1747873779,3602036899),t(1955562222,1575990012),t(2024104815,1125592928),t(2227730452,2716904306),t(2361852424,442776044),t(2428436474,593698344),t(2756734187,3733110249),t(3204031479,2999351573),t(3329325298,3815920427),t(3391569614,3928383900),t(3515267271,566280711),t(3940187606,3454069534),t(4118630271,4000239992),t(116418474,1914138554),t(174292421,2731055270),t(289380356,3203993006),t(460393269,320620315),t(685471733,587496836),t(852142971,1086792851),t(1017036298,365543100),t(1126000580,2618297676),t(1288033470,3409855158),t(1501505948,4234509866),t(1607167915,987167468),t(1816402316,1246189591)],a=[],u=0;80>u;u++)a[u]=t();o=o.SHA512=r.extend({_doReset:function(){this._hash=new i.init([new n.init(1779033703,4089235720),new n.init(3144134277,2227873595),new n.init(1013904242,4271175723),new n.init(2773480762,1595750129),new n.init(1359893119,2917565137),new n.init(2600822924,725511199),new n.init(528734635,4215389547),new n.init(1541459225,327033209)])},_doProcessBlock:function(t,e){for(var r=(l=this._hash.words)[0],n=l[1],i=l[2],o=l[3],u=l[4],c=l[5],h=l[6],l=l[7],f=r.high,g=r.low,d=n.high,p=n.low,v=i.high,y=i.low,m=o.high,_=o.low,S=u.high,w=u.low,b=c.high,F=c.low,E=h.high,x=h.low,A=l.high,k=l.low,P=f,C=g,T=d,R=p,I=v,D=y,L=m,N=_,U=S,O=w,B=b,M=F,j=E,H=x,K=A,V=k,q=0;80>q;q++){var J=a[q];if(16>q)var W=J.high=0|t[e+2*q],z=J.low=0|t[e+2*q+1];else{W=((z=(W=a[q-15]).high)>>>1|(Y=W.low)<<31)^(z>>>8|Y<<24)^z>>>7;var Y=(Y>>>1|z<<31)^(Y>>>8|z<<24)^(Y>>>7|z<<25),G=((z=(G=a[q-2]).high)>>>19|($=G.low)<<13)^(z<<3|$>>>29)^z>>>6,$=($>>>19|z<<13)^($<<3|z>>>29)^($>>>6|z<<26),X=(z=a[q-7]).high,Q=(Z=a[q-16]).high,Z=Z.low;W=(W=(W=W+X+((z=Y+z.low)>>>0>>0?1:0))+G+((z+=$)>>>0<$>>>0?1:0))+Q+((z+=Z)>>>0>>0?1:0),J.high=W,J.low=z}X=U&B^~U&j,Z=O&M^~O&H,J=P&T^P&I^T&I;var tt=C&R^C&D^R&D,et=(Y=(P>>>28|C<<4)^(P<<30|C>>>2)^(P<<25|C>>>7),G=(C>>>28|P<<4)^(C<<30|P>>>2)^(C<<25|P>>>7),($=s[q]).high),rt=$.low;Q=K+((U>>>14|O<<18)^(U>>>18|O<<14)^(U<<23|O>>>9))+(($=V+((O>>>14|U<<18)^(O>>>18|U<<14)^(O<<23|U>>>9)))>>>0>>0?1:0),K=j,V=H,j=B,H=M,B=U,M=O,U=L+(Q=(Q=(Q=Q+X+(($+=Z)>>>0>>0?1:0))+et+(($+=rt)>>>0>>0?1:0))+W+(($+=z)>>>0>>0?1:0))+((O=N+$|0)>>>0>>0?1:0)|0,L=I,N=D,I=T,D=R,T=P,R=C,P=Q+(J=Y+J+((z=G+tt)>>>0>>0?1:0))+((C=$+z|0)>>>0<$>>>0?1:0)|0}g=r.low=g+C,r.high=f+P+(g>>>0>>0?1:0),p=n.low=p+R,n.high=d+T+(p>>>0>>0?1:0),y=i.low=y+D,i.high=v+I+(y>>>0>>0?1:0),_=o.low=_+N,o.high=m+L+(_>>>0>>0?1:0),w=u.low=w+O,u.high=S+U+(w>>>0>>0?1:0),F=c.low=F+M,c.high=b+B+(F>>>0>>0?1:0),x=h.low=x+H,h.high=E+j+(x>>>0>>0?1:0),k=l.low=k+V,l.high=A+K+(k>>>0>>0?1:0)},_doFinalize:function(){var t=this._data,e=t.words,r=8*this._nDataBytes,n=8*t.sigBytes;return e[n>>>5]|=128<<24-n%32,e[30+(n+128>>>10<<5)]=Math.floor(r/4294967296),e[31+(n+128>>>10<<5)]=r,t.sigBytes=4*e.length,this._process(),this._hash.toX32()},clone:function(){var t=r.clone.call(this);return t._hash=this._hash.clone(),t},blockSize:32}),e.SHA512=r._createHelper(o),e.HmacSHA512=r._createHmacHelper(o)}(),function(){var t=y,e=(i=t.x64).Word,r=i.WordArray,n=(i=t.algo).SHA512,i=i.SHA384=n.extend({_doReset:function(){this._hash=new r.init([new e.init(3418070365,3238371032),new e.init(1654270250,914150663),new e.init(2438529370,812702999),new e.init(355462360,4144912697),new e.init(1731405415,4290775857),new e.init(2394180231,1750603025),new e.init(3675008525,1694076839),new e.init(1203062813,3204075428)])},_doFinalize:function(){var t=n._doFinalize.call(this);return t.sigBytes-=16,t}});t.SHA384=n._createHelper(i),t.HmacSHA384=n._createHmacHelper(i)}();var m,_="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";function S(t){var e,r,n="";for(e=0;e+3<=t.length;e+=3)r=parseInt(t.substring(e,e+3),16),n+=_.charAt(r>>6)+_.charAt(63&r);for(e+1==t.length?(r=parseInt(t.substring(e,e+1),16),n+=_.charAt(r<<2)):e+2==t.length&&(r=parseInt(t.substring(e,e+2),16),n+=_.charAt(r>>2)+_.charAt((3&r)<<4));(3&n.length)>0;)n+="=";return n}function w(t){var e,r,n,i="",o=0;for(e=0;e>2),r=3&n,o=1):1==o?(i+=P(r<<2|n>>4),r=15&n,o=2):2==o?(i+=P(r),i+=P(n>>2),r=3&n,o=3):(i+=P(r<<2|n>>4),i+=P(15&n),o=0));return 1==o&&(i+=P(r<<2)),i}function b(t){var e,r=w(t),n=new Array;for(e=0;2*e>15;--o>=0;){var u=32767&this[t],c=this[t++]>>15,h=a*u+c*s;i=((u=s*u+((32767&h)<<15)+r[n]+(1073741823&i))>>>30)+(h>>>15)+a*c+(i>>>30),r[n++]=1073741823&u}return i},m=30):"Netscape"!=n.appName?(F.prototype.am=function(t,e,r,n,i,o){for(;--o>=0;){var s=e*this[t++]+r[n]+i;i=Math.floor(s/67108864),r[n++]=67108863&s}return i},m=26):(F.prototype.am=function(t,e,r,n,i,o){for(var s=16383&e,a=e>>14;--o>=0;){var u=16383&this[t],c=this[t++]>>14,h=a*u+c*s;i=((u=s*u+((16383&h)<<14)+r[n]+i)>>28)+(h>>14)+a*c,r[n++]=268435455&u}return i},m=28),F.prototype.DB=m,F.prototype.DM=(1<>>16)&&(t=e,r+=16),0!=(e=t>>8)&&(t=e,r+=8),0!=(e=t>>4)&&(t=e,r+=4),0!=(e=t>>2)&&(t=e,r+=2),0!=(e=t>>1)&&(t=e,r+=1),r}function I(t){this.m=t}function D(t){this.m=t,this.mp=t.invDigit(),this.mpl=32767&this.mp,this.mph=this.mp>>15,this.um=(1<>=16,e+=16),0==(255&t)&&(t>>=8,e+=8),0==(15&t)&&(t>>=4,e+=4),0==(3&t)&&(t>>=2,e+=2),0==(1&t)&&++e,e}function M(t){for(var e=0;0!=t;)t&=t-1,++e;return e}function j(){}function H(t){return t}function K(t){this.r2=E(),this.q3=E(),F.ONE.dlShiftTo(2*t.t,this.r2),this.mu=this.r2.divide(t),this.m=t}I.prototype.convert=function(t){return t.s<0||t.compareTo(this.m)>=0?t.mod(this.m):t},I.prototype.revert=function(t){return t},I.prototype.reduce=function(t){t.divRemTo(this.m,null,t)},I.prototype.mulTo=function(t,e,r){t.multiplyTo(e,r),this.reduce(r)},I.prototype.sqrTo=function(t,e){t.squareTo(e),this.reduce(e)},D.prototype.convert=function(t){var e=E();return t.abs().dlShiftTo(this.m.t,e),e.divRemTo(this.m,null,e),t.s<0&&e.compareTo(F.ZERO)>0&&this.m.subTo(e,e),e},D.prototype.revert=function(t){var e=E();return t.copyTo(e),this.reduce(e),e},D.prototype.reduce=function(t){for(;t.t<=this.mt2;)t[t.t++]=0;for(var e=0;e>15)*this.mpl&this.um)<<15)&t.DM;for(t[r=e+this.m.t]+=this.m.am(0,n,t,e,0,this.m.t);t[r]>=t.DV;)t[r]-=t.DV,t[++r]++}t.clamp(),t.drShiftTo(this.m.t,t),t.compareTo(this.m)>=0&&t.subTo(this.m,t)},D.prototype.mulTo=function(t,e,r){t.multiplyTo(e,r),this.reduce(r)},D.prototype.sqrTo=function(t,e){t.squareTo(e),this.reduce(e)},F.prototype.copyTo=function(t){for(var e=this.t-1;e>=0;--e)t[e]=this[e];t.t=this.t,t.s=this.s},F.prototype.fromInt=function(t){this.t=1,this.s=t<0?-1:0,t>0?this[0]=t:t<-1?this[0]=t+this.DV:this.t=0},F.prototype.fromString=function(t,e){var r;if(16==e)r=4;else if(8==e)r=3;else if(256==e)r=8;else if(2==e)r=1;else if(32==e)r=5;else{if(4!=e)return void this.fromRadix(t,e);r=2}this.t=0,this.s=0;for(var n=t.length,i=!1,o=0;--n>=0;){var s=8==r?255&t[n]:C(t,n);s<0?"-"==t.charAt(n)&&(i=!0):(i=!1,0==o?this[this.t++]=s:o+r>this.DB?(this[this.t-1]|=(s&(1<>this.DB-o):this[this.t-1]|=s<=this.DB&&(o-=this.DB))}8==r&&0!=(128&t[0])&&(this.s=-1,o>0&&(this[this.t-1]|=(1<0&&this[this.t-1]==t;)--this.t},F.prototype.dlShiftTo=function(t,e){var r;for(r=this.t-1;r>=0;--r)e[r+t]=this[r];for(r=t-1;r>=0;--r)e[r]=0;e.t=this.t+t,e.s=this.s},F.prototype.drShiftTo=function(t,e){for(var r=t;r=0;--r)e[r+s+1]=this[r]>>i|a,a=(this[r]&o)<=0;--r)e[r]=0;e[s]=a,e.t=this.t+s+1,e.s=this.s,e.clamp()},F.prototype.rShiftTo=function(t,e){e.s=this.s;var r=Math.floor(t/this.DB);if(r>=this.t)e.t=0;else{var n=t%this.DB,i=this.DB-n,o=(1<>n;for(var s=r+1;s>n;n>0&&(e[this.t-r-1]|=(this.s&o)<>=this.DB;if(t.t>=this.DB;n+=this.s}else{for(n+=this.s;r>=this.DB;n-=t.s}e.s=n<0?-1:0,n<-1?e[r++]=this.DV+n:n>0&&(e[r++]=n),e.t=r,e.clamp()},F.prototype.multiplyTo=function(t,e){var r=this.abs(),n=t.abs(),i=r.t;for(e.t=i+n.t;--i>=0;)e[i]=0;for(i=0;i=0;)t[r]=0;for(r=0;r=e.DV&&(t[r+e.t]-=e.DV,t[r+e.t+1]=1)}t.t>0&&(t[t.t-1]+=e.am(r,e[r],t,2*r,0,1)),t.s=0,t.clamp()},F.prototype.divRemTo=function(t,e,r){var n=t.abs();if(!(n.t<=0)){var i=this.abs();if(i.t0?(n.lShiftTo(u,o),i.lShiftTo(u,r)):(n.copyTo(o),i.copyTo(r));var c=o.t,h=o[c-1];if(0!=h){var l=h*(1<1?o[c-2]>>this.F2:0),f=this.FV/l,g=(1<=0&&(r[r.t++]=1,r.subTo(y,r)),F.ONE.dlShiftTo(c,y),y.subTo(o,o);o.t=0;){var m=r[--p]==h?this.DM:Math.floor(r[p]*f+(r[p-1]+d)*g);if((r[p]+=o.am(0,m,r,v,0,c))0&&r.rShiftTo(u,r),s<0&&F.ZERO.subTo(r,r)}}},F.prototype.invDigit=function(){if(this.t<1)return 0;var t=this[0];if(0==(1&t))return 0;var e=3&t;return(e=(e=(e=(e=e*(2-(15&t)*e)&15)*(2-(255&t)*e)&255)*(2-((65535&t)*e&65535))&65535)*(2-t*e%this.DV)%this.DV)>0?this.DV-e:-e},F.prototype.isEven=function(){return 0==(this.t>0?1&this[0]:this.s)},F.prototype.exp=function(t,e){if(t>4294967295||t<1)return F.ONE;var r=E(),n=E(),i=e.convert(this),o=R(t)-1;for(i.copyTo(r);--o>=0;)if(e.sqrTo(r,n),(t&1<0)e.mulTo(n,i,r);else{var s=r;r=n,n=s}return e.revert(r)},F.prototype.toString=function(t){if(this.s<0)return"-"+this.negate().toString(t);var e;if(16==t)e=4;else if(8==t)e=3;else if(2==t)e=1;else if(32==t)e=5;else{if(4!=t)return this.toRadix(t);e=2}var r,n=(1<0)for(a>a)>0&&(i=!0,o=P(r));s>=0;)a>(a+=this.DB-e)):(r=this[s]>>(a-=e)&n,a<=0&&(a+=this.DB,--s)),r>0&&(i=!0),i&&(o+=P(r));return i?o:"0"},F.prototype.negate=function(){var t=E();return F.ZERO.subTo(this,t),t},F.prototype.abs=function(){return this.s<0?this.negate():this},F.prototype.compareTo=function(t){var e=this.s-t.s;if(0!=e)return e;var r=this.t;if(0!=(e=r-t.t))return this.s<0?-e:e;for(;--r>=0;)if(0!=(e=this[r]-t[r]))return e;return 0},F.prototype.bitLength=function(){return this.t<=0?0:this.DB*(this.t-1)+R(this[this.t-1]^this.s&this.DM)},F.prototype.mod=function(t){var e=E();return this.abs().divRemTo(t,null,e),this.s<0&&e.compareTo(F.ZERO)>0&&t.subTo(e,e),e},F.prototype.modPowInt=function(t,e){var r;return r=t<256||e.isEven()?new I(e):new D(e),this.exp(t,r)},F.ZERO=T(0),F.ONE=T(1),j.prototype.convert=H,j.prototype.revert=H,j.prototype.mulTo=function(t,e,r){t.multiplyTo(e,r)},j.prototype.sqrTo=function(t,e){t.squareTo(e)},K.prototype.convert=function(t){if(t.s<0||t.t>2*this.m.t)return t.mod(this.m);if(t.compareTo(this.m)<0)return t;var e=E();return t.copyTo(e),this.reduce(e),e},K.prototype.revert=function(t){return t},K.prototype.reduce=function(t){for(t.drShiftTo(this.m.t-1,this.r2),t.t>this.m.t+1&&(t.t=this.m.t+1,t.clamp()),this.mu.multiplyUpperTo(this.r2,this.m.t+1,this.q3),this.m.multiplyLowerTo(this.q3,this.m.t+1,this.r2);t.compareTo(this.r2)<0;)t.dAddOffset(1,this.m.t+1);for(t.subTo(this.r2,t);t.compareTo(this.m)>=0;)t.subTo(this.m,t)},K.prototype.mulTo=function(t,e,r){t.multiplyTo(e,r),this.reduce(r)},K.prototype.sqrTo=function(t,e){t.squareTo(e),this.reduce(e)};var V,q,J,W=[2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509,521,523,541,547,557,563,569,571,577,587,593,599,601,607,613,617,619,631,641,643,647,653,659,661,673,677,683,691,701,709,719,727,733,739,743,751,757,761,769,773,787,797,809,811,821,823,827,829,839,853,857,859,863,877,881,883,887,907,911,919,929,937,941,947,953,967,971,977,983,991,997],z=(1<<26)/W[W.length-1];function Y(){this.i=0,this.j=0,this.S=new Array}function G(){!function(t){q[J++]^=255&t,q[J++]^=t>>8&255,q[J++]^=t>>16&255,q[J++]^=t>>24&255,J>=256&&(J-=256)}((new Date).getTime())}if(F.prototype.chunkSize=function(t){return Math.floor(Math.LN2*this.DB/Math.log(t))},F.prototype.toRadix=function(t){if(null==t&&(t=10),0==this.signum()||t<2||t>36)return"0";var e=this.chunkSize(t),r=Math.pow(t,e),n=T(r),i=E(),o=E(),s="";for(this.divRemTo(n,i,o);i.signum()>0;)s=(r+o.intValue()).toString(t).substr(1)+s,i.divRemTo(n,i,o);return o.intValue().toString(t)+s},F.prototype.fromRadix=function(t,e){this.fromInt(0),null==e&&(e=10);for(var r=this.chunkSize(e),n=Math.pow(e,r),i=!1,o=0,s=0,a=0;a=r&&(this.dMultiply(n),this.dAddOffset(s,0),o=0,s=0))}o>0&&(this.dMultiply(Math.pow(e,o)),this.dAddOffset(s,0)),i&&F.ZERO.subTo(this,this)},F.prototype.fromNumber=function(t,e,r){if("number"==typeof e)if(t<2)this.fromInt(1);else for(this.fromNumber(t,r),this.testBit(t-1)||this.bitwiseTo(F.ONE.shiftLeft(t-1),N,this),this.isEven()&&this.dAddOffset(1,0);!this.isProbablePrime(e);)this.dAddOffset(2,0),this.bitLength()>t&&this.subTo(F.ONE.shiftLeft(t-1),this);else{var n=new Array,i=7&t;n.length=1+(t>>3),e.nextBytes(n),i>0?n[0]&=(1<>=this.DB;if(t.t>=this.DB;n+=this.s}else{for(n+=this.s;r>=this.DB;n+=t.s}e.s=n<0?-1:0,n>0?e[r++]=n:n<-1&&(e[r++]=this.DV+n),e.t=r,e.clamp()},F.prototype.dMultiply=function(t){this[this.t]=this.am(0,t-1,this,0,0,this.t),++this.t,this.clamp()},F.prototype.dAddOffset=function(t,e){if(0!=t){for(;this.t<=e;)this[this.t++]=0;for(this[e]+=t;this[e]>=this.DV;)this[e]-=this.DV,++e>=this.t&&(this[this.t++]=0),++this[e]}},F.prototype.multiplyLowerTo=function(t,e,r){var n,i=Math.min(this.t+t.t,e);for(r.s=0,r.t=i;i>0;)r[--i]=0;for(n=r.t-this.t;i=0;)r[n]=0;for(n=Math.max(e-this.t,0);n0)if(0==e)r=this[0]%t;else for(var n=this.t-1;n>=0;--n)r=(e*r+this[n])%t;return r},F.prototype.millerRabin=function(t){var e=this.subtract(F.ONE),r=e.getLowestSetBit();if(r<=0)return!1;var n=e.shiftRight(r);(t=t+1>>1)>W.length&&(t=W.length);for(var i=E(),o=0;o>24},F.prototype.shortValue=function(){return 0==this.t?this.s:this[0]<<16>>16},F.prototype.signum=function(){return this.s<0?-1:this.t<=0||1==this.t&&this[0]<=0?0:1},F.prototype.toByteArray=function(){var t=this.t,e=new Array;e[0]=this.s;var r,n=this.DB-t*this.DB%8,i=0;if(t-- >0)for(n>n)!=(this.s&this.DM)>>n&&(e[i++]=r|this.s<=0;)n<8?(r=(this[t]&(1<>(n+=this.DB-8)):(r=this[t]>>(n-=8)&255,n<=0&&(n+=this.DB,--t)),0!=(128&r)&&(r|=-256),0==i&&(128&this.s)!=(128&r)&&++i,(i>0||r!=this.s)&&(e[i++]=r);return e},F.prototype.equals=function(t){return 0==this.compareTo(t)},F.prototype.min=function(t){return this.compareTo(t)<0?this:t},F.prototype.max=function(t){return this.compareTo(t)>0?this:t},F.prototype.and=function(t){var e=E();return this.bitwiseTo(t,L,e),e},F.prototype.or=function(t){var e=E();return this.bitwiseTo(t,N,e),e},F.prototype.xor=function(t){var e=E();return this.bitwiseTo(t,U,e),e},F.prototype.andNot=function(t){var e=E();return this.bitwiseTo(t,O,e),e},F.prototype.not=function(){for(var t=E(),e=0;e=this.t?0!=this.s:0!=(this[e]&1<1){var h=E();for(n.sqrTo(s[1],h);a<=c;)s[a]=E(),n.mulTo(h,s[a-2],s[a]),a+=2}var l,f,g=t.t-1,d=!0,p=E();for(i=R(t[g])-1;g>=0;){for(i>=u?l=t[g]>>i-u&c:(l=(t[g]&(1<0&&(l|=t[g-1]>>this.DB+i-u)),a=r;0==(1&l);)l>>=1,--a;if((i-=a)<0&&(i+=this.DB,--g),d)s[l].copyTo(o),d=!1;else{for(;a>1;)n.sqrTo(o,p),n.sqrTo(p,o),a-=2;a>0?n.sqrTo(o,p):(f=o,o=p,p=f),n.mulTo(p,s[l],o)}for(;g>=0&&0==(t[g]&1<=0?(r.subTo(n,r),e&&i.subTo(s,i),o.subTo(a,o)):(n.subTo(r,n),e&&s.subTo(i,s),a.subTo(o,a))}return 0!=n.compareTo(F.ONE)?F.ZERO:a.compareTo(t)>=0?a.subtract(t):a.signum()<0?(a.addTo(t,a),a.signum()<0?a.add(t):a):a},F.prototype.pow=function(t){return this.exp(t,new j)},F.prototype.gcd=function(t){var e=this.s<0?this.negate():this.clone(),r=t.s<0?t.negate():t.clone();if(e.compareTo(r)<0){var n=e;e=r,r=n}var i=e.getLowestSetBit(),o=r.getLowestSetBit();if(o<0)return e;for(i0&&(e.rShiftTo(o,e),r.rShiftTo(o,r));e.signum()>0;)(i=e.getLowestSetBit())>0&&e.rShiftTo(i,e),(i=r.getLowestSetBit())>0&&r.rShiftTo(i,r),e.compareTo(r)>=0?(e.subTo(r,e),e.rShiftTo(1,e)):(r.subTo(e,r),r.rShiftTo(1,r));return o>0&&r.lShiftTo(o,r),r},F.prototype.isProbablePrime=function(t){var e,r=this.abs();if(1==r.t&&r[0]<=W[W.length-1]){for(e=0;e>>8,q[J++]=255&$;J=0,G()}function tt(){if(null==V){for(G(),(V=new Y).init(q),J=0;J>24,(16711680&i)>>16,(65280&i)>>8,255&i]))),i+=1;return n}function it(){this.n=null,this.e=0,this.d=null,this.p=null,this.q=null,this.dmp1=null,this.dmq1=null,this.coeff=null}function ot(t,e){this.x=e,this.q=t}function st(t,e,r,n){this.curve=t,this.x=e,this.y=r,this.z=null==n?F.ONE:n,this.zinv=null}function at(t,e,r){this.q=t,this.a=this.fromBigInteger(e),this.b=this.fromBigInteger(r),this.infinity=new st(this,null,null)}et.prototype.nextBytes=function(t){var e;for(e=0;e0&&e.length>0))throw"Invalid RSA public key";this.n=rt(t,16),this.e=parseInt(e,16)}},it.prototype.encrypt=function(t){var e=function(t,e){if(e=0&&e>0;){var i=t.charCodeAt(n--);i<128?r[--e]=i:i>127&&i<2048?(r[--e]=63&i|128,r[--e]=i>>6|192):(r[--e]=63&i|128,r[--e]=i>>6&63|128,r[--e]=i>>12|224)}r[--e]=0;for(var o=new et,s=new Array;e>2;){for(s[0]=0;0==s[0];)o.nextBytes(s);r[--e]=s[0]}return r[--e]=2,r[--e]=0,new F(r)}(t,this.n.bitLength()+7>>3);if(null==e)return null;var r=this.doPublic(e);if(null==r)return null;var n=r.toString(16);return 0==(1&n.length)?n:"0"+n},it.prototype.encryptOAEP=function(t,e,r){var n=function(t,e,r,n){var i=ct.crypto.MessageDigest,o=ct.crypto.Util,s=null;if(r||(r="sha1"),"string"==typeof r&&(s=i.getCanonicalAlgName(r),n=i.getHashLength(s),r=function(t){return Ft(o.hashHex(Et(t),s))}),t.length+2*n+2>e)throw"Message too long for RSA";var a,u="";for(a=0;a>3,e,r);if(null==n)return null;var i=this.doPublic(n);if(null==i)return null;var o=i.toString(16);return 0==(1&o.length)?o:"0"+o},it.prototype.type="RSA",ot.prototype.equals=function(t){return t==this||this.q.equals(t.q)&&this.x.equals(t.x)},ot.prototype.toBigInteger=function(){return this.x},ot.prototype.negate=function(){return new ot(this.q,this.x.negate().mod(this.q))},ot.prototype.add=function(t){return new ot(this.q,this.x.add(t.toBigInteger()).mod(this.q))},ot.prototype.subtract=function(t){return new ot(this.q,this.x.subtract(t.toBigInteger()).mod(this.q))},ot.prototype.multiply=function(t){return new ot(this.q,this.x.multiply(t.toBigInteger()).mod(this.q))},ot.prototype.square=function(){return new ot(this.q,this.x.square().mod(this.q))},ot.prototype.divide=function(t){return new ot(this.q,this.x.multiply(t.toBigInteger().modInverse(this.q)).mod(this.q))},st.prototype.getX=function(){return null==this.zinv&&(this.zinv=this.z.modInverse(this.curve.q)),this.curve.fromBigInteger(this.x.toBigInteger().multiply(this.zinv).mod(this.curve.q))},st.prototype.getY=function(){return null==this.zinv&&(this.zinv=this.z.modInverse(this.curve.q)),this.curve.fromBigInteger(this.y.toBigInteger().multiply(this.zinv).mod(this.curve.q))},st.prototype.equals=function(t){return t==this||(this.isInfinity()?t.isInfinity():t.isInfinity()?this.isInfinity():!!t.y.toBigInteger().multiply(this.z).subtract(this.y.toBigInteger().multiply(t.z)).mod(this.curve.q).equals(F.ZERO)&&t.x.toBigInteger().multiply(this.z).subtract(this.x.toBigInteger().multiply(t.z)).mod(this.curve.q).equals(F.ZERO))},st.prototype.isInfinity=function(){return null==this.x&&null==this.y||this.z.equals(F.ZERO)&&!this.y.toBigInteger().equals(F.ZERO)},st.prototype.negate=function(){return new st(this.curve,this.x,this.y.negate(),this.z)},st.prototype.add=function(t){if(this.isInfinity())return t;if(t.isInfinity())return this;var e=t.y.toBigInteger().multiply(this.z).subtract(this.y.toBigInteger().multiply(t.z)).mod(this.curve.q),r=t.x.toBigInteger().multiply(this.z).subtract(this.x.toBigInteger().multiply(t.z)).mod(this.curve.q);if(F.ZERO.equals(r))return F.ZERO.equals(e)?this.twice():this.curve.getInfinity();var n=new F("3"),i=this.x.toBigInteger(),o=this.y.toBigInteger(),s=(t.x.toBigInteger(),t.y.toBigInteger(),r.square()),a=s.multiply(r),u=i.multiply(s),c=e.square().multiply(this.z),h=c.subtract(u.shiftLeft(1)).multiply(t.z).subtract(a).multiply(r).mod(this.curve.q),l=u.multiply(n).multiply(e).subtract(o.multiply(a)).subtract(c.multiply(e)).multiply(t.z).add(e.multiply(a)).mod(this.curve.q),f=a.multiply(this.z).multiply(t.z).mod(this.curve.q);return new st(this.curve,this.curve.fromBigInteger(h),this.curve.fromBigInteger(l),f)},st.prototype.twice=function(){if(this.isInfinity())return this;if(0==this.y.toBigInteger().signum())return this.curve.getInfinity();var t=new F("3"),e=this.x.toBigInteger(),r=this.y.toBigInteger(),n=r.multiply(this.z),i=n.multiply(r).mod(this.curve.q),o=this.curve.a.toBigInteger(),s=e.square().multiply(t);F.ZERO.equals(o)||(s=s.add(this.z.square().multiply(o)));var a=(s=s.mod(this.curve.q)).square().subtract(e.shiftLeft(3).multiply(i)).shiftLeft(1).multiply(n).mod(this.curve.q),u=s.multiply(t).multiply(e).subtract(i.shiftLeft(1)).shiftLeft(2).multiply(i).subtract(s.square().multiply(s)).mod(this.curve.q),c=n.square().multiply(n).shiftLeft(3).mod(this.curve.q);return new st(this.curve,this.curve.fromBigInteger(a),this.curve.fromBigInteger(u),c)},st.prototype.multiply=function(t){if(this.isInfinity())return this;if(0==t.signum())return this.curve.getInfinity();var e,r=t,n=r.multiply(new F("3")),i=this.negate(),o=this,s=this.curve.q.subtract(t),a=s.multiply(new F("3")),u=new st(this.curve,this.x,this.y),c=u.negate();for(e=n.bitLength()-2;e>0;--e){o=o.twice();var h=n.testBit(e);h!=r.testBit(e)&&(o=o.add(h?this:i))}for(e=a.bitLength()-2;e>0;--e){u=u.twice();var l=a.testBit(e);l!=s.testBit(e)&&(u=u.add(l?u:c))}return o},st.prototype.multiplyTwo=function(t,e,r){var n;n=t.bitLength()>r.bitLength()?t.bitLength()-1:r.bitLength()-1;for(var i=this.curve.getInfinity(),o=this.add(e);n>=0;)i=i.twice(),t.testBit(n)?i=r.testBit(n)?i.add(o):i.add(this):r.testBit(n)&&(i=i.add(e)),--n;return i},at.prototype.getQ=function(){return this.q},at.prototype.getA=function(){return this.a},at.prototype.getB=function(){return this.b},at.prototype.equals=function(t){return t==this||this.q.equals(t.q)&&this.a.equals(t.a)&&this.b.equals(t.b)},at.prototype.getInfinity=function(){return this.infinity},at.prototype.fromBigInteger=function(t){return new ot(this.q,t)},at.prototype.decodePointHex=function(t){switch(parseInt(t.substr(0,2),16)){case 0:return this.infinity;case 2:case 3:default:return null;case 4:case 6:case 7:var e=(t.length-2)/2,r=t.substr(2,e),n=t.substr(e+2,e);return new st(this,this.fromBigInteger(new F(r,16)),this.fromBigInteger(new F(n,16)))}},ot.prototype.getByteLength=function(){return Math.floor((this.toBigInteger().bitLength()+7)/8)},st.prototype.getEncoded=function(t){var e=function(t,e){var r=t.toByteArrayUnsigned();if(er.length;)r.unshift(0);return r},r=this.getX().toBigInteger(),n=this.getY().toBigInteger(),i=e(r,32);return t?n.isEven()?i.unshift(2):i.unshift(3):(i.unshift(4),i=i.concat(e(n,32))),i},st.decodeFrom=function(t,e){e[0];var r=e.length-1,n=e.slice(1,1+r/2),i=e.slice(1+r/2,1+r);n.unshift(0),i.unshift(0);var o=new F(n),s=new F(i);return new st(t,t.fromBigInteger(o),t.fromBigInteger(s))},st.decodeFromHex=function(t,e){e.substr(0,2);var r=e.length-2,n=e.substr(2,r/2),i=e.substr(2+r/2,r/2),o=new F(n,16),s=new F(i,16);return new st(t,t.fromBigInteger(o),t.fromBigInteger(s))},st.prototype.add2D=function(t){if(this.isInfinity())return t;if(t.isInfinity())return this;if(this.x.equals(t.x))return this.y.equals(t.y)?this.twice():this.curve.getInfinity();var e=t.x.subtract(this.x),r=t.y.subtract(this.y).divide(e),n=r.square().subtract(this.x).subtract(t.x),i=r.multiply(this.x.subtract(n)).subtract(this.y);return new st(this.curve,n,i)},st.prototype.twice2D=function(){if(this.isInfinity())return this;if(0==this.y.toBigInteger().signum())return this.curve.getInfinity();var t=this.curve.fromBigInteger(F.valueOf(2)),e=this.curve.fromBigInteger(F.valueOf(3)),r=this.x.square().multiply(e).add(this.curve.a).divide(this.y.multiply(t)),n=r.square().subtract(this.x.multiply(t)),i=r.multiply(this.x.subtract(n)).subtract(this.y);return new st(this.curve,n,i)},st.prototype.multiply2D=function(t){if(this.isInfinity())return this;if(0==t.signum())return this.curve.getInfinity();var e,r=t,n=r.multiply(new F("3")),i=this.negate(),o=this;for(e=n.bitLength()-2;e>0;--e){o=o.twice();var s=n.testBit(e);s!=r.testBit(e)&&(o=o.add2D(s?this:i))}return o},st.prototype.isOnCurve=function(){var t=this.getX().toBigInteger(),e=this.getY().toBigInteger(),r=this.curve.getA().toBigInteger(),n=this.curve.getB().toBigInteger(),i=this.curve.getQ(),o=e.multiply(e).mod(i),s=t.multiply(t).multiply(t).add(r.multiply(t)).add(n).mod(i);return o.equals(s)},st.prototype.toString=function(){return"("+this.getX().toBigInteger().toString()+","+this.getY().toBigInteger().toString()+")"},st.prototype.validate=function(){var t=this.curve.getQ();if(this.isInfinity())throw new Error("Point is at infinity.");var e=this.getX().toBigInteger(),r=this.getY().toBigInteger();if(e.compareTo(F.ONE)<0||e.compareTo(t.subtract(F.ONE))>0)throw new Error("x coordinate out of bounds");if(r.compareTo(F.ONE)<0||r.compareTo(t.subtract(F.ONE))>0)throw new Error("y coordinate out of bounds");if(!this.isOnCurve())throw new Error("Point is not on the curve.");if(this.multiply(t).isInfinity())throw new Error("Point is not a scalar multiple of G.");return!0};var ut=function(){var t=new RegExp('(?:false|true|null|[\\{\\}\\[\\]]|(?:-?\\b(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?\\b)|(?:"(?:[^\\0-\\x08\\x0a-\\x1f"\\\\]|\\\\(?:["/\\\\bfnrt]|u[0-9A-Fa-f]{4}))*"))',"g"),e=new RegExp("\\\\(?:([^u])|u(.{4}))","g"),n={'"':'"',"/":"/","\\":"\\",b:"\b",f:"\f",n:"\n",r:"\r",t:"\t"};function i(t,e,r){return e?n[e]:String.fromCharCode(parseInt(r,16))}var o=new String(""),s=Object.hasOwnProperty;return function(n,a){var u,c,h=n.match(t),l=h[0],f=!1;"{"===l?u={}:"["===l?u=[]:(u=[],f=!0);for(var g=[u],d=1-f,p=h.length;d=0;)delete i[o[h]]}return a.call(e,n,i)}({"":u},"")),u}}();void 0!==ct&&ct||(e.KJUR=ct={}),void 0!==ct.asn1&&ct.asn1||(ct.asn1={}),ct.asn1.ASN1Util=new function(){this.integerToByteHex=function(t){var e=t.toString(16);return e.length%2==1&&(e="0"+e),e},this.bigIntToMinTwosComplementsHex=function(t){var e=t.toString(16);if("-"!=e.substr(0,1))e.length%2==1?e="0"+e:e.match(/^[0-7]/)||(e="00"+e);else{var r=e.substr(1).length;r%2==1?r+=1:e.match(/^[0-7]/)||(r+=2);for(var n="",i=0;i15)throw"ASN.1 length too long to represent by 8x: n = "+t.toString(16);return(128+r).toString(16)+e},this.getEncodedHex=function(){return(null==this.hTLV||this.isModified)&&(this.hV=this.getFreshValueHex(),this.hL=this.getLengthHexFromValue(),this.hTLV=this.hT+this.hL+this.hV,this.isModified=!1),this.hTLV},this.getValueHex=function(){return this.getEncodedHex(),this.hV},this.getFreshValueHex=function(){return""},this.setByParam=function(t){this.params=t},null!=t&&null!=t.tlv&&(this.hTLV=t.tlv,this.isModified=!1)},ct.asn1.DERAbstractString=function(t){ct.asn1.DERAbstractString.superclass.constructor.call(this),this.getString=function(){return this.s},this.setString=function(t){this.hTLV=null,this.isModified=!0,this.s=t,this.hV=wt(this.s).toLowerCase()},this.setStringHex=function(t){this.hTLV=null,this.isModified=!0,this.s=null,this.hV=t},this.getFreshValueHex=function(){return this.hV},void 0!==t&&("string"==typeof t?this.setString(t):void 0!==t.str?this.setString(t.str):void 0!==t.hex&&this.setStringHex(t.hex))},o.lang.extend(ct.asn1.DERAbstractString,ct.asn1.ASN1Object),ct.asn1.DERAbstractTime=function(t){ct.asn1.DERAbstractTime.superclass.constructor.call(this),this.localDateToUTC=function(t){var e=t.getTime()+6e4*t.getTimezoneOffset();return new Date(e)},this.formatDate=function(t,e,r){var n=this.zeroPadding,i=this.localDateToUTC(t),o=String(i.getFullYear());"utc"==e&&(o=o.substr(2,2));var s=o+n(String(i.getMonth()+1),2)+n(String(i.getDate()),2)+n(String(i.getHours()),2)+n(String(i.getMinutes()),2)+n(String(i.getSeconds()),2);if(!0===r){var a=i.getMilliseconds();if(0!=a){var u=n(String(a),3);s=s+"."+(u=u.replace(/[0]+$/,""))}}return s+"Z"},this.zeroPadding=function(t,e){return t.length>=e?t:new Array(e-t.length+1).join("0")+t},this.getString=function(){return this.s},this.setString=function(t){this.hTLV=null,this.isModified=!0,this.s=t,this.hV=vt(t)},this.setByDateValue=function(t,e,r,n,i,o){var s=new Date(Date.UTC(t,e-1,r,n,i,o,0));this.setByDate(s)},this.getFreshValueHex=function(){return this.hV}},o.lang.extend(ct.asn1.DERAbstractTime,ct.asn1.ASN1Object),ct.asn1.DERAbstractStructured=function(t){ct.asn1.DERAbstractString.superclass.constructor.call(this),this.setByASN1ObjectArray=function(t){this.hTLV=null,this.isModified=!0,this.asn1Array=t},this.appendASN1Object=function(t){this.hTLV=null,this.isModified=!0,this.asn1Array.push(t)},this.asn1Array=new Array,void 0!==t&&void 0!==t.array&&(this.asn1Array=t.array)},o.lang.extend(ct.asn1.DERAbstractStructured,ct.asn1.ASN1Object),ct.asn1.DERBoolean=function(t){ct.asn1.DERBoolean.superclass.constructor.call(this),this.hT="01",this.hTLV=0==t?"010100":"0101ff"},o.lang.extend(ct.asn1.DERBoolean,ct.asn1.ASN1Object),ct.asn1.DERInteger=function(t){ct.asn1.DERInteger.superclass.constructor.call(this),this.hT="02",this.setByBigInteger=function(t){this.hTLV=null,this.isModified=!0,this.hV=ct.asn1.ASN1Util.bigIntToMinTwosComplementsHex(t)},this.setByInteger=function(t){var e=new F(String(t),10);this.setByBigInteger(e)},this.setValueHex=function(t){this.hV=t},this.getFreshValueHex=function(){return this.hV},void 0!==t&&(void 0!==t.bigint?this.setByBigInteger(t.bigint):void 0!==t.int?this.setByInteger(t.int):"number"==typeof t?this.setByInteger(t):void 0!==t.hex&&this.setValueHex(t.hex))},o.lang.extend(ct.asn1.DERInteger,ct.asn1.ASN1Object),ct.asn1.DERBitString=function(t){if(void 0!==t&&void 0!==t.obj){var e=ct.asn1.ASN1Util.newObject(t.obj);t.hex="00"+e.getEncodedHex()}ct.asn1.DERBitString.superclass.constructor.call(this),this.hT="03",this.setHexValueIncludingUnusedBits=function(t){this.hTLV=null,this.isModified=!0,this.hV=t},this.setUnusedBitsAndHexValue=function(t,e){if(t<0||7i.length&&(i=n[r]);return(t=t.replace(i,"::")).slice(1,-1)}function Ut(t){var e="malformed hex value";if(!t.match(/^([0-9A-Fa-f][0-9A-Fa-f]){1,}$/))throw e;if(8!=t.length)return 32==t.length?Nt(t):t;try{return parseInt(t.substr(0,2),16)+"."+parseInt(t.substr(2,2),16)+"."+parseInt(t.substr(4,2),16)+"."+parseInt(t.substr(6,2),16)}catch(t){throw e}}function Ot(t){for(var e=encodeURIComponent(t),r="",n=0;n"7"?"00"+t:t}ft.getLblen=function(t,e){if("8"!=t.substr(e+2,1))return 1;var r=parseInt(t.substr(e+3,1));return 0==r?-1:0=n)break}return s},ft.getNthChildIdx=function(t,e,r){return ft.getChildIdx(t,e)[r]},ft.getIdxbyList=function(t,e,r,n){var i,o,s=ft;return 0==r.length?void 0!==n&&t.substr(e,2)!==n?-1:e:(i=r.shift())>=(o=s.getChildIdx(t,e)).length?-1:s.getIdxbyList(t,o[i],r,n)},ft.getIdxbyListEx=function(t,e,r,n){var i,o,s=ft;if(0==r.length)return void 0!==n&&t.substr(e,2)!==n?-1:e;i=r.shift(),o=s.getChildIdx(t,e);for(var a=0,u=0;u=t.length?null:i.getTLV(t,o)},ft.getTLVbyListEx=function(t,e,r,n){var i=ft,o=i.getIdxbyListEx(t,e,r,n);return-1==o?null:i.getTLV(t,o)},ft.getVbyList=function(t,e,r,n,i){var o,s,a=ft;return-1==(o=a.getIdxbyList(t,e,r,n))||o>=t.length?null:(s=a.getV(t,o),!0===i&&(s=s.substr(2)),s)},ft.getVbyListEx=function(t,e,r,n,i){var o,s,a=ft;return-1==(o=a.getIdxbyListEx(t,e,r,n))?null:(s=a.getV(t,o),"03"==t.substr(o,2)&&!1!==i&&(s=s.substr(2)),s)},ft.getInt=function(t,e,r){null==r&&(r=-1);try{var n=t.substr(e,2);if("02"!=n&&"03"!=n)return r;var i=ft.getV(t,e);return"02"==n?parseInt(i,16):function(t){try{var e=t.substr(0,2);if("00"==e)return parseInt(t.substr(2),16);var r=parseInt(e,16),n=t.substr(2),i=parseInt(n,16).toString(2);return"0"==i&&(i="00000000"),i=i.slice(0,0-r),parseInt(i,2)}catch(t){return-1}}(i)}catch(t){return r}},ft.getOID=function(t,e,r){null==r&&(r=null);try{return"06"!=t.substr(e,2)?r:function(t){if(!Bt(t))return null;try{var e=[],r=t.substr(0,2),n=parseInt(r,16);e[0]=new String(Math.floor(n/40)),e[1]=new String(n%40);for(var i=t.substr(2),o=[],s=0;s0&&(c=c+"."+a.join(".")),c}catch(t){return null}}(ft.getV(t,e))}catch(t){return r}},ft.getOIDName=function(t,e,r){null==r&&(r=null);try{var n=ft.getOID(t,e,r);if(n==r)return r;var i=ct.asn1.x509.OID.oid2name(n);return""==i?n:i}catch(t){return r}},ft.getString=function(t,e,r){null==r&&(r=null);try{return Ft(ft.getV(t,e))}catch(t){return r}},ft.hextooidstr=function(t){var e=function(t,e){return t.length>=e?t:new Array(e-t.length+1).join("0")+t},r=[],n=t.substr(0,2),i=parseInt(n,16);r[0]=new String(Math.floor(i/40)),r[1]=new String(i%40);for(var o=t.substr(2),s=[],a=0;a0&&(h=h+"."+u.join(".")),h},ft.dump=function(t,e,r,n){var i=ft,o=i.getV,s=i.dump,a=i.getChildIdx,u=t;t instanceof ct.asn1.ASN1Object&&(u=t.getEncodedHex());var c=function(t,e){return t.length<=2*e?t:t.substr(0,e)+"..(total "+t.length/2+"bytes).."+t.substr(t.length-e,e)};void 0===e&&(e={ommit_long_octet:32}),void 0===r&&(r=0),void 0===n&&(n="");var h,l=e.ommit_long_octet;if("01"==(h=u.substr(r,2)))return"00"==(f=o(u,r))?n+"BOOLEAN FALSE\n":n+"BOOLEAN TRUE\n";if("02"==h)return n+"INTEGER "+c(f=o(u,r),l)+"\n";if("03"==h){var f=o(u,r);return i.isASN1HEX(f.substr(2))?(w=n+"BITSTRING, encapsulates\n")+s(f.substr(2),e,0,n+" "):n+"BITSTRING "+c(f,l)+"\n"}if("04"==h)return f=o(u,r),i.isASN1HEX(f)?(w=n+"OCTETSTRING, encapsulates\n")+s(f,e,0,n+" "):n+"OCTETSTRING "+c(f,l)+"\n";if("05"==h)return n+"NULL\n";if("06"==h){var g=o(u,r),d=ct.asn1.ASN1Util.oidHexToInt(g),p=ct.asn1.x509.OID.oid2name(d),v=d.replace(/\./g," ");return""!=p?n+"ObjectIdentifier "+p+" ("+v+")\n":n+"ObjectIdentifier ("+v+")\n"}if("0a"==h)return n+"ENUMERATED "+parseInt(o(u,r))+"\n";if("0c"==h)return n+"UTF8String '"+bt(o(u,r))+"'\n";if("13"==h)return n+"PrintableString '"+bt(o(u,r))+"'\n";if("14"==h)return n+"TeletexString '"+bt(o(u,r))+"'\n";if("16"==h)return n+"IA5String '"+bt(o(u,r))+"'\n";if("17"==h)return n+"UTCTime "+bt(o(u,r))+"\n";if("18"==h)return n+"GeneralizedTime "+bt(o(u,r))+"\n";if("1a"==h)return n+"VisualString '"+bt(o(u,r))+"'\n";if("1e"==h)return n+"BMPString '"+bt(o(u,r))+"'\n";if("30"==h){if("3000"==u.substr(r,4))return n+"SEQUENCE {}\n";w=n+"SEQUENCE\n";var y=e;if((2==(S=a(u,r)).length||3==S.length)&&"06"==u.substr(S[0],2)&&"04"==u.substr(S[S.length-1],2)){p=i.oidname(o(u,S[0]));var m=JSON.parse(JSON.stringify(e));m.x509ExtName=p,y=m}for(var _=0;_31)&&128==(192&r)&&(31&r)==n}catch(t){return!1}},ft.isASN1HEX=function(t){var e=ft;if(t.length%2==1)return!1;var r=e.getVblen(t,0),n=t.substr(0,2),i=e.getL(t,0);return t.length-n.length-i.length==2*r},ft.checkStrictDER=function(t,e,r,n,i){var o=ft;if(void 0===r){if("string"!=typeof t)throw new Error("not hex string");if(t=t.toLowerCase(),!ct.lang.String.isHex(t))throw new Error("not hex string");r=t.length,i=(n=t.length/2)<128?1:Math.ceil(n.toString(16))+1}if(o.getL(t,e).length>2*i)throw new Error("L of TLV too long: idx="+e);var s=o.getVblen(t,e);if(s>n)throw new Error("value of L too long than hex: idx="+e);var a=o.getTLV(t,e),u=a.length-2-o.getL(t,e).length;if(u!==2*s)throw new Error("V string length and L's value not the same:"+u+"/"+2*s);if(0===e&&t.length!=a.length)throw new Error("total length and TLV length unmatch:"+t.length+"!="+a.length);var c=t.substr(e,2);if("02"===c){var h=o.getVidx(t,e);if("00"==t.substr(h,2)&&t.charCodeAt(h+2)<56)throw new Error("not least zeros for DER INTEGER")}if(32&parseInt(c,16)){for(var l=o.getVblen(t,e),f=0,g=o.getChildIdx(t,e),d=0;d=e?t:new Array(e-t.length+1).join(r)+t};void 0!==ct&&ct||(e.KJUR=ct={}),void 0!==ct.crypto&&ct.crypto||(ct.crypto={}),ct.crypto.Util=new function(){this.DIGESTINFOHEAD={sha1:"3021300906052b0e03021a05000414",sha224:"302d300d06096086480165030402040500041c",sha256:"3031300d060960864801650304020105000420",sha384:"3041300d060960864801650304020205000430",sha512:"3051300d060960864801650304020305000440",md2:"3020300c06082a864886f70d020205000410",md5:"3020300c06082a864886f70d020505000410",ripemd160:"3021300906052b2403020105000414"},this.DEFAULTPROVIDER={md5:"cryptojs",sha1:"cryptojs",sha224:"cryptojs",sha256:"cryptojs",sha384:"cryptojs",sha512:"cryptojs",ripemd160:"cryptojs",hmacmd5:"cryptojs",hmacsha1:"cryptojs",hmacsha224:"cryptojs",hmacsha256:"cryptojs",hmacsha384:"cryptojs",hmacsha512:"cryptojs",hmacripemd160:"cryptojs",MD5withRSA:"cryptojs/jsrsa",SHA1withRSA:"cryptojs/jsrsa",SHA224withRSA:"cryptojs/jsrsa",SHA256withRSA:"cryptojs/jsrsa",SHA384withRSA:"cryptojs/jsrsa",SHA512withRSA:"cryptojs/jsrsa",RIPEMD160withRSA:"cryptojs/jsrsa",MD5withECDSA:"cryptojs/jsrsa",SHA1withECDSA:"cryptojs/jsrsa",SHA224withECDSA:"cryptojs/jsrsa",SHA256withECDSA:"cryptojs/jsrsa",SHA384withECDSA:"cryptojs/jsrsa",SHA512withECDSA:"cryptojs/jsrsa",RIPEMD160withECDSA:"cryptojs/jsrsa",SHA1withDSA:"cryptojs/jsrsa",SHA224withDSA:"cryptojs/jsrsa",SHA256withDSA:"cryptojs/jsrsa",MD5withRSAandMGF1:"cryptojs/jsrsa",SHAwithRSAandMGF1:"cryptojs/jsrsa",SHA1withRSAandMGF1:"cryptojs/jsrsa",SHA224withRSAandMGF1:"cryptojs/jsrsa",SHA256withRSAandMGF1:"cryptojs/jsrsa",SHA384withRSAandMGF1:"cryptojs/jsrsa",SHA512withRSAandMGF1:"cryptojs/jsrsa",RIPEMD160withRSAandMGF1:"cryptojs/jsrsa"},this.CRYPTOJSMESSAGEDIGESTNAME={md5:y.algo.MD5,sha1:y.algo.SHA1,sha224:y.algo.SHA224,sha256:y.algo.SHA256,sha384:y.algo.SHA384,sha512:y.algo.SHA512,ripemd160:y.algo.RIPEMD160},this.getDigestInfoHex=function(t,e){if(void 0===this.DIGESTINFOHEAD[e])throw"alg not supported in Util.DIGESTINFOHEAD: "+e;return this.DIGESTINFOHEAD[e]+t},this.getPaddedDigestInfoHex=function(t,e,r){var n=this.getDigestInfoHex(t,e),i=r/4;if(n.length+22>i)throw"key is too short for SigAlg: keylen="+r+","+e;for(var o="0001",s="00"+n,a="",u=i-o.length-s.length,c=0;c=0)return!1;if(r.compareTo(n.ONE)<0||r.compareTo(o)>=0)return!1;var a=r.modInverse(o),u=t.multiply(a).mod(o),c=e.multiply(a).mod(o);return s.multiply(u).add(i.multiply(c)).getX().toBigInteger().mod(o).equals(e)},this.serializeSig=function(t,e){var r=t.toByteArraySigned(),n=e.toByteArraySigned(),i=[];return i.push(2),i.push(r.length),(i=i.concat(r)).push(2),i.push(n.length),(i=i.concat(n)).unshift(i.length),i.unshift(48),i},this.parseSig=function(t){var e;if(48!=t[0])throw new Error("Signature not a valid DERSequence");if(2!=t[e=2])throw new Error("First element in signature must be a DERInteger");var r=t.slice(e+2,e+2+t[e+1]);if(2!=t[e+=2+t[e+1]])throw new Error("Second element in signature must be a DERInteger");var i=t.slice(e+2,e+2+t[e+1]);return e+=2+t[e+1],{r:n.fromByteArrayUnsigned(r),s:n.fromByteArrayUnsigned(i)}},this.parseSigCompact=function(t){if(65!==t.length)throw"Signature has the wrong length";var e=t[0]-27;if(e<0||e>7)throw"Invalid signature type";var r=this.ecparams.n;return{r:n.fromByteArrayUnsigned(t.slice(1,33)).mod(r),s:n.fromByteArrayUnsigned(t.slice(33,65)).mod(r),i:e}},this.readPKCS5PrvKeyHex=function(t){if(!1===h(t))throw new Error("not ASN.1 hex string");var e,r,n;try{e=c(t,0,["[0]",0],"06"),r=c(t,0,[1],"04");try{n=c(t,0,["[1]",0],"03")}catch(t){}}catch(t){throw new Error("malformed PKCS#1/5 plain ECC private key")}if(this.curveName=a(e),void 0===this.curveName)throw"unsupported curve name";this.setNamedCurve(this.curveName),this.setPublicKeyHex(n),this.setPrivateKeyHex(r),this.isPublic=!1},this.readPKCS8PrvKeyHex=function(t){if(!1===h(t))throw new e("not ASN.1 hex string");var r,n,i;try{c(t,0,[1,0],"06"),r=c(t,0,[1,1],"06"),n=c(t,0,[2,0,1],"04");try{i=c(t,0,[2,0,"[1]",0],"03")}catch(t){}}catch(t){throw new e("malformed PKCS#8 plain ECC private key")}if(this.curveName=a(r),void 0===this.curveName)throw new e("unsupported curve name");this.setNamedCurve(this.curveName),this.setPublicKeyHex(i),this.setPrivateKeyHex(n),this.isPublic=!1},this.readPKCS8PubKeyHex=function(t){if(!1===h(t))throw new e("not ASN.1 hex string");var r,n;try{c(t,0,[0,0],"06"),r=c(t,0,[0,1],"06"),n=c(t,0,[1],"03")}catch(t){throw new e("malformed PKCS#8 ECC public key")}if(this.curveName=a(r),null===this.curveName)throw new e("unsupported curve name");this.setNamedCurve(this.curveName),this.setPublicKeyHex(n)},this.readCertPubKeyHex=function(t,r){if(!1===h(t))throw new e("not ASN.1 hex string");var n,i;try{n=c(t,0,[0,5,0,1],"06"),i=c(t,0,[0,5,1],"03")}catch(t){throw new e("malformed X.509 certificate ECC public key")}if(this.curveName=a(n),null===this.curveName)throw new e("unsupported curve name");this.setNamedCurve(this.curveName),this.setPublicKeyHex(i)},void 0!==t&&void 0!==t.curve&&(this.curveName=t.curve),void 0===this.curveName&&(this.curveName="secp256r1"),this.setNamedCurve(this.curveName),void 0!==t&&(void 0!==t.prv&&this.setPrivateKeyHex(t.prv),void 0!==t.pub&&this.setPublicKeyHex(t.pub))},ct.crypto.ECDSA.parseSigHex=function(t){var e=ct.crypto.ECDSA.parseSigHexInHexRS(t);return{r:new F(e.r,16),s:new F(e.s,16)}},ct.crypto.ECDSA.parseSigHexInHexRS=function(t){var e=ft,r=e.getChildIdx,n=e.getV;if(e.checkStrictDER(t,0),"30"!=t.substr(0,2))throw new Error("signature is not a ASN.1 sequence");var i=r(t,0);if(2!=i.length)throw new Error("signature shall have two elements");var o=i[0],s=i[1];if("02"!=t.substr(o,2))throw new Error("1st item not ASN.1 integer");if("02"!=t.substr(s,2))throw new Error("2nd item not ASN.1 integer");return{r:n(t,o),s:n(t,s)}},ct.crypto.ECDSA.asn1SigToConcatSig=function(t){var e=ct.crypto.ECDSA.parseSigHexInHexRS(t),r=e.r,n=e.s;if("00"==r.substr(0,2)&&r.length%32==2&&(r=r.substr(2)),"00"==n.substr(0,2)&&n.length%32==2&&(n=n.substr(2)),r.length%32==30&&(r="00"+r),n.length%32==30&&(n="00"+n),r.length%32!=0)throw"unknown ECDSA sig r length error";if(n.length%32!=0)throw"unknown ECDSA sig s length error";return r+n},ct.crypto.ECDSA.concatSigToASN1Sig=function(t){if(t.length/2*8%128!=0)throw"unknown ECDSA concatinated r-s sig length error";var e=t.substr(0,t.length/2),r=t.substr(t.length/2);return ct.crypto.ECDSA.hexRSSigToASN1Sig(e,r)},ct.crypto.ECDSA.hexRSSigToASN1Sig=function(t,e){var r=new F(t,16),n=new F(e,16);return ct.crypto.ECDSA.biRSSigToASN1Sig(r,n)},ct.crypto.ECDSA.biRSSigToASN1Sig=function(t,e){var r=ct.asn1,n=new r.DERInteger({bigint:t}),i=new r.DERInteger({bigint:e});return new r.DERSequence({array:[n,i]}).getEncodedHex()},ct.crypto.ECDSA.getName=function(t){return"2b8104001f"===t?"secp192k1":"2a8648ce3d030107"===t?"secp256r1":"2b8104000a"===t?"secp256k1":"2b81040021"===t?"secp224r1":"2b81040022"===t?"secp384r1":-1!=="|secp256r1|NIST P-256|P-256|prime256v1|".indexOf(t)?"secp256r1":-1!=="|secp256k1|".indexOf(t)?"secp256k1":-1!=="|secp224r1|NIST P-224|P-224|".indexOf(t)?"secp224r1":-1!=="|secp384r1|NIST P-384|P-384|".indexOf(t)?"secp384r1":null},void 0!==ct&&ct||(e.KJUR=ct={}),void 0!==ct.crypto&&ct.crypto||(ct.crypto={}),ct.crypto.ECParameterDB=new function(){var t={},e={};function r(t){return new F(t,16)}this.getByName=function(r){var n=r;if(void 0!==e[n]&&(n=e[r]),void 0!==t[n])return t[n];throw"unregistered EC curve name: "+n},this.regist=function(n,i,o,s,a,u,c,h,l,f,g,d){t[n]={};var p=r(o),v=r(s),y=r(a),m=r(u),_=r(c),S=new at(p,v,y),w=S.decodePointHex("04"+h+l);t[n].name=n,t[n].keylen=i,t[n].curve=S,t[n].G=w,t[n].n=m,t[n].h=_,t[n].oid=g,t[n].info=d;for(var b=0;b=2*a)break}var l={};return l.keyhex=u.substr(0,2*i[t].keylen),l.ivhex=u.substr(2*i[t].keylen,2*i[t].ivlen),l},a=function(t,e,r,n){var o=y.enc.Base64.parse(t),s=y.enc.Hex.stringify(o);return(0,i[e].proc)(s,r,n)};return{version:"1.0.0",parsePKCS5PEM:function(t){return o(t)},getKeyAndUnusedIvByPasscodeAndIvsalt:function(t,e,r){return s(t,e,r)},decryptKeyB64:function(t,e,r,n){return a(t,e,r,n)},getDecryptedKeyHex:function(t,e){var r=o(t),n=(r.type,r.cipher),i=r.ivsalt,u=r.data,c=s(n,e,i).keyhex;return a(u,n,c,i)},getEncryptedPKCS5PEMFromPrvKeyHex:function(t,e,r,n,o){var a="";if(void 0!==n&&null!=n||(n="AES-256-CBC"),void 0===i[n])throw"KEYUTIL unsupported algorithm: "+n;void 0!==o&&null!=o||(o=function(t){var e=y.lib.WordArray.random(t);return y.enc.Hex.stringify(e)}(i[n].ivlen).toUpperCase());var u=function(t,e,r,n){return(0,i[e].eproc)(t,r,n)}(e,n,s(n,r,o).keyhex,o);return a="-----BEGIN "+t+" PRIVATE KEY-----\r\n",a+="Proc-Type: 4,ENCRYPTED\r\n",a+="DEK-Info: "+n+","+o+"\r\n",a+="\r\n",(a+=u.replace(/(.{64})/g,"$1\r\n"))+"\r\n-----END "+t+" PRIVATE KEY-----\r\n"},parseHexOfEncryptedPKCS8:function(t){var e=ft,r=e.getChildIdx,n=e.getV,i={},o=r(t,0);if(2!=o.length)throw"malformed format: SEQUENCE(0).items != 2: "+o.length;i.ciphertext=n(t,o[1]);var s=r(t,o[0]);if(2!=s.length)throw"malformed format: SEQUENCE(0.0).items != 2: "+s.length;if("2a864886f70d01050d"!=n(t,s[0]))throw"this only supports pkcs5PBES2";var a=r(t,s[1]);if(2!=s.length)throw"malformed format: SEQUENCE(0.0.1).items != 2: "+a.length;var u=r(t,a[1]);if(2!=u.length)throw"malformed format: SEQUENCE(0.0.1.1).items != 2: "+u.length;if("2a864886f70d0307"!=n(t,u[0]))throw"this only supports TripleDES";i.encryptionSchemeAlg="TripleDES",i.encryptionSchemeIV=n(t,u[1]);var c=r(t,a[0]);if(2!=c.length)throw"malformed format: SEQUENCE(0.0.1.0).items != 2: "+c.length;if("2a864886f70d01050c"!=n(t,c[0]))throw"this only supports pkcs5PBKDF2";var h=r(t,c[1]);if(h.length<2)throw"malformed format: SEQUENCE(0.0.1.0.1).items < 2: "+h.length;i.pbkdf2Salt=n(t,h[0]);var l=n(t,h[1]);try{i.pbkdf2Iter=parseInt(l,16)}catch(t){throw"malformed format pbkdf2Iter: "+l}return i},getPBKDF2KeyHexFromParam:function(t,e){var r=y.enc.Hex.parse(t.pbkdf2Salt),n=t.pbkdf2Iter,i=y.PBKDF2(e,r,{keySize:6,iterations:n});return y.enc.Hex.stringify(i)},_getPlainPKCS8HexFromEncryptedPKCS8PEM:function(t,e){var r=Ct(t,"ENCRYPTED PRIVATE KEY"),n=this.parseHexOfEncryptedPKCS8(r),i=Ht.getPBKDF2KeyHexFromParam(n,e),o={};o.ciphertext=y.enc.Hex.parse(n.ciphertext);var s=y.enc.Hex.parse(i),a=y.enc.Hex.parse(n.encryptionSchemeIV),u=y.TripleDES.decrypt(o,s,{iv:a});return y.enc.Hex.stringify(u)},getKeyFromEncryptedPKCS8PEM:function(t,e){var r=this._getPlainPKCS8HexFromEncryptedPKCS8PEM(t,e);return this.getKeyFromPlainPrivatePKCS8Hex(r)},parsePlainPrivatePKCS8Hex:function(t){var e=ft,r=e.getChildIdx,n=e.getV,i={algparam:null};if("30"!=t.substr(0,2))throw"malformed plain PKCS8 private key(code:001)";var o=r(t,0);if(3!=o.length)throw"malformed plain PKCS8 private key(code:002)";if("30"!=t.substr(o[1],2))throw"malformed PKCS8 private key(code:003)";var s=r(t,o[1]);if(2!=s.length)throw"malformed PKCS8 private key(code:004)";if("06"!=t.substr(s[0],2))throw"malformed PKCS8 private key(code:005)";if(i.algoid=n(t,s[0]),"06"==t.substr(s[1],2)&&(i.algparam=n(t,s[1])),"04"!=t.substr(o[2],2))throw"malformed PKCS8 private key(code:006)";return i.keyidx=e.getVidx(t,o[2]),i},getKeyFromPlainPrivatePKCS8PEM:function(t){var e=Ct(t,"PRIVATE KEY");return this.getKeyFromPlainPrivatePKCS8Hex(e)},getKeyFromPlainPrivatePKCS8Hex:function(t){var e,r=this.parsePlainPrivatePKCS8Hex(t);if("2a864886f70d010101"==r.algoid)e=new it;else if("2a8648ce380401"==r.algoid)e=new ct.crypto.DSA;else{if("2a8648ce3d0201"!=r.algoid)throw"unsupported private key algorithm";e=new ct.crypto.ECDSA}return e.readPKCS8PrvKeyHex(t),e},_getKeyFromPublicPKCS8Hex:function(t){var e,r=ft.getVbyList(t,0,[0,0],"06");if("2a864886f70d010101"===r)e=new it;else if("2a8648ce380401"===r)e=new ct.crypto.DSA;else{if("2a8648ce3d0201"!==r)throw"unsupported PKCS#8 public key hex";e=new ct.crypto.ECDSA}return e.readPKCS8PubKeyHex(t),e},parsePublicRawRSAKeyHex:function(t){var e=ft,r=e.getChildIdx,n=e.getV,i={};if("30"!=t.substr(0,2))throw"malformed RSA key(code:001)";var o=r(t,0);if(2!=o.length)throw"malformed RSA key(code:002)";if("02"!=t.substr(o[0],2))throw"malformed RSA key(code:003)";if(i.n=n(t,o[0]),"02"!=t.substr(o[1],2))throw"malformed RSA key(code:004)";return i.e=n(t,o[1]),i},parsePublicPKCS8Hex:function(t){var e=ft,r=e.getChildIdx,n=e.getV,i={algparam:null},o=r(t,0);if(2!=o.length)throw"outer DERSequence shall have 2 elements: "+o.length;var s=o[0];if("30"!=t.substr(s,2))throw"malformed PKCS8 public key(code:001)";var a=r(t,s);if(2!=a.length)throw"malformed PKCS8 public key(code:002)";if("06"!=t.substr(a[0],2))throw"malformed PKCS8 public key(code:003)";if(i.algoid=n(t,a[0]),"06"==t.substr(a[1],2)?i.algparam=n(t,a[1]):"30"==t.substr(a[1],2)&&(i.algparam={},i.algparam.p=e.getVbyList(t,a[1],[0],"02"),i.algparam.q=e.getVbyList(t,a[1],[1],"02"),i.algparam.g=e.getVbyList(t,a[1],[2],"02")),"03"!=t.substr(o[1],2))throw"malformed PKCS8 public key(code:004)";return i.key=n(t,o[1]).substr(2),i}}}();Ht.getKey=function(t,e,r){var n,i=(y=ft).getChildIdx,o=(y.getV,y.getVbyList),s=ct.crypto,a=s.ECDSA,u=s.DSA,c=it,h=Ct,l=Ht;if(void 0!==c&&t instanceof c)return t;if(void 0!==a&&t instanceof a)return t;if(void 0!==u&&t instanceof u)return t;if(void 0!==t.curve&&void 0!==t.xy&&void 0===t.d)return new a({pub:t.xy,curve:t.curve});if(void 0!==t.curve&&void 0!==t.d)return new a({prv:t.d,curve:t.curve});if(void 0===t.kty&&void 0!==t.n&&void 0!==t.e&&void 0===t.d)return(C=new c).setPublic(t.n,t.e),C;if(void 0===t.kty&&void 0!==t.n&&void 0!==t.e&&void 0!==t.d&&void 0!==t.p&&void 0!==t.q&&void 0!==t.dp&&void 0!==t.dq&&void 0!==t.co&&void 0===t.qi)return(C=new c).setPrivateEx(t.n,t.e,t.d,t.p,t.q,t.dp,t.dq,t.co),C;if(void 0===t.kty&&void 0!==t.n&&void 0!==t.e&&void 0!==t.d&&void 0===t.p)return(C=new c).setPrivate(t.n,t.e,t.d),C;if(void 0!==t.p&&void 0!==t.q&&void 0!==t.g&&void 0!==t.y&&void 0===t.x)return(C=new u).setPublic(t.p,t.q,t.g,t.y),C;if(void 0!==t.p&&void 0!==t.q&&void 0!==t.g&&void 0!==t.y&&void 0!==t.x)return(C=new u).setPrivate(t.p,t.q,t.g,t.y,t.x),C;if("RSA"===t.kty&&void 0!==t.n&&void 0!==t.e&&void 0===t.d)return(C=new c).setPublic(St(t.n),St(t.e)),C;if("RSA"===t.kty&&void 0!==t.n&&void 0!==t.e&&void 0!==t.d&&void 0!==t.p&&void 0!==t.q&&void 0!==t.dp&&void 0!==t.dq&&void 0!==t.qi)return(C=new c).setPrivateEx(St(t.n),St(t.e),St(t.d),St(t.p),St(t.q),St(t.dp),St(t.dq),St(t.qi)),C;if("RSA"===t.kty&&void 0!==t.n&&void 0!==t.e&&void 0!==t.d)return(C=new c).setPrivate(St(t.n),St(t.e),St(t.d)),C;if("EC"===t.kty&&void 0!==t.crv&&void 0!==t.x&&void 0!==t.y&&void 0===t.d){var f=(P=new a({curve:t.crv})).ecparams.keylen/4,g="04"+("0000000000"+St(t.x)).slice(-f)+("0000000000"+St(t.y)).slice(-f);return P.setPublicKeyHex(g),P}if("EC"===t.kty&&void 0!==t.crv&&void 0!==t.x&&void 0!==t.y&&void 0!==t.d){f=(P=new a({curve:t.crv})).ecparams.keylen/4,g="04"+("0000000000"+St(t.x)).slice(-f)+("0000000000"+St(t.y)).slice(-f);var d=("0000000000"+St(t.d)).slice(-f);return P.setPublicKeyHex(g),P.setPrivateKeyHex(d),P}if("pkcs5prv"===r){var p,v=t,y=ft;if(9===(p=i(v,0)).length)(C=new c).readPKCS5PrvKeyHex(v);else if(6===p.length)(C=new u).readPKCS5PrvKeyHex(v);else{if(!(p.length>2&&"04"===v.substr(p[1],2)))throw"unsupported PKCS#1/5 hexadecimal key";(C=new a).readPKCS5PrvKeyHex(v)}return C}if("pkcs8prv"===r)return l.getKeyFromPlainPrivatePKCS8Hex(t);if("pkcs8pub"===r)return l._getKeyFromPublicPKCS8Hex(t);if("x509pub"===r)return Wt.getPublicKeyFromCertHex(t);if(-1!=t.indexOf("-END CERTIFICATE-",0)||-1!=t.indexOf("-END X509 CERTIFICATE-",0)||-1!=t.indexOf("-END TRUSTED CERTIFICATE-",0))return Wt.getPublicKeyFromCertPEM(t);if(-1!=t.indexOf("-END PUBLIC KEY-")){var m=Ct(t,"PUBLIC KEY");return l._getKeyFromPublicPKCS8Hex(m)}if(-1!=t.indexOf("-END RSA PRIVATE KEY-")&&-1==t.indexOf("4,ENCRYPTED")){var _=h(t,"RSA PRIVATE KEY");return l.getKey(_,null,"pkcs5prv")}if(-1!=t.indexOf("-END DSA PRIVATE KEY-")&&-1==t.indexOf("4,ENCRYPTED")){var S=o(n=h(t,"DSA PRIVATE KEY"),0,[1],"02"),w=o(n,0,[2],"02"),b=o(n,0,[3],"02"),E=o(n,0,[4],"02"),x=o(n,0,[5],"02");return(C=new u).setPrivate(new F(S,16),new F(w,16),new F(b,16),new F(E,16),new F(x,16)),C}if(-1!=t.indexOf("-END EC PRIVATE KEY-")&&-1==t.indexOf("4,ENCRYPTED"))return _=h(t,"EC PRIVATE KEY"),l.getKey(_,null,"pkcs5prv");if(-1!=t.indexOf("-END PRIVATE KEY-"))return l.getKeyFromPlainPrivatePKCS8PEM(t);if(-1!=t.indexOf("-END RSA PRIVATE KEY-")&&-1!=t.indexOf("4,ENCRYPTED")){var A=l.getDecryptedKeyHex(t,e),k=new it;return k.readPKCS5PrvKeyHex(A),k}if(-1!=t.indexOf("-END EC PRIVATE KEY-")&&-1!=t.indexOf("4,ENCRYPTED")){var P,C=o(n=l.getDecryptedKeyHex(t,e),0,[1],"04"),T=o(n,0,[2,0],"06"),R=o(n,0,[3,0],"03").substr(2);if(void 0===ct.crypto.OID.oidhex2name[T])throw"undefined OID(hex) in KJUR.crypto.OID: "+T;return(P=new a({curve:ct.crypto.OID.oidhex2name[T]})).setPublicKeyHex(R),P.setPrivateKeyHex(C),P.isPublic=!1,P}if(-1!=t.indexOf("-END DSA PRIVATE KEY-")&&-1!=t.indexOf("4,ENCRYPTED"))return S=o(n=l.getDecryptedKeyHex(t,e),0,[1],"02"),w=o(n,0,[2],"02"),b=o(n,0,[3],"02"),E=o(n,0,[4],"02"),x=o(n,0,[5],"02"),(C=new u).setPrivate(new F(S,16),new F(w,16),new F(b,16),new F(E,16),new F(x,16)),C;if(-1!=t.indexOf("-END ENCRYPTED PRIVATE KEY-"))return l.getKeyFromEncryptedPKCS8PEM(t,e);throw new Error("not supported argument")},Ht.generateKeypair=function(t,e){if("RSA"==t){var r=e;(s=new it).generate(r,"10001"),s.isPrivate=!0,s.isPublic=!0;var n=new it,i=s.n.toString(16),o=s.e.toString(16);return n.setPublic(i,o),n.isPrivate=!1,n.isPublic=!0,(a={}).prvKeyObj=s,a.pubKeyObj=n,a}if("EC"==t){var s,a,u=e,c=new ct.crypto.ECDSA({curve:u}).generateKeyPairHex();return(s=new ct.crypto.ECDSA({curve:u})).setPublicKeyHex(c.ecpubhex),s.setPrivateKeyHex(c.ecprvhex),s.isPrivate=!0,s.isPublic=!1,(n=new ct.crypto.ECDSA({curve:u})).setPublicKeyHex(c.ecpubhex),n.isPrivate=!1,n.isPublic=!0,(a={}).prvKeyObj=s,a.pubKeyObj=n,a}throw"unknown algorithm: "+t},Ht.getPEM=function(t,e,r,n,i,o){var s=ct,a=s.asn1,u=a.DERObjectIdentifier,c=a.DERInteger,h=a.ASN1Util.newObject,l=a.x509.SubjectPublicKeyInfo,f=s.crypto,g=f.DSA,d=f.ECDSA,p=it;function v(t){return h({seq:[{int:0},{int:{bigint:t.n}},{int:t.e},{int:{bigint:t.d}},{int:{bigint:t.p}},{int:{bigint:t.q}},{int:{bigint:t.dmp1}},{int:{bigint:t.dmq1}},{int:{bigint:t.coeff}}]})}function m(t){return h({seq:[{int:1},{octstr:{hex:t.prvKeyHex}},{tag:["a0",!0,{oid:{name:t.curveName}}]},{tag:["a1",!0,{bitstr:{hex:"00"+t.pubKeyHex}}]}]})}function _(t){return h({seq:[{int:0},{int:{bigint:t.p}},{int:{bigint:t.q}},{int:{bigint:t.g}},{int:{bigint:t.y}},{int:{bigint:t.x}}]})}if((void 0!==p&&t instanceof p||void 0!==g&&t instanceof g||void 0!==d&&t instanceof d)&&1==t.isPublic&&(void 0===e||"PKCS8PUB"==e))return Pt(F=new l(t).getEncodedHex(),"PUBLIC KEY");if("PKCS1PRV"==e&&void 0!==p&&t instanceof p&&(void 0===r||null==r)&&1==t.isPrivate)return Pt(F=v(t).getEncodedHex(),"RSA PRIVATE KEY");if("PKCS1PRV"==e&&void 0!==d&&t instanceof d&&(void 0===r||null==r)&&1==t.isPrivate){var S=new u({name:t.curveName}).getEncodedHex(),w=m(t).getEncodedHex(),b="";return(b+=Pt(S,"EC PARAMETERS"))+Pt(w,"EC PRIVATE KEY")}if("PKCS1PRV"==e&&void 0!==g&&t instanceof g&&(void 0===r||null==r)&&1==t.isPrivate)return Pt(F=_(t).getEncodedHex(),"DSA PRIVATE KEY");if("PKCS5PRV"==e&&void 0!==p&&t instanceof p&&void 0!==r&&null!=r&&1==t.isPrivate){var F=v(t).getEncodedHex();return void 0===n&&(n="DES-EDE3-CBC"),this.getEncryptedPKCS5PEMFromPrvKeyHex("RSA",F,r,n,o)}if("PKCS5PRV"==e&&void 0!==d&&t instanceof d&&void 0!==r&&null!=r&&1==t.isPrivate)return F=m(t).getEncodedHex(),void 0===n&&(n="DES-EDE3-CBC"),this.getEncryptedPKCS5PEMFromPrvKeyHex("EC",F,r,n,o);if("PKCS5PRV"==e&&void 0!==g&&t instanceof g&&void 0!==r&&null!=r&&1==t.isPrivate)return F=_(t).getEncodedHex(),void 0===n&&(n="DES-EDE3-CBC"),this.getEncryptedPKCS5PEMFromPrvKeyHex("DSA",F,r,n,o);var E=function(t,e){var r=x(t,e);return new h({seq:[{seq:[{oid:{name:"pkcs5PBES2"}},{seq:[{seq:[{oid:{name:"pkcs5PBKDF2"}},{seq:[{octstr:{hex:r.pbkdf2Salt}},{int:r.pbkdf2Iter}]}]},{seq:[{oid:{name:"des-EDE3-CBC"}},{octstr:{hex:r.encryptionSchemeIV}}]}]}]},{octstr:{hex:r.ciphertext}}]}).getEncodedHex()},x=function(t,e){var r=y.lib.WordArray.random(8),n=y.lib.WordArray.random(8),i=y.PBKDF2(e,r,{keySize:6,iterations:100}),o=y.enc.Hex.parse(t),s=y.TripleDES.encrypt(o,i,{iv:n})+"",a={};return a.ciphertext=s,a.pbkdf2Salt=y.enc.Hex.stringify(r),a.pbkdf2Iter=100,a.encryptionSchemeAlg="DES-EDE3-CBC",a.encryptionSchemeIV=y.enc.Hex.stringify(n),a};if("PKCS8PRV"==e&&null!=p&&t instanceof p&&1==t.isPrivate){var A=v(t).getEncodedHex();return F=h({seq:[{int:0},{seq:[{oid:{name:"rsaEncryption"}},{null:!0}]},{octstr:{hex:A}}]}).getEncodedHex(),void 0===r||null==r?Pt(F,"PRIVATE KEY"):Pt(w=E(F,r),"ENCRYPTED PRIVATE KEY")}if("PKCS8PRV"==e&&void 0!==d&&t instanceof d&&1==t.isPrivate)return A=new h({seq:[{int:1},{octstr:{hex:t.prvKeyHex}},{tag:["a1",!0,{bitstr:{hex:"00"+t.pubKeyHex}}]}]}).getEncodedHex(),F=h({seq:[{int:0},{seq:[{oid:{name:"ecPublicKey"}},{oid:{name:t.curveName}}]},{octstr:{hex:A}}]}).getEncodedHex(),void 0===r||null==r?Pt(F,"PRIVATE KEY"):Pt(w=E(F,r),"ENCRYPTED PRIVATE KEY");if("PKCS8PRV"==e&&void 0!==g&&t instanceof g&&1==t.isPrivate)return A=new c({bigint:t.x}).getEncodedHex(),F=h({seq:[{int:0},{seq:[{oid:{name:"dsa"}},{seq:[{int:{bigint:t.p}},{int:{bigint:t.q}},{int:{bigint:t.g}}]}]},{octstr:{hex:A}}]}).getEncodedHex(),void 0===r||null==r?Pt(F,"PRIVATE KEY"):Pt(w=E(F,r),"ENCRYPTED PRIVATE KEY");throw new Error("unsupported object nor format")},Ht.getKeyFromCSRPEM=function(t){var e=Ct(t,"CERTIFICATE REQUEST");return Ht.getKeyFromCSRHex(e)},Ht.getKeyFromCSRHex=function(t){var e=Ht.parseCSRHex(t);return Ht.getKey(e.p8pubkeyhex,null,"pkcs8pub")},Ht.parseCSRHex=function(t){var e=ft,r=e.getChildIdx,n=e.getTLV,i={},o=t;if("30"!=o.substr(0,2))throw"malformed CSR(code:001)";var s=r(o,0);if(s.length<1)throw"malformed CSR(code:002)";if("30"!=o.substr(s[0],2))throw"malformed CSR(code:003)";var a=r(o,s[0]);if(a.length<3)throw"malformed CSR(code:004)";return i.p8pubkeyhex=n(o,a[2]),i},Ht.getKeyID=function(t){var e=Ht,r=ft;"string"==typeof t&&-1!=t.indexOf("BEGIN ")&&(t=e.getKey(t));var n=Ct(e.getPEM(t)),i=r.getIdxbyList(n,0,[1]),o=r.getV(n,i).substring(2);return ct.crypto.Util.hashHex(o,"sha1")},Ht.getJWKFromKey=function(t){var e={};if(t instanceof it&&t.isPrivate)return e.kty="RSA",e.n=_t(t.n.toString(16)),e.e=_t(t.e.toString(16)),e.d=_t(t.d.toString(16)),e.p=_t(t.p.toString(16)),e.q=_t(t.q.toString(16)),e.dp=_t(t.dmp1.toString(16)),e.dq=_t(t.dmq1.toString(16)),e.qi=_t(t.coeff.toString(16)),e;if(t instanceof it&&t.isPublic)return e.kty="RSA",e.n=_t(t.n.toString(16)),e.e=_t(t.e.toString(16)),e;if(t instanceof ct.crypto.ECDSA&&t.isPrivate){if("P-256"!==(n=t.getShortNISTPCurveName())&&"P-384"!==n)throw"unsupported curve name for JWT: "+n;var r=t.getPublicKeyXYHex();return e.kty="EC",e.crv=n,e.x=_t(r.x),e.y=_t(r.y),e.d=_t(t.prvKeyHex),e}if(t instanceof ct.crypto.ECDSA&&t.isPublic){var n;if("P-256"!==(n=t.getShortNISTPCurveName())&&"P-384"!==n)throw"unsupported curve name for JWT: "+n;return r=t.getPublicKeyXYHex(),e.kty="EC",e.crv=n,e.x=_t(r.x),e.y=_t(r.y),e}throw"not supported key object"},it.getPosArrayOfChildrenFromHex=function(t){return ft.getChildIdx(t,0)},it.getHexValueArrayOfChildrenFromHex=function(t){var e,r=ft.getV,n=r(t,(e=it.getPosArrayOfChildrenFromHex(t))[0]),i=r(t,e[1]),o=r(t,e[2]),s=r(t,e[3]),a=r(t,e[4]),u=r(t,e[5]),c=r(t,e[6]),h=r(t,e[7]),l=r(t,e[8]);return(e=new Array).push(n,i,o,s,a,u,c,h,l),e},it.prototype.readPrivateKeyFromPEMString=function(t){var e=Ct(t),r=it.getHexValueArrayOfChildrenFromHex(e);this.setPrivateEx(r[1],r[2],r[3],r[4],r[5],r[6],r[7],r[8])},it.prototype.readPKCS5PrvKeyHex=function(t){var e=it.getHexValueArrayOfChildrenFromHex(t);this.setPrivateEx(e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8])},it.prototype.readPKCS8PrvKeyHex=function(t){var e,r,n,i,o,s,a,u,c=ft,h=c.getVbyListEx;if(!1===c.isASN1HEX(t))throw new Error("not ASN.1 hex string");try{e=h(t,0,[2,0,1],"02"),r=h(t,0,[2,0,2],"02"),n=h(t,0,[2,0,3],"02"),i=h(t,0,[2,0,4],"02"),o=h(t,0,[2,0,5],"02"),s=h(t,0,[2,0,6],"02"),a=h(t,0,[2,0,7],"02"),u=h(t,0,[2,0,8],"02")}catch(t){throw new Error("malformed PKCS#8 plain RSA private key")}this.setPrivateEx(e,r,n,i,o,s,a,u)},it.prototype.readPKCS5PubKeyHex=function(t){var e=ft,r=e.getV;if(!1===e.isASN1HEX(t))throw new Error("keyHex is not ASN.1 hex string");var n=e.getChildIdx(t,0);if(2!==n.length||"02"!==t.substr(n[0],2)||"02"!==t.substr(n[1],2))throw new Error("wrong hex for PKCS#5 public key");var i=r(t,n[0]),o=r(t,n[1]);this.setPublic(i,o)},it.prototype.readPKCS8PubKeyHex=function(t){var e=ft;if(!1===e.isASN1HEX(t))throw new Error("not ASN.1 hex string");if("06092a864886f70d010101"!==e.getTLVbyListEx(t,0,[0,0]))throw new Error("not PKCS8 RSA public key");var r=e.getTLVbyListEx(t,0,[1,0]);this.readPKCS5PubKeyHex(r)},it.prototype.readCertPubKeyHex=function(t,e){var r,n;(r=new Wt).readCertHex(t),n=r.getPublicKeyHex(),this.readPKCS8PubKeyHex(n)};var Kt=new RegExp("[^0-9a-f]","gi");function Vt(t,e){for(var r="",n=e/4-t.length,i=0;i>24,(16711680&i)>>16,(65280&i)>>8,255&i])))),i+=1;return n}function Jt(t){for(var e in ct.crypto.Util.DIGESTINFOHEAD){var r=ct.crypto.Util.DIGESTINFOHEAD[e],n=r.length;if(t.substring(0,n)==r)return[e,t.substring(n)]}return[]}function Wt(t){var e,r=ft,n=r.getChildIdx,i=r.getV,o=r.getTLV,s=r.getVbyList,a=r.getVbyListEx,u=r.getTLVbyList,c=r.getTLVbyListEx,h=r.getIdxbyList,l=r.getIdxbyListEx,f=r.getVidx,g=r.oidname,d=r.hextooidstr,p=Wt,v=Ct;try{e=ct.asn1.x509.AlgorithmIdentifier.PSSNAME2ASN1TLV}catch(t){}this.HEX2STAG={"0c":"utf8",13:"prn",16:"ia5","1a":"vis","1e":"bmp"},this.hex=null,this.version=0,this.foffset=0,this.aExtInfo=null,this.getVersion=function(){return null===this.hex||0!==this.version?this.version:"a003020102"!==u(this.hex,0,[0,0])?(this.version=1,this.foffset=-1,1):(this.version=3,3)},this.getSerialNumberHex=function(){return a(this.hex,0,[0,0],"02")},this.getSignatureAlgorithmField=function(){var t=c(this.hex,0,[0,1]);return this.getAlgorithmIdentifierName(t)},this.getAlgorithmIdentifierName=function(t){for(var r in e)if(t===e[r])return r;return g(a(t,0,[0],"06"))},this.getIssuer=function(){return this.getX500Name(this.getIssuerHex())},this.getIssuerHex=function(){return u(this.hex,0,[0,3+this.foffset],"30")},this.getIssuerString=function(){return p.hex2dn(this.getIssuerHex())},this.getSubject=function(){return this.getX500Name(this.getSubjectHex())},this.getSubjectHex=function(){return u(this.hex,0,[0,5+this.foffset],"30")},this.getSubjectString=function(){return p.hex2dn(this.getSubjectHex())},this.getNotBefore=function(){var t=s(this.hex,0,[0,4+this.foffset,0]);return t=t.replace(/(..)/g,"%$1"),decodeURIComponent(t)},this.getNotAfter=function(){var t=s(this.hex,0,[0,4+this.foffset,1]);return t=t.replace(/(..)/g,"%$1"),decodeURIComponent(t)},this.getPublicKeyHex=function(){return r.getTLVbyList(this.hex,0,[0,6+this.foffset],"30")},this.getPublicKeyIdx=function(){return h(this.hex,0,[0,6+this.foffset],"30")},this.getPublicKeyContentIdx=function(){var t=this.getPublicKeyIdx();return h(this.hex,t,[1,0],"30")},this.getPublicKey=function(){return Ht.getKey(this.getPublicKeyHex(),null,"pkcs8pub")},this.getSignatureAlgorithmName=function(){var t=u(this.hex,0,[1],"30");return this.getAlgorithmIdentifierName(t)},this.getSignatureValueHex=function(){return s(this.hex,0,[2],"03",!0)},this.verifySignature=function(t){var e=this.getSignatureAlgorithmField(),r=this.getSignatureValueHex(),n=u(this.hex,0,[0],"30"),i=new ct.crypto.Signature({alg:e});return i.init(t),i.updateHex(n),i.verify(r)},this.parseExt=function(t){var e,o,a;if(void 0===t){if(a=this.hex,3!==this.version)return-1;e=h(a,0,[0,7,0],"30"),o=n(a,e)}else{a=Ct(t);var u=h(a,0,[0,3,0,0],"06");if("2a864886f70d01090e"!=i(a,u))return void(this.aExtInfo=new Array);e=h(a,0,[0,3,0,1,0],"30"),o=n(a,e),this.hex=a}this.aExtInfo=new Array;for(var c=0;c1){var a=o(t,s[1]),u=this.getGeneralName(a);null!=u.uri&&(i.uri=u.uri)}if(s.length>2){var c=o(t,s[2]);"0101ff"==c&&(i.reqauth=!0),"010100"==c&&(i.reqauth=!1)}return i},this.getX500NameRule=function(t){for(var e=null,r=[],n=0;n0&&(t.ext=this.getExtParamArray()),t.sighex=this.getSignatureValueHex(),t},this.getExtParamArray=function(t){null==t&&-1!=l(this.hex,0,[0,"[3]"])&&(t=c(this.hex,0,[0,"[3]",0],"30"));for(var e=[],r=n(t,0),i=0;i0&&(c=new Array(r),(new et).nextBytes(c),c=String.fromCharCode.apply(String,c));var h=Ft(u(Et("\0\0\0\0\0\0\0\0"+i+c))),l=[];for(n=0;n>8*a-s&255;for(d[0]&=~p,n=0;nthis.n.bitLength())return 0;var n=Jt(this.doPublic(r).toString(16).replace(/^1f+00/,""));if(0==n.length)return!1;var i=n[0];return n[1]==function(t){return ct.crypto.Util.hashString(t,i)}(t)},it.prototype.verifyWithMessageHash=function(t,e){if(e.length!=Math.ceil(this.n.bitLength()/4))return!1;var r=rt(e,16);if(r.bitLength()>this.n.bitLength())return 0;var n=Jt(this.doPublic(r).toString(16).replace(/^1f+00/,""));return 0!=n.length&&(n[0],n[1]==t)},it.prototype.verifyPSS=function(t,e,r,n){var i=function(t){return ct.crypto.Util.hashHex(t,r)}(Et(t));return void 0===n&&(n=-1),this.verifyWithMessageHashPSS(i,e,r,n)},it.prototype.verifyWithMessageHashPSS=function(t,e,r,n){if(e.length!=Math.ceil(this.n.bitLength()/4))return!1;var i,o=new F(e,16),s=function(t){return ct.crypto.Util.hashHex(t,r)},a=Ft(t),u=a.length,c=this.n.bitLength()-1,h=Math.ceil(c/8);if(-1===n||void 0===n)n=u;else if(-2===n)n=h-u-2;else if(n<-2)throw new Error("invalid salt length");if(h>8*h-c&255;if(0!=(f.charCodeAt(0)&d))throw new Error("bits beyond keysize not zero");var p=qt(g,f.length,s),v=[];for(i=0;i0&&-1==(":"+n.join(":")+":").indexOf(":"+y+":"))throw"algorithm '"+y+"' not accepted in the list";if("none"!=y&&null===e)throw"key shall be specified to verify.";if("string"==typeof e&&-1!=e.indexOf("-----BEGIN ")&&(e=Ht.getKey(e)),!("RS"!=g&&"PS"!=g||e instanceof i))throw"key shall be a RSAKey obj for RS* and PS* algs";if("ES"==g&&!(e instanceof c))throw"key shall be a ECDSA obj for ES* algs";var m=null;if(void 0===s.jwsalg2sigalg[v.alg])throw"unsupported alg name: "+y;if("none"==(m=s.jwsalg2sigalg[y]))throw"not supported";if("Hmac"==m.substr(0,4)){if(void 0===e)throw"hexadecimal key shall be specified for HMAC";var _=new h({alg:m,pass:e});return _.updateString(d),p==_.doFinal()}if(-1!=m.indexOf("withECDSA")){var S,w=null;try{w=c.concatSigToASN1Sig(p)}catch(t){return!1}return(S=new l({alg:m})).init(e),S.updateString(d),S.verify(w)}return(S=new l({alg:m})).init(e),S.updateString(d),S.verify(p)},ct.jws.JWS.parse=function(t){var e,r,n,i=t.split("."),o={};if(2!=i.length&&3!=i.length)throw"malformed sJWS: wrong number of '.' splitted elements";return e=i[0],r=i[1],3==i.length&&(n=i[2]),o.headerObj=ct.jws.JWS.readSafeJSONString(lt(e)),o.payloadObj=ct.jws.JWS.readSafeJSONString(lt(r)),o.headerPP=JSON.stringify(o.headerObj,null," "),null==o.payloadObj?o.payloadPP=lt(r):o.payloadPP=JSON.stringify(o.payloadObj,null," "),void 0!==n&&(o.sigHex=St(n)),o},ct.jws.JWS.verifyJWT=function(t,e,n){var i=ct.jws,o=i.JWS,s=o.readSafeJSONString,a=o.inArray,u=o.includedArray,c=t.split("."),h=c[0],l=c[1],f=(St(c[2]),s(lt(h))),g=s(lt(l));if(void 0===f.alg)return!1;if(void 0===n.alg)throw"acceptField.alg shall be specified";if(!a(f.alg,n.alg))return!1;if(void 0!==g.iss&&"object"===r(n.iss)&&!a(g.iss,n.iss))return!1;if(void 0!==g.sub&&"object"===r(n.sub)&&!a(g.sub,n.sub))return!1;if(void 0!==g.aud&&"object"===r(n.aud))if("string"==typeof g.aud){if(!a(g.aud,n.aud))return!1}else if("object"==r(g.aud)&&!u(g.aud,n.aud))return!1;var d=i.IntDate.getNow();return void 0!==n.verifyAt&&"number"==typeof n.verifyAt&&(d=n.verifyAt),void 0!==n.gracePeriod&&"number"==typeof n.gracePeriod||(n.gracePeriod=0),!(void 0!==g.exp&&"number"==typeof g.exp&&g.exp+n.gracePeriode.length&&(r=e.length);for(var n=0;n=s())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+s().toString(16)+" bytes");return 0|t}function d(t,e){if(u.isBuffer(t))return t.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(t)||t instanceof ArrayBuffer))return t.byteLength;"string"!=typeof t&&(t=""+t);var r=t.length;if(0===r)return 0;for(var n=!1;;)switch(e){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":case void 0:return H(t).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return K(t).length;default:if(n)return H(t).length;e=(""+e).toLowerCase(),n=!0}}function p(t,e,r){var n=!1;if((void 0===e||e<0)&&(e=0),e>this.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return"";if((r>>>=0)<=(e>>>=0))return"";for(t||(t="utf8");;)switch(t){case"hex":return T(this,e,r);case"utf8":case"utf-8":return A(this,e,r);case"ascii":return P(this,e,r);case"latin1":case"binary":return C(this,e,r);case"base64":return x(this,e,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return R(this,e,r);default:if(n)throw new TypeError("Unknown encoding: "+t);t=(t+"").toLowerCase(),n=!0}}function v(t,e,r){var n=t[e];t[e]=t[r],t[r]=n}function y(t,e,r,n,i){if(0===t.length)return-1;if("string"==typeof r?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),r=+r,isNaN(r)&&(r=i?0:t.length-1),r<0&&(r=t.length+r),r>=t.length){if(i)return-1;r=t.length-1}else if(r<0){if(!i)return-1;r=0}if("string"==typeof e&&(e=u.from(e,n)),u.isBuffer(e))return 0===e.length?-1:m(t,e,r,n,i);if("number"==typeof e)return e&=255,u.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(t,e,r):Uint8Array.prototype.lastIndexOf.call(t,e,r):m(t,[e],r,n,i);throw new TypeError("val must be string, number or Buffer")}function m(t,e,r,n,i){var o,s=1,a=t.length,u=e.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(t.length<2||e.length<2)return-1;s=2,a/=2,u/=2,r/=2}function c(t,e){return 1===s?t[e]:t.readUInt16BE(e*s)}if(i){var h=-1;for(o=r;oa&&(r=a-u),o=r;o>=0;o--){for(var l=!0,f=0;fi&&(n=i):n=i;var o=e.length;if(o%2!=0)throw new TypeError("Invalid hex string");n>o/2&&(n=o/2);for(var s=0;s>8,i=r%256,o.push(i),o.push(n);return o}(e,t.length-r),t,r,n)}function x(t,e,r){return 0===e&&r===t.length?n.fromByteArray(t):n.fromByteArray(t.slice(e,r))}function A(t,e,r){r=Math.min(t.length,r);for(var n=[],i=e;i239?4:c>223?3:c>191?2:1;if(i+l<=r)switch(l){case 1:c<128&&(h=c);break;case 2:128==(192&(o=t[i+1]))&&(u=(31&c)<<6|63&o)>127&&(h=u);break;case 3:o=t[i+1],s=t[i+2],128==(192&o)&&128==(192&s)&&(u=(15&c)<<12|(63&o)<<6|63&s)>2047&&(u<55296||u>57343)&&(h=u);break;case 4:o=t[i+1],s=t[i+2],a=t[i+3],128==(192&o)&&128==(192&s)&&128==(192&a)&&(u=(15&c)<<18|(63&o)<<12|(63&s)<<6|63&a)>65535&&u<1114112&&(h=u)}null===h?(h=65533,l=1):h>65535&&(h-=65536,n.push(h>>>10&1023|55296),h=56320|1023&h),n.push(h),i+=l}return function(t){var e=t.length;if(e<=k)return String.fromCharCode.apply(String,t);for(var r="",n=0;n0&&(t=this.toString("hex",0,r).match(/.{2}/g).join(" "),this.length>r&&(t+=" ... ")),""},u.prototype.compare=function(t,e,r,n,i){if(!u.isBuffer(t))throw new TypeError("Argument must be a Buffer");if(void 0===e&&(e=0),void 0===r&&(r=t?t.length:0),void 0===n&&(n=0),void 0===i&&(i=this.length),e<0||r>t.length||n<0||i>this.length)throw new RangeError("out of range index");if(n>=i&&e>=r)return 0;if(n>=i)return-1;if(e>=r)return 1;if(this===t)return 0;for(var o=(i>>>=0)-(n>>>=0),s=(r>>>=0)-(e>>>=0),a=Math.min(o,s),c=this.slice(n,i),h=t.slice(e,r),l=0;li)&&(r=i),t.length>0&&(r<0||e<0)||e>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");for(var o=!1;;)switch(n){case"hex":return _(this,t,e,r);case"utf8":case"utf-8":return S(this,t,e,r);case"ascii":return w(this,t,e,r);case"latin1":case"binary":return b(this,t,e,r);case"base64":return F(this,t,e,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return E(this,t,e,r);default:if(o)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),o=!0}},u.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var k=4096;function P(t,e,r){var n="";r=Math.min(t.length,r);for(var i=e;in)&&(r=n);for(var i="",o=e;or)throw new RangeError("Trying to access beyond buffer length")}function D(t,e,r,n,i,o){if(!u.isBuffer(t))throw new TypeError('"buffer" argument must be a Buffer instance');if(e>i||et.length)throw new RangeError("Index out of range")}function L(t,e,r,n){e<0&&(e=65535+e+1);for(var i=0,o=Math.min(t.length-r,2);i>>8*(n?i:1-i)}function N(t,e,r,n){e<0&&(e=4294967295+e+1);for(var i=0,o=Math.min(t.length-r,4);i>>8*(n?i:3-i)&255}function U(t,e,r,n,i,o){if(r+n>t.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function O(t,e,r,n,o){return o||U(t,0,r,4),i.write(t,e,r,n,23,4),r+4}function B(t,e,r,n,o){return o||U(t,0,r,8),i.write(t,e,r,n,52,8),r+8}u.prototype.slice=function(t,e){var r,n=this.length;if((t=~~t)<0?(t+=n)<0&&(t=0):t>n&&(t=n),(e=void 0===e?n:~~e)<0?(e+=n)<0&&(e=0):e>n&&(e=n),e0&&(i*=256);)n+=this[t+--e]*i;return n},u.prototype.readUInt8=function(t,e){return e||I(t,1,this.length),this[t]},u.prototype.readUInt16LE=function(t,e){return e||I(t,2,this.length),this[t]|this[t+1]<<8},u.prototype.readUInt16BE=function(t,e){return e||I(t,2,this.length),this[t]<<8|this[t+1]},u.prototype.readUInt32LE=function(t,e){return e||I(t,4,this.length),(this[t]|this[t+1]<<8|this[t+2]<<16)+16777216*this[t+3]},u.prototype.readUInt32BE=function(t,e){return e||I(t,4,this.length),16777216*this[t]+(this[t+1]<<16|this[t+2]<<8|this[t+3])},u.prototype.readIntLE=function(t,e,r){t|=0,e|=0,r||I(t,e,this.length);for(var n=this[t],i=1,o=0;++o=(i*=128)&&(n-=Math.pow(2,8*e)),n},u.prototype.readIntBE=function(t,e,r){t|=0,e|=0,r||I(t,e,this.length);for(var n=e,i=1,o=this[t+--n];n>0&&(i*=256);)o+=this[t+--n]*i;return o>=(i*=128)&&(o-=Math.pow(2,8*e)),o},u.prototype.readInt8=function(t,e){return e||I(t,1,this.length),128&this[t]?-1*(255-this[t]+1):this[t]},u.prototype.readInt16LE=function(t,e){e||I(t,2,this.length);var r=this[t]|this[t+1]<<8;return 32768&r?4294901760|r:r},u.prototype.readInt16BE=function(t,e){e||I(t,2,this.length);var r=this[t+1]|this[t]<<8;return 32768&r?4294901760|r:r},u.prototype.readInt32LE=function(t,e){return e||I(t,4,this.length),this[t]|this[t+1]<<8|this[t+2]<<16|this[t+3]<<24},u.prototype.readInt32BE=function(t,e){return e||I(t,4,this.length),this[t]<<24|this[t+1]<<16|this[t+2]<<8|this[t+3]},u.prototype.readFloatLE=function(t,e){return e||I(t,4,this.length),i.read(this,t,!0,23,4)},u.prototype.readFloatBE=function(t,e){return e||I(t,4,this.length),i.read(this,t,!1,23,4)},u.prototype.readDoubleLE=function(t,e){return e||I(t,8,this.length),i.read(this,t,!0,52,8)},u.prototype.readDoubleBE=function(t,e){return e||I(t,8,this.length),i.read(this,t,!1,52,8)},u.prototype.writeUIntLE=function(t,e,r,n){t=+t,e|=0,r|=0,n||D(this,t,e,r,Math.pow(2,8*r)-1,0);var i=1,o=0;for(this[e]=255&t;++o=0&&(o*=256);)this[e+i]=t/o&255;return e+r},u.prototype.writeUInt8=function(t,e,r){return t=+t,e|=0,r||D(this,t,e,1,255,0),u.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),this[e]=255&t,e+1},u.prototype.writeUInt16LE=function(t,e,r){return t=+t,e|=0,r||D(this,t,e,2,65535,0),u.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8):L(this,t,e,!0),e+2},u.prototype.writeUInt16BE=function(t,e,r){return t=+t,e|=0,r||D(this,t,e,2,65535,0),u.TYPED_ARRAY_SUPPORT?(this[e]=t>>>8,this[e+1]=255&t):L(this,t,e,!1),e+2},u.prototype.writeUInt32LE=function(t,e,r){return t=+t,e|=0,r||D(this,t,e,4,4294967295,0),u.TYPED_ARRAY_SUPPORT?(this[e+3]=t>>>24,this[e+2]=t>>>16,this[e+1]=t>>>8,this[e]=255&t):N(this,t,e,!0),e+4},u.prototype.writeUInt32BE=function(t,e,r){return t=+t,e|=0,r||D(this,t,e,4,4294967295,0),u.TYPED_ARRAY_SUPPORT?(this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t):N(this,t,e,!1),e+4},u.prototype.writeIntLE=function(t,e,r,n){if(t=+t,e|=0,!n){var i=Math.pow(2,8*r-1);D(this,t,e,r,i-1,-i)}var o=0,s=1,a=0;for(this[e]=255&t;++o>0)-a&255;return e+r},u.prototype.writeIntBE=function(t,e,r,n){if(t=+t,e|=0,!n){var i=Math.pow(2,8*r-1);D(this,t,e,r,i-1,-i)}var o=r-1,s=1,a=0;for(this[e+o]=255&t;--o>=0&&(s*=256);)t<0&&0===a&&0!==this[e+o+1]&&(a=1),this[e+o]=(t/s>>0)-a&255;return e+r},u.prototype.writeInt8=function(t,e,r){return t=+t,e|=0,r||D(this,t,e,1,127,-128),u.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),t<0&&(t=255+t+1),this[e]=255&t,e+1},u.prototype.writeInt16LE=function(t,e,r){return t=+t,e|=0,r||D(this,t,e,2,32767,-32768),u.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8):L(this,t,e,!0),e+2},u.prototype.writeInt16BE=function(t,e,r){return t=+t,e|=0,r||D(this,t,e,2,32767,-32768),u.TYPED_ARRAY_SUPPORT?(this[e]=t>>>8,this[e+1]=255&t):L(this,t,e,!1),e+2},u.prototype.writeInt32LE=function(t,e,r){return t=+t,e|=0,r||D(this,t,e,4,2147483647,-2147483648),u.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8,this[e+2]=t>>>16,this[e+3]=t>>>24):N(this,t,e,!0),e+4},u.prototype.writeInt32BE=function(t,e,r){return t=+t,e|=0,r||D(this,t,e,4,2147483647,-2147483648),t<0&&(t=4294967295+t+1),u.TYPED_ARRAY_SUPPORT?(this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t):N(this,t,e,!1),e+4},u.prototype.writeFloatLE=function(t,e,r){return O(this,t,e,!0,r)},u.prototype.writeFloatBE=function(t,e,r){return O(this,t,e,!1,r)},u.prototype.writeDoubleLE=function(t,e,r){return B(this,t,e,!0,r)},u.prototype.writeDoubleBE=function(t,e,r){return B(this,t,e,!1,r)},u.prototype.copy=function(t,e,r,n){if(r||(r=0),n||0===n||(n=this.length),e>=t.length&&(e=t.length),e||(e=0),n>0&&n=this.length)throw new RangeError("sourceStart out of bounds");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),t.length-e=0;--i)t[i+e]=this[i+r];else if(o<1e3||!u.TYPED_ARRAY_SUPPORT)for(i=0;i>>=0,r=void 0===r?this.length:r>>>0,t||(t=0),"number"==typeof t)for(o=e;o55295&&r<57344){if(!i){if(r>56319){(e-=3)>-1&&o.push(239,191,189);continue}if(s+1===n){(e-=3)>-1&&o.push(239,191,189);continue}i=r;continue}if(r<56320){(e-=3)>-1&&o.push(239,191,189),i=r;continue}r=65536+(i-55296<<10|r-56320)}else i&&(e-=3)>-1&&o.push(239,191,189);if(i=null,r<128){if((e-=1)<0)break;o.push(r)}else if(r<2048){if((e-=2)<0)break;o.push(r>>6|192,63&r|128)}else if(r<65536){if((e-=3)<0)break;o.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error("Invalid code point");if((e-=4)<0)break;o.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return o}function K(t){return n.toByteArray(function(t){if((t=function(t){return t.trim?t.trim():t.replace(/^\s+|\s+$/g,"")}(t).replace(M,"")).length<2)return"";for(;t.length%4!=0;)t+="=";return t}(t))}function V(t,e,r,n){for(var i=0;i=e.length||i>=t.length);++i)e[i+r]=t[i];return i}}).call(this,r(29))},function(t,e){var r;r=function(){return this}();try{r=r||new Function("return this")()}catch(t){"object"==typeof window&&(r=window)}t.exports=r},function(t,e,r){"use strict";e.byteLength=function(t){var e=c(t),r=e[0],n=e[1];return 3*(r+n)/4-n},e.toByteArray=function(t){var e,r,n=c(t),s=n[0],a=n[1],u=new o(function(t,e,r){return 3*(e+r)/4-r}(0,s,a)),h=0,l=a>0?s-4:s;for(r=0;r>16&255,u[h++]=e>>8&255,u[h++]=255&e;return 2===a&&(e=i[t.charCodeAt(r)]<<2|i[t.charCodeAt(r+1)]>>4,u[h++]=255&e),1===a&&(e=i[t.charCodeAt(r)]<<10|i[t.charCodeAt(r+1)]<<4|i[t.charCodeAt(r+2)]>>2,u[h++]=e>>8&255,u[h++]=255&e),u},e.fromByteArray=function(t){for(var e,r=t.length,i=r%3,o=[],s=16383,a=0,u=r-i;au?u:a+s));return 1===i?(e=t[r-1],o.push(n[e>>2]+n[e<<4&63]+"==")):2===i&&(e=(t[r-2]<<8)+t[r-1],o.push(n[e>>10]+n[e>>4&63]+n[e<<2&63]+"=")),o.join("")};for(var n=[],i=[],o="undefined"!=typeof Uint8Array?Uint8Array:Array,s="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",a=0,u=s.length;a0)throw new Error("Invalid string. Length must be a multiple of 4");var r=t.indexOf("=");return-1===r&&(r=e),[r,r===e?0:4-r%4]}function h(t,e,r){for(var i,o,s=[],a=e;a>18&63]+n[o>>12&63]+n[o>>6&63]+n[63&o]);return s.join("")}i["-".charCodeAt(0)]=62,i["_".charCodeAt(0)]=63},function(t,e){e.read=function(t,e,r,n,i){var o,s,a=8*i-n-1,u=(1<>1,h=-7,l=r?i-1:0,f=r?-1:1,g=t[e+l];for(l+=f,o=g&(1<<-h)-1,g>>=-h,h+=a;h>0;o=256*o+t[e+l],l+=f,h-=8);for(s=o&(1<<-h)-1,o>>=-h,h+=n;h>0;s=256*s+t[e+l],l+=f,h-=8);if(0===o)o=1-c;else{if(o===u)return s?NaN:1/0*(g?-1:1);s+=Math.pow(2,n),o-=c}return(g?-1:1)*s*Math.pow(2,o-n)},e.write=function(t,e,r,n,i,o){var s,a,u,c=8*o-i-1,h=(1<>1,f=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,g=n?0:o-1,d=n?1:-1,p=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(a=isNaN(e)?1:0,s=h):(s=Math.floor(Math.log(e)/Math.LN2),e*(u=Math.pow(2,-s))<1&&(s--,u*=2),(e+=s+l>=1?f/u:f*Math.pow(2,1-l))*u>=2&&(s++,u/=2),s+l>=h?(a=0,s=h):s+l>=1?(a=(e*u-1)*Math.pow(2,i),s+=l):(a=e*Math.pow(2,l-1)*Math.pow(2,i),s=0));i>=8;t[r+g]=255&a,g+=d,a/=256,i-=8);for(s=s<0;t[r+g]=255&s,g+=d,s/=256,c-=8);t[r+g-d]|=128*p}},function(t,e){var r={}.toString;t.exports=Array.isArray||function(t){return"[object Array]"==r.call(t)}},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t){var e=t.jws,r=t.KeyUtil,i=t.X509,o=t.crypto,s=t.hextob64u,a=t.b64tohex,u=t.AllowedSigningAlgs;return function(){function t(){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t)}return t.parseJwt=function t(r){n.Log.debug("JoseUtil.parseJwt");try{var i=e.JWS.parse(r);return{header:i.headerObj,payload:i.payloadObj}}catch(t){n.Log.error(t)}},t.validateJwt=function(e,o,s,u,c,h,l){n.Log.debug("JoseUtil.validateJwt");try{if("RSA"===o.kty)if(o.e&&o.n)o=r.getKey(o);else{if(!o.x5c||!o.x5c.length)return n.Log.error("JoseUtil.validateJwt: RSA key missing key material",o),Promise.reject(new Error("RSA key missing key material"));var f=a(o.x5c[0]);o=i.getPublicKeyFromCertHex(f)}else{if("EC"!==o.kty)return n.Log.error("JoseUtil.validateJwt: Unsupported key type",o&&o.kty),Promise.reject(new Error(o.kty));if(!(o.crv&&o.x&&o.y))return n.Log.error("JoseUtil.validateJwt: EC key missing key material",o),Promise.reject(new Error("EC key missing key material"));o=r.getKey(o)}return t._validateJwt(e,o,s,u,c,h,l)}catch(t){return n.Log.error(t&&t.message||t),Promise.reject("JWT validation failed")}},t.validateJwtAttributes=function(e,r,i,o,s,a){o||(o=0),s||(s=parseInt(Date.now()/1e3));var u=t.parseJwt(e).payload;if(!u.iss)return n.Log.error("JoseUtil._validateJwt: issuer was not provided"),Promise.reject(new Error("issuer was not provided"));if(u.iss!==r)return n.Log.error("JoseUtil._validateJwt: Invalid issuer in token",u.iss),Promise.reject(new Error("Invalid issuer in token: "+u.iss));if(!u.aud)return n.Log.error("JoseUtil._validateJwt: aud was not provided"),Promise.reject(new Error("aud was not provided"));if(!(u.aud===i||Array.isArray(u.aud)&&u.aud.indexOf(i)>=0))return n.Log.error("JoseUtil._validateJwt: Invalid audience in token",u.aud),Promise.reject(new Error("Invalid audience in token: "+u.aud));if(u.azp&&u.azp!==i)return n.Log.error("JoseUtil._validateJwt: Invalid azp in token",u.azp),Promise.reject(new Error("Invalid azp in token: "+u.azp));if(!a){var c=s+o,h=s-o;if(!u.iat)return n.Log.error("JoseUtil._validateJwt: iat was not provided"),Promise.reject(new Error("iat was not provided"));if(c1&&void 0!==arguments[1]?arguments[1]:"#";!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t);var n=i.UrlUtility.parseUrlFragment(e,r);this.error=n.error,this.error_description=n.error_description,this.error_uri=n.error_uri,this.code=n.code,this.state=n.state,this.id_token=n.id_token,this.session_state=n.session_state,this.access_token=n.access_token,this.token_type=n.token_type,this.scope=n.scope,this.profile=void 0,this.expires_in=n.expires_in}return n(t,[{key:"expires_in",get:function(){if(this.expires_at){var t=parseInt(Date.now()/1e3);return this.expires_at-t}},set:function(t){var e=parseInt(t);if("number"==typeof e&&e>0){var r=parseInt(Date.now()/1e3);this.expires_at=r+e}}},{key:"expired",get:function(){var t=this.expires_in;if(void 0!==t)return t<=0}},{key:"scopes",get:function(){return(this.scope||"").split(" ")}},{key:"isOpenIdConnect",get:function(){return this.scopes.indexOf("openid")>=0||!!this.id_token}}]),t}()},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.SignoutRequest=void 0;var n=r(0),i=r(3),o=r(9);e.SignoutRequest=function t(e){var r=e.url,s=e.id_token_hint,a=e.post_logout_redirect_uri,u=e.data,c=e.extraQueryParams,h=e.request_type;if(function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),!r)throw n.Log.error("SignoutRequest.ctor: No url passed"),new Error("url");for(var l in s&&(r=i.UrlUtility.addQueryParam(r,"id_token_hint",s)),a&&(r=i.UrlUtility.addQueryParam(r,"post_logout_redirect_uri",a),u&&(this.state=new o.State({data:u,request_type:h}),r=i.UrlUtility.addQueryParam(r,"state",this.state.id))),c)r=i.UrlUtility.addQueryParam(r,l,c[l]);this.url=r}},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.SignoutResponse=void 0;var n=r(3);e.SignoutResponse=function t(e){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t);var r=n.UrlUtility.parseUrlFragment(e,"?");this.error=r.error,this.error_description=r.error_description,this.error_uri=r.error_uri,this.state=r.state}},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.InMemoryWebStorage=void 0;var n=function(){function t(t,e){for(var r=0;r0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:c.SilentRenewService,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:h.SessionMonitor,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:f.TokenRevocationClient,l=arguments.length>4&&void 0!==arguments[4]?arguments[4]:g.TokenClient,p=arguments.length>5&&void 0!==arguments[5]?arguments[5]:d.JoseUtil;(function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")})(this,e),r instanceof s.UserManagerSettings||(r=new s.UserManagerSettings(r));var v=function(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}(this,t.call(this,r));return v._events=new u.UserManagerEvents(r),v._silentRenewService=new n(v),v.settings.automaticSilentRenew&&(i.Log.debug("UserManager.ctor: automaticSilentRenew is configured, setting up silent renew"),v.startSilentRenew()),v.settings.monitorSession&&(i.Log.debug("UserManager.ctor: monitorSession is configured, setting up session monitor"),v._sessionMonitor=new o(v)),v._tokenRevocationClient=new a(v._settings),v._tokenClient=new l(v._settings),v._joseUtil=p,v}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}(e,t),e.prototype.getUser=function(){var t=this;return this._loadUser().then((function(e){return e?(i.Log.info("UserManager.getUser: user loaded"),t._events.load(e,!1),e):(i.Log.info("UserManager.getUser: user not found in storage"),null)}))},e.prototype.removeUser=function(){var t=this;return this.storeUser(null).then((function(){i.Log.info("UserManager.removeUser: user removed from storage"),t._events.unload()}))},e.prototype.signinRedirect=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(t=Object.assign({},t)).request_type="si:r";var e={useReplaceToNavigate:t.useReplaceToNavigate};return this._signinStart(t,this._redirectNavigator,e).then((function(){i.Log.info("UserManager.signinRedirect: successful")}))},e.prototype.signinRedirectCallback=function(t){return this._signinEnd(t||this._redirectNavigator.url).then((function(t){return t.profile&&t.profile.sub?i.Log.info("UserManager.signinRedirectCallback: successful, signed in sub: ",t.profile.sub):i.Log.info("UserManager.signinRedirectCallback: no sub"),t}))},e.prototype.signinPopup=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(t=Object.assign({},t)).request_type="si:p";var e=t.redirect_uri||this.settings.popup_redirect_uri||this.settings.redirect_uri;return e?(t.redirect_uri=e,t.display="popup",this._signin(t,this._popupNavigator,{startUrl:e,popupWindowFeatures:t.popupWindowFeatures||this.settings.popupWindowFeatures,popupWindowTarget:t.popupWindowTarget||this.settings.popupWindowTarget}).then((function(t){return t&&(t.profile&&t.profile.sub?i.Log.info("UserManager.signinPopup: signinPopup successful, signed in sub: ",t.profile.sub):i.Log.info("UserManager.signinPopup: no sub")),t}))):(i.Log.error("UserManager.signinPopup: No popup_redirect_uri or redirect_uri configured"),Promise.reject(new Error("No popup_redirect_uri or redirect_uri configured")))},e.prototype.signinPopupCallback=function(t){return this._signinCallback(t,this._popupNavigator).then((function(t){return t&&(t.profile&&t.profile.sub?i.Log.info("UserManager.signinPopupCallback: successful, signed in sub: ",t.profile.sub):i.Log.info("UserManager.signinPopupCallback: no sub")),t})).catch((function(t){i.Log.error(t.message)}))},e.prototype.signinSilent=function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return e=Object.assign({},e),this._loadUser().then((function(r){return r&&r.refresh_token?(e.refresh_token=r.refresh_token,t._useRefreshToken(e)):(e.request_type="si:s",e.id_token_hint=e.id_token_hint||t.settings.includeIdTokenInSilentRenew&&r&&r.id_token,r&&t._settings.validateSubOnSilentRenew&&(i.Log.debug("UserManager.signinSilent, subject prior to silent renew: ",r.profile.sub),e.current_sub=r.profile.sub),t._signinSilentIframe(e))}))},e.prototype._useRefreshToken=function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this._tokenClient.exchangeRefreshToken(e).then((function(e){return e?e.access_token?t._loadUser().then((function(r){if(r){var n=Promise.resolve();return e.id_token&&(n=t._validateIdTokenFromTokenRefreshToken(r.profile,e.id_token)),n.then((function(){return i.Log.debug("UserManager._useRefreshToken: refresh token response success"),r.id_token=e.id_token||r.id_token,r.access_token=e.access_token,r.refresh_token=e.refresh_token||r.refresh_token,r.expires_in=e.expires_in,t.storeUser(r).then((function(){return t._events.load(r),r}))}))}return null})):(i.Log.error("UserManager._useRefreshToken: No access token returned from token endpoint"),Promise.reject("No access token returned from token endpoint")):(i.Log.error("UserManager._useRefreshToken: No response returned from token endpoint"),Promise.reject("No response returned from token endpoint"))}))},e.prototype._validateIdTokenFromTokenRefreshToken=function(t,e){var r=this;return this._metadataService.getIssuer().then((function(n){return r.settings.getEpochTime().then((function(o){return r._joseUtil.validateJwtAttributes(e,n,r._settings.client_id,r._settings.clockSkew,o).then((function(e){return e?e.sub!==t.sub?(i.Log.error("UserManager._validateIdTokenFromTokenRefreshToken: sub in id_token does not match current sub"),Promise.reject(new Error("sub in id_token does not match current sub"))):e.auth_time&&e.auth_time!==t.auth_time?(i.Log.error("UserManager._validateIdTokenFromTokenRefreshToken: auth_time in id_token does not match original auth_time"),Promise.reject(new Error("auth_time in id_token does not match original auth_time"))):e.azp&&e.azp!==t.azp?(i.Log.error("UserManager._validateIdTokenFromTokenRefreshToken: azp in id_token does not match original azp"),Promise.reject(new Error("azp in id_token does not match original azp"))):!e.azp&&t.azp?(i.Log.error("UserManager._validateIdTokenFromTokenRefreshToken: azp not in id_token, but present in original id_token"),Promise.reject(new Error("azp not in id_token, but present in original id_token"))):void 0:(i.Log.error("UserManager._validateIdTokenFromTokenRefreshToken: Failed to validate id_token"),Promise.reject(new Error("Failed to validate id_token")))}))}))}))},e.prototype._signinSilentIframe=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.redirect_uri||this.settings.silent_redirect_uri||this.settings.redirect_uri;return e?(t.redirect_uri=e,t.prompt=t.prompt||"none",this._signin(t,this._iframeNavigator,{startUrl:e,silentRequestTimeout:t.silentRequestTimeout||this.settings.silentRequestTimeout}).then((function(t){return t&&(t.profile&&t.profile.sub?i.Log.info("UserManager.signinSilent: successful, signed in sub: ",t.profile.sub):i.Log.info("UserManager.signinSilent: no sub")),t}))):(i.Log.error("UserManager.signinSilent: No silent_redirect_uri configured"),Promise.reject(new Error("No silent_redirect_uri configured")))},e.prototype.signinSilentCallback=function(t){return this._signinCallback(t,this._iframeNavigator).then((function(t){return t&&(t.profile&&t.profile.sub?i.Log.info("UserManager.signinSilentCallback: successful, signed in sub: ",t.profile.sub):i.Log.info("UserManager.signinSilentCallback: no sub")),t}))},e.prototype.signinCallback=function(t){var e=this;return this.readSigninResponseState(t).then((function(r){var n=r.state;return r.response,"si:r"===n.request_type?e.signinRedirectCallback(t):"si:p"===n.request_type?e.signinPopupCallback(t):"si:s"===n.request_type?e.signinSilentCallback(t):Promise.reject(new Error("invalid response_type in state"))}))},e.prototype.signoutCallback=function(t,e){var r=this;return this.readSignoutResponseState(t).then((function(n){var i=n.state,o=n.response;return i?"so:r"===i.request_type?r.signoutRedirectCallback(t):"so:p"===i.request_type?r.signoutPopupCallback(t,e):Promise.reject(new Error("invalid response_type in state")):o}))},e.prototype.querySessionStatus=function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(e=Object.assign({},e)).request_type="si:s";var r=e.redirect_uri||this.settings.silent_redirect_uri||this.settings.redirect_uri;return r?(e.redirect_uri=r,e.prompt="none",e.response_type=e.response_type||this.settings.query_status_response_type,e.scope=e.scope||"openid",e.skipUserInfo=!0,this._signinStart(e,this._iframeNavigator,{startUrl:r,silentRequestTimeout:e.silentRequestTimeout||this.settings.silentRequestTimeout}).then((function(e){return t.processSigninResponse(e.url).then((function(t){if(i.Log.debug("UserManager.querySessionStatus: got signin response"),t.session_state&&t.profile.sub)return i.Log.info("UserManager.querySessionStatus: querySessionStatus success for sub: ",t.profile.sub),{session_state:t.session_state,sub:t.profile.sub,sid:t.profile.sid};i.Log.info("querySessionStatus successful, user not authenticated")})).catch((function(e){if(e.session_state&&t.settings.monitorAnonymousSession&&("login_required"==e.message||"consent_required"==e.message||"interaction_required"==e.message||"account_selection_required"==e.message))return i.Log.info("UserManager.querySessionStatus: querySessionStatus success for anonymous user"),{session_state:e.session_state};throw e}))}))):(i.Log.error("UserManager.querySessionStatus: No silent_redirect_uri configured"),Promise.reject(new Error("No silent_redirect_uri configured")))},e.prototype._signin=function(t,e){var r=this,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this._signinStart(t,e,n).then((function(e){return r._signinEnd(e.url,t)}))},e.prototype._signinStart=function(t,e){var r=this,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return e.prepare(n).then((function(e){return i.Log.debug("UserManager._signinStart: got navigator window handle"),r.createSigninRequest(t).then((function(t){return i.Log.debug("UserManager._signinStart: got signin request"),n.url=t.url,n.id=t.state.id,e.navigate(n)})).catch((function(t){throw e.close&&(i.Log.debug("UserManager._signinStart: Error after preparing navigator, closing navigator window"),e.close()),t}))}))},e.prototype._signinEnd=function(t){var e=this,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.processSigninResponse(t).then((function(t){i.Log.debug("UserManager._signinEnd: got signin response");var n=new a.User(t);if(r.current_sub){if(r.current_sub!==n.profile.sub)return i.Log.debug("UserManager._signinEnd: current user does not match user returned from signin. sub from signin: ",n.profile.sub),Promise.reject(new Error("login_required"));i.Log.debug("UserManager._signinEnd: current user matches user returned from signin")}return e.storeUser(n).then((function(){return i.Log.debug("UserManager._signinEnd: user stored"),e._events.load(n),n}))}))},e.prototype._signinCallback=function(t,e){i.Log.debug("UserManager._signinCallback");var r="query"===this._settings.response_mode||!this._settings.response_mode&&l.SigninRequest.isCode(this._settings.response_type)?"?":"#";return e.callback(t,void 0,r)},e.prototype.signoutRedirect=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(t=Object.assign({},t)).request_type="so:r";var e=t.post_logout_redirect_uri||this.settings.post_logout_redirect_uri;e&&(t.post_logout_redirect_uri=e);var r={useReplaceToNavigate:t.useReplaceToNavigate};return this._signoutStart(t,this._redirectNavigator,r).then((function(){i.Log.info("UserManager.signoutRedirect: successful")}))},e.prototype.signoutRedirectCallback=function(t){return this._signoutEnd(t||this._redirectNavigator.url).then((function(t){return i.Log.info("UserManager.signoutRedirectCallback: successful"),t}))},e.prototype.signoutPopup=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(t=Object.assign({},t)).request_type="so:p";var e=t.post_logout_redirect_uri||this.settings.popup_post_logout_redirect_uri||this.settings.post_logout_redirect_uri;return t.post_logout_redirect_uri=e,t.display="popup",t.post_logout_redirect_uri&&(t.state=t.state||{}),this._signout(t,this._popupNavigator,{startUrl:e,popupWindowFeatures:t.popupWindowFeatures||this.settings.popupWindowFeatures,popupWindowTarget:t.popupWindowTarget||this.settings.popupWindowTarget}).then((function(){i.Log.info("UserManager.signoutPopup: successful")}))},e.prototype.signoutPopupCallback=function(t,e){return void 0===e&&"boolean"==typeof t&&(e=t,t=null),this._popupNavigator.callback(t,e,"?").then((function(){i.Log.info("UserManager.signoutPopupCallback: successful")}))},e.prototype._signout=function(t,e){var r=this,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this._signoutStart(t,e,n).then((function(t){return r._signoutEnd(t.url)}))},e.prototype._signoutStart=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return arguments[1].prepare(r).then((function(n){return i.Log.debug("UserManager._signoutStart: got navigator window handle"),e._loadUser().then((function(o){return i.Log.debug("UserManager._signoutStart: loaded current user from storage"),(e._settings.revokeAccessTokenOnSignout?e._revokeInternal(o):Promise.resolve()).then((function(){var s=t.id_token_hint||o&&o.id_token;return s&&(i.Log.debug("UserManager._signoutStart: Setting id_token into signout request"),t.id_token_hint=s),e.removeUser().then((function(){return i.Log.debug("UserManager._signoutStart: user removed, creating signout request"),e.createSignoutRequest(t).then((function(t){return i.Log.debug("UserManager._signoutStart: got signout request"),r.url=t.url,t.state&&(r.id=t.state.id),n.navigate(r)}))}))}))})).catch((function(t){throw n.close&&(i.Log.debug("UserManager._signoutStart: Error after preparing navigator, closing navigator window"),n.close()),t}))}))},e.prototype._signoutEnd=function(t){return this.processSignoutResponse(t).then((function(t){return i.Log.debug("UserManager._signoutEnd: got signout response"),t}))},e.prototype.revokeAccessToken=function(){var t=this;return this._loadUser().then((function(e){return t._revokeInternal(e,!0).then((function(r){if(r)return i.Log.debug("UserManager.revokeAccessToken: removing token properties from user and re-storing"),e.access_token=null,e.refresh_token=null,e.expires_at=null,e.token_type=null,t.storeUser(e).then((function(){i.Log.debug("UserManager.revokeAccessToken: user stored"),t._events.load(e)}))}))})).then((function(){i.Log.info("UserManager.revokeAccessToken: access token revoked successfully")}))},e.prototype._revokeInternal=function(t,e){var r=this;if(t){var n=t.access_token,o=t.refresh_token;return this._revokeAccessTokenInternal(n,e).then((function(t){return r._revokeRefreshTokenInternal(o,e).then((function(e){return t||e||i.Log.debug("UserManager.revokeAccessToken: no need to revoke due to no token(s), or JWT format"),t||e}))}))}return Promise.resolve(!1)},e.prototype._revokeAccessTokenInternal=function(t,e){return!t||t.indexOf(".")>=0?Promise.resolve(!1):this._tokenRevocationClient.revoke(t,e).then((function(){return!0}))},e.prototype._revokeRefreshTokenInternal=function(t,e){return t?this._tokenRevocationClient.revoke(t,e,"refresh_token").then((function(){return!0})):Promise.resolve(!1)},e.prototype.startSilentRenew=function(){this._silentRenewService.start()},e.prototype.stopSilentRenew=function(){this._silentRenewService.stop()},e.prototype._loadUser=function(){return this._userStore.get(this._userStoreKey).then((function(t){return t?(i.Log.debug("UserManager._loadUser: user storageString loaded"),a.User.fromStorageString(t)):(i.Log.debug("UserManager._loadUser: no user storageString"),null)}))},e.prototype.storeUser=function(t){if(t){i.Log.debug("UserManager.storeUser: storing user");var e=t.toStorageString();return this._userStore.set(this._userStoreKey,e)}return i.Log.debug("storeUser.storeUser: removing user"),this._userStore.remove(this._userStoreKey)},n(e,[{key:"_redirectNavigator",get:function(){return this.settings.redirectNavigator}},{key:"_popupNavigator",get:function(){return this.settings.popupNavigator}},{key:"_iframeNavigator",get:function(){return this.settings.iframeNavigator}},{key:"_userStore",get:function(){return this.settings.userStore}},{key:"events",get:function(){return this._events}},{key:"_userStoreKey",get:function(){return"user:"+this.settings.authority+":"+this.settings.client_id}}]),e}(o.OidcClient)},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.UserManagerSettings=void 0;var n=function(){function t(t,e){for(var r=0;r0&&void 0!==arguments[0]?arguments[0]:{},n=r.popup_redirect_uri,i=r.popup_post_logout_redirect_uri,l=r.popupWindowFeatures,f=r.popupWindowTarget,g=r.silent_redirect_uri,d=r.silentRequestTimeout,p=r.automaticSilentRenew,v=void 0!==p&&p,y=r.validateSubOnSilentRenew,m=void 0!==y&&y,_=r.includeIdTokenInSilentRenew,S=void 0===_||_,w=r.monitorSession,b=void 0===w||w,F=r.monitorAnonymousSession,E=void 0!==F&&F,x=r.checkSessionInterval,A=void 0===x?2e3:x,k=r.stopCheckSessionOnError,P=void 0===k||k,C=r.query_status_response_type,T=r.revokeAccessTokenOnSignout,R=void 0!==T&&T,I=r.accessTokenExpiringNotificationTime,D=void 0===I?60:I,L=r.redirectNavigator,N=void 0===L?new o.RedirectNavigator:L,U=r.popupNavigator,O=void 0===U?new s.PopupNavigator:U,B=r.iframeNavigator,M=void 0===B?new a.IFrameNavigator:B,j=r.userStore,H=void 0===j?new u.WebStorageStateStore({store:c.Global.sessionStorage}):j;!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,e);var K=function(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}(this,t.call(this,arguments[0]));return K._popup_redirect_uri=n,K._popup_post_logout_redirect_uri=i,K._popupWindowFeatures=l,K._popupWindowTarget=f,K._silent_redirect_uri=g,K._silentRequestTimeout=d,K._automaticSilentRenew=v,K._validateSubOnSilentRenew=m,K._includeIdTokenInSilentRenew=S,K._accessTokenExpiringNotificationTime=D,K._monitorSession=b,K._monitorAnonymousSession=E,K._checkSessionInterval=A,K._stopCheckSessionOnError=P,C?K._query_status_response_type=C:arguments[0]&&arguments[0].response_type?K._query_status_response_type=h.SigninRequest.isOidc(arguments[0].response_type)?"id_token":"code":K._query_status_response_type="id_token",K._revokeAccessTokenOnSignout=R,K._redirectNavigator=N,K._popupNavigator=O,K._iframeNavigator=M,K._userStore=H,K}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}(e,t),n(e,[{key:"popup_redirect_uri",get:function(){return this._popup_redirect_uri}},{key:"popup_post_logout_redirect_uri",get:function(){return this._popup_post_logout_redirect_uri}},{key:"popupWindowFeatures",get:function(){return this._popupWindowFeatures}},{key:"popupWindowTarget",get:function(){return this._popupWindowTarget}},{key:"silent_redirect_uri",get:function(){return this._silent_redirect_uri}},{key:"silentRequestTimeout",get:function(){return this._silentRequestTimeout}},{key:"automaticSilentRenew",get:function(){return this._automaticSilentRenew}},{key:"validateSubOnSilentRenew",get:function(){return this._validateSubOnSilentRenew}},{key:"includeIdTokenInSilentRenew",get:function(){return this._includeIdTokenInSilentRenew}},{key:"accessTokenExpiringNotificationTime",get:function(){return this._accessTokenExpiringNotificationTime}},{key:"monitorSession",get:function(){return this._monitorSession}},{key:"monitorAnonymousSession",get:function(){return this._monitorAnonymousSession}},{key:"checkSessionInterval",get:function(){return this._checkSessionInterval}},{key:"stopCheckSessionOnError",get:function(){return this._stopCheckSessionOnError}},{key:"query_status_response_type",get:function(){return this._query_status_response_type}},{key:"revokeAccessTokenOnSignout",get:function(){return this._revokeAccessTokenOnSignout}},{key:"redirectNavigator",get:function(){return this._redirectNavigator}},{key:"popupNavigator",get:function(){return this._popupNavigator}},{key:"iframeNavigator",get:function(){return this._iframeNavigator}},{key:"userStore",get:function(){return this._userStore}}]),e}(i.OidcClientSettings)},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.RedirectNavigator=void 0;var n=function(){function t(t,e){for(var r=0;r1&&void 0!==arguments[1])||arguments[1];n.Log.debug("UserManagerEvents.load"),t.prototype.load.call(this,e),r&&this._userLoaded.raise(e)},e.prototype.unload=function(){n.Log.debug("UserManagerEvents.unload"),t.prototype.unload.call(this),this._userUnloaded.raise()},e.prototype.addUserLoaded=function(t){this._userLoaded.addHandler(t)},e.prototype.removeUserLoaded=function(t){this._userLoaded.removeHandler(t)},e.prototype.addUserUnloaded=function(t){this._userUnloaded.addHandler(t)},e.prototype.removeUserUnloaded=function(t){this._userUnloaded.removeHandler(t)},e.prototype.addSilentRenewError=function(t){this._silentRenewError.addHandler(t)},e.prototype.removeSilentRenewError=function(t){this._silentRenewError.removeHandler(t)},e.prototype._raiseSilentRenewError=function(t){n.Log.debug("UserManagerEvents._raiseSilentRenewError",t.message),this._silentRenewError.raise(t)},e.prototype.addUserSignedIn=function(t){this._userSignedIn.addHandler(t)},e.prototype.removeUserSignedIn=function(t){this._userSignedIn.removeHandler(t)},e.prototype._raiseUserSignedIn=function(){n.Log.debug("UserManagerEvents._raiseUserSignedIn"),this._userSignedIn.raise()},e.prototype.addUserSignedOut=function(t){this._userSignedOut.addHandler(t)},e.prototype.removeUserSignedOut=function(t){this._userSignedOut.removeHandler(t)},e.prototype._raiseUserSignedOut=function(){n.Log.debug("UserManagerEvents._raiseUserSignedOut"),this._userSignedOut.raise()},e.prototype.addUserSessionChanged=function(t){this._userSessionChanged.addHandler(t)},e.prototype.removeUserSessionChanged=function(t){this._userSessionChanged.removeHandler(t)},e.prototype._raiseUserSessionChanged=function(){n.Log.debug("UserManagerEvents._raiseUserSessionChanged"),this._userSessionChanged.raise()},e}(i.AccessTokenEvents)},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Timer=void 0;var n=function(){function t(t,e){for(var r=0;r1&&void 0!==arguments[1]?arguments[1]:o.Global.timer,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0;!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,e);var s=function(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}(this,t.call(this,r));return s._timer=n,s._nowFunc=i||function(){return Date.now()/1e3},s}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}(e,t),e.prototype.init=function(t){t<=0&&(t=1),t=parseInt(t);var e=this.now+t;if(this.expiration===e&&this._timerHandle)i.Log.debug("Timer.init timer "+this._name+" skipping initialization since already initialized for expiration:",this.expiration);else{this.cancel(),i.Log.debug("Timer.init timer "+this._name+" for duration:",t),this._expiration=e;var r=5;t{"use strict";e.in=e.kO=e.Pd=void 0;const n=r(671);var i,o,s;!function(t){t.Success="Success",t.RequiresRedirect="RequiresRedirect"}(i=e.Pd||(e.Pd={})),function(t){t.Redirect="Redirect",t.Success="Success",t.Failure="Failure",t.OperationCompleted="OperationCompleted"}(o=e.kO||(e.kO={}));class a{constructor(t){this.debug=t.debugEnabled,this.trace=t.traceEnabled}log(t,e){if(t==s.Trace&&this.trace||t==s.Debug&&this.debug){const r=t==s.Trace?"trce":"dbug";console.debug(`${r}: Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationService[0]\n ${e}`)}}}!function(t){t[t.Trace=0]="Trace",t[t.Debug=1]="Debug"}(s=e.in||(e.in={}));class u{constructor(t,e){this._userManager=t,this._logger=e}async trySilentSignIn(){return this._intialSilentSignIn||(this._intialSilentSignIn=(async()=>{try{this.debug("Beginning initial silent sign in."),await this._userManager.signinSilent(),this.debug("Initial silent sign in succeeded.")}catch(t){t instanceof Error&&this.debug(`Initial silent sign in failed '${t.message}'`)}})()),this._intialSilentSignIn}async getUser(){window.parent!==window||window.opener||window.frameElement||!this._userManager.settings.redirect_uri||location.href.startsWith(this._userManager.settings.redirect_uri)||await this.trySilentSignIn();const t=await this._userManager.getUser();return t&&t.profile}async getAccessToken(t){this.trace("getAccessToken",t);const e=await this._userManager.getUser();if(function(t){return!(!t||!t.access_token||t.expired||!t.scopes)}(e)&&function(t,e){const r=new Set(e);if(t&&t.scopes)for(const e of t.scopes)if(!r.has(e))return!1;return!0}(t,e.scopes))return this.debug(`Valid access token present expiring at '${r(e.expires_in).toISOString()}'`),{status:i.Success,token:{grantedScopes:e.scopes,expires:r(e.expires_in),value:e.access_token}};try{const e=t&&t.scopes?{scope:t.scopes.join(" ")}:void 0;this.debug(`Provisioning a token silently for scopes '${null==e?void 0:e.scope}'`),this.trace("userManager.signinSilent",e);const n=await this._userManager.signinSilent(e);this.debug(`Provisioned an access token expiring at '${r(n.expires_in).toISOString()}'`);const o={status:i.Success,token:{grantedScopes:n.scopes,expires:r(n.expires_in),value:n.access_token}};return this.trace("getAccessToken-result",o),o}catch(t){return t instanceof Error&&this.debug(`Failed to provision a token silently '${t.message}'`),{status:i.RequiresRedirect}}function r(t){const e=new Date;return e.setTime(e.getTime()+1e3*t),e}}async signIn(t){if(this.trace("signIn",t),t.interactiveRequest)return this.debug("Interactive sign in starting."),this.signInInteractive(t);try{return this.debug("Silent sign in starting"),await this._userManager.clearStaleState(),await this._userManager.signinSilent(this.createArguments(void 0,t.interactiveRequest)),this.debug("Silent sign in succeeded"),this.success(t.state)}catch(e){return e instanceof Error&&this.debug(`Silent sign in failed, redirecting to the identity provider '${e.message}'.`),await this.signInInteractive(t)}}async signInInteractive(t){this.trace("signInInteractive",t);try{return await this._userManager.clearStaleState(),await this._userManager.signinRedirect(this.createArguments(t.state,t.interactiveRequest)),this.debug("Redirect sign in succeeded"),this.redirect()}catch(t){const e=this.getExceptionMessage(t);return this.debug(`Redirect sign in failed '${e}'.`),this.error(e)}}async completeSignIn(t){this.trace("completeSignIn",t);const e=await this.loginRequired(t),r=await this.stateExists(t);try{const e=await this._userManager.signinCallback(t);return window.self!==window.top?this.operationCompleted():(this.trace("completeSignIn-result",e),this.success(e&&e.state))}catch(t){return e||window.self!==window.top||!r?this.operationCompleted():this.error("There was an error signing in.")}}async signOut(t){this.trace("signOut",t);try{return await this._userManager.metadataService.getEndSessionEndpoint()?(await this._userManager.signoutRedirect(this.createArguments(t.state,t.interactiveRequest)),this.redirect()):(await this._userManager.removeUser(),this.success(t.state))}catch(t){const e=this.getExceptionMessage(t);return this.debug(`Sign out error '${e}'.`),this.error(e)}}async completeSignOut(t){this.trace("completeSignOut",t);try{if(await this.stateExists(t)){const e=await this._userManager.signoutCallback(t);return this.success(e&&e.state)}return this.operationCompleted()}catch(t){const e=this.getExceptionMessage(t);return this.debug(`Complete sign out error '${e}'`),this.error(e)}}getExceptionMessage(t){return function(t){return t&&t.error_description}(t)?t.error_description:function(t){return t&&t.message}(t)?t.message:t.toString()}async stateExists(t){const e=new URLSearchParams(new URL(t).search).get("state");return e&&this._userManager.settings.stateStore?await this._userManager.settings.stateStore.get(e):void 0}async loginRequired(t){const e=new URLSearchParams(new URL(t).search).get("error");return!(!e||!this._userManager.settings.stateStore)&&"login_required"===await this._userManager.settings.stateStore.get(e)}createArguments(t,e){return{useReplaceToNavigate:!0,data:t,scope:(null==e?void 0:e.scopes)?e.scopes.join(" "):void 0,...null==e?void 0:e.additionalRequestParameters}}error(t){return{status:o.Failure,errorMessage:t}}success(t){return{status:o.Success,state:t}}redirect(){return{status:o.Redirect}}operationCompleted(){return{status:o.OperationCompleted}}debug(t){var e;null===(e=this._logger)||void 0===e||e.log(s.Debug,t)}trace(t,e){var r;null===(r=this._logger)||void 0===r||r.log(s.Trace,`${t}: ${JSON.stringify(e)}`)}}class c{static init(t,e){return c._initialized||(c._initialized=c.initializeCore(t,new a(e))),c._initialized}static handleCallback(){return c.initializeCore()}static async initializeCore(t,e){const r=t||c.resolveCachedSettings(),n=c.resolveCachedLoggerOptions(),i=e||n&&new a(n);if(!t&&r&&!e&&i){const t=c.createUserManagerCore(r);window.parent!==window&&!window.opener&&window.frameElement&&t.settings.redirect_uri&&location.href.startsWith(t.settings.redirect_uri)&&(c.instance=new u(t,i),c._initialized=(async()=>{await c.instance.completeSignIn(location.href)})())}else if(t&&e){const r=await c.createUserManager(t);c.instance=new u(r,e),window.sessionStorage.setItem(`${c._infrastructureKey}.CachedJSLoggingOptions`,JSON.stringify({debugEnabled:e.debug,traceEnabled:e.trace}))}}static resolveCachedSettings(){const t=window.sessionStorage.getItem(`${c._infrastructureKey}.CachedAuthSettings`);return t?JSON.parse(t):void 0}static resolveCachedLoggerOptions(){const t=window.sessionStorage.getItem(`${c._infrastructureKey}.CachedJSLoggingOptions`);return t?JSON.parse(t):void 0}static getUser(){return c.instance.getUser()}static getAccessToken(t){return c.instance.getAccessToken(t)}static signIn(t){return c.instance.signIn(t)}static async completeSignIn(t){let e=this._pendingOperations[t];return e||(e=c.instance.completeSignIn(t),await e,delete this._pendingOperations[t]),e}static signOut(t){return c.instance.signOut(t)}static async completeSignOut(t){let e=this._pendingOperations[t];return e||(e=c.instance.completeSignOut(t),await e,delete this._pendingOperations[t]),e}static async createUserManager(t){let e;if(function(t){return t.hasOwnProperty("configurationEndpoint")}(t)){const r=await fetch(t.configurationEndpoint);if(!r.ok)throw new Error(`Could not load settings from '${t.configurationEndpoint}'`);e=await r.json()}else t.scope||(t.scope=t.defaultScopes.join(" ")),null===t.response_type&&delete t.response_type,e=t;return window.sessionStorage.setItem(`${c._infrastructureKey}.CachedAuthSettings`,JSON.stringify(e)),c.createUserManagerCore(e)}static createUserManagerCore(t){const e=new n.UserManager(t);return e.events.addUserSignedOut((async()=>{e.removeUser()})),e}}c._infrastructureKey="Microsoft.AspNetCore.Components.WebAssembly.Authentication",c._pendingOperations={},c.handleCallback(),window.AuthenticationService=c}},e={},function r(n){var i=e[n];if(void 0!==i)return i.exports;var o=e[n]={exports:{}};return t[n].call(o.exports,o,o.exports,r),o.exports}(981); @@ -14,7 +14,7 @@ var abp=abp||{};(function(){abp.utils=abp.utils||{};abp.utils.updateHTMLDirAndLa */ (function(n,t){typeof exports=="object"&&typeof module!="undefined"?module.exports=t():typeof define=="function"&&define.amd?define(t):(n=typeof globalThis!="undefined"?globalThis:n||self,n.bootstrap=t())})(this,function(){"use strict";function oe(n,t){return t&&`${t}::${fe++}`||n.uidEvent||fe++}function se(n){const t=oe(n);return n.uidEvent=t,su[t]=su[t]||{},su[t]}function yl(t,i){return function r(u){return u.delegateTarget=t,r.oneOff&&n.off(t,u.type,i),i.apply(t,[u])}}function pl(t,i,r){return function u(f){const e=t.querySelectorAll(i);for(let{target:o}=f;o&&o!==this;o=o.parentNode)for(let s=e.length;s--;)if(e[s]===o)return f.delegateTarget=o,u.oneOff&&n.off(t,f.type,i,r),r.apply(o,[f]);return null}}function he(n,t,i=null){const r=Object.keys(n);for(let u=0,f=r.length;ufunction(t){if(!t.relatedTarget||t.relatedTarget!==t.delegateTarget&&!t.delegateTarget.contains(t.relatedTarget))return n.call(this,t)};r?r=n(r):i=n(i)}const[e,o,s]=ce(t,i,r),c=se(n),l=c[s]||(c[s]={}),h=he(l,o,e?i:null);if(h){h.oneOff=h.oneOff&&u;return}const a=oe(o,t.replace(hl,"")),f=e?pl(n,i,r):yl(n,i);f.delegationSelector=e?i:null;f.originalHandler=o;f.oneOff=u;f.uidEvent=a;l[a]=f;n.addEventListener(s,f,e)}}function hu(n,t,i,r,u){const f=he(t[i],r,u);f&&(n.removeEventListener(i,f,Boolean(u)),delete t[i][f.uidEvent])}function wl(n,t,i,r){const u=t[i]||{};Object.keys(u).forEach(f=>{if(f.includes(r)){const r=u[f];hu(n,t,i,r.originalHandler,r.delegationSelector)}})}function ae(n){return n=n.replace(cl,""),al[n]||n}function pe(n){return n==="true"?!0:n==="false"?!1:n===Number(n).toString()?Number(n):n===""||n==="null"?null:n}function cu(n){return n.replace(/[A-Z]/g,n=>`-${n.toLowerCase()}`)}function w(n){return n?(n.nodeName||"").toLowerCase():null}function y(n){if(n==null)return window;if(n.toString()!=="[object Window]"){var t=n.ownerDocument;return t?t.defaultView||window:window}return n}function yi(n){var t=y(n).Element;return n instanceof t||n instanceof Element}function c(n){var t=y(n).HTMLElement;return n instanceof t||n instanceof HTMLElement}function wo(n){if(typeof ShadowRoot=="undefined")return!1;var t=y(n).ShadowRoot;return n instanceof t||n instanceof ShadowRoot}function oy(n){var t=n.state;Object.keys(t.elements).forEach(function(n){var u=t.styles[n]||{},r=t.attributes[n]||{},i=t.elements[n];c(i)&&w(i)&&(Object.assign(i.style,u),Object.keys(r).forEach(function(n){var t=r[n];t===!1?i.removeAttribute(n):i.setAttribute(n,t===!0?"":t)}))})}function sy(n){var t=n.state,i={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,i.popper),t.styles=i,t.elements.arrow&&Object.assign(t.elements.arrow.style,i.arrow),function(){Object.keys(t.elements).forEach(function(n){var r=t.elements[n],u=t.attributes[n]||{},f=Object.keys(t.styles.hasOwnProperty(n)?t.styles[n]:i[n]),e=f.reduce(function(n,t){return n[t]="",n},{});c(r)&&w(r)&&(Object.assign(r.style,e),Object.keys(u).forEach(function(n){r.removeAttribute(n)}))})}}function b(n){return n.split("-")[0]}function ri(n){var t=n.getBoundingClientRect(),i=1,r=1;return{width:t.width/i,height:t.height/r,top:t.top/r,right:t.right/i,bottom:t.bottom/r,left:t.left/i,x:t.left/i,y:t.top/r}}function bu(n){var t=ri(n),i=n.offsetWidth,r=n.offsetHeight;return Math.abs(t.width-i)<=1&&(i=t.width),Math.abs(t.height-r)<=1&&(r=t.height),{x:n.offsetLeft,y:n.offsetTop,width:i,height:r}}function bo(n,t){var r=t.getRootNode&&t.getRootNode(),i;if(n.contains(t))return!0;if(r&&wo(r)){i=t;do{if(i&&n.isSameNode(i))return!0;i=i.parentNode||i.host}while(i)}return!1}function nt(n){return y(n).getComputedStyle(n)}function hy(n){return["table","td","th"].indexOf(w(n))>=0}function ut(n){return((yi(n)?n.ownerDocument:n.document)||window.document).documentElement}function ar(n){return w(n)==="html"?n:n.assignedSlot||n.parentNode||(wo(n)?n.host:null)||ut(n)}function ko(n){return!c(n)||nt(n).position==="fixed"?null:n.offsetParent}function cy(n){var r=navigator.userAgent.toLowerCase().indexOf("firefox")!==-1,f=navigator.userAgent.indexOf("Trident")!==-1,u,i,t;if(f&&c(n)&&(u=nt(n),u.position==="fixed"))return null;for(i=ar(n);c(i)&&["html","body"].indexOf(w(i))<0;){if(t=nt(i),t.transform!=="none"||t.perspective!=="none"||t.contain==="paint"||["transform","perspective"].indexOf(t.willChange)!==-1||r&&t.willChange==="filter"||r&&t.filter&&t.filter!=="none")return i;i=i.parentNode}return null}function pi(n){for(var i=y(n),t=ko(n);t&&hy(t)&&nt(t).position==="static";)t=ko(t);return t&&(w(t)==="html"||w(t)==="body"&&nt(t).position==="static")?i:t||cy(n)||i}function ku(n){return["top","bottom"].indexOf(n)>=0?"x":"y"}function yr(n,t,i){return ft(n,wi(t,i))}function go(){return{top:0,right:0,bottom:0,left:0}}function ns(n){return Object.assign({},go(),n)}function ts(n,t){return t.reduce(function(t,i){return t[i]=n,t},{})}function ly(n){var r,t=n.state,d=n.name,g=n.options,h=t.elements.arrow,c=t.modifiersData.popperOffsets,a=b(t.placement),i=ku(a),nt=[f,s].indexOf(a)>=0,e=nt?"height":"width";if(h&&c){var v=is(g.padding,t),y=bu(h),tt=i==="y"?u:f,it=i==="y"?o:s,rt=t.rects.reference[e]+t.rects.reference[i]-c[i]-t.rects.popper[e],ut=c[i]-t.rects.reference[i],l=pi(h),p=l?i==="y"?l.clientHeight||0:l.clientWidth||0:0,ft=rt/2-ut/2,et=v[tt],ot=p-y[e]-v[it],w=p/2-y[e]/2+ft,k=yr(et,w,ot),st=i;t.modifiersData[d]=(r={},r[st]=k,r.centerOffset=k-w,r)}}function ay(n){var i=n.state,u=n.options,r=u.element,t=r===void 0?"[data-popper-arrow]":r;t!=null&&(typeof t!="string"||(t=i.elements.popper.querySelector(t),t))&&bo(i.elements.popper,t)&&(i.elements.arrow=t)}function ui(n){return n.split("-")[1]}function vy(n){var i=n.x,r=n.y,u=window,t=u.devicePixelRatio||1;return{x:vr(vr(i*t)/t)||0,y:vr(vr(r*t)/t)||0}}function fs(n){var r,a=n.popper,d=n.popperRect,i=n.placement,g=n.variation,e=n.offsets,tt=n.position,v=n.gpuAcceleration,it=n.adaptive,p=n.roundOffsets,rt=p===!0?vy(e):typeof p=="function"?p(e):e,ft=rt.x,h=ft===void 0?0:ft,et=rt.y,c=et===void 0?0:et,ot=e.hasOwnProperty("x"),st=e.hasOwnProperty("y"),w=f,b=u,lt=window,k,l;if(it){var t=pi(a),ht="clientHeight",ct="clientWidth";t===y(a)&&(t=ut(a),nt(t).position!=="static"&&tt==="absolute"&&(ht="scrollHeight",ct="scrollWidth"));t=t;(i===u||(i===f||i===s)&&g===ti)&&(b=o,c-=t[ht]-d.height,c*=v?1:-1);(i===f||(i===u||i===o)&&g===ti)&&(w=s,h-=t[ct]-d.width,h*=v?1:-1)}return(k=Object.assign({position:tt},it&&us),v)?Object.assign({},k,(l={},l[b]=st?"0":"",l[w]=ot?"0":"",l.transform=(lt.devicePixelRatio||1)<=1?"translate("+h+"px, "+c+"px)":"translate3d("+h+"px, "+c+"px, 0)",l)):Object.assign({},k,(r={},r[b]=st?c+"px":"",r[w]=ot?h+"px":"",r.transform="",r))}function yy(n){var t=n.state,i=n.options,r=i.gpuAcceleration,s=r===void 0?!0:r,u=i.adaptive,h=u===void 0?!0:u,f=i.roundOffsets,e=f===void 0?!0:f,o={placement:b(t.placement),variation:ui(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:s};t.modifiersData.popperOffsets!=null&&(t.styles.popper=Object.assign({},t.styles.popper,fs(Object.assign({},o,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:h,roundOffsets:e}))));t.modifiersData.arrow!=null&&(t.styles.arrow=Object.assign({},t.styles.arrow,fs(Object.assign({},o,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:e}))));t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})}function py(n){var i=n.state,t=n.instance,r=n.options,u=r.scroll,f=u===void 0?!0:u,e=r.resize,o=e===void 0?!0:e,s=y(i.elements.popper),h=[].concat(i.scrollParents.reference,i.scrollParents.popper);return f&&h.forEach(function(n){n.addEventListener("scroll",t.update,bi)}),o&&s.addEventListener("resize",t.update,bi),function(){f&&h.forEach(function(n){n.removeEventListener("scroll",t.update,bi)});o&&s.removeEventListener("resize",t.update,bi)}}function pr(n){return n.replace(/left|right|bottom|top/g,function(n){return es[n]})}function ss(n){return n.replace(/start|end/g,function(n){return os[n]})}function nf(n){var t=y(n),i=t.pageXOffset,r=t.pageYOffset;return{scrollLeft:i,scrollTop:r}}function tf(n){return ri(ut(n)).left+nf(n).scrollLeft}function wy(n){var o=y(n),i=ut(n),t=o.visualViewport,r=i.clientWidth,u=i.clientHeight,f=0,e=0;return t&&(r=t.width,u=t.height,/^((?!chrome|android).)*safari/i.test(navigator.userAgent)||(f=t.offsetLeft,e=t.offsetTop)),{width:r,height:u,x:f+tf(n),y:e}}function by(n){var r,i=ut(n),u=nf(n),t=(r=n.ownerDocument)==null?void 0:r.body,f=ft(i.scrollWidth,i.clientWidth,t?t.scrollWidth:0,t?t.clientWidth:0),o=ft(i.scrollHeight,i.clientHeight,t?t.scrollHeight:0,t?t.clientHeight:0),e=-u.scrollLeft+tf(n),s=-u.scrollTop;return nt(t||i).direction==="rtl"&&(e+=ft(i.clientWidth,t?t.clientWidth:0)-f),{width:f,height:o,x:e,y:s}}function rf(n){var t=nt(n),i=t.overflow,r=t.overflowX,u=t.overflowY;return/auto|scroll|overlay|hidden/.test(i+u+r)}function hs(n){return["html","body","#document"].indexOf(w(n))>=0?n.ownerDocument.body:c(n)&&rf(n)?n:hs(ar(n))}function ki(n,t){var r;t===void 0&&(t=[]);var i=hs(n),u=i===((r=n.ownerDocument)==null?void 0:r.body),f=y(i),e=u?[f].concat(f.visualViewport||[],rf(i)?i:[]):i,o=t.concat(e);return u?o:o.concat(ki(ar(e)))}function uf(n){return Object.assign({},n,{left:n.x,top:n.y,right:n.x+n.width,bottom:n.y+n.height})}function ky(n){var t=ri(n);return t.top=t.top+n.clientTop,t.left=t.left+n.clientLeft,t.bottom=t.top+n.clientHeight,t.right=t.left+n.clientWidth,t.width=n.clientWidth,t.height=n.clientHeight,t.x=t.left,t.y=t.top,t}function cs(n,t){return t===vu?uf(wy(n)):c(t)?ky(t):uf(by(ut(n)))}function dy(n){var i=ki(ar(n)),r=["absolute","fixed"].indexOf(nt(n).position)>=0,t=r&&c(n)?pi(n):n;return yi(t)?i.filter(function(n){return yi(n)&&bo(n,t)&&w(n)!=="body"}):[]}function gy(n,t,i){var f=t==="clippingParents"?dy(n):[].concat(t),u=[].concat(f,[i]),e=u[0],r=u.reduce(function(t,i){var r=cs(n,i);return t.top=ft(r.top,t.top),t.right=wi(r.right,t.right),t.bottom=wi(r.bottom,t.bottom),t.left=ft(r.left,t.left),t},cs(n,e));return r.width=r.right-r.left,r.height=r.bottom-r.top,r.x=r.left,r.y=r.top,r}function ls(n){var t=n.reference,e=n.element,c=n.placement,l=c?b(c):null,y=c?ui(c):null,a=t.x+t.width/2-e.width/2,v=t.y+t.height/2-e.height/2,i,r,h;switch(l){case u:i={x:a,y:t.y-e.height};break;case o:i={x:a,y:t.y+t.height};break;case s:i={x:t.x+t.width,y:v};break;case f:i={x:t.x-e.width,y:v};break;default:i={x:t.x,y:t.y}}if(r=l?ku(l):null,r!=null){h=r==="y"?"height":"width";switch(y){case yt:i[r]=i[r]-(t[h]/2-e[h]/2);break;case ti:i[r]=i[r]+(t[h]/2-e[h]/2)}}return i}function fi(n,t){var it;t===void 0&&(t={});var i=t,v=i.placement,y=v===void 0?n.placement:v,p=i.boundary,rt=p===void 0?uo:p,w=i.rootBoundary,ft=w===void 0?vu:w,b=i.elementContext,r=b===void 0?ii:b,k=i.altBoundary,et=k===void 0?!1:k,d=i.padding,c=d===void 0?0:d,f=ns(typeof c!="number"?c:ts(c,ni)),ot=r===ii?fo:ii,g=n.rects.popper,l=n.elements[et?ot:r],e=gy(yi(l)?l:l.contextElement||ut(n.elements.popper),rt,ft),nt=ri(n.elements.reference),st=ls({reference:nt,element:g,strategy:"absolute",placement:y}),ht=uf(Object.assign({},g,st)),h=r===ii?ht:nt,a={top:e.top-h.top+f.top,bottom:h.bottom-e.bottom+f.bottom,left:e.left-h.left+f.left,right:h.right-e.right+f.right},tt=n.modifiersData.offset;return r===ii&&tt&&(it=tt[y],Object.keys(a).forEach(function(n){var t=[s,o].indexOf(n)>=0?1:-1,i=[u,o].indexOf(n)>=0?"y":"x";a[n]+=it[i]*t})),a}function np(n,t){var r;t===void 0&&(t={});var i=t,s=i.placement,h=i.boundary,c=i.rootBoundary,l=i.padding,a=i.flipVariations,f=i.allowedAutoPlacements,v=f===void 0?pu:f,e=ui(s),o=e?a?yu:yu.filter(function(n){return ui(n)===e}):ni,u=o.filter(function(n){return v.indexOf(n)>=0});return u.length===0&&(u=o),r=u.reduce(function(t,i){return t[i]=fi(n,{placement:i,boundary:h,rootBoundary:c,padding:l})[b(i)],t},{}),Object.keys(r).sort(function(n,t){return r[n]-r[t]})}function tp(n){if(b(n)===lr)return[];var t=pr(n);return[ss(n),t,ss(t)]}function ip(n){var t=n.state,i=n.options,k=n.name,a,ct,h,lt,at,y,vt;if(!t.modifiersData[k]._skip){var d=i.mainAxis,pt=d===void 0?!0:d,g=i.altAxis,wt=g===void 0?!0:g,bt=i.fallbackPlacements,nt=i.padding,tt=i.boundary,it=i.rootBoundary,kt=i.altBoundary,rt=i.flipVariations,p=rt===void 0?!0:rt,dt=i.allowedAutoPlacements,r=t.options.placement,gt=b(r),ni=gt===r,ti=bt||(ni||!p?[pr(r)]:tp(r)),c=[r].concat(ti).reduce(function(n,i){return n.concat(b(i)===lr?np(t,{placement:i,boundary:tt,rootBoundary:it,padding:nt,flipVariations:p,allowedAutoPlacements:dt}):i)},[]),ii=t.rects.reference,ri=t.rects.popper,ut=new Map,ft=!0,l=c[0];for(a=0;a=0,ht=st?"width":"height",w=fi(t,{placement:e,boundary:tt,rootBoundary:it,altBoundary:kt,padding:nt}),v=st?ot?s:f:ot?o:u;if(ii[ht]>ri[ht]&&(v=pr(v)),ct=pr(v),h=[],pt&&h.push(w[et]<=0),wt&&h.push(w[v]<=0,w[ct]<=0),h.every(function(n){return n})){l=e;ft=!1;break}ut.set(e,h)}if(ft)for(lt=p?3:1,at=function(n){var t=c.find(function(t){var i=ut.get(t);if(i)return i.slice(0,n).every(function(n){return n})});if(t)return l=t,"break"},y=lt;y>0;y--)if(vt=at(y),vt==="break")break;t.placement!==l&&(t.modifiersData[k]._skip=!0,t.placement=l,t.reset=!0)}}function vs(n,t,i){return i===void 0&&(i={x:0,y:0}),{top:n.top-t.height-i.y,right:n.right-t.width+i.x,bottom:n.bottom-t.height+i.y,left:n.left-t.width-i.x}}function ys(n){return[u,s,o,f].some(function(t){return n[t]>=0})}function rp(n){var t=n.state,e=n.name,o=t.rects.reference,s=t.rects.popper,h=t.modifiersData.preventOverflow,c=fi(t,{elementContext:"reference"}),l=fi(t,{altBoundary:!0}),i=vs(c,o),r=vs(l,s,h),u=ys(i),f=ys(r);t.modifiersData[e]={referenceClippingOffsets:i,popperEscapeOffsets:r,isReferenceHidden:u,hasPopperEscaped:f};t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":u,"data-popper-escaped":f})}function up(n,t,i){var o=b(n),c=[f,u].indexOf(o)>=0?-1:1,h=typeof i=="function"?i(Object.assign({},t,{placement:n})):i,r=h[0],e=h[1];return r=r||0,e=(e||0)*c,[f,s].indexOf(o)>=0?{x:e,y:r}:{x:r,y:e}}function fp(n){var t=n.state,f=n.options,e=n.name,i=f.offset,o=i===void 0?[0,0]:i,r=pu.reduce(function(n,i){return n[i]=up(i,t.rects,o),n},{}),u=r[t.placement],s=u.x,h=u.y;t.modifiersData.popperOffsets!=null&&(t.modifiersData.popperOffsets.x+=s,t.modifiersData.popperOffsets.y+=h);t.modifiersData[e]=r}function ep(n){var t=n.state,i=n.name;t.modifiersData[i]=ls({reference:t.rects.reference,element:t.rects.popper,strategy:"absolute",placement:t.placement})}function op(n){return n==="x"?"y":"x"}function sp(n){var t=n.state,h=n.options,hi=n.name,rt=h.mainAxis,ut=rt===void 0?!0:rt,et=h.altAxis,ot=et===void 0?!1:et,ci=h.boundary,li=h.rootBoundary,ai=h.altBoundary,vi=h.padding,st=h.tether,c=st===void 0?!0:st,ht=h.tetherOffset,w=ht===void 0?0:ht,a=fi(t,{boundary:ci,rootBoundary:li,padding:vi,altBoundary:ai}),yi=b(t.placement),k=ui(t.placement),ct=!k,i=ku(yi),d=op(i),r=t.modifiersData.popperOffsets,l=t.rects.reference,g=t.rects.popper,v=typeof w=="function"?w(Object.assign({},t.rects,{placement:t.placement})):w,nt={x:0,y:0},it;if(r){if(ut||ot){var lt=i==="y"?u:f,at=i==="y"?o:s,e=i==="y"?"height":"width",vt=r[i],pt=r[i]+a[lt],wt=r[i]-a[at],bt=c?-g[e]/2:0,bi=k===yt?l[e]:g[e],ki=k===yt?-g[e]:-l[e],kt=t.elements.arrow,di=c&&kt?bu(kt):{width:0,height:0},dt=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:go(),gt=dt[lt],ni=dt[at],y=yr(0,l[e],di[e]),gi=ct?l[e]/2-bt-y-gt-v:bi-y-gt-v,nr=ct?-l[e]/2+bt+y+ni+v:ki+y+ni+v,tt=t.elements.arrow&&pi(t.elements.arrow),tr=tt?i==="y"?tt.clientTop||0:tt.clientLeft||0:0,ti=t.modifiersData.offset?t.modifiersData.offset[t.placement][i]:0,ii=r[i]+gi-ti-tr,ri=r[i]+nr-ti;if(ut&&(it=yr(c?wi(pt,ii):pt,vt,c?ft(wt,ri):wt),r[i]=it,nt[i]=it-vt),ot){var ir=i==="x"?u:f,rr=i==="x"?o:s,p=r[d],ei=p+a[ir],oi=p-a[rr],si=yr(c?wi(ei,ii):ei,p,c?ft(oi,ri):oi);r[d]=si;nt[d]=si-p}}t.modifiersData[hi]=nt}}function hp(n){return{scrollLeft:n.scrollLeft,scrollTop:n.scrollTop}}function cp(n){return n!==y(n)&&c(n)?hp(n):nf(n)}function lp(n){var t=n.getBoundingClientRect(),i=t.width/n.offsetWidth||1,r=t.height/n.offsetHeight||1;return i!==1||r!==1}function ap(n,t,i){var f;i===void 0&&(i=!1);f=c(t);c(t)&&lp(t);var e=ut(t),u=ri(n),o={scrollLeft:0,scrollTop:0},r={x:0,y:0};return!f&&(f||i)||((w(t)!=="body"||rf(e))&&(o=cp(t)),c(t)?(r=ri(t),r.x+=t.clientLeft,r.y+=t.clientTop):e&&(r.x=tf(e))),{x:u.left+o.scrollLeft-r.x,y:u.top+o.scrollTop-r.y,width:u.width,height:u.height}}function vp(n){function u(n){t.add(n.name);var f=[].concat(n.requires||[],n.requiresIfExists||[]);f.forEach(function(n){if(!t.has(n)){var r=i.get(n);r&&u(r)}});r.push(n)}var i=new Map,t=new Set,r=[];return n.forEach(function(n){i.set(n.name,n)}),n.forEach(function(n){t.has(n.name)||u(n)}),r}function yp(n){var t=vp(n);return po.reduce(function(n,i){return n.concat(t.filter(function(n){return n.phase===i}))},[])}function pp(n){var t;return function(){return t||(t=new Promise(function(i){Promise.resolve().then(function(){t=undefined;i(n())})})),t}}function wp(n){var t=n.reduce(function(n,t){var i=n[t.name];return n[t.name]=i?Object.assign({},i,t,{options:Object.assign({},i.options,t.options),data:Object.assign({},i.data,t.data)}):t,n},{});return Object.keys(t).map(function(n){return t[n]})}function ks(){for(var t=arguments.length,i=new Array(t),n=0;n{lk(n,e)||i.removeAttribute(n.nodeName)})}return r.body.innerHTML}var is,us,bi,es,os,ef;const rl=1e6,ul=1e3,fu="transitionend",fl=n=>n===null||n===undefined?`${n}`:{}.toString.call(n).match(/\s([a-z]+)/i)[1].toLowerCase(),el=n=>{do n+=Math.floor(Math.random()*rl);while(document.getElementById(n));return n},gf=n=>{let t=n.getAttribute("data-bs-target");if(!t||t==="#"){let i=n.getAttribute("href");if(!i||!i.includes("#")&&!i.startsWith("."))return null;i.includes("#")&&!i.startsWith("#")&&(i=`#${i.split("#")[1]}`);t=i&&i!=="#"?i.trim():null}return t},eu=n=>{const t=gf(n);return t?document.querySelector(t)?t:null:null},tt=n=>{const t=gf(n);return t?document.querySelector(t):null},ol=n=>{if(!n)return 0;let{transitionDuration:t,transitionDelay:i}=window.getComputedStyle(n);const r=Number.parseFloat(t),u=Number.parseFloat(i);return!r&&!u?0:(t=t.split(",")[0],i=i.split(",")[0],(Number.parseFloat(t)+Number.parseFloat(i))*ul)},ne=n=>{n.dispatchEvent(new Event(fu))},ot=n=>!n||typeof n!="object"?!1:(typeof n.jquery!="undefined"&&(n=n[0]),typeof n.nodeType!="undefined"),it=n=>ot(n)?n.jquery?n[0]:n:typeof n=="string"&&n.length>0?document.querySelector(n):null,p=(n,t,i)=>{Object.keys(i).forEach(r=>{const f=i[r],u=t[r],e=u&&ot(u)?"element":fl(u);if(!new RegExp(f).test(e))throw new TypeError(`${n.toUpperCase()}: Option "${r}" provided type "${e}" but expected type "${f}".`);})},ci=n=>!ot(n)||n.getClientRects().length===0?!1:getComputedStyle(n).getPropertyValue("visibility")==="visible",st=n=>!n||n.nodeType!==Node.ELEMENT_NODE?!0:n.classList.contains("disabled")?!0:typeof n.disabled!="undefined"?n.disabled:n.hasAttribute("disabled")&&n.getAttribute("disabled")!=="false",te=n=>{if(!document.documentElement.attachShadow)return null;if(typeof n.getRootNode=="function"){const t=n.getRootNode();return t instanceof ShadowRoot?t:null}return n instanceof ShadowRoot?n:n.parentNode?te(n.parentNode):null},fr=()=>{},kt=n=>{n.offsetHeight},ie=()=>{const{jQuery:n}=window;return n&&!document.body.hasAttribute("data-bs-no-jquery")?n:null},ou=[],sl=n=>{document.readyState==="loading"?(ou.length||document.addEventListener("DOMContentLoaded",()=>{ou.forEach(n=>n())}),ou.push(n)):n()},r=()=>document.documentElement.dir==="rtl",h=n=>{sl(()=>{const t=ie();if(t){const i=n.NAME,r=t.fn[i];t.fn[i]=n.jQueryInterface;t.fn[i].Constructor=n;t.fn[i].noConflict=()=>(t.fn[i]=r,n.jQueryInterface)}})},ht=n=>{typeof n=="function"&&n()},re=(n,t,i=true)=>{if(!i){ht(n);return}const f=ol(t)+5;let r=!1;const u=({target:i})=>{i===t&&(r=!0,t.removeEventListener(fu,u),ht(n))};t.addEventListener(fu,u);setTimeout(()=>{r||ne(t)},f)},ue=(n,t,i,r)=>{let u=n.indexOf(t);if(u===-1)return n[!i&&r?n.length-1:0];const f=n.length;return u+=i?1:-1,r&&(u=(u+f)%f),n[Math.max(0,Math.min(u,f-1))]},hl=/[^.]*(?=\..*)\.|.*/,cl=/\..*/,ll=/::\d+$/,su={};let fe=1;const al={mouseenter:"mouseover",mouseleave:"mouseout"},vl=/^(mouseenter|mouseleave)/i,ee=new Set(["click","dblclick","mouseup","mousedown","contextmenu","mousewheel","DOMMouseScroll","mouseover","mouseout","mousemove","selectstart","selectend","keydown","keypress","keyup","orientationchange","touchstart","touchmove","touchend","touchcancel","pointerdown","pointermove","pointerup","pointerleave","pointercancel","gesturestart","gesturechange","gestureend","focus","blur","change","reset","select","submit","focusin","focusout","load","unload","beforeunload","resize","move","DOMContentLoaded","readystatechange","error","abort","scroll"]);const n={on(n,t,i,r){le(n,t,i,r,!1)},one(n,t,i,r){le(n,t,i,r,!0)},off(n,t,i,r){if(typeof t=="string"&&n){const[s,e,f]=ce(t,i,r),h=f!==t,u=se(n),c=t.startsWith(".");if(typeof e!="undefined"){if(!u||!u[f])return;hu(n,u,f,e,s?i:null);return}c&&Object.keys(u).forEach(i=>{wl(n,u,i,t.slice(1))});const o=u[f]||{};Object.keys(o).forEach(i=>{const r=i.replace(ll,"");if(!h||t.includes(r)){const t=o[i];hu(n,u,f,t.originalHandler,t.delegationSelector)}})}},trigger(n,t,i){if(typeof t!="string"||!n)return null;const f=ie(),e=ae(t),c=t!==e,l=ee.has(e);let u,o=!0,s=!0,h=!1,r=null;return c&&f&&(u=f.Event(t,i),f(n).trigger(u),o=!u.isPropagationStopped(),s=!u.isImmediatePropagationStopped(),h=u.isDefaultPrevented()),l?(r=document.createEvent("HTMLEvents"),r.initEvent(e,o,!0)):r=new CustomEvent(t,{bubbles:o,cancelable:!0}),typeof i!="undefined"&&Object.keys(i).forEach(n=>{Object.defineProperty(r,n,{get(){return i[n]}})}),h&&r.preventDefault(),s&&n.dispatchEvent(r),r.defaultPrevented&&typeof u!="undefined"&&u.preventDefault(),r}},rt=new Map,li={set(n,t,i){rt.has(n)||rt.set(n,new Map);const r=rt.get(n);if(!r.has(t)&&r.size!==0){console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(r.keys())[0]}.`);return}r.set(t,i)},get(n,t){return rt.has(n)?rt.get(n).get(t)||null:null},remove(n,t){if(rt.has(n)){const i=rt.get(n);i.delete(t);i.size===0&&rt.delete(n)}}},bl="5.1.3";class v{constructor(n){(n=it(n),n)&&(this._element=n,li.set(this._element,this.constructor.DATA_KEY,this))}dispose(){li.remove(this._element,this.constructor.DATA_KEY);n.off(this._element,this.constructor.EVENT_KEY);Object.getOwnPropertyNames(this).forEach(n=>{this[n]=null})}_queueCallback(n,t,i=true){re(n,t,i)}static getInstance(n){return li.get(it(n),this.DATA_KEY)}static getOrCreateInstance(n,t={}){return this.getInstance(n)||new this(n,typeof t=="object"?t:null)}static get VERSION(){return bl}static get NAME(){throw new Error('You have to implement the static method "NAME", for each component!');}static get DATA_KEY(){return`bs.${this.NAME}`}static get EVENT_KEY(){return`.${this.DATA_KEY}`}}const er=(t,i="hide")=>{const u=`click.dismiss${t.EVENT_KEY}`,r=t.NAME;n.on(document,u,`[data-bs-dismiss="${r}"]`,function(n){if(["A","AREA"].includes(this.tagName)&&n.preventDefault(),!st(this)){const u=tt(this)||this.closest(`.${r}`),f=t.getOrCreateInstance(u);f[i]()}})},kl="alert",ve=`.${"bs.alert"}`,dl=`close${ve}`,gl=`closed${ve}`,na="fade",ta="show";class or extends v{static get NAME(){return kl}close(){const t=n.trigger(this._element,dl);if(!t.defaultPrevented){this._element.classList.remove(ta);const i=this._element.classList.contains(na);this._queueCallback(()=>this._destroyElement(),this._element,i)}}_destroyElement(){this._element.remove();n.trigger(this._element,gl);this.dispose()}static jQueryInterface(n){return this.each(function(){const t=or.getOrCreateInstance(this);if(typeof n=="string"){if(t[n]===undefined||n.startsWith("_")||n==="constructor")throw new TypeError(`No method named "${n}"`);t[n](this)}})}}er(or,"close");h(or);const ia="button",ra=`.${"bs.button"}`,ua="active",ye='[data-bs-toggle="button"]',fa=`click${ra}${".data-api"}`;class sr extends v{static get NAME(){return ia}toggle(){this._element.setAttribute("aria-pressed",this._element.classList.toggle(ua))}static jQueryInterface(n){return this.each(function(){const t=sr.getOrCreateInstance(this);n==="toggle"&&t[n]()})}}n.on(document,fa,ye,n=>{n.preventDefault();const t=n.target.closest(ye),i=sr.getOrCreateInstance(t);i.toggle()});h(sr);const i={setDataAttribute(n,t,i){n.setAttribute(`data-bs-${cu(t)}`,i)},removeDataAttribute(n,t){n.removeAttribute(`data-bs-${cu(t)}`)},getDataAttributes(n){if(!n)return{};const t={};return Object.keys(n.dataset).filter(n=>n.startsWith("bs")).forEach(i=>{let r=i.replace(/^bs/,"");r=r.charAt(0).toLowerCase()+r.slice(1,r.length);t[r]=pe(n.dataset[i])}),t},getDataAttribute(n,t){return pe(n.getAttribute(`data-bs-${cu(t)}`))},offset(n){const t=n.getBoundingClientRect();return{top:t.top+window.pageYOffset,left:t.left+window.pageXOffset}},position(n){return{top:n.offsetTop,left:n.offsetLeft}}},ea=3,t={find(n,t=document.documentElement){return[].concat(...Element.prototype.querySelectorAll.call(t,n))},findOne(n,t=document.documentElement){return Element.prototype.querySelector.call(t,n)},children(n,t){return[].concat(...n.children).filter(n=>n.matches(t))},parents(n,t){const r=[];let i=n.parentNode;while(i&&i.nodeType===Node.ELEMENT_NODE&&i.nodeType!==ea)i.matches(t)&&r.push(i),i=i.parentNode;return r},prev(n,t){let i=n.previousElementSibling;while(i){if(i.matches(t))return[i];i=i.previousElementSibling}return[]},next(n,t){let i=n.nextElementSibling;while(i){if(i.matches(t))return[i];i=i.nextElementSibling}return[]},focusableChildren(n){const t=["a","button","input","textarea","select","details","[tabindex]",'[contenteditable="true"]'].map(n=>`${n}:not([tabindex^="-"])`).join(", ");return this.find(t,n).filter(n=>!st(n)&&ci(n))}},we="carousel",e=`.${"bs.carousel"}`,be=".data-api",oa=500,sa=40,ke={interval:5e3,keyboard:!0,slide:!1,pause:"hover",wrap:!0,touch:!0},ha={interval:"(number|boolean)",keyboard:"boolean",slide:"(boolean|string)",pause:"(string|boolean)",wrap:"boolean",touch:"boolean"},ct="next",lt="prev",at="left",ai="right",ca={["ArrowLeft"]:ai,["ArrowRight"]:at},la=`slide${e}`,de=`slid${e}`,aa=`keydown${e}`,va=`mouseenter${e}`,ya=`mouseleave${e}`,pa=`touchstart${e}`,wa=`touchmove${e}`,ba=`touchend${e}`,ka=`pointerdown${e}`,da=`pointerup${e}`,ga=`dragstart${e}`,nv=`load${e}${be}`,tv=`click${e}${be}`,iv="carousel",vt="active",rv="slide",uv="carousel-item-end",fv="carousel-item-start",ev="carousel-item-next",ov="carousel-item-prev",sv="pointer-event",hv=".active",hr=".active.carousel-item",cv=".carousel-item",lv=".carousel-item img",av=".carousel-item-next, .carousel-item-prev",vv=".carousel-indicators",yv="[data-bs-target]",pv='[data-bs-ride="carousel"]',wv="touch",bv="pen";class g extends v{constructor(n,i){super(n);this._items=null;this._interval=null;this._activeElement=null;this._isPaused=!1;this._isSliding=!1;this.touchTimeout=null;this.touchStartX=0;this.touchDeltaX=0;this._config=this._getConfig(i);this._indicatorsElement=t.findOne(vv,this._element);this._touchSupported="ontouchstart"in document.documentElement||navigator.maxTouchPoints>0;this._pointerEvent=Boolean(window.PointerEvent);this._addEventListeners()}static get Default(){return ke}static get NAME(){return we}next(){this._slide(ct)}nextWhenVisible(){!document.hidden&&ci(this._element)&&this.next()}prev(){this._slide(lt)}pause(n){n||(this._isPaused=!0);t.findOne(av,this._element)&&(ne(this._element),this.cycle(!0));clearInterval(this._interval);this._interval=null}cycle(n){n||(this._isPaused=!1);this._interval&&(clearInterval(this._interval),this._interval=null);this._config&&this._config.interval&&!this._isPaused&&(this._updateInterval(),this._interval=setInterval((document.visibilityState?this.nextWhenVisible:this.next).bind(this),this._config.interval))}to(i){this._activeElement=t.findOne(hr,this._element);const r=this._getItemIndex(this._activeElement);if(!(i>this._items.length-1)&&!(i<0)){if(this._isSliding){n.one(this._element,de,()=>this.to(i));return}if(r===i){this.pause();this.cycle();return}const u=i>r?ct:lt;this._slide(u,this._items[i])}}_getConfig(n){return n={...ke,...i.getDataAttributes(this._element),...(typeof n=="object"?n:{})},p(we,n,ha),n}_handleSwipe(){const n=Math.abs(this.touchDeltaX);if(!(n<=sa)){const t=n/this.touchDeltaX;(this.touchDeltaX=0,t)&&this._slide(t>0?ai:at)}}_addEventListeners(){if(this._config.keyboard)n.on(this._element,aa,n=>this._keydown(n));if(this._config.pause==="hover"){n.on(this._element,va,n=>this.pause(n));n.on(this._element,ya,n=>this.cycle(n))}this._config.touch&&this._touchSupported&&this._addTouchEventListeners()}_addTouchEventListeners(){const i=n=>this._pointerEvent&&(n.pointerType===bv||n.pointerType===wv),r=n=>{i(n)?this.touchStartX=n.clientX:this._pointerEvent||(this.touchStartX=n.touches[0].clientX)},f=n=>{this.touchDeltaX=n.touches&&n.touches.length>1?0:n.touches[0].clientX-this.touchStartX},u=n=>{i(n)&&(this.touchDeltaX=n.clientX-this.touchStartX),this._handleSwipe(),this._config.pause==="hover"&&(this.pause(),this.touchTimeout&&clearTimeout(this.touchTimeout),this.touchTimeout=setTimeout(n=>this.cycle(n),oa+this._config.interval))};if(t.find(lv,this._element).forEach(t=>{n.on(t,ga,n=>n.preventDefault())}),this._pointerEvent){n.on(this._element,ka,n=>r(n));n.on(this._element,da,n=>u(n));this._element.classList.add(sv)}else{n.on(this._element,pa,n=>r(n));n.on(this._element,wa,n=>f(n));n.on(this._element,ba,n=>u(n))}}_keydown(n){if(!/input|textarea/i.test(n.target.tagName)){const t=ca[n.key];t&&(n.preventDefault(),this._slide(t))}}_getItemIndex(n){return this._items=n&&n.parentNode?t.find(cv,n.parentNode):[],this._items.indexOf(n)}_getItemByOrder(n,t){const i=n===ct;return ue(this._items,t,i,this._config.wrap)}_triggerSlideEvent(i,r){const u=this._getItemIndex(i),f=this._getItemIndex(t.findOne(hr,this._element));return n.trigger(this._element,la,{relatedTarget:i,direction:r,from:f,to:u})}_setActiveIndicatorElement(n){if(this._indicatorsElement){const r=t.findOne(hv,this._indicatorsElement);r.classList.remove(vt);r.removeAttribute("aria-current");const i=t.find(yv,this._indicatorsElement);for(let t=0;t{n.trigger(this._element,de,{relatedTarget:u,direction:l,from:v,to:y})};if(this._element.classList.contains(rv)){u.classList.add(s);kt(u);f.classList.add(e);u.classList.add(e);const n=()=>{u.classList.remove(e,s),u.classList.add(vt),f.classList.remove(vt,s,e),this._isSliding=!1,setTimeout(a,0)};this._queueCallback(n,f,!0)}else f.classList.remove(vt),u.classList.add(vt),this._isSliding=!1,a();h&&this.cycle()}}}_directionToOrder(n){return[ai,at].includes(n)?r()?n===at?lt:ct:n===at?ct:lt:n}_orderToDirection(n){return[ct,lt].includes(n)?r()?n===lt?at:ai:n===lt?ai:at:n}static carouselInterface(n,t){const i=g.getOrCreateInstance(n,t);let{_config:r}=i;typeof t=="object"&&(r={...r,...t});const u=typeof t=="string"?t:r.slide;if(typeof t=="number")i.to(t);else if(typeof u=="string"){if(typeof i[u]=="undefined")throw new TypeError(`No method named "${u}"`);i[u]()}else r.interval&&r.ride&&(i.pause(),i.cycle())}static jQueryInterface(n){return this.each(function(){g.carouselInterface(this,n)})}static dataApiClickHandler(n){const t=tt(this);if(t&&t.classList.contains(iv)){const u={...i.getDataAttributes(t),...i.getDataAttributes(this)},r=this.getAttribute("data-bs-slide-to");r&&(u.interval=!1);g.carouselInterface(t,u);r&&g.getInstance(t).to(r);n.preventDefault()}}}n.on(document,tv,"[data-bs-slide], [data-bs-slide-to]",g.dataApiClickHandler);n.on(window,nv,()=>{const n=t.find(pv);for(let t=0,i=n.length;tn===this._element);i!==null&&f.length&&(this._selector=i,this._triggerArray.push(u))}this._initializeChildren();this._config.parent||this._addAriaAndCollapsedClass(this._triggerArray,this._isShown());this._config.toggle&&this.toggle()}static get Default(){return to}static get NAME(){return ge}toggle(){this._isShown()?this.hide():this.show()}show(){if(!this._isTransitioning&&!this._isShown()){let r=[],u;if(this._config.parent){const n=t.find(ro,this._config.parent);r=t.find(ey,this._config.parent).filter(t=>!n.includes(t))}const f=t.findOne(this._selector);if(r.length){const n=r.find(n=>f!==n);if(u=n?gt.getInstance(n):null,u&&u._isTransitioning)return}const e=n.trigger(this._element,dv);if(!e.defaultPrevented){r.forEach(n=>{f!==n&>.getOrCreateInstance(n,{toggle:!1}).hide(),u||li.set(n,no,null)});const i=this._getDimension();this._element.classList.remove(dt);this._element.classList.add(cr);this._element.style[i]=0;this._addAriaAndCollapsedClass(this._triggerArray,!0);this._isTransitioning=!0;const o=()=>{this._isTransitioning=!1,this._element.classList.remove(cr),this._element.classList.add(dt,lu),this._element.style[i]="",n.trigger(this._element,gv)},s=i[0].toUpperCase()+i.slice(1),h=`scroll${s}`;this._queueCallback(o,this._element,!0);this._element.style[i]=`${this._element[h]}px`}}}hide(){if(!this._isTransitioning&&this._isShown()){const i=n.trigger(this._element,ny);if(!i.defaultPrevented){const t=this._getDimension();this._element.style[t]=`${this._element.getBoundingClientRect()[t]}px`;kt(this._element);this._element.classList.add(cr);this._element.classList.remove(dt,lu);const r=this._triggerArray.length;for(let n=0;n{this._isTransitioning=!1,this._element.classList.remove(cr),this._element.classList.add(dt),n.trigger(this._element,ty)};this._element.style[t]="";this._queueCallback(u,this._element,!0)}}}_isShown(n=this._element){return n.classList.contains(lu)}_getConfig(n){return n={...to,...i.getDataAttributes(this._element),...n},n.toggle=Boolean(n.toggle),n.parent=it(n.parent),p(ge,n,kv),n}_getDimension(){return this._element.classList.contains(ry)?uy:fy}_initializeChildren(){if(this._config.parent){const n=t.find(ro,this._config.parent);t.find(au,this._config.parent).filter(t=>!n.includes(t)).forEach(n=>{const t=tt(n);t&&this._addAriaAndCollapsedClass([n],this._isShown(t))})}}_addAriaAndCollapsedClass(n,t){n.length&&n.forEach(n=>{t?n.classList.remove(io):n.classList.add(io),n.setAttribute("aria-expanded",t)})}static jQueryInterface(n){return this.each(function(){const t={};typeof n=="string"&&/show|hide/.test(n)&&(t.toggle=!1);const i=gt.getOrCreateInstance(this,t);if(typeof n=="string"){if(typeof i[n]=="undefined")throw new TypeError(`No method named "${n}"`);i[n]()}})}}n.on(document,iy,au,function(n){(n.target.tagName==="A"||n.delegateTarget&&n.delegateTarget.tagName==="A")&&n.preventDefault();const i=eu(this),r=t.find(i);r.forEach(n=>{gt.getOrCreateInstance(n,{toggle:!1}).toggle()})});h(gt);var u="top",o="bottom",s="right",f="left",lr="auto",ni=[u,o,s,f],yt="start",ti="end",uo="clippingParents",vu="viewport",ii="popper",fo="reference",yu=ni.reduce(function(n,t){return n.concat([t+"-"+yt,t+"-"+ti])},[]),pu=[].concat(ni,[lr]).reduce(function(n,t){return n.concat([t,t+"-"+yt,t+"-"+ti])},[]),eo="beforeRead",oo="read",so="afterRead",ho="beforeMain",co="main",lo="afterMain",ao="beforeWrite",vo="write",yo="afterWrite",po=[eo,oo,so,ho,co,lo,ao,vo,yo];const wu={name:"applyStyles",enabled:!0,phase:"write",fn:oy,effect:sy,requires:["computeStyles"]};var ft=Math.max,wi=Math.min,vr=Math.round;is=function(n,t){return n=typeof n=="function"?n(Object.assign({},t.rects,{placement:t.placement})):n,ns(typeof n!="number"?n:ts(n,ni))};const rs={name:"arrow",enabled:!0,phase:"main",fn:ly,effect:ay,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};us={top:"auto",right:"auto",bottom:"auto",left:"auto"};const du={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:yy,data:{}};bi={passive:!0};const gu={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:py,data:{}};es={left:"right",right:"left",bottom:"top",top:"bottom"};os={start:"end",end:"start"};const as={name:"flip",enabled:!0,phase:"main",fn:ip,requiresIfExists:["offset"],data:{_skip:!1}};const ps={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:rp};const ws={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:fp};const ff={name:"popperOffsets",enabled:!0,phase:"read",fn:ep,data:{}};const bs={name:"preventOverflow",enabled:!0,phase:"main",fn:sp,requiresIfExists:["offset"]};ef={placement:"bottom",modifiers:[],strategy:"absolute"};var bp=wr(),kp=[gu,ff,du,wu],dp=wr({defaultModifiers:kp}),gp=[gu,ff,du,wu,ws,as,bs,rs,ps],sf=wr({defaultModifiers:gp});const ds=Object.freeze({__proto__:null,popperGenerator:wr,detectOverflow:fi,createPopperBase:bp,createPopper:sf,createPopperLite:dp,top:u,bottom:o,right:s,left:f,auto:lr,basePlacements:ni,start:yt,end:ti,clippingParents:uo,viewport:vu,popper:ii,reference:fo,variationPlacements:yu,placements:pu,beforeRead:eo,read:oo,afterRead:so,beforeMain:ho,main:co,afterMain:lo,beforeWrite:ao,write:vo,afterWrite:yo,modifierPhases:po,applyStyles:wu,arrow:rs,computeStyles:du,eventListeners:gu,flip:as,hide:ps,offset:ws,popperOffsets:ff,preventOverflow:bs}),hf="dropdown",pt=`.${"bs.dropdown"}`,cf=".data-api",br="Escape",gs="Space",nh="Tab",lf="ArrowUp",kr="ArrowDown",nw=2,tw=new RegExp(`${lf}|${kr}|${br}`),iw=`hide${pt}`,rw=`hidden${pt}`,uw=`show${pt}`,fw=`shown${pt}`,th=`click${pt}${cf}`,ih=`keydown${pt}${cf}`,ew=`keyup${pt}${cf}`,ei="show",ow="dropup",sw="dropend",hw="dropstart",cw="navbar",di='[data-bs-toggle="dropdown"]',af=".dropdown-menu",lw=".navbar-nav",aw=".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",vw=r()?"top-end":"top-start",yw=r()?"top-start":"top-end",pw=r()?"bottom-end":"bottom-start",ww=r()?"bottom-start":"bottom-end",bw=r()?"left-start":"right-start",kw=r()?"right-start":"left-start",dw={offset:[0,2],boundary:"clippingParents",reference:"toggle",display:"dynamic",popperConfig:null,autoClose:!0},gw={offset:"(array|string|function)",boundary:"(string|element)",reference:"(string|element|object)",display:"string",popperConfig:"(null|object|function)",autoClose:"(boolean|string)"};class l extends v{constructor(n,t){super(n);this._popper=null;this._config=this._getConfig(t);this._menu=this._getMenuElement();this._inNavbar=this._detectNavbar()}static get Default(){return dw}static get DefaultType(){return gw}static get NAME(){return hf}toggle(){return this._isShown()?this.hide():this.show()}show(){if(!st(this._element)&&!this._isShown(this._menu)){const t={relatedTarget:this._element},u=n.trigger(this._element,uw,t);if(!u.defaultPrevented){const r=l.getParentFromElement(this._element);this._inNavbar?i.setDataAttribute(this._menu,"popper","none"):this._createPopper(r);"ontouchstart"in document.documentElement&&!r.closest(lw)&&[].concat(...document.body.children).forEach(t=>n.on(t,"mouseover",fr));this._element.focus();this._element.setAttribute("aria-expanded",!0);this._menu.classList.add(ei);this._element.classList.add(ei);n.trigger(this._element,fw,t)}}}hide(){if(!st(this._element)&&this._isShown(this._menu)){const n={relatedTarget:this._element};this._completeHide(n)}}dispose(){this._popper&&this._popper.destroy();super.dispose()}update(){this._inNavbar=this._detectNavbar();this._popper&&this._popper.update()}_completeHide(t){const r=n.trigger(this._element,iw,t);r.defaultPrevented||("ontouchstart"in document.documentElement&&[].concat(...document.body.children).forEach(t=>n.off(t,"mouseover",fr)),this._popper&&this._popper.destroy(),this._menu.classList.remove(ei),this._element.classList.remove(ei),this._element.setAttribute("aria-expanded","false"),i.removeDataAttribute(this._menu,"popper"),n.trigger(this._element,rw,t))}_getConfig(n){if(n={...this.constructor.Default,...i.getDataAttributes(this._element),...n},p(hf,n,this.constructor.DefaultType),typeof n.reference=="object"&&!ot(n.reference)&&typeof n.reference.getBoundingClientRect!="function")throw new TypeError(`${hf.toUpperCase()}: Option "reference" provided type "object" without a required "getBoundingClientRect" method.`);return n}_createPopper(n){if(typeof ds=="undefined")throw new TypeError("Bootstrap's dropdowns require Popper (https://popper.js.org)");let t=this._element;this._config.reference==="parent"?t=n:ot(this._config.reference)?t=it(this._config.reference):typeof this._config.reference=="object"&&(t=this._config.reference);const r=this._getPopperConfig(),u=r.modifiers.find(n=>n.name==="applyStyles"&&n.enabled===!1);this._popper=sf(t,this._menu,r);u&&i.setDataAttribute(this._menu,"popper","static")}_isShown(n=this._element){return n.classList.contains(ei)}_getMenuElement(){return t.next(this._element,af)[0]}_getPlacement(){const n=this._element.parentNode;if(n.classList.contains(sw))return bw;if(n.classList.contains(hw))return kw;const t=getComputedStyle(this._menu).getPropertyValue("--bs-position").trim()==="end";return n.classList.contains(ow)?t?yw:vw:t?ww:pw}_detectNavbar(){return this._element.closest(`.${cw}`)!==null}_getOffset(){const{offset:n}=this._config;return typeof n=="string"?n.split(",").map(n=>Number.parseInt(n,10)):typeof n=="function"?t=>n(t,this._element):n}_getPopperConfig(){const n={placement:this._getPlacement(),modifiers:[{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"offset",options:{offset:this._getOffset()}}]};return this._config.display==="static"&&(n.modifiers=[{name:"applyStyles",enabled:!1}]),{...n,...(typeof this._config.popperConfig=="function"?this._config.popperConfig(n):this._config.popperConfig)}}_selectMenuItem({key:n,target:i}){const r=t.find(aw,this._menu).filter(ci);r.length&&ue(r,i,n===kr,!r.includes(i)).focus()}static jQueryInterface(n){return this.each(function(){const t=l.getOrCreateInstance(this,n);if(typeof n=="string"){if(typeof t[n]=="undefined")throw new TypeError(`No method named "${n}"`);t[n]()}})}static clearMenus(n){if(!n||n.button!==nw&&(n.type!=="keyup"||n.key===nh)){const i=t.find(di);for(let t=0,r=i.length;tt+n);this._setElementAttributes(rh,"paddingRight",t=>t+n);this._setElementAttributes(uh,"marginRight",t=>t-n)}_disableOverFlow(){this._saveInitialAttribute(this._element,"overflow");this._element.style.overflow="hidden"}_setElementAttributes(n,t,i){const r=this.getWidth(),u=n=>{if(n===this._element||!(window.innerWidth>n.clientWidth+r)){this._saveInitialAttribute(n,t);const u=window.getComputedStyle(n)[t];n.style[t]=`${i(Number.parseFloat(u))}px`}};this._applyManipulationCallback(n,u)}reset(){this._resetElementAttributes(this._element,"overflow");this._resetElementAttributes(this._element,"paddingRight");this._resetElementAttributes(rh,"paddingRight");this._resetElementAttributes(uh,"marginRight")}_saveInitialAttribute(n,t){const r=n.style[t];r&&i.setDataAttribute(n,t,r)}_resetElementAttributes(n,t){const r=n=>{const r=i.getDataAttribute(n,t);typeof r=="undefined"?n.style.removeProperty(t):(i.removeDataAttribute(n,t),n.style[t]=r)};this._applyManipulationCallback(n,r)}_applyManipulationCallback(n,i){ot(n)?i(n):t.find(n,this._element).forEach(i)}isOverflowing(){return this.getWidth()>0}}const nb={className:"modal-backdrop",isVisible:!0,isAnimated:!1,rootElement:"body",clickCallback:null},tb={className:"string",isVisible:"boolean",isAnimated:"boolean",rootElement:"(element|string)",clickCallback:"(function|null)"},fh="backdrop",ib="fade",eh="show",oh=`mousedown.bs.${fh}`;class sh{constructor(n){this._config=this._getConfig(n);this._isAppended=!1;this._element=null}show(n){if(!this._config.isVisible){ht(n);return}this._append();this._config.isAnimated&&kt(this._getElement());this._getElement().classList.add(eh);this._emulateAnimation(()=>{ht(n)})}hide(n){if(!this._config.isVisible){ht(n);return}this._getElement().classList.remove(eh);this._emulateAnimation(()=>{this.dispose(),ht(n)})}_getElement(){if(!this._element){const n=document.createElement("div");n.className=this._config.className;this._config.isAnimated&&n.classList.add(ib);this._element=n}return this._element}_getConfig(n){return n={...nb,...(typeof n=="object"?n:{})},n.rootElement=it(n.rootElement),p(fh,n,tb),n}_append(){if(!this._isAppended){this._config.rootElement.append(this._getElement());n.on(this._getElement(),oh,()=>{ht(this._config.clickCallback)});this._isAppended=!0}}dispose(){this._isAppended&&(n.off(this._element,oh),this._element.remove(),this._isAppended=!1)}_emulateAnimation(n){re(n,this._getElement(),this._config.isAnimated)}}const rb={trapElement:null,autofocus:!0},ub={trapElement:"element",autofocus:"boolean"},fb="focustrap",dr=`.${"bs.focustrap"}`,eb=`focusin${dr}`,ob=`keydown.tab${dr}`,sb="Tab",hb="forward",hh="backward";class ch{constructor(n){this._config=this._getConfig(n);this._isActive=!1;this._lastTabNavDirection=null}activate(){const{trapElement:t,autofocus:i}=this._config;if(!this._isActive){i&&t.focus();n.off(document,dr);n.on(document,eb,n=>this._handleFocusin(n));n.on(document,ob,n=>this._handleKeydown(n));this._isActive=!0}}deactivate(){this._isActive&&(this._isActive=!1,n.off(document,dr))}_handleFocusin(n){const{target:u}=n,{trapElement:i}=this._config;if(u!==document&&u!==i&&!i.contains(u)){const r=t.focusableChildren(i);r.length===0?i.focus():this._lastTabNavDirection===hh?r[r.length-1].focus():r[0].focus()}}_handleKeydown(n){n.key===sb&&(this._lastTabNavDirection=n.shiftKey?hh:hb)}_getConfig(n){return n={...rb,...(typeof n=="object"?n:{})},p(fb,n,ub),n}}const lh="modal",a=`.${"bs.modal"}`,ah="Escape",vh={backdrop:!0,keyboard:!0,focus:!0},cb={backdrop:"(boolean|string)",keyboard:"boolean",focus:"boolean"},lb=`hide${a}`,ab=`hidePrevented${a}`,yh=`hidden${a}`,ph=`show${a}`,vb=`shown${a}`,wh=`resize${a}`,bh=`click.dismiss${a}`,kh=`keydown.dismiss${a}`,yb=`mouseup.dismiss${a}`,dh=`mousedown.dismiss${a}`,pb=`click${a}${".data-api"}`,gh="modal-open",wb="fade",nc="show",yf="modal-static",bb=".modal.show",kb=".modal-dialog",db=".modal-body";class oi extends v{constructor(n,i){super(n);this._config=this._getConfig(i);this._dialog=t.findOne(kb,this._element);this._backdrop=this._initializeBackDrop();this._focustrap=this._initializeFocusTrap();this._isShown=!1;this._ignoreBackdropClick=!1;this._isTransitioning=!1;this._scrollBar=new vf}static get Default(){return vh}static get NAME(){return lh}toggle(n){return this._isShown?this.hide():this.show(n)}show(t){if(!this._isShown&&!this._isTransitioning){const i=n.trigger(this._element,ph,{relatedTarget:t});if(!i.defaultPrevented){this._isShown=!0;this._isAnimated()&&(this._isTransitioning=!0);this._scrollBar.hide();document.body.classList.add(gh);this._adjustDialog();this._setEscapeEvent();this._setResizeEvent();n.on(this._dialog,dh,()=>{n.one(this._element,yb,n=>{n.target===this._element&&(this._ignoreBackdropClick=!0)})});this._showBackdrop(()=>this._showElement(t))}}}hide(){if(this._isShown&&!this._isTransitioning){const i=n.trigger(this._element,lb);if(!i.defaultPrevented){this._isShown=!1;const t=this._isAnimated();t&&(this._isTransitioning=!0);this._setEscapeEvent();this._setResizeEvent();this._focustrap.deactivate();this._element.classList.remove(nc);n.off(this._element,bh);n.off(this._dialog,dh);this._queueCallback(()=>this._hideModal(),this._element,t)}}}dispose(){[window,this._dialog].forEach(t=>n.off(t,a));this._backdrop.dispose();this._focustrap.deactivate();super.dispose()}handleUpdate(){this._adjustDialog()}_initializeBackDrop(){return new sh({isVisible:Boolean(this._config.backdrop),isAnimated:this._isAnimated()})}_initializeFocusTrap(){return new ch({trapElement:this._element})}_getConfig(n){return n={...vh,...i.getDataAttributes(this._element),...(typeof n=="object"?n:{})},p(lh,n,cb),n}_showElement(i){const r=this._isAnimated(),u=t.findOne(db,this._dialog);this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE||document.body.append(this._element);this._element.style.display="block";this._element.removeAttribute("aria-hidden");this._element.setAttribute("aria-modal",!0);this._element.setAttribute("role","dialog");this._element.scrollTop=0;u&&(u.scrollTop=0);r&&kt(this._element);this._element.classList.add(nc);const f=()=>{this._config.focus&&this._focustrap.activate(),this._isTransitioning=!1,n.trigger(this._element,vb,{relatedTarget:i})};this._queueCallback(f,this._dialog,r)}_setEscapeEvent(){if(this._isShown)n.on(this._element,kh,n=>{this._config.keyboard&&n.key===ah?(n.preventDefault(),this.hide()):this._config.keyboard||n.key!==ah||this._triggerBackdropTransition()});else n.off(this._element,kh)}_setResizeEvent(){if(this._isShown)n.on(window,wh,()=>this._adjustDialog());else n.off(window,wh)}_hideModal(){this._element.style.display="none";this._element.setAttribute("aria-hidden",!0);this._element.removeAttribute("aria-modal");this._element.removeAttribute("role");this._isTransitioning=!1;this._backdrop.hide(()=>{document.body.classList.remove(gh),this._resetAdjustments(),this._scrollBar.reset(),n.trigger(this._element,yh)})}_showBackdrop(t){n.on(this._element,bh,n=>{if(this._ignoreBackdropClick){this._ignoreBackdropClick=!1;return}n.target===n.currentTarget&&(this._config.backdrop===!0?this.hide():this._config.backdrop==="static"&&this._triggerBackdropTransition())});this._backdrop.show(t)}_isAnimated(){return this._element.classList.contains(wb)}_triggerBackdropTransition(){const u=n.trigger(this._element,ab);if(!u.defaultPrevented){const{classList:t,scrollHeight:f,style:i}=this._element,r=f>document.documentElement.clientHeight;(r||i.overflowY!=="hidden")&&!t.contains(yf)&&(r||(i.overflowY="hidden"),t.add(yf),this._queueCallback(()=>{t.remove(yf),r||this._queueCallback(()=>{i.overflowY=""},this._dialog)},this._dialog),this._element.focus())}}_adjustDialog(){const n=this._element.scrollHeight>document.documentElement.clientHeight,i=this._scrollBar.getWidth(),t=i>0;(!t&&n&&!r()||t&&!n&&r())&&(this._element.style.paddingLeft=`${i}px`);(t&&!n&&!r()||!t&&n&&r())&&(this._element.style.paddingRight=`${i}px`)}_resetAdjustments(){this._element.style.paddingLeft="";this._element.style.paddingRight=""}static jQueryInterface(n,t){return this.each(function(){const i=oi.getOrCreateInstance(this,n);if(typeof n=="string"){if(typeof i[n]=="undefined")throw new TypeError(`No method named "${n}"`);i[n](t)}})}}n.on(document,pb,'[data-bs-toggle="modal"]',function(i){const r=tt(this);["A","AREA"].includes(this.tagName)&&i.preventDefault();n.one(r,ph,t=>{if(!t.defaultPrevented)n.one(r,yh,()=>{ci(this)&&this.focus()})});const u=t.findOne(bb);u&&oi.getInstance(u).hide();const f=oi.getOrCreateInstance(r);f.toggle(this)});er(oi);h(oi);const tc="offcanvas",wt=`.${"bs.offcanvas"}`,ic=".data-api",gb=`load${wt}${ic}`,nk="Escape",rc={backdrop:!0,keyboard:!0,scroll:!1},tk={backdrop:"boolean",keyboard:"boolean",scroll:"boolean"},uc="show",ik="offcanvas-backdrop",fc=".offcanvas.show",rk=`show${wt}`,uk=`shown${wt}`,fk=`hide${wt}`,ec=`hidden${wt}`,ek=`click${wt}${ic}`,ok=`keydown.dismiss${wt}`;class bt extends v{constructor(n,t){super(n);this._config=this._getConfig(t);this._isShown=!1;this._backdrop=this._initializeBackDrop();this._focustrap=this._initializeFocusTrap();this._addEventListeners()}static get NAME(){return tc}static get Default(){return rc}toggle(n){return this._isShown?this.hide():this.show(n)}show(t){if(!this._isShown){const i=n.trigger(this._element,rk,{relatedTarget:t});if(!i.defaultPrevented){this._isShown=!0;this._element.style.visibility="visible";this._backdrop.show();this._config.scroll||(new vf).hide();this._element.removeAttribute("aria-hidden");this._element.setAttribute("aria-modal",!0);this._element.setAttribute("role","dialog");this._element.classList.add(uc);const r=()=>{this._config.scroll||this._focustrap.activate(),n.trigger(this._element,uk,{relatedTarget:t})};this._queueCallback(r,this._element,!0)}}}hide(){if(this._isShown){const t=n.trigger(this._element,fk);if(!t.defaultPrevented){this._focustrap.deactivate();this._element.blur();this._isShown=!1;this._element.classList.remove(uc);this._backdrop.hide();const i=()=>{this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._element.style.visibility="hidden",this._config.scroll||(new vf).reset(),n.trigger(this._element,ec)};this._queueCallback(i,this._element,!0)}}}dispose(){this._backdrop.dispose();this._focustrap.deactivate();super.dispose()}_getConfig(n){return n={...rc,...i.getDataAttributes(this._element),...(typeof n=="object"?n:{})},p(tc,n,tk),n}_initializeBackDrop(){return new sh({className:ik,isVisible:this._config.backdrop,isAnimated:!0,rootElement:this._element.parentNode,clickCallback:()=>this.hide()})}_initializeFocusTrap(){return new ch({trapElement:this._element})}_addEventListeners(){n.on(this._element,ok,n=>{this._config.keyboard&&n.key===nk&&this.hide()})}static jQueryInterface(n){return this.each(function(){const t=bt.getOrCreateInstance(this,n);if(typeof n=="string"){if(t[n]===undefined||n.startsWith("_")||n==="constructor")throw new TypeError(`No method named "${n}"`);t[n](this)}})}}n.on(document,ek,'[data-bs-toggle="offcanvas"]',function(i){const r=tt(this);if(["A","AREA"].includes(this.tagName)&&i.preventDefault(),!st(this)){n.one(r,ec,()=>{ci(this)&&this.focus()});const u=t.findOne(fc);u&&u!==r&&bt.getInstance(u).hide();const f=bt.getOrCreateInstance(r);f.toggle(this)}});n.on(window,gb,()=>t.find(fc).forEach(n=>bt.getOrCreateInstance(n).show()));er(bt);h(bt);const sk=new Set(["background","cite","href","itemtype","longdesc","poster","src","xlink:href"]),hk=/^(?:(?:https?|mailto|ftp|tel|file|sms):|[^#&/:?]*(?:[#/?]|$))/i,ck=/^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[\d+/a-z]+=*$/i,lk=(n,t)=>{const i=n.nodeName.toLowerCase();if(t.includes(i))return sk.has(i)?Boolean(hk.test(n.nodeValue)||ck.test(n.nodeValue)):!0;const r=t.filter(n=>n instanceof RegExp);for(let n=0,t=r.length;n
<\/div>
<\/div><\/div>',trigger:"hover focus",title:"",delay:0,html:!1,selector:!1,placement:"top",offset:[0,0],container:!1,fallbackPlacements:["top","right","bottom","left"],boundary:"clippingParents",customClass:"",sanitize:!0,sanitizeFn:null,allowList:{"*":["class","dir","id","lang","role",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],div:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","srcset","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]},popperConfig:null},bk={HIDE:`hide${k}`,HIDDEN:`hidden${k}`,SHOW:`show${k}`,SHOWN:`shown${k}`,INSERTED:`inserted${k}`,CLICK:`click${k}`,FOCUSIN:`focusin${k}`,FOCUSOUT:`focusout${k}`,MOUSEENTER:`mouseenter${k}`,MOUSELEAVE:`mouseleave${k}`},gr="fade",gi="show",nr="show",pf="out",hc=".tooltip-inner",cc=`.${"modal"}`,lc="hide.bs.modal",tr="hover",wf="focus",kk="click",dk="manual";class si extends v{constructor(n,t){if(typeof ds=="undefined")throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org)");super(n);this._isEnabled=!0;this._timeout=0;this._hoverState="";this._activeTrigger={};this._popper=null;this._config=this._getConfig(t);this.tip=null;this._setListeners()}static get Default(){return wk}static get NAME(){return sc}static get Event(){return bk}static get DefaultType(){return yk}enable(){this._isEnabled=!0}disable(){this._isEnabled=!1}toggleEnabled(){this._isEnabled=!this._isEnabled}toggle(n){if(this._isEnabled)if(n){const t=this._initializeOnDelegatedTarget(n);t._activeTrigger.click=!t._activeTrigger.click;t._isWithActiveTrigger()?t._enter(null,t):t._leave(null,t)}else{if(this.getTipElement().classList.contains(gi)){this._leave(null,this);return}this._enter(null,this)}}dispose(){clearTimeout(this._timeout);n.off(this._element.closest(cc),lc,this._hideModalHandler);this.tip&&this.tip.remove();this._disposePopper();super.dispose()}show(){if(this._element.style.display==="none")throw new Error("Please use show on visible elements");if(this.isWithContent()&&this._isEnabled){const e=n.trigger(this._element,this.constructor.Event.SHOW),i=te(this._element),o=i===null?this._element.ownerDocument.documentElement.contains(this._element):i.contains(this._element);if(!e.defaultPrevented&&o){this.constructor.NAME==="tooltip"&&this.tip&&this.getTitle()!==this.tip.querySelector(hc).innerHTML&&(this._disposePopper(),this.tip.remove(),this.tip=null);const t=this.getTipElement(),r=el(this.constructor.NAME);t.setAttribute("id",r);this._element.setAttribute("aria-describedby",r);this._config.animation&&t.classList.add(gr);const s=typeof this._config.placement=="function"?this._config.placement.call(this,t,this._element):this._config.placement,u=this._getAttachment(s);this._addAttachmentClass(u);const{container:h}=this._config;li.set(t,this.constructor.DATA_KEY,this);this._element.ownerDocument.documentElement.contains(this.tip)||(h.append(t),n.trigger(this._element,this.constructor.Event.INSERTED));this._popper?this._popper.update():this._popper=sf(this._element,t,this._getPopperConfig(u));t.classList.add(gi);const f=this._resolvePossibleFunction(this._config.customClass);f&&t.classList.add(...f.split(" "));"ontouchstart"in document.documentElement&&[].concat(...document.body.children).forEach(t=>{n.on(t,"mouseover",fr)});const c=()=>{const t=this._hoverState;this._hoverState=null;n.trigger(this._element,this.constructor.Event.SHOWN);t===pf&&this._leave(null,this)},l=this.tip.classList.contains(gr);this._queueCallback(c,this.tip,l)}}}hide(){if(this._popper){const t=this.getTipElement(),i=()=>{this._isWithActiveTrigger()||(this._hoverState!==nr&&t.remove(),this._cleanTipClass(),this._element.removeAttribute("aria-describedby"),n.trigger(this._element,this.constructor.Event.HIDDEN),this._disposePopper())},r=n.trigger(this._element,this.constructor.Event.HIDE);if(!r.defaultPrevented){t.classList.remove(gi);"ontouchstart"in document.documentElement&&[].concat(...document.body.children).forEach(t=>n.off(t,"mouseover",fr));this._activeTrigger[kk]=!1;this._activeTrigger[wf]=!1;this._activeTrigger[tr]=!1;const u=this.tip.classList.contains(gr);this._queueCallback(i,this.tip,u);this._hoverState=""}}}update(){this._popper!==null&&this._popper.update()}isWithContent(){return Boolean(this.getTitle())}getTipElement(){if(this.tip)return this.tip;const t=document.createElement("div");t.innerHTML=this._config.template;const n=t.children[0];return this.setContent(n),n.classList.remove(gr,gi),this.tip=n,this.tip}setContent(n){this._sanitizeAndSetContent(n,this.getTitle(),hc)}_sanitizeAndSetContent(n,i,r){const u=t.findOne(r,n);if(!i&&u){u.remove();return}this.setElementContent(u,i)}setElementContent(n,t){if(n!==null){if(ot(t)){t=it(t);this._config.html?t.parentNode!==n&&(n.innerHTML="",n.append(t)):n.textContent=t.textContent;return}this._config.html?(this._config.sanitize&&(t=oc(t,this._config.allowList,this._config.sanitizeFn)),n.innerHTML=t):n.textContent=t}}getTitle(){const n=this._element.getAttribute("data-bs-original-title")||this._config.title;return this._resolvePossibleFunction(n)}updateAttachment(n){return n==="right"?"end":n==="left"?"start":n}_initializeOnDelegatedTarget(n,t){return t||this.constructor.getOrCreateInstance(n.delegateTarget,this._getDelegateConfig())}_getOffset(){const{offset:n}=this._config;return typeof n=="string"?n.split(",").map(n=>Number.parseInt(n,10)):typeof n=="function"?t=>n(t,this._element):n}_resolvePossibleFunction(n){return typeof n=="function"?n.call(this._element):n}_getPopperConfig(n){const t={placement:n,modifiers:[{name:"flip",options:{fallbackPlacements:this._config.fallbackPlacements}},{name:"offset",options:{offset:this._getOffset()}},{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"arrow",options:{element:`.${this.constructor.NAME}-arrow`}},{name:"onChange",enabled:!0,phase:"afterWrite",fn:n=>this._handlePopperPlacementChange(n)}],onFirstUpdate:n=>{n.options.placement!==n.placement&&this._handlePopperPlacementChange(n)}};return{...t,...(typeof this._config.popperConfig=="function"?this._config.popperConfig(t):this._config.popperConfig)}}_addAttachmentClass(n){this.getTipElement().classList.add(`${this._getBasicClassPrefix()}-${this.updateAttachment(n)}`)}_getAttachment(n){return pk[n.toUpperCase()]}_setListeners(){const t=this._config.trigger.split(" ");t.forEach(t=>{if(t==="click")n.on(this._element,this.constructor.Event.CLICK,this._config.selector,n=>this.toggle(n));else if(t!==dk){const i=t===tr?this.constructor.Event.MOUSEENTER:this.constructor.Event.FOCUSIN,r=t===tr?this.constructor.Event.MOUSELEAVE:this.constructor.Event.FOCUSOUT;n.on(this._element,i,this._config.selector,n=>this._enter(n));n.on(this._element,r,this._config.selector,n=>this._leave(n))}});this._hideModalHandler=()=>{this._element&&this.hide()};n.on(this._element.closest(cc),lc,this._hideModalHandler);this._config.selector?this._config={...this._config,trigger:"manual",selector:""}:this._fixTitle()}_fixTitle(){const n=this._element.getAttribute("title"),t=typeof this._element.getAttribute("data-bs-original-title");(n||t!=="string")&&(this._element.setAttribute("data-bs-original-title",n||""),!n||this._element.getAttribute("aria-label")||this._element.textContent||this._element.setAttribute("aria-label",n),this._element.setAttribute("title",""))}_enter(n,t){if(t=this._initializeOnDelegatedTarget(n,t),n&&(t._activeTrigger[n.type==="focusin"?wf:tr]=!0),t.getTipElement().classList.contains(gi)||t._hoverState===nr){t._hoverState=nr;return}if(clearTimeout(t._timeout),t._hoverState=nr,!t._config.delay||!t._config.delay.show){t.show();return}t._timeout=setTimeout(()=>{t._hoverState===nr&&t.show()},t._config.delay.show)}_leave(n,t){if(t=this._initializeOnDelegatedTarget(n,t),n&&(t._activeTrigger[n.type==="focusout"?wf:tr]=t._element.contains(n.relatedTarget)),!t._isWithActiveTrigger()){if(clearTimeout(t._timeout),t._hoverState=pf,!t._config.delay||!t._config.delay.hide){t.hide();return}t._timeout=setTimeout(()=>{t._hoverState===pf&&t.hide()},t._config.delay.hide)}}_isWithActiveTrigger(){for(const n in this._activeTrigger)if(this._activeTrigger[n])return!0;return!1}_getConfig(n){const t=i.getDataAttributes(this._element);return Object.keys(t).forEach(n=>{vk.has(n)&&delete t[n]}),n={...this.constructor.Default,...t,...(typeof n=="object"&&n?n:{})},n.container=n.container===!1?document.body:it(n.container),typeof n.delay=="number"&&(n.delay={show:n.delay,hide:n.delay}),typeof n.title=="number"&&(n.title=n.title.toString()),typeof n.content=="number"&&(n.content=n.content.toString()),p(sc,n,this.constructor.DefaultType),n.sanitize&&(n.template=oc(n.template,n.allowList,n.sanitizeFn)),n}_getDelegateConfig(){const n={};for(const t in this._config)this.constructor.Default[t]!==this._config[t]&&(n[t]=this._config[t]);return n}_cleanTipClass(){const t=this.getTipElement(),i=new RegExp(`(^|\\s)${this._getBasicClassPrefix()}\\S+`,"g"),n=t.getAttribute("class").match(i);n!==null&&n.length>0&&n.map(n=>n.trim()).forEach(n=>t.classList.remove(n))}_getBasicClassPrefix(){return ak}_handlePopperPlacementChange(n){const{state:t}=n;t&&(this.tip=t.elements.popper,this._cleanTipClass(),this._addAttachmentClass(this._getAttachment(t.placement)))}_disposePopper(){this._popper&&(this._popper.destroy(),this._popper=null)}static jQueryInterface(n){return this.each(function(){const t=si.getOrCreateInstance(this,n);if(typeof n=="string"){if(typeof t[n]=="undefined")throw new TypeError(`No method named "${n}"`);t[n]()}})}}h(si);const gk="popover",d=`.${"bs.popover"}`,nd="bs-popover",td={...si.Default,placement:"right",offset:[0,8],trigger:"click",content:"",template:'