From a8414e00d17e1f19719436056c72886288e29ef3 Mon Sep 17 00:00:00 2001 From: Dogan Yildirim Date: Mon, 5 Aug 2024 23:19:20 +0300 Subject: [PATCH 01/13] Update en.json --- .../Www/Localization/Resources/en.json | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/en.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/en.json index 8b0fcc7a63..0c6e5860c0 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/en.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/en.json @@ -22,6 +22,7 @@ "Infrastructure": "Infrastructure", "Architecture": "Architecture", "Modular": "Modular", + "Blogs": "Blog Posts", "DontRepeatYourself": "Don\u2019t Repeat Yourself", "DeveloperFocused": "Developer Focused", "FullStackApplicationInfrastructure": "Full stack application infrastructure.", @@ -245,6 +246,8 @@ "DomainAndApplicationLogic": "Domain Logic & Application Logic", "Author": "Author", "Pages": "Pages", + "Purchase_Page_Title": "{0} License", + "Purchase_Page_Description": "Don't waste time reinventing the wheel. Purchase the {0} License and start coding your business today!", "PublishedOn": "Published on", "FreeEBook": "Free E-Book", "Download": "Download", @@ -894,7 +897,7 @@ "PrioritizedTechnicalSupport": "Prioritized Technical Support", "PremiumSupportExplanation": "Besides the great community support of the ABP framework, our support team answers technical questions and problems of the commercial users with high priority.", "SeeTheSupportOptions": "Check out the Support Options", - "Contact": "Contact", + "Contact": "Contact Us", "TellUsWhatYouNeed": "Tell us what you need.", "YourMessage": "Your Message", "YourFullName": "Your full name", @@ -1438,7 +1441,7 @@ "MVC": "MVC", "BlazorServer": "Blazor Server", "MAUI": "MAUI", - "HowItWorks_Page_Title": "How it Works?", + "HowItWorks_Page_Title": "How It Works?", "HowItWorks_Page_Description": "Understand how ABP Framework works with detailed documentation, including guides and best practices.", "HowItWorks_Description1": "ABP extends the .NET platform. So, anything you can do with a plain .NET solution is already possible with ABP. That makes it easy to get started with a low learning curve.", "HowItWorks_Description2": "Once you start learning and using ABP features, developing your software will be much more enjoyable than ever.", @@ -1714,6 +1717,7 @@ "ExpirationWarning": "Invalid expiration date", "CreateCreditCardModal_Description": "When saving your debit/credit card, a temporary $1 charge will be authorized for verification and promptly refunded.", "ReturnOnInvestmentTitle": "Return on Investment", + "ReturnOnInvestment": "Retun on Investment", "ReduceYourDevelopmentCostsDescription": "Reduce your development costs by more than 50% with the ABP Platform.", "SettingUpTheArchitectureTitle": "Setting up the Architecture", "DoingEverythingFromScratch": "Doing everything from scratch", @@ -1781,7 +1785,7 @@ "PurchaseDevelopers": "developers", "LinkExpiredMessage": "The payment link has expired! Contact us at sales@volosoft.com to update the link or click here to navigate to the contact page.", "YourAccountDisabled": "Your user account is disabled!", - "WhyChooseAbpTitle": "Why Choose ABP? | ABP.IO", + "WhyChooseAbpTitle": "Why Choose ABP?", "WhyChooseAbpDescription": "Discover ABP Commercial benefits: modular architecture, microservice ready modules, productivity tools and robust features for modern line of business web apps.", "AbpIo_Modern_Title": "ABP.IO - Modern ASP.NET Core Web Application Platform", "AbpIo_Modern_Description": "ABP Platform provides an open-source framework on top of ASP.NET Core with Angular, Blazor, and MVC UI options to create scalable line of business web apps.", From 9b9bc55395188d6391db447b4a94f563d6a813f1 Mon Sep 17 00:00:00 2001 From: Dogan Yildirim Date: Sun, 11 Aug 2024 17:56:17 +0300 Subject: [PATCH 02/13] Update base and local json --- .../Base/Localization/Resources/en.json | 2 +- .../Www/Localization/Resources/en.json | 10 ++++------ 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/en.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/en.json index 09a56dffa1..82aabed272 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/en.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/en.json @@ -239,7 +239,7 @@ "Trainings": "Trainings", "MeetTheABPCommunity": "Meet the ABP Community", "DisplayName:CommunityIndexPagePoll": "Community Index Page Poll", - "ReturnOnInvestment": "Return On Investment", + "ReturnOnInvestment": "Return on Investment", "PromotionalOffers": "Promotional Offers", "PromotionalOffersDefinition": "Discounts, seasonal campaigns, etc.", "EventsDefinition": "Community Talks, Webinars, ABP .NET Conference, etc.", diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/en.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/en.json index 0c6e5860c0..20ecc910f5 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/en.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/en.json @@ -22,7 +22,6 @@ "Infrastructure": "Infrastructure", "Architecture": "Architecture", "Modular": "Modular", - "Blogs": "Blog Posts", "DontRepeatYourself": "Don\u2019t Repeat Yourself", "DeveloperFocused": "Developer Focused", "FullStackApplicationInfrastructure": "Full stack application infrastructure.", @@ -897,7 +896,7 @@ "PrioritizedTechnicalSupport": "Prioritized Technical Support", "PremiumSupportExplanation": "Besides the great community support of the ABP framework, our support team answers technical questions and problems of the commercial users with high priority.", "SeeTheSupportOptions": "Check out the Support Options", - "Contact": "Contact Us", + "Contact": "Contact", "TellUsWhatYouNeed": "Tell us what you need.", "YourMessage": "Your Message", "YourFullName": "Your full name", @@ -1717,7 +1716,6 @@ "ExpirationWarning": "Invalid expiration date", "CreateCreditCardModal_Description": "When saving your debit/credit card, a temporary $1 charge will be authorized for verification and promptly refunded.", "ReturnOnInvestmentTitle": "Return on Investment", - "ReturnOnInvestment": "Retun on Investment", "ReduceYourDevelopmentCostsDescription": "Reduce your development costs by more than 50% with the ABP Platform.", "SettingUpTheArchitectureTitle": "Setting up the Architecture", "DoingEverythingFromScratch": "Doing everything from scratch", @@ -1791,7 +1789,7 @@ "AbpIo_Modern_Description": "ABP Platform provides an open-source framework on top of ASP.NET Core with Angular, Blazor, and MVC UI options to create scalable line of business web apps.", "My_Organizations_Page_Title": "My Organizations", "My_Organizations_Page_Description": "View your ABP Platform organizations to manage your developers, license renewals and upgrade.", - "Members_Page_Title": "{0} - Community Member | ABP.IO", + "Members_Page_Title": "{0} - Community Member", "Members_Page_Description": "{0} is a member of the ABP Community. Check out the contributions and benefit this experience.", "Framework_Page_Title": "ABP Framework", "Framework_Page_Description": "ABP Framework is the most straightforward way to kick-start your project! Learn about ABP Framework's robust features.", @@ -1808,13 +1806,13 @@ "Services_Page_Description": "Get professional development and support services from the ABP Team or its solution partners, ensuring your project's success.", "Contributors_Page_Title": "Contributors of ABP", "Contributors_Page_Description": "Meet the contributors of the ABP Community, learning about their roles and contributions to the framework.", - "PackagesDetailTitle": "{0} - Package Details | ABP Framework", + "PackagesDetailTitle": "{0} - Package Details", "PackagesDetailDescription": "Get detailed information about the {0} package, including features and usage.", "Raffle_Page_Title": "Raffle - {0}", "Raffle_Page_Description": "Participate in ABP raffles and stand a chance to win exciting prizes, engaging with the ABP Community.", "Docs_Page_Title": "ABP Documentation", "Docs_Page_Description": "Access comprehensive guides and API references in the ABP Documentation, aiding in development and troubleshooting.", - "Videos_Page_Title": "{0} - Video Post | ABP.IO", + "Videos_Page_Title": "{0} - Video Post", "AskQuestionsOnSupport": "You can ask questions on ABP Support.", "MicroserviceApplicationExplanation1": "Creates a distributed solution.", "MicroserviceApplicationExplanation2": "Recommended for large teams to create complex and scalable systems.", From eedb9976a424c4db872c235656c5a7fd8e414ae3 Mon Sep 17 00:00:00 2001 From: Dogan Yildirim Date: Wed, 4 Sep 2024 03:12:31 +0300 Subject: [PATCH 03/13] Updated jsons --- .../AbpIoLocalization/Base/Localization/Resources/en-GB.json | 2 +- .../AbpIoLocalization/Base/Localization/Resources/en.json | 2 +- .../AbpIoLocalization/Blog/Localization/Resources/en.json | 5 +++-- .../Commercial/Localization/Resources/en.json | 2 +- .../AbpIoLocalization/Www/Localization/Resources/en.json | 2 +- 5 files changed, 7 insertions(+), 6 deletions(-) diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/en-GB.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/en-GB.json index 3459801b86..45a01bea9b 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/en-GB.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/en-GB.json @@ -38,6 +38,6 @@ "OrganizationOverview": "Organization Overview", "EmailPreferences": "Email Preferences", "DoYouAgreePrivacyPolicy": "By clicking Subscribe button you agree to the Terms & Conditions and Privacy Policy.", - "AbpConferenceDescription": "ABP Conference is a virtual event for .NET developers to learn and connect with the community." + "AbpConferenceDescription": "On 25, 26 September 2024, we’re hosting a free, live, virtual event where community speakers cover topics about .NET and soft-skills." } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/en.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/en.json index 82aabed272..586dcc2048 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/en.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/en.json @@ -250,7 +250,7 @@ "EmailPreferences": "Email Preferences", "VideoCourses": "Essential Videos", "DoYouAgreePrivacyPolicy": "By clicking Subscribe button you agree to the Terms & Conditions and Privacy Policy.", - "AbpConferenceDescription": "ABP Conference is a virtual event for .NET developers to learn and connect with the community.", + "AbpConferenceDescription": "On 25, 26 September 2024, we’re hosting a free, live, virtual event where community speakers cover topics about .NET and soft-skills.", "Mobile": "Mobile" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Blog/Localization/Resources/en.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Blog/Localization/Resources/en.json index 2da5698215..880cb53a9e 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Blog/Localization/Resources/en.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Blog/Localization/Resources/en.json @@ -1,8 +1,9 @@ { "culture": "en", "texts": { - "AbpTitle": "Read All Blog Posts", + "AbpTitle": "New Blog Post | ABP.IO", "AbpDescription": "ABP is an open source application framework focused on AspNet Core based web application development. Don't repeat yourself, focus on your own business code.", - "AbpDefinition": "ABP blog for .NET development, cross-platform, ASP.NET application templates, ABP-related news and more..." + "AbpDefinition": "Create a new blog post and share your knowledge and experience with ABP.", + "Blogs": "Blog Posts" } } \ 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 d0cfe5dbcd..e92290f826 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json @@ -1180,7 +1180,7 @@ "ReturnOfInvestmentPageAbout": "This page covers the fundamental steps of developing a software solution and explains how the ABP.IO Platform reduces your development costs at each step.", "LearnMore": "Learn More", "ReturnOfInvestment": "Return of Investment", - "ReturnOfInvestment_Description": "Learn how to reduce your development costs by more than %50.", + "ReturnOfInvestment_Description": "Learn about the return on investment when using ABP Framework, highlighting cost-effectiveness and efficiency.", "Previous": "Previous", "PricingDiscount": "Save", "PricingTeamTitle": "Team", diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/en.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/en.json index 20ecc910f5..511f3e301a 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/en.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/en.json @@ -1752,7 +1752,7 @@ "ReturnOnInvestmentPageAbout": "This page covers the fundamental steps of developing a software solution and explains how the ABP Platform reduces your development costs at each step.", "LearnMore": "Learn More", "ReturnOfInvestment": "Return of Investment", - "ReturnOnInvestment_Description": "Learn how to reduce your development costs by more than %50.", + "ReturnOnInvestment_Description": "Learn about the return on investment when using ABP Framework, highlighting cost-effectiveness and efficiency.", "PricingDiscount": "Save", "PricingTeamTitle": "Team", "PricingBusinessTitle": "Business", From 63749549f3690ce05d64121b5209b5e4b9bf17d3 Mon Sep 17 00:00:00 2001 From: Dogan Yildirim Date: Wed, 11 Sep 2024 14:01:14 +0300 Subject: [PATCH 04/13] Updated json --- .../Commercial/Localization/Resources/en.json | 8 ++-- .../Docs/Localization/Resources/en.json | 3 +- .../Www/Localization/Resources/en.json | 44 ++++++++++++------- 3 files changed, 36 insertions(+), 19 deletions(-) diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json index e92290f826..ec77e80c98 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json @@ -618,8 +618,8 @@ "TrialForumSupportIncident": "You'll have {0} forum support incidents", "Contact_Page_Title": "Contact with ABP Development Team", "Contact_Page_Description": "Contact with ABP Development team, if you need any help or share your thoughts and opinions! ABP Support Team is ready to help.", - "Demo_Page_Title": "Create a Demo", - "Demo_Page_Description": "Create a free demo to see a sample application created using the ABP startup templates. Don't repeat yourself for common application requirements.", + "Demo_Page_Title": "Create a Live Demo", + "Demo_Page_Description": "Create a free live demo to experience the power of ABP Framework with our interactive demos. Explore a variety of real-world web applications.", "Discounted_Page_Title": "Discounted pricing", "Discounted_Page_Description": "Choose the features and functionality your business needs today. Buy an ABP license and create unlimited projects", "Faq_Page_Title": "Frequently Asked Questions (FAQ)", @@ -832,7 +832,9 @@ "WhyUseAbpIoPlatform": "Why should I use the ABP.IO Platform instead of creating a new solution from scratch?", "WhyUseAbpIoPlatformFaqExplanation": "See that page for a detailed explanation of why using ABP.IO Platform has a significant advantage over doing everything yourself.", "EulaPageTitle": "End User License Agreement (EULA)", - "PrivacyPolicyPageTitle": "Privacy Policy - Cookie Policy", + "EulaPageDescription": "Review ABP's End User License Agreement (EULA) to understand the terms and conditions to use our software, including rights, restrictions, obligations.", + "PrivacyPolicyPageTitle": "Privacy Policy | Cookie Policy", + "PrivacyPolicyPageDescription": "Discover how ABP ensures your privacy and protection. Learn about our commitment to safeguarding your information and the measures we take to secure data.", "TermsConditionsPageTitle": "Terms and Conditions", "TrainingsPageTitle": "ABP Training Packages", "ModulesPageTitle": "ABP Pre-Built Application Modules", diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Docs/Localization/Resources/en.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Docs/Localization/Resources/en.json index 36cad167bd..23176ac6ac 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Docs/Localization/Resources/en.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Docs/Localization/Resources/en.json @@ -4,6 +4,7 @@ "Buy": "Buy", "SeeBookDetails": "See Book Details", "MasteringAbpFrameworkEBookDescription": "This book will help you gain a complete understanding of the framework and modern web application development techniques.", - "Feedback": "Feedback" + "Feedback": "Feedback", + "DocumentationDescription": "Dive into ABP's latest documentation. Find guides, API references, and best practices to help you effectively build and manage modern web apps with ABP" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/en.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/en.json index 511f3e301a..174e5e8c62 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/en.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/en.json @@ -1,7 +1,7 @@ { "culture": "en", "texts": { - "GetStarted": "Get Started", + "GetStarted": "Get Started with ABP | Quick and Easy Setup Guide", "Create": "Create", "NewProject": "New Project", "DirectDownload": "Direct Download", @@ -351,6 +351,8 @@ "BuyOnDangDang": "Buy on DangDang", "BuyOnJD": "Buy on JD", "Discounted": "Discounted", + "MasteringAbpBookTitle": "Mastering ABP Framework", + "MasteringAbpBookDescription": "Written by the creator of ABP Framework, this book will help you to gain a complete understanding of the framework and web app development techniques.", "MasteringAbpFramework_Book_KeyFeatures": "Key Features", "MasteringAbpFramework_Book_Key_Features_Description_1": "Build robust, maintainable, modular, and scalable software solutions using ABP Framework.", "MasteringAbpFramework_Book_Key_Features_Description_2": "Learn how to implement SOLID principles and domain-driven design in your web applications.", @@ -596,7 +598,9 @@ "CreatePostSuccessMessage": "The Post has been successfully submitted. It will be published after a review from the site admin.", "Browse": "Browse", "CoverImage": "Cover Image", - "ShareYourExperiencesWithTheABPFramework": "Share your experiences with the ABP Framework!", + "ShareYourExperiencesWithTheABPFramework": "ABP Community Articles | Read or Submit Articles", + "CommunityVideosTitle": "ABP Community Videos | Watch and Share Your Videos", + "CommunityVideosDescription": "Watch the video tutorials, get informed about ABP news & updates and share your experiences with the community.", "UpdateUserWebSiteInfo": "Example: https://johndoe.com", "UpdateUserTwitterInfo": "Example: johndoe", "UpdateUserGithubInfo": "Example: johndoe", @@ -704,14 +708,14 @@ "Discord_Page_Description_2": "ABP Community Discord Server is the place where you can showcase your creations using ABP Framework, share the tips that worked for you, catch up with the latest news and announcements about ABP Framework, just chat with community members to exchange ideas, and have fun!", "Discord_Page_Description_3": "This ABP Community Discord Server is the official one with the ABP Core Team is present on the server to monitor.", "Discord_Page_JoinToServer": "Join ABP Discord Server", - "Events_Page_MetaTitle": "ABP Community Events", - "Events_Page_MetaDescription": "The live shows, hosted by the ABP Team, are casual sessions full of community content, demos, Q&A, and discussions around what's happening in ABP.", + "Events_Page_MetaTitle": "ABP Events | Community Talks", + "Events_Page_MetaDescription": "Live ABP Community Talks hosted by the ABP Team and casual sessions full of community content, demos, Q&A, and discussions around what's happening in ABP.", "Events_Page_Title": "ABP Community Talks", "Members_Page_WritingFromUser": "Read writing from {0} on ABP Community.", "Post_Create_Page_MetaTitle": "New Community Post", "Post_Create_Page_MetaDescription": "Submit your own posts to the ABP Community platform, contributing your insights and experiences.", "Post_Create_Page_CreateNewPost": "Create New Post", - "Post_Index_Page_MetaDescription": "ABP Community's purpose is to create a contribution environment for developers who use the ABP framework.", + "Post_Index_Page_MetaDescription": "ABP Community Article's purpose is to create a contribution environment for developers who use the ABP Framework.", "Layout_Title": "{0} | ABP Community", "Layout_MetaDescription": "A hub for ABP Framework, .NET, and software development. Access articles, tutorials, news, and contribute to the ABP community.", "Index_Page_CommunityIntroduction": "This is a hub for ABP Framework, .NET and software development. You can read the articles, watch the video tutorials, get informed about ABP’s development progress and ABP-related events, help other developers and share your expertise with the ABP community.", @@ -784,6 +788,8 @@ "Articles({0})": "Articles ({0})", "Videos({0})": "Videos ({0})", "LatestArticles": "Latest Articles", + "Raffles": "ABP Community Raffles | Join and Win ABP Raffles", + "RafflesDescription": "Check the upcoming raffles, attend them and be a winner for various ABP licences.", "RaffleHeader": "Hello ABP Community Member!", "RafflesInfo": "
This is the raffle page dedicated to show our appreciation towards you for being an active Community Member. We do ABP Community Talks ABP Dotnet Conference, attend or sponsor to the .NET-related events in which we give away some gifts.

You can follow this page to see the upcoming raffles, attend them, or see previous raffles we draw including the winners.

Thank you for being an active member! See you in the upcoming raffles.", "RafflesInfoTitle": "ABP Community Raffles", @@ -1142,8 +1148,10 @@ "PRO": "PRO", "YourAccountDetails": "Your Account Details", "OrganizationName": "Organization Name", + "MicroserviceDescription": "Discover ABP's complete solution architecture featuring multiple applications, API gateways, micro services, and databases using the latest technologies.", "AddDevelopers": "Add Developers", "StartDevelopment": "Start Development", + "ModularMonolithDescription": "Explore this ABP template designed for a layered, modular, and DDD-based solution architecture, helping you build a clean, maintainable codebase with ease.", "CreateAndRunApplicationUsingStartupTemplate": "Learn how to create and run a new web application using the ABP startup template.", "CommunityDescription2": "abp.io/community is a place where people can share ABP-related articles. Search for articles, tutorials, code samples, case studies and meet people in the same lane as you.", "UseABPSuiteExplanation": "Use ABP Suite to download the source-code of the modules and themes.", @@ -1152,6 +1160,7 @@ "SeeLess": "See Less", "LayeredSolutionStructure": "Layered Solution Structure", "LayeredSolutionStructureExplanation": "The solution is layered based on Domain Driven Design principles and patterns to isolate your business logic from the infrastructure and integrations and to maximize code maintainability and reusability. ABP Framework already provides abstractions, base classes and guides to truly implement DDD for your application.", + "SimpleMonolithDescription": "This ABP template is a simple monolith application that is designed to be a good starting point for your small to medium-sized projects.", "MultipleUIOptionsExplanation": "We love different ways to create the UI. This startup solution provides three different UI framework options for your business application.", "MultipleDatabaseOptions": "Multiple Database Options", "MultipleDatabaseOptionsExplanation": "You have two database provider options (in addition to using both in a single application). Use Entity Framework Core to work with any relational database and optionally use Dapper when you need to write low-level queries for better performance. MongoDB is another option if you need to use a document-based NoSQL database. While these providers are well-integrated, abstracted and pre-configured, you can actually interact with any database system that you can use with .NET.", @@ -1190,8 +1199,8 @@ "AddBasket": "Add to Basket", "SendTrainingRequest": "Send Training Request", "OnlyEnglishVersionOfThisDocumentIsTheRecentAndValid": "* The English version of this document is the most up-to-date, and the English version will prevail in any dispute.", - "Pricing_Page_Title": "Pricing", - "Pricing_Page_Description": "See the different licensing plans of the ABP Platform, including free tiers. If standard plans don't fit, ask for a quote. Don't forget; we have a 30-day money-back guarantee!", + "Pricing_Page_Title": "ABP Pricing | Flexible Plans for Development Needs", + "Pricing_Page_Description": "See the licensing plans of the ABP, including free tiers. If standard plans don't fit, ask for a quote. Don't forget; we have a 30-day money-back guarantee", "Pricing_Page_HurryUp": "Hurry Up!", "Pricing_Page_BuyLicense": "Buy a license at 2021 prices until January 16!", "Pricing_Page_ValidForExistingCustomers": "Also valid for existing customers and license renewals.", @@ -1290,10 +1299,12 @@ "TrialForumSupportIncident": "You'll have {0} forum support incidents", "Contact_Page_Title": "Contact Us", "Contact_Page_Description": "Get in touch with us for licensing, additional services, inquiries or feedback about ABP. We're here to help!", - "Demo_Page_Title": "Create a Demo", - "Demo_Page_Description": "Create a free demo to see a sample application created using the ABP startup template. Don't repeat yourself for common application requirements.", + "Demo_Page_Title": "Create a Live Demo", + "CustomProjectDescription" : "Leverage ABP's expertise for custom project development. Get solutions built to your specifications with our modular architecture and cutting-edge technology", + "Demo_Page_Description": "Create a free live demo to experience the power of ABP Framework with our interactive demos. Explore a variety of real-world web applications.", "Discounted_Page_Title": "Discounted pricing", "Discounted_Page_Description": "Choose the features and functionality your business needs today. Buy an commercial license and create unlimited projects", + "PortingExistingProjectsDescription": "Modernize your app with ABP's project porting services. Migrate your existing .NET projects to a robust, scalable architecture using the latest technologies", "Faq_Page_Title": "Frequently Asked Questions", "Faq_Page_Description": "Find answers to common questions about ABP Framework in our FAQ section, covering various topics and issues.", "Faq_Page_SwiftCode": "SWIFT Code", @@ -1410,8 +1421,11 @@ "WhyUseAbpIoPlatform": "Why should I use the ABP Platform instead of creating a new solution from scratch?", "WhyUseAbpIoPlatformFaqExplanation": "See that page for a detailed explanation of why using ABP Platform has a significant advantage over doing everything yourself.", "EulaPageTitle": "End User License Agreement (EULA)", - "PrivacyPolicyPageTitle": "Privacy Policy - Cookie Policy", + "EulaPageDescription": "Review ABP's End User License Agreement (EULA) to understand the terms and conditions to use our software, including rights, restrictions, obligations.", + "PrivacyPolicyPageTitle": "Privacy Policy | Cookie Policy", + "PrivacyPolicyPageDescription": "Discover how ABP ensures your privacy and protection. Learn about our commitment to safeguarding your information and the measures we take to secure data.", "TermsConditionsPageTitle": "Terms and Conditions", + "TermsConditionsPageDescription": "Read ABP's Terms and Conditions to understand the rules, rights, and responsibilities for using our software and services.", "TrainingsPageTitle": "Training Packages", "ModulesPageTitle": "ABP Modules", "ModulesPageDescription": "Extend and customize your application with ABP's modular architecture, providing flexibility and scalability.", @@ -1650,8 +1664,8 @@ "ABPCommunity_Description2": "It is easy to share code or even re-usable libraries between ABP developers. A code snippet that works for you will also work for others. There are a lot of samples and tutorials that you can directly implement for your application.", "ABPCommunity_Description3": "When you hire a developer who worked before with the ABP architecture will immediately understand your solution and start development in a very short time.", "WhyAbpIo_Page_Title": "Why ABP Platform?", - "AbpStudio_Page_Title": "ABP Studio", - "AbpStudio_Page_Description": "Explore ABP Studio, an integrated development environment for the ABP Platform, enhancing your development process.", + "AbpStudio_Page_Title": "ABP Studio | Cross-Platform Desktop Application", + "AbpStudio_Page_Description": "ABP Studio is a cross-platform desktop application for ABP developers. ABP Studio is the easiest way to get started with the ABP Platform.", "CampaignInfo": "Buy a new license or renew your existing license and get an additional 2 months at no additional cost! This offer is valid for all license plans. Ensure you take advantage of this limited-time promotion to expand your access to premium features and upgrades.", "HurryUpLastDay": "Hurry Up! Last Day: {0}", "CreatingCRUDPagesWithABPSuite": "Creating CRUD pages with ABP Suite", @@ -1799,7 +1813,7 @@ "Mobile_Page_Description": "Develop powerful mobile applications with ABP's mobile development features, ensuring cross-platform compatibility.", "ReleasesPageTitle": "ABP Commercial Releases", "ReleasesPageDescription": "Stay updated with the latest features and updates in ABP Commercial Releases, ensuring your applications are cutting-edge.", - "GetStartedPageTitle": "Quickly get started with ABP Framework using our comprehensive guide, designed for new users.", + "GetStartedPageTitle": "Begin your journey with ABP by following our step-by-step guide. Learn how to set up your development environment, explore key features, start building apps", "Community_Page_Title": "ABP Community", "Community_Page_Description": "Connect and collaborate with other developers in the ABP Community, sharing knowledge and resources.", "Services_Page_Title": "Additional Services", @@ -1811,8 +1825,8 @@ "Raffle_Page_Title": "Raffle - {0}", "Raffle_Page_Description": "Participate in ABP raffles and stand a chance to win exciting prizes, engaging with the ABP Community.", "Docs_Page_Title": "ABP Documentation", - "Docs_Page_Description": "Access comprehensive guides and API references in the ABP Documentation, aiding in development and troubleshooting.", - "Videos_Page_Title": "{0} - Video Post", + "Docs_Page_Description": "Dive into ABP's latest documentation. Find guides, API references, and best practices to help you effectively build and manage modern web apps with ABP", + "Videos_Page_Title": "{0} - Video Post | ABP.IO", "AskQuestionsOnSupport": "You can ask questions on ABP Support.", "MicroserviceApplicationExplanation1": "Creates a distributed solution.", "MicroserviceApplicationExplanation2": "Recommended for large teams to create complex and scalable systems.", From 579853ceb533bb3029af1e4c5485e5308ad9e99a Mon Sep 17 00:00:00 2001 From: Dogan Yildirim Date: Fri, 13 Sep 2024 09:24:08 +0300 Subject: [PATCH 05/13] Updated json --- .../AbpIoLocalization/Base/Localization/Resources/en-GB.json | 2 +- .../AbpIoLocalization/Base/Localization/Resources/en.json | 2 +- .../AbpIoLocalization/Www/Localization/Resources/en.json | 5 +++-- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/en-GB.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/en-GB.json index 45a01bea9b..3459801b86 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/en-GB.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/en-GB.json @@ -38,6 +38,6 @@ "OrganizationOverview": "Organization Overview", "EmailPreferences": "Email Preferences", "DoYouAgreePrivacyPolicy": "By clicking Subscribe button you agree to the Terms & Conditions and Privacy Policy.", - "AbpConferenceDescription": "On 25, 26 September 2024, we’re hosting a free, live, virtual event where community speakers cover topics about .NET and soft-skills." + "AbpConferenceDescription": "ABP Conference is a virtual event for .NET developers to learn and connect with the community." } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/en.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/en.json index 586dcc2048..82aabed272 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/en.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/en.json @@ -250,7 +250,7 @@ "EmailPreferences": "Email Preferences", "VideoCourses": "Essential Videos", "DoYouAgreePrivacyPolicy": "By clicking Subscribe button you agree to the Terms & Conditions and Privacy Policy.", - "AbpConferenceDescription": "On 25, 26 September 2024, we’re hosting a free, live, virtual event where community speakers cover topics about .NET and soft-skills.", + "AbpConferenceDescription": "ABP Conference is a virtual event for .NET developers to learn and connect with the community.", "Mobile": "Mobile" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/en.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/en.json index 174e5e8c62..025a312856 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/en.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/en.json @@ -1,7 +1,8 @@ { "culture": "en", "texts": { - "GetStarted": "Get Started with ABP | Quick and Easy Setup Guide", + "GetStarted": "Get Started", + "GetStarted_Page_Title": "Get Started with ABP | Quick and Easy Setup Guide", "Create": "Create", "NewProject": "New Project", "DirectDownload": "Direct Download", @@ -1813,7 +1814,7 @@ "Mobile_Page_Description": "Develop powerful mobile applications with ABP's mobile development features, ensuring cross-platform compatibility.", "ReleasesPageTitle": "ABP Commercial Releases", "ReleasesPageDescription": "Stay updated with the latest features and updates in ABP Commercial Releases, ensuring your applications are cutting-edge.", - "GetStartedPageTitle": "Begin your journey with ABP by following our step-by-step guide. Learn how to set up your development environment, explore key features, start building apps", + "GetStartedPageDescription": "Begin your journey with ABP by following our step-by-step guide. Learn how to set up your development environment, explore key features, start building apps", "Community_Page_Title": "ABP Community", "Community_Page_Description": "Connect and collaborate with other developers in the ABP Community, sharing knowledge and resources.", "Services_Page_Title": "Additional Services", From 201ea117a8ba54faada26eb55e4f416b644a9704 Mon Sep 17 00:00:00 2001 From: Dogan Yildirim Date: Fri, 13 Sep 2024 09:38:59 +0300 Subject: [PATCH 06/13] Update en.json --- .../AbpIoLocalization/Www/Localization/Resources/en.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/en.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/en.json index 025a312856..a7fba41149 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/en.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/en.json @@ -789,7 +789,8 @@ "Articles({0})": "Articles ({0})", "Videos({0})": "Videos ({0})", "LatestArticles": "Latest Articles", - "Raffles": "ABP Community Raffles | Join and Win ABP Raffles", + "Raffles": "Raffles", + "RafflesPageTitle": "ABP Community Raffles | Join and Win ABP Raffles", "RafflesDescription": "Check the upcoming raffles, attend them and be a winner for various ABP licences.", "RaffleHeader": "Hello ABP Community Member!", "RafflesInfo": "
This is the raffle page dedicated to show our appreciation towards you for being an active Community Member. We do ABP Community Talks ABP Dotnet Conference, attend or sponsor to the .NET-related events in which we give away some gifts.

You can follow this page to see the upcoming raffles, attend them, or see previous raffles we draw including the winners.

Thank you for being an active member! See you in the upcoming raffles.", From 2b0b60f11a72ad034046f84f114ce7f0f64e60db Mon Sep 17 00:00:00 2001 From: Dogan Yildirim Date: Mon, 16 Sep 2024 15:18:49 +0300 Subject: [PATCH 07/13] Update en.json --- .../AbpIoLocalization/Www/Localization/Resources/en.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/en.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/en.json index 2eaa3d875d..a0185b00ab 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/en.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/en.json @@ -358,7 +358,7 @@ "BuyOnJD": "Buy on JD", "Discounted": "Discounted", "MasteringAbpBookTitle": "Mastering ABP Framework", - "MasteringAbpBookDescription": "Written by the creator of ABP Framework, this book will help you to gain a complete understanding of the framework and web app development techniques.", + "MasteringAbpBookDescription": "Written by the creator of ABP, this book will help you to gain a complete understanding of the ABP and web app development techniques.", "MasteringAbpFramework_Book_KeyFeatures": "Key Features", "MasteringAbpFramework_Book_Key_Features_Description_1": "Build robust, maintainable, modular, and scalable software solutions using ABP Framework.", "MasteringAbpFramework_Book_Key_Features_Description_2": "Learn how to implement SOLID principles and domain-driven design in your web applications.", @@ -726,7 +726,7 @@ "Post_Create_Page_MetaTitle": "New Community Post", "Post_Create_Page_MetaDescription": "Submit your own posts to the ABP Community platform, contributing your insights and experiences.", "Post_Create_Page_CreateNewPost": "Create New Post", - "Post_Index_Page_MetaDescription": "ABP Community Article's purpose is to create a contribution environment for developers who use the ABP Framework.", + "Post_Index_Page_MetaDescription": "ABP Community Article's purpose is to create a contribution environment for developers who use the ABP.", "Layout_Title": "{0} | ABP Community", "Layout_MetaDescription": "A hub for ABP Framework, .NET, and software development. Access articles, tutorials, news, and contribute to the ABP community.", "Index_Page_CommunityIntroduction": "This is a hub for ABP Framework, .NET and software development. You can read the articles, watch the video tutorials, get informed about ABP’s development progress and ABP-related events, help other developers and share your expertise with the ABP community.", @@ -1313,7 +1313,7 @@ "Contact_Page_Description": "Get in touch with us for licensing, additional services, inquiries or feedback about ABP. We're here to help!", "Demo_Page_Title": "Create a Live Demo", "CustomProjectDescription" : "Leverage ABP's expertise for custom project development. Get solutions built to your specifications with our modular architecture and cutting-edge technology", - "Demo_Page_Description": "Create a free live demo to experience the power of ABP Framework with our interactive demos. Explore a variety of real-world web applications.", + "Demo_Page_Description": "Create a free live demo to experience the power of ABP with our interactive demos. Explore a variety of real-world web applications.", "Discounted_Page_Title": "Discounted pricing", "Discounted_Page_Description": "Choose the features and functionality your business needs today. Buy an commercial license and create unlimited projects", "PortingExistingProjectsDescription": "Modernize your app with ABP's project porting services. Migrate your existing .NET projects to a robust, scalable architecture using the latest technologies", From 26cee8c6ec4b730d7350d410d5bf77f744fa4b26 Mon Sep 17 00:00:00 2001 From: Dogan Yildirim Date: Wed, 18 Sep 2024 09:13:58 +0300 Subject: [PATCH 08/13] Update en.json --- .../AbpIoLocalization/Www/Localization/Resources/en.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/en.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/en.json index ddf9d1e4fc..15ebf4f42a 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/en.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/en.json @@ -1839,6 +1839,7 @@ "NewsletterDeleteSubscriptionDescription": "
This is a confirmation that you have unsubscribed from the following email categories:
  • Promotional Offers:Discounts, seasonal campaigns, etc.
  • Events:Community Talks, Webinars, ABP DOTNET Conference, etc.
  • Release Notes:ABP Platform releases, new products, etc.
  • Newsletter:Blog posts, community news, etc.

Please note that you will still receive important transactional emails related to your account.
", "NewsletterEmailFooterTemplateDeleteSubscription": "If you change your mind, you're always welcome to resubscribe!", "GenerateQuote" : "Generate Quote" , - "GeneratePriceQuote" : "Generate a Price Quote" + "GeneratePriceQuote": "Generate a Price Quote", + "Qa:QuestionPageTitle": "Support" } } \ No newline at end of file From fed65bdce30a5ddefd84a307bdb32172a6af9be6 Mon Sep 17 00:00:00 2001 From: Dogan Yildirim Date: Fri, 20 Sep 2024 03:35:51 +0300 Subject: [PATCH 09/13] Update en.json --- .../Www/Localization/Resources/en.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/en.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/en.json index a0185b00ab..e35dc53b67 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/en.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/en.json @@ -726,7 +726,7 @@ "Post_Create_Page_MetaTitle": "New Community Post", "Post_Create_Page_MetaDescription": "Submit your own posts to the ABP Community platform, contributing your insights and experiences.", "Post_Create_Page_CreateNewPost": "Create New Post", - "Post_Index_Page_MetaDescription": "ABP Community Article's purpose is to create a contribution environment for developers who use the ABP.", + "Post_Index_Page_MetaDescription": "Write, read articles or watch videos about ABP and .NET. Keep informed about the latest developments.", "Layout_Title": "{0} | ABP Community", "Layout_MetaDescription": "A hub for ABP Framework, .NET, and software development. Access articles, tutorials, news, and contribute to the ABP community.", "Index_Page_CommunityIntroduction": "This is a hub for ABP Framework, .NET and software development. You can read the articles, watch the video tutorials, get informed about ABP’s development progress and ABP-related events, help other developers and share your expertise with the ABP community.", @@ -1212,7 +1212,7 @@ "SendTrainingRequest": "Send Training Request", "OnlyEnglishVersionOfThisDocumentIsTheRecentAndValid": "* The English version of this document is the most up-to-date, and the English version will prevail in any dispute.", "Pricing_Page_Title": "ABP Pricing | Flexible Plans for Development Needs", - "Pricing_Page_Description": "See the licensing plans of the ABP, including free tiers. If standard plans don't fit, ask for a quote. Don't forget; we have a 30-day money-back guarantee", + "Pricing_Page_Description": "See the licensing plans of the ABP, including free tiers. If standard plans don't fit, ask for a quote. Don't forget; we have a 30-day money-back guarantee!", "Pricing_Page_HurryUp": "Hurry Up!", "Pricing_Page_BuyLicense": "Buy a license at 2021 prices until January 16!", "Pricing_Page_ValidForExistingCustomers": "Also valid for existing customers and license renewals.", @@ -1439,8 +1439,8 @@ "TermsConditionsPageTitle": "Terms and Conditions", "TermsConditionsPageDescription": "Read ABP's Terms and Conditions to understand the rules, rights, and responsibilities for using our software and services.", "TrainingsPageTitle": "Training Packages", - "ModulesPageTitle": "ABP Modules", - "ModulesPageDescription": "Extend and customize your application with ABP's modular architecture, providing flexibility and scalability.", + "ModulesPageTitle": "Modules | Pre-built Modules for .NET", + "ModulesPageDescription": "Discover ABP's pre-built modules designed for .NET applications. Enhance your development workflow with framework's customizable solutions.", "Volo.AbpIo.Commercial:040001": "API Access Key is incorrect.", "GetLepton": "Get Lepton Now", "MyOrganizations_Detail_LicenseStartDate": "Start Date", @@ -1678,7 +1678,7 @@ "ABPCommunity_Description3": "When you hire a developer who worked before with the ABP architecture will immediately understand your solution and start development in a very short time.", "WhyAbpIo_Page_Title": "Why ABP Platform?", "AbpStudio_Page_Title": "ABP Studio | Cross-Platform Desktop Application", - "AbpStudio_Page_Description": "ABP Studio is a cross-platform desktop application for ABP developers. ABP Studio is the easiest way to get started with the ABP Platform.", + "AbpStudio_Page_Description": "ABP Studio is a cross-platform desktop application for ABP developers. It's the easiest way to get started with the ABP Platform.", "CampaignInfo": "Buy a new license or renew your existing license and get an additional 2 months at no additional cost! This offer is valid for all license plans. Ensure you take advantage of this limited-time promotion to expand your access to premium features and upgrades.", "HurryUpLastDay": "Hurry Up! Last Day: {0}", "CreatingCRUDPagesWithABPSuite": "Creating CRUD pages with ABP Suite", From 3020ca11b5cd0ed2bb499ef91765cf745df88bc6 Mon Sep 17 00:00:00 2001 From: maliming Date: Wed, 25 Sep 2024 11:26:04 +0800 Subject: [PATCH 10/13] Only get dynamic claims if `IsDynamicClaimsEnabled`. --- .../Controllers/AbpOpenIdDictControllerBase.cs | 1 + .../Controllers/AuthorizeController.cs | 17 ++++++++++++++++- .../TokenController.AuthorizationCode.cs | 15 ++++++++++++++- .../Controllers/TokenController.DeviceCode.cs | 15 ++++++++++++++- .../Controllers/TokenController.RefreshToken.cs | 15 ++++++++++++++- 5 files changed, 59 insertions(+), 4 deletions(-) diff --git a/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/Controllers/AbpOpenIdDictControllerBase.cs b/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/Controllers/AbpOpenIdDictControllerBase.cs index edf7c5d6ec..af40022689 100644 --- a/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/Controllers/AbpOpenIdDictControllerBase.cs +++ b/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/Controllers/AbpOpenIdDictControllerBase.cs @@ -28,6 +28,7 @@ public abstract class AbpOpenIdDictControllerBase : AbpController protected IOpenIddictTokenManager TokenManager => LazyServiceProvider.LazyGetRequiredService(); protected AbpOpenIddictClaimsPrincipalManager OpenIddictClaimsPrincipalManager => LazyServiceProvider.LazyGetRequiredService(); protected IAbpClaimsPrincipalFactory AbpClaimsPrincipalFactory => LazyServiceProvider.LazyGetRequiredService(); + protected IOptions AbpClaimsPrincipalFactoryOptions => LazyServiceProvider.LazyGetRequiredService>(); protected AbpOpenIdDictControllerBase() { diff --git a/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/Controllers/AuthorizeController.cs b/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/Controllers/AuthorizeController.cs index 988f4067ee..5b28962f37 100644 --- a/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/Controllers/AuthorizeController.cs +++ b/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/Controllers/AuthorizeController.cs @@ -80,7 +80,22 @@ public class AuthorizeController : AbpOpenIdDictControllerBase } // Retrieve the profile of the logged in user. - var dynamicPrincipal = await AbpClaimsPrincipalFactory.CreateDynamicAsync(result.Principal); + var dynamicPrincipal = result.Principal; + if (AbpClaimsPrincipalFactoryOptions.Value.IsDynamicClaimsEnabled) + { + dynamicPrincipal = await AbpClaimsPrincipalFactory.CreateDynamicAsync(dynamicPrincipal); + if (dynamicPrincipal == null) + { + return Challenge( + authenticationSchemes: IdentityConstants.ApplicationScheme, + properties: new AuthenticationProperties + { + RedirectUri = Request.PathBase + Request.Path + QueryString.Create( + Request.HasFormContentType ? Request.Form.ToList() : Request.Query.ToList()) + }); + } + } + var user = await UserManager.GetUserAsync(dynamicPrincipal); if (user == null) { diff --git a/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/Controllers/TokenController.AuthorizationCode.cs b/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/Controllers/TokenController.AuthorizationCode.cs index 4da4808201..f6bcf87a8c 100644 --- a/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/Controllers/TokenController.AuthorizationCode.cs +++ b/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/Controllers/TokenController.AuthorizationCode.cs @@ -14,7 +14,20 @@ public partial class TokenController { // Retrieve the claims principal stored in the authorization code/device code/refresh token. var principal = (await HttpContext.AuthenticateAsync(OpenIddictServerAspNetCoreDefaults.AuthenticationScheme)).Principal; - principal = await AbpClaimsPrincipalFactory.CreateDynamicAsync(principal); + if (AbpClaimsPrincipalFactoryOptions.Value.IsDynamicClaimsEnabled) + { + principal = await AbpClaimsPrincipalFactory.CreateDynamicAsync(principal); + if (principal == null) + { + return Forbid( + authenticationSchemes: OpenIddictServerAspNetCoreDefaults.AuthenticationScheme, + properties: new AuthenticationProperties(new Dictionary + { + [OpenIddictServerAspNetCoreConstants.Properties.Error] = OpenIddictConstants.Errors.InvalidGrant, + [OpenIddictServerAspNetCoreConstants.Properties.ErrorDescription] = "The token is no longer valid." + })); + } + } using (CurrentTenant.Change(principal.FindTenantId())) { // Retrieve the user profile corresponding to the authorization code/refresh token. diff --git a/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/Controllers/TokenController.DeviceCode.cs b/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/Controllers/TokenController.DeviceCode.cs index 9559199bc9..393c4955d3 100644 --- a/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/Controllers/TokenController.DeviceCode.cs +++ b/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/Controllers/TokenController.DeviceCode.cs @@ -14,7 +14,20 @@ public partial class TokenController { // Retrieve the claims principal stored in the authorization code/device code/refresh token. var principal = (await HttpContext.AuthenticateAsync(OpenIddictServerAspNetCoreDefaults.AuthenticationScheme)).Principal; - principal = await AbpClaimsPrincipalFactory.CreateDynamicAsync(principal); + if (AbpClaimsPrincipalFactoryOptions.Value.IsDynamicClaimsEnabled) + { + principal = await AbpClaimsPrincipalFactory.CreateDynamicAsync(principal); + if (principal == null) + { + return Forbid( + authenticationSchemes: OpenIddictServerAspNetCoreDefaults.AuthenticationScheme, + properties: new AuthenticationProperties(new Dictionary + { + [OpenIddictServerAspNetCoreConstants.Properties.Error] = OpenIddictConstants.Errors.InvalidGrant, + [OpenIddictServerAspNetCoreConstants.Properties.ErrorDescription] = "The token is no longer valid." + })); + } + } using (CurrentTenant.Change(principal.FindTenantId())) { // Retrieve the user profile corresponding to the authorization code/refresh token. diff --git a/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/Controllers/TokenController.RefreshToken.cs b/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/Controllers/TokenController.RefreshToken.cs index f7f0cf0433..f97648d20f 100644 --- a/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/Controllers/TokenController.RefreshToken.cs +++ b/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/Controllers/TokenController.RefreshToken.cs @@ -14,7 +14,20 @@ public partial class TokenController { // Retrieve the claims principal stored in the authorization code/device code/refresh token. var principal = (await HttpContext.AuthenticateAsync(OpenIddictServerAspNetCoreDefaults.AuthenticationScheme)).Principal; - principal = await AbpClaimsPrincipalFactory.CreateDynamicAsync(principal); + if (AbpClaimsPrincipalFactoryOptions.Value.IsDynamicClaimsEnabled) + { + principal = await AbpClaimsPrincipalFactory.CreateDynamicAsync(principal); + if (principal == null) + { + return Forbid( + authenticationSchemes: OpenIddictServerAspNetCoreDefaults.AuthenticationScheme, + properties: new AuthenticationProperties(new Dictionary + { + [OpenIddictServerAspNetCoreConstants.Properties.Error] = OpenIddictConstants.Errors.InvalidGrant, + [OpenIddictServerAspNetCoreConstants.Properties.ErrorDescription] = "The token is no longer valid." + })); + } + } using (CurrentTenant.Change(principal.FindTenantId())) { // Retrieve the user profile corresponding to the authorization code/refresh token. From 45d677fc89aa76837df2edb5751a12abeb1a09b9 Mon Sep 17 00:00:00 2001 From: Engincan VESKE Date: Wed, 25 Sep 2024 09:34:33 +0300 Subject: [PATCH 11/13] Update Studio docs for v0.8.3 --- docs/en/studio/release-notes.md | 7 +++++++ docs/en/studio/version-compatibility.md | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/docs/en/studio/release-notes.md b/docs/en/studio/release-notes.md index b2b79fdb46..2e83fa68e9 100644 --- a/docs/en/studio/release-notes.md +++ b/docs/en/studio/release-notes.md @@ -2,6 +2,13 @@ This document contains **brief release notes** for each ABP Studio release. Release notes only include **major features** and **visible enhancements**. Therefore, they don't include all the development done in the related version. +## 0.8.3 (2024-09-24) + +* Allowed to set Execution Order (or dependency) for Solution Runner +* Added Icons for the Solution Runner's Context Menu +* Fixed MongoDB database issues for the Microservice Template +* Allowed parallel running for background tasks + ## 0.8.2 (2024-09-19) * Fixed WireGuard connection random port bug diff --git a/docs/en/studio/version-compatibility.md b/docs/en/studio/version-compatibility.md index d548995680..1bf8ee4be5 100644 --- a/docs/en/studio/version-compatibility.md +++ b/docs/en/studio/version-compatibility.md @@ -4,7 +4,7 @@ This document provides an overview of the compatibility between various versions | **ABP Studio Version** | **ABP Version** | |------------------------|---------------------------| -| 0.8.1 - 0.8.2 | 8.3.0 | +| 0.8.1 to 0.8.3 | 8.3.0 | | 0.8.0 | 8.2.3 | | 0.7.8 - 0.7.9 | 8.2.2 | | 0.7.4 to 0.7.7 | 8.2.1 | From 3f8309f3da22cf4e9cc2695508af495f0bc701cd Mon Sep 17 00:00:00 2001 From: Engincan VESKE Date: Wed, 25 Sep 2024 09:35:18 +0300 Subject: [PATCH 12/13] Update release-notes.md --- docs/en/studio/release-notes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/en/studio/release-notes.md b/docs/en/studio/release-notes.md index 2e83fa68e9..d3afbe008e 100644 --- a/docs/en/studio/release-notes.md +++ b/docs/en/studio/release-notes.md @@ -4,7 +4,7 @@ This document contains **brief release notes** for each ABP Studio release. Rele ## 0.8.3 (2024-09-24) -* Allowed to set Execution Order (or dependency) for Solution Runner +* Allowed to set Execution Order (or dependency) from Solution Runner * Added Icons for the Solution Runner's Context Menu * Fixed MongoDB database issues for the Microservice Template * Allowed parallel running for background tasks From 577bd75fbe48d4fbd6d37281a00c21f6bc4a0f8d Mon Sep 17 00:00:00 2001 From: ahmetfarukulu Date: Wed, 25 Sep 2024 13:55:44 +0300 Subject: [PATCH 13/13] Language edit problem fixed --- ...ltAbpRequestLocalizationOptionsProvider.cs | 26 +++++++++++++------ .../Abp/Localization/LanguageChangedEto.cs | 6 +++++ 2 files changed, 24 insertions(+), 8 deletions(-) create mode 100644 framework/src/Volo.Abp.Localization/Volo/Abp/Localization/LanguageChangedEto.cs diff --git a/framework/src/Volo.Abp.AspNetCore/Microsoft/AspNetCore/RequestLocalization/DefaultAbpRequestLocalizationOptionsProvider.cs b/framework/src/Volo.Abp.AspNetCore/Microsoft/AspNetCore/RequestLocalization/DefaultAbpRequestLocalizationOptionsProvider.cs index bb3b58c321..35d30e9f64 100644 --- a/framework/src/Volo.Abp.AspNetCore/Microsoft/AspNetCore/RequestLocalization/DefaultAbpRequestLocalizationOptionsProvider.cs +++ b/framework/src/Volo.Abp.AspNetCore/Microsoft/AspNetCore/RequestLocalization/DefaultAbpRequestLocalizationOptionsProvider.cs @@ -9,13 +9,17 @@ using Microsoft.AspNetCore.Localization; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Options; using Volo.Abp.DependencyInjection; +using Volo.Abp.EventBus.Distributed; using Volo.Abp.Localization; using Volo.Abp.Settings; using Volo.Abp.Threading; namespace Microsoft.AspNetCore.RequestLocalization; -public class DefaultAbpRequestLocalizationOptionsProvider : IAbpRequestLocalizationOptionsProvider, ISingletonDependency +public class DefaultAbpRequestLocalizationOptionsProvider : + IAbpRequestLocalizationOptionsProvider, + IDistributedEventHandler, + ISingletonDependency { private readonly IServiceScopeFactory _serviceProviderFactory; private readonly SemaphoreSlim _syncSemaphore; @@ -28,12 +32,12 @@ public class DefaultAbpRequestLocalizationOptionsProvider : IAbpRequestLocalizat _syncSemaphore = new SemaphoreSlim(1, 1); } - public void InitLocalizationOptions(Action? optionsAction = null) + public virtual void InitLocalizationOptions(Action? optionsAction = null) { _optionsAction = optionsAction; } - public async Task GetLocalizationOptionsAsync() + public virtual async Task GetLocalizationOptionsAsync() { if (_requestLocalizationOptions == null) { @@ -54,13 +58,11 @@ public class DefaultAbpRequestLocalizationOptionsProvider : IAbpRequestLocalizat : new RequestLocalizationOptions { DefaultRequestCulture = DefaultGetRequestCulture(defaultLanguage, languages), - SupportedCultures = languages .Select(l => l.CultureName) .Distinct() .Select(c => new CultureInfo(c)) .ToArray(), - SupportedUICultures = languages .Select(l => l.UiCultureName) .Distinct() @@ -69,8 +71,8 @@ public class DefaultAbpRequestLocalizationOptionsProvider : IAbpRequestLocalizat }; foreach (var configurator in serviceScope.ServiceProvider - .GetRequiredService>() - .Value.RequestLocalizationOptionConfigurators) + .GetRequiredService>() + .Value.RequestLocalizationOptionConfigurators) { await configurator(serviceScope.ServiceProvider, options); } @@ -96,4 +98,12 @@ public class DefaultAbpRequestLocalizationOptionsProvider : IAbpRequestLocalizat var (cultureName, uiCultureName) = LocalizationSettingHelper.ParseLanguageSetting(defaultLanguage); return new RequestCulture(cultureName, uiCultureName); } -} + + public virtual async Task HandleEventAsync(LanguageChangedEto eventData) + { + using (await _syncSemaphore.LockAsync()) + { + _requestLocalizationOptions = null; + } + } +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.Localization/Volo/Abp/Localization/LanguageChangedEto.cs b/framework/src/Volo.Abp.Localization/Volo/Abp/Localization/LanguageChangedEto.cs new file mode 100644 index 0000000000..e4bb3cd4aa --- /dev/null +++ b/framework/src/Volo.Abp.Localization/Volo/Abp/Localization/LanguageChangedEto.cs @@ -0,0 +1,6 @@ +using System; + +namespace Volo.Abp.Localization; + +[Serializable] +public class LanguageChangedEto {} \ No newline at end of file