@ -0,0 +1,14 @@ |
|||
{ |
|||
"culture": "en-GB", |
|||
"texts": { |
|||
"Account": "ABP Account - Login & Register | ABP.IO", |
|||
"Welcome": "Welcome", |
|||
"UseOneOfTheFollowingLinksToContinue": "Use one of the following links to continue", |
|||
"FrameworkHomePage": "Framework home page", |
|||
"FrameworkDocumentation": "Framework documentation", |
|||
"OfficialBlog": "Official blog", |
|||
"CommercialHomePage": "Commercial home page", |
|||
"CommercialSupportWebSite": "Commercial support web site", |
|||
"CommunityWebSite": "ABP community web site" |
|||
} |
|||
} |
|||
@ -0,0 +1,202 @@ |
|||
{ |
|||
"culture": "en-GB", |
|||
"texts": { |
|||
"Permission:Organizations": "Organisations", |
|||
"Permission:Manage": "Manage Organisations", |
|||
"Permission:DiscountRequests": "Discount Requests", |
|||
"Permission:DiscountManage": "Manage Discount Requests", |
|||
"Permission:Disable": "Disable", |
|||
"Permission:Enable": "Enable", |
|||
"Permission:EnableSendEmail": "Enable Send Email", |
|||
"Permission:SendEmail": "Send Email", |
|||
"Permission:NpmPackages": "NPM Packages", |
|||
"Permission:NugetPackages": "Nuget Packages", |
|||
"Permission:Maintenance": "Maintenance", |
|||
"Permission:Maintain": "Maintain", |
|||
"Permission:ClearCaches": "Clear caches", |
|||
"Permission:Modules": "Modules", |
|||
"Permission:Packages": "Packages", |
|||
"Permission:Edit": "Edit", |
|||
"Permission:Delete": "Delete", |
|||
"Permission:Create": "Create", |
|||
"Permission:Accounting": "Accounting", |
|||
"Permission:Accounting:Quotation": "Quotation", |
|||
"Permission:Accounting:Invoice": "Invoice", |
|||
"Menu:Organizations": "Organisations", |
|||
"Menu:Accounting": "Accounting", |
|||
"Menu:Packages": "Packages", |
|||
"Menu:DiscountRequests": "Discount Requests", |
|||
"NpmPackageDeletionWarningMessage": "This NPM Package will be deleted. Please confirm this?", |
|||
"NugetPackageDeletionWarningMessage": "This Nuget Package will be deleted. Please confirm this?", |
|||
"ModuleDeletionWarningMessage": "This Module will be deleted. Please confirm this?", |
|||
"Name": "Name", |
|||
"DisplayName": "Display name", |
|||
"ShortDescription": "Short description", |
|||
"NameFilter": "Name", |
|||
"CreationTime": "Creation time", |
|||
"IsPro": "Is pro", |
|||
"ShowOnModuleList": "Show in module list", |
|||
"EfCoreConfigureMethodName": "Configure method name", |
|||
"IsProFilter": "Is pro", |
|||
"ApplicationType": "Application type", |
|||
"Target": "Target", |
|||
"TargetFilter": "Target", |
|||
"ModuleClass": "Module class", |
|||
"NugetPackageTarget.DomainShared": "Domain Shared", |
|||
"NugetPackageTarget.Domain": "Domain", |
|||
"NugetPackageTarget.Application": "Application", |
|||
"NugetPackageTarget.ApplicationContracts": "Application Contracts", |
|||
"NugetPackageTarget.HttpApi": "Http Api", |
|||
"NugetPackageTarget.HttpApiClient": "Http Api Client", |
|||
"NugetPackageTarget.Web": "Web", |
|||
"NugetPackageTarget.EntityFrameworkCore": "Delete Entity Framework Core", |
|||
"NugetPackageTarget.MongoDB": "MongoDB", |
|||
"Edit": "Edit", |
|||
"Delete": "Delete", |
|||
"Refresh": "Refresh", |
|||
"NpmPackages": "NPM Packages", |
|||
"NugetPackages": "Nuget Packages", |
|||
"NpmPackageCount": "NPM Package Count", |
|||
"NugetPackageCount": "Nuget Package Count", |
|||
"Module": "Modules", |
|||
"ModuleInfo": "Module info", |
|||
"CreateANpmPackage": "Create a NPM package", |
|||
"CreateAModule": "Create a module", |
|||
"CreateANugetPackage": "Create a Nuget package", |
|||
"AddNew": "Add new", |
|||
"PackageAlreadyExist{0}": "\"{0}\" package has already been added.", |
|||
"ModuleAlreadyExist{0}": "\"{0}\" module has already been added.", |
|||
"ClearCache": "Clear cache", |
|||
"SuccessfullyCleared": "Successfully cleared", |
|||
"Menu:NpmPackages": "NPM Packages", |
|||
"Menu:Modules": "Modules", |
|||
"Menu:Maintenance": "Maintenance", |
|||
"Menu:NugetPackages": "Nuget Packages", |
|||
"CreateAnOrganization": "Create an organisation", |
|||
"Organizations": "Organisations", |
|||
"LongName": "Long name", |
|||
"LicenseType": "License type", |
|||
"MissingLicenseTypeField": "The license type field is required!", |
|||
"LicenseStartTime": "License start time", |
|||
"LicenseEndTime": "License end time", |
|||
"AllowedDeveloperCount": "Allowed developer count", |
|||
"UserNameOrEmailAddress": "Username or email address", |
|||
"AddOwner": "Add owner", |
|||
"UserName": "Username", |
|||
"Email": "Email", |
|||
"Developers": "Developers", |
|||
"AddDeveloper": "Add developer", |
|||
"Create": "Create", |
|||
"UserNotFound": "User not found", |
|||
"{0}WillBeRemovedFromDevelopers": "{0} Will be removed from developers, please confirm?", |
|||
"{0}WillBeRemovedFromOwners": "{0} Will be removed from owners, please confirm?", |
|||
"Computers": "Computers", |
|||
"UniqueComputerId": "Unique computer id", |
|||
"LastSeenDate": "Last seen date", |
|||
"{0}Computer{1}WillBeRemovedFromRecords": "Computer of {0} ({1}) will be removed from records", |
|||
"OrganizationDeletionWarningMessage": "Organisation will be deleted", |
|||
"DeletingLastOwnerWarningMessage": "An organisation must have at least one owner, therefore you cannot remove this owner", |
|||
"This{0}AlreadyExistInThisOrganization": "{0} already exist in this organisation", |
|||
"AreYouSureYouWantToDeleteAllComputers": "Are you sure you want to delete all computers?", |
|||
"DeleteAll": "Delete all", |
|||
"DoYouWantToCreateNewUser": "Do you want to create new user?", |
|||
"MasterModules": "Master Modules", |
|||
"OrganizationName": "Organisation name", |
|||
"CreationDate": "Creation date", |
|||
"LicenseStartDate": "License start date", |
|||
"LicenseEndDate": "License end date", |
|||
"OrganizationNamePlaceholder": "Organisation name...", |
|||
"TotalQuestionCountPlaceholder": "Total question count...", |
|||
"RemainingQuestionCountPlaceholder": "Remaining question count...", |
|||
"LicenseTypePlaceholder": "License type...", |
|||
"CreationDatePlaceholder": "Creation date...", |
|||
"LicenseStartDatePlaceholder": "License start date...", |
|||
"LicenseEndDatePlaceholder": "License end date...", |
|||
"UsernameOrEmail": "Username or email", |
|||
"UsernameOrEmailPlaceholder": "Username or email...", |
|||
"Member": "Member", |
|||
"PurchaseOrderNo": "Purchase Order No.", |
|||
"QuotationDate": "Quotation date", |
|||
"CompanyName": "Company name", |
|||
"CompanyAddress": "Company address", |
|||
"Price": "Price", |
|||
"DiscountText": "Discount text", |
|||
"DiscountQuantity": "Discount quantity", |
|||
"DiscountPrice": "Discount price", |
|||
"Quotation": "Quotation", |
|||
"ExtraText": "Extra text", |
|||
"ExtraAmount": "Extra Amount", |
|||
"DownloadQuotation": "Download Quotation", |
|||
"Invoice": "Invoice", |
|||
"TaxNumber": "Tax No.", |
|||
"InvoiceNumber": "Invoice No.", |
|||
"InvoiceDate": "Invoice Date", |
|||
"InvoiceNote": "Invoice Note", |
|||
"Quantity": "Quantity", |
|||
"AddProduct": "Add Product", |
|||
"AddProductWarning": "You need to add a Product!", |
|||
"TotalPrice": "Total Price", |
|||
"Generate": "Generate", |
|||
"MissingQuantityField": "The Quantity field is required!", |
|||
"MissingPriceField": "The Price field is required!", |
|||
"CodeUsageStatus": "Status", |
|||
"Country": "Country", |
|||
"DeveloperCount": "Developer Count", |
|||
"RequestCode": "Request Code", |
|||
"WebSite": "Website", |
|||
"GithubUsername": "Github Username", |
|||
"PhoneNumber": "Phone Number", |
|||
"ProjectDescription": "Project Description", |
|||
"Referrer": "Referrer", |
|||
"DiscountRequests": "Discount Request", |
|||
"Copylink": "Copy Link", |
|||
"Disable": "Disable", |
|||
"Enable": "Enable", |
|||
"EnableSendEmail": "Enable Send Email", |
|||
"SendEmail": "Send Email", |
|||
"SuccessfullyDisabled": "Successfully disabled", |
|||
"SuccessfullyEnabled": "Successfully enabled", |
|||
"EmailSent": "Email sent", |
|||
"SuccessfullySent": "Successfully sent", |
|||
"SuccessfullyDeleted": "Successfully deleted", |
|||
"DiscountRequestDeletionWarningMessage": "Discount request will be deleted", |
|||
"BusinessType": "Business Type", |
|||
"TotalQuestionCount": "Total question count", |
|||
"RemainingQuestionCount": "Remaining question count", |
|||
"TotalQuestionMustBeGreaterWarningMessage": "TotalQuestionCount must be greater than RemainingQuestionCount!", |
|||
"QuestionCountsMustBeGreaterThanZero": "TotalQuestionCount and RemainingQuestionCount must be zero or greater than zero!", |
|||
"UnlimitedQuestionCount": "Unlimited question count", |
|||
"Notes": "Notes", |
|||
"Menu:Community": "Community", |
|||
"Menu:Articles": "Articles", |
|||
"Wait": "Wait", |
|||
"Approve": "Approve", |
|||
"Reject": "Reject", |
|||
"Details": "Details", |
|||
"Url": "Url", |
|||
"Title": "Title", |
|||
"ContentSource": "Content source", |
|||
"Status": "Status", |
|||
"ReadArticle": "Read article", |
|||
"ArticleHasBeenWaiting": "Article has been waiting", |
|||
"ArticleHasBeenApproved": "Article has been approved", |
|||
"ArticleHasBeenRejected": "Article has been rejected", |
|||
"Permission:Community": "Community", |
|||
"Permission:CommunityArticle": "Article", |
|||
"Link": "Link", |
|||
"Enum:ContentSource:0": "Github", |
|||
"Enum:ContentSource:1": "External", |
|||
"Enum:Status:0": "Waiting", |
|||
"Enum:Status:1": "Author name", |
|||
"Enum:Status:2": "Approved", |
|||
"Summary": "Summary", |
|||
"AuthorName": "Author", |
|||
"CoverImage": "Cover Image", |
|||
"RemoveCacheConfirmationMessage": "Are you sure you want remove the cache for \"{0}\" article?", |
|||
"SuccessfullyRemoved": "Successfully cleared", |
|||
"RemoveCache": "Remove Cache", |
|||
"Language": "Language", |
|||
"Optional": "Optional", |
|||
"CreateArticleLanguageInfo": "The language in which the article is written" |
|||
} |
|||
} |
|||
@ -0,0 +1,35 @@ |
|||
{ |
|||
"culture": "en-GB", |
|||
"texts": { |
|||
"Volo.AbpIo.Domain:010004": "Maximum member count reached!", |
|||
"Volo.AbpIo.Domain:010005": "Maximum owner count reached!", |
|||
"Volo.AbpIo.Domain:010006": "This user is already an owner in this organisation!", |
|||
"Volo.AbpIo.Domain:010007": "This user is already a developer in this organisation!", |
|||
"Volo.AbpIo.Domain:010008": "Allowed Developer Count can not be less then current developer count!", |
|||
"Volo.AbpIo.Domain:010009": "Allowed Developer Count can not be less then 0!", |
|||
"Volo.AbpIo.Domain:010010": "Maximum mac address count has been exceeded!", |
|||
"Volo.AbpIo.Domain:010011": "Personal license can't have more than 1 developer!", |
|||
"Volo.AbpIo.Domain:010012": "License can't be extended one month after license expires!", |
|||
"Volo.AbpIo.Domain:020001": "Couldn't delete this NPM Package because \"{NugetPackages}\" Nuget Packages are dependent to this package.", |
|||
"Volo.AbpIo.Domain:020002": "Couldn't delete this NPM Package because \"{Modules}\" Modules are using this package.", |
|||
"Volo.AbpIo.Domain:020003": "Couldn't delete this NPM Package because \"{Modules}\" Modules are using this package and \"{NugetPackages}\" Nuget Packages are dependent to this package.", |
|||
"Volo.AbpIo.Domain:020004": "Couldn't delete this Nuget Package because \"{Modules}\" Modules are using this package.", |
|||
"WantToLearn?": "Want to learn?", |
|||
"ReadyToGetStarted?": "Ready to get started?", |
|||
"JoinOurCommunity": "Join our community", |
|||
"GetStartedUpper": "GET STARTED", |
|||
"ForkMeOnGitHub": "Fork me on GitHub", |
|||
"Features": "Features", |
|||
"GetStarted": "Get Started", |
|||
"Documents": "Documents", |
|||
"Community": "Community", |
|||
"ContributionGuide": "Contribution Guide", |
|||
"Blog": "Blog", |
|||
"Commercial": "Commercial", |
|||
"MyAccount": "My account", |
|||
"Permission:License": "License", |
|||
"Permission:UserInfo": "User info", |
|||
"SeeDocuments": "See Documents", |
|||
"Samples": "Samples" |
|||
} |
|||
} |
|||
@ -0,0 +1,39 @@ |
|||
{ |
|||
"culture": "en-GB", |
|||
"texts": { |
|||
"OrganizationManagement": "Organisation Management", |
|||
"OrganizationList": "Organisation list", |
|||
"Volo.AbpIo.Commercial:010003": "You are not owner of this organisation!", |
|||
"OrganizationNotFoundMessage": "Organisation not found!", |
|||
"DeveloperCount": "Allocated / total developers", |
|||
"QuestionCount": "Remaining / total questions", |
|||
"Unlimited": "Unlimited", |
|||
"Owners": "Owners", |
|||
"AddMember": "Add member", |
|||
"AddOwner": "Add owner", |
|||
"AddDeveloper": "Add developer", |
|||
"UserName": "Username", |
|||
"Name": "Name", |
|||
"EmailAddress": "Email address", |
|||
"Developers": "Developers", |
|||
"LicenseType": "License type", |
|||
"Manage": "Manage", |
|||
"StartDate": "Start date", |
|||
"EndDate": "End date", |
|||
"Modules": "Modules", |
|||
"LicenseExtendMessage": "Your license end date is extended to {0}", |
|||
"LicenseUpgradeMessage": "Your license is upgraded to {0}", |
|||
"LicenseAddDeveloperMessage": "{0} developers added to your license", |
|||
"Volo.AbpIo.Commercial:010004": "Cannot find the specified user! The user must have already registered.", |
|||
"MyOrganizations": "My organisations", |
|||
"ApiKey": "API key", |
|||
"UserNameNotFound": "There is no user with username {0}", |
|||
"SuccessfullyAddedToNewsletter": "Thank you for subscribing to our newsletter!", |
|||
"MyProfile": "My Profile", |
|||
"EmailNotValid": "Please enter a valid email address.", |
|||
"JoinOurMarketingNewsletter": "Join our marketing newsletter", |
|||
"WouldLikeToReceiveMarketingMaterials": "I would like to receive marketing materials e.g. product deals & special offers.", |
|||
"StartUsingYourLicenseNow": "Start using your license now!", |
|||
"WelcomePage": "Welcome Page" |
|||
} |
|||
} |
|||
@ -0,0 +1,106 @@ |
|||
{ |
|||
"culture": "en-GB", |
|||
"texts": { |
|||
"Permission:CommunityArticle": "Community Article", |
|||
"Permission:Edit": "Edit", |
|||
"Waiting": "Waiting", |
|||
"Approved": "Approved", |
|||
"Rejected": "Rejected", |
|||
"Wait": "Wait", |
|||
"Approve": "Approve", |
|||
"Reject": "Reject", |
|||
"ReadArticle": "Read Article", |
|||
"Status": "Status", |
|||
"ContentSource": "Content Source", |
|||
"Details": "Details", |
|||
"Url": "Url", |
|||
"Title": "Title", |
|||
"CreationTime": "Creation time", |
|||
"Save": "Save", |
|||
"SameUrlAlreadyExist": "The Url already exists. If you want to add this article, you should change the url!", |
|||
"UrlIsNotValid": "Url is not valid.", |
|||
"UrlNotFound": "Url not found.", |
|||
"UrlContentNotFound": "Url content not found.", |
|||
"Summary": "Summary", |
|||
"MostRead": "Most Read", |
|||
"Latest": "Latest", |
|||
"ContributeAbpCommunity": "Contribute to the ABP Community", |
|||
"SubmitYourArticle": "Submit Your Article", |
|||
"ContributionGuide": "Contribution Guide", |
|||
"BugReport": "Bug Report", |
|||
"SeeAllArticles": "See All Articles", |
|||
"WelcomeToABPCommunity!": "Welcome to the ABP Community!", |
|||
"MyProfile": "My Profile", |
|||
"MyOrganizations": "My Organisations", |
|||
"EmailNotValid": "Please enter a valid email address.", |
|||
"FeatureRequest": "Feature Request", |
|||
"CreateArticleTitleInfo": "Title of the article to be shown on the article list.", |
|||
"CreateArticleUrlInfo": "Original GitHub/External URL of the article.", |
|||
"CreateArticleSummaryInfo": "A short summary of the article to be shown on the article list.", |
|||
"CreateArticleCoverInfo": "To create an effective article, add a cover photo and an upload 16:9 aspect ratio pictures for the best view (Maximum file size: 1MB)", |
|||
"ThisExtensionIsNotAllowed": "The extension is not allowed.", |
|||
"TheFileIsTooLarge": "The file is too large.", |
|||
"GoToTheArticle": "Go to the Article", |
|||
"Contribute": "Contribute", |
|||
"OverallProgress": "Overall Progress", |
|||
"Done": "Done", |
|||
"Open": "Open", |
|||
"Closed": "Closed", |
|||
"LatestQuestionOnThe": "Latest Question on the", |
|||
"Stackoverflow": "Stackoverflow", |
|||
"Votes": "votes", |
|||
"Answer": "Answer", |
|||
"Views": "views", |
|||
"Answered": "Answered", |
|||
"WaitingForYourAnswer": "Waiting for your answer", |
|||
"Asked": "asked", |
|||
"AllQuestions": "All Questions", |
|||
"NextVersion": "Next Version", |
|||
"MilestoneErrorMessage": "Couldn't get the current milestone details from Github.", |
|||
"QuestionItemErrorMessage": "Couldn't get the latest question details from Stackoverflow.", |
|||
"Oops": "Oops!", |
|||
"CreateArticleSuccessMessage": "The Article has been successfully submitted. It will be published once it has been reviewed by the site admin.", |
|||
"ChooseCoverImage": "Choose a cover image...", |
|||
"CoverImage": "Cover Image", |
|||
"ShareYourExperiencesWithTheABPFramework": "Share your experiences with the ABP Framework!", |
|||
"Optional": "Optional", |
|||
"UpdateUserWebSiteInfo": "Example: https://johndoe.com", |
|||
"UpdateUserTwitterInfo": "Example: johndoe", |
|||
"UpdateUserGithubInfo": "Example: johndoe", |
|||
"UpdateUserLinkedinInfo": "Example: https://www.linkedin.com/...", |
|||
"UpdateUserCompanyInfo": "Example: Volosoft", |
|||
"UpdateUserJobTitleInfo": "Example: Software Developer", |
|||
"UserName": "UserName", |
|||
"Company": "Company", |
|||
"PersonalWebsite": "Personal website", |
|||
"RegistrationDate": "Registration date", |
|||
"Social": "Social", |
|||
"Biography": "Biography", |
|||
"HasNoPublishedArticlesYet": "has no published articles yet", |
|||
"Author": "Author", |
|||
"LatestGithubAnnouncements": "Latest GitHub Announcements", |
|||
"SeeAllAnnouncements": "View all Announcements", |
|||
"LatestBlogPost": "Latest Blog Post", |
|||
"Edit": "Edit", |
|||
"ProfileImageChange": "Change the profile image", |
|||
"BlogItemErrorMessage": "Couldn't get the latest blog post details from ABP.", |
|||
"PlannedReleaseDate": "Planned release date", |
|||
"CommunityArticleRequestErrorMessage": "Couldn't get the latest article request from GitHub.", |
|||
"ArticleRequestFromGithubIssue": "There aren't any article requests at the moment.", |
|||
"LatestArticles": "Latest Articles", |
|||
"ArticleRequests": "Article Requests", |
|||
"AllArticleRequests": "See all Article requests", |
|||
"SubscribeToTheNewsletter": "Subscribe to the Newsletter", |
|||
"NewsletterEmailDefinition": "Receive information about what's happening in ABP; new releases, free sources, articles, and more.", |
|||
"NoThanks": "No thanks", |
|||
"MaybeLater": "Maybe later", |
|||
"JoinOurArticleNewsletter": "Join our article newsletter", |
|||
"Community": "Community", |
|||
"Marketing": "Marketing", |
|||
"CommunityPrivacyPolicyConfirmation": "I agree to the Terms & Conditions and <a href=\"https://commercial.abp.io/Privacy\">Privacy Policy</a>.", |
|||
"ArticleRequestMessageTitle": "<a href=\"https://github.com/abpframework/abp/issues/new\">Open an issue</a> on the GitHub to request an article/tutorial you want to see on this web site.", |
|||
"ArticleRequestMessageBody": "Here is the list of the requested articles by the Community. Do you want to write a requested article? Please click on the request and join the discussion.", |
|||
"Language": "Language", |
|||
"CreateArticleLanguageInfo": "The language in which the article is written" |
|||
} |
|||
} |
|||
@ -0,0 +1,197 @@ |
|||
{ |
|||
"culture": "en-GB", |
|||
"texts": { |
|||
"GetStarted": "Get Started - Startup Templates", |
|||
"Create": "Create", |
|||
"NewProject": "New Project", |
|||
"DirectDownload": "Direct Download", |
|||
"ProjectName": "Project name", |
|||
"ProjectType": "Project type", |
|||
"DatabaseProvider": "Database provider", |
|||
"NTier": "N-Tier", |
|||
"IncludeUserInterface": "Include user interface", |
|||
"CreateNow": "Create now", |
|||
"TheStartupProject": "The startup project", |
|||
"Tutorial": "Tutorial", |
|||
"UsingCLI": "Using CLI", |
|||
"SeeDetails": "See Details", |
|||
"AbpShortDescription": "ABP Framework is a complete infrastructure to create modern web applications by following the software development best practices and conventions.", |
|||
"SourceCodeUpper": "SOURCE CODE", |
|||
"LatestReleaseLogs": "Latest release logs", |
|||
"Infrastructure": "Infrastructure", |
|||
"Architecture": "Architecture", |
|||
"Modular": "Modular", |
|||
"DontRepeatYourself": "Don’t Repeat Yourself", |
|||
"DeveloperFocused": "Developer Focused", |
|||
"FullStackApplicationInfrastructure": "Full stack application infrastructure.", |
|||
"DomainDrivenDesign": "Domain Driven Design", |
|||
"DomainDrivenDesignExplanation": "Designed and developed based on DDD patterns and principles. Provides a layered model for your application.", |
|||
"Authorization": "Authorisation", |
|||
"AuthorizationExplanation": "Advanced authorisation with user, role and fine-grained permission system. Built on the Microsoft Identity library.", |
|||
"MultiTenancy": "Multi-Tenancy", |
|||
"MultiTenancyExplanationShort": "SaaS applications made easy! Integrated multi-tenancy from database to UI.", |
|||
"CrossCuttingConcerns": "Cross Cutting Concerns", |
|||
"CrossCuttingConcernsExplanationShort": "Complete infrastructure for authorization, validation, exception handling, caching, audit logging, transaction management and more.", |
|||
"BuiltInBundlingMinification": "Built-In Bundling & Minification", |
|||
"BuiltInBundlingMinificationExplanation": "No need to use external tools for bundling & minification. ABP offers a simpler, dynamic, powerful, modular and built-in way!", |
|||
"VirtualFileSystem": "Virtual File System", |
|||
"VirtualFileSystemExplanation": "Embed views, scripts, styles, images... into packages/libraries and reuse them in different applications.", |
|||
"Theming": "Theming", |
|||
"ThemingExplanationShort": "Use and customise the bootstrap-based standard UI theme or create your own.", |
|||
"BootstrapTagHelpersDynamicForms": "Bootstrap Tag Helpers & Dynamic Forms", |
|||
"BootstrapTagHelpersDynamicFormsExplanation": "Instead of manually writing bootstrap components, Use ABP's tag helpers to simplify and take advantage of intellisense. Quickly build UI forms based on a C# model using the dynamic form tag helper.", |
|||
"HTTPAPIsDynamicProxies": "HTTP APIs & Dynamic Proxies", |
|||
"HTTPAPIsDynamicProxiesExplanation": "Automatically expose application services as REST style HTTP APIs, and consume them with dynamic JavaScript and C# proxies.", |
|||
"CompleteArchitectureInfo": "Modern architecture to create maintainable software solutions.", |
|||
"DomainDrivenDesignBasedLayeringModelExplanation": "Helps you to implement a DDD based layered architecture and build a maintainable code base.", |
|||
"DomainDrivenDesignBasedLayeringModelExplanationCont": "Provides startup templates, abstractions, base classes, services, documentation and guides to help you to develop your application based on DDD patterns & principles.", |
|||
"MicroserviceCompatibleModelExplanation": "The core framework & pre-build modules are designed with microservice architecture in mind.", |
|||
"MicroserviceCompatibleModelExplanationCont": "Provides infrastructure, integrations, samples and documentation to implement microservice solutions easier, while it doesn’t bring additional complexity if you want a monolithic application.", |
|||
"ModularInfo": "ABP provides a module system that allows you to develop reusable application modules, tie into application lifecycle events, and express dependencies between core parts of your system.", |
|||
"PreBuiltModulesThemes": "Pre-Built Modules & Themes", |
|||
"PreBuiltModulesThemesExplanation": "Open source and commercial modules & themes are ready to use in your business application.", |
|||
"NuGetNPMPackages": "NuGet & NPM Packages", |
|||
"NuGetNPMPackagesExplanation": "Distributed as NuGet & NPM packages. Easy to install and upgrade.", |
|||
"ExtensibleReplaceable": "Extensible/Replaceable", |
|||
"ExtensibleReplaceableExplanation": "All services & modules are designed extensibility in mind. You can replace services, pages, styles and components.", |
|||
"CrossCuttingConcernsExplanation2": "Keep your codebase smaller so you can maintain focus on the code that’s specific to your business.", |
|||
"CrossCuttingConcernsExplanation3": "Don’t spend time implementing common application requirements on multiple projects.", |
|||
"AuthenticationAuthorization": "Authentication & Authorization", |
|||
"ExceptionHandling": "Exception Handling", |
|||
"Validation": "Validation", |
|||
"DatabaseConnection": "Database Connection", |
|||
"TransactionManagement": "Transaction management", |
|||
"AuditLogging": "Audit Logging", |
|||
"Caching": "Caching", |
|||
"Multitenancy": "Multitenancy", |
|||
"DataFiltering": "Data filtering", |
|||
"ConventionOverConfiguration": "Convention Over Configuration", |
|||
"ConventionOverConfigurationExplanation": "ABP implements common application conventions by default with a minimal or zero configuration.", |
|||
"ConventionOverConfigurationExplanationList1": "Auto registers known services to dependency injection.", |
|||
"ConventionOverConfigurationExplanationList2": "Exposes application services as HTTP APIs by naming conventions.", |
|||
"ConventionOverConfigurationExplanationList3": "Creates dynamic HTTP client proxies for C# and JavaScript.", |
|||
"ConventionOverConfigurationExplanationList4": "Provides default repositories for your entities.", |
|||
"ConventionOverConfigurationExplanationList5": "Manages Unit of Work per web request or application service method.", |
|||
"ConventionOverConfigurationExplanationList6": "Publishes create, update & delete events for your entities.", |
|||
"BaseClasses": "Base Classes", |
|||
"BaseClassesExplanation": "Pre-built base classes for common application patterns.", |
|||
"DeveloperFocusedExplanation": "ABP is for developers.", |
|||
"DeveloperFocusedExplanationCont": "It aims to simplify your daily software development while not restricting you from writing low level code.", |
|||
"SeeAllFeatures": "See All Features", |
|||
"CLI_CommandLineInterface": "CLI (Command Line Interface)", |
|||
"CLI_CommandLineInterfaceExplanation": "Includes a CLI to help you automate the creation of new projects and the addition of new modules.", |
|||
"StartupTemplates": "Startup Templates", |
|||
"StartupTemplatesExplanation": "Various startup templates provide a fully configured solution to jump start your development.", |
|||
"BasedOnFamiliarTools": "Based on Familiar Tools", |
|||
"BasedOnFamiliarToolsExplanation": "Built and integrated with popular tools you already know. Low learning curve, easy adaptation, comfortable development.", |
|||
"ORMIndependent": "ORM Independent", |
|||
"ORMIndependentExplanation": "The core framework is ORM/database independent and can work with any data source. Entity Framework Core and MongoDB providers are already available.", |
|||
"Features": "Explore the ABP Framework Features", |
|||
"ABPCLI": "ABP CLI", |
|||
"Modularity": "Modularity", |
|||
"BootstrapTagHelpers": "Bootstrap Tag Helpers", |
|||
"DynamicForms": "Dynamic Forms", |
|||
"BundlingMinification": "Bundling & Minification", |
|||
"BackgroundJobs": "Background Jobs", |
|||
"BackgroundJobsExplanation": "Define simple classes to execute jobs in the background as queued. Use the built-in job manager or integrate your own. <a href=\"{0}\">Hangfire</a> & <a href=\"{1}\">RabbitMQ</a> integrations are already available.", |
|||
"DDDInfrastructure": "DDD Infrastructure", |
|||
"DomainDrivenDesignInfrastructure": "Domain Driven Design Infrastructure", |
|||
"AutoRESTAPIs": "Auto REST APIs", |
|||
"DynamicClientProxies": "Dynamic Client Proxies", |
|||
"DistributedEventBus": "Distributed Event Bus", |
|||
"DistributedEventBusWithRabbitMQIntegration": "Distributed Event Bus with RabbitMQ Integration", |
|||
"TestInfrastructure": "Test Infrastructure", |
|||
"AuditLoggingEntityHistories": "Audit Logging & Entity Histories", |
|||
"ObjectToObjectMapping": "Object to Object Mapping", |
|||
"ObjectToObjectMappingExplanation": "<a href=\"{0}\">Object to object mapping</a> abstraction with AutoMapper integration.", |
|||
"EmailSMSAbstractions": "Email & SMS Abstractions", |
|||
"EmailSMSAbstractionsWithTemplatingSupport": "Email & SMS Abstractions with Templating Support", |
|||
"Localization": "Localization", |
|||
"SettingManagement": "Setting Management", |
|||
"ExtensionMethods": "Extension Methods", |
|||
"ExtensionMethodsHelpers": "Extension Methods & Helpers", |
|||
"AspectOrientedProgramming": "Aspect Oriented Programming", |
|||
"DependencyInjection": "Dependency Injection", |
|||
"DependencyInjectionByConventions": "Dependency Injection by Conventions", |
|||
"ABPCLIExplanation": "The ABP CLI (Command Line Interface) is a command line tool to perform common operations for ABP based solutions.", |
|||
"ModularityExplanation": "ABP provides a complete infrastructure to build your own application modules those may have entities, services, database integration, APIs, UI components and so on.", |
|||
"MultiTenancyExplanation": "ABP framework not only supports to develop multi-tenant applications, but also makes your code mostly unaware of the multi-tenancy.", |
|||
"MultiTenancyExplanation2": "Can automatically determine the current Tenant and isolate each Tenant's data from each other.", |
|||
"MultiTenancyExplanation3": "Supports single database, database per tenant and hybrid approaches.", |
|||
"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.", |
|||
"CrossCuttingConcernsExplanation": "Don't repeat yourself when implementing common features. Instead, focus on your business logic and let ABP automate by convention.", |
|||
"DatabaseConnectionTransactionManagement": "Database Connection & Transaction Management", |
|||
"CorrelationIdTracking": "Correlation-Id Tracking", |
|||
"BundlingMinificationExplanation": "ABP offers a simple, dynamic, powerful, modular and built-in bundling & minification system.", |
|||
"VirtualFileSystemnExplanation": "The Virtual File System makes it possible to manage files those do not physically exist on the file system (disk). It's mainly used to embed (js, css, image, cshtml...) files into assemblies and use them like physical files on runtime.", |
|||
"ThemingExplanation": "Theming system allows to develop your application & modules theme independent by defining a set of common base libraries and layouts, based on the latest Bootstrap framework.", |
|||
"DomainDrivenDesignInfrastructureExplanation": "A complete infrastructure to build layered applications based on the Domain Driven Design patterns & principles.", |
|||
"Specification": "Specification", |
|||
"Repository": "Repository", |
|||
"DomainService": "Domain Service", |
|||
"ValueObject": "Value Object", |
|||
"ApplicationService": "Application Service", |
|||
"DataTransferObject": "Data Transfer Object", |
|||
"AggregateRootEntity": "Aggregate Root, Entity", |
|||
"AutoRESTAPIsExplanation": "ABP can automagically configure your application services as API Controllers by convention.", |
|||
"DynamicClientProxiesExplanation": "Easily consume your APIs from JavaScript and C# clients.", |
|||
"DistributedEventBusWithRabbitMQIntegrationExplanation": "Easily publish & consume distributed events using built-in Distributed Event Bus with RabbitMQ integration available.", |
|||
"TestInfrastructureExplanation": "The framework has been developed unit & integration testing in mind. Provides you base classes to make it easier. Startup templates come with pre-configured for testing.", |
|||
"AuditLoggingEntityHistoriesExplanation": "Built-in audit logging for business-critical applications. Request, service, method level audit logging and entity histories with property-level details.", |
|||
"EmailSMSAbstractionsWithTemplatingSupportExplanation": "IEmailSender and ISmsSender abstractions decouples your application logic from the infrastructure. Advanced email template system allows to create & localize email templates and easily use whenever needed.", |
|||
"LocalizationExplanation": "Localization system allows to create resources in plain JSON files and use them to localize your UI. It supports advanced scenarios like inheritance, extensions and JavaScript integration while it is fully compatible with AspNet Core's localization system.", |
|||
"SettingManagementExplanation": "Define settings for your application and get values on runtime based on the current configuration, tenant and user.", |
|||
"ExtensionMethodsHelpersExplanation": "Don't repeat yourself even for trivial code parts. Extensions & helpers for standard types makes your code much cleaner and easy to write.", |
|||
"AspectOrientedProgrammingExplanation": "Provides a comfortable infrastructure to create dynamic proxies and implement Aspect Oriented Programming. Intercept any class and execute your code before & after every method execution.", |
|||
"DependencyInjectionByConventionsExplanation": "No need to register your classes to dependency injection manually. Automatically registers common service types by convention. For other type of services, you can use interfaces and attributes to make it easier and in-place.", |
|||
"DataFilteringExplanation": "Define and use data filters those are automatically applied when you query entities from database. Soft Delete & Multi-Tenant filters are provided out of the box when you implement simple interfaces.", |
|||
"PublishEvents": "Publish Events", |
|||
"HandleEvents": "Handle Events", |
|||
"AndMore": "and more...", |
|||
"Code": "Code", |
|||
"Result": "Result", |
|||
"SeeTheDocumentForMoreInformation": "See the <a href=\"{1}\">{0} document</a> for more information", |
|||
"IndexPageHeroSection": "<span class=\"first-line shine\"><strong>open source</strong></span><span class=\"second-line text-uppercase\">Web Application<br />Framework </span><span class=\"third-line shine2\"><strong>for asp.net core</strong></span>", |
|||
"UiFramework": "UI Framework", |
|||
"EmailAddress": "Email address", |
|||
"Mobile": "Mobile", |
|||
"ReactNative": "React Native", |
|||
"Strong": "Strong", |
|||
"Complete": "Complete", |
|||
"BasedLayeringModel": "Based Layering Model", |
|||
"Microservice": "Microservice", |
|||
"Compatible": "Compatible", |
|||
"MeeTTheABPCommunityInfo": "Our mission is to create an environment where developers can help each other with articles, tutorials, case studies, etc. and meet like-minded people.", |
|||
"JoinTheABPCommunityInfo": "Get involved with a vibrant community and become a contributor to the ABP Framework!", |
|||
"AllArticles": "All Articles", |
|||
"SubmitYourArticle": "Submit Your Article", |
|||
"DynamicClientProxyDocument": "See the dynamic client proxy documentations for <a href=\"{0}\">JavaScript</a> & <a href=\"{1}\">C#</a>.", |
|||
"EmailSMSAbstractionsDocument": "See the <a href=\"{0}\">emailing</a> and <a href=\"{1}\">SMS sending</a> documents for more information.", |
|||
"CreateProjectWizard": "This wizard creates a new project from the startup template which is properly configured to jump start to your project.", |
|||
"TieredOption": "Creates a tiered solution where Web and Http API layers are physically separated. If not checked, creates a layered solution which is less complex and suitable for most scenarios.", |
|||
"SeparateIdentityServerOption": "Separates server side into two applications: First one is for the identity server and the second one is for your server side HTTP API.", |
|||
"UseslatestPreVersion": "Uses latest pre-release version", |
|||
"ReadTheDocumentation": "<span class=\"text-primary\">Read</span><span class=\"text-success\">The Documentation</span>", |
|||
"Documentation": "Documentation", |
|||
"GettingStartedTutorial": "Getting Started Tutorial", |
|||
"ApplicationDevelopmentTutorial": "Application Development Tutorial", |
|||
"TheStartupTemplate": "The Startup Template", |
|||
"InstallABPCLIInfo": "ABP CLI is the fastest way to start a new solution with the ABP framework. Install the ABP CLI using a command line window:", |
|||
"DifferentLevelOfNamespaces": "You can use different level of namespaces; e.g. BookStore, Acme.BookStore or Acme.Retail.BookStore.", |
|||
"ABPCLIExamplesInfo": "<strong>new</strong> command creates a <strong>layered MVC application</strong> with <strong>Entity Framework Core</strong> as the database provider. However, it has additional options. Examples:", |
|||
"SeeCliDocumentForMoreInformation": "See the <a href=\"{0}\">ABP CLI document</a> for more options or select the \"Direct Download\" tab above.", |
|||
"Optional": "Optional", |
|||
"LocalFrameworkRef": "Keep local project reference for the framework packages.", |
|||
"BlobStoring": "BLOB Storing", |
|||
"BlobStoringExplanation": "BLOB Storing system provides an abstraction to work with BLOBs. ABP provides some pre-built storage provider integrations (Azure, AWS, File System, Database, etc.) that you can easily use in your applications.", |
|||
"TextTemplating": "Text Templating", |
|||
"TextTemplatingExplanation": "Text templating is used to dynamically render contents based on a template and a model (a data object). For example, you can use it to create dynamic email contents with a pre-built template.", |
|||
"MultipleUIOptions": "Multiple UI Options", |
|||
"MultipleDBOptions": "Multiple Database Providers", |
|||
"MultipleUIOptionsExplanation": "The core framework is designed as UI independent and can work with any type of UI system, while there are multiple pre-built and integrated options are provided out of the box.", |
|||
"MultipleDBOptionsExplanation": "The framework can work with any data source, while the following providers are officially developed and supported:" |
|||
} |
|||
} |
|||
@ -0,0 +1,51 @@ |
|||
# ABP.IO Platform 4.1 Final Has Been Released! |
|||
|
|||
[ABP Framework](https://abp.io/) and [ABP Commercial](https://commercial.abp.io/) 4.1 versions have been released today. |
|||
|
|||
## What's New With 4.1? |
|||
|
|||
Since all the new features are already explained in details with the [4.1 RC Announcement Post](https://blog.abp.io/abp/ABP.IO-Platform-v4.1-RC-Has-Been-Released), I will not repeat all the details again. See the [RC Blog Post](https://blog.abp.io/abp/ABP.IO-Platform-v4.1-RC-Has-Been-Released) for all the features and enhancements. |
|||
|
|||
## Creating New Solutions |
|||
|
|||
You can create a new solution with the ABP Framework version 4.1 by either using the `abp new` command or using the **direct download** tab on the [get started page](https://abp.io/get-started). |
|||
|
|||
> See the [getting started document](https://docs.abp.io/en/abp/latest/Getting-Started) for details. |
|||
|
|||
## How to Upgrade an Existing Solution |
|||
|
|||
### Install/Update the ABP CLI |
|||
|
|||
First of all, install the ABP CLI or upgrade to the latest version. |
|||
|
|||
If you haven't installed yet: |
|||
|
|||
```bash |
|||
dotnet tool install -g Volo.Abp.Cli |
|||
``` |
|||
|
|||
To update an existing installation: |
|||
|
|||
```bash |
|||
dotnet tool update -g Volo.Abp.Cli |
|||
``` |
|||
|
|||
### ABP UPDATE Command |
|||
|
|||
[ABP CLI](https://docs.abp.io/en/abp/latest/CLI) provides a handy command to update all the ABP related NuGet and NPM packages in your solution with a single command: |
|||
|
|||
```bash |
|||
abp update |
|||
``` |
|||
|
|||
Run this command in the root folder of your solution. |
|||
|
|||
## ABP Community |
|||
|
|||
We started to get more contributions by the community for the [ABP Community](https://community.abp.io/) contents. Thank you all! |
|||
|
|||
We will be adding **Video Content** sharing system in a short time. We are planning to create short video contents, especially to explore the new features in every release. Again, we will be waiting video contributions by the community :) |
|||
|
|||
## About the Next Versions |
|||
|
|||
Planned preview date for the version **4.2 is January 14, 2021**. See the [Road Map](https://docs.abp.io/en/abp/latest/Road-Map) document and [GitHub Milestones](https://github.com/abpframework/abp/milestones) to learn what's planned for the next versions. We are trying to be clear about the coming features and the next release dates. |
|||
|
After Width: | Height: | Size: 158 KiB |
|
After Width: | Height: | Size: 372 KiB |
|
After Width: | Height: | Size: 554 KiB |
|
After Width: | Height: | Size: 526 KiB |
|
After Width: | Height: | Size: 490 KiB |
|
After Width: | Height: | Size: 102 KiB |
|
After Width: | Height: | Size: 105 KiB |
@ -1,3 +1,57 @@ |
|||
# Blazor UI: Page Progress |
|||
|
|||
TODO |
|||
Page Progress is used to show a progress bar indicator on top of the page and to show to the user that currently a long running process is in the work. |
|||
|
|||
By default you don't need to do anything to show the progress indicator, as all the work is done automatically by the ABP Framework internals. This means that all calls to the ABP backend (through your HTTP API) will activate page progress and show the loading indicator. |
|||
|
|||
This doesn't mean that you don't have the control over it. On the contrary, if you want to show progress for your own processes, it is really easy to do. All you have to do is to use inject and use the `IUiPageProgressService`. |
|||
|
|||
## Example |
|||
|
|||
First, inject the `IUiPageProgressService` into your page/component. |
|||
|
|||
```cs |
|||
@inject IUiPageProgressService pageProgressService |
|||
``` |
|||
|
|||
Next, invoke the `Go` method in `IUiPageProgressService`. It's that simple: |
|||
|
|||
```cs |
|||
Task OnClick() |
|||
{ |
|||
return pageProgressService.Go(null); |
|||
} |
|||
``` |
|||
|
|||
The previous example will show the progress with a default settings. If, for example you want to change the progress color you can override it by setting the options through the `Go` method. |
|||
|
|||
```cs |
|||
Task OnClick() |
|||
{ |
|||
return pageProgressService.Go(null, options => |
|||
{ |
|||
options.Type = UiPageProgressType.Warning; |
|||
}); |
|||
} |
|||
``` |
|||
|
|||
## Breakdown |
|||
|
|||
The first parameter of the `Go` needs a little explanation. In the previous example we have set it to `null` which means, once called it will show an _indeterminate_ indicator and will cycle the loading animation indefinitely, until we hide the progress. You also have the option of defining the actual percentage of the progress and the code is the same, just instead of sending it the `null` you will send it a number between `0` and `100`. |
|||
|
|||
```cs |
|||
pageProgressService.Go(25) |
|||
``` |
|||
|
|||
### Valid values |
|||
|
|||
1. `null` - show _indeterminate_ indicator |
|||
2. `>= 0` and `<= 100` - show the regular _percentage_ progress |
|||
|
|||
### Hiding progress |
|||
|
|||
To hide the progress just set the actual values to something other then the _Valid value_. |
|||
|
|||
```cs |
|||
pageProgressService.Go(-1) |
|||
``` |
|||
@ -0,0 +1,12 @@ |
|||
using System; |
|||
using Volo.Abp.DependencyInjection; |
|||
|
|||
namespace Volo.Abp.AspNetCore.Components.WebAssembly.DependencyInjection |
|||
{ |
|||
public class WebAssemblyClientScopeServiceProviderAccessor : |
|||
IClientScopeServiceProviderAccessor, |
|||
ISingletonDependency |
|||
{ |
|||
public IServiceProvider ServiceProvider { get; set; } |
|||
} |
|||
} |
|||
@ -0,0 +1,21 @@ |
|||
using System; |
|||
using System.Threading.Tasks; |
|||
|
|||
namespace Volo.Abp.AspNetCore.Components.Progression |
|||
{ |
|||
public interface IUiPageProgressService |
|||
{ |
|||
/// <summary>
|
|||
/// An event raised after the notification is received.
|
|||
/// </summary>
|
|||
public event EventHandler<UiPageProgressEventArgs> ProgressChanged; |
|||
|
|||
/// <summary>
|
|||
/// Sets the progress percentage.
|
|||
/// </summary>
|
|||
/// <param name="percentage">Value of the progress from 0 to 100, or null for indeterminate progress.</param>
|
|||
/// <param name="options">Additional options.</param>
|
|||
/// <returns>Awaitable task.</returns>
|
|||
Task Go(int? percentage, Action<UiPageProgressOptions> options = null); |
|||
} |
|||
} |
|||
@ -0,0 +1,16 @@ |
|||
using System; |
|||
using System.Threading.Tasks; |
|||
using Volo.Abp.DependencyInjection; |
|||
|
|||
namespace Volo.Abp.AspNetCore.Components.Progression |
|||
{ |
|||
public class NullUiPageProgressService : IUiPageProgressService, ISingletonDependency |
|||
{ |
|||
public event EventHandler<UiPageProgressEventArgs> ProgressChanged; |
|||
|
|||
public Task Go(int? percentage, Action<UiPageProgressOptions> options = null) |
|||
{ |
|||
return Task.CompletedTask; |
|||
} |
|||
} |
|||
} |
|||
@ -0,0 +1,17 @@ |
|||
using System; |
|||
|
|||
namespace Volo.Abp.AspNetCore.Components.Progression |
|||
{ |
|||
public class UiPageProgressEventArgs : EventArgs |
|||
{ |
|||
public UiPageProgressEventArgs(int? percentage, UiPageProgressOptions options) |
|||
{ |
|||
Percentage = percentage; |
|||
Options = options; |
|||
} |
|||
|
|||
public int? Percentage { get; } |
|||
|
|||
public UiPageProgressOptions Options { get; } |
|||
} |
|||
} |
|||
@ -0,0 +1,13 @@ |
|||
namespace Volo.Abp.AspNetCore.Components.Progression |
|||
{ |
|||
/// <summary>
|
|||
/// Options to override page progress appearance.
|
|||
/// </summary>
|
|||
public class UiPageProgressOptions |
|||
{ |
|||
/// <summary>
|
|||
/// Type or color, of the page progress.
|
|||
/// </summary>
|
|||
public UiPageProgressType Type { get; set; } |
|||
} |
|||
} |
|||
@ -0,0 +1,11 @@ |
|||
namespace Volo.Abp.AspNetCore.Components.Progression |
|||
{ |
|||
public enum UiPageProgressType |
|||
{ |
|||
Default, |
|||
Info, |
|||
Success, |
|||
Warning, |
|||
Error, |
|||
} |
|||
} |
|||
@ -0,0 +1,12 @@ |
|||
{ |
|||
"culture": "en-GB", |
|||
"texts": { |
|||
"GivenTenantIsNotAvailable": "Given tenant is not available: {0}", |
|||
"Tenant": "Tenant", |
|||
"Switch": "switch", |
|||
"Name": "Name", |
|||
"SwitchTenantHint": "Leave the name field blank to switch to the host side.", |
|||
"SwitchTenant": "Switch tenant", |
|||
"NotSelected": "Not selected" |
|||
} |
|||
} |
|||
@ -0,0 +1,17 @@ |
|||
using System; |
|||
using System.Collections.Generic; |
|||
using System.Threading.Tasks; |
|||
using Microsoft.AspNetCore.Builder; |
|||
|
|||
namespace Microsoft.AspNetCore.RequestLocalization |
|||
{ |
|||
public class AbpRequestLocalizationOptions |
|||
{ |
|||
public List<Func<IServiceProvider, RequestLocalizationOptions, Task>> RequestLocalizationOptionConfigurators { get; } |
|||
|
|||
public AbpRequestLocalizationOptions() |
|||
{ |
|||
RequestLocalizationOptionConfigurators = new List<Func<IServiceProvider, RequestLocalizationOptions, Task>>(); |
|||
} |
|||
} |
|||
} |
|||
@ -0,0 +1,33 @@ |
|||
using System; |
|||
using Microsoft.AspNetCore.Http; |
|||
using Volo.Abp.DependencyInjection; |
|||
|
|||
namespace Volo.Abp.AspNetCore.DependencyInjection |
|||
{ |
|||
public class HttpContextClientScopeServiceProviderAccessor : |
|||
IClientScopeServiceProviderAccessor, |
|||
ISingletonDependency |
|||
{ |
|||
public IServiceProvider ServiceProvider |
|||
{ |
|||
get |
|||
{ |
|||
var httpContext = _httpContextAccessor.HttpContext; |
|||
if (httpContext == null) |
|||
{ |
|||
throw new AbpException("HttpContextClientScopeServiceProviderAccessor should only be used in a web request scope!"); |
|||
} |
|||
|
|||
return httpContext.RequestServices; |
|||
} |
|||
} |
|||
|
|||
private readonly IHttpContextAccessor _httpContextAccessor; |
|||
|
|||
public HttpContextClientScopeServiceProviderAccessor( |
|||
IHttpContextAccessor httpContextAccessor) |
|||
{ |
|||
_httpContextAccessor = httpContextAccessor; |
|||
} |
|||
} |
|||
} |
|||
@ -0,0 +1,10 @@ |
|||
{ |
|||
"culture": "en-GB", |
|||
"texts": { |
|||
"Volo.Authorization:010001": "Authorisation failed! Given policy has not granted.", |
|||
"Volo.Authorization:010002": "Authorisation failed! Given policy has not granted: {PolicyName}", |
|||
"Volo.Authorization:010003": "Authorisation failed! Given policy has not granted for given resource: {ResourceName}", |
|||
"Volo.Authorization:010004": "Authorisation failed! Given requirement has not granted for given resource: {ResourceName}", |
|||
"Volo.Authorization:010005": "Authorisation failed! Given requirements has not granted for given resource: {ResourceName}" |
|||
} |
|||
} |
|||
@ -0,0 +1,32 @@ |
|||
using System; |
|||
using System.Threading.Tasks; |
|||
using Volo.Abp.AspNetCore.Components.Progression; |
|||
using Volo.Abp.DependencyInjection; |
|||
|
|||
namespace Volo.Abp.BlazoriseUI |
|||
{ |
|||
[Dependency(ReplaceServices = true)] |
|||
public class BlazoriseUiPageProgressService : IUiPageProgressService, |
|||
IScopedDependency |
|||
{ |
|||
/// <summary>
|
|||
/// An event raised after the notification is received.
|
|||
/// </summary>
|
|||
public event EventHandler<UiPageProgressEventArgs> ProgressChanged; |
|||
|
|||
public Task Go(int? percentage, Action<UiPageProgressOptions> options = null) |
|||
{ |
|||
var uiPageProgressOptions = CreateDefaultOptions(); |
|||
options?.Invoke(uiPageProgressOptions); |
|||
|
|||
ProgressChanged?.Invoke(this, new UiPageProgressEventArgs(percentage, uiPageProgressOptions)); |
|||
|
|||
return Task.CompletedTask; |
|||
} |
|||
|
|||
protected virtual UiPageProgressOptions CreateDefaultOptions() |
|||
{ |
|||
return new UiPageProgressOptions(); |
|||
} |
|||
} |
|||
} |
|||
@ -0,0 +1 @@ |
|||
<PageProgress @ref="@PageProgressRef" Visible="@Visible" Color="@Color" /> |
|||
@ -0,0 +1,58 @@ |
|||
using System; |
|||
using Blazorise; |
|||
using Microsoft.AspNetCore.Components; |
|||
using Volo.Abp.AspNetCore.Components.Progression; |
|||
|
|||
namespace Volo.Abp.BlazoriseUI.Components |
|||
{ |
|||
public partial class UiPageProgress : ComponentBase, IDisposable |
|||
{ |
|||
protected PageProgress PageProgressRef { get; set; } |
|||
|
|||
protected int? Percentage { get; set; } |
|||
|
|||
protected bool Visible { get; set; } |
|||
|
|||
protected Color Color { get; set; } |
|||
|
|||
[Inject] protected IUiPageProgressService UiPageProgressService { get; set; } |
|||
|
|||
protected override void OnInitialized() |
|||
{ |
|||
base.OnInitialized(); |
|||
|
|||
UiPageProgressService.ProgressChanged += OnProgressChanged; |
|||
} |
|||
|
|||
private async void OnProgressChanged(object sender, UiPageProgressEventArgs e) |
|||
{ |
|||
Percentage = e.Percentage; |
|||
Visible = e.Percentage == null || (e.Percentage >= 0 && e.Percentage <= 100); |
|||
Color = GetColor(e.Options.Type); |
|||
|
|||
await PageProgressRef.SetValueAsync(e.Percentage); |
|||
|
|||
await InvokeAsync(StateHasChanged); |
|||
} |
|||
|
|||
public virtual void Dispose() |
|||
{ |
|||
if (UiPageProgressService != null) |
|||
{ |
|||
UiPageProgressService.ProgressChanged -= OnProgressChanged; |
|||
} |
|||
} |
|||
|
|||
protected virtual Color GetColor(UiPageProgressType pageProgressType) |
|||
{ |
|||
return pageProgressType switch |
|||
{ |
|||
UiPageProgressType.Info => Color.Info, |
|||
UiPageProgressType.Success => Color.Success, |
|||
UiPageProgressType.Warning => Color.Warning, |
|||
UiPageProgressType.Error => Color.Danger, |
|||
_ => Color.None, |
|||
}; |
|||
} |
|||
} |
|||
} |
|||
@ -0,0 +1,61 @@ |
|||
using System; |
|||
using System.IO; |
|||
using System.Linq; |
|||
using System.Threading.Tasks; |
|||
using Volo.Abp.Cli.Args; |
|||
using Volo.Abp.Cli.Utils; |
|||
using Volo.Abp.DependencyInjection; |
|||
|
|||
namespace Volo.Abp.Cli.Commands |
|||
{ |
|||
public class CreateMigrationAndRunMigrator : IConsoleCommand, ITransientDependency |
|||
{ |
|||
public virtual async Task ExecuteAsync(CommandLineArgs commandLineArgs) |
|||
{ |
|||
if (commandLineArgs.Target.IsNullOrEmpty()) |
|||
{ |
|||
throw new CliUsageException( |
|||
"DbMigrations folder path is missing!" |
|||
); |
|||
} |
|||
|
|||
var dbMigratorProjectPath = GetDbMigratorProjectPath(commandLineArgs.Target); |
|||
|
|||
if (dbMigratorProjectPath == null) |
|||
{ |
|||
throw new Exception("DbMigrator is not found!"); |
|||
} |
|||
|
|||
var output = CmdHelper.RunCmdAndGetOutput("cd \"" + commandLineArgs.Target + "\" && dotnet ef migrations add Initial -s " + dbMigratorProjectPath); |
|||
|
|||
if (output.Contains("Done.") && output.Contains("To undo this action") && output.Contains("ef migrations remove")) // Migration added successfully
|
|||
{ |
|||
CmdHelper.RunCmd("cd \"" + Path.GetDirectoryName(dbMigratorProjectPath) + "\" && dotnet run"); |
|||
} |
|||
} |
|||
|
|||
private string GetDbMigratorProjectPath(string dbMigrationsFolderPath) |
|||
{ |
|||
var srcFolder = Directory.GetParent(dbMigrationsFolderPath); |
|||
|
|||
var dbMigratorFolderPath = Directory.GetDirectories(srcFolder.FullName).FirstOrDefault(d => d.EndsWith(".DbMigrator")); |
|||
|
|||
if (dbMigratorFolderPath == null) |
|||
{ |
|||
return null; |
|||
} |
|||
|
|||
return Directory.GetFiles(dbMigratorFolderPath).FirstOrDefault(f => f.EndsWith(".csproj")); |
|||
} |
|||
|
|||
public string GetUsageInfo() |
|||
{ |
|||
return string.Empty; |
|||
} |
|||
|
|||
public string GetShortDescription() |
|||
{ |
|||
return string.Empty; |
|||
} |
|||
} |
|||
} |
|||
@ -0,0 +1,9 @@ |
|||
using System; |
|||
|
|||
namespace Volo.Abp.DependencyInjection |
|||
{ |
|||
public interface IClientScopeServiceProviderAccessor |
|||
{ |
|||
IServiceProvider ServiceProvider { get; } |
|||
} |
|||
} |
|||
@ -0,0 +1,6 @@ |
|||
{ |
|||
"culture": "en-GB", |
|||
"texts": { |
|||
"MaxResultCountExceededExceptionMessage": "{0} can not be more than {1}! Increase {2}.{3} on the server side to allow more results." |
|||
} |
|||
} |
|||
@ -0,0 +1,25 @@ |
|||
{ |
|||
"culture": "en-GB", |
|||
"texts": { |
|||
"DisplayName:Abp.Mailing.DefaultFromAddress": "Default from address", |
|||
"DisplayName:Abp.Mailing.DefaultFromDisplayName": "Default from display name", |
|||
"DisplayName:Abp.Mailing.Smtp.Host": "Host", |
|||
"DisplayName:Abp.Mailing.Smtp.Port": "Port", |
|||
"DisplayName:Abp.Mailing.Smtp.UserName": "User name", |
|||
"DisplayName:Abp.Mailing.Smtp.Password": "Password", |
|||
"DisplayName:Abp.Mailing.Smtp.Domain": "Domain", |
|||
"DisplayName:Abp.Mailing.Smtp.EnableSsl": "Enable SSL", |
|||
"DisplayName:Abp.Mailing.Smtp.UseDefaultCredentials": "Use default credentials", |
|||
"Description:Abp.Mailing.DefaultFromAddress": "The default from address", |
|||
"Description:Abp.Mailing.DefaultFromDisplayName": "The default from display name", |
|||
"Description:Abp.Mailing.Smtp.Host": "The name or IP address of the host used for SMTP transactions.", |
|||
"Description:Abp.Mailing.Smtp.Port": "The port used for SMTP transactions.", |
|||
"Description:Abp.Mailing.Smtp.UserName": "Username associated with the credentials.", |
|||
"Description:Abp.Mailing.Smtp.Password": "The password for the user name associated with the credentials.", |
|||
"Description:Abp.Mailing.Smtp.Domain": "The domain or computer name that verifies the credentials.", |
|||
"Description:Abp.Mailing.Smtp.EnableSsl": "Whether the SmtpClient uses Secure Sockets Layer (SSL) to encrypt the connection.", |
|||
"Description:Abp.Mailing.Smtp.UseDefaultCredentials": "Whether the DefaultCredentials are sent with requests.", |
|||
"TextTemplate:StandardEmailTemplates.Layout": "Default email layout template", |
|||
"TextTemplate:StandardEmailTemplates.Message": "Simple message template for emails" |
|||
} |
|||
} |
|||
@ -0,0 +1,25 @@ |
|||
{ |
|||
"culture": "en-GB", |
|||
"texts": { |
|||
"InternalServerErrorMessage": "An internal error occurred during your request!", |
|||
"ValidationErrorMessage": "Your request is not valid!", |
|||
"ValidationNarrativeErrorMessageTitle": "The following errors were detected during validation.", |
|||
"DefaultErrorMessage": "An error has occurred!", |
|||
"DefaultErrorMessageDetail": "Error detail not sent by server.", |
|||
"DefaultErrorMessage401": "You are not authenticated!", |
|||
"DefaultErrorMessage401Detail": "You should sign in to perform this operation.", |
|||
"DefaultErrorMessage403": "You are not authorised!", |
|||
"DefaultErrorMessage403Detail": "You are not allowed to perform this operation!", |
|||
"DefaultErrorMessage404": "Resource not found!", |
|||
"DefaultErrorMessage404Detail": "The resource requested could not found on the server!", |
|||
"EntityNotFoundErrorMessage": "There is no entity {0} with id = {1}!", |
|||
"Error": "Error", |
|||
"UnhandledException": "Unhandled exception!", |
|||
"401Message": "Unauthorized", |
|||
"403Message": "Forbidden", |
|||
"404Message": "Page not found", |
|||
"500Message": "Internal Server Error", |
|||
"403MessageDetail": "You are not authorised to perform this operation!", |
|||
"404MessageDetail": "Sorry, there's nothing at this address." |
|||
} |
|||
} |
|||
@ -0,0 +1,8 @@ |
|||
{ |
|||
"culture": "en-GB", |
|||
"texts": { |
|||
"Volo.Feature:010001": "Feature is not enabled: {FeatureName}", |
|||
"Volo.Feature:010002": "Required features are not enabled. All of these features must be enabled: {FeatureNames}", |
|||
"Volo.Feature:010003": "Required features are not enabled. At least one of these features must be enabled: {FeatureNames}" |
|||
} |
|||
} |
|||
@ -0,0 +1,15 @@ |
|||
{ |
|||
"culture": "en-GB", |
|||
"texts": { |
|||
"DisplayName:Abp.Ldap.ServerHost": "Server host", |
|||
"Description:Abp.Ldap.ServerHost": "Server host", |
|||
"DisplayName:Abp.Ldap.ServerPort": "Server port", |
|||
"Description:Abp.Ldap.ServerPort": "Server port", |
|||
"DisplayName:Abp.Ldap.BaseDc": "Base domain component", |
|||
"Description:Abp.Ldap.BaseDc": "Base domain component", |
|||
"DisplayName:Abp.Ldap.UserName": "Username", |
|||
"Description:Abp.Ldap.UserName": "Username", |
|||
"DisplayName:Abp.Ldap.Password": "Password", |
|||
"Description:Abp.Ldap.Password": "Password" |
|||
} |
|||
} |
|||
@ -0,0 +1,7 @@ |
|||
{ |
|||
"culture": "en-GB", |
|||
"texts": { |
|||
"DisplayName:Abp.Localization.DefaultLanguage": "Default language", |
|||
"Description:Abp.Localization.DefaultLanguage": "The default language of the application." |
|||
} |
|||
} |
|||
@ -0,0 +1,7 @@ |
|||
{ |
|||
"culture": "en-GB", |
|||
"texts": { |
|||
"DisplayName:Abp.Timing.Timezone": "Timezone", |
|||
"Description:Abp.Timing.Timezone": "Application time zone" |
|||
} |
|||
} |
|||
@ -0,0 +1,6 @@ |
|||
{ |
|||
"culture": "en-GB", |
|||
"texts": { |
|||
"Menu:Administration": "Administration" |
|||
} |
|||
} |
|||
@ -0,0 +1,52 @@ |
|||
{ |
|||
"culture": "en-GB", |
|||
"texts": { |
|||
"Languages": "Languages", |
|||
"AreYouSure": "Are you sure?", |
|||
"Cancel": "Cancel", |
|||
"Clear": "Clear", |
|||
"Yes": "Yes", |
|||
"No": "No", |
|||
"Ok": "Ok", |
|||
"Close": "Close", |
|||
"Save": "Save", |
|||
"SavingWithThreeDot": "Saving", |
|||
"Actions": "Actions", |
|||
"Delete": "Delete", |
|||
"Edit": "Edit", |
|||
"Refresh": "Refresh", |
|||
"Language": "Language", |
|||
"LoadMore": "Load more", |
|||
"ProcessingWithThreeDot": "Processing...", |
|||
"LoadingWithThreeDot": "Loading...", |
|||
"Welcome": "Welcome", |
|||
"Login": "Login", |
|||
"Register": "Register", |
|||
"Logout": "Logout", |
|||
"Submit": "Submit", |
|||
"Back": "Back", |
|||
"PagerSearch": "Search", |
|||
"PagerNext": "Next", |
|||
"PagerPrevious": "Previous", |
|||
"PagerFirst": "First", |
|||
"PagerLast": "Last", |
|||
"PagerInfo": "Showing _START_ to _END_ of _TOTAL_ entries", |
|||
"PagerInfo{0}{1}{2}": "Showing {0} to {1} of {2} entries", |
|||
"PagerInfoEmpty": "Showing 0 to 0 of 0 entries", |
|||
"PagerInfoFiltered": "(filtered from _MAX_ total entries)", |
|||
"NoDataAvailableInDatatable": "No data available", |
|||
"Total": "total", |
|||
"Selected": "selected", |
|||
"PagerShowMenuEntries": "Show _MENU_ entries", |
|||
"DatatableActionDropdownDefaultText": "Actions", |
|||
"ChangePassword": "Change Password", |
|||
"PersonalInfo": "My Profile", |
|||
"AreYouSureYouWantToCancelEditingWarningMessage": "You have unsaved changes.", |
|||
"GoHomePage": "Go to the homepage", |
|||
"GoBack": "Go back", |
|||
"Search": "Search", |
|||
"ItemWillBeDeletedMessageWithFormat": "{0} will be deleted!", |
|||
"ItemWillBeDeletedMessage": "This item will be deleted!", |
|||
"ManageYourAccount": "Manage your account" |
|||
} |
|||
} |
|||
@ -0,0 +1,32 @@ |
|||
{ |
|||
"culture": "en-GB", |
|||
"texts": { |
|||
"'{0}' and '{1}' do not match.": "'{0}' and '{1}' do not match.", |
|||
"The {0} field is not a valid credit card number.": "The {0} field is not a valid credit card number.", |
|||
"{0} is not valid.": "{0} is not valid.", |
|||
"The {0} field is not a valid e-mail address.": "The {0} field is not a valid Email address.", |
|||
"The {0} field only accepts files with the following extensions: {1}": "The {0} field only accepts files with the following extensions: {1}", |
|||
"The field {0} must be a string or array type with a maximum length of '{1}'.": "The field {0} must be a string or array type with a maximum length of '{1}'.", |
|||
"The {0} field is not a valid phone number.": "The {0} field is not a valid phone number.", |
|||
"The field {0} must be between {1} and {2}.": "The field {0} must be between {1} and {2}.", |
|||
"The field {0} must match the regular expression '{1}'.": "The field {0} does not match the requested format.", |
|||
"The {0} field is required.": "The {0} field is required.", |
|||
"The field {0} must be a string with a maximum length of {1}.": "The field {0} must be a string with a maximum length of {1}.", |
|||
"The field {0} must be a string with a minimum length of {2} and a maximum length of {1}.": "The field {0} must be a string with a minimum length of {2} and a maximum length of {1}.", |
|||
"The {0} field is not a valid fully-qualified http, https, or ftp URL.": "The {0} field is not a valid fully-qualified http, https, or ftp Url.", |
|||
"The field {0} is invalid.": "The field {0} is invalid.", |
|||
"ThisFieldIsNotAValidCreditCardNumber.": "This field is not a valid credit card number.", |
|||
"ThisFieldIsNotValid.": "This field is not valid.", |
|||
"ThisFieldIsNotAValidEmailAddress.": "This field is not a valid e-mail address.", |
|||
"ThisFieldOnlyAcceptsFilesWithTheFollowingExtensions:{0}": "This field only accepts files with the following extensions: {0}", |
|||
"ThisFieldMustBeAStringOrArrayTypeWithAMaximumLengthOf{0}": "This field must be a string or array type with a maximum length of '{0}'.", |
|||
"ThisFieldIsNotAValidPhoneNumber.": "This field is not a valid phone number.", |
|||
"ThisFieldMustBeBetween{0}And{1}": "This field must be between {0} and {1}.", |
|||
"ThisFieldMustMatchTheRegularExpression{0}": "This field must match the regular expression '{0}'.", |
|||
"ThisFieldIsRequired.": "This field is required.", |
|||
"ThisFieldMustBeAStringWithAMaximumLengthOf{0}": "This field must be a string with a maximum length of {0}.", |
|||
"ThisFieldMustBeAStringWithAMinimumLengthOf{1}AndAMaximumLengthOf{0}": "This field must be a string with a minimum length of {1} and a maximum length of {0}.", |
|||
"ThisFieldIsNotAValidFullyQualifiedHttpHttpsOrFtpUrl": "This field is not a valid fully-qualified http, https, or ftp URL.", |
|||
"ThisFieldIsInvalid.": "This field is invalid." |
|||
} |
|||
} |
|||
@ -0,0 +1,15 @@ |
|||
using System.Globalization; |
|||
using Microsoft.AspNetCore.Mvc; |
|||
|
|||
namespace Volo.Abp.AspNetCore.Mvc.Localization |
|||
{ |
|||
[Route("api/LocalizationTestController")] |
|||
public class LocalizationTestController : AbpController |
|||
{ |
|||
[HttpGet] |
|||
public string Culture() |
|||
{ |
|||
return CultureInfo.CurrentCulture.Name + ":" + CultureInfo.CurrentUICulture.Name; |
|||
} |
|||
} |
|||
} |
|||
@ -0,0 +1,44 @@ |
|||
using System.Net; |
|||
using System.Threading.Tasks; |
|||
using Microsoft.AspNetCore.Http; |
|||
using Microsoft.AspNetCore.Localization; |
|||
using Microsoft.AspNetCore.RequestLocalization; |
|||
using Microsoft.Extensions.DependencyInjection; |
|||
using Microsoft.Extensions.Hosting; |
|||
using Microsoft.Extensions.Primitives; |
|||
using Shouldly; |
|||
using Xunit; |
|||
|
|||
namespace Volo.Abp.AspNetCore.Mvc.Localization |
|||
{ |
|||
public class LocalizationTestController_Tests : AspNetCoreMvcTestBase |
|||
{ |
|||
class TestRequestCultureProvider : RequestCultureProvider |
|||
{ |
|||
public override Task<ProviderCultureResult> DetermineProviderCultureResult(HttpContext httpContext) |
|||
{ |
|||
return Task.FromResult(new ProviderCultureResult((StringSegment) "tr", (StringSegment) "hu")); |
|||
} |
|||
} |
|||
|
|||
protected override void ConfigureServices(HostBuilderContext context, IServiceCollection services) |
|||
{ |
|||
services.Configure<AbpRequestLocalizationOptions>(options => |
|||
{ |
|||
options.RequestLocalizationOptionConfigurators.Add((serviceProvider, localizationOptions) => |
|||
{ |
|||
localizationOptions.RequestCultureProviders.Insert(0, new TestRequestCultureProvider()); |
|||
return Task.CompletedTask; |
|||
}); |
|||
}); |
|||
} |
|||
|
|||
[Fact] |
|||
public async Task TestRequestCultureProvider_Test() |
|||
{ |
|||
var response = await GetResponseAsync("api/LocalizationTestController", HttpStatusCode.OK); |
|||
var resultAsString = await response.Content.ReadAsStringAsync(); |
|||
resultAsString.ToLower().ShouldBe("tr:hu"); |
|||
} |
|||
} |
|||
} |
|||
@ -0,0 +1,7 @@ |
|||
{ |
|||
"culture": "en-GB", |
|||
"texts": { |
|||
"BirthDate": "Birth date", |
|||
"Value1": "Value One" |
|||
} |
|||
} |
|||
@ -0,0 +1,6 @@ |
|||
{ |
|||
"culture": "en-GB", |
|||
"texts": { |
|||
"hello": "Hello" |
|||
} |
|||
} |
|||
@ -0,0 +1,6 @@ |
|||
{ |
|||
"culture": "en-GB", |
|||
"texts": { |
|||
"Volo.Abp.Http.DynamicProxying:10001": "Business exception with data: {0}" |
|||
} |
|||
} |
|||
@ -0,0 +1,7 @@ |
|||
{ |
|||
"culture": "en-GB", |
|||
"texts": { |
|||
"USA": "United States of America", |
|||
"Brazil": "Brazil" |
|||
} |
|||
} |
|||
@ -0,0 +1,7 @@ |
|||
{ |
|||
"culture": "en-GB", |
|||
"texts": { |
|||
"ThisFieldIsRequired": "This field is required", |
|||
"MaxLenghtErrorMessage": "This field can be maximum of '{0}' chars" |
|||
} |
|||
} |
|||
@ -0,0 +1,11 @@ |
|||
{ |
|||
"culture": "en-GB", |
|||
"texts": { |
|||
"Hello <b>{0}</b>.": "Hello <b>{0}</b>.", |
|||
"Car": "Car", |
|||
"CarPlural": "Cars", |
|||
"MaxLenghtErrorMessage": "This field's length can be a maximum of '{0}' chars", |
|||
"Universe": "Universe", |
|||
"FortyTwo": "Forty Two" |
|||
} |
|||
} |
|||
@ -0,0 +1,6 @@ |
|||
{ |
|||
"culture": "en-GB", |
|||
"texts": { |
|||
"SeeYou": "See you" |
|||
} |
|||
} |
|||
@ -0,0 +1,7 @@ |
|||
{ |
|||
"culture": "en-GB", |
|||
"texts": { |
|||
"HelloText": "Hello {0}", |
|||
"HowAreYou": "how are you?" |
|||
} |
|||
} |
|||
@ -0,0 +1 @@ |
|||
{{ model.amount}} |
|||
@ -0,0 +1,65 @@ |
|||
{ |
|||
"culture": "en-GB", |
|||
"texts": { |
|||
"UserName": "Username", |
|||
"EmailAddress": "Email address", |
|||
"UserNameOrEmailAddress": "Username or email address", |
|||
"Password": "Password", |
|||
"RememberMe": "Remember me", |
|||
"UseAnotherServiceToLogin": "Use another service to log in", |
|||
"UserLockedOutMessage": "The user account has been locked out due to invalid login attempts. Please wait a while and try again.", |
|||
"InvalidUserNameOrPassword": "Invalid username or password!", |
|||
"LoginIsNotAllowed": "You are not allowed to login! You need to confirm your email/phone number.", |
|||
"SelfRegistrationDisabledMessage": "Self-registration is disabled for this application. Please contact the application administrator to register a new user.", |
|||
"LocalLoginDisabledMessage": "Local login is disabled for this application.", |
|||
"Login": "Login", |
|||
"Cancel": "Cancel", |
|||
"Register": "Register", |
|||
"AreYouANewUser": "Are you a new user?", |
|||
"AlreadyRegistered": "Already registered?", |
|||
"InvalidLoginRequest": "Invalid login request", |
|||
"ThereAreNoLoginSchemesConfiguredForThisClient": "There are no login schemes configured for this client.", |
|||
"LogInUsingYourProviderAccount": "Log in using your {0} account", |
|||
"DisplayName:CurrentPassword": "Current password", |
|||
"DisplayName:NewPassword": "New password", |
|||
"DisplayName:NewPasswordConfirm": "Confirm new password", |
|||
"PasswordChangedMessage": "Your password has been successfully changed.", |
|||
"DisplayName:UserName": "Username", |
|||
"DisplayName:Email": "Email", |
|||
"DisplayName:Name": "Name", |
|||
"DisplayName:Surname": "Surname", |
|||
"DisplayName:Password": "Password", |
|||
"DisplayName:EmailAddress": "Email address", |
|||
"DisplayName:PhoneNumber": "Phone number", |
|||
"PersonalSettings": "Personal settings", |
|||
"PersonalSettingsSaved": "Personal settings saved", |
|||
"PasswordChanged": "Password changed", |
|||
"NewPasswordConfirmFailed": "Please confirm the new password.", |
|||
"Manage": "Manage", |
|||
"ManageYourProfile": "Manage your profile", |
|||
"DisplayName:Abp.Account.IsSelfRegistrationEnabled": "Is self-registration enabled", |
|||
"Description:Abp.Account.IsSelfRegistrationEnabled": "Whether a user can register the account by his or her self.", |
|||
"DisplayName:Abp.Account.EnableLocalLogin": "Authenticate with a local account", |
|||
"Description:Abp.Account.EnableLocalLogin": "Indicates if the server will allow users to authenticate with a local account.", |
|||
"LoggedOutTitle": "Signed Out", |
|||
"LoggedOutText": "You have been signed out and you will be redirected soon.", |
|||
"ReturnToText": "Click here to redirect to {0}", |
|||
"OrLoginWith": "Or login with:", |
|||
"ForgotPassword": "Forgot password?", |
|||
"SendPasswordResetLink_Information": "A password reset link will be sent to your email to reset your password. If you don't get an email within a few minutes, please re-try.", |
|||
"PasswordResetMailSentMessage": "Account recovery email has been sent to your e-mail address. If you receive the email within 15 minutes, check your spam/junk folder. If you find it there, please mark it as -Not Junk-.", |
|||
"ResetPassword": "Reset Password", |
|||
"ConfirmPassword": "Confirm (repeat) the password", |
|||
"ResetPassword_Information": "Please enter your new password.", |
|||
"YourPasswordIsSuccessfullyReset": "Your password has been successfully reset.", |
|||
"GoToTheApplication": "Go to the application", |
|||
"BackToLogin": "Back to login", |
|||
"ProfileTab:Password": "Change password", |
|||
"ProfileTab:PersonalInfo": "Personal info", |
|||
"ReturnToApplication": "Return to application", |
|||
"Volo.Account:InvalidEmailAddress": "Cannot find the given email address: {0}", |
|||
"PasswordReset": "Password reset", |
|||
"PasswordResetInfoInEmail": "We received an account recovery request! If you initiated this request, click the following link to reset your password.", |
|||
"ResetMyPassword": "Reset my password" |
|||
} |
|||
} |
|||