diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/ar.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/ar.json index 49748cf97a..e71b78a029 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/ar.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/ar.json @@ -234,8 +234,15 @@ "DisplayName:CommunityIndexPagePoll": "استطلاع", "OrganizationOverview": "نظرة عامة على المنظمة", "EmailPreferences": "تفضيلات البريد الإلكتروني", - "DoYouAgreePrivacyPolicy": "بالضغط يشترك الزر الذي توافق عليه شروط و سياسة الخصوصية.", - "VideoCourses": "دورات الفيديو", - "Resources": "موارد" + "VideoCourses": "فيديوهات أساسية", + "Resources": "موارد", + "DoYouAgreePrivacyPolicy": "بالضغط يشترك الزر الذي توافق عليه شروط و سياسة الخصوصية.", + "PromotionalOffers": "عروض ترويجية", + "PromotionalOffersDefinition": "الخصومات والحملات الموسمية وما إلى ذلك.", + "EventsDefinition": "محادثات مجتمعية، وندوات عبر الإنترنت، ومؤتمر ABP .NET، وما إلى ذلك.", + "ReleaseNotesDefinition": "إصدارات منصة ABP.IO والمنتجات الجديدة وما إلى ذلك.", + "Newsletter": "النشرة الإخبارية", + "NewsletterDefinition": "منشورات المدونة وأخبار المجتمع وما إلى ذلك.", + "AbpConferenceDescription": "يعد مؤتمر ABP Conference افتراضيًا لمطوري .NET للتعلم والتواصل مع المجتمع." } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/cs.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/cs.json index 27a0532a97..3c171d9955 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/cs.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/cs.json @@ -234,9 +234,15 @@ "DisplayName:CommunityIndexPagePoll": "Anketa na stránce s indexem komunity", "OrganizationOverview": "Přehled organizace", "EmailPreferences": "Předvolby e-mailu", - "DoYouAgreePrivacyPolicy": "Kliknutím předplatit souhlasíte s Podmínky a Zásady ochrany osobních údajů.", - "VideoCourses": "Video kurzy", - "Resources": "Zdroje" - + "VideoCourses": "Základní videa", + "Resources": "Zdroje", + "DoYouAgreePrivacyPolicy": "Kliknutím předplatit souhlasíte s Podmínky a Zásady ochrany osobních údajů.", + "PromotionalOffers": "Propagační nabídky", + "PromotionalOffersDefinition": "Slevy, sezónní akce atd.", + "EventsDefinition": "Community Talks, webové semináře, konference ABP .NET atd.", + "ReleaseNotesDefinition": "Vydání platformy ABP.IO, nové produkty atd.", + "Newsletter": "Zpravodaj", + "NewsletterDefinition": "Blogové příspěvky, zprávy z komunity atd.", + "AbpConferenceDescription": "ABP Conference je virtuální událost pro vývojáře .NET, kde se mohou učit a spojit se s komunitou." } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/de.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/de.json index c98df8eb54..5fc8192923 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/de.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/de.json @@ -233,9 +233,15 @@ "DisplayName:CommunityIndexPagePoll": "Community-Indexseite-Umfrage", "OrganizationOverview": "Organisationsübersicht", "EmailPreferences": "E-Mail Einstellungen", - "DoYouAgreePrivacyPolicy": "Beim Klicken Abonnieren Mit der Schaltfläche stimmen Sie dem zu Bedingungen Und Datenschutzrichtlinie.", - "VideoCourses": "Videokurse", - "Resources": "Ressourcen" - + "VideoCourses": "Wichtige Videos", + "Resources": "Ressourcen", + "DoYouAgreePrivacyPolicy": "Beim Klicken Abonnieren Mit der Schaltfläche stimmen Sie dem zu Bedingungen Und Datenschutzrichtlinie.", + "PromotionalOffers": "Werbeangebote", + "PromotionalOffersDefinition": "Rabatte, saisonale Aktionen usw.", + "EventsDefinition": "Community Talks, Webinare, ABP .NET-Konferenz usw.", + "ReleaseNotesDefinition": "Veröffentlichungen der ABP.IO-Plattform, neue Produkte usw.", + "Newsletter": "Newsletter", + "NewsletterDefinition": "Blogbeiträge, Community-News usw.", + "AbpConferenceDescription": "Die ABP Conference ist eine virtuelle Veranstaltung für .NET-Entwickler, um zu lernen und mit der Community in Kontakt zu treten." } } \ No newline at end of file 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 675d4a66bc..3459801b86 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/en-GB.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/en-GB.json @@ -37,6 +37,7 @@ "DisplayName:CommunityIndexPagePoll": "Community Index Page Poll", "OrganizationOverview": "Organization Overview", "EmailPreferences": "Email Preferences", - "DoYouAgreePrivacyPolicy": "By clicking Subscribe button you agree to the Terms & Conditions and Privacy Policy." + "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." } } \ 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 61b67e3744..74a64751fc 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/en.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/en.json @@ -248,7 +248,8 @@ "NewsletterDefinition": "Blog posts, community news, etc.", "OrganizationOverview": "Organization Overview", "EmailPreferences": "Email Preferences", - "DoYouAgreePrivacyPolicy": "By clicking Subscribe button you agree to the Terms & Conditions and Privacy Policy.", - "VideoCourses" : "Video Courses" + "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." } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/es.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/es.json index 9ee41e0b8b..3be2d797f9 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/es.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/es.json @@ -233,9 +233,15 @@ "DisplayName:CommunityIndexPagePoll": "Encuesta de la página de índice de la comunidad", "OrganizationOverview": "Descripción de la organización", "EmailPreferences": "Preferencias de correo electrónico", - "DoYouAgreePrivacyPolicy": "Haciendo click Suscribir botón estás de acuerdo con el Términos y política de privacidad.", - "VideoCourses": "Cursos en vídeo", - "Resources": "Recursos" - + "VideoCourses": "Vídeos esenciales", + "Resources": "Recursos", + "DoYouAgreePrivacyPolicy": "Haciendo click Suscribir botón estás de acuerdo con el Términos y política de privacidad.", + "PromotionalOffers": "Ofertas promocionales", + "PromotionalOffersDefinition": "Descuentos, campañas de temporada, etc.", + "EventsDefinition": "Community Talks, Webinars, conferencia ABP .NET, etc.", + "ReleaseNotesDefinition": "Lanzamientos de la plataforma ABP.IO, nuevos productos, etc.", + "Newsletter": "Boletin informativo", + "NewsletterDefinition": "Publicaciones de blog, noticias de la comunidad, etc.", + "AbpConferenceDescription": "La ABP Conference es un evento virtual para que los desarrolladores de .NET aprendan y se conecten con la comunidad." } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/fi.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/fi.json index 60d919c351..0666dd79f5 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/fi.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/fi.json @@ -234,9 +234,15 @@ "DisplayName:CommunityIndexPagePoll": "Yhteisön indeksointisivun kysely", "OrganizationOverview": "Organisaation yleiskatsaus", "EmailPreferences": "Sähköpostiasetukset", - "DoYouAgreePrivacyPolicy": "Klikkaamalla Tilaa -painiketta hyväksyt Ehdot ja Tietosuojakäytäntö.", - "VideoCourses": "Videokurssit", - "Resources": "Resurssit" - + "VideoCourses": "Tärkeitä videoita", + "Resources": "Resurssit", + "DoYouAgreePrivacyPolicy": "Klikkaamalla Tilaa -painiketta hyväksyt Ehdot ja Tietosuojakäytäntö.", + "PromotionalOffers": "Kampanjatarjoukset", + "PromotionalOffersDefinition": "Alennukset, kausikampanjat jne.", + "EventsDefinition": "Community Talks, Webinars, ABP .NET -konferenssi jne.", + "ReleaseNotesDefinition": "ABP.IO Platform -julkaisut, uudet tuotteet jne.", + "Newsletter": "Uutiskirje", + "NewsletterDefinition": "Blogiviestit, yhteisöuutiset jne.", + "AbpConferenceDescription": "ABP Conference on virtuaalinen tapahtuma, jossa .NET-kehittäjät voivat oppia ja olla yhteydessä yhteisöön." } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/fr.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/fr.json index 0822508775..62a69a33c8 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/fr.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/fr.json @@ -234,9 +234,15 @@ "DisplayName:CommunityIndexPagePoll": "Sondage de la page d'accueil de la communauté", "OrganizationOverview": "Aperçu de l'organisation", "EmailPreferences": "Préférences de messagerie", - "DoYouAgreePrivacyPolicy": "En cliquant S'abonner bouton, vous acceptez le Termes et politique de confidentialité.", - "VideoCourses": "Cours vidéo", - "Resources": "Ressources" - + "VideoCourses": "Vidéos essentielles", + "Resources": "Ressources", + "DoYouAgreePrivacyPolicy": "En cliquant S'abonner bouton, vous acceptez le Termes et politique de confidentialité.", + "PromotionalOffers": "Offres promotionnelles", + "PromotionalOffersDefinition": "Réductions, campagnes saisonnières, etc.", + "EventsDefinition": "Community Talks, webinaires, conférence ABP .NET, etc.", + "ReleaseNotesDefinition": "Sorties de la plateforme ABP.IO, nouveaux produits, etc.", + "Newsletter": "Bulletin", + "NewsletterDefinition": "Articles de blog, actualités de la communauté, etc.", + "AbpConferenceDescription": "La ABP Conference est un événement virtuel permettant aux développeurs .NET d'apprendre et de se connecter avec la communauté." } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/hi.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/hi.json index bd66fb441b..95cb1ab099 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/hi.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/hi.json @@ -234,9 +234,15 @@ "DisplayName:CommunityIndexPagePoll": "सामुदायिक अनुभाग मतदान", "OrganizationOverview": "संगठन अवलोकन", "EmailPreferences": "ईमेल प्राथमिकताएं", - "DoYouAgreePrivacyPolicy": "क्लिक करके सदस्यता लें जिस बटन से आप सहमत हैं शर्तें और गोपनीयता नीति.", - "VideoCourses": "वीडियो पाठ्यक्रम", - "Resources": "संसाधन" - + "VideoCourses": "आवश्यक वीडियो", + "Resources": "संसाधन", + "DoYouAgreePrivacyPolicy": "क्लिक करके सदस्यता लें जिस बटन से आप सहमत हैं शर्तें और गोपनीयता नीति.", + "PromotionalOffers": "प्रोमोशनल ऑफ़र", + "PromotionalOffersDefinition": "छूट, मौसमी अभियान, आदि।", + "EventsDefinition": "सामुदायिक वार्ता, वेबिनार, ABP .NET सम्मेलन, आदि।", + "ReleaseNotesDefinition": "ABP.IO प्लेटफ़ॉर्म रिलीज़, नए उत्पाद, आदि।", + "Newsletter": "समाचार पत्रिका", + "NewsletterDefinition": "ब्लॉग पोस्ट, सामुदायिक समाचार, आदि।", + "AbpConferenceDescription": "ABP Conference .NET डेवलपर्स के लिए समुदाय से सीखने और जुड़ने के लिए एक आभासी कार्यक्रम है।" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/hr.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/hr.json index 8eee2de58e..f02f9ac15c 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/hr.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/hr.json @@ -234,9 +234,15 @@ "DisplayName:CommunityIndexPagePoll": "Anketa na stranici indeksa zajednice", "OrganizationOverview": "Pregled organizacije", "EmailPreferences": "Postavke e-pošte", - "DoYouAgreePrivacyPolicy": "Klikom Pretplatite se gumb slažete se s Pojmovi i Politika privatnosti.", - "VideoCourses": "Video tečajevi", - "Resources": "Resursi" - + "VideoCourses": "Osnovni videozapisi", + "Resources": "Resursi", + "DoYouAgreePrivacyPolicy": "Klikom Pretplatite se gumb slažete se s Pojmovi i Politika privatnosti.", + "PromotionalOffers": "Promotivne ponude", + "PromotionalOffersDefinition": "Popusti, sezonske akcije i sl.", + "EventsDefinition": "Community Talks, webinari, ABP .NET konferencija itd.", + "ReleaseNotesDefinition": "Izdanja platforme ABP.IO, novi proizvodi itd.", + "Newsletter": "Newsletter", + "NewsletterDefinition": "Postovi na blogu, vijesti zajednice itd.", + "AbpConferenceDescription": "ABP Conference je virtualni događaj za .NET programere za učenje i povezivanje sa zajednicom." } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/hu.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/hu.json index 176c0dd93c..8409801445 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/hu.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/hu.json @@ -234,9 +234,15 @@ "DisplayName:CommunityIndexPagePoll": "Közösségi Indexoldal Szavazás", "OrganizationOverview": "Szervezet áttekintése", "EmailPreferences": "E-mail beállítások", - "DoYouAgreePrivacyPolicy": "Kattintással Iratkozz fel gombbal elfogadja a Feltételek és Adatvédelmi irányelvek.", - "VideoCourses": "Videó tanfolyamok", - "Resources": "Erőforrások" - + "VideoCourses": "Alapvető videók", + "Resources": "Erőforrások", + "DoYouAgreePrivacyPolicy": "Kattintással Iratkozz fel gombbal elfogadja a Feltételek és Adatvédelmi irányelvek.", + "PromotionalOffers": "Promóciós ajánlatok", + "PromotionalOffersDefinition": "Kedvezmények, szezonális kampányok stb.", + "EventsDefinition": "Community Talks, webináriumok, ABP .NET konferencia stb.", + "ReleaseNotesDefinition": "ABP.IO Platform kiadások, új termékek stb.", + "Newsletter": "Hírlevél", + "NewsletterDefinition": "Blogbejegyzések, közösségi hírek stb.", + "AbpConferenceDescription": "Az ABP Conference egy virtuális esemény a .NET-fejlesztők számára, ahol tanulhatnak és kapcsolatba léphetnek a közösséggel." } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/is.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/is.json index e9cabbbbb6..9498dc56a6 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/is.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/is.json @@ -234,9 +234,15 @@ "DisplayName:CommunityIndexPagePoll": "Samfélagssnið", "OrganizationOverview": "Yfirlit yfir stofnun", "EmailPreferences": "Tölvupóststillingar", - "DoYouAgreePrivacyPolicy": "Með því að smella Gerast áskrifandi hnappinn sem þú samþykkir Skilmálar og Friðhelgisstefna.", - "VideoCourses": "Vídeónámskeið", - "Resources": "Auðlindir" - + "VideoCourses": "Nauðsynleg myndbönd", + "Resources": "Auðlindir", + "DoYouAgreePrivacyPolicy": "Með því að smella Gerast áskrifandi hnappinn sem þú samþykkir Skilmálar og Friðhelgisstefna.", + "PromotionalOffers": "Kynningartilboð", + "PromotionalOffersDefinition": "Afslættir, árstíðabundnar herferðir o.fl.", + "EventsDefinition": "Community Talks, Webinars, ABP .NET ráðstefna o.fl.", + "ReleaseNotesDefinition": "ABP.IO Platform útgáfur, nýjar vörur o.fl.", + "Newsletter": "Fréttabréf", + "NewsletterDefinition": "Bloggfærslur, samfélagsfréttir o.fl.", + "AbpConferenceDescription": "ABP Conference er sýndarviðburður fyrir .NET forritara til að læra og tengjast samfélaginu." } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/it.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/it.json index 4a932768d5..6b790ec286 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/it.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/it.json @@ -234,9 +234,15 @@ "DisplayName:CommunityIndexPagePoll": "Sondaggio della pagina indice della comunità", "OrganizationOverview": "Panoramica dell'organizzazione", "EmailPreferences": "preferenze email", - "DoYouAgreePrivacyPolicy": "Cliccando sottoscrivi pulsante accetti il Termini E politica sulla riservatezza.", - "VideoCourses": "Videocorsi", - "Resources": "Risorse" - + "VideoCourses": "Video essenziali", + "Resources": "Risorse", + "DoYouAgreePrivacyPolicy": "Cliccando sottoscrivi pulsante accetti il Termini E politica sulla riservatezza.", + "PromotionalOffers": "Offerte promozionali", + "PromotionalOffersDefinition": "Sconti, campagne stagionali, ecc.", + "EventsDefinition": "Community Talks, webinar, conferenze ABP .NET, ecc.", + "ReleaseNotesDefinition": "ABP.IO Rilasci della piattaforma, nuovi prodotti, ecc.", + "Newsletter": "Notiziario", + "NewsletterDefinition": "Post del blog, notizie della community, ecc.", + "AbpConferenceDescription": "La ABP Conference è un evento virtuale che consente agli sviluppatori .NET di apprendere e connettersi con la comunità." } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/nl.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/nl.json index e032d2aec7..5ed55826cf 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/nl.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/nl.json @@ -234,9 +234,15 @@ "DisplayName:CommunityIndexPagePoll": "Gemeenschapsindexpagina-enquête", "OrganizationOverview": "Organisatieoverzicht", "EmailPreferences": "e-mail voorkeuren", - "DoYouAgreePrivacyPolicy": "Door te klikken Abonneren knop waarmee u akkoord gaat Voorwaarden En Privacybeleid.", - "VideoCourses": "Videocursussen", - "Resources": "Bronnen" - + "VideoCourses": "Essentiële video's", + "Resources": "Bronnen", + "DoYouAgreePrivacyPolicy": "Door te klikken Abonneren knop waarmee u akkoord gaat Voorwaarden En Privacybeleid.", + "PromotionalOffers": "Reclame aanbiedingen", + "PromotionalOffersDefinition": "Kortingen, seizoenscampagnes, etc.", + "EventsDefinition": "Community Talks, webinars, ABP .NET-conferentie, etc.", + "ReleaseNotesDefinition": "ABP.IO Platform-releases, nieuwe producten, enz.", + "Newsletter": "Nieuwsbrief", + "NewsletterDefinition": "Blogposts, gemeenschapsnieuws, enz.", + "AbpConferenceDescription": "ABP Conference is een virtueel evenement voor .NET-ontwikkelaars om te leren en verbinding te maken met de gemeenschap." } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/pl-PL.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/pl-PL.json index f61fced84b..d499293eb9 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/pl-PL.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/pl-PL.json @@ -234,9 +234,15 @@ "DisplayName:CommunityIndexPagePoll": "Ankieta na stronie głównej społeczności", "OrganizationOverview": "Przegląd organizacji", "EmailPreferences": "Preferencje poczty e-mail", - "DoYouAgreePrivacyPolicy": "Klikając Subskrybuj przycisk, na który wyrażasz zgodę Warunki I Polityka prywatności.", - "VideoCourses": "Kursy wideo", - "Resources": "Zasoby" - + "VideoCourses": "Niezbędne filmy", + "Resources": "Zasoby", + "DoYouAgreePrivacyPolicy": "Klikając Subskrybuj przycisk, na który wyrażasz zgodę Warunki I Polityka prywatności.", + "PromotionalOffers": "Oferty promocyjne", + "PromotionalOffersDefinition": "Rabaty, akcje sezonowe itp.", + "EventsDefinition": "Community Talks, Webinars, konferencja ABP .NET itp.", + "ReleaseNotesDefinition": "Wersje platformy ABP.IO, nowe produkty itp.", + "Newsletter": "Biuletyn", + "NewsletterDefinition": "Posty na blogu, aktualności społeczności itp.", + "AbpConferenceDescription": "ABP Conference to wirtualne wydarzenie dla programistów .NET, umożliwiające naukę i nawiązywanie kontaktu ze społecznością." } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/pt-BR.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/pt-BR.json index dffe08152a..e04983297d 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/pt-BR.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/pt-BR.json @@ -234,9 +234,15 @@ "DisplayName:CommunityIndexPagePoll": "Enquete da página inicial da comunidade", "OrganizationOverview": "Visão geral da organização", "EmailPreferences": "Preferências de Email", - "DoYouAgreePrivacyPolicy": "Clicando Se inscrever botão você concorda com o Termos e política de Privacidade.", - "VideoCourses": "Cursos em vídeo", - "Resources": "Recursos" - + "VideoCourses": "Vídeos essenciais", + "Resources": "Recursos", + "DoYouAgreePrivacyPolicy": "Clicando Se inscrever botão você concorda com o Termos e política de Privacidade.", + "PromotionalOffers": "Ofertas promocionais", + "PromotionalOffersDefinition": "Descontos, campanhas sazonais, etc.", + "EventsDefinition": "Community Talks, webinars, conferência ABP .NET, etc.", + "ReleaseNotesDefinition": "Lançamentos da plataforma ABP.IO, novos produtos, etc.", + "Newsletter": "Boletim de Notícias", + "NewsletterDefinition": "Postagens de blog, notícias da comunidade, etc.", + "AbpConferenceDescription": "ABP Conference é um evento virtual para desenvolvedores .NET aprenderem e se conectarem com a comunidade." } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/ro-RO.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/ro-RO.json index 0b6a65e3fb..5914e3e2ff 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/ro-RO.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/ro-RO.json @@ -234,9 +234,15 @@ "DisplayName:CommunityIndexPagePoll": "Sondajul de pe pagina de index a comunității", "OrganizationOverview": "Prezentare a organizației", "EmailPreferences": "preferinte de email", - "DoYouAgreePrivacyPolicy": "Dând clicuri Abonati-va butonul sunteți de acord cu Termeni și Politica de confidențialitate.", - "VideoCourses": "Cursuri video", - "Resources": "Resurse" - + "VideoCourses": "Videoclipuri esențiale", + "Resources": "Resurse", + "DoYouAgreePrivacyPolicy": "Dând clicuri Abonati-va butonul sunteți de acord cu Termeni și Politica de confidențialitate.", + "PromotionalOffers": "Oferte promotionale", + "PromotionalOffersDefinition": "Reduceri, campanii sezoniere etc.", + "EventsDefinition": "Community Talks, seminarii web, conferință ABP .NET etc.", + "ReleaseNotesDefinition": "Lansări ale platformei ABP.IO, produse noi etc.", + "Newsletter": "Buletin informativ", + "NewsletterDefinition": "Postări pe blog, știri ale comunității etc.", + "AbpConferenceDescription": "ABP Conference este un eveniment virtual pentru dezvoltatorii .NET pentru a învăța și a se conecta cu comunitatea." } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/ru.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/ru.json index c5be56d87b..df25b4937e 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/ru.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/ru.json @@ -240,8 +240,14 @@ "DisplayName:CommunityIndexPagePoll": "Опрос на главной странице сообщества", "OrganizationOverview": "Обзор организации", "EmailPreferences": "Настройки электронной почты", - "DoYouAgreePrivacyPolicy": "Кликнув Подписаться кнопку вы соглашаетесь с Условия и политика конфиденциальности.", - "VideoCourses": "Видео курсы", - + "VideoCourses": "Основные видео", + "DoYouAgreePrivacyPolicy": "Кликнув Подписаться кнопку вы соглашаетесь с Условия и политика конфиденциальности.", + "PromotionalOffers": "Рекламные предложения", + "PromotionalOffersDefinition": "Скидки, сезонные акции и т. д.", + "EventsDefinition": "Обсуждения с сообществом, вебинары, конференция ABP .NET и т. д.", + "ReleaseNotesDefinition": "Релизы платформы ABP.IO, новые продукты и т. д.", + "Newsletter": "Новостная рассылка", + "NewsletterDefinition": "Сообщения в блогах, новости сообщества и т. д.", + "AbpConferenceDescription": "ABP Conference — это виртуальное мероприятие, на котором разработчики .NET могут учиться и общаться с сообществом." } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/sk.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/sk.json index b13c792528..adc3974c73 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/sk.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/sk.json @@ -234,9 +234,15 @@ "DisplayName:CommunityIndexPagePoll": "Anketa na stránke indexu komunity", "OrganizationOverview": "Prehľad organizácie", "EmailPreferences": "Predvoľby e-mailu", - "DoYouAgreePrivacyPolicy": "Kliknutím Prihlásiť sa na odber súhlasíte s Podmienky a Zásady ochrany osobných údajov.", - "VideoCourses": "Video kurzy", - "Resources": "Zdroje" - + "VideoCourses": "Základné videá", + "DoYouAgreePrivacyPolicy": "Kliknutím Prihlásiť sa na odber súhlasíte s Podmienky a Zásady ochrany osobných údajov.", + "Resources": "Zdroje", + "PromotionalOffers": "Propagačné ponuky", + "PromotionalOffersDefinition": "Zľavy, sezónne kampane atď.", + "EventsDefinition": "Community Talks, webináre, konferencia ABP .NET atď.", + "ReleaseNotesDefinition": "Vydania platformy ABP.IO, nové produkty atď.", + "Newsletter": "Newsletter", + "NewsletterDefinition": "Blogové príspevky, správy z komunity atď.", + "AbpConferenceDescription": "ABP Conference je virtuálna udalosť pre vývojárov .NET, aby sa naučili a spojili sa s komunitou." } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/sl.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/sl.json index 591a85cade..38345d474b 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/sl.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/sl.json @@ -234,7 +234,14 @@ "DisplayName:CommunityIndexPagePoll": "Anketa na strani z indeksom skupnosti", "OrganizationOverview": "Pregled organizacije", "EmailPreferences": "E-poštne nastavitve", - "DoYouAgreePrivacyPolicy": "S klikom Naročite se gumb se strinjate z Pogoji in Politika zasebnosti.", - "VideoCourses": "Video tečaji" + "VideoCourses": "Bistveni videoposnetki", + "DoYouAgreePrivacyPolicy": "S klikom Naročite se gumb se strinjate z Pogoji in Politika zasebnosti.", + "PromotionalOffers": "Promocijske ponudbe", + "PromotionalOffersDefinition": "Popusti, sezonske akcije itd.", + "EventsDefinition": "Community Talks, webinars, konferenca ABP .NET itd.", + "ReleaseNotesDefinition": "Izdaje platforme ABP.IO, novi izdelki itd.", + "Newsletter": "Glasilo", + "NewsletterDefinition": "Objave v spletnem dnevniku, novice skupnosti itd.", + "AbpConferenceDescription": "Conference ABP je virtualni dogodek za razvijalce .NET, kjer se lahko učijo in povezujejo s skupnostjo." } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/tr.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/tr.json index 58e01c6757..96e9bcc436 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/tr.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/tr.json @@ -183,10 +183,16 @@ "WhyABPIOPlatform": "Neden ABP.IO Platform?", "ReleaseNotes": "Sürüm Notları", "Resources": "Kaynaklar", - "VideoCourses": "Video Kurslar", + "VideoCourses": "Başlangıç Videoları", "OrganizationOverview": "Organizasyon Detayı", "EmailPreferences": "E-posta Tercihleri", - "DoYouAgreePrivacyPolicy": "Abone Ol butonuna tıklayarak Şartlar ve Gizlilik Politikası kurallarımızı kabul etmiş olursunuz." - + "DoYouAgreePrivacyPolicy": "Abone Ol butonuna tıklayarak Şartlar ve Gizlilik Politikası kurallarımızı kabul etmiş olursunuz.", + "PromotionalOffers": "Promosyon teklifleri", + "PromotionalOffersDefinition": "İndirimler, dönemsel kampanyalar, vb.", + "EventsDefinition": "Community Talks, Webinars, ABP .NET konferansları, vb.", + "ReleaseNotesDefinition": "ABP.IO Platform sürümleri, yeni ürünler, vb.", + "Newsletter": "Bülten", + "NewsletterDefinition": "Blog paylaşımları, topluluk haberleri, vb.", + "AbpConferenceDescription": "ABP Conference, .NET geliştiricilerinin gelişmesi ve toplulukla bağlantı kurması için düzenlenen sanal bir etkinliktir." } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/vi.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/vi.json index 92a808e672..bf19fab9c9 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/vi.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/vi.json @@ -233,9 +233,15 @@ "DisplayName:CommunityIndexPagePoll": "Bình chọn trang chủ cộng đồng", "OrganizationOverview": "Tổng quan về tổ chức", "EmailPreferences": "Tuỳ chọn email", - "DoYouAgreePrivacyPolicy": "Bằng cách nhấp chuột Đặt mua nút bạn đồng ý với Điều kiện Và Chính sách bảo mật.", - "VideoCourses": "Khóa học video", - "Resources": "Tài nguyên" - + "VideoCourses": "Video cần thiết", + "Resources": "Tài nguyên", + "DoYouAgreePrivacyPolicy": "Bằng cách nhấp chuột Đặt mua nút bạn đồng ý với Điều kiện Và Chính sách bảo mật.", + "PromotionalOffers": "Mời quảng cáo", + "PromotionalOffersDefinition": "Giảm giá, chiến dịch theo mùa, v.v.", + "EventsDefinition": "Community Talks, Hội thảo trên web, Hội nghị ABP .NET, v.v.", + "ReleaseNotesDefinition": "Các bản phát hành nền tảng ABP.IO, sản phẩm mới, v.v.", + "Newsletter": "Bản tin", + "NewsletterDefinition": "Bài đăng trên blog, tin tức cộng đồng, v.v.", + "AbpConferenceDescription": "Hội ABP Conference là một sự kiện ảo dành cho các nhà phát triển .NET tìm hiểu và kết nối với cộng đồng." } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/zh-Hans.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/zh-Hans.json index cfc784a304..f30ff18f2a 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/zh-Hans.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/zh-Hans.json @@ -234,9 +234,15 @@ "DisplayName:CommunityIndexPagePoll": "社区首页投票", "OrganizationOverview": "组织概况", "EmailPreferences": "电子邮件首选项", - "DoYouAgreePrivacyPolicy": "通过点击 订阅 按钮表示您同意 条款 和 隐私政策。", - "VideoCourses": "视频课程", - "Resources": "资源" - + "VideoCourses": "必备视频", + "Resources": "资源", + "DoYouAgreePrivacyPolicy": "通过点击 订阅 按钮表示您同意 条款 和 隐私政策。", + "PromotionalOffers": "促销优惠", + "PromotionalOffersDefinition": "折扣、季节性活动等", + "EventsDefinition": "社区讲座、网络研讨会、ABP .NET 会议等。", + "ReleaseNotesDefinition": "ABP.IO平台发布、新产品等", + "Newsletter": "通讯", + "NewsletterDefinition": "博客文章、社区新闻等。", + "AbpConferenceDescription": "ABP Conference .NET 开发人员学习和与社区联系的虚拟活动。" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/zh-Hant.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/zh-Hant.json index 3569f697b4..ff0229f81e 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/zh-Hant.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/zh-Hant.json @@ -235,8 +235,14 @@ "OrganizationOverview": "组织概况", "EmailPreferences": "电子邮件首选项", "DoYouAgreePrivacyPolicy": "通过点击 订阅 按钮表示您同意 条款 和 隐私政策。", - "VideoCourses": "视频课程", - "Resources": "资源" - + "VideoCourses": "必备视频", + "Resources": "资源", + "PromotionalOffers": "促销优惠", + "PromotionalOffersDefinition": "折扣、季节性活动等", + "EventsDefinition": "社区讲座、网络研讨会、ABP .NET 会议等。", + "ReleaseNotesDefinition": "ABP.IO平台发布、新产品等", + "Newsletter": "通讯", + "NewsletterDefinition": "博客文章、社区新闻等。", + "AbpConferenceDescription": "ABP Conference .NET 开发人员学习和与社区联系的虚拟活动。" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/ar.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/ar.json index aac43a6464..937a2945c9 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/ar.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/ar.json @@ -813,6 +813,7 @@ "Characters": "الشخصيات", "Topic": "عنوان", "SendUsEmail": "أرسل لنا البريد الإلكتروني", - "ErrorExceptionMessage": "حدث خطأ أثناء معالجة طلبك" + "ErrorExceptionMessage": "حدث خطأ أثناء معالجة طلبك", + "WatchTakeCodeGeneration": "شاهد فيديو \"استكشاف إمكانات إنشاء الأكواد البرمجية: ABP Suite\"!" } } diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/cs.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/cs.json index 8c472ac4d4..8ac60d922b 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/cs.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/cs.json @@ -428,6 +428,7 @@ "Characters": "Postavy", "Topic": "Téma", "SendUsEmail": "Pošlete nám e-mail", - "ErrorExceptionMessage": "Při zpracování vašeho požadavku nastala chyba" + "ErrorExceptionMessage": "Při zpracování vašeho požadavku nastala chyba", + "WatchTakeCodeGeneration": "Podívejte se na video „Prozkoumejte potenciál generování kódu: ABP Suite“!" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/de.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/de.json index a58f3fecd5..6d8ce28445 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/de.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/de.json @@ -409,6 +409,7 @@ "Characters": "Figuren", "Topic": "Thema", "SendUsEmail": "Senden Sie uns eine E-Mail", - "ErrorExceptionMessage": "Während Ihrer Anfrage ist ein Fehler aufgetreten" + "ErrorExceptionMessage": "Während Ihrer Anfrage ist ein Fehler aufgetreten", + "WatchTakeCodeGeneration": "Sehen Sie sich das Video „Entdecken Sie das Potenzial der Codegenerierung: ABP Suite“ an!" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en-GB.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en-GB.json index 474ca58f08..a2385ac551 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en-GB.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en-GB.json @@ -117,6 +117,8 @@ "Previous": "Previous", "YourOrganizationOverview": "Your Organization Overview", "TrainingDetailsHeaderInfo_TrainingHourSingular": "{0} hour", - "TrainingDetailsHeaderInfo_TrainingHour": "{0} hours" + "TrainingDetailsHeaderInfo_TrainingHour": "{0} hours", + "WatchTakeCodeGeneration": "Watch the \"Explore the Potential of Code Generation: ABP Suite\" Video!" + } } \ 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 c1d778a22f..ec301a5674 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json @@ -1201,6 +1201,7 @@ "Characters": "Characters", "Topic": "Topic", "SendUsEmail": "Send us email", - "ErrorExceptionMessage": "An error occurred while processing your request" + "ErrorExceptionMessage": "An error occurred while processing your request", + "WatchTakeCodeGeneration": "Watch the \"Explore the Potential of Code Generation: ABP Suite\" Video!" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/es.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/es.json index 5542dafb3c..d8ef978177 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/es.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/es.json @@ -409,6 +409,7 @@ "Characters": "Caracteres", "Topic": "Tema", "SendUsEmail": "Envíanos un correo electrónico", - "ErrorExceptionMessage": "Se produjo un error al procesar su solicitud." + "ErrorExceptionMessage": "Se produjo un error al procesar su solicitud.", + "WatchTakeCodeGeneration": "¡Mire el vídeo \"Explore el potencial de la generación de código: ABP Suite\"!" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/fi.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/fi.json index f0f3ccfdca..74c8aa204f 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/fi.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/fi.json @@ -210,7 +210,7 @@ "discountForYears": "{0}% de remise pendant {1} an(s)", "WhatHappensWhenLicenseEndsExplanation8": "Luomiasi ABP-projekteja ei tallenneta palvelimillemme. Siksi on sinun vastuullasi säilyttää lataamasi lähdekoodi. Kun lisenssisi vanhenee, luotua ABP-projektin lähdekoodia ei ole mahdollista saada.", "WhenShouldIRenewMyLicense": "Milloin minun pitäisi uusia lisenssini?", - "WhenShouldIRenewMyLicenseExplanation": "Jos uusit lisenssisi 1 kuukauden kuluessa lisenssin vanhenemisesta, seuraavat alennukset sovelletaan: Team License {0} ; Business License {1} ; Enterprise License {2} ; . Jos uusit lisenssisi 1 kuukauden lisenssin päättymispäivän jälkeen, uusimishinta on sama kuin lisenssin ostohinta, eikä uusimisesta saa alennusta.", + "WhenShouldIRenewMyLicenseExplanation": "Jos uusit lisenssisi {3} kuukauden kuluessa lisenssin vanhenemisesta, seuraavat alennukset sovelletaan: Team License {0} ; Business License {1} ; Enterprise License {2} ; . Jos uusit lisenssisi {3} kuukauden lisenssin päättymispäivän jälkeen, uusimishinta on sama kuin lisenssin ostohinta, eikä uusimisesta saa alennusta.", "TrialPlan": "Onko sinulla kokeilusuunnitelma?", "TrialPlanExplanation": "Ei, ABP Commercialille ei ole kokeiluversiota. Voit tarkistaa yhteisön versiosta ymmärtääksesi koodin laadun ja lähestymistavat. Tarjoamme myös 30 päivän rahat takaisin -takuun Team-lisenssille ilman kysymyksiä! Voit pyytää hyvitystä ensimmäisten 30 päivän sisällä. Tarjoamme 60 %:n hyvityksen 30 päivän kuluessa Business- ja Enterprise-lisensseistä. Tämä johtuu siitä, että Business- ja Enterprise-lisenssit sisältävät kaikkien moduulien ja teemojen täyden lähdekoodin.", "DoYouAcceptBankWireTransfer": "Hyväksytkö pankkisiirron?", @@ -849,6 +849,7 @@ "Characters": "Hahmot", "Topic": "Aihe", "SendUsEmail": "Lähetä meille sähköpostia", - "ErrorExceptionMessage": "Virhe pyynnön käsittelyn yhteydessä" + "ErrorExceptionMessage": "Virhe pyynnön käsittelyn yhteydessä", + "WatchTakeCodeGeneration": "Katso \"Tutki koodin luomisen potentiaalia: ABP Suite\" -video!" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/fr.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/fr.json index 4ee15988ef..764f80ecea 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/fr.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/fr.json @@ -428,6 +428,7 @@ "Characters": "Personnages", "Topic": "Sujet", "SendUsEmail": "Envoyez-nous un email", - "ErrorExceptionMessage": "Une erreur s'est produite lors du traitement de votre demande" + "ErrorExceptionMessage": "Une erreur s'est produite lors du traitement de votre demande", + "WatchTakeCodeGeneration": "Regardez la vidéo « Explorez le potentiel de la génération de code : ABP Suite » !" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/hi.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/hi.json index a78342b030..b800260722 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/hi.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/hi.json @@ -427,6 +427,7 @@ "Characters": "पात्र", "Topic": "विषय", "SendUsEmail": "हमें ईमेल भेजें", - "ErrorExceptionMessage": "आपका अनुरोध संसाधित करते समय एक त्रुटि पाई गई" + "ErrorExceptionMessage": "आपका अनुरोध संसाधित करते समय एक त्रुटि पाई गई", + "WatchTakeCodeGeneration": "\"कोड जनरेशन की क्षमता का अन्वेषण करें: एबीपी सुइट\" वीडियो देखें!" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/hr.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/hr.json index ab060a9301..1554b36c1c 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/hr.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/hr.json @@ -1105,6 +1105,7 @@ "Characters": "Likovi", "Topic": "Tema", "SendUsEmail": "Pošaljite nam e-mail", - "ErrorExceptionMessage": "Pojavila se greška prilikom obrade Vašeg zahtjeva" + "ErrorExceptionMessage": "Pojavila se greška prilikom obrade Vašeg zahtjeva", + "WatchTakeCodeGeneration": "Pogledajte video \"Istražite potencijal generiranja koda: ABP Suite\"!" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/hu.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/hu.json index f2e1e58424..acd0593a6c 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/hu.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/hu.json @@ -775,6 +775,7 @@ "Characters": "Karakterek", "Topic": "Téma", "SendUsEmail": "Küldjön nekünk e-mailt", - "ErrorExceptionMessage": "Hiba történt a kérése feldolgozása során" + "ErrorExceptionMessage": "Hiba történt a kérése feldolgozása során", + "WatchTakeCodeGeneration": "Nézze meg a \"Fedezze fel a kódgenerálás lehetőségét: ABP Suite\" videót!" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/is.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/is.json index a548807f8f..3518c8d4e3 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/is.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/is.json @@ -406,6 +406,7 @@ "Characters": "Persónur", "Topic": "Umræðuefni", "SendUsEmail": "Sendu okkur tölvupóst", - "ErrorExceptionMessage": "Villa kom upp við úrvinnslu beiðni þinnar" + "ErrorExceptionMessage": "Villa kom upp við úrvinnslu beiðni þinnar", + "WatchTakeCodeGeneration": "Horfðu á \"Kannaðu möguleika kóðaframleiðslu: ABP Suite\" myndbandið!" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/it.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/it.json index 0e1d74025b..f00bc46199 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/it.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/it.json @@ -427,6 +427,7 @@ "Characters": "Caratteri", "Topic": "Argomento", "SendUsEmail": "Inviaci un'e-mail", - "ErrorExceptionMessage": "Si è verificato un errore durante l'elaborazione della richiesta" + "ErrorExceptionMessage": "Si è verificato un errore durante l'elaborazione della richiesta", + "WatchTakeCodeGeneration": "Guarda il video \"Esplora il potenziale della generazione di codice: ABP Suite\"!" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/nl.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/nl.json index 3bfdd382b8..6154437925 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/nl.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/nl.json @@ -406,6 +406,7 @@ "Characters": "Karakters", "Topic": "Onderwerp", "SendUsEmail": "Stuur ons een e-mail", - "ErrorExceptionMessage": "Er is een fout opgetreden bij het verwerken van uw verzoek" + "ErrorExceptionMessage": "Er is een fout opgetreden bij het verwerken van uw verzoek", + "WatchTakeCodeGeneration": "Bekijk de video 'Ontdek het potentieel van codegeneratie: ABP Suite'!" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/pl-PL.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/pl-PL.json index 6917557f39..b15f746044 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/pl-PL.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/pl-PL.json @@ -406,6 +406,7 @@ "Characters": "Postacie", "Topic": "Temat", "SendUsEmail": "Wyślij nam e-mail", - "ErrorExceptionMessage": "Podczas przetwarzania żądania wystąpił błąd" + "ErrorExceptionMessage": "Podczas przetwarzania żądania wystąpił błąd", + "WatchTakeCodeGeneration": "Obejrzyj film „Odkryj potencjał generowania kodu: pakiet ABP”!" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/pt-BR.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/pt-BR.json index 2bf9956462..0de9c02223 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/pt-BR.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/pt-BR.json @@ -429,6 +429,7 @@ "Characters": "Personagens", "Topic": "Tema", "SendUsEmail": "Envie-nos um e-mail", - "ErrorExceptionMessage": "Um erro ocorreu durante o processamento do seu pedido" + "ErrorExceptionMessage": "Um erro ocorreu durante o processamento do seu pedido", + "WatchTakeCodeGeneration": "Assista ao vídeo \"Explore o potencial de geração de código: ABP Suite\"!" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/ro-RO.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/ro-RO.json index 8f92e45182..76a8ea1391 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/ro-RO.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/ro-RO.json @@ -406,6 +406,7 @@ "Characters": "Personaje", "Topic": "Subiect", "SendUsEmail": "Trimite-ne e-mail", - "ErrorExceptionMessage": "A apărut o eroare în timpul procesării cererii dumneavoastră" + "ErrorExceptionMessage": "A apărut o eroare în timpul procesării cererii dumneavoastră", + "WatchTakeCodeGeneration": "Urmărește videoclipul „Explorați potențialul generării codului: ABP Suite”!" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/ru.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/ru.json index fa8496d3c9..4910783a26 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/ru.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/ru.json @@ -1106,6 +1106,7 @@ "Characters": "Персонажи", "Topic": "Тема", "SendUsEmail": "Отправьте нам электронное письмо", - "ErrorExceptionMessage": "Во время обработки Вашего запроса произошла ошибка" + "ErrorExceptionMessage": "Во время обработки Вашего запроса произошла ошибка", + "WatchTakeCodeGeneration": "Посмотрите видео «Изучите потенциал генерации кода: пакет ABP»!" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/sk.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/sk.json index 9c858ff4ec..ec8be381a8 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/sk.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/sk.json @@ -400,7 +400,7 @@ "WhatHappensWhenLicenseEndsExplanation4": "Po skončení platnosti vašej licencie nemôžete inštalovať nové moduly a témy pridané do platformy ABP Commercial.", "WhatHappensWhenLicenseEndsExplanation5": "Balík ABP Suite nemôžete používať.", "WhatHappensWhenLicenseEndsExplanation6": "Už nemôžete získať prémiovú podporu.", - "WhatHappensWhenLicenseEndsExplanation7": "Ak chcete naďalej využívať tieto výhody, môžete si licenciu predĺžiť (obnoviť). Ak predĺžite svoju licenciu do 30 dní po vypršaní platnosti licencie, budú sa uplatňovať nasledujúce zľavy: Tímová licencia {0}; Obchodná licencia {1}; Podniková licencia {2}", + "WhatHappensWhenLicenseEndsExplanation7": "Ak chcete naďalej využívať tieto výhody, môžete si licenciu predĺžiť (obnoviť). Ak predĺžite svoju licenciu do {3} dní po vypršaní platnosti licencie, budú sa uplatňovať nasledujúce zľavy: Tímová licencia {0}; Obchodná licencia {1}; Podniková licencia {2}", "BlazoriseLicense": "Musíme si kúpiť licenciu Blazorise?", "BlazoriseLicenseExplanation": "Máme dohodu medzi spoločnosťami Volosoft a Megabit, na základe ktorej je licencia Blazorise pribalená k produktom ABP Commercial, preto si naši zákazníci nemusia kupovať ďalšiu licenciu Blazorise.", "MultipleOrganizationInfo": "Pozrite si všetky vaše organizácie", @@ -425,6 +425,7 @@ "Characters": "Postavy", "Topic": "Téma", "SendUsEmail": "Pošlite nám e-mail", - "ErrorExceptionMessage": "Nastala chyba pri spracovaní vašej žiadosti" + "ErrorExceptionMessage": "Nastala chyba pri spracovaní vašej žiadosti", + "WatchTakeCodeGeneration": "Pozrite si video „Preskúmajte potenciál generovania kódu: ABP Suite“!" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/sl.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/sl.json index edc306c9c3..7efdbe6086 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/sl.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/sl.json @@ -406,6 +406,7 @@ "Characters": "Znaki", "Topic": "Tema", "SendUsEmail": "Pošljite nam e-pošto", - "ErrorExceptionMessage": "Pri obdelavi vaše zahteve je prišlo do napake" + "ErrorExceptionMessage": "Pri obdelavi vaše zahteve je prišlo do napake", + "WatchTakeCodeGeneration": "Oglejte si video »Raziščite potencial generiranja kode: zbirka ABP«!" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/tr.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/tr.json index 389f15e81f..c59add8922 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/tr.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/tr.json @@ -1015,6 +1015,7 @@ "Characters": "Karakter", "Topic": "Başlık", "SendUsEmail": "E-posta gönder", - "ErrorExceptionMessage": "İşleminiz gerçekleştirilirken bir hata oluştu" + "ErrorExceptionMessage": "İşleminiz gerçekleştirilirken bir hata oluştu", + "WatchTakeCodeGeneration": "\"Explore the Potential of Code Generation: ABP Suite\" Videosunu izleyin!" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/vi.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/vi.json index 8f6bad0c47..299f6b5ec2 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/vi.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/vi.json @@ -406,6 +406,7 @@ "Characters": "Nhân vật", "Topic": "Đề tài", "SendUsEmail": "Gửi email cho chúng tôi", - "ErrorExceptionMessage": "Đã xảy ra lỗi trong khi xử lý yêu cầu của bạn" + "ErrorExceptionMessage": "Đã xảy ra lỗi trong khi xử lý yêu cầu của bạn", + "WatchTakeCodeGeneration": "Xem video \"Khám phá tiềm năng tạo mã: ABP Suite\"!" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/zh-Hans.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/zh-Hans.json index 9e364cbdd0..68e019ea01 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/zh-Hans.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/zh-Hans.json @@ -159,7 +159,7 @@ "SeeAllModules": "查看所有模块", "ABPCLIExplanation": "ABP CLI(命令行界面)是一种命令行工具,用于执行基于 ABP 的解决方案的一些常用操作。", "ABPSuiteEasilyCURD": "ABP Suite 是一款可让您轻松创建 CRUD 页面的工具", - "WeAreHereToHelp": "我们在这里帮助帮助", "BrowseOrAskQuestion": "您可以浏览我们的帮助主题或搜索常见问题,也可以使用 联系表单向我们提问。", "SearchQuestionPlaceholder": "在常见问题中搜索", "WhatIsTheABPCommercial": "ABP Commercial 是什么?", @@ -447,7 +447,7 @@ "EasilyInstallAndUpgrade": "易于安装和升级", "SupportForum": "支持论坛", "TrustedBy": "值得信赖", - "OurPricing": "我们的定价定价", "Plans": "计划", "NameSurname": "姓名", "Unspecified": "未说明", @@ -462,7 +462,7 @@ "LightDarkAndSemiDarkThemes": "浅色、深色和半深色", "LeptonXThemeExplanation": "Lepton Theme 可根据系统设置更改主题。", "PRO": "专业", - "WelcomeToABPCommercial": "欢迎访问 ABP商业网站!ABP商业网站!", "YourAccountDetails": "您的账户详情", "OrganizationName": "组织名称", "AddDevelopers": "添加开发人员", @@ -549,7 +549,7 @@ "AbpBookDownloadArea_ClaimYourEBook": "申请您的 《掌握 ABP 框架》 电子书", "AddMemberModal_Warning_1": "如果系统中不存在您要添加的用户名,请让您的团队成员在{0}上注册,并与您共享他/她的用户名。", "MyOrganizations_Detail_WelcomeMessage": "欢迎贵组织,{0}", - "MyOrganizations_Detail_OrganizationManagement": "组织管理管理", "OrganizationDisplayName": "组织显示名称", "MyOrganizations_Detail_EditDisplayName": "编辑显示名称", "MyOrganizations_Detail_UpgradeYourLicense": "升级许可证", @@ -603,7 +603,7 @@ "Purchase_TrainingPrice": "培训价格", "Purchase_OnboardingTraining": "引导流程和Web应用程序开发现场培训", "TotalDeveloperPrice": "开发者总价", - "Purchase_PricePerDeveloper": "{0} {1} 每名开发人员", + "Purchase_PricePerDeveloper": "{0} 每名开发人员", "Purchase_IncludedDeveloperInfo": "{0} {1} 包括在内。", "Purchase_LicenseExtraDeveloperPurchaseMessage": "{0}许可包括{1}个开发人员。您可以添加其他开发人员。", "StartupTemplates_Page_Title": "ABP 启动模板", @@ -612,7 +612,7 @@ "MonolithSolutionForDotnet": ".NET的单体(模块化)解决方案", "TrainingDetailsHeaderInfo_TrainingHour": "{0}小时", "Trainings_Content": "培训内容", - "Trial_Page_StartYourFreeTrial": "开始免费试用免费试用", "TrialLicenseFeatures": "您将受益于 ABP 的所有商业功能", "TrialPeriodDays": "您将获得{0}天的团队许可证", "TrialForumSupportIncident": "您将获得{0}次论坛支持事件", @@ -987,7 +987,7 @@ "TrainingPack": "培训包", "TrainingPackDiscount": "培训包折扣", "Purchase_OnboardingTraining_Description": "此实时培训包适用于 8 人班,此折扣仅在购买新许可证时有效。了解更多 ", - "Purchase_Save": "{0}% 节省 {0}% {1} {2}", + "Purchase_Save": "{0}% 节省 {0}% {1}", "RemoveBasket": "从购物篮中取出", "WhyABPIOPlatform?": "为什么选择ABP.IO 平台?", "DocumentAim": "本文档旨在回答这个重大问题:", @@ -1107,6 +1107,7 @@ "Characters": "人物", "Topic": "话题", "SendUsEmail": "给我们发送电子邮件", - "ErrorExceptionMessage": "处理您的请求时发生错误" + "ErrorExceptionMessage": "处理您的请求时发生错误", + "WatchTakeCodeGeneration": "观看“探索代码生成的潜力:ABP Suite”视频!" } } diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/zh-Hant.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/zh-Hant.json index f6f1bc7e1f..7e1e8cd8d4 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/zh-Hant.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/zh-Hant.json @@ -590,7 +590,7 @@ "Purchase_TrainingPrice": "培訓價格", "Purchase_OnboardingTraining": "入職培訓和 Web 應用程式開發現場培訓", "TotalDeveloperPrice": "開發商總價", - "Purchase_PricePerDeveloper": "每個開發者{0} {1}", + "Purchase_PricePerDeveloper": "每個開發者{0}", "Purchase_IncludedDeveloperInfo": "包括 {0} {1}。", "Purchase_LicenseExtraDeveloperPurchaseMessage": "{0} 許可證包括 {1} 開發人員。您可以新增其他開發人員。", "StartupTemplates_Page_Title": "ABP 啟動模板", @@ -969,7 +969,7 @@ "TrainingPack": "訓練包", "TrainingPackDiscount": "培訓包折扣", "Purchase_OnboardingTraining_Description": "此現場培訓套餐適用於 8 名學生的班級,且此折扣僅在使用新許可證購買時有效。了解更多", - "Purchase_Save": "省 {0}% {1} {2}", + "Purchase_Save": "省 {0}% {1}", "RemoveBasket": "從購物籃中取出", "WhyABPIOPlatform?": "為什麼選擇ABP.IO平台?", "DocumentAim": "本文檔旨在回答一個大問題:", @@ -1096,6 +1096,7 @@ "Characters": "人物", "Topic": "话题", "SendUsEmail": "给我们发送电子邮件", - "ErrorExceptionMessage": "处理您的请求时发生错误" + "ErrorExceptionMessage": "处理您的请求时发生错误", + "WatchTakeCodeGeneration": "观看“探索代码生成的潜力:ABP Suite”视频!" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/tr.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/tr.json index cf70e778f3..466e487376 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/tr.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/tr.json @@ -211,6 +211,6 @@ "MarkdownSupported": "Markdown destekleniyor.", "Preview": "Ön izleme", "VisitPage": "Sayfayı ziyaret et", - "VisitVideoCourseDescription": "ABP Framework temellerini öğrenmek için ABP Essentials Video kurslarına göz atın." + "VisitVideoCourseDescription": "ABP Framework temellerini öğrenmek için ABP Başlangıç Video kurslarına göz atın." } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/ar.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/ar.json index b3ef5947de..720cbd39e1 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/ar.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/ar.json @@ -440,7 +440,7 @@ "Index_Page_Testimonial_2": "إطار عمل ABP ليس مجرد إطار عمل، بل هو أيضًا دليل لتطوير/إدارة المشروع، لأنه يوفر تدريبات DDD وGenericRepository وDI وMicroservice وModularity. حتى لو كنت لن تستخدم إطار العمل نفسه، يمكنك تطوير نفسك باستخدام docs.abp.io الذي تم إعداده جيدًا واحترافيًا. (OpenIddict، وRedis، وQuartz، وما إلى ذلك) \n نظرًا لأن العديد من الأشياء تم إنشاؤها مسبقًا، فإنها تقلل من وقت تطوير المشروع بشكل كبير. (مثل صفحة تسجيل الدخول، ومعالجة الاستثناءات، وتصفية البيانات، وتسجيل التدقيق، والترجمة، ووحدة التحكم التلقائية في API وما إلى ذلك) \n كمثال من تطبيقنا، استخدمت ناقل الأحداث المحلي للتحكم في المخزون. لذلك، أنا قادر على إدارة حركات الطلب عن طريق كتابة معالج الأسهم. \n إنه لأمر رائع ألا نضيع الوقت في CreationTime، CreatorId. يتم ملؤها تلقائيًا.", "VideosLoginAndRegisterMessage": "يجب عليك تسجيل الدخول لمشاهدة مقاطع الفيديو. يمكنك إنشاء حساب للمشاهدة إذا لم تقم بذلك.", "Filter": "منقي", - "VideoCourses": "دورات الفيديو", + "VideoCourses": "فيديوهات أساسية", "TestimonialText": "شهادتك", "Position": "الوظيفة", "ExperienceYear": "سنوات الخبرة", @@ -448,7 +448,7 @@ "CompanySize": "حجم الشركة", "Image": "صورتك الشخصية", "TestimonialTitle": "لنسمع شهادتك", - "TestimonialInfo": "رأي عملائنا يهم! أخبرنا عن تجربتك مع منتجنا وخدمتنا.", + "TestimonialInfo": "ما يقوله عملاؤنا مهم! أخبرنا عن تجربتك مع منتجاتنا وخدماتنا. يوصى بكتابة الشهادة باللغة الإنجليزية للوصول إلى جمهور أوسع.", "Country": "البلد", "TestimonialTextPlaceholder": "اكتب قصة موجزة حول كيف ساعدك ABP في بناء وتسليم مشروعك.", "PositionPlaceholder": "وظيفتك في شركتك.", @@ -471,6 +471,7 @@ "LeaveUsReview": "ترك لنا المراجعة", "DocumentationButtonTitle": "توثيق", "ABPVideoCoursesDescription": "تعلم أساسيات إطار عمل برنامج الجسر الأكاديمي من خلال دورات الفيديو التي أنشأها فريق برنامج الجسر الأكاديمي.", - "ABPVideoCoursesPageDescription": "تعلم أساسيات إطار عمل برنامج الجسر الأكاديمي من خلال دورات الفيديو التي أنشأها فريق برنامج الجسر الأكاديمي. في سلسلة الفيديو هذه، ستتعلم المواضيع الأساسية لإطار عمل برنامج الجسر الأكاديمي. تتم كتابة الأرقام الموجودة في كل فيديو وفقًا لتدفق التعلم." + "ABPVideoCoursesPageDescription": "تعلم أساسيات إطار عمل برنامج الجسر الأكاديمي من خلال دورات الفيديو التي أنشأها فريق برنامج الجسر الأكاديمي. في سلسلة الفيديو هذه، ستتعلم المواضيع الأساسية لإطار عمل برنامج الجسر الأكاديمي. تتم كتابة الأرقام الموجودة في كل فيديو وفقًا لتدفق التعلم.", + "ABPVideoCoursesTitle": "مقاطع فيديو ABP الأساسية" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/cs.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/cs.json index cf90598095..2aea81b930 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/cs.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/cs.json @@ -440,7 +440,7 @@ "Index_Page_Testimonial_2": "ABP Framework není jen rámec, je to také návod pro vývoj/řízení projektů, protože poskytuje školení DDD, GenericRepository, DI, Microservice, Modularity. I když se nechystáte používat samotný framework, můžete se vyvíjet s docs.abp.io, který je dobře a profesionálně připraven. (OpenIddict, Redis, Quartz atd.) \n Protože je mnoho věcí předpřipravených, výrazně to zkracuje dobu vývoje projektu. (Jako přihlašovací stránka, zpracování výjimek, filtrování dat-seedování, protokolování auditu, lokalizace, automatický api řadič atd.) \n Jako příklad z naší aplikace jsem pro řízení zásob použil místní sběrnici událostí. Takže jsem schopen řídit pohyby objednávek psaním skladového manipulátoru. \n Je skvělé neztrácet čas pro CreationTime, CreatorId. Vyplňují se automaticky.", "VideosLoginAndRegisterMessage": "Chcete-li sledovat videa, musíte se přihlásit. Můžete si vytvořit účet pro hodinky, pokud ještě nemáte.", "Filter": "Filtr", - "VideoCourses": "Video kurzy", + "VideoCourses": "Základní videa", "TestimonialText": "Vaše hodnocení", "Position": "Pozice", "ExperienceYear": "Roky zkušeností", @@ -448,7 +448,7 @@ "CompanySize": "Velikost společnosti", "Image": "Vaše profilová fotografie", "TestimonialTitle": "Pojďme slyšet vaše hodnocení", - "TestimonialInfo": "To, co naši zákazníci říkají, má význam! Dejte nám vědět o své zkušenosti s naším produktem a servisem.", + "TestimonialInfo": "Na tom, co říkají naši zákazníci, záleží! Řekněte nám o svých zkušenostech s naším produktem a službou. Doporučuje se napsat posudek v angličtině, abyste oslovili širší publikum.", "Country": "Země", "TestimonialTextPlaceholder": "Napište stručný příběh o tom, jak vám ABP pomohlo stavět a dodávat váš projekt.", "PositionPlaceholder": "Vaše pozice ve vaší společnosti.", @@ -471,6 +471,7 @@ "LeaveUsReview": "Zanechte nám recenzi", "DocumentationButtonTitle": "Dokumentace", "ABPVideoCoursesDescription": "Naučte se základy rámce ABP prostřednictvím videokurzů vytvořených týmem ABP.", - "ABPVideoCoursesPageDescription": "Naučte se základy rámce ABP prostřednictvím videokurzů vytvořených týmem ABP. V této sérii videí se naučíte základní témata rámce ABP. Čísla na každém videu jsou napsána podle postupu učení." + "ABPVideoCoursesPageDescription": "Naučte se základy rámce ABP prostřednictvím videokurzů vytvořených týmem ABP. V této sérii videí se naučíte základní témata rámce ABP. Čísla na každém videu jsou napsána podle postupu učení.", + "ABPVideoCoursesTitle": "Základní videa ABP" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/de.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/de.json index e2f7ec37ca..0b0eb71adf 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/de.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/de.json @@ -440,7 +440,7 @@ "Index_Page_Testimonial_2": "ABP Framework ist nicht nur ein Framework, sondern auch eine Anleitung für die Projektentwicklung/-verwaltung, da es DDD-, GenericRepository-, DI-, Microservice- und Modularitätsschulungen bereitstellt. Auch wenn Sie das Framework selbst nicht verwenden, können Sie sich mit docs.abp.io selbst entwickeln, das gut und professionell vorbereitet ist. (OpenIddict, Redis, Quartz usw.) \n Da viele Dinge vorgefertigt sind, verkürzt es die Projektentwicklungszeit erheblich. (Zum Beispiel Anmeldeseite, Ausnahmebehandlung, Datenfilterung/Seeding, Audit-Protokollierung, Lokalisierung, automatischer API-Controller usw.) \n Als Beispiel aus unserer App habe ich Local Event Bus für die Bestandskontrolle verwendet. Daher bin ich in der Lage, Auftragsbewegungen zu verwalten, indem ich „Stock Handler“ schreibe. \n Es ist wunderbar, keine Zeit für CreationTime und CreatorId zu verlieren. Sie werden automatisch ausgefüllt.", "VideosLoginAndRegisterMessage": "Sie müssen sich anmelden, um Videos anzusehen. Sie können ein Konto für die Uhr erstellen, wenn Sie noch kein Konto haben.", "Filter": "Filter", - "VideoCourses": "Videokurse", + "VideoCourses": "Wichtige Videos", "TestimonialText": "Ihre Bewertung", "Position": "Position", "ExperienceYear": "Jahre Erfahrung", @@ -448,7 +448,7 @@ "CompanySize": "Firmengröße", "Image": "Ihr Profilbild", "TestimonialTitle": "Lassen Sie uns Ihre Bewertung hören", - "TestimonialInfo": "Was unsere Kunden sagen, ist wichtig! Erzählen Sie uns von Ihrer Erfahrung mit unserem Produkt und Service.", + "TestimonialInfo": "Was unsere Kunden sagen, zählt! Erzählen Sie uns von Ihren Erfahrungen mit unserem Produkt und unserer Dienstleistung. Es wird empfohlen, den Erfahrungsbericht auf Englisch zu verfassen, um ein breiteres Publikum zu erreichen.", "Country": "Land", "TestimonialTextPlaceholder": "Schreiben Sie eine kurze Geschichte darüber, wie Ihnen ABP geholfen hat, Ihr Projekt zu entwickeln und zu liefern.", "PositionPlaceholder": "Ihre Position in Ihrem Unternehmen.", @@ -471,6 +471,7 @@ "LeaveUsReview": "Hinterlassen Sie uns eine Bewertung", "DocumentationButtonTitle": "Dokumentation", "ABPVideoCoursesDescription": "Lernen Sie die Grundlagen des ABP-Frameworks durch vom ABP-Team erstellte Videokurse.", - "ABPVideoCoursesPageDescription": "Lernen Sie die Grundlagen des ABP-Frameworks durch Videokurse, die vom ABP-Team erstellt wurden. In dieser Videoserie lernen Sie die wesentlichen Themen des ABP-Frameworks kennen. Die Zahlen in jedem Video werden entsprechend dem Lernfluss geschrieben." + "ABPVideoCoursesPageDescription": "Lernen Sie die Grundlagen des ABP-Frameworks durch Videokurse, die vom ABP-Team erstellt wurden. In dieser Videoserie lernen Sie die wesentlichen Themen des ABP-Frameworks kennen. Die Zahlen in jedem Video werden entsprechend dem Lernfluss geschrieben.", + "ABPVideoCoursesTitle": "ABP Essential Videos" } } \ 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 202ace6713..9400c97124 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/en.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/en.json @@ -449,7 +449,7 @@ "FullName": "Full name", "CompanySize": "Company size", "TestimonialTitle": "Let's hear your testimonial", - "TestimonialInfo": "What our customers say matters! Tell us about your experience with our product and service.", + "TestimonialInfo": "What our customers say matters! Tell us about your experience with our product and service. It is recommended to write the testimonial in English to reach a wider audience.", "Country": "Country", "TestimonialTextPlaceholder": "Write a brief story about how ABP helped you build and deliver your project.", "PositionPlaceholder": "Your position at your company", @@ -482,6 +482,7 @@ "LeaveUsReview": "Leave us review", "ABPVideoCoursesDescription": "Learn the basics of the ABP Framework through video courses created by the ABP team.", "ABPVideoCoursesPageDescription": "Learn the basics of the ABP Framework through video courses created by the ABP team. In this video series, you will learn the essential topics of the ABP Framework. The numbers on each video are written according to the learning flow.", - "DocumentationButtonTitle": "Documentation" + "DocumentationButtonTitle": "Documentation", + "ABPVideoCoursesTitle": "ABP Essential Videos" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/es.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/es.json index 851b2584a7..2c647327ef 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/es.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/es.json @@ -440,7 +440,7 @@ "Index_Page_Testimonial_2": "ABP Framework no es solo un marco, también es una guía para el desarrollo/gestión de proyectos, porque proporciona capacitaciones sobre DDD, GenericRepository, DI, Microservice y Modularity. Incluso si no va a utilizar el marco en sí, puede desarrollarlo usted mismo con docs.abp.io, que está bien preparado y profesionalmente. (OpenIddict, Redis, Quartz, etc.) \n Debido a que muchos elementos están prediseñados, acorta significativamente el tiempo de desarrollo del proyecto. (Como página de inicio de sesión, manejo de excepciones, filtrado y siembra de datos, registro de auditoría, localización, controlador de API automático, etc.) \n Como ejemplo de nuestra aplicación, he utilizado Local Event Bus para el control de existencias. Por lo tanto, puedo gestionar los movimientos de pedidos escribiendo el controlador de stock. \n Es maravilloso no perder tiempo con CreationTime, CreatorId. Se llenan automáticamente.", "VideosLoginAndRegisterMessage": "Debes iniciar sesión para ver videos. Puedes crear una cuenta para ver si aún no lo has hecho.", "Filter": "Filtrar", - "VideoCourses": "Cursos en vídeo", + "VideoCourses": "Vídeos esenciales", "TestimonialText": "Tu testimonio", "Position": "Cargo", "ExperienceYear": "Años de experiencia", @@ -448,7 +448,7 @@ "CompanySize": "Tamaño de la empresa", "Image": "Tu foto de perfil", "TestimonialTitle": "Escuchemos tu testimonio", - "TestimonialInfo": "¡Lo que dicen nuestros clientes es importante! Cuéntanos tu experiencia con nuestro producto y servicio.", + "TestimonialInfo": "¡Lo que dicen nuestros clientes importa! Cuéntanos tu experiencia con nuestro producto y servicio. Se recomienda escribir el testimonio en inglés para llegar a un público más amplio.", "Country": "País", "TestimonialTextPlaceholder": "Escribe una breve historia sobre cómo ABP te ayudó a construir y entregar tu proyecto.", "PositionPlaceholder": "Tu posición en tu empresa.", @@ -471,6 +471,7 @@ "LeaveUsReview": "Déjanos tu reseña", "DocumentationButtonTitle": "Documentación", "ABPVideoCoursesDescription": "Aprenda los conceptos básicos del Marco ABP a través de cursos en vídeo creados por el equipo de ABP.", - "ABPVideoCoursesPageDescription": "Aprenda los conceptos básicos del Marco ABP a través de cursos en video creados por el equipo de ABP. En esta serie de videos, aprenderá los temas esenciales del Marco ABP. Los números en cada video están escritos de acuerdo con el flujo de aprendizaje." + "ABPVideoCoursesPageDescription": "Aprenda los conceptos básicos del Marco ABP a través de cursos en video creados por el equipo de ABP. En esta serie de videos, aprenderá los temas esenciales del Marco ABP. Los números en cada video están escritos de acuerdo con el flujo de aprendizaje.", + "ABPVideoCoursesTitle": "Vídeos esenciales de ABP" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/fi.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/fi.json index 708ca7872c..4a63cc389d 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/fi.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/fi.json @@ -440,7 +440,7 @@ "Index_Page_Testimonial_2": "ABP Framework ei ole vain viitekehys, se on myös opastus projektien kehittämiseen/hallintaan, koska se tarjoaa DDD-, GenericRepository-, DI-, Microservice- ja Modularity-koulutuksia. Vaikka et itse käyttäisikään kehystä, voit kehittää itseäsi docs.abp.io:lla, joka on hyvin ja ammattimaisesti valmisteltu. (OpenIddict, Redis, Quartz jne.) \n Koska monet asiat on rakennettu valmiiksi, se lyhentää projektin kehitysaikaa merkittävästi. (Kuten kirjautumissivu, poikkeusten käsittely, tietojen suodatus-kylvö, tarkastusloki, lokalisointi, automaattinen api-ohjain jne.) \n Esimerkkinä sovelluksestamme, olen käyttänyt Local Event Busia varaston hallintaan. Pystyn siis hallitsemaan tilausliikkeitä kirjoittamalla varastokäsittelijäksi. \n On hienoa olla hukkaamatta aikaa CreationTime, CreatorId. Ne täytetään automaattisesti.", "VideosLoginAndRegisterMessage": "Sinun on kirjauduttava sisään katsoaksesi videoita. Voit luoda tilin kellolle, jos et ole vielä tehnyt sitä.", "Filter": "Suodattaa", - "VideoCourses": "Videokurssit", + "VideoCourses": "Tärkeitä videoita", "TestimonialText": "Arvostelusi", "Position": "Asema", "ExperienceYear": "Vuoden kokemus", @@ -448,7 +448,7 @@ "CompanySize": "Yrityksen koko", "Image": "Profiilikuvasi", "TestimonialTitle": "Kuunnellaan arvosteluasi", - "TestimonialInfo": "Mitä asiakkaamme sanovat, on tärkeää! Kerro meille kokemuksestasi tuotteemme ja palvelumme parissa.", + "TestimonialInfo": "Asiakkaidemme sanomilla on väliä!Kerro meille kokemuksistasi tuotteestamme ja palvelustamme.Suosittelemme kirjoittamaan arvostelun englanniksi, jotta tavoitat laajemman yleisön.", "Country": "Maa", "TestimonialTextPlaceholder": "Kirjoita lyhyt tarina siitä, miten ABP auttoi sinua rakentamaan ja toimittamaan projektisi.", "PositionPlaceholder": "Asemasi yrityksessäsi.", @@ -471,6 +471,7 @@ "LeaveUsReview": "Jätä meille arvostelu", "DocumentationButtonTitle": "Dokumentointi", "ABPVideoCoursesDescription": "Opi ABP Frameworkin perusteet ABP-tiimin luomilla videokursseilla.", - "ABPVideoCoursesPageDescription": "Opi ABP Frameworkin perusteet ABP-tiimin luomilla videokursseilla.Tässä videosarjassa opit ABP Frameworkin keskeiset aiheet. Jokaisen videon numerot on kirjoitettu oppimiskulun mukaan." + "ABPVideoCoursesPageDescription": "Opi ABP Frameworkin perusteet ABP-tiimin luomilla videokursseilla.Tässä videosarjassa opit ABP Frameworkin keskeiset aiheet. Jokaisen videon numerot on kirjoitettu oppimiskulun mukaan.", + "ABPVideoCoursesTitle": "ABP Essential Videos" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/fr.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/fr.json index 5b6e9a4bc6..d8278d2aea 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/fr.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/fr.json @@ -440,7 +440,7 @@ "Index_Page_Testimonial_2": "ABP Framework n'est pas seulement un framework, c'est aussi un guide pour le développement/gestion de projets, car il propose des formations DDD, GenericRepository, DI, Microservice, Modularité. Même si vous n'utilisez pas le framework lui-même, vous pouvez vous développer avec docs.abp.io qui est bien préparé de manière professionnelle. (OpenIddict, Redis, Quartz, etc.) \n Parce que de nombreux éléments sont pré-construits, cela réduit considérablement le temps de développement du projet. (Tels que la page de connexion, la gestion des exceptions, le filtrage-ensemencement des données, la journalisation d'audit, la localisation, le contrôleur API automatique, etc.) \n À titre d'exemple de notre application, j'ai utilisé Local Event Bus pour le contrôle des stocks. Ainsi, je suis capable de gérer les mouvements de commandes en écrivant stock handler. \n C'est merveilleux de ne pas perdre de temps pour CreationTime, CreatorId. Ils sont remplis automatiquement.", "VideosLoginAndRegisterMessage": "Vous devez vous connecter pour regarder des vidéos. Vous pouvez créer un compte pour regarder si vous ne l'avez pas encore fait.", "Filter": "Filtre", - "VideoCourses": "Cours vidéo", + "VideoCourses": "Vidéos essentielles", "TestimonialText": "Votre témoignage", "Position": "Poste", "ExperienceYear": "Années d'expérience", @@ -448,7 +448,7 @@ "CompanySize": "Taille de l'entreprise", "Image": "Votre photo de profil", "TestimonialTitle": "Écoutons votre témoignage", - "TestimonialInfo": "Ce que disent nos clients est important ! Parlez-nous de votre expérience avec notre produit et notre service.", + "TestimonialInfo": "Ce que disent nos clients est important ! Parlez-nous de votre expérience avec notre produit et service. Il est recommandé de rédiger le témoignage en anglais pour toucher un public plus large.", "Country": "Pays", "TestimonialTextPlaceholder": "Rédigez une brève histoire sur la manière dont ABP vous a aidé à construire et livrer votre projet.", "PositionPlaceholder": "Votre poste dans votre entreprise.", @@ -471,6 +471,7 @@ "LeaveUsReview": "Laissez-nous votre avis", "DocumentationButtonTitle": "Documentation", "ABPVideoCoursesDescription": "Apprenez les bases du framework ABP grâce à des cours vidéo créés par l'équipe ABP.", - "ABPVideoCoursesPageDescription": "Apprenez les bases du framework ABP à travers des cours vidéo créés par l'équipe ABP. Dans cette série de vidéos, vous apprendrez les sujets essentiels du framework ABP. Les nombres sur chaque vidéo sont écrits en fonction du flux d'apprentissage." + "ABPVideoCoursesPageDescription": "Apprenez les bases du framework ABP à travers des cours vidéo créés par l'équipe ABP. Dans cette série de vidéos, vous apprendrez les sujets essentiels du framework ABP. Les nombres sur chaque vidéo sont écrits en fonction du flux d'apprentissage.", + "ABPVideoCoursesTitle": "Vidéos essentielles du ABP" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/hi.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/hi.json index 7cabbc3206..12113024fa 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/hi.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/hi.json @@ -440,7 +440,7 @@ "Index_Page_Testimonial_2": "एबीपी फ्रेमवर्क न केवल एक ढांचा है, यह परियोजना विकास/प्रबंधन के लिए एक मार्गदर्शन भी है, क्योंकि यह डीडीडी, जेनेरिक रिपोजिटरी, डीआई, माइक्रोसर्विस, मॉड्यूलरिटी प्रशिक्षण प्रदान करता है। भले ही आप स्वयं फ्रेमवर्क का उपयोग नहीं करने जा रहे हैं, आप docs.abp.io के साथ स्वयं को विकसित कर सकते हैं जो अच्छी तरह से और पेशेवर रूप से तैयार है। (OpenIddict, Redis, Quartz आदि) \n चूंकि कई चीजें पहले से निर्मित होती हैं, इसलिए यह परियोजना के विकास के समय को काफी कम कर देता है। (जैसे लॉगिन पेज, अपवाद हैंडलिंग, डेटा फ़िल्टरिंग-सीडिंग, ऑडिट लॉगिंग, स्थानीयकरण, ऑटो एपीआई नियंत्रक इत्यादि) \n हमारे ऐप से एक उदाहरण के रूप में, मैंने स्टॉक नियंत्रण के लिए स्थानीय इवेंट बस का उपयोग किया है। इसलिए, मैं स्टॉक हैंडलर लिखकर ऑर्डर मूवमेंट को प्रबंधित करने में सक्षम हूं। \n CreationTime, CreatorId के लिए समय न बर्बाद करना अद्भुत है। वे स्वचालित रूप से भर जाते हैं.", "VideosLoginAndRegisterMessage": "वीडियो देखने के लिए आपको साइन इन करना होगा. यदि आपने नहीं बनाया है तो आप घड़ी के लिए एक खाता बना सकते हैं।", "Filter": "फ़िल्टर", - "VideoCourses": "वीडियो पाठ्यक्रम", + "VideoCourses": "आवश्यक वीडियो", "TestimonialText": "आपका साक्षात्कार", "Position": "पद", "ExperienceYear": "अनुभव के वर्ष", @@ -448,7 +448,7 @@ "CompanySize": "कंपनी का आकार", "Image": "आपकी प्रोफ़ाइल तस्वीर", "TestimonialTitle": "हम आपका साक्षात्कार सुनें", - "TestimonialInfo": "हमारे ग्राहकों की कहानियाँ महत्वपूर्ण हैं! हमें अपने उत्पाद और सेवा के साथ अपने अनुभव के बारे में बताएं।", + "TestimonialInfo": "हमारे ग्राहक क्या कहते हैं यह मायने रखता है! हमारे उत्पाद और सेवा के साथ अपने अनुभव के बारे में हमें बताएं। व्यापक दर्शकों तक पहुंचने के लिए प्रशंसापत्र को अंग्रेजी में लिखने की सिफारिश की जाती है।", "Country": "देश", "TestimonialTextPlaceholder": "एक संक्षेप कहानी लिखें कि ABP ने आपको अपने परियोजना को बनाने और पहुंचाने में कैसे मदद की।", "PositionPlaceholder": "आपका पद आपकी कंपनी में।", @@ -471,7 +471,7 @@ "LeaveUsReview": "हमें समीक्षा छोड़ें", "DocumentationButtonTitle": "प्रलेखन", "ABPVideoCoursesDescription": "एबीपी टीम द्वारा बनाए गए वीडियो पाठ्यक्रमों के माध्यम से एबीपी फ्रेमवर्क की मूल बातें जानें।", - "ABPVideoCoursesPageDescription": "एबीपी टीम द्वारा बनाए गए वीडियो पाठ्यक्रमों के माध्यम से एबीपी फ्रेमवर्क की मूल बातें सीखें। इस वीडियो श्रृंखला में, आप एबीपी फ्रेमवर्क के आवश्यक विषयों को सीखेंगे। प्रत्येक वीडियो पर नंबर सीखने के प्रवाह के अनुसार लिखे गए हैं।" - + "ABPVideoCoursesPageDescription": "एबीपी टीम द्वारा बनाए गए वीडियो पाठ्यक्रमों के माध्यम से एबीपी फ्रेमवर्क की मूल बातें सीखें। इस वीडियो श्रृंखला में, आप एबीपी फ्रेमवर्क के आवश्यक विषयों को सीखेंगे। प्रत्येक वीडियो पर नंबर सीखने के प्रवाह के अनुसार लिखे गए हैं।", + "ABPVideoCoursesTitle": "एबीपी आवश्यक वीडियो" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/hr.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/hr.json index ccea7431c3..96981e81a3 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/hr.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/hr.json @@ -440,7 +440,7 @@ "Index_Page_Testimonial_2": "ABP Framework nije samo okvir, već je i smjernica za razvoj/upravljanje projektom, jer pruža DDD, GenericRepository, DI, Microservice, Modularity treninge. Čak i ako nećete koristiti sam framework, možete se razvijati s docs.abp.io koji je dobro i profesionalno pripremljen. (OpenIddict, Redis, Quartz itd.) \n Budući da su mnoge stvari unaprijed izgrađene, značajno skraćuje vrijeme razvoja projekta. (Kao što je stranica za prijavu, rukovanje iznimkama, filtriranje-sijanje podataka, bilježenje revizije, lokalizacija, automatski API kontroler itd.) \n Kao primjer iz naše aplikacije, koristio sam lokalnu sabirnicu događaja za kontrolu zaliha. Dakle, mogu upravljati kretanjem narudžbi pisanjem rukovatelja zalihama. \n Divno je ne gubiti vrijeme za CreationTime, CreatorId. Pune se automatski.", "VideosLoginAndRegisterMessage": "Morate se prijaviti za gledanje videa. Možete stvoriti račun za sat ako niste.", "Filter": "filtar", - "VideoCourses": "Video tečajevi", + "VideoCourses": "Osnovni videozapisi", "TestimonialText": "Vaša preporuka", "Position": "Pozicija", "ExperienceYear": "Godine iskustva", @@ -448,7 +448,7 @@ "CompanySize": "Veličina tvrtke", "Image": "Vaša profilna slika", "TestimonialTitle": "Poslušajmo vašu preporuku", - "TestimonialInfo": "Ono što naši klijenti kažu važno je! Podijelite s nama svoje iskustvo s našim proizvodom i uslugom.", + "TestimonialInfo": "Ono što naši klijenti kažu je važno! Recite nam nešto o svom iskustvu s našim proizvodom i uslugom. Preporučamo napisati izjavu na engleskom kako biste dosegli širu publiku.", "Country": "Država", "TestimonialTextPlaceholder": "Napišite kratku priču o tome kako vam je ABP pomogao izgraditi i isporučiti vaš projekt.", "PositionPlaceholder": "Vaša pozicija u tvrtki.", @@ -471,6 +471,7 @@ "LeaveUsReview": "Ostavite nam recenziju", "DocumentationButtonTitle": "Dokumentacija", "ABPVideoCoursesDescription": "Naučite osnove ABP okvira putem video tečajeva koje je izradio ABP tim.", - "ABPVideoCoursesPageDescription": "Naučite osnove ABP okvira putem video tečajeva koje je izradio ABP tim. U ovoj video seriji naučit ćete bitne teme ABP okvira. Brojevi na svakom videu napisani su prema tijeku učenja." + "ABPVideoCoursesPageDescription": "Naučite osnove ABP okvira putem video tečajeva koje je izradio ABP tim. U ovoj video seriji naučit ćete bitne teme ABP okvira. Brojevi na svakom videu napisani su prema tijeku učenja.", + "ABPVideoCoursesTitle": "ABP osnovni videozapisi" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/hu.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/hu.json index db6ee0d603..b7b8eb602c 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/hu.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/hu.json @@ -440,7 +440,7 @@ "Index_Page_Testimonial_2": "Az ABP Framework nem csak keretrendszer, hanem útmutató is a projektfejlesztéshez/menedzsmenthez, mert DDD, GenericRepository, DI, Microservice, Modularity képzéseket biztosít. Még ha nem is magát a keretrendszert használja, fejlesztheti magát a docs.abp.io segítségével, amely jól és szakmailag felkészült. (OpenIddict, Redis, Quartz stb.) \n Mivel sok minden előre be van építve, jelentősen lerövidíti a projektfejlesztési időt. (Például bejelentkezési oldal, kivételkezelés, adatszűrés-seeding, audit naplózás, lokalizáció, automatikus api-vezérlő stb.) \n Alkalmazásunkból példaként a Local Event Bus-t használtam készletkezelésre. Így a rendelési mozgásokat készletkezelő írással tudom kezelni. \n Csodálatos, hogy nem veszít időt a CreationTime, CreatorId használatára. Automatikusan kitöltődnek.", "VideosLoginAndRegisterMessage": "A videók megtekintéséhez be kell jelentkeznie. Ha még nem tette meg, létrehozhat fiókot az órához.", "Filter": "Szűrő", - "VideoCourses": "Videó tanfolyamok", + "VideoCourses": "Alapvető videók", "TestimonialText": "Ajánlásod", "Position": "Pozíció", "ExperienceYear": "Tapasztalati év", @@ -448,7 +448,7 @@ "CompanySize": "Cég mérete", "Image": "Profilképed", "TestimonialTitle": "Halljuk ajánlásod", - "TestimonialInfo": "Ami ügyfeleinktől származik, az fontos! Mesélj nekünk tapasztalataidról a termékünkkel és szolgáltatásunkkal kapcsolatban.", + "TestimonialInfo": "Számít, amit ügyfeleink mondanak!Mondja el termékeinkkel és szolgáltatásainkkal kapcsolatos tapasztalatait. Javasoljuk, hogy az ajánlást angolul írja meg, hogy szélesebb közönséghez jusson el.", "Country": "Ország", "TestimonialTextPlaceholder": "Írj rövid történetet arról, hogyan segített neked az ABP projektépítésben és szállításban.", "PositionPlaceholder": "Pozíciód a vállalatodban.", @@ -471,6 +471,7 @@ "LeaveUsReview": "Hagyjon véleményt nekünk", "DocumentationButtonTitle": "Dokumentáció", "ABPVideoCoursesDescription": "Tanulja meg az ABP Framework alapjait az ABP csapata által készített videó tanfolyamokon.", - "ABPVideoCoursesPageDescription": "Tanulja meg az ABP-keretrendszer alapjait az ABP csapata által készített videotanfolyamokon. Ebben a videósorozatban megismerheti az ABP-keretrendszer alapvető témáit. Az egyes videókon található számok a tanulási folyamatnak megfelelően vannak felírva." + "ABPVideoCoursesPageDescription": "Tanulja meg az ABP-keretrendszer alapjait az ABP csapata által készített videotanfolyamokon. Ebben a videósorozatban megismerheti az ABP-keretrendszer alapvető témáit. Az egyes videókon található számok a tanulási folyamatnak megfelelően vannak felírva.", + "ABPVideoCoursesTitle": "ABP alapvető videók" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/is.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/is.json index 25defedcb2..562f09c178 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/is.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/is.json @@ -440,7 +440,7 @@ "Index_Page_Testimonial_2": "ABP Framework er ekki aðeins rammi, það er líka leiðsögn fyrir þróun/stjórnun verkefna, vegna þess að það veitir DDD, GenericRepository, DI, Microservice, Modularity þjálfun. Jafnvel þó þú ætlir ekki að nota ramma sjálfan þig geturðu þróað sjálfan þig með docs.abp.io sem er vel og faglega undirbúið. (OpenIddict, Redis, Quartz o.s.frv.) \n Þar sem margt er forsmíðað styttir það þróunartíma verkefna verulega. (Svo sem innskráningarsíðu, undantekningarmeðferð, gagnasíun-sáningu, endurskoðunarskráningu, staðfærslu, sjálfvirkan API stjórnandi o.s.frv.) \n Sem dæmi úr appinu okkar hef ég notað Local Event Bus fyrir lagerstýringu. Þannig að ég get stjórnað pöntunarhreyfingum með því að skrifa lager meðhöndlun. \n Það er dásamlegt að missa ekki tíma fyrir CreationTime, CreatorId. Þau fyllast sjálfkrafa.", "VideosLoginAndRegisterMessage": "Þú verður að skrá þig inn til að horfa á myndbönd. Þú getur búið til reikning fyrir úrið ef þú hefur ekki gert það.", "Filter": "Sía", - "VideoCourses": "Vídeónámskeið", + "VideoCourses": "Nauðsynleg myndbönd", "TestimonialText": "Viðmiðun þín", "Position": "Staða", "ExperienceYear": "Reynsluár", @@ -448,7 +448,7 @@ "CompanySize": "Fyrirtækisstærð", "Image": "Prófílmynd þín", "TestimonialTitle": "Hlýtur að heyra viðmiðu þína", - "TestimonialInfo": "Það sem viðskiptavinir okkar segja skiptir máli! Segið okkur frá reynslu þinni með vörum okkar og þjónustu.", + "TestimonialInfo": "Það sem viðskiptavinir okkar segja skiptir máli!Segðu okkur frá reynslu þinni af vörunni okkar og þjónustu. Mælt er með því að skrifa vitnisburðinn á ensku til að ná til breiðari markhóps.", "Country": "Land", "TestimonialTextPlaceholder": "Skrifið stutta sögu um hvernig ABP hjálpaði yður að byggja og afhenda verkefnið ykkar.", "PositionPlaceholder": "Staða þín í fyrirtækinu þínu.", @@ -471,6 +471,7 @@ "LeaveUsReview": "Skildu eftir okkur umsögn", "DocumentationButtonTitle": "Skjöl", "ABPVideoCoursesDescription": "Lærðu grunnatriði ABP Framework í gegnum myndbandsnámskeið búin til af ABP teyminu.", - "ABPVideoCoursesPageDescription": "Lærðu grunnatriði ABP Framework í gegnum myndbandsnámskeið sem ABP teymið bjó til. Í þessari myndbandsseríu muntu læra helstu efni ABP Framework. Tölurnar á hverju myndbandi eru skrifaðar í samræmi við námsflæðið." + "ABPVideoCoursesPageDescription": "Lærðu grunnatriði ABP Framework í gegnum myndbandsnámskeið sem ABP teymið bjó til. Í þessari myndbandsseríu muntu læra helstu efni ABP Framework. Tölurnar á hverju myndbandi eru skrifaðar í samræmi við námsflæðið.", + "ABPVideoCoursesTitle": "ABP nauðsynleg myndbönd" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/it.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/it.json index fd806245f9..4201960c15 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/it.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/it.json @@ -440,7 +440,7 @@ "Index_Page_Testimonial_2": "ABP Framework non è solo un framework, è anche una guida per lo sviluppo/gestione del progetto, poiché fornisce corsi di formazione su DDD, GenericRepository, DI, Microservice e Modularità. Anche se non utilizzerai il framework stesso, puoi svilupparti con docs.abp.io che è ben preparato e professionalmente. (OpenIddict, Redis, Quartz ecc.) \n Poiché molte cose sono precostruite, riduce significativamente i tempi di sviluppo del progetto. (Come pagina di accesso, gestione delle eccezioni, seeding del filtraggio dei dati, registrazione di controllo, localizzazione, controller API automatico ecc.) \n Come esempio tratto dalla nostra app, ho utilizzato Local Event Bus per il controllo delle scorte. Quindi, sono in grado di gestire i movimenti degli ordini scrivendo stock handler. \n È meraviglioso non perdere tempo con CreationTime, CreatorId. Si riempiono automaticamente.", "VideosLoginAndRegisterMessage": "Devi accedere per guardare i video. Se non lo hai già fatto, puoi creare un account per Watch.", "Filter": "Filtro", - "VideoCourses": "Videocorsi", + "VideoCourses": "Video essenziali", "TestimonialText": "La tua testimonianza", "Position": "Posizione", "ExperienceYear": "Anni di esperienza", @@ -448,7 +448,7 @@ "CompanySize": "Dimensione aziendale", "Image": "La tua immagine del profilo", "TestimonialTitle": "Ascoltiamo la tua testimonianza", - "TestimonialInfo": "Ciò che dicono i nostri clienti è importante! ", + "TestimonialInfo": "Ciò che dicono i nostri clienti è importante! Raccontaci la tua esperienza con il nostro prodotto e servizio. Si consiglia di scrivere la testimonianza in inglese per raggiungere un pubblico più ampio.", "Country": "Paese", "TestimonialTextPlaceholder": "Scrivi una breve storia su come ABP ti ha aiutato a costruire e realizzare il tuo progetto. ", "PositionPlaceholder": "La tua posizione nella tua azienda.", @@ -471,6 +471,7 @@ "LeaveUsReview": "Lasciaci una recensione", "DocumentationButtonTitle": "Documentazione", "ABPVideoCoursesDescription": "Apprendi le basi del Framework ABP attraverso corsi video creati dal team ABP.", - "ABPVideoCoursesPageDescription": "Apprendi le basi dell'ABP Framework attraverso corsi video creati dal team ABP. In questa serie di video imparerai gli argomenti essenziali dell'ABP Framework. I numeri su ciascun video sono scritti in base al flusso di apprendimento." + "ABPVideoCoursesPageDescription": "Apprendi le basi dell'ABP Framework attraverso corsi video creati dal team ABP. In questa serie di video imparerai gli argomenti essenziali dell'ABP Framework. I numeri su ciascun video sono scritti in base al flusso di apprendimento.", + "ABPVideoCoursesTitle": "Video essenziali ABP" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/nl.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/nl.json index d27922ff52..9a49e6ab83 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/nl.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/nl.json @@ -440,7 +440,7 @@ "Index_Page_Testimonial_2": "ABP Framework is niet alleen een raamwerk, het is ook een leidraad voor projectontwikkeling/management, omdat het DDD, GenericRepository, DI, Microservice, Modularity trainingen biedt. Zelfs als je het framework zelf niet gaat gebruiken, kun je jezelf ontwikkelen met docs.abp.io dat goed en professioneel is voorbereid. (OpenIddict, Redis, Quartz etc.) \n Omdat veel dingen vooraf zijn gebouwd, verkort dit de projectontwikkelingstijd aanzienlijk. (Zoals inlogpagina, afhandeling van uitzonderingen, gegevensfiltering-zaaien, auditlogboekregistratie, lokalisatie, automatische API-controller enz.) \n Als voorbeeld uit onze app heb ik Local Event Bus gebruikt voor voorraadbeheer. Ik kan dus orderbewegingen beheren door voorraadbeheer te schrijven. \n Het is geweldig om geen tijd te verliezen voor CreationTime, CreatorId. Ze worden automatisch gevuld.", "VideosLoginAndRegisterMessage": "Je moet inloggen om video's te bekijken. Als u dat nog niet heeft gedaan, kunt u een account voor Watch aanmaken.", "Filter": "Filter", - "VideoCourses": "Videocursussen", + "VideoCourses": "Essentiële video's", "TestimonialText": "Jouw getuigenis", "Position": "Positie", "ExperienceYear": "Jarenlange ervaring", @@ -448,7 +448,7 @@ "CompanySize": "Bedrijfsomvang", "Image": "Jouw profiel foto", "TestimonialTitle": "Laten we uw getuigenis horen", - "TestimonialInfo": "Wat onze klanten zeggen, doet ertoe! ", + "TestimonialInfo": "Wat onze klanten zeggen, doet er toe! Vertel ons over uw ervaring met ons product en onze service. Het wordt aanbevolen om de testimonial in het Engels te schrijven om een ​​breder publiek te bereiken.", "Country": "Land", "TestimonialTextPlaceholder": "Schrijf een kort verhaal over hoe ABP u heeft geholpen bij het opzetten en opleveren van uw project. ", "PositionPlaceholder": "Jouw functie binnen jouw bedrijf.", @@ -471,6 +471,7 @@ "LeaveUsReview": "Laat ons een beoordeling achter", "DocumentationButtonTitle": "Documentatie", "ABPVideoCoursesDescription": "Leer de basisprincipes van het ABP Framework via videocursussen gemaakt door het ABP-team.", - "ABPVideoCoursesPageDescription": "Leer de basisprincipes van het ABP Framework via videocursussen gemaakt door het ABP-team. In deze videoserie leer je de essentiële onderwerpen van het ABP Framework. De nummers op elke video zijn geschreven volgens de leerstroom." + "ABPVideoCoursesPageDescription": "Leer de basisprincipes van het ABP Framework via videocursussen gemaakt door het ABP-team. In deze videoserie leer je de essentiële onderwerpen van het ABP Framework. De nummers op elke video zijn geschreven volgens de leerstroom.", + "ABPVideoCoursesTitle": "ABP Essentiële video's" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/pl-PL.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/pl-PL.json index 8bf312c8a6..04af61c847 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/pl-PL.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/pl-PL.json @@ -440,7 +440,7 @@ "Index_Page_Testimonial_2": "ABP Framework to nie tylko framework, to także wytyczne dotyczące opracowywania/zarządzania projektami, ponieważ zapewnia szkolenia z DDD, GenericRepository, DI, Microservice, Modularity. Nawet jeśli nie będziesz korzystał z samego frameworka, możesz rozwijać się dzięki dobrze i profesjonalnie przygotowanemu docs.abp.io. (OpenIddict, Redis, Quartz itp.) \n Ponieważ wiele rzeczy jest gotowych, znacznie skraca to czas opracowywania projektu. (Takie jak strona logowania, obsługa wyjątków, filtrowanie danych, rejestrowanie audytu, lokalizacja, automatyczny kontroler API itp.) \n Jako przykład z naszej aplikacji użyłem lokalnej magistrali zdarzeń do kontroli zapasów. Mogę więc zarządzać ruchami zamówień, pisząc moduł obsługi zapasów. \n Wspaniale jest nie tracić czasu na CreationTime, CreatorId. Są one wypełniane automatycznie.", "VideosLoginAndRegisterMessage": "Aby oglądać filmy, musisz się zalogować. Jeśli jeszcze tego nie zrobiłeś, możesz utworzyć konto na zegarku.", "Filter": "Filtr", - "VideoCourses": "Kursy wideo", + "VideoCourses": "Niezbędne filmy", "TestimonialText": "Twoje świadectwo", "Position": "Pozycja", "ExperienceYear": "lata doświadczenia", @@ -448,7 +448,7 @@ "CompanySize": "Rozmiar firmy", "Image": "Twoje zdjęcie profilowe", "TestimonialTitle": "Posłuchajmy Twojej opinii", - "TestimonialInfo": "To, co mówią nasi klienci, ma znaczenie! ", + "TestimonialInfo": "To, co mówią nasi klienci, ma znaczenie! Opowiedz nam o swoich doświadczeniach z naszymi produktami i usługami. Zalecamy napisanie referencji w języku angielskim, aby dotrzeć do szerszego grona odbiorców.", "Country": "Kraj", "TestimonialTextPlaceholder": "Napisz krótką historię o tym, jak firma ABP pomogła Ci w budowie i realizacji projektu. ", "PositionPlaceholder": "Twoje stanowisko w Twojej firmie.", @@ -471,6 +471,7 @@ "LeaveUsReview": "Zostaw nam recenzję", "DocumentationButtonTitle": "Dokumentacja", "ABPVideoCoursesDescription": "Naucz się podstaw ABP Framework dzięki kursom wideo stworzonym przez zespół ABP.", - "ABPVideoCoursesPageDescription": "Naucz się podstaw Ramy ABP poprzez kursy wideo stworzone przez zespół ABP. W tej serii filmów poznasz podstawowe tematy Ramy ABP. Liczby na każdym filmie są zapisane zgodnie z procesem uczenia się." + "ABPVideoCoursesPageDescription": "Naucz się podstaw Ramy ABP poprzez kursy wideo stworzone przez zespół ABP. W tej serii filmów poznasz podstawowe tematy Ramy ABP. Liczby na każdym filmie są zapisane zgodnie z procesem uczenia się.", + "ABPVideoCoursesTitle": "Niezbędne filmy ABP" } } diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/pt-BR.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/pt-BR.json index b256ff7849..02ade27a61 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/pt-BR.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/pt-BR.json @@ -440,7 +440,7 @@ "Index_Page_Testimonial_2": "O ABP Framework não é apenas um framework, é também uma orientação para desenvolvimento/gerenciamento de projetos, pois fornece treinamentos em DDD, GenericRepository, DI, Microservice, Modularidade. Mesmo que você não vá usar o framework em si, você pode se desenvolver com o docs.abp.io que está bem preparado e profissionalmente. (OpenIddict, Redis, Quartz etc.) \n Como muitas coisas são pré-construídas, ele reduz significativamente o tempo de desenvolvimento do projeto. (Como página de login, tratamento de exceções, propagação de filtragem de dados, registro de auditoria, localização, controlador automático de API, etc.) \n Como exemplo de nosso aplicativo, usei o Local Event Bus para controle de estoque. Portanto, sou capaz de gerenciar os movimentos dos pedidos escrevendo o gerenciador de estoque. \n É maravilhoso não perder tempo com CreationTime, CreatorId. Eles são preenchidos automaticamente.", "VideosLoginAndRegisterMessage": "Você deve fazer login para assistir aos vídeos. Você pode criar uma conta para assistir, caso ainda não o tenha feito.", "Filter": "Filtro", - "VideoCourses": "Cursos em vídeo", + "VideoCourses": "Vídeos essenciais", "TestimonialText": "Seu depoimento", "Position": "Posição", "ExperienceYear": "anos de experiência", @@ -448,7 +448,7 @@ "CompanySize": "Tamanho da empresa", "Image": "Sua foto de perfil", "TestimonialTitle": "Vamos ouvir seu depoimento", - "TestimonialInfo": "O que nossos clientes dizem é importante! ", + "TestimonialInfo": "O que nossos clientes dizem é importante!Conte-nos sobre sua experiência com nosso produto e serviço.Recomenda-se escrever o depoimento em inglês para atingir um público mais amplo.", "Country": "País", "TestimonialTextPlaceholder": "Escreva uma breve história sobre como a ABP ajudou você a construir e entregar seu projeto. ", "PositionPlaceholder": "Sua posição na sua empresa.", @@ -471,6 +471,7 @@ "LeaveUsReview": "Deixe-nos uma avaliação", "DocumentationButtonTitle": "Documentação", "ABPVideoCoursesDescription": "Aprenda os fundamentos do ABP Framework através de cursos em vídeo criados pela equipe ABP.", - "ABPVideoCoursesPageDescription": "Aprenda os fundamentos do Framework ABP por meio de cursos em vídeo criados pela equipe ABP.Nesta série de vídeos, você aprenderá os tópicos essenciais do Framework ABP.Os números em cada vídeo são escritos de acordo com o fluxo de aprendizagem." + "ABPVideoCoursesPageDescription": "Aprenda os fundamentos do Framework ABP por meio de cursos em vídeo criados pela equipe ABP.Nesta série de vídeos, você aprenderá os tópicos essenciais do Framework ABP.Os números em cada vídeo são escritos de acordo com o fluxo de aprendizagem.", + "ABPVideoCoursesTitle": "Vídeos essenciais da ABP" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/ro-RO.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/ro-RO.json index a602d8219c..1f7ad50da1 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/ro-RO.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/ro-RO.json @@ -440,7 +440,7 @@ "Index_Page_Testimonial_2": "ABP Framework nu este doar un cadru, este și un ghid pentru dezvoltarea/managementul proiectelor, deoarece oferă cursuri DDD, GenericRepository, DI, Microservice, Modularity. Chiar dacă nu veți folosi framework-ul în sine, vă puteți dezvolta cu docs.abp.io, care este bine și pregătit profesional. (OpenIddict, Redis, Quartz etc.) \n Deoarece multe lucruri pre-construite, scurtează semnificativ timpul de dezvoltare a proiectului. (De exemplu, pagina de autentificare, gestionarea excepțiilor, filtrarea datelor, înregistrarea auditului, localizarea, controlerul auto api etc.) \n Ca exemplu din aplicația noastră, am folosit Local Event Bus pentru controlul stocurilor. Așadar, pot gestiona mișcările comenzilor scriind handler de stoc. \n Este minunat să nu pierzi timp pentru CreationTime, CreatorId. Acestea sunt completate automat.", "VideosLoginAndRegisterMessage": "Trebuie să vă conectați pentru a viziona videoclipuri. Puteți crea un cont pentru ceas dacă nu ați făcut-o.", "Filter": "Filtru", - "VideoCourses": "Cursuri video", + "VideoCourses": "Videoclipuri esențiale", "TestimonialText": "Marturia ta", "Position": "Poziţie", "ExperienceYear": "Ani de experienta", @@ -448,7 +448,7 @@ "CompanySize": "Marimea companiei", "Image": "Fotografia de profil", "TestimonialTitle": "Să auzim mărturia ta", - "TestimonialInfo": "Ceea ce spun clienții noștri contează! ", + "TestimonialInfo": "Ceea ce spun clienții noștri contează! Spuneți-ne despre experiența dvs. cu produsul și serviciul nostru. Este recomandat să scrieți mărturia în limba engleză pentru a ajunge la un public mai larg.", "Country": "Țară", "TestimonialTextPlaceholder": "Scrieți o scurtă poveste despre modul în care ABP v-a ajutat să vă construiți și să vă livrați proiectul. ", "PositionPlaceholder": "Poziția ta la compania ta.", @@ -471,6 +471,7 @@ "LeaveUsReview": "Lasă-ne o recenzie", "DocumentationButtonTitle": "Documentație", "ABPVideoCoursesDescription": "Aflați elementele de bază ale Cadrului ABP prin cursuri video create de echipa ABP.", - "ABPVideoCoursesPageDescription": "Aflați elementele de bază ale Cadrului ABP prin cursuri video create de echipa ABP. În această serie de videoclipuri, veți învăța subiectele esențiale ale Cadrului ABP. Numerele de pe fiecare videoclip sunt scrise în funcție de fluxul de învățare." + "ABPVideoCoursesPageDescription": "Aflați elementele de bază ale Cadrului ABP prin cursuri video create de echipa ABP. În această serie de videoclipuri, veți învăța subiectele esențiale ale Cadrului ABP. Numerele de pe fiecare videoclip sunt scrise în funcție de fluxul de învățare.", + "ABPVideoCoursesTitle": "Videoclipuri esențiale ABP" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/ru.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/ru.json index 3a74c9ee1c..dd022d4d26 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/ru.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/ru.json @@ -438,7 +438,7 @@ "Index_Page_Testimonial_2": "ABP Framework — это не только платформа, но и руководство по разработке/управлению проектами, поскольку оно обеспечивает обучение DDD, GenericRepository, DI, Microservice и Modularity. ", "VideosLoginAndRegisterMessage": "Чтобы иметь возможность смотреть видео, вам необходимо войти в систему.", "Filter": "Фильтр", - "VideoCourses": "Видео курсы", + "VideoCourses": "Основные видео", "TestimonialText": "Ваш отзыв", "Position": "Позиция", "ExperienceYear": "Годы опыта", @@ -446,7 +446,7 @@ "CompanySize": "Размер компании", "Image": "Изображение вашего профиля", "TestimonialTitle": "Давайте послушаем ваше свидетельство", - "TestimonialInfo": "То, что говорят наши клиенты, имеет значение! ", + "TestimonialInfo": "То, что говорят наши клиенты, имеет значение! Расскажите нам о своем опыте использования наших продуктов и услуг. Рекомендуется писать отзыв на английском языке, чтобы охватить более широкую аудиторию.", "Country": "Страна", "TestimonialTextPlaceholder": "Напишите краткую историю о том, как ABP помогла вам создать и реализовать ваш проект. ", "PositionPlaceholder": "Ваша должность в вашей компании.", @@ -469,6 +469,7 @@ "LeaveUsReview": "Оставьте нам отзыв", "DocumentationButtonTitle": "Документация", "ABPVideoCoursesDescription": "Изучите основы ABP Framework с помощью видеокурсов, созданных командой ABP.", - "ABPVideoCoursesPageDescription": "Изучите основы ABP Framework с помощью видеокурсов, созданных командой ABP. В этой серии видео вы изучите основные темы ABP Framework. Числа в каждом видео написаны в соответствии с потоком обучения." + "ABPVideoCoursesPageDescription": "Изучите основы ABP Framework с помощью видеокурсов, созданных командой ABP. В этой серии видео вы изучите основные темы ABP Framework. Числа в каждом видео написаны в соответствии с потоком обучения.", + "ABPVideoCoursesTitle": "Основные видеоролики АБП" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/sk.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/sk.json index a7b7f08510..e5634acb64 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/sk.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/sk.json @@ -440,7 +440,7 @@ "Index_Page_Testimonial_2": "ABP Framework nie je len rámec, je to aj návod na vývoj/riadenie projektov, pretože poskytuje školenia DDD, GenericRepository, DI, Microservice, Modularity. Aj keď samotný framework nebudete používať, môžete sa rozvíjať pomocou docs.abp.io, ktoré je dobre a profesionálne pripravené. (OpenIddict, Redis, Quartz atď.) \n Pretože je veľa vecí vopred vytvorených, výrazne to skracuje čas vývoja projektu. (Ako prihlasovacia stránka, spracovanie výnimiek, filtrovanie údajov, zaznamenávanie auditov, lokalizácia, automatický api ovládač atď.) \n Ako príklad z našej aplikácie som použil lokálnu zbernicu udalostí na riadenie zásob. Takže som schopný riadiť pohyby objednávok napísaním skladového manipulátora. \n Je úžasné nestrácať čas pre CreationTime, CreatorId. Plnia sa automaticky.", "VideosLoginAndRegisterMessage": "Ak chcete pozerať videá, musíte sa prihlásiť. Ak ešte nemáte účet pre hodinky, môžete si ho vytvoriť.", "Filter": "Filter", - "VideoCourses": "Video kurzy", + "VideoCourses": "Základné videá", "TestimonialText": "Tvoje svedectvo", "Position": "pozícia", "ExperienceYear": "roky skúseností", @@ -448,7 +448,7 @@ "CompanySize": "Veľkosť spoločnosti", "Image": "Váš profilový obrázok", "TestimonialTitle": "Vypočujme si vaše svedectvo", - "TestimonialInfo": "Záleží na tom, čo hovoria naši zákazníci! ", + "TestimonialInfo": "Na tom, čo hovoria naši zákazníci, záleží! Povedzte nám o svojich skúsenostiach s naším produktom a službou. Odporúča sa napísať posudok v angličtine, aby ste oslovili širšie publikum.", "Country": "Krajina", "TestimonialTextPlaceholder": "Napíšte krátky príbeh o tom, ako vám ABP pomohla vybudovať a zrealizovať váš projekt. ", "PositionPlaceholder": "Vaša pozícia vo vašej spoločnosti.", @@ -471,6 +471,7 @@ "LeaveUsReview": "Zanechajte nám recenziu", "DocumentationButtonTitle": "Dokumentácia", "ABPVideoCoursesDescription": "Naučte sa základy rámca ABP prostredníctvom video kurzov vytvorených tímom ABP.", - "ABPVideoCoursesPageDescription": "Naučte sa základy rámca ABP prostredníctvom video kurzov vytvorených tímom ABP. V tejto sérii videí sa naučíte základné témy rámca ABP. Čísla na každom videu sú napísané podľa toku učenia." + "ABPVideoCoursesPageDescription": "Naučte sa základy rámca ABP prostredníctvom video kurzov vytvorených tímom ABP. V tejto sérii videí sa naučíte základné témy rámca ABP. Čísla na každom videu sú napísané podľa toku učenia.", + "ABPVideoCoursesTitle": "Základné videá ABP" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/sl.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/sl.json index c167a21998..2b0b8274ec 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/sl.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/sl.json @@ -440,7 +440,7 @@ "Index_Page_Testimonial_2": "Ogrodje ABP ni le ogrodje, je tudi vodilo za razvoj/upravljanje projektov, saj zagotavlja usposabljanja DDD, GenericRepository, DI, Microservice, Modularity. Tudi če ne boste uporabljali samega ogrodja, se lahko razvijate z docs.abp.io, ki je dobro in strokovno pripravljen. (OpenIddict, Redis, Quartz itd.) \n Ker je veliko stvari vnaprej zgrajenih, znatno skrajša čas razvoja projekta. (Kot so prijavna stran, obravnavanje izjem, filtriranje-sejanje podatkov, revizijsko beleženje, lokalizacija, samodejni krmilnik api itd.) \n Kot primer iz naše aplikacije sem za nadzor zalog uporabil lokalno vodilo dogodkov. Tako lahko upravljam premike naročil s pisanjem programa za obdelavo zalog. \n Čudovito je ne izgubljati časa za CreationTime, CreatorId. Polnijo se samodejno.", "VideosLoginAndRegisterMessage": "Za ogled videoposnetkov se morate prijaviti. Če ga še niste, lahko ustvarite račun za uro.", "Filter": "Filter", - "VideoCourses": "Video tečaji", + "VideoCourses": "Bistveni videoposnetki", "TestimonialText": "Vaše pričevanje", "Position": "Položaj", "ExperienceYear": "leta izkušenj", @@ -448,7 +448,7 @@ "CompanySize": "Velikost podjetja", "Image": "Vaša profilna slika", "TestimonialTitle": "Slišimo vaše pričevanje", - "TestimonialInfo": "Pomembno je, kaj pravijo naše stranke! ", + "TestimonialInfo": "Pomembno je, kaj pravijo naše stranke! Povejte nam o svojih izkušnjah z našim izdelkom in storitvijo. Priporočljivo je, da izjavo napišete v angleščini, da dosežete širše občinstvo.", "Country": "Država", "TestimonialTextPlaceholder": "Napišite kratko zgodbo o tem, kako vam je ABP pomagal zgraditi in izvesti vaš projekt. ", "PositionPlaceholder": "Vaš položaj v vašem podjetju.", @@ -471,6 +471,7 @@ "LeaveUsReview": "Pustite nam oceno", "DocumentationButtonTitle": "Dokumentacija", "ABPVideoCoursesDescription": "Naučite se osnov ogrodja ABP prek video tečajev, ki jih je ustvarila ekipa ABP.", - "ABPVideoCoursesPageDescription": "Naučite se osnov ogrodja ABP prek video tečajev, ki jih je ustvarila ekipa ABP. V tej seriji videoposnetkov se boste naučili bistvenih tem ogrodja ABP. Številke na vsakem videoposnetku so zapisane glede na potek učenja." + "ABPVideoCoursesPageDescription": "Naučite se osnov ogrodja ABP prek video tečajev, ki jih je ustvarila ekipa ABP. V tej seriji videoposnetkov se boste naučili bistvenih tem ogrodja ABP. Številke na vsakem videoposnetku so zapisane glede na potek učenja.", + "ABPVideoCoursesTitle": "ABP Essential Videos" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/tr.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/tr.json index 6df43d381d..5885bc8556 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/tr.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/tr.json @@ -387,14 +387,14 @@ "LeptonXLiteThemeInfo": " Modern ve şık bir Bootstrap UI teması. Üretime hazır bir UI temasına sahip olmak istiyorsanız idealdir. Bu en yeni temadır ve varsayılandır.", "BasicThemeInfo": "Sade Bootstrap renkleri ve stilleri ile minimalist UI teması. Kendi UI temanızı oluşturacaksanız idealdir.", "Details": "Detaylar", - "TestimonialText": "Referans yazısı", + "TestimonialText": "Tecrübenizi yazın", "Position": "Ünvan", "ExperienceYear": "Sektörel deneyim", "FullName": "Ad soyad", "CompanySize": "Şirket büyüklüğü", "Image": "Profil resmi", - "TestimonialTitle": "Referanslarınızı paylaşın", - "TestimonialInfo": "Müşterilerimizin ne dediği önemlidir!", + "TestimonialTitle": "Tecrübelerinizi paylaşın", + "TestimonialInfo": "Müşterilerimizin ne dediği önemlidir! Ürün ve hizmetimizle ilgili deneyiminizi bize anlatın. Daha geniş bir kitleye ulaşmak için tecrübelerinizi İngilizce yazmanız önerilir.", "Country": "Ülke", "TestimonialTextPlaceholder": "ABP'nin projenizi oluşturmanıza nasıl yardımcı olduğu hakkında kısa bir hikaye yazın.", "PositionPlaceholder": "Şirketinizdeki pozisyonunuz", @@ -404,12 +404,12 @@ "SelectCompanySizePlaceholder": "Şirketinizin çalışan sayısı", "ImagePlaceholder": "Profil resminiz", "SelectCountryPlaceholder": "Ülkeniz", - "YouAreNotAuthorizedToWriteTestimonial": "Referans mektubu yazabilmek için giriş yapmalısınız.", + "YouAreNotAuthorizedToWriteTestimonial": "Tecrübelerinizi paylaşabilmek için giriş yapmalısınız.", "UnAuthorizeTestimonialInfo": "Fikriniz bizim için önemli! Paylaşmak için giriş yapınız.", "TheFileIsTooLargeForImage": "Profil resminiz 1 MB'tan fazla olamaz.", "ThisExtensionIsNotAllowedForImage": "Bu dosya uzantısınız izin verilmiyor.", "FileUploadError": "Dosya yükleme hatası", - "TestimonialSend": "Referansınızı paylaştığınız için teşekkürler!", + "TestimonialSend": "Tecrübelerinizi paylaştığınız için teşekkürler!", "Title": "Başlık", "TitlePlaceholder": "Yazılım Geliştiricisi, CTO vb.", "Characters": "karakter", @@ -419,7 +419,7 @@ "Follow the links below": "Aşağıdaki bağlantıları takip edin", "BootstrapCardTitle": "Bu örnek, ABP bootstrap card tag helper tarafından oluşturulmuştur.", "GoSomewhere": "Buraya Git →", - "ABPTestimonialDescription": "ABP Framework: Referanslarınızı dinleyelim", + "ABPTestimonialDescription": "ABP Framework: Tecrübelerinizi dinleyelim", "NotValidEmailAddress": "Geçerli bir e-posta adresi giriniz.", "EmailAddressMaxLength": "E-posta maksimum uzunluğu 255 karakter olmalıdır.", "EmailAddressRequired": "E-posta alanı zorunludur.", @@ -429,9 +429,10 @@ "GenderRequired": "Cinsiyet alanı zorunludur.", "LeaveUsReview": "Yorumunuzu paylaşın", "BuildingMicroserviceSolutionsShortDescription": "Bu kitap, ABP Framework kullanarak mikroservis tabanlı uygulamalar geliştirmek ve yönetmek için bir başvuru rehberidir.", - "VideoCourses": "Video Kurslar", + "VideoCourses": "Başlangıç Videoları", "DocumentationButtonTitle": "Dokümantasyon", "ABPVideoCoursesDescription": "ABP ekibi tarafından oluşturulan video kursları aracılığıyla ABP Framework temellerini öğrenin.", - "ABPVideoCoursesPageDescription": "ABP ekibi tarafından oluşturulan video kursları aracılığıyla ABP Framewok temellerini öğrenin. Bu video serisinde ABP Framewokünün temel konularını öğreneceksiniz. Her videodaki sayılar öğrenme akışına göre yazılmıştır." + "ABPVideoCoursesPageDescription": "ABP ekibi tarafından oluşturulan video kursları aracılığıyla ABP Framewok temellerini öğrenin. Bu video serisinde ABP Framework'ün temel konularını öğreneceksiniz. Videolardaki sayılar, öğrenme sırasına göre yazılmıştır.", + "ABPVideoCoursesTitle": "ABP Başlangıç Videoları" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/vi.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/vi.json index 44d686e0ee..6a31739036 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/vi.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/vi.json @@ -440,7 +440,7 @@ "Index_Page_Testimonial_2": "ABP Framework không chỉ là một framework mà còn là một hướng dẫn để phát triển/quản lý dự án vì nó cung cấp các khóa đào tạo về DDD, GenericRepository, DI, Microservice, moduleity. Ngay cả khi bạn không sử dụng framework, bạn vẫn có thể tự phát triển với docs.abp.io được chuẩn bị kỹ lưỡng và chuyên nghiệp. (OpenIddict, Redis, Quartz, v.v.) \n Bởi vì có nhiều thứ được xây dựng sẵn nên nó rút ngắn đáng kể thời gian phát triển dự án. (Chẳng hạn như trang đăng nhập, xử lý ngoại lệ, lọc dữ liệu, ghi nhật ký kiểm tra, bản địa hóa, bộ điều khiển api tự động, v.v.) \n Là một ví dụ từ ứng dụng của chúng tôi, tôi đã sử dụng Local Event Bus để kiểm soát hàng tồn kho. Vì vậy, tôi có thể quản lý việc di chuyển đơn hàng bằng cách viết trình xử lý hàng tồn kho. \n Thật tuyệt vời khi không lãng phí thời gian cho CreationTime, CreatorId. Chúng được điền tự động.", "VideosLoginAndRegisterMessage": "Bạn phải đăng nhập để xem video. Bạn có thể tạo một tài khoản để xem nếu chưa có.", "Filter": "Lọc", - "VideoCourses": "Khóa học video", + "VideoCourses": "Video cần thiết", "TestimonialText": "Lời chứng thực của bạn", "Position": "Chức vụ", "ExperienceYear": "Số năm kinh nghiệm", @@ -448,7 +448,7 @@ "CompanySize": "Quy mô công ty", "Image": "Hình ảnh cá nhân của bạn", "TestimonialTitle": "Hãy nghe lời chứng thực của bạn", - "TestimonialInfo": "Những gì khách hàng của chúng tôi nói là quan trọng! ", + "TestimonialInfo": "Những gì khách hàng nói là quan trọng! Hãy cho chúng tôi biết về trải nghiệm của bạn với sản phẩm và dịch vụ của chúng tôi. Bạn nên viết lời chứng thực bằng tiếng Anh để tiếp cận nhiều đối tượng hơn.", "Country": "Quốc gia", "TestimonialTextPlaceholder": "Viết một câu chuyện ngắn gọn về cách ABP đã giúp bạn xây dựng và thực hiện dự án của mình. ", "PositionPlaceholder": "Vị trí của bạn tại công ty của bạn.", @@ -471,6 +471,7 @@ "LeaveUsReview": "Để lại cho chúng tôi xem xét", "DocumentationButtonTitle": "Tài liệu", "ABPVideoCoursesDescription": "Tìm hiểu những kiến ​​thức cơ bản về Khung ABP thông qua các khóa học video do nhóm ABP tạo.", - "ABPVideoCoursesPageDescription": "Tìm hiểu những kiến ​​thức cơ bản về Khung ABP thông qua các khóa học video do nhóm ABP tạo ra. Trong loạt video này, bạn sẽ tìm hiểu các chủ đề thiết yếu của Khung ABP. Các con số trên mỗi video được viết theo quy trình học tập." + "ABPVideoCoursesPageDescription": "Tìm hiểu những kiến ​​thức cơ bản về Khung ABP thông qua các khóa học video do nhóm ABP tạo ra. Trong loạt video này, bạn sẽ tìm hiểu các chủ đề thiết yếu của Khung ABP. Các con số trên mỗi video được viết theo quy trình học tập.", + "ABPVideoCoursesTitle": "Video cần thiết của ABP" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/zh-Hans.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/zh-Hans.json index 2899f9c09f..7f440cf205 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/zh-Hans.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/zh-Hans.json @@ -442,7 +442,7 @@ "Index_Page_Testimonial_2": "ABP Framework 不仅仅是一个框架,它还是项目开发/管理的指南,因为它提供了 DDD、GenericRepository、DI、Microservice、Modularity 培训。即使你不打算使用框架本身,你也可以通过 docs.abp.io 进行自我开发,它为你提供了精心准备的专业培训。(OpenIddict、Redis、Quartz 等)。\n因为很多东西都是预置的,所以大大缩短了项目开发时间。(如登录页面、异常处理、数据过滤-播种、审计日志、本地化、自动 api 控制器等)。\n以我们的应用程序为例,我将本地事件总线用于库存控制。因此,我可以通过编写库存处理程序来管理订单的变动。\n创建时间、CreatorId 不会浪费时间,它们会自动填入。它们会自动填充。", "VideosLoginAndRegisterMessage": "您必须登录后才能观看视频。如果您还没有注册,可以创建一个账户进行观看。", "Filter": "筛选", - "VideoCourses": "视频课程", + "VideoCourses": "必备视频", "TestimonialText": "您的感言", "Position": "位置", "ExperienceYear": "多年经验", @@ -450,7 +450,7 @@ "CompanySize": "公司规模", "Image": "你的头像", "TestimonialTitle": "让我们听听您的感言", - "TestimonialInfo": "客户的评价很重要!", + "TestimonialInfo": "客户的评价很重要!告诉我们您对我们的产品和服务的体验。建议用英语撰写推荐,以覆盖更广泛的受众。", "Country": "国家", "TestimonialTextPlaceholder": "写一个关于 ABP 如何帮助您构建和交付项目的简短故事。 ", "PositionPlaceholder": "您在公司的职位。", @@ -473,6 +473,7 @@ "LeaveUsReview": "给我们留下评论", "DocumentationButtonTitle": "文档", "ABPVideoCoursesDescription": "通过 ABP 团队创建的视频课程了解 ABP 框架的基础知识", - "ABPVideoCoursesPageDescription": "通过ABP团队创建的视频课程学习ABP框架的基础知识。在本视频系列中,您将学习ABP框架的基本主题。每个视频上的数字都是根据学习流程编写的。" + "ABPVideoCoursesPageDescription": "通过ABP团队创建的视频课程学习ABP框架的基础知识。在本视频系列中,您将学习ABP框架的基本主题。每个视频上的数字都是根据学习流程编写的。", + "ABPVideoCoursesTitle": "ABP 基本视频" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/zh-Hant.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/zh-Hant.json index da84769319..e7977f4405 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/zh-Hant.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/zh-Hant.json @@ -442,7 +442,7 @@ "Index_Page_Testimonial_2": "ABP Framework不只是一個框架,它也是專案開發/管理的指南,因為它提供了DDD、GenericRepository、DI、Microservice、Modularity培訓。即使您不打算使用框架本身,您也可以使用經過充分專業準備的 docs.abp.io 進行開發。 (OpenIddict、Redis、Quartz 等) \n由於許多東西是預先建造的,因此它大大縮短了專案開發時間。 (例如登入頁面、異常處理、資料過濾播種、審核日誌記錄、本地化、自動 api 控制器等) \n作為我們應用程式的範例,我使用本地事件總線進行庫存控制。因此,我可以透過編寫庫存處理程序來管理訂單變更。 \n不浪費時間給CreationTime、CreatorId真是太好了。它們會自動填充。", "VideosLoginAndRegisterMessage": "您必須登入才能觀看影片。如果您還沒有,您可以建立手錶帳戶。", "Filter": "篩選", - "VideoCourses": "視訊課程", + "VideoCourses": "必备视频", "TestimonialText": "您的感言", "Position": "位置", "ExperienceYear": "多年经验", @@ -450,7 +450,7 @@ "CompanySize": "公司规模", "Image": "你的头像", "TestimonialTitle": "让我们听听您的感言", - "TestimonialInfo": "客户的评价很重要!", + "TestimonialInfo": "客户的评价很重要!告诉我们您对我们的产品和服务的体验。建议用英语撰写推荐,以覆盖更广泛的受众。", "Country": "国家", "TestimonialTextPlaceholder": "写一个关于 ABP 如何帮助您构建和交付项目的简短故事。 ", "PositionPlaceholder": "您在公司的职位。", @@ -473,6 +473,7 @@ "LeaveUsReview": "给我们留下评论", "DocumentationButtonTitle": "文档", "ABPVideoCoursesDescription": "通过 ABP 团队创建的视频课程了解 ABP 框架的基础知识。", - "ABPVideoCoursesPageDescription": "通过ABP团队创建的视频课程学习ABP框架的基础知识。在本视频系列中,您将学习ABP框架的基本主题。每个视频上的数字都是根据学习流程编写的。" + "ABPVideoCoursesPageDescription": "通过ABP团队创建的视频课程学习ABP框架的基础知识。在本视频系列中,您将学习ABP框架的基本主题。每个视频上的数字都是根据学习流程编写的。", + "ABPVideoCoursesTitle": "ABP 基本视频" } } \ No newline at end of file diff --git a/docs/en/API/Auto-API-Controllers.md b/docs/en/API/Auto-API-Controllers.md index a81da00b98..ee7c068bec 100644 --- a/docs/en/API/Auto-API-Controllers.md +++ b/docs/en/API/Auto-API-Controllers.md @@ -214,3 +214,6 @@ services.Configure(options => options.ControllersToRemove.Add(typeof(AbpLanguagesController)); }); ```` +## See Also + +* [Video tutorial](https://abp.io/video-courses/essentials/auto-api-controllers) \ No newline at end of file diff --git a/docs/en/Application-Services.md b/docs/en/Application-Services.md index 3593b43845..0bd71f08c9 100644 --- a/docs/en/Application-Services.md +++ b/docs/en/Application-Services.md @@ -562,3 +562,7 @@ namespace MyProject.Test Lifetime of application services are [transient](Dependency-Injection.md) and they are automatically registered to the dependency injection system. +## See Also + +* [Video tutorial Part-1](https://abp.io/video-courses/essentials/application-services-part-1) +* [Video tutorial Part-2](https://abp.io/video-courses/essentials/application-services-part-2) \ No newline at end of file diff --git a/docs/en/Authorization.md b/docs/en/Authorization.md index 063af84708..37e50279e9 100644 --- a/docs/en/Authorization.md +++ b/docs/en/Authorization.md @@ -473,3 +473,4 @@ Configure(options => * [Permission Management Module](Modules/Permission-Management.md) * [ASP.NET Core MVC / Razor Pages JavaScript Auth API](UI/AspNetCore/JavaScript-API/Auth.md) * [Permission Management in Angular UI](UI/Angular/Permission-Management.md) +* [Video tutorial](https://abp.io/video-courses/essentials/authorization) \ No newline at end of file diff --git a/docs/en/Background-Workers.md b/docs/en/Background-Workers.md index 6206e2fbd1..06535cccfc 100644 --- a/docs/en/Background-Workers.md +++ b/docs/en/Background-Workers.md @@ -72,7 +72,7 @@ public class PassiveUserCheckerWorker : AsyncPeriodicBackgroundWorkerBase } ```` -* `AsyncPeriodicBackgroundWorkerBase` uses the `AbpTimer` (a thread-safe timer) object to determine **the period**. We can set its `Period` property in the constructor. +* `AsyncPeriodicBackgroundWorkerBase` uses the `AbpAsyncTimer` (a thread-safe timer) object to determine **the period**. We can set its `Period` property in the constructor. * It required to implement the `DoWorkAsync` method to **execute** the periodic work. * It is a good practice to **resolve dependencies** from the `PeriodicBackgroundWorkerContext` instead of constructor injection. Because `AsyncPeriodicBackgroundWorkerBase` uses a `IServiceScope` that is **disposed** when your work finishes. * `AsyncPeriodicBackgroundWorkerBase` **catches and logs exceptions** thrown by the `DoWorkAsync` method. diff --git a/docs/en/Best-Practices/Application-Services.md b/docs/en/Best-Practices/Application-Services.md index 309b264522..c209f01c5e 100644 --- a/docs/en/Best-Practices/Application-Services.md +++ b/docs/en/Best-Practices/Application-Services.md @@ -228,4 +228,9 @@ This method votes a question and returns the current score of the question. * The current module has only reference to the application contracts of the used module. +## See Also + +* [Video tutorial Part-1](https://abp.io/video-courses/essentials/application-services-part-1) +* [Video tutorial Part-2](https://abp.io/video-courses/essentials/application-services-part-2) + diff --git a/docs/en/Best-Practices/Data-Transfer-Objects.md b/docs/en/Best-Practices/Data-Transfer-Objects.md index 5d6409af7d..cd3a34513a 100644 --- a/docs/en/Best-Practices/Data-Transfer-Objects.md +++ b/docs/en/Best-Practices/Data-Transfer-Objects.md @@ -6,4 +6,8 @@ * **Do** define DTO members with **public getter and setter**. * **Do** use **data annotations** for **validation** on the properties of DTOs those are inputs of the service. * **Do** not add any **logic** into DTOs except implementing `IValidatableObject` when necessary. -* **Do** mark all DTOs as **[Serializable]** since they are already serializable and developers may want to binary serialize them. \ No newline at end of file +* **Do** mark all DTOs as **[Serializable]** since they are already serializable and developers may want to binary serialize them. + +## See Also + +* [Video tutorial](https://abp.io/video-courses/essentials/data-transfer-objects) \ No newline at end of file diff --git a/docs/en/Best-Practices/Domain-Services.md b/docs/en/Best-Practices/Domain-Services.md index e651086673..bb43ee9025 100644 --- a/docs/en/Best-Practices/Domain-Services.md +++ b/docs/en/Best-Practices/Domain-Services.md @@ -2,3 +2,6 @@ > **This document is not ready yet. Please see the [Domain Services](../Domain-Services.md) document.** +## See Also + +* [Video tutorial](https://abp.io/video-courses/essentials/domain-services) \ No newline at end of file diff --git a/docs/en/Best-Practices/Entities.md b/docs/en/Best-Practices/Entities.md index 5a8c07c075..b16234d52b 100644 --- a/docs/en/Best-Practices/Entities.md +++ b/docs/en/Best-Practices/Entities.md @@ -154,4 +154,8 @@ public class IssueLabel : Entity ### References * Effective Aggregate Design by Vaughn Vernon - http://dddcommunity.org/library/vernon_2011 \ No newline at end of file + http://dddcommunity.org/library/vernon_2011 + + ## See Also + +* [Video tutorial](https://abp.io/video-courses/essentials/entities) \ No newline at end of file diff --git a/docs/en/Best-Practices/Entity-Framework-Core-Integration.md b/docs/en/Best-Practices/Entity-Framework-Core-Integration.md index bae484af27..4a6c82c379 100644 --- a/docs/en/Best-Practices/Entity-Framework-Core-Integration.md +++ b/docs/en/Best-Practices/Entity-Framework-Core-Integration.md @@ -191,3 +191,7 @@ public class AbpIdentityEntityFrameworkCoreModule : AbpModule } } ```` + + ## See Also + +* [Video tutorial](https://abp.io/video-courses/essentials/abp-ef-core) \ No newline at end of file diff --git a/docs/en/Best-Practices/MongoDB-Integration.md b/docs/en/Best-Practices/MongoDB-Integration.md index 594244443e..16a6a7d58f 100644 --- a/docs/en/Best-Practices/MongoDB-Integration.md +++ b/docs/en/Best-Practices/MongoDB-Integration.md @@ -148,4 +148,8 @@ public class AbpIdentityMongoDbModule : AbpModule } ``` -Notice that this module class also calls the static `BsonClassMap` configuration method defined above. \ No newline at end of file +Notice that this module class also calls the static `BsonClassMap` configuration method defined above. + + ## See Also + +* [Video tutorial](https://abp.io/video-courses/essentials/abp-mongodb) \ No newline at end of file diff --git a/docs/en/Best-Practices/Repositories.md b/docs/en/Best-Practices/Repositories.md index 4f646a7d94..97cae7c35e 100644 --- a/docs/en/Best-Practices/Repositories.md +++ b/docs/en/Best-Practices/Repositories.md @@ -72,3 +72,4 @@ Task> GetListByNormalizedRoleNameAsync( * [Entity Framework Core Integration](Entity-Framework-Core-Integration.md) * [MongoDB Integration](MongoDB-Integration.md) +* [Video tutorial](https://abp.io/video-courses/essentials/generic-repositories) \ No newline at end of file diff --git a/docs/en/CLI.md b/docs/en/CLI.md index 4c79453ed7..e0eede9241 100644 --- a/docs/en/CLI.md +++ b/docs/en/CLI.md @@ -609,3 +609,4 @@ abp install-libs [options] ## See Also * [Examples for the new command](CLI-New-Command-Samples.md) +* [Video tutorial](https://abp.io/video-courses/essentials/abp-cli) diff --git a/docs/en/Community-Articles/2024-03-03-Share-Cookies-BetweenSubDomains/POST.md b/docs/en/Community-Articles/2024-03-03-Share-Cookies-BetweenSubDomains/POST.md new file mode 100644 index 0000000000..b4c7e00289 --- /dev/null +++ b/docs/en/Community-Articles/2024-03-03-Share-Cookies-BetweenSubDomains/POST.md @@ -0,0 +1,85 @@ +# How to share the cookies between subdomains + +## Introduction + +Sharing cookies between subdomains is a common requirement in web development. For example, you have a website with multiple subdomains, and you want to share the login status between these subdomains. Once a user logs in to one subdomain, the user should be logged in to all subdomains. + +This article will show you how to achieve this in an ASP.NET Core application. + +## Implementation principle + +The `cookie` has a `Domain` attribute which specifies which server can receive a cookie. +If specified, then cookies are available on the server and its subdomains. For example, if you set `Domain=.abp.io`, cookies are available on `abp.io` and its subdomains like `community.abp.io`. + +If the server does not specify a **Domain**, the cookies are available on the server but not on its subdomains. Therefore, specifying the **Domain** is less restrictive than omitting it. However, it can be helpful when subdomains need to share information about a user. + +## Change the domain of the cookie in ASP.NET Core + +There is a `CookiePolicyMiddleware` in ASP.NET Core, you can add some policies to the `CookiePolicyOptions` during cookies are appended or deleted. + +We will add a policy to the `CookiePolicyOptions` to change the `domain` of the cookie: + +```csharp +services.Configure(options => +{ + options.OnAppendCookie = cookieContext => + { + ChangeCookieDomain(cookieContext, null); + }; + + options.OnDeleteCookie = cookieContext => + { + ChangeCookieDomain(null, cookieContext); + }; +}); + +private static void ChangeCookieDomain(AppendCookieContext appendCookieContext, DeleteCookieContext deleteCookieContext) +{ + if (appendCookieContext != null) + { + // Change the domain of all cookies + //appendCookieContext.CookieOptions.Domain = ".abp.io"; + + // Change the domain of the specific cookie + if (appendCookieContext.CookieName == ".AspNetCore.Culture") + { + appendCookieContext.CookieOptions.Domain = ".abp.io"; + } + } + + if (deleteCookieContext != null) + { + // Change the domain of all cookies + //appendCookieContext.CookieOptions.Domain = ".abp.io"; + + // Change the domain of the specific cookie + if (deleteCookieContext.CookieName == ".AspNetCore.Culture") + { + deleteCookieContext.CookieOptions.Domain = ".abp.io"; + } + } +} +``` + +Add the `app.UseCookiePolicy()` in the ASP.NET Core pipeline: + +```csharp +//... +app.UseStaticFiles(); +app.UseCookiePolicy(); +//... +``` + +If you check the HTTP response headers, you will see the `Set-Cookie` header with the `domain` attribute as follows: + +```http +Set-Cookie: .AspNetCore.Culture=c%3Den%7Cuic%3Den; expires=Mon, 09 Mar 2026 02:00:00 GMT; domain=.abp.io; path=/ +``` + +The subdomains can share the `.AspNetCore.Culture` cookie now. + +In another community article, we use the same middleware to [fix the Chrome login issue for the IdentityServer4](https://community.abp.io/posts/patch-for-chrome-login-issue-identityserver4-samesite-cookie-problem-weypwp3n) + +## Summary + +The `CookiePolicy` middleware provides a way to control cookies in an ASP.NET Core, It is very useful if you have more complex requirements for Cookies. diff --git a/docs/en/Data-Transfer-Objects.md b/docs/en/Data-Transfer-Objects.md index 4d45570c1d..45533cca72 100644 --- a/docs/en/Data-Transfer-Objects.md +++ b/docs/en/Data-Transfer-Objects.md @@ -277,4 +277,8 @@ You are free to design your DTO classes. However, there are some best practices ### Output DTO Principles -* You can **reuse output DTOs** if you **fill all the properties** on all the cases. \ No newline at end of file +* You can **reuse output DTOs** if you **fill all the properties** on all the cases. + +## See Also + +* [Video tutorial](https://abp.io/video-courses/essentials/data-transfer-objects) \ No newline at end of file diff --git a/docs/en/Dependency-Injection.md b/docs/en/Dependency-Injection.md index 826d360e22..27eaaad553 100644 --- a/docs/en/Dependency-Injection.md +++ b/docs/en/Dependency-Injection.md @@ -566,3 +566,4 @@ Startup templates come with Autofac installed. See [Autofac integration](Autofac ## See Also * [ASP.NET Core Dependency Injection Best Practices, Tips & Tricks](https://medium.com/volosoft/asp-net-core-dependency-injection-best-practices-tips-tricks-c6e9c67f9d96) +* [Video tutorial](https://abp.io/video-courses/essentials/dependency-injection) \ No newline at end of file diff --git a/docs/en/Domain-Services.md b/docs/en/Domain-Services.md index 6ad9b78cf0..877ccfe27e 100644 --- a/docs/en/Domain-Services.md +++ b/docs/en/Domain-Services.md @@ -132,4 +132,8 @@ While both of [Application Services](Application-Services.md) and Domain Service ## Lifetime -Lifetime of Domain Services are [transient](https://docs.abp.io/en/abp/latest/Dependency-Injection) and they are automatically registered to the dependency injection system. \ No newline at end of file +Lifetime of Domain Services are [transient](https://docs.abp.io/en/abp/latest/Dependency-Injection) and they are automatically registered to the dependency injection system. + +## See Also + +* [Video tutorial](https://abp.io/video-courses/essentials/domain-services) \ No newline at end of file diff --git a/docs/en/Dynamic-Proxying-Interceptors.md b/docs/en/Dynamic-Proxying-Interceptors.md index 76a23daa8f..e8b57b80fb 100644 --- a/docs/en/Dynamic-Proxying-Interceptors.md +++ b/docs/en/Dynamic-Proxying-Interceptors.md @@ -1,3 +1,7 @@ ## Dynamic Proxying / Interceptors -TODO \ No newline at end of file +TODO + +## See Also + +* [Video tutorial](https://abp.io/video-courses/essentials/interception) \ No newline at end of file diff --git a/docs/en/Entities.md b/docs/en/Entities.md index 02631d3e0b..b5498c4adb 100644 --- a/docs/en/Entities.md +++ b/docs/en/Entities.md @@ -438,3 +438,4 @@ You typically **don't need** to use this system for your own entities, because i ## See Also * [Best practice guide to design the entities](Best-Practices/Entities.md) +* [Video tutorial](https://abp.io/video-courses/essentials/entities) diff --git a/docs/en/Entity-Framework-Core.md b/docs/en/Entity-Framework-Core.md index cb9393b1aa..f5394dd93b 100644 --- a/docs/en/Entity-Framework-Core.md +++ b/docs/en/Entity-Framework-Core.md @@ -139,6 +139,30 @@ Configure(options => }); ```` +Add actions for the `ConfigureConventions` and `OnModelCreating` methods of the `DbContext` as shown below: + +````csharp +options.DefaultConventionAction = (dbContext, builder) => +{ + // This action is called for ConfigureConventions method of all DbContexts. +}; + +options.ConfigureConventions((dbContext, builder) => +{ + // This action is called for ConfigureConventions method of specific DbContext. +}); + +options.DefaultOnModelCreatingAction = (dbContext, builder) => +{ + // This action is called for OnModelCreating method of all DbContexts. +}; + +options.ConfigureOnModelCreating((dbContext, builder) => +{ + // This action is called for OnModelCreating method of specific DbContext. +}); +```` + If you have a single `DbContext` or you have multiple `DbContext`s but want to use the same DBMS and configuration for all, you can leave it as is. However, if you need to configure a different DBMS or customize the configuration for a specific `DbContext`, you can specify it as shown below: ````csharp @@ -936,3 +960,4 @@ public class MyCustomEfCoreBulkOperationProvider * [Entities](Entities.md) * [Repositories](Repositories.md) +* [Video tutorial](https://abp.io/video-courses/essentials/abp-ef-core) \ No newline at end of file diff --git a/docs/en/Exception-Handling.md b/docs/en/Exception-Handling.md index d12e9a62b6..32f45b6b28 100644 --- a/docs/en/Exception-Handling.md +++ b/docs/en/Exception-Handling.md @@ -338,3 +338,6 @@ Here, a list of the options you can configure: * `SendExceptionsDetailsToClients` (default: `false`): You can enable or disable sending exception details to the client. * `SendStackTraceToClients` (default: `true`): You can enable or disable sending the stack trace of exception to the client. If you want to send the stack trace to the client, you must set both `SendStackTraceToClients` and `SendExceptionsDetailsToClients` options to `true` otherwise, the stack trace will not be sent to the client. +## See Also + +* [Video tutorial](https://abp.io/video-courses/essentials/exception-handling) \ No newline at end of file diff --git a/docs/en/Localization.md b/docs/en/Localization.md index 4fec386c69..5b04940025 100644 --- a/docs/en/Localization.md +++ b/docs/en/Localization.md @@ -254,4 +254,5 @@ See the following documents to learn how to reuse the same localization texts in * [Localization for the MVC / Razor Pages UI](UI/AspNetCore/JavaScript-API/Localization.md) * [Localization for the Blazor UI](UI/Blazor/Localization.md) -* [Localization for the Angular UI](UI/Angular/Localization.md) \ No newline at end of file +* [Localization for the Angular UI](UI/Angular/Localization.md) +* [Video tutorial](https://abp.io/video-courses/essentials/localization) \ No newline at end of file diff --git a/docs/en/Module-Development-Basics.md b/docs/en/Module-Development-Basics.md index 1fdd09f8b2..785f631563 100644 --- a/docs/en/Module-Development-Basics.md +++ b/docs/en/Module-Development-Basics.md @@ -189,3 +189,6 @@ There are **two types of modules.** They don't have any structural difference bu - **Framework modules**: These are **core modules of the framework** like caching, emailing, theming, security, serialization, validation, EF Core integration, MongoDB integration... etc. They do not have application/business functionalities but makes your daily development easier by providing common infrastructure, integration and abstractions. - **Application modules**: These modules implement **specific application/business functionalities** like blogging, document management, identity management, tenant management... etc. They generally have their own entities, services, APIs and UI components. See [pre-built application modules](Modules/Index.md). + +## See Also +* [Video tutorial](https://abp.io/video-courses/essentials/modularity) diff --git a/docs/en/MongoDB.md b/docs/en/MongoDB.md index df7f92e779..101712da35 100644 --- a/docs/en/MongoDB.md +++ b/docs/en/MongoDB.md @@ -509,4 +509,5 @@ public class MyCustomMongoDbBulkOperationProvider ## See Also * [Entities](Entities.md) -* [Repositories](Repositories.md) \ No newline at end of file +* [Repositories](Repositories.md) +* [Video tutorial](https://abp.io/video-courses/essentials/abp-mongodb) \ No newline at end of file diff --git a/docs/en/Repositories.md b/docs/en/Repositories.md index 92a4a42807..d99e0cb83e 100644 --- a/docs/en/Repositories.md +++ b/docs/en/Repositories.md @@ -506,3 +506,6 @@ This method is suggested; * If you want to **completely isolate** your domain & application layers from the database provider. * If you develop a **reusable [application module](Modules/Index.md)** and don't want to force to a specific database provider, which should be done as a [best practice](Best-Practices/Index.md). +## See Also + +* [Video tutorial](https://abp.io/video-courses/essentials/generic-repositories) diff --git a/docs/en/Startup-Templates/Application-Single-Layer.md b/docs/en/Startup-Templates/Application-Single-Layer.md index 02a743c5ee..1b2e28be64 100644 --- a/docs/en/Startup-Templates/Application-Single-Layer.md +++ b/docs/en/Startup-Templates/Application-Single-Layer.md @@ -104,3 +104,7 @@ The server-side is similar to the solution described in the *Solution Structure* The client-side application consumes the HTTP APIs as mentioned. You can see the folder structure of the Angular project shown below: ![](../images/single-layer-angular-folder-structure.png) + + ## See Also + +* [Video tutorial](https://abp.io/video-courses/essentials/app-template) \ No newline at end of file diff --git a/docs/en/Startup-Templates/Application.md b/docs/en/Startup-Templates/Application.md index 52344db94b..fb5a1f1c07 100644 --- a/docs/en/Startup-Templates/Application.md +++ b/docs/en/Startup-Templates/Application.md @@ -459,3 +459,6 @@ If you want to configure social/external logins for your application, please fol - [The getting started document](../Getting-Started.md) explains how to create a new application in a few minutes. - [The application development tutorial](../Tutorials/Part-1.md) explains step by step application development. + +## See Also +* [Video tutorial](https://abp.io/video-courses/essentials/app-template) diff --git a/docs/en/UI/Angular/Authorization.md b/docs/en/UI/Angular/Authorization.md index 5fad925c9d..d2e8a61d51 100644 --- a/docs/en/UI/Angular/Authorization.md +++ b/docs/en/UI/Angular/Authorization.md @@ -175,3 +175,7 @@ export class OAuthErrorFilterService extends AbstractAuthErrorFilter< } ``` + +## See Also + +* [Video tutorials](https://abp.io/video-courses/essentials/authorization) \ No newline at end of file diff --git a/docs/en/UI/Angular/Localization.md b/docs/en/UI/Angular/Localization.md index 8b53a534e0..72a6b4fc57 100644 --- a/docs/en/UI/Angular/Localization.md +++ b/docs/en/UI/Angular/Localization.md @@ -391,4 +391,5 @@ Which locale files you add to `webpackInclude` magic comment, they will be inclu ## See Also -- [Localization in ASP.NET Core](../../Localization.md) +* [Localization in ASP.NET Core](../../Localization.md) +* [Video tutorial](https://abp.io/video-courses/essentials/localization) \ No newline at end of file diff --git a/docs/en/UI/Angular/Service-Proxies.md b/docs/en/UI/Angular/Service-Proxies.md index f6a34b76b8..90e687147c 100644 --- a/docs/en/UI/Angular/Service-Proxies.md +++ b/docs/en/UI/Angular/Service-Proxies.md @@ -175,3 +175,7 @@ yarn nx g @abp/nx.generators:generate-proxy ### Known Limitations When you run a project on Visual Studio using IIS Express as the web server, there will be no remote access to your endpoints. This is the default behavior of IIS Express since it explicitly protects you from the security risks of running over the network. However, that will cause the proxy generator to fail because it needs a response from the `/api/abp/api-definition` endpoint. You may serve your endpoints via Kestrel to avoid this. Running `dotnet run` in your command line (at your project folder) will do that for you. + +## See Also + +* [Video tutorial](https://abp.io/video-courses/essentials/generating-client-proxies) \ No newline at end of file diff --git a/docs/en/UI/AspNetCore/JavaScript-API/Localization.md b/docs/en/UI/AspNetCore/JavaScript-API/Localization.md index 0f6851799a..4932dc7696 100644 --- a/docs/en/UI/AspNetCore/JavaScript-API/Localization.md +++ b/docs/en/UI/AspNetCore/JavaScript-API/Localization.md @@ -141,3 +141,6 @@ Used to get list of all **available languages** in the application. An example v ] ```` +## See Also + +* [Video tutorial](https://abp.io/video-courses/essentials/localization) diff --git a/docs/en/UI/Blazor/Authorization.md b/docs/en/UI/Blazor/Authorization.md index 7325c8e57b..b798fc1bc1 100644 --- a/docs/en/UI/Blazor/Authorization.md +++ b/docs/en/UI/Blazor/Authorization.md @@ -72,4 +72,4 @@ There are some useful extension methods for the `IAuthorizationService`: * [Authorization](../../Authorization.md) (server side) * [Blazor Security](https://docs.microsoft.com/en-us/aspnet/core/blazor/security/) (Microsoft documentation) * [ICurrentUser Service](CurrentUser.md) - +* [Video tutorial](https://abp.io/video-courses/essentials/authorization) diff --git a/docs/en/UI/Blazor/Localization.md b/docs/en/UI/Blazor/Localization.md index d42249388e..938c07cf99 100644 --- a/docs/en/UI/Blazor/Localization.md +++ b/docs/en/UI/Blazor/Localization.md @@ -75,4 +75,5 @@ Format arguments can be passed after the localization key. If your message is `H ## See Also -* [Localization](../../Localization.md) \ No newline at end of file +* [Localization](../../Localization.md) +* [Video tutorial](https://abp.io/video-courses/essentials/localization) \ No newline at end of file diff --git a/docs/en/Unit-Of-Work.md b/docs/en/Unit-Of-Work.md index 743aa515bb..abe72f5c4e 100644 --- a/docs/en/Unit-Of-Work.md +++ b/docs/en/Unit-Of-Work.md @@ -354,3 +354,7 @@ app.UseUnitOfWork(); app.UseConfiguredEndpoints(); ```` +## See Also + +* [Video tutorial Code](https://abp.io/video-courses/essentials/unit-of-work-code) +* [Video tutorial Presentation](https://abp.io/video-courses/essentials/unit-of-work-presentation) diff --git a/docs/en/Virtual-File-System.md b/docs/en/Virtual-File-System.md index 4a13bf5740..236c393d99 100644 --- a/docs/en/Virtual-File-System.md +++ b/docs/en/Virtual-File-System.md @@ -182,3 +182,7 @@ So, if you need to replace a file of a module, just create the file in the exact ### Physical Files Physical files always override the virtual files. That means if you put a file under the `/wwwroot/my-folder/my-file.css`, it will override the file in the same location of the virtual file system. So, you need to know the file paths defined in the modules to override them. + +## See Also + +* [Video tutorial](https://abp.io/video-courses/essentials/virtual-file-system) \ No newline at end of file diff --git a/docs/zh-Hans/Background-Workers.md b/docs/zh-Hans/Background-Workers.md index da1e9f9f54..b2cc2a1580 100644 --- a/docs/zh-Hans/Background-Workers.md +++ b/docs/zh-Hans/Background-Workers.md @@ -44,7 +44,7 @@ public class MyWorker : BackgroundWorkerBase public class PassiveUserCheckerWorker : AsyncPeriodicBackgroundWorkerBase { public PassiveUserCheckerWorker( - AbpTimer timer, + AbpAsyncTimer timer, IServiceScopeFactory serviceScopeFactory ) : base( timer, @@ -71,7 +71,7 @@ public class PassiveUserCheckerWorker : AsyncPeriodicBackgroundWorkerBase } ```` -* `AsyncPeriodicBackgroundWorkerBase` 使用 `AbpTimer`(线程安全定时器)对象来确定**时间段**. 我们可以在构造函数中设置了`Period` 属性. +* `AsyncPeriodicBackgroundWorkerBase` 使用 `AbpAsyncTimer`(线程安全定时器)对象来确定**时间段**. 我们可以在构造函数中设置了`Period` 属性. * 它需要实现 `DoWorkAsync` 方法**执行**定期任务. * 最好使用 `PeriodicBackgroundWorkerContext` **解析依赖** 而不是构造函数. 因为 `AsyncPeriodicBackgroundWorkerBase` 使用 `IServiceScope` 在你的任务执行结束时会对其 **disposed**. * `AsyncPeriodicBackgroundWorkerBase` **捕获并记录** 由 `DoWorkAsync` 方法抛出的 **异常**. diff --git a/framework/src/Volo.Abp.AspNetCore.Components.MauiBlazor/Volo/Abp/AspNetCore/Components/MauiBlazor/MauiBlazorRemoteTenantStore.cs b/framework/src/Volo.Abp.AspNetCore.Components.MauiBlazor/Volo/Abp/AspNetCore/Components/MauiBlazor/MauiBlazorRemoteTenantStore.cs index 3873b48db3..73fe9e6999 100644 --- a/framework/src/Volo.Abp.AspNetCore.Components.MauiBlazor/Volo/Abp/AspNetCore/Components/MauiBlazor/MauiBlazorRemoteTenantStore.cs +++ b/framework/src/Volo.Abp.AspNetCore.Components.MauiBlazor/Volo/Abp/AspNetCore/Components/MauiBlazor/MauiBlazorRemoteTenantStore.cs @@ -1,4 +1,5 @@ using System; +using System.Collections.Generic; using System.Threading.Tasks; using Microsoft.Extensions.Caching.Distributed; using Pages.Abp.MultiTenancy.ClientProxies; @@ -57,6 +58,11 @@ public class MauiBlazorRemoteTenantStore : ITenantStore, ITransientDependency return tenantConfiguration; } + public Task> GetListAsync(bool includeDetails = false) + { + return Task.FromResult>(Array.Empty()); + } + public TenantConfiguration? Find(string normalizedName) { var cacheKey = CreateCacheKey(normalizedName); diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.Client/Volo/Abp/AspNetCore/Mvc/Client/MvcRemoteTenantStore.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.Client/Volo/Abp/AspNetCore/Mvc/Client/MvcRemoteTenantStore.cs index dce80a3099..ed4739c93c 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.Client/Volo/Abp/AspNetCore/Mvc/Client/MvcRemoteTenantStore.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.Client/Volo/Abp/AspNetCore/Mvc/Client/MvcRemoteTenantStore.cs @@ -1,4 +1,5 @@ using System; +using System.Collections.Generic; using System.Threading.Tasks; using Microsoft.AspNetCore.Http; using Microsoft.Extensions.Options; @@ -79,6 +80,11 @@ public class MvcRemoteTenantStore : ITenantStore, ITransientDependency return tenantConfiguration?.Value; } + public Task> GetListAsync(bool includeDetails = false) + { + return Task.FromResult>(Array.Empty()); + } + public TenantConfiguration? Find(string normalizedName) { var cacheKey = TenantConfigurationCacheItem.CalculateCacheKey(normalizedName); diff --git a/framework/src/Volo.Abp.Emailing/Volo/Abp/Emailing/EmailSenderBase.cs b/framework/src/Volo.Abp.Emailing/Volo/Abp/Emailing/EmailSenderBase.cs index 55d4b50a58..986ad1c38a 100644 --- a/framework/src/Volo.Abp.Emailing/Volo/Abp/Emailing/EmailSenderBase.cs +++ b/framework/src/Volo.Abp.Emailing/Volo/Abp/Emailing/EmailSenderBase.cs @@ -7,6 +7,7 @@ using System.Threading.Tasks; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging.Abstractions; using Volo.Abp.BackgroundJobs; +using Volo.Abp.Validation; namespace Volo.Abp.Emailing; @@ -84,6 +85,8 @@ public abstract class EmailSenderBase : IEmailSender public virtual async Task QueueAsync(string to, string subject, string body, bool isBodyHtml = true, AdditionalEmailSendingArgs? additionalEmailSendingArgs = null) { + ValidateEmailAddress(to); + if (!BackgroundJobManager.IsAvailable()) { await SendAsync(to, subject, body, isBodyHtml, additionalEmailSendingArgs); @@ -104,6 +107,8 @@ public abstract class EmailSenderBase : IEmailSender public virtual async Task QueueAsync(string from, string to, string subject, string body, bool isBodyHtml = true, AdditionalEmailSendingArgs? additionalEmailSendingArgs = null) { + ValidateEmailAddress(to); + if (!BackgroundJobManager.IsAvailable()) { await SendAsync(from, to, subject, body, isBodyHtml, additionalEmailSendingArgs); @@ -161,4 +166,14 @@ public abstract class EmailSenderBase : IEmailSender mail.BodyEncoding = Encoding.UTF8; } } + + private static void ValidateEmailAddress(string emailAddress) + { + if(ValidationHelper.IsValidEmailAddress(emailAddress)) + { + return; + } + + throw new ArgumentException($"Email address '{emailAddress}' is not valid!"); + } } diff --git a/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/EntityFrameworkCore/AbpDbContext.cs b/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/EntityFrameworkCore/AbpDbContext.cs index b06ba191dd..6c3ab12572 100644 --- a/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/EntityFrameworkCore/AbpDbContext.cs +++ b/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/EntityFrameworkCore/AbpDbContext.cs @@ -14,6 +14,7 @@ using Microsoft.EntityFrameworkCore.ChangeTracking; using Microsoft.EntityFrameworkCore.Metadata; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging.Abstractions; +using Microsoft.Extensions.Options; using Volo.Abp.Auditing; using Volo.Abp.Data; using Volo.Abp.DependencyInjection; @@ -69,6 +70,8 @@ public abstract class AbpDbContext : DbContext, IAbpEfCoreDbContext, public ILogger> Logger => LazyServiceProvider.LazyGetService>>(NullLogger>.Instance); + public IOptions Options => LazyServiceProvider.LazyGetRequiredService>(); + private static readonly MethodInfo ConfigureBasePropertiesMethodInfo = typeof(AbpDbContext) .GetMethod( @@ -115,6 +118,33 @@ public abstract class AbpDbContext : DbContext, IAbpEfCoreDbContext, .MakeGenericMethod(entityType.ClrType) .Invoke(this, new object[] { modelBuilder, entityType }); } + + if (LazyServiceProvider == null || Options == null) + { + return; + } + + Options.Value.DefaultOnModelCreatingAction?.Invoke(this, modelBuilder); + foreach (var onModelCreatingAction in Options.Value.OnModelCreatingActions.GetOrDefault(typeof(TDbContext)) ?? []) + { + onModelCreatingAction.As>().Invoke(this, modelBuilder); + } + } + + protected override void ConfigureConventions(ModelConfigurationBuilder configurationBuilder) + { + base.ConfigureConventions(configurationBuilder); + + if (LazyServiceProvider == null || Options == null) + { + return; + } + + Options.Value.DefaultConventionAction?.Invoke(this, configurationBuilder); + foreach (var conventionAction in Options.Value.ConventionActions.GetOrDefault(typeof(TDbContext)) ?? []) + { + conventionAction.As>().Invoke(this, configurationBuilder); + } } protected virtual void TrySetDatabaseProvider(ModelBuilder modelBuilder) diff --git a/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/EntityFrameworkCore/AbpDbContextOptions.cs b/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/EntityFrameworkCore/AbpDbContextOptions.cs index cb5b258192..acde97340b 100644 --- a/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/EntityFrameworkCore/AbpDbContextOptions.cs +++ b/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/EntityFrameworkCore/AbpDbContextOptions.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using System.Linq; using JetBrains.Annotations; +using Microsoft.EntityFrameworkCore; using Volo.Abp.DependencyInjection; using Volo.Abp.EntityFrameworkCore.DependencyInjection; using Volo.Abp.MultiTenancy; @@ -20,12 +21,22 @@ public class AbpDbContextOptions internal Dictionary DbContextReplacements { get; } + internal Action? DefaultConventionAction { get; set; } + + internal Dictionary> ConventionActions { get; } + + internal Action? DefaultOnModelCreatingAction { get; set; } + + internal Dictionary> OnModelCreatingActions { get; } + public AbpDbContextOptions() { DefaultPreConfigureActions = new List>(); PreConfigureActions = new Dictionary>(); ConfigureActions = new Dictionary(); DbContextReplacements = new Dictionary(); + ConventionActions = new Dictionary>(); + OnModelCreatingActions = new Dictionary>(); } public void PreConfigure([NotNull] Action action) @@ -42,6 +53,56 @@ public class AbpDbContextOptions DefaultConfigureAction = action; } + public void ConfigureDefaultConvention([NotNull] Action action) + { + Check.NotNull(action, nameof(action)); + + DefaultConventionAction = action; + } + + public void ConfigureConventions([NotNull] Action action) + where TDbContext : AbpDbContext + { + Check.NotNull(action, nameof(action)); + + var actions = ConventionActions.GetOrDefault(typeof(TDbContext)); + if (actions == null) + { + ConventionActions[typeof(TDbContext)] = new List + { + new Action((dbContext, builder) => action((TDbContext)dbContext, builder)) + }; + return; + } + + actions.Add(action); + } + + public void ConfigureDefaultOnModelCreating([NotNull] Action action) + { + Check.NotNull(action, nameof(action)); + + DefaultOnModelCreatingAction = action; + } + + public void ConfigureOnModelCreating([NotNull] Action action) + where TDbContext : AbpDbContext + { + Check.NotNull(action, nameof(action)); + + var actions = OnModelCreatingActions.GetOrDefault(typeof(TDbContext)); + if (actions == null) + { + OnModelCreatingActions[typeof(TDbContext)] = new List + { + new Action((dbContext, builder) => action((TDbContext)dbContext, builder)) + }; + return; + } + + actions.Add(action); + } + public bool IsConfiguredDefault() { return DefaultConfigureAction != null; diff --git a/framework/src/Volo.Abp.Localization/Volo/Abp/Localization/ILanguageInfo.cs b/framework/src/Volo.Abp.Localization/Volo/Abp/Localization/ILanguageInfo.cs index e8ae6935de..d6d1c990e8 100644 --- a/framework/src/Volo.Abp.Localization/Volo/Abp/Localization/ILanguageInfo.cs +++ b/framework/src/Volo.Abp.Localization/Volo/Abp/Localization/ILanguageInfo.cs @@ -7,6 +7,4 @@ public interface ILanguageInfo string UiCultureName { get; } string DisplayName { get; } - - string? FlagIcon { get; } } diff --git a/framework/src/Volo.Abp.Localization/Volo/Abp/Localization/LanguageInfo.cs b/framework/src/Volo.Abp.Localization/Volo/Abp/Localization/LanguageInfo.cs index a2274b5a69..a645b64ae3 100644 --- a/framework/src/Volo.Abp.Localization/Volo/Abp/Localization/LanguageInfo.cs +++ b/framework/src/Volo.Abp.Localization/Volo/Abp/Localization/LanguageInfo.cs @@ -19,9 +19,6 @@ public class LanguageInfo : ILanguageInfo [NotNull] public virtual string TwoLetterISOLanguageName { get; protected set; } = default!; - public virtual string? FlagIcon { get; set; } - - protected LanguageInfo() { @@ -30,11 +27,9 @@ public class LanguageInfo : ILanguageInfo public LanguageInfo( string cultureName, string? uiCultureName = null, - string? displayName = null, - string? flagIcon = null) + string? displayName = null) { ChangeCultureInternal(cultureName, uiCultureName, displayName); - FlagIcon = flagIcon; } public virtual void ChangeCulture(string cultureName, string? uiCultureName = null, string? displayName = null) diff --git a/framework/src/Volo.Abp.MongoDB/Volo/Abp/Domain/Repositories/MongoDB/MongoDbRepository.cs b/framework/src/Volo.Abp.MongoDB/Volo/Abp/Domain/Repositories/MongoDB/MongoDbRepository.cs index 443d8f89d3..45629f76e5 100644 --- a/framework/src/Volo.Abp.MongoDB/Volo/Abp/Domain/Repositories/MongoDB/MongoDbRepository.cs +++ b/framework/src/Volo.Abp.MongoDB/Volo/Abp/Domain/Repositories/MongoDB/MongoDbRepository.cs @@ -507,11 +507,21 @@ public class MongoDbRepository var dbContext = await GetDbContextAsync(cancellationToken); var collection = dbContext.Collection(); - await collection.DeleteManyAsync( - dbContext.SessionHandle, - Builders.Filter.Where(predicate), - cancellationToken: cancellationToken - ); + if (dbContext.SessionHandle != null) + { + await collection.DeleteManyAsync( + dbContext.SessionHandle, + Builders.Filter.Where(predicate), + cancellationToken: cancellationToken + ); + } + else + { + await collection.DeleteManyAsync( + Builders.Filter.Where(predicate), + cancellationToken: cancellationToken + ); + } } [Obsolete("Use GetQueryableAsync method.")] diff --git a/framework/src/Volo.Abp.MultiTenancy.Abstractions/Volo/Abp/MultiTenancy/ITenantStore.cs b/framework/src/Volo.Abp.MultiTenancy.Abstractions/Volo/Abp/MultiTenancy/ITenantStore.cs index d97d438b01..0e992211ca 100644 --- a/framework/src/Volo.Abp.MultiTenancy.Abstractions/Volo/Abp/MultiTenancy/ITenantStore.cs +++ b/framework/src/Volo.Abp.MultiTenancy.Abstractions/Volo/Abp/MultiTenancy/ITenantStore.cs @@ -1,4 +1,5 @@ using System; +using System.Collections.Generic; using System.Threading.Tasks; namespace Volo.Abp.MultiTenancy; @@ -9,6 +10,8 @@ public interface ITenantStore Task FindAsync(Guid id); + Task> GetListAsync(bool includeDetails = false); + [Obsolete("Use FindAsync method.")] TenantConfiguration? Find(string normalizedName); diff --git a/framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/ConfigurationStore/DefaultTenantStore.cs b/framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/ConfigurationStore/DefaultTenantStore.cs index e91e749fe3..78e902bd06 100644 --- a/framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/ConfigurationStore/DefaultTenantStore.cs +++ b/framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/ConfigurationStore/DefaultTenantStore.cs @@ -1,4 +1,5 @@ using System; +using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using Microsoft.Extensions.Options; @@ -26,6 +27,11 @@ public class DefaultTenantStore : ITenantStore, ITransientDependency return Task.FromResult(Find(id)); } + public Task> GetListAsync(bool includeDetails = false) + { + return Task.FromResult>(_options.Tenants); + } + public TenantConfiguration? Find(string normalizedName) { return _options.Tenants?.FirstOrDefault(t => t.NormalizedName == normalizedName); diff --git a/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/ValidationHelper.cs b/framework/src/Volo.Abp.Validation.Abstractions/Volo/Abp/Validation/ValidationHelper.cs similarity index 100% rename from framework/src/Volo.Abp.Validation/Volo/Abp/Validation/ValidationHelper.cs rename to framework/src/Volo.Abp.Validation.Abstractions/Volo/Abp/Validation/ValidationHelper.cs diff --git a/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/en.json b/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/en.json index 629710276a..b19c040f9f 100644 --- a/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/en.json +++ b/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/en.json @@ -78,6 +78,17 @@ "EndDate": "End date", "Feature:AuditLoggingGroup": "Audit logging", "Feature:AuditLoggingEnable": "Enabled audit logging page", - "Feature:AuditLoggingEnableDescription": "Enable audit logging page in the application." + "Feature:AuditLoggingEnableDescription": "Enable audit logging page in the application.", + "Feature:AuditLoggingSettingManagementEnable": "Enable audit log setting management", + "Feature:AuditLoggingSettingManagementEnableDescription": "Enable the configuration of the audit log setting management within the application.", + "DisplayName:IsExpiredDeleterEnabled": "Enable expired deleter", + "Description:IsExpiredDeleterEnabled": "Toggle to enable or disable the automatic deletion of expired items.", + "DisplayName:ExpiredDeleterPeriod": "Expired item deletion period", + "Description:ExpiredDeleterPeriod": "Set the period of days after which expired items will be automatically deleted.", + "InvalidAuditLogDeletionSettings": "Invalid audit log deletion settings. If deletion is enabled, the period should be greater than 0 days.", + "AuditLogSettingsGeneral": "General", + "AuditLogSettingsGlobal": "Global", + "DisplayName:IsPeriodicDeleterEnabled": "Enable periodic deleter", + "Description:IsPeriodicDeleterEnabled": "Toggle to enable the periodic deletion worker. If this option disabled the periodic deleter will not work." } } diff --git a/modules/blogging/app/Volo.BloggingTestApp/Startup.cs b/modules/blogging/app/Volo.BloggingTestApp/Startup.cs index 6f79fde6ad..0f4a310afc 100644 --- a/modules/blogging/app/Volo.BloggingTestApp/Startup.cs +++ b/modules/blogging/app/Volo.BloggingTestApp/Startup.cs @@ -16,18 +16,18 @@ namespace Volo.BloggingTestApp services.Configure(options => { - options.Languages.Add(new LanguageInfo("ar", "ar", "العربية", "ae")); - options.Languages.Add(new LanguageInfo("en", "en", "English", "gb")); - options.Languages.Add(new LanguageInfo("cs", "cs", "Čeština", "cz")); - options.Languages.Add(new LanguageInfo("fi", "fi", "Finnish", "fi")); - options.Languages.Add(new LanguageInfo("fr", "fr", "Français", "fr")); - options.Languages.Add(new LanguageInfo("sk", "sk", "Slovak", "sk")); - options.Languages.Add(new LanguageInfo("hi", "hi", "Hindi", "in")); - options.Languages.Add(new LanguageInfo("it", "it", "Italiano", "it")); - options.Languages.Add(new LanguageInfo("tr", "tr", "Türkçe", "tr")); - options.Languages.Add(new LanguageInfo("pt-BR", "pt-BR", "Português", "br")); - options.Languages.Add(new LanguageInfo("zh-Hans", "zh-Hans", "简体中文", "cn")); - options.Languages.Add(new LanguageInfo("zh-Hant", "zh-Hant", "繁体中文", "cn")); + options.Languages.Add(new LanguageInfo("ar", "ar", "العربية")); + options.Languages.Add(new LanguageInfo("en", "en", "English")); + options.Languages.Add(new LanguageInfo("cs", "cs", "Čeština")); + options.Languages.Add(new LanguageInfo("fi", "fi", "Finnish")); + options.Languages.Add(new LanguageInfo("fr", "fr", "Français")); + options.Languages.Add(new LanguageInfo("sk", "sk", "Slovak")); + options.Languages.Add(new LanguageInfo("hi", "hi", "Hindi")); + options.Languages.Add(new LanguageInfo("it", "it", "Italiano")); + options.Languages.Add(new LanguageInfo("tr", "tr", "Türkçe")); + options.Languages.Add(new LanguageInfo("pt-BR", "pt-BR", "Português")); + options.Languages.Add(new LanguageInfo("zh-Hans", "zh-Hans", "简体中文")); + options.Languages.Add(new LanguageInfo("zh-Hant", "zh-Hant", "繁体中文")); }); } diff --git a/modules/cms-kit/host/Volo.CmsKit.HttpApi.Host/CmsKitHttpApiHostModule.cs b/modules/cms-kit/host/Volo.CmsKit.HttpApi.Host/CmsKitHttpApiHostModule.cs index 01c8464477..aeb45bea02 100644 --- a/modules/cms-kit/host/Volo.CmsKit.HttpApi.Host/CmsKitHttpApiHostModule.cs +++ b/modules/cms-kit/host/Volo.CmsKit.HttpApi.Host/CmsKitHttpApiHostModule.cs @@ -101,9 +101,9 @@ public class CmsKitHttpApiHostModule : AbpModule options.Languages.Add(new LanguageInfo("hu", "hu", "Magyar")); options.Languages.Add(new LanguageInfo("fi", "fi", "Finnish")); options.Languages.Add(new LanguageInfo("fr", "fr", "Français")); - options.Languages.Add(new LanguageInfo("hi", "hi", "Hindi", "in")); - options.Languages.Add(new LanguageInfo("is", "is", "Icelandic", "is")); - options.Languages.Add(new LanguageInfo("it", "it", "Italiano", "it")); + options.Languages.Add(new LanguageInfo("hi", "hi", "Hindi")); + options.Languages.Add(new LanguageInfo("is", "is", "Icelandic")); + options.Languages.Add(new LanguageInfo("it", "it", "Italiano")); options.Languages.Add(new LanguageInfo("pt-BR", "pt-BR", "Português")); options.Languages.Add(new LanguageInfo("ro-RO", "ro-RO", "Română")); options.Languages.Add(new LanguageInfo("ru", "ru", "Русский")); diff --git a/modules/cms-kit/host/Volo.CmsKit.IdentityServer/CmsKitIdentityServerModule.cs b/modules/cms-kit/host/Volo.CmsKit.IdentityServer/CmsKitIdentityServerModule.cs index 326e4673b4..070508d178 100644 --- a/modules/cms-kit/host/Volo.CmsKit.IdentityServer/CmsKitIdentityServerModule.cs +++ b/modules/cms-kit/host/Volo.CmsKit.IdentityServer/CmsKitIdentityServerModule.cs @@ -108,9 +108,9 @@ public class CmsKitIdentityServerModule : AbpModule options.Languages.Add(new LanguageInfo("hu", "hu", "Magyar")); options.Languages.Add(new LanguageInfo("fi", "fi", "Finnish")); options.Languages.Add(new LanguageInfo("fr", "fr", "Français")); - options.Languages.Add(new LanguageInfo("hi", "hi", "Hindi", "in")); - options.Languages.Add(new LanguageInfo("is", "is", "Icelandic", "is")); - options.Languages.Add(new LanguageInfo("it", "it", "Italiano", "it")); + options.Languages.Add(new LanguageInfo("hi", "hi", "Hindi")); + options.Languages.Add(new LanguageInfo("is", "is", "Icelandic")); + options.Languages.Add(new LanguageInfo("it", "it", "Italiano")); options.Languages.Add(new LanguageInfo("pt-BR", "pt-BR", "Português")); options.Languages.Add(new LanguageInfo("ro-RO", "ro-RO", "Română")); options.Languages.Add(new LanguageInfo("ru", "ru", "Русский")); diff --git a/modules/cms-kit/host/Volo.CmsKit.Web.Unified/CmsKitWebUnifiedModule.cs b/modules/cms-kit/host/Volo.CmsKit.Web.Unified/CmsKitWebUnifiedModule.cs index ec98cbcf78..c6be8a2ad2 100644 --- a/modules/cms-kit/host/Volo.CmsKit.Web.Unified/CmsKitWebUnifiedModule.cs +++ b/modules/cms-kit/host/Volo.CmsKit.Web.Unified/CmsKitWebUnifiedModule.cs @@ -167,9 +167,9 @@ public class CmsKitWebUnifiedModule : AbpModule options.Languages.Add(new LanguageInfo("hu", "hu", "Magyar")); options.Languages.Add(new LanguageInfo("fi", "fi", "Finnish")); options.Languages.Add(new LanguageInfo("fr", "fr", "Français")); - options.Languages.Add(new LanguageInfo("hi", "hi", "Hindi", "in")); - options.Languages.Add(new LanguageInfo("is", "is", "Icelandic", "is")); - options.Languages.Add(new LanguageInfo("it", "it", "Italiano", "it")); + options.Languages.Add(new LanguageInfo("hi", "hi", "Hindi")); + options.Languages.Add(new LanguageInfo("is", "is", "Icelandic")); + options.Languages.Add(new LanguageInfo("it", "it", "Italiano")); options.Languages.Add(new LanguageInfo("pt-BR", "pt-BR", "Português (Brasil)")); options.Languages.Add(new LanguageInfo("ro-RO", "ro-RO", "Română")); options.Languages.Add(new LanguageInfo("ru", "ru", "Русский")); diff --git a/modules/docs/app/VoloDocs.Web/VoloDocsWebModule.cs b/modules/docs/app/VoloDocs.Web/VoloDocsWebModule.cs index 0d4ba3b365..8d36d58de4 100644 --- a/modules/docs/app/VoloDocs.Web/VoloDocsWebModule.cs +++ b/modules/docs/app/VoloDocs.Web/VoloDocsWebModule.cs @@ -132,9 +132,9 @@ namespace VoloDocs.Web options.Languages.Add(new LanguageInfo("pt-BR", "pt-BR", "Português")); options.Languages.Add(new LanguageInfo("fi", "fi", "Finnish")); options.Languages.Add(new LanguageInfo("fr", "fr", "Français")); - options.Languages.Add(new LanguageInfo("hi", "hi", "Hindi", "in")); - options.Languages.Add(new LanguageInfo("is", "is", "Icelandic", "is")); - options.Languages.Add(new LanguageInfo("it", "it", "Italiano", "it")); + options.Languages.Add(new LanguageInfo("hi", "hi", "Hindi")); + options.Languages.Add(new LanguageInfo("is", "is", "Icelandic")); + options.Languages.Add(new LanguageInfo("it", "it", "Italiano")); options.Languages.Add(new LanguageInfo("hu", "hu", "Magyar")); options.Languages.Add(new LanguageInfo("ro-RO", "ro-RO", "Română")); options.Languages.Add(new LanguageInfo("sk", "sk", "Slovak")); diff --git a/modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/DemoAppModule.cs b/modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/DemoAppModule.cs index cb867a540e..0f89cb54d9 100644 --- a/modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/DemoAppModule.cs +++ b/modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/DemoAppModule.cs @@ -93,9 +93,9 @@ public class DemoAppModule : AbpModule options.Languages.Add(new LanguageInfo("fi", "fi", "Finnish")); options.Languages.Add(new LanguageInfo("fr", "fr", "Français")); options.Languages.Add(new LanguageInfo("ro-RO", "ro-RO", "Română")); - options.Languages.Add(new LanguageInfo("hi", "hi", "Hindi", "in")); - options.Languages.Add(new LanguageInfo("is", "is", "Icelandic", "is")); - options.Languages.Add(new LanguageInfo("it", "it", "Italiano", "it")); + options.Languages.Add(new LanguageInfo("hi", "hi", "Hindi")); + options.Languages.Add(new LanguageInfo("is", "is", "Icelandic")); + options.Languages.Add(new LanguageInfo("it", "it", "Italiano")); options.Languages.Add(new LanguageInfo("el", "el", "Ελληνικά")); }); diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/Pages/SettingManagement/SettingManagement.razor b/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/Pages/SettingManagement/SettingManagement.razor index 08c64c2150..8e6888b5cc 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/Pages/SettingManagement/SettingManagement.razor +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/Pages/SettingManagement/SettingManagement.razor @@ -25,9 +25,7 @@ @foreach (var group in SettingComponentCreationContext.Groups) { -

