"WhatHappensWhenLicenseEndsExplanation7":"Pokud chcete i nadále využívat tyto výhody, můžete svou licenci prodloužit (obnovit). Pokud prodloužíte licenci do <strong>{3} dní</strong> po vypršení platnosti licence, budou uplatněny následující slevy: Týmová licence {0}; Obchodní licence {1}; Enterprise Licence {2}.",
"BlazoriseLicense":"Musíme si koupit licenci Blazorise?",
"BlazoriseLicenseExplanation":"Máme dohodu mezi společnostmi Volosoft a Megabit, na základě této dohody je licence Blazorise přibalena k produktům ABP Commercial, proto si naši zákazníci nemusí kupovat další licenci Blazorise.",
"MultipleOrganizationInfo":"Podívejte se na všechny vaše organizace"
"MultipleOrganizationInfo":"Podívejte se na všechny vaše organizace",
"PaymentFailedInfo":"Omlouváme se, platba se nezdařila! ",
"RenewLicenseEarly":"Erhalte ich das ganze Jahr, wenn ich meine Lizenz vorzeitig erneuere?",
"RenewLicenseEarylExplanation":"Wenn Sie Ihre Lizenz vor dem Ablaufdatum Ihrer Lizenz erneuern, wird Ihr Lizenzablaufdatum um 1 Jahr verlängert. Wenn Ihre Lizenz beispielsweise am {0}-06-06 abläuft und Sie sie am {0}-01-01 erneuern, ist das neue Ablaufdatum der Lizenz der {1}-06-06.",
"BlackFridayDiscount":"Black Friday Rabatt",
"MultipleOrganizationInfo":"Alle Ihre Organisationen anzeigen"
"MultipleOrganizationInfo":"Alle Ihre Organisationen anzeigen",
"PaymentFailedInfo":"Entschuldigung, die Zahlung ist fehlgeschlagen! ",
"UsedPayment":"Diese Zahlung wurde bereits verwendet"
"RenewLicenseEarylExplanation":"When you renew your license before your license expiry date, 1 year will be added to your license expiry date. For example, if your license expires on {0}-06-06 and you renew it on {0}-01-01, your new license expiry date will be {1}-06-06.",
"LicenseTypeNotCorrect":"The license type is not correct!",
"BlackFridayDiscount":"Black Friday Discount",
"MultipleOrganizationInfo":"See All Your Organizations"
"MultipleOrganizationInfo":"See All Your Organizations",
"PaymentFailedInfo":"Sorry, payment failed! This could be due to insufficient funds, invalid credit card numbers or invalid pin",
"UsedPayment":"This payment has been already used"
"AbpCommercialShortDescription":"ABP Commercial provides pre-built application modules, rapid application development tooling, professional UI themes, premium support and more.",
"LiveDemo":"Live Demo",
"LiveDemoLead":"<a href=\"{0}\">{1}</a> using your ABP account, <a href=\"{2}\">{3}</a> to abp.io <br/> or fill the form below to create a live demo now",
"ThereIsAlreadyAnAccountWithTheGivenEmailAddress":"There is already an account with the given email address: <b>{0}</b><br/> You can login with your account to proceed.",
"ThereIsAlreadyAnAccountWithTheGivenEmailAddress":"There is already an account with the given email address: <b>{0}</b><br/> You should login with your account to proceed.",
"GetLicence":"Get a License",
"Application":"Application",
"StartupTemplates":"Startup Templates",
@ -1089,6 +1089,8 @@
"MultipleOrganizationInfo":"See All Your Organizations",
"AbpStudioBetaAccessInfoTitle":"ABP Studio Beta Access",
"AbpStudioBetaAccessInfoText":"We're thrilled to share with you the <span class=\"text-highlight-white\">beta</span> version of <span class=\"text-highlight-white\">ABP Studio</span>! This release marks a significant milestone in our development journey, and we're eager to gather your feedback to make the application even better.",
"YouAreNotAuthorizedToDownloadStudio":"You are not authorized to download ABP Studio."
"YouAreNotAuthorizedToDownloadStudio":"You are not authorized to download ABP Studio.",
"PaymentFailedInfo":"Sorry, payment failed! This could be due to insufficient funds, invalid credit card numbers or invalid pin",
"UsedPayment":"This payment has been already used"
"RenewLicenseEarly":"Si renuevo mi licencia antes, ¿obtendré el año completo?",
"RenewLicenseEarylExplanation":"Cuando renueve su licencia antes de la fecha de vencimiento de su licencia, se agregará 1 año a la fecha de vencimiento de su licencia. Por ejemplo, si su licencia vence el {0} -06-06 y la renueva el {0} -01-01, la fecha de vencimiento de su nueva licencia será {1} -06-06.",
"BlackFridayDiscount":"Descuento de viernes negro",
"MultipleOrganizationInfo":"Vea todas sus organizaciones"
"MultipleOrganizationInfo":"Vea todas sus organizaciones",
"PaymentFailedInfo":"Lo sentimos, ¡el pago falló! ",
"WhyUseAbpIoPlatform":"Miksi minun pitäisi käyttää ABP.IO-alustaa sen sijaan, että luon uuden ratkaisun tyhjästä?",
"WhyUseAbpIoPlatformFaqExplanation":"Katso <a href=\"https://docs.abp.io/en/commercial/latest/why-abp-io-platform \"> kyseisestä asiakirjasta </a> yksityiskohtainen selitys siitä, miksi ABP.IO Platformin käyttäminen on huomattavasti edullisempaa kuin kaiken tekeminen itse.",
"MultipleOrganizationInfo":"Katso kaikki organisaatiosi"
"MultipleOrganizationInfo":"Katso kaikki organisaatiosi",
"WhatHappensWhenLicenseEndsExplanation7":"Vous pouvez prolonger (renouveler) votre licence si vous souhaitez continuer à bénéficier de ces avantages. Si vous prolongez votre licence dans <strong>{3} jours</strong> après l'expiration de votre licence, les remises suivantes seront appliquées : Licence d'équipe {0} ; Licence commerciale {1} ; Licence Entreprise {2}.",
"BlazoriseLicense":"Faut-il acheter une licence Blazorise ?",
"BlazoriseLicenseExplanation":"Nous avons conclu un accord entre Volosoft et Megabit, dans le cadre duquel la licence Blazorise est intégrée aux produits ABP Commercial, de sorte que nos clients n'ont pas besoin d'acheter une licence Blazorise supplémentaire.",
"MultipleOrganizationInfo":"Voir toutes vos organisations"
"MultipleOrganizationInfo":"Voir toutes vos organisations",
"PaymentFailedInfo":"Désolé, le paiement a échoué! ",
"WhatHappensWhenLicenseEndsExplanation7":"यदि आप इन लाभों को प्राप्त करना जारी रखना चाहते हैं तो आप अपने लाइसेंस का विस्तार (नवीनीकरण) कर सकते हैं। यदि आप अपना लाइसेंस समाप्त होने के बाद <strong>{3} दिन</strong> के भीतर अपना लाइसेंस बढ़ाते हैं, तो निम्नलिखित छूट लागू होंगी: टीम लाइसेंस {0}; व्यवसाय लाइसेंस {1}; उद्यम लाइसेंस {2}।",
"BlazoriseLicense":"क्या हमें ब्लेज़ोराइज़ लाइसेंस खरीदने की ज़रूरत है?",
"BlazoriseLicenseExplanation":"हमारे पास Volosoft और Megabit के बीच एक समझौता है, इस समझौते के साथ Blazorise लाइसेंस को ABP वाणिज्यिक उत्पादों के साथ बंडल किया गया है, इसलिए हमारे ग्राहकों को एक अतिरिक्त Blazorise लाइसेंस खरीदने की आवश्यकता नहीं है।",
"MultipleOrganizationInfo":"अपने सभी संगठन देखें"
"MultipleOrganizationInfo":"अपने सभी संगठन देखें",
"WhatHappensWhenLicenseEndsExplanation7":"Puoi estendere (rinnovare) la tua licenza se desideri continuare a ottenere questi vantaggi. Se estendi la licenza entro <strong>{3} giorni</strong> dalla scadenza della licenza, verranno applicati i seguenti sconti: Licenza Team {0}; Licenza commerciale {1}; Licenza aziendale {2}.",
"BlazoriseLicense":"Dobbiamo acquistare la licenza di Blazorise?",
"BlazoriseLicenseExplanation":"Abbiamo un accordo tra Volosoft e Megabit, con il quale la licenza di Blazorise viene fornita in bundle con i prodotti commerciali ABP, pertanto i nostri clienti non hanno bisogno di acquistare una licenza Blazorise aggiuntiva.",
"MultipleOrganizationInfo":"Visualizza tutte le tue organizzazioni"
"MultipleOrganizationInfo":"Visualizza tutte le tue organizzazioni",
"PaymentFailedInfo":"Siamo spiacenti, pagamento non riuscito! ",
"UsedPayment":"Questo pagamento è già stato utilizzato"
"TrialLicenseExpiredInfo":"Uw proeflicentieperiode is verlopen!",
"CommercialNewsletterConfirmationMessage":"Ik ga akkoord met de <a href=\"https://commercial.abp.io/TermsConditions\">Algemene voorwaarden</a> en het <a href=\"https://commercial.abp.io/Privacy\">Privacybeleid </a>.",
"BlackFridayDiscount":"Black Friday korting",
"MultipleOrganizationInfo":"Bekijk al uw organisaties"
"MultipleOrganizationInfo":"Bekijk al uw organisaties",
"CommercialNewsletterConfirmationMessage":"Wyrażam zgodę na <a href=\"https://commercial.abp.io/TermsConditions\">Warunki</a> i <a href=\"https://commercial.abp.io/Privacy\">Politykę prywatności </a>.",
"BlackFridayDiscount":"Zniżka Black Friday",
"MultipleOrganizationInfo":"Zobacz wszystkie swoje organizacje"
"MultipleOrganizationInfo":"Zobacz wszystkie swoje organizacje",
"PaymentFailedInfo":"Przepraszamy, płatność nie powiodła się! ",
"UsedPayment":"Ta płatność została już wykorzystana"
"WhatHappensWhenLicenseEndsExplanation5":"Você não pode usar o ABP Suite",
"WhatHappensWhenLicenseEndsExplanation6":"Você não pode mais obter o <a href==\"{0}\">apoio de premium</a>.",
"WhatHappensWhenLicenseEndsExplanation7":"Você pode estender (renovar) sua licença se quiser continuar obtendo esses benefícios. Se você estender sua licença dentro de <strong>{3} dias</strong> após a expiração de sua licença, os seguintes descontos serão aplicados: Licença de equipe {0}; Licença Comercial {1}; Licença empresarial {2}.",
"MultipleOrganizationInfo":"Veja todas as suas organizações"
"MultipleOrganizationInfo":"Veja todas as suas organizações",
"PaymentFailedInfo":"Desculpe, o pagamento falhou! ",
"TrialLicenseExpiredInfo":"Perioada de licență de probă a expirat!",
"CommercialNewsletterConfirmationMessage":"Sunt de acord cu <a href=\"https://commercial.abp.io/TermsConditions\">Termenii și condițiile</a> și cu <a href=\"https://commercial.abp.io/Privacy\">Politica de confidențialitate </a>.",
"BlackFridayDiscount":"Black Friday Discount",
"MultipleOrganizationInfo":"Vedeți toate organizațiile dvs"
"MultipleOrganizationInfo":"Vedeți toate organizațiile dvs",
"PaymentFailedInfo":"Ne pare rău, plata nu a reușit! ",
"UsedPayment":"Această plată a fost deja utilizată"
"WhatHappensWhenLicenseEndsExplanation7":"Ak chcete naďalej využívať tieto výhody, môžete si licenciu predĺžiť (obnoviť). Ak predĺžite svoju licenciu do <strong>30 dní</strong> po vypršaní platnosti licencie, budú sa uplatňovať nasledujúce zľavy: Tímová licencia {0}; Obchodná licencia {1}; Podniková licencia {2}",
"BlazoriseLicense":"Musíme si kúpiť licenciu Blazorise?",
"BlazoriseLicenseExplanation":"Máme dohodu medzi spoločnosťami Volosoft a Megabit, na základe ktorej je licencia Blazorise pribalená k produktom ABP Commercial, preto si naši zákazníci nemusia kupovať ďalšiu licenciu Blazorise.",
"MultipleOrganizationInfo":"Pozrite si všetky vaše organizácie"
"MultipleOrganizationInfo":"Pozrite si všetky vaše organizácie",
"TrialLicenseExpiredInfo":"Vaša preizkusna licenca je potekla!",
"CommercialNewsletterConfirmationMessage":"Strinjam se s <a href=\"https://commercial.abp.io/TermsConditions\">pogoji in določili</a> in <a href=\"https://commercial.abp.io/Privacy\">pravilnikom o zasebnosti </a>.",
"BlackFridayDiscount":"Popust Black Friday",
"MultipleOrganizationInfo":"Oglejte si vse svoje organizacije"
"MultipleOrganizationInfo":"Oglejte si vse svoje organizacije",
"ComesWithTheSourceCode":"Kaynak Koduyla Birlikte Geliyor",
"ComesWithTheSourceCode_Description":"Mobil uygulamalar kaynak koduyla birlikte sağlanır. Marka yönergelerini karşılamak için uygulamalarınızın UX/UI'sini kolayca özelleştirin.",
"PaymentFailedInfo":"Üzgünüz, Ödeme başarısız oldu! Bu hata, yatersiz bakiye, yanlış kredi kartı numarası veya yanlış PIN numarasından dolayı olabilir.",
"TrialLicenseExpiredInfo":"Thời gian cấp phép dùng thử của bạn đã hết hạn!",
"CommercialNewsletterConfirmationMessage":"Tôi đồng ý với <a href=\"https://commercial.abp.io/TermsConditions\"> Điều khoản & điều kiện </a> và <a href=\"https://commercial.abp.io/Privacy\"> Chính sách quyền riêng tư </a>.",
"BlackFridayDiscount":"Giảm giá Black Friday",
"MultipleOrganizationInfo":"Xem tất cả các tổ chức của bạn"
"MultipleOrganizationInfo":"Xem tất cả các tổ chức của bạn",
"PaymentFailedInfo":"Rất tiếc, thanh toán không thành công! ",
"UsedPayment":"Khoản thanh toán này đã được sử dụng"
"Modularity_THEPROBLEM_Description":"要建立真正的模組化系統並不容易!系統的所有方面(資料庫、實體、API、UI 頁面/元件)都可以拆分為模組,並且每個模組都可以重複使用,無需其他模組。普通的 ASP.NET Core 並不會提供這樣的模組化架構。如果你需要的話,你應該從頭開始考慮。",
"MultiTenancyExplanation4":"أنت تركز على رمز عملك وتدع إطار العمل للتعامل مع عقود الإيجار المتعددة نيابة عنك.",
"BootstrapTagHelpersExplanation":"بدلاً من كتابة التفاصيل المتكررة لمكونات التمهيد يدويًا، استخدم مساعدي علامات ABP لتبسيطها والاستفادة من IntelliSense. يمكنك بالتأكيد استخدام Bootstrap متى احتجت إليه.",
"DynamicFormsExplanation":"يمكن لمساعدي النموذج الديناميكي وعلامات الإدخال إنشاء النموذج الكامل من فئة C # كنموذج.",
"AuthenticationAuthorizationExplanation":"خيارات المصادقة والرخصة الغنية المدمجة في ASP.NET Core Identity & IdentityServer4. يوفر نظام إذن موسع ومفصل.",
"AuthenticationAuthorizationExplanation":"خيارات المصادقة والرخصة الغنية المدمجة في ASP.NET Core Identity & OpenIddict. يوفر نظام إذن موسع ومفصل.",
"CrossCuttingConcernsExplanation":"لا تكرر نفسك لتنفيذ كل هذه الأشياء الشائعة مرارًا وتكرارًا. ركز على كود عملك ودع ABP يقوم بأتمتة ذلك من خلال الاتفاقيات.",
"DatabaseConnectionTransactionManagement":"اتصال قاعدة البيانات وإدارة المعاملات",
"MultiTenancyExplanation4":"Soustředíte se na svůj obchodní kód a necháte framework, aby za vás zpracovával multi-tenancy.",
"BootstrapTagHelpersExplanation":"Místo ručního psaní opakujících se podrobností o komponentách bootstrapu použijte pomocníky značek ABP, abyste to zjednodušili a využili výhody intellisense. Bootstrap můžete určitě použít, kdykoli budete potřebovat.",
"DynamicFormsExplanation":"Pomocníci dynamického formuláře a vstupní značky mohou vytvořit kompletní formulář z třídy C# jako model.",
"AuthenticationAuthorizationExplanation":"Bohaté možnosti ověřování a autorizace integrované do ASP.NET Core Identity & IdentityServer4. Poskytuje rozšiřitelný a podrobný systém oprávnění.",
"AuthenticationAuthorizationExplanation":"Bohaté možnosti ověřování a autorizace integrované do ASP.NET Core Identity & OpenIddict. Poskytuje rozšiřitelný a podrobný systém oprávnění.",
"CrossCuttingConcernsExplanation":"Neopakujte se, abyste zavedli všechny tyto běžné věci znovu a znovu. Zaměřte se na svůj obchodní kód a nechte je ABP automatizovat podle konvencí.",
"DatabaseConnectionTransactionManagement":"Připojení k databázi a správa transakcí",
"MultiTenancyExplanation4":"Sie konzentrieren sich auf Ihren geschäftsspezifischen Code und lassen das Framework die Mandantenfähigkeit für Sie übernehmen.",
"BootstrapTagHelpersExplanation":"Anstatt die sich wiederholenden Details von Bootstrap-Komponenten manuell zu schreiben, verwenden Sie die Tag-Helper von ABP, um diese zu vereinfachen und dabei die Vorteile von Intellisense zu nutzen. Sie können Bootstrap weitherhin verwenden, wann immer Sie es benötigen.",
"DynamicFormsExplanation":"Helfer für dynamische Formular- und Input-Tags können das vollständige Formular anhand einer C#-Klasse als Model erstellen.",
"AuthenticationAuthorizationExplanation":"Umfangreiche Authentifizierungs- und Autorisierungsoptionen, die in ASP.NET Core Identity & IdentityServer4 integriert sind. Bietet ein erweiterbares und detailliertes Berechtigungssystem.",
"AuthenticationAuthorizationExplanation":"Umfangreiche Authentifizierungs- und Autorisierungsoptionen, die in ASP.NET Core Identity & OpenIddict integriert sind. Bietet ein erweiterbares und detailliertes Berechtigungssystem.",
"CrossCuttingConcernsExplanation":"Wiederholen Sie sich nicht, um all diese allgemeinen Dinge immer wieder zu implementieren. Konzentrieren Sie sich auf Ihren geschäftsspezifischen Code und lassen Sie ihn von ABP durch Konventionen automatisieren.",
"DatabaseConnectionTransactionManagement":"Datenbankverbindungs- und Transaktionsmanagement",
"MultiTenancyExplanation4":"You focus on your business code and let the framework to handle multi-tenancy on behalf of you.",
"BootstrapTagHelpersExplanation":"Instead of manually writing the repeating details of bootstrap components, use ABP's tag helpers to simplify and take advantage of intellisense. You can use Bootstrap whenever you need it.",
"DynamicFormsExplanation":"Dynamic form & input tag helpers can create the complete form from a C# class as the model.",
"AuthenticationAuthorizationExplanation":"Rich authentication & authorization options integrated to ASP.NET Core Identity & IdentityServer4. Provides an extensible & detailed permission system.",
"AuthenticationAuthorizationExplanation":"Rich authentication & authorization options integrated to ASP.NET Core Identity & OpenIddict. Provides an extensible & detailed permission system.",
"CrossCuttingConcernsExplanation":"Don't repeat yourself when implementing common features. Instead, focus on your business logic and let ABP automate by convention.",
"MultiTenancyExplanation4":"You focus on your business code and let the framework handle multi-tenancy on behalf of you.",
"BootstrapTagHelpersExplanation":"Instead of manually writing the repeating details of bootstrap components, use ABP's tag helpers to simplify it and take advantage of the IntelliSense. You can definitely use Bootstrap whenever you need it.",
"DynamicFormsExplanation":"Dynamic form & input tag helpers can create the complete form from a C# class as the model.",
"AuthenticationAuthorizationExplanation":"Rich authentication & authorization options integrated to ASP.NET Core Identity & IdentityServer4. Provides an extensible & detailed permission system.",
"AuthenticationAuthorizationExplanation":"Rich authentication & authorization options integrated to ASP.NET Core Identity & OpenIddict. Provides an extensible & detailed permission system.",
"CrossCuttingConcernsExplanation":"Don't repeat yourself to implement all this common stuff again & again. Focus on your business code and let ABP automate them by conventions.",
"MultiTenancyExplanation4":"Enfocate en tu código y deja al framework que maneje multi-inquilino en tu nombre.",
"BootstrapTagHelpersExplanation":"En vez de escribir repetidamente los detalle de componentes bootstrap, usa ABP's tag helpers para simplificarlo y obtener ventaja de intellisence. Tu puedes definitivamente usar Bootstrp cuando tu lo necesites.",
"DynamicFormsExplanation":"Los formularios dinámicos y tag helpers de entrada pueden crear el formulario completo a partir de una clase de C# como modelo. ",
"AuthenticationAuthorizationExplanation":"Autenticación enriquecidad y opciones de autorización integradas con ASP.NET Core Identity & IdentityServer4. Proporciona un extensible y detallado sistema de permisos.",
"AuthenticationAuthorizationExplanation":"Autenticación enriquecidad y opciones de autorización integradas con ASP.NET Core Identity & OpenIddict. Proporciona un extensible y detallado sistema de permisos.",
"CrossCuttingConcernsExplanation":"No te repitas tu mismo al implementar todas esas cosas comunes una y otra vez. Enfocate en tu negocio y permite a ABP automatizarlos por convención.",
"DatabaseConnectionTransactionManagement":"Conexión de base de datos y gestión de transacciones",
"CorrelationIdTracking":"Correlation-Id de seguimiento",
"MultiTenancyExplanation4":"Keskity yrityksesi koodiin ja annat kehyksen hoitamaan monivuokrausta puolestasi.",
"BootstrapTagHelpersExplanation":"Sen sijaan, että kirjoittaisit manuaalisesti uudelleenkäynnistyskomponenttien yksityiskohtia, käytä ABP: n tunnisteita yksinkertaistaaksesi sitä ja hyödyntäksesi älykkäitä ominaisuuksia. Voit ehdottomasti käyttää Bootstrapia milloin tahansa.",
"DynamicFormsExplanation":"Dynaamiset lomake- ja syöttötunnisteiden apurit voivat luoda täydellisen lomakkeen mallina C# -luokasta.",
"AuthenticationAuthorizationExplanation":"ASP.NET Core Identity & IdentityServer4 -palveluun integroidut monipuoliset todennus- ja todennusvaihtoehdot. Tarjoaa laajennettavan ja yksityiskohtaisen lupajärjestelmän.",
"AuthenticationAuthorizationExplanation":"ASP.NET Core Identity & OpenIddict -palveluun integroidut monipuoliset todennus- ja todennusvaihtoehdot. Tarjoaa laajennettavan ja yksityiskohtaisen lupajärjestelmän.",
"CrossCuttingConcernsExplanation":"Älä toista itseäsi kaikkien näiden yleisten asioiden toteuttamiseksi uudelleen ja uudelleen. Keskity yrityskoodiin ja anna ABP: n automatisoida ne käytäntöjen mukaan.",
"DatabaseConnectionTransactionManagement":"Tietokantayhteys ja tapahtumien hallinta",
"MultiTenancyExplanation4":"Vous vous concentrez sur votre code métier et laissez le framework gérer la multi-souscrivants en votre nom.",
"BootstrapTagHelpersExplanation":"Au lieu d'écrire manuellement les détails répétitifs des composants Boostrap, utilisez les aides de balises d'ABP pour le simplifier et tirer parti d'intellisense. Vous pouvez certainement utiliser Bootstrap chaque fois que vous en avez besoin.",
"DynamicFormsExplanation":"Les assistants dynamiques de formulaire et de balise d'entrée peuvent créer le formulaire complet à partir d'une classe C# comme modèle.",
"AuthenticationAuthorizationExplanation":"Options d'authentification et d'autorisation riches intégrées à ASP.NET Core Identity & IdentityServer4. Fournit un système d'autorisation extensible et détaillé.",
"AuthenticationAuthorizationExplanation":"Options d'authentification et d'autorisation riches intégrées à ASP.NET Core Identity & OpenIddict. Fournit un système d'autorisation extensible et détaillé.",
"CrossCuttingConcernsExplanation":"Ne vous répétez pas pour mettre en œuvre toutes ces choses courantes encore et encore. Concentrez-vous sur votre code métier et laissez ABP les automatiser par des conventions.",
"DatabaseConnectionTransactionManagement":"Connexion à la base de données et gestion des transactions",
"CorrelationIdTracking":"Suivi des identifiants de corrélation",
"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.",
"AuthenticationAuthorizationExplanation":"Bogate opcije provjere autentičnosti i autorizacije integrirane u ASP.NET Core Identity & OpenIddict. 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",
"MultiTenancyExplanation4":"Ön az üzleti kódjára összpontosít, és hagyja, hogy a keretrendszer kezelje a több bérlést az Ön nevében.",
"BootstrapTagHelpersExplanation":"A bootstrap komponensek ismétlődő részleteinek manuális megírása helyett használja az ABP címkesegédjét az egyszerűsítéshez és az intellisense előnyeinek kihasználásához. Határozottan használhatja a Bootstrapet, amikor csak szüksége van rá.",
"DynamicFormsExplanation":"A dinamikus űrlap- és beviteli címke-segítők modellként létrehozhatják a teljes űrlapot egy C# osztályból.",
"AuthenticationAuthorizationExplanation":"Az ASP.NET Core Identity & IdentityServer4-be integrált gazdag hitelesítési és engedélyezési lehetőségek. Bővíthető és részletes engedélyezési rendszert biztosít.",
"AuthenticationAuthorizationExplanation":"Az ASP.NET Core Identity & OpenIddict-be integrált gazdag hitelesítési és engedélyezési lehetőségek. Bővíthető és részletes engedélyezési rendszert biztosít.",
"CrossCuttingConcernsExplanation":"Ne ismételje magát, hogy újra és újra végrehajtsa ezeket a gyakori dolgokat. Koncentráljon az üzleti kódjára, és hagyja, hogy az ABP konvenciók szerint automatizálja azokat.",
"DatabaseConnectionTransactionManagement":"Adatbázis-kapcsolat és tranzakciókezelés",
"MultiTenancyExplanation4":"Þú leggur áherslu á viðskiptakóðann þinn og lætur umgjörðina annast tenata virknina fyrir þína hönd.",
"BootstrapTagHelpersExplanation":"Í stað þess að skrifa handvirkt að endurtaka upplýsingar um bootstrap íhluti skaltu nota merkimiðla ABP til að einfalda það og nýta þér intellisense. Þú getur örugglega notað Bootstrap hvenær sem þú þarft á því að halda.",
"DynamicFormsExplanation":"Dynamísk form og input tag hjálp getur búið til fullbúið form úr C# klasa sem fyrirmynd",
"AuthenticationAuthorizationExplanation":"Ríkur auðkenningar- og heimildarmöguleiki samþættur með ASP.NET Core Identity & IdentityServer4. Veitir stækkanlegt og ítarlegt leyfiskerfi.",
"AuthenticationAuthorizationExplanation":"Ríkur auðkenningar- og heimildarmöguleiki samþættur með ASP.NET Core Identity & OpenIddict. Veitir stækkanlegt og ítarlegt leyfiskerfi.",
"CrossCuttingConcernsExplanation":"Ekki endurtaka sjálfan þig við að innleiða alla þessu sameiginlegu hluti aftur og aftur. Einbeittu þér að viðskiptakóðanum þínum og láttu ABP þá gera þau sjálfvirt með venjum.",
"DatabaseConnectionTransactionManagement":"Tengistrengir og færsluyfirlit",
"MultiTenancyExplanation4":"Ti concentri sul tuo codice aziendale e lasci che il framework gestisca il multi-tenancy per tuo conto.",
"BootstrapTagHelpersExplanation":"Invece di scrivere manualmente i dettagli ripetuti dei componenti bootstrap, usa gli helper tag di ABP per semplificarlo e sfruttare intellisense. Puoi sicuramente usare Bootstrap ogni volta che ne hai bisogno.",
"DynamicFormsExplanation":"Gli helper dei moduli dinamici e dei tag di input possono creare il modulo completo da una classe C# come modello.",
"AuthenticationAuthorizationExplanation":"Ricche opzioni di autenticazione e autorizzazione integrate in ASP.NET Core Identity & IdentityServer4. Fornisce un sistema di autorizzazione estensibile e dettagliato.",
"AuthenticationAuthorizationExplanation":"Ricche opzioni di autenticazione e autorizzazione integrate in ASP.NET Core Identity & OpenIddict. Fornisce un sistema di autorizzazione estensibile e dettagliato.",
"CrossCuttingConcernsExplanation":"Non ripetere te stesso per implementare tutte queste cose comuni ancora e ancora. Concentrati sul tuo codice aziendale e lascia che ABP li automatizzi secondo le convenzioni.",
"DatabaseConnectionTransactionManagement":"Connessione al database e gestione delle transazioni",
"CorrelationIdTracking":"Monitoraggio dell'ID di correlazione",
"MultiTenancyExplanation4":"U concentreert zich op uw bedrijfscode en laat het framework multi-tenancy voor u afhandelen.",
"BootstrapTagHelpersExplanation":"In plaats van handmatig de herhalende details van bootstrap-componenten te schrijven, gebruikt u de tag-helpers van ABP om het te vereenvoudigen en te profiteren van intellisense. Je kunt Bootstrap zeker gebruiken wanneer je het nodig hebt.",
"DynamicFormsExplanation":"Dynamische formulier- en invoertaghelpers kunnen het volledige formulier maken vanuit een C#-klasse als model.",
"AuthenticationAuthorizationExplanation":"Uitgebreide authenticatie- en autorisatie-opties geïntegreerd in ASP.NET Core Identity & IdentityServer4. Biedt een uitbreidbaar en gedetailleerd toestemmingssysteem.",
"AuthenticationAuthorizationExplanation":"Uitgebreide authenticatie- en autorisatie-opties geïntegreerd in ASP.NET Core Identity & OpenIddict. Biedt een uitbreidbaar en gedetailleerd toestemmingssysteem.",
"CrossCuttingConcernsExplanation":"Herhaal jezelf niet om al deze veelvoorkomende dingen keer op keer te implementeren. Concentreer u op uw bedrijfscode en laat ABP ze automatiseren volgens conventies.",
"DatabaseConnectionTransactionManagement":"Databaseverbinding en transactiebeheer",
"MultiTenancyExplanation4":"Skupiasz się na kodzie biznesowym i pozwalasz, by framework obsługiwał wielodostępność w Twoim imieniu.",
"BootstrapTagHelpersExplanation":"Zamiast ręcznie pisać powtarzające się szczegóły komponentów ładowania początkowego, użyj pomocników tagów ABP, aby to uprościć i wykorzystać intellisense. Zdecydowanie możesz używać Bootstrapa, kiedy tylko tego potrzebujesz.",
"DynamicFormsExplanation":"Pomocnicy dynamicznych formularzy i tagów wejściowych mogą tworzyć kompletny formularz z klasy C# jako modelu.",
"AuthenticationAuthorizationExplanation":"Bogate opcje uwierzytelniania i autoryzacji zintegrowane z ASP.NET Core Identity & IdentityServer4. Zapewnia rozszerzalny i szczegółowy system uprawnień.",
"AuthenticationAuthorizationExplanation":"Bogate opcje uwierzytelniania i autoryzacji zintegrowane z ASP.NET Core Identity & OpenIddict. Zapewnia rozszerzalny i szczegółowy system uprawnień.",
"CrossCuttingConcernsExplanation":"Nie powtarzaj się, aby ciągle wdrażać te wszystkie typowe rzeczy. Skoncentruj się na kodzie biznesowym i pozwól ABP zautomatyzować je zgodnie z konwencjami.",
"DatabaseConnectionTransactionManagement":"Połączenie z bazą danych i zarządzanie transakcjami",
"MultiTenancyExplanation4":"Você se concentra no seu código comercial e deixa o framework lidar com a multilocação em seu nome.",
"BootstrapTagHelpersExplanation":"Em vez de escrever manualmente os detalhes repetidos dos componentes do bootstrap, use os tag helpers da ABP para simplificá-lo e tirar proveito do intellisense. Você pode definitivamente usar o Bootstrap sempre que precisar.",
"DynamicFormsExplanation":"Formulário dinâmico e entrada de tag helpers pode criar o formulário completo a partir de uma classe C# como modelo.",
"AuthenticationAuthorizationExplanation":"Opções avançadas de autenticação e autorização integradas ao ASP.NET Core Identity & IdentityServer4. Fornece um sistema de permissões extensível e detalhado.",
"AuthenticationAuthorizationExplanation":"Opções avançadas de autenticação e autorização integradas ao ASP.NET Core Identity & OpenIddict. Fornece um sistema de permissões extensível e detalhado.",
"CrossCuttingConcernsExplanation":"Não se repita para implementar todas essas coisas comuns repetidamente. Concentre-se no seu código comercial e permita que a ABP os automatize por convenções.",
"DatabaseConnectionTransactionManagement":"Gerenciamento de conexão e transação de banco de dados",
"CorrelationIdTracking":"Rastreamento de ID de correlação",
"MultiTenancyExplanation4":"Vă focusaţi pe codul dumneavoastră şi lăsaţi framework-ul să se ocupe de multi-tenancy pentru dumneavoastră.",
"BootstrapTagHelpersExplanation":"În loc să scrieţi manual detaliile repetate ale componentelor bootstrap, folosiţi tag helperele ABP pentru a simplifica şi profita de inteligenţă. Puteţi folosi cu siguranţă Bootstrap ori de câte ori aveţi nevoie de el.",
"DynamicFormsExplanation":"Formulare dinamice & tag helpere de intrare pot crea formularul complet dintr-o clasă C# ca model.",
"AuthenticationAuthorizationExplanation":"Opţiuni variate de autentificare şi autorizare integrate cu ASP.NET Core Identity & IdentityServer4. Furnizează un sistem de permisiuni extensibil şi detaliat.",
"AuthenticationAuthorizationExplanation":"Opţiuni variate de autentificare şi autorizare integrate cu ASP.NET Core Identity & OpenIddict. Furnizează un sistem de permisiuni extensibil şi detaliat.",
"CrossCuttingConcernsExplanation":"Nu vă repetaţi pentru a implementa din nou şi din nou toate aceste lucruri obişniuite. Concentraţi-vă pe codul dumneavoastră de business şi lăsaţi ABP să le automatizeze prin convenţii.",
"DatabaseConnectionTransactionManagement":"Conectare la baza de date & Gestionarea tranzacţiilor",
"MultiTenancyExplanation4":"Вы сосредотачиваетесь на своем бизнес-коде и позволяете фреймворку обрабатывать мультитенантность от вашего имени.",
"BootstrapTagHelpersExplanation":"Вместо того, чтобы вручную писать повторяющиеся детали компонентов начальной загрузки, используйте помощники тегов ABP, чтобы упростить его и воспользоваться преимуществами intellisense. Вы определенно можете использовать Bootstrap, когда вам это нужно.",
"DynamicFormsExplanation":"Помощники динамических форм и тегов ввода могут создавать полную форму из класса C # в качестве модели.",
"AuthenticationAuthorizationExplanation":"Расширенные возможности аутентификации и авторизации, интегрированные в ASP.NET Core Identity и IdentityServer4. Предоставляет расширяемую и подробную систему разрешений.",
"AuthenticationAuthorizationExplanation":"Расширенные возможности аутентификации и авторизации, интегрированные в ASP.NET Core Identity и OpenIddict. Предоставляет расширяемую и подробную систему разрешений.",
"CrossCuttingConcernsExplanation":"Не повторяйте себя, чтобы реализовать все эти обычные вещи снова и снова. Сосредоточьтесь на своем бизнес-коде и позвольте ABP автоматизировать их по соглашениям.",
"DatabaseConnectionTransactionManagement":"Подключение к базе данных и управление транзакциями",
"MultiTenancyExplanation4":"Sústreďte sa na svoj biznis kód a nechajte framework, aby sa vo vašom mene postaral o multitenantnosť.",
"BootstrapTagHelpersExplanation":"Namiesto ručného písania opakujúcich sa bootstrap komponentov, použite ABP tag pomocníka na zjednodušenie a využitie výhod intellisense. Bootstrap určite využijete vždy, keď ho budete potrebovať.",
"DynamicFormsExplanation":"Dynamické formuláre & vstup Tag pomocníka môžu vytvoriť kompletný formulár z C# triedy ako modelu.",
"AuthenticationAuthorizationExplanation":"Bohaté možnosti overovania & autorizácie integrované do ASP.NET Core Identity & IdentityServer4. Poskytuje rozšíriteľný a podrobný systém oprávnení.",
"AuthenticationAuthorizationExplanation":"Bohaté možnosti overovania & autorizácie integrované do ASP.NET Core Identity & OpenIddict. Poskytuje rozšíriteľný a podrobný systém oprávnení.",
"CrossCuttingConcernsExplanation":"Neopakujte sa pri implementácii všetkých týchto bežných vecí znova a znova. Zamerajte sa na svoj biznis kód a nechajte ich automatizovať pomocou konvencií.",
"DatabaseConnectionTransactionManagement":"Pripojenie k databáze & správa transakcií",
"MultiTenancyExplanation4":"Osredotočite se na svojo poslovno kodo in dovolite, da okvir obravnava večnajemne storitve v vašem imenu.",
"BootstrapTagHelpersExplanation":"Namesto ročnega pisanja ponavljajočih se podrobnosti komponent zagonskega zagona, uporabite pomočnike oznak ABP, da ga poenostavite in izkoristite prednosti intellisense. Vsekakor lahko uporabite Bootstrap, kadar koli ga potrebujete.",
"DynamicFormsExplanation":"Pomočniki za dinamične oblike in oznake za vnos lahko ustvarijo celoten obrazec iz razreda C# kot model.",
"AuthenticationAuthorizationExplanation":"Bogate možnosti preverjanja pristnosti in avtorizacije, integrirane v ASP.NET Core Identity & IdentityServer4. Zagotavlja razširljiv in podroben sistem dovoljenj.",
"AuthenticationAuthorizationExplanation":"Bogate možnosti preverjanja pristnosti in avtorizacije, integrirane v ASP.NET Core Identity & OpenIddict. Zagotavlja razširljiv in podroben sistem dovoljenj.",
"CrossCuttingConcernsExplanation":"Ne ponavljajte se, da bi vedno znova izvajali vse te običajne stvari. Osredotočite se na svojo poslovno kodo in dovolite, da jih ABP avtomatizira po dogovorih.",
"DatabaseConnectionTransactionManagement":"Povezava z bazo podatkov in upravljanje transakcij",
"MultiTenancyExplanation4":"Sen kendi uygulama kodunu odaklan ve bırak framework sizin adınıza multi-tenancy üstesinden gelsin.",
"BootstrapTagHelpersExplanation":"Bootstrap komponentlerinin tekrar eden detaylarını manuel olarak yazmak yerine, Bu işlemi basitleştirmek ve iyileştirme avantajından faydalanmak için ABP'nin tag helperlarını kullanın. Dinamik form bir C# sınıfından model olarak eksiksik form oluşturabilir.",
"DynamicFormsExplanation":"Dinamik form & input tag helpers bir C# sınıfından model olarak eksiksik form oluşturabilir.",
"AuthenticationAuthorizationExplanation":"ASP.NET Core Identity & IdentityServer4 ile entegre edilmiş zengin kimlik doğrulama ve yetkilendirme opsiyonları. Genişletilebilir ve detaylandırılabilr bir izin sistemi sunar.",
"AuthenticationAuthorizationExplanation":"ASP.NET Core Identity & OpenIddict ile entegre edilmiş zengin kimlik doğrulama ve yetkilendirme opsiyonları. Genişletilebilir ve detaylandırılabilr bir izin sistemi sunar.",
"CrossCuttingConcernsExplanation":"Tüm bu ortak şeyleri geliştirmek için kendini sürekli tekrar etme. Kendi iş koduna odaklan ve bırak ABP bunları kurallar ile otomatik hale getirsin.",
"MultiTenancyExplanation4":"Bạn tập trung vào mã doanh nghiệp của mình và để khuôn khổ xử lý việc thuê nhiều người thay cho bạn.",
"BootstrapTagHelpersExplanation":"Thay vì viết thủ công các chi tiết lặp lại của các thành phần bootstrap, hãy sử dụng trình trợ giúp thẻ của ABP để đơn giản hóa nó và tận dụng lợi thế của intellisense. Bạn chắc chắn có thể sử dụng Bootstrap bất cứ khi nào bạn cần.",
"DynamicFormsExplanation":"Trình trợ giúp biểu mẫu động & thẻ nhập có thể tạo biểu mẫu hoàn chỉnh từ lớp C # làm mô hình.",
"AuthenticationAuthorizationExplanation":"Các tùy chọn xác thực & ủy quyền phong phú được tích hợp vào ASP.NET Core Identity & IdentityServer4. Cung cấp hệ thống quyền chi tiết và có thể mở rộng.",
"AuthenticationAuthorizationExplanation":"Các tùy chọn xác thực & ủy quyền phong phú được tích hợp vào ASP.NET Core Identity & OpenIddict. Cung cấp hệ thống quyền chi tiết và có thể mở rộng.",
"CrossCuttingConcernsExplanation":"Đừng lặp lại chính mình để thực hiện lại tất cả những thứ phổ biến này. Tập trung vào mã doanh nghiệp của bạn và để ABP tự động hóa chúng theo quy ước.",
"DatabaseConnectionTransactionManagement":"Kết nối cơ sở dữ liệu & Quản lý giao dịch",
"MasteringAbpFramework_Book_Description_Details_2":"本书由 ABP 框架的创建者撰写,将帮助您全面了解该框架和现代 Web 应用程序开发技术。 通过对基本概念和实际示例的逐步解释,您将了解现代 Web 解决方案的要求以及 ABP\n 框架如何使开发您自己的解决方案变得轻松愉快。 您将发现\n 企业 Web 应用程序开发的常见需求,并探索 ABP 提供的基础架构。 在整本书中,您将掌握构建可维护和模块化 Web 解决方案的软件开发最佳实践。",
"MasteringAbpFramework_Book_Description_Details_3":"在本书结束时,您将能够创建一个易于开发、\n 维护和测试的完整 Web 解决方案。",
"MasteringAbpFramework_Book_WhoIsThisBookFor_Description":"本书适用于希望学习软件架构和最佳实践的 Web 开发人员,以使用 Microsoft 技术和 ABP 框架构建\n 可维护的基于 Web 的解决方案。 C#\n 和 ASP.NET Core 的基本知识是开始阅读本书所必需的。",
@ -527,6 +527,16 @@ Then review changes on your source control system to be sure that it has changed
* `--file` or `-f`: Default: `abp-translation.json`. The translation file (use only if you've used the `--output` option before).
#### Online DeepL translate
The `translate` command also supports online translation. You need to provide your [DeepL Authentication Key](https://support.deepl.com/hc/en-us/articles/360020695820-Authentication-Key).
It will search all the `en.json(reference-culture)` files in the directory and sub-directory and then translate and generate the corresponding `zh-Hans.json(culture)` files.
OAuth is preconfigured in Angular application templates. So, when you start a project using the CLI (or Suite, for that matter), authorization already works. ABP Angular UI packages are using [angular-oauth2-oidc library](https://github.com/manfredsteyer/angular-oauth2-oidc#logging-in) for managing OAuth in the Angular client.
OAuth is preconfigured in Angular application templates. So, when you start a project using the CLI (or Suite, for that matter), authorization already works. ABP Angular UI packages are using [angular-oauth2-oidc library](https://github.com/manfredsteyer/angular-oauth2-oidc#logging-in) for managing OAuth in the Angular client.
You can find **OAuth configuration** in the _environment.ts_ files.
### Authorization Code Flow
### Authorization Code Flow
```js
import { Config } from '@abp/ng.core';
@ -29,7 +29,6 @@ export const environment = {
This configuration results in an [OAuth authorization code flow with PKCE](https://tools.ietf.org/html/rfc7636).
According to this flow, the user is redirected to an external login page which is built with MVC. So, if you need **to customize the login page**, please follow [this community article](https://community.abp.io/articles/how-to-customize-the-login-page-for-mvc-razor-page-applications-9a40f3cd).
### Resource Owner Password Flow
If you have used the [Angular UI account module](./Account-Module) in your project, you can switch to the resource owner password flow by changing the OAuth configuration in the _environment.ts_ files as shown below:
@ -52,3 +51,128 @@ export const environment = {
```
According to this flow, the user is redirected to the login page in the account module.
### Error Filtering
In [AuthFlowStrategy](https://github.com/abpframework/abp/blob/21e70fd66154d4064d03b1a438f20a2e4318715e/npm/ng-packs/packages/oauth/src/lib/strategies/auth-flow-strategy.ts#L24) class, there is a method called `listenToOauthErrors` that listens to `OAuthErrorEvent` errors. This method clears the localStorage for OAuth keys. However, in certain cases, we might want to skip this process. To achieve this, we can use the `AuthErrorFilterService`.
The `AuthErrorFilterService` is an abstract service that needs to be replaced with a custom implementation
> By default, this service is replaced in the `@abp/ng.oauth` package
**Usage**
1.Create an auth-filter.provider
```js
import { APP_INITIALIZER, inject } from '@angular/core';
import { AuthErrorFilter, AuthErrorEvent, AuthErrorFilterService } from '@abp/ng.core';
import { eCustomersAuthFilterNames } from '../enums';
To add a new layout component, you need to follow these steps:
#### Step 1: Create a New Angular Component
This component should have a 'router-outlet' for dynamic content loading. You can create a new component using the Angular CLI. Run the following command in your terminal:
```bash
ng generate component new-layout
```
This command will create a new component named `new-layout`. Now, open the new-layout.component.html file and add a `router-outlet` to it:
```html
<router-outlet></router-outlet>
```
This 'router-outlet' will act as a placeholder that Angular dynamically fills based on the current router state.
note: (don't forget: you should add the app in the app.module.ts file)
#### Step 2: Define a Variable for the Layout Component
Although this step is optional, it can be useful if you're going to use the layout component's value multiple times. You can define a variable for the layout component like this:
```javascript
export const eCustomLayout = {
key: 'CustomLayout',
component: 'CustomLayoutComponent',
};
```
In this variable, `key` is a unique identifier for the layout component, and `component` is the name of the layout component.
You can use this variable when you need to refer to the layout component.
#### Step 3: Add the Layout Component to the ABP Replaceable-System
Next, you need to add the new layout component to the `ReplaceableComponentsService`. This service allows you to replace a component with another one dynamically.
You can do this by defining a provider for `APP_INITIALIZER` that uses a factory function. In this function, you inject the `ReplaceableComponentsService` and use its `add` method to add the new layout component.
In this code, `configureLayoutFn` is a factory function that adds the new layout component to the `ReplaceableComponentsService`. The `APP_INITIALIZER` provider runs this function when the application starts.
note: (don't forget: you should add the CUSTOM_LAYOUT_PROVIDERS in the app.module.ts file)
#### Step 4: Define the Application's Dynamic Layouts
Finally, you need to define the application's dynamic layouts. This is a map where the keys are the layout keys and the values are the layout components.
You can add the new layout to the existing layouts like this:
```javascript
export const myDynamicLayouts = new Map<string,string>([...DEFAULT_DYNAMIC_LAYOUTS, [eCustomLayout.key, eCustomLayout.component]]);
```
#### Step 5: Pass the Dynamic Layouts to the CoreModule
The final step is to pass the dynamic layouts to the `CoreModule` using the `forRoot` method. This method allows you to configure the module with a static method.
@ -364,7 +364,8 @@ You can set some of the attributes on your c# property, or directly on HTML tag.
* `single-open-and-clear-button`: Shows the open and clear buttons in a single button when it's `True`. The default value is `True`.
* `is-utc`: Converts the date to UTC when its `True`. The default value is `False`.
* `is-iso`: Converts the date to ISO format when its `True`. The default value is `False`.
* `date-format`: Sets the date format of the input. The default format is the user's culture date format. You need to provide a JavaScript date format convention. Eg: `YYYY-MM-DDTHH:MM:SSZ`.
* `visible-date-format`: Sets the date format of the input. The default format is the user's culture date format. You need to provide a JavaScript date format convention. Eg: `YYYY-MM-DDTHH:MM:SSZ`.
* `input-date-format`: Sets the date format of the hidden input for backend compatibility. The default format is `YYYY-MM-DD`. You need to provide a JavaScript date format convention. Eg: `YYYY-MM-DDTHH:MM:SSZ`.
* `date-separator`: Sets a character to separate start and end dates. The default value is `-`
* Other non-mapped attributes will be automatically added to the input element as is. See the available [datepicker options](https://www.daterangepicker.com/#options). Eg: `data-start-date="2020-01-01"`
* `singleOpenAndClearButton`: Shows the open and clear buttons in a single button when it's `True`. The default value is `True`.
* `isUtc`: Converts the date to UTC when its `True`. The default value is `False`.
* `isIso`: Converts the date to ISO format when its `True`. The default value is `False`.
* `dateFormat`: Sets the date format of the input. The default format is the user's culture date format. You need to provide a JavaScript date format convention. Eg: `YYYY-MM-DDTHH:MM:SSZ`.
* `visibleDateFormat`: Sets the date format of the input. The default format is the user's culture date format. You need to provide a JavaScript date format convention. Eg: `YYYY-MM-DDTHH:MM:SSZ`.
* `inputDateFormat`: Sets the date format of the hidden input for backend compatibility. The default format is `YYYY-MM-DD`. You need to provide a JavaScript date format convention. Eg: `YYYY-MM-DDTHH:MM:SSZ`.
* `dateSeparator`: Sets a character to separate start and end dates. The default value is `-`.
* `startDateName`: Sets the name of the hidden start date input.
* `endDateName`: Sets the name of the hidden end date input.
Logger.LogWarning("Could not parse package \"{0}\" version v{1}. Skipped.",packageId,currentVersion);
Logger.LogWarning("Could not parse package \"{PackageId}\" version v{CurrentVersion}. Skipped!",packageId,currentVersion);
continue;
}
Logger.LogDebug("Checking package: \"{0}\" - Current version: {1}",packageId,currentSemanticVersion);
Logger.LogDebug("Checking package: \"{PackageId}\" - Current version: {CurrentSemanticVersion}",packageId,currentSemanticVersion);
if(!specifiedVersion.IsNullOrWhiteSpace())
{
if(isLeptonXPackage||isStudioPackage)
{
Logger.LogWarning("Package: {0} could not be updated. Please manually update the package version yourself to prevent version mismatches.",packageId);
Logger.LogWarning("Package: {PackageId} could not be updated. Please manually update the package version yourself to prevent version mismatches!",packageId);
continue;
}
@ -213,17 +218,17 @@ public class VoloNugetPackagesVersionUpdater : ITransientDependency
Logger.LogInformation("Updating package \"{0}\" from v{1} to v{2}.",packageId,currentVersion,specifiedVersion);
Logger.LogInformation("Updating package \"{PackageId}\" from v{CurrentVersion} to v{SpecifiedVersion}",packageId,currentVersion,specifiedVersion);
versionAttribute.Value=specifiedVersion;
}
else
{
Logger.LogWarning("Unable to update package \"{0}\" version v{1} to v{2}.",packageId,currentVersion,specifiedVersion);
Logger.LogWarning("Unable to update package \"{PackageId}\" version v{CurrentVersion} to v{SpecifiedVersion}",packageId,currentVersion,specifiedVersion);
}
}
else
{
Logger.LogWarning("Package \"{0}\" specified version v{1} does not exist.",packageId,specifiedVersion);
Logger.LogWarning("Package \"{PackageId}\" specified version v{SpecifiedVersion} does not exist!",packageId,specifiedVersion);
}
}
else
@ -253,18 +258,18 @@ public class VoloNugetPackagesVersionUpdater : ITransientDependency
if(latestVersion==null)
{
Logger.LogWarning("Package: {0} could not be updated. Please manually update the package version yourself to prevent version mismatches.",packageId);
Logger.LogWarning("Package: {PackageId} could not be updated. Please manually update the package version yourself to prevent version mismatches!",packageId);
continue;
}
if(currentVersion!=latestVersion)
{
Logger.LogInformation("Updating package \"{0}\" from v{1} to v{2}.",packageId,currentVersion,latestVersion);
Logger.LogInformation("Updating package \"{PackageId}\" from v{CurrentVersion} to v{LatestVersion}",packageId,currentVersion,latestVersion);
versionAttribute.Value=latestVersion;
}
else
{
Logger.LogDebug("Package: \"{0}-v{1}\" is up to date.",packageId,currentVersion);
Logger.LogDebug("Package: \"{PackageId}-v{CurrentVersion}\" is up to date",packageId,currentVersion);
}
}
else
@ -285,12 +290,12 @@ public class VoloNugetPackagesVersionUpdater : ITransientDependency
Logger.LogInformation("Updating package \"{0}\" from v{1} to v{2}.",packageId,currentSemanticVersion.ToString(),latestVersion.ToString());
Logger.LogInformation("Updating package \"{PackageId}\" from v{CurrentSemanticVersion} to v{LatestVersion}",packageId,currentSemanticVersion.ToString(),latestVersion.ToString());
versionAttribute.Value=latestVersion.ToString();
}
else
{
Logger.LogInformation("Package: \"{0}-v{1}\" is up to date.",packageId,currentSemanticVersion);
Logger.LogInformation("Package: \"{PackageId}-v{CurrentSemanticVersion}\" is up to date",packageId,currentSemanticVersion);
}
}
}
@ -301,7 +306,7 @@ public class VoloNugetPackagesVersionUpdater : ITransientDependency
}
catch(Exceptionex)
{
Logger.LogError("Cannot update Volo.* packages! An error occurred while updating the package \"{0}\". Error: {1}",packageId,ex.Message);
Logger.LogError("Cannot update Volo.* packages! An error occurred while updating the package \"{PackageId}\". Error: {ErrorMessage}",packageId,ex.Message);