@group.DisplayName

- - + @{ SettingItemRenders.Add(builder => { diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain/Volo/Abp/TenantManagement/AbpTenantManagementDomainMappingProfile.cs b/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain/Volo/Abp/TenantManagement/AbpTenantManagementDomainMappingProfile.cs index f2458b990c..496095c807 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain/Volo/Abp/TenantManagement/AbpTenantManagementDomainMappingProfile.cs +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain/Volo/Abp/TenantManagement/AbpTenantManagementDomainMappingProfile.cs @@ -15,6 +15,11 @@ public class AbpTenantManagementDomainMappingProfile : Profile { var connStrings = new ConnectionStrings(); + if (tenant.ConnectionStrings == null) + { + return connStrings; + } + foreach (var connectionString in tenant.ConnectionStrings) { connStrings[connectionString.Name] = connectionString.Value; diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain/Volo/Abp/TenantManagement/TenantStore.cs b/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain/Volo/Abp/TenantManagement/TenantStore.cs index 808a9684cd..8f494ff45c 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain/Volo/Abp/TenantManagement/TenantStore.cs +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain/Volo/Abp/TenantManagement/TenantStore.cs @@ -1,4 +1,5 @@ using System; +using System.Collections.Generic; using System.Threading.Tasks; using JetBrains.Annotations; using Volo.Abp.Caching; @@ -37,6 +38,12 @@ public class TenantStore : ITenantStore, ITransientDependency return (await GetCacheItemAsync(id, null)).Value; } + public virtual async Task> GetListAsync(bool includeDetails = false) + { + return ObjectMapper.Map, List>( + await TenantRepository.GetListAsync(includeDetails)); + } + [Obsolete("Use FindAsync method.")] public virtual TenantConfiguration Find(string normalizedName) { diff --git a/modules/tenant-management/test/Volo.Abp.TenantManagement.Domain.Tests/Volo/Abp/TenantManagement/TenantStore_Tests.cs b/modules/tenant-management/test/Volo.Abp.TenantManagement.Domain.Tests/Volo/Abp/TenantManagement/TenantStore_Tests.cs index 10f203eb43..757d495134 100644 --- a/modules/tenant-management/test/Volo.Abp.TenantManagement.Domain.Tests/Volo/Abp/TenantManagement/TenantStore_Tests.cs +++ b/modules/tenant-management/test/Volo.Abp.TenantManagement.Domain.Tests/Volo/Abp/TenantManagement/TenantStore_Tests.cs @@ -35,4 +35,13 @@ public class TenantStore_Tests : AbpTenantManagementDomainTestBase (await _tenantStore.FindAsync(acme.Id)).ShouldNotBeNull(); } + + [Fact] + public async Task GetListAsync() + { + var tenants = await _tenantRepository.GetListAsync(); + + tenants.ShouldNotBeNull(); + tenants.Count.ShouldBe(3); + } } diff --git a/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/AbpVirtualFileExplorerDemoAppModule.cs b/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/AbpVirtualFileExplorerDemoAppModule.cs index 5c7cbdff35..4f6965207d 100644 --- a/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/AbpVirtualFileExplorerDemoAppModule.cs +++ b/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/AbpVirtualFileExplorerDemoAppModule.cs @@ -22,9 +22,9 @@ public class AbpVirtualFileExplorerDemoAppModule : AbpModule options.Languages.Add(new LanguageInfo("en", "en", "English")); options.Languages.Add(new LanguageInfo("fi", "fi", "Finnish")); options.Languages.Add(new LanguageInfo("fr", "fr", "Français")); - options.Languages.Add(new LanguageInfo("hi", "hi", "Hindi", "in")); - options.Languages.Add(new LanguageInfo("is", "is", "Icelandic", "is")); - options.Languages.Add(new LanguageInfo("it", "it", "Italiano", "it")); + options.Languages.Add(new LanguageInfo("hi", "hi", "Hindi")); + options.Languages.Add(new LanguageInfo("is", "is", "Icelandic")); + options.Languages.Add(new LanguageInfo("it", "it", "Italiano")); options.Languages.Add(new LanguageInfo("hu", "hu", "Magyar")); options.Languages.Add(new LanguageInfo("ro-RO", "ro-RO", "Română")); options.Languages.Add(new LanguageInfo("sk", "sk", "Slovak")); diff --git a/npm/ng-packs/packages/feature-management/src/lib/components/feature-management-tab/feature-management-tab.component.html b/npm/ng-packs/packages/feature-management/src/lib/components/feature-management-tab/feature-management-tab.component.html index 6688fc5511..aaad786e93 100644 --- a/npm/ng-packs/packages/feature-management/src/lib/components/feature-management-tab/feature-management-tab.component.html +++ b/npm/ng-packs/packages/feature-management/src/lib/components/feature-management-tab/feature-management-tab.component.html @@ -1,26 +1,23 @@ -

{{ 'AbpFeatureManagement::Menu:FeatureManagement' | abpLocalization }}

- -

{{ 'AbpFeatureManagement::ManageHostFeaturesText' | abpLocalization }}

- +@if (visibleFeatures) { - - + +} diff --git a/npm/ng-packs/packages/setting-management/config/src/lib/components/email-setting-group/email-setting-group.component.html b/npm/ng-packs/packages/setting-management/config/src/lib/components/email-setting-group/email-setting-group.component.html index 72ff2b37d1..bc944af045 100644 --- a/npm/ng-packs/packages/setting-management/config/src/lib/components/email-setting-group/email-setting-group.component.html +++ b/npm/ng-packs/packages/setting-management/config/src/lib/components/email-setting-group/email-setting-group.component.html @@ -1,93 +1,95 @@ -

{{ 'AbpSettingManagement::Menu:Emailing' | abpLocalization }}

- -
- -
-
- - -
-
- - -
-
- - -
-
- - -
- -
- - -
-
- - -
- -
+@if (form) { +
- - + +
-
- - + + +
+
+ + +
+
+ +
-
- - +
+ + +
+
+ +
-
-
+
+
+ + +
+ +
+ + +
+ +
+ + +
+
- - {{ 'AbpSettingManagement::Save' | abpLocalization }} - - - +
+ + + {{ 'AbpSettingManagement::Save' | abpLocalization }} + + + +} diff --git a/npm/ng-packs/packages/theme-shared/src/lib/adapters/date-time.adapter.ts b/npm/ng-packs/packages/theme-shared/src/lib/adapters/date-time.adapter.ts index c461b9725b..813e2c20ff 100644 --- a/npm/ng-packs/packages/theme-shared/src/lib/adapters/date-time.adapter.ts +++ b/npm/ng-packs/packages/theme-shared/src/lib/adapters/date-time.adapter.ts @@ -6,11 +6,15 @@ export class DateTimeAdapter { value!: Partial; fromModel(value: string | Date): Partial | null { - if (!value) return null; + if (!value) { + return null; + } const date = new Date(value); - if (isNaN(date as unknown as number)) return null; + if (isNaN(date as unknown as number)) { + return null; + } this.value = { year: date.getFullYear(), @@ -25,12 +29,13 @@ export class DateTimeAdapter { } toModel(value: Partial | null): string { - if (!value) return ''; + if (!value) { + return ''; + } const now = new Date(); const newValue = { - // TODO look for strict mode errors year: now.getUTCFullYear(), month: now.getMonth() + 1, day: now.getDate(), @@ -42,15 +47,17 @@ export class DateTimeAdapter { } as NgbDateTimeStruct; const date = new Date( - newValue.year, - newValue.month - 1, - newValue.day, - newValue.hour, - newValue.minute, - newValue.second, + Date.UTC( + newValue.year, + newValue.month - 1, + newValue.day, + newValue.hour, + newValue.minute, + newValue.second, + ), ); - return new Date(date).toISOString(); + return date.toISOString().replace('Z', ''); } } diff --git a/npm/ng-packs/packages/theme-shared/src/lib/tests/date-time.adapter.spec.ts b/npm/ng-packs/packages/theme-shared/src/lib/tests/date-time.adapter.spec.ts index 2c00b28fae..d6074a90cd 100644 --- a/npm/ng-packs/packages/theme-shared/src/lib/tests/date-time.adapter.spec.ts +++ b/npm/ng-packs/packages/theme-shared/src/lib/tests/date-time.adapter.spec.ts @@ -1,4 +1,5 @@ - import { DateTimeAdapter } from '../adapters/date-time.adapter' +import { DateTimeAdapter } from '../adapters/date-time.adapter'; + describe('DateTime Adapter', () => { const adapter = new DateTimeAdapter(); const date = new Date(2002, 2, 30, 13, 30, 45, 0); @@ -9,6 +10,7 @@ describe('DateTime Adapter', () => { const minute = date.getMinutes(); const second = date.getSeconds(); + const isoWithoutZone = date.toISOString().replace('Z', ''); describe('#fromModel', () => { test.each` param | expected @@ -23,12 +25,12 @@ describe('DateTime Adapter', () => { describe('#toModel', () => { test.each` - param | expected - ${undefined} | ${''} - ${null} | ${''} - ${{ year, month, day, hour, minute, second }} | ${date.toISOString()} + param | expected + ${undefined} | ${''} + ${null} | ${''} + ${isoWithoutZone} | ${isoWithoutZone} `('should return $expected when $param is given', ({ param, expected }) => { - expect(adapter.toModel(param)).toEqual(expected); + expect(adapter.toModel(adapter.fromModel(param))).toEqual(expected); }); }); }); diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/MyCompanyName.MyProjectName.Blazor.Server.Mongo.csproj b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/MyCompanyName.MyProjectName.Blazor.Server.Mongo.csproj index 43fd08ec16..2b46cb318b 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/MyCompanyName.MyProjectName.Blazor.Server.Mongo.csproj +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/MyCompanyName.MyProjectName.Blazor.Server.Mongo.csproj @@ -22,8 +22,8 @@ - - + + diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/MyProjectNameModule.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/MyProjectNameModule.cs index 050b23af08..10eb0b9ed1 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/MyProjectNameModule.cs +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/MyProjectNameModule.cs @@ -247,16 +247,16 @@ public class MyProjectNameModule : AbpModule options.Languages.Add(new LanguageInfo("hu", "hu", "Magyar")); options.Languages.Add(new LanguageInfo("fi", "fi", "Finnish")); options.Languages.Add(new LanguageInfo("fr", "fr", "Français")); - options.Languages.Add(new LanguageInfo("hi", "hi", "Hindi", "in")); - options.Languages.Add(new LanguageInfo("is", "is", "Icelandic", "is")); - options.Languages.Add(new LanguageInfo("it", "it", "Italiano", "it")); + options.Languages.Add(new LanguageInfo("hi", "hi", "Hindi")); + options.Languages.Add(new LanguageInfo("is", "is", "Icelandic")); + options.Languages.Add(new LanguageInfo("it", "it", "Italiano")); options.Languages.Add(new LanguageInfo("pt-BR", "pt-BR", "Português")); options.Languages.Add(new LanguageInfo("ro-RO", "ro-RO", "Română")); options.Languages.Add(new LanguageInfo("ru", "ru", "Русский")); options.Languages.Add(new LanguageInfo("sk", "sk", "Slovak")); options.Languages.Add(new LanguageInfo("zh-Hans", "zh-Hans", "简体中文")); options.Languages.Add(new LanguageInfo("zh-Hant", "zh-Hant", "繁體中文")); - options.Languages.Add(new LanguageInfo("de-DE", "de-DE", "Deutsch", "de")); + options.Languages.Add(new LanguageInfo("de-DE", "de-DE", "Deutsch")); options.Languages.Add(new LanguageInfo("es", "es", "Español")); options.Languages.Add(new LanguageInfo("el", "el", "Ελληνικά")); }); diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/MyCompanyName.MyProjectName.Blazor.Server.csproj b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/MyCompanyName.MyProjectName.Blazor.Server.csproj index 1eb9c5b462..bf3144328e 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/MyCompanyName.MyProjectName.Blazor.Server.csproj +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/MyCompanyName.MyProjectName.Blazor.Server.csproj @@ -22,8 +22,8 @@ - - + + diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/MyProjectNameModule.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/MyProjectNameModule.cs index bd4b3a4481..0fcddd09d3 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/MyProjectNameModule.cs +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/MyProjectNameModule.cs @@ -249,16 +249,16 @@ public class MyProjectNameModule : AbpModule options.Languages.Add(new LanguageInfo("hu", "hu", "Magyar")); options.Languages.Add(new LanguageInfo("fi", "fi", "Finnish")); options.Languages.Add(new LanguageInfo("fr", "fr", "Français")); - options.Languages.Add(new LanguageInfo("hi", "hi", "Hindi", "in")); - options.Languages.Add(new LanguageInfo("is", "is", "Icelandic", "is")); - options.Languages.Add(new LanguageInfo("it", "it", "Italiano", "it")); + options.Languages.Add(new LanguageInfo("hi", "hi", "Hindi")); + options.Languages.Add(new LanguageInfo("is", "is", "Icelandic")); + options.Languages.Add(new LanguageInfo("it", "it", "Italiano")); options.Languages.Add(new LanguageInfo("pt-BR", "pt-BR", "Português")); options.Languages.Add(new LanguageInfo("ro-RO", "ro-RO", "Română")); options.Languages.Add(new LanguageInfo("ru", "ru", "Русский")); options.Languages.Add(new LanguageInfo("sk", "sk", "Slovak")); options.Languages.Add(new LanguageInfo("zh-Hans", "zh-Hans", "简体中文")); options.Languages.Add(new LanguageInfo("zh-Hant", "zh-Hant", "繁體中文")); - options.Languages.Add(new LanguageInfo("de-DE", "de-DE", "Deutsch", "de")); + options.Languages.Add(new LanguageInfo("de-DE", "de-DE", "Deutsch")); options.Languages.Add(new LanguageInfo("es", "es", "Español")); options.Languages.Add(new LanguageInfo("el", "el", "Ελληνικά")); }); diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Client/MyCompanyName.MyProjectName.Blazor.WebAssembly.Client.csproj b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Client/MyCompanyName.MyProjectName.Blazor.WebAssembly.Client.csproj index d209b965b9..e25025527e 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Client/MyCompanyName.MyProjectName.Blazor.WebAssembly.Client.csproj +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Client/MyCompanyName.MyProjectName.Blazor.WebAssembly.Client.csproj @@ -21,7 +21,7 @@ - + diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server.Mongo/MyCompanyName.MyProjectName.Blazor.WebAssembly.Server.Mongo.csproj b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server.Mongo/MyCompanyName.MyProjectName.Blazor.WebAssembly.Server.Mongo.csproj index 771dde204d..5a27051e12 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server.Mongo/MyCompanyName.MyProjectName.Blazor.WebAssembly.Server.Mongo.csproj +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server.Mongo/MyCompanyName.MyProjectName.Blazor.WebAssembly.Server.Mongo.csproj @@ -74,7 +74,7 @@ - + diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server/MyCompanyName.MyProjectName.Blazor.WebAssembly.Server.csproj b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server/MyCompanyName.MyProjectName.Blazor.WebAssembly.Server.csproj index 58eaa12f31..a360d7c757 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server/MyCompanyName.MyProjectName.Blazor.WebAssembly.Server.csproj +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server/MyCompanyName.MyProjectName.Blazor.WebAssembly.Server.csproj @@ -75,7 +75,7 @@ - + diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Shared/MyProjectNameContractsModule.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Shared/MyProjectNameContractsModule.cs index 712df0a578..e1661f41ec 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Shared/MyProjectNameContractsModule.cs +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Shared/MyProjectNameContractsModule.cs @@ -49,16 +49,16 @@ public class MyProjectNameContractsModule : AbpModule options.Languages.Add(new LanguageInfo("hu", "hu", "Magyar")); options.Languages.Add(new LanguageInfo("fi", "fi", "Finnish")); options.Languages.Add(new LanguageInfo("fr", "fr", "Français")); - options.Languages.Add(new LanguageInfo("hi", "hi", "Hindi", "in")); - options.Languages.Add(new LanguageInfo("is", "is", "Icelandic", "is")); - options.Languages.Add(new LanguageInfo("it", "it", "Italiano", "it")); + options.Languages.Add(new LanguageInfo("hi", "hi", "Hindi")); + options.Languages.Add(new LanguageInfo("is", "is", "Icelandic")); + options.Languages.Add(new LanguageInfo("it", "it", "Italiano")); options.Languages.Add(new LanguageInfo("pt-BR", "pt-BR", "Português")); options.Languages.Add(new LanguageInfo("ro-RO", "ro-RO", "Română")); options.Languages.Add(new LanguageInfo("ru", "ru", "Русский")); options.Languages.Add(new LanguageInfo("sk", "sk", "Slovak")); options.Languages.Add(new LanguageInfo("zh-Hans", "zh-Hans", "简体中文")); options.Languages.Add(new LanguageInfo("zh-Hant", "zh-Hant", "繁體中文")); - options.Languages.Add(new LanguageInfo("de-DE", "de-DE", "Deutsch", "de")); + options.Languages.Add(new LanguageInfo("de-DE", "de-DE", "Deutsch")); options.Languages.Add(new LanguageInfo("es", "es", "Español")); options.Languages.Add(new LanguageInfo("el", "el", "Ελληνικά")); }); diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/MyCompanyName.MyProjectName.Host.Mongo.csproj b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/MyCompanyName.MyProjectName.Host.Mongo.csproj index c2da32f32e..56d687ad30 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/MyCompanyName.MyProjectName.Host.Mongo.csproj +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/MyCompanyName.MyProjectName.Host.Mongo.csproj @@ -70,7 +70,7 @@ - + diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/MyProjectNameModule.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/MyProjectNameModule.cs index 69f550112c..098a9970ad 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/MyProjectNameModule.cs +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/MyProjectNameModule.cs @@ -219,16 +219,16 @@ public class MyProjectNameModule : AbpModule options.Languages.Add(new LanguageInfo("hu", "hu", "Magyar")); options.Languages.Add(new LanguageInfo("fi", "fi", "Finnish")); options.Languages.Add(new LanguageInfo("fr", "fr", "Français")); - options.Languages.Add(new LanguageInfo("hi", "hi", "Hindi", "in")); - options.Languages.Add(new LanguageInfo("is", "is", "Icelandic", "is")); - options.Languages.Add(new LanguageInfo("it", "it", "Italiano", "it")); + options.Languages.Add(new LanguageInfo("hi", "hi", "Hindi")); + options.Languages.Add(new LanguageInfo("is", "is", "Icelandic")); + options.Languages.Add(new LanguageInfo("it", "it", "Italiano")); options.Languages.Add(new LanguageInfo("pt-BR", "pt-BR", "Português")); options.Languages.Add(new LanguageInfo("ro-RO", "ro-RO", "Română")); options.Languages.Add(new LanguageInfo("ru", "ru", "Русский")); options.Languages.Add(new LanguageInfo("sk", "sk", "Slovak")); options.Languages.Add(new LanguageInfo("zh-Hans", "zh-Hans", "简体中文")); options.Languages.Add(new LanguageInfo("zh-Hant", "zh-Hant", "繁體中文")); - options.Languages.Add(new LanguageInfo("de-DE", "de-DE", "Deutsch", "de")); + options.Languages.Add(new LanguageInfo("de-DE", "de-DE", "Deutsch")); options.Languages.Add(new LanguageInfo("es", "es", "Español")); options.Languages.Add(new LanguageInfo("el", "el", "Ελληνικά")); }); diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/MyCompanyName.MyProjectName.Host.csproj b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/MyCompanyName.MyProjectName.Host.csproj index ebf16c6567..222002e647 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/MyCompanyName.MyProjectName.Host.csproj +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/MyCompanyName.MyProjectName.Host.csproj @@ -71,7 +71,7 @@ - + diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/MyProjectNameModule.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/MyProjectNameModule.cs index 91218e4f0f..54f224062f 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/MyProjectNameModule.cs +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/MyProjectNameModule.cs @@ -222,16 +222,16 @@ public class MyProjectNameModule : AbpModule options.Languages.Add(new LanguageInfo("hu", "hu", "Magyar")); options.Languages.Add(new LanguageInfo("fi", "fi", "Finnish")); options.Languages.Add(new LanguageInfo("fr", "fr", "Français")); - options.Languages.Add(new LanguageInfo("hi", "hi", "Hindi", "in")); - options.Languages.Add(new LanguageInfo("is", "is", "Icelandic", "is")); - options.Languages.Add(new LanguageInfo("it", "it", "Italiano", "it")); + options.Languages.Add(new LanguageInfo("hi", "hi", "Hindi")); + options.Languages.Add(new LanguageInfo("is", "is", "Icelandic")); + options.Languages.Add(new LanguageInfo("it", "it", "Italiano")); options.Languages.Add(new LanguageInfo("pt-BR", "pt-BR", "Português")); options.Languages.Add(new LanguageInfo("ro-RO", "ro-RO", "Română")); options.Languages.Add(new LanguageInfo("ru", "ru", "Русский")); options.Languages.Add(new LanguageInfo("sk", "sk", "Slovak")); options.Languages.Add(new LanguageInfo("zh-Hans", "zh-Hans", "简体中文")); options.Languages.Add(new LanguageInfo("zh-Hant", "zh-Hant", "繁體中文")); - options.Languages.Add(new LanguageInfo("de-DE", "de-DE", "Deutsch", "de")); + options.Languages.Add(new LanguageInfo("de-DE", "de-DE", "Deutsch")); options.Languages.Add(new LanguageInfo("es", "es", "Español")); options.Languages.Add(new LanguageInfo("el", "el", "Ελληνικά")); }); diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc.Mongo/MyCompanyName.MyProjectName.Mvc.Mongo.csproj b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc.Mongo/MyCompanyName.MyProjectName.Mvc.Mongo.csproj index 0bcdea4691..80bf5a03a7 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc.Mongo/MyCompanyName.MyProjectName.Mvc.Mongo.csproj +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc.Mongo/MyCompanyName.MyProjectName.Mvc.Mongo.csproj @@ -18,7 +18,7 @@ - + diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc.Mongo/MyProjectNameModule.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc.Mongo/MyProjectNameModule.cs index 6117aafd5d..43df51935e 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc.Mongo/MyProjectNameModule.cs +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc.Mongo/MyProjectNameModule.cs @@ -223,16 +223,16 @@ public class MyProjectNameModule : AbpModule options.Languages.Add(new LanguageInfo("hu", "hu", "Magyar")); options.Languages.Add(new LanguageInfo("fi", "fi", "Finnish")); options.Languages.Add(new LanguageInfo("fr", "fr", "Français")); - options.Languages.Add(new LanguageInfo("hi", "hi", "Hindi", "in")); - options.Languages.Add(new LanguageInfo("is", "is", "Icelandic", "is")); - options.Languages.Add(new LanguageInfo("it", "it", "Italiano", "it")); + options.Languages.Add(new LanguageInfo("hi", "hi", "Hindi")); + options.Languages.Add(new LanguageInfo("is", "is", "Icelandic")); + options.Languages.Add(new LanguageInfo("it", "it", "Italiano")); options.Languages.Add(new LanguageInfo("pt-BR", "pt-BR", "Português")); options.Languages.Add(new LanguageInfo("ro-RO", "ro-RO", "Română")); options.Languages.Add(new LanguageInfo("ru", "ru", "Русский")); options.Languages.Add(new LanguageInfo("sk", "sk", "Slovak")); options.Languages.Add(new LanguageInfo("zh-Hans", "zh-Hans", "简体中文")); options.Languages.Add(new LanguageInfo("zh-Hant", "zh-Hant", "繁體中文")); - options.Languages.Add(new LanguageInfo("de-DE", "de-DE", "Deutsch", "de")); + options.Languages.Add(new LanguageInfo("de-DE", "de-DE", "Deutsch")); options.Languages.Add(new LanguageInfo("es", "es", "Español")); options.Languages.Add(new LanguageInfo("el", "el", "Ελληνικά")); }); diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/MyCompanyName.MyProjectName.Mvc.csproj b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/MyCompanyName.MyProjectName.Mvc.csproj index a8ba45854b..f173a37b68 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/MyCompanyName.MyProjectName.Mvc.csproj +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/MyCompanyName.MyProjectName.Mvc.csproj @@ -18,7 +18,7 @@ - + diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/MyProjectNameModule.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/MyProjectNameModule.cs index 90f20f4325..668e5eb26b 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/MyProjectNameModule.cs +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/MyProjectNameModule.cs @@ -226,16 +226,16 @@ public class MyProjectNameModule : AbpModule options.Languages.Add(new LanguageInfo("hu", "hu", "Magyar")); options.Languages.Add(new LanguageInfo("fi", "fi", "Finnish")); options.Languages.Add(new LanguageInfo("fr", "fr", "Français")); - options.Languages.Add(new LanguageInfo("hi", "hi", "Hindi", "in")); - options.Languages.Add(new LanguageInfo("is", "is", "Icelandic", "is")); - options.Languages.Add(new LanguageInfo("it", "it", "Italiano", "it")); + options.Languages.Add(new LanguageInfo("hi", "hi", "Hindi")); + options.Languages.Add(new LanguageInfo("is", "is", "Icelandic")); + options.Languages.Add(new LanguageInfo("it", "it", "Italiano")); options.Languages.Add(new LanguageInfo("pt-BR", "pt-BR", "Português")); options.Languages.Add(new LanguageInfo("ro-RO", "ro-RO", "Română")); options.Languages.Add(new LanguageInfo("ru", "ru", "Русский")); options.Languages.Add(new LanguageInfo("sk", "sk", "Slovak")); options.Languages.Add(new LanguageInfo("zh-Hans", "zh-Hans", "简体中文")); options.Languages.Add(new LanguageInfo("zh-Hant", "zh-Hant", "繁體中文")); - options.Languages.Add(new LanguageInfo("de-DE", "de-DE", "Deutsch", "de")); + options.Languages.Add(new LanguageInfo("de-DE", "de-DE", "Deutsch")); options.Languages.Add(new LanguageInfo("es", "es", "Español")); options.Languages.Add(new LanguageInfo("el", "el", "Ελληνικά")); }); diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/MyCompanyName.MyProjectName.AuthServer.csproj b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/MyCompanyName.MyProjectName.AuthServer.csproj index 34e0283692..a27cab4b62 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/MyCompanyName.MyProjectName.AuthServer.csproj +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/MyCompanyName.MyProjectName.AuthServer.csproj @@ -51,7 +51,7 @@ - + diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Client/MyCompanyName.MyProjectName.Blazor.Client.csproj b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Client/MyCompanyName.MyProjectName.Blazor.Client.csproj index 561d40337f..87f8535842 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Client/MyCompanyName.MyProjectName.Blazor.Client.csproj +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Client/MyCompanyName.MyProjectName.Blazor.Client.csproj @@ -24,7 +24,7 @@ - + diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/MyCompanyName.MyProjectName.Blazor.Server.Tiered.csproj b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/MyCompanyName.MyProjectName.Blazor.Server.Tiered.csproj index 7374374568..cb967959aa 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/MyCompanyName.MyProjectName.Blazor.Server.Tiered.csproj +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/MyCompanyName.MyProjectName.Blazor.Server.Tiered.csproj @@ -30,8 +30,8 @@ - - + + diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/MyCompanyName.MyProjectName.Blazor.Server.csproj b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/MyCompanyName.MyProjectName.Blazor.Server.csproj index 36e0d9afb7..ae5fb46a85 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/MyCompanyName.MyProjectName.Blazor.Server.csproj +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/MyCompanyName.MyProjectName.Blazor.Server.csproj @@ -29,8 +29,8 @@ - - + + diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp.Client/MyCompanyName.MyProjectName.Blazor.WebApp.Client.csproj b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp.Client/MyCompanyName.MyProjectName.Blazor.WebApp.Client.csproj index fbf85ef244..05ad1efc05 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp.Client/MyCompanyName.MyProjectName.Blazor.WebApp.Client.csproj +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp.Client/MyCompanyName.MyProjectName.Blazor.WebApp.Client.csproj @@ -25,7 +25,7 @@ - + diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp.Tiered.Client/MyCompanyName.MyProjectName.Blazor.WebApp.Tiered.Client.csproj b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp.Tiered.Client/MyCompanyName.MyProjectName.Blazor.WebApp.Tiered.Client.csproj index 1a23d28fb2..b17292bb55 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp.Tiered.Client/MyCompanyName.MyProjectName.Blazor.WebApp.Tiered.Client.csproj +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp.Tiered.Client/MyCompanyName.MyProjectName.Blazor.WebApp.Tiered.Client.csproj @@ -25,7 +25,7 @@ - + diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp.Tiered/MyCompanyName.MyProjectName.Blazor.WebApp.Tiered.csproj b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp.Tiered/MyCompanyName.MyProjectName.Blazor.WebApp.Tiered.csproj index 5452b5cde9..1de35b3bd4 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp.Tiered/MyCompanyName.MyProjectName.Blazor.WebApp.Tiered.csproj +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp.Tiered/MyCompanyName.MyProjectName.Blazor.WebApp.Tiered.csproj @@ -32,8 +32,8 @@ - - + + diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp/MyCompanyName.MyProjectName.Blazor.WebApp.csproj b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp/MyCompanyName.MyProjectName.Blazor.WebApp.csproj index aedabfce5c..10b9e781fc 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp/MyCompanyName.MyProjectName.Blazor.WebApp.csproj +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp/MyCompanyName.MyProjectName.Blazor.WebApp.csproj @@ -30,8 +30,8 @@ - - + + diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain/MyProjectNameDomainModule.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain/MyProjectNameDomainModule.cs index 14c8a14148..edeb52521e 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain/MyProjectNameDomainModule.cs +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain/MyProjectNameDomainModule.cs @@ -36,23 +36,23 @@ public class MyProjectNameDomainModule : AbpModule { Configure(options => { - options.Languages.Add(new LanguageInfo("ar", "ar", "العربية", "ae")); + options.Languages.Add(new LanguageInfo("ar", "ar", "العربية")); options.Languages.Add(new LanguageInfo("cs", "cs", "Čeština")); - options.Languages.Add(new LanguageInfo("en", "en", "English", "gb")); + options.Languages.Add(new LanguageInfo("en", "en", "English")); options.Languages.Add(new LanguageInfo("en-GB", "en-GB", "English (UK)")); options.Languages.Add(new LanguageInfo("hu", "hu", "Magyar")); options.Languages.Add(new LanguageInfo("hr", "hr", "Croatian")); - options.Languages.Add(new LanguageInfo("fi", "fi", "Finnish", "fi")); - options.Languages.Add(new LanguageInfo("fr", "fr", "Français", "fr")); - options.Languages.Add(new LanguageInfo("hi", "hi", "Hindi", "in")); - options.Languages.Add(new LanguageInfo("it", "it", "Italiano", "it")); + options.Languages.Add(new LanguageInfo("fi", "fi", "Finnish")); + options.Languages.Add(new LanguageInfo("fr", "fr", "Français")); + options.Languages.Add(new LanguageInfo("hi", "hi", "Hindi")); + options.Languages.Add(new LanguageInfo("it", "it", "Italiano")); options.Languages.Add(new LanguageInfo("pt-BR", "pt-BR", "Português")); - options.Languages.Add(new LanguageInfo("ru", "ru", "Русский", "ru")); - options.Languages.Add(new LanguageInfo("sk", "sk", "Slovak", "sk")); - options.Languages.Add(new LanguageInfo("tr", "tr", "Türkçe", "tr")); + options.Languages.Add(new LanguageInfo("ru", "ru", "Русский")); + options.Languages.Add(new LanguageInfo("sk", "sk", "Slovak")); + options.Languages.Add(new LanguageInfo("tr", "tr", "Türkçe")); options.Languages.Add(new LanguageInfo("zh-Hans", "zh-Hans", "简体中文")); options.Languages.Add(new LanguageInfo("zh-Hant", "zh-Hant", "繁體中文")); - options.Languages.Add(new LanguageInfo("de-DE", "de-DE", "Deutsch", "de")); + options.Languages.Add(new LanguageInfo("de-DE", "de-DE", "Deutsch")); options.Languages.Add(new LanguageInfo("es", "es", "Español")); }); diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/MyCompanyName.MyProjectName.HttpApi.HostWithIds.csproj b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/MyCompanyName.MyProjectName.HttpApi.HostWithIds.csproj index ecbded6659..7a8da08ce3 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/MyCompanyName.MyProjectName.HttpApi.HostWithIds.csproj +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/MyCompanyName.MyProjectName.HttpApi.HostWithIds.csproj @@ -26,7 +26,7 @@ - + diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/MyCompanyName.MyProjectName.Web.Host.csproj b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/MyCompanyName.MyProjectName.Web.Host.csproj index 74a7946922..1b99eab376 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/MyCompanyName.MyProjectName.Web.Host.csproj +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/MyCompanyName.MyProjectName.Web.Host.csproj @@ -29,7 +29,7 @@ - + diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyCompanyName.MyProjectName.Web.csproj b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyCompanyName.MyProjectName.Web.csproj index 63b7a740d9..ff6a545b0d 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyCompanyName.MyProjectName.Web.csproj +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyCompanyName.MyProjectName.Web.csproj @@ -49,7 +49,7 @@ - + diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/MyProjectNameAuthServerModule.cs b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/MyProjectNameAuthServerModule.cs index 9819154b9b..ad5ba84144 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/MyProjectNameAuthServerModule.cs +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/MyProjectNameAuthServerModule.cs @@ -125,9 +125,9 @@ public class MyProjectNameAuthServerModule : AbpModule options.Languages.Add(new LanguageInfo("en-GB", "en-GB", "English (UK)")); options.Languages.Add(new LanguageInfo("fi", "fi", "Finnish")); options.Languages.Add(new LanguageInfo("fr", "fr", "Français")); - options.Languages.Add(new LanguageInfo("hi", "hi", "Hindi", "in")); - options.Languages.Add(new LanguageInfo("is", "is", "Icelandic", "is")); - options.Languages.Add(new LanguageInfo("it", "it", "Italiano", "it")); + options.Languages.Add(new LanguageInfo("hi", "hi", "Hindi")); + options.Languages.Add(new LanguageInfo("is", "is", "Icelandic")); + options.Languages.Add(new LanguageInfo("it", "it", "Italiano")); options.Languages.Add(new LanguageInfo("hu", "hu", "Magyar")); options.Languages.Add(new LanguageInfo("pt-BR", "pt-BR", "Português")); options.Languages.Add(new LanguageInfo("ro-RO", "ro-RO", "Română")); diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/MyProjectNameBlazorHostModule.cs b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/MyProjectNameBlazorHostModule.cs index 8e165a87fe..82dfa1eaba 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/MyProjectNameBlazorHostModule.cs +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/MyProjectNameBlazorHostModule.cs @@ -185,8 +185,8 @@ public class MyProjectNameBlazorHostModule : AbpModule options.Languages.Add(new LanguageInfo("en-GB", "en-GB", "English (UK)")); options.Languages.Add(new LanguageInfo("fi", "fi", "Finnish")); options.Languages.Add(new LanguageInfo("fr", "fr", "Français")); - options.Languages.Add(new LanguageInfo("hi", "hi", "Hindi", "in")); - options.Languages.Add(new LanguageInfo("it", "it", "Italian", "it")); + options.Languages.Add(new LanguageInfo("hi", "hi", "Hindi")); + options.Languages.Add(new LanguageInfo("it", "it", "Italian")); options.Languages.Add(new LanguageInfo("hu", "hu", "Magyar")); options.Languages.Add(new LanguageInfo("pt-BR", "pt-BR", "Português (Brasil)")); options.Languages.Add(new LanguageInfo("ro-RO", "ro-RO", "Română")); diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.HttpApi.Host/MyProjectNameHttpApiHostModule.cs b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.HttpApi.Host/MyProjectNameHttpApiHostModule.cs index ab7ff68bd0..bca552e0d0 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.HttpApi.Host/MyProjectNameHttpApiHostModule.cs +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.HttpApi.Host/MyProjectNameHttpApiHostModule.cs @@ -101,9 +101,9 @@ public class MyProjectNameHttpApiHostModule : AbpModule options.Languages.Add(new LanguageInfo("en-GB", "en-GB", "English (UK)")); options.Languages.Add(new LanguageInfo("fi", "fi", "Finnish")); options.Languages.Add(new LanguageInfo("fr", "fr", "Français")); - options.Languages.Add(new LanguageInfo("hi", "hi", "Hindi", "in")); - options.Languages.Add(new LanguageInfo("is", "is", "Icelandic", "is")); - options.Languages.Add(new LanguageInfo("it", "it", "Italiano", "it")); + options.Languages.Add(new LanguageInfo("hi", "hi", "Hindi")); + options.Languages.Add(new LanguageInfo("is", "is", "Icelandic")); + options.Languages.Add(new LanguageInfo("it", "it", "Italiano")); options.Languages.Add(new LanguageInfo("hu", "hu", "Magyar")); options.Languages.Add(new LanguageInfo("pt-BR", "pt-BR", "Português")); options.Languages.Add(new LanguageInfo("ro-RO", "ro-RO", "Română")); diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/MyProjectNameWebUnifiedModule.cs b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/MyProjectNameWebUnifiedModule.cs index 80408ae4e9..8174c0d9ee 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/MyProjectNameWebUnifiedModule.cs +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/MyProjectNameWebUnifiedModule.cs @@ -116,9 +116,9 @@ public class MyProjectNameWebUnifiedModule : AbpModule options.Languages.Add(new LanguageInfo("en-GB", "en-GB", "English (UK)")); options.Languages.Add(new LanguageInfo("fi", "fi", "Finnish")); options.Languages.Add(new LanguageInfo("fr", "fr", "Français")); - options.Languages.Add(new LanguageInfo("hi", "hi", "Hindi", "in")); - options.Languages.Add(new LanguageInfo("is", "is", "Icelandic", "is")); - options.Languages.Add(new LanguageInfo("it", "it", "Italiano", "it")); + options.Languages.Add(new LanguageInfo("hi", "hi", "Hindi")); + options.Languages.Add(new LanguageInfo("is", "is", "Icelandic")); + options.Languages.Add(new LanguageInfo("it", "it", "Italiano")); options.Languages.Add(new LanguageInfo("hu", "hu", "Magyar")); options.Languages.Add(new LanguageInfo("pt-BR", "pt-BR", "Português (Brasil)")); options.Languages.Add(new LanguageInfo("ro-RO", "ro-RO", "Română"));