created Blogging.Application.Contracts.Shared and moved permission to there

resolves https://github.com/volosoft/volo/issues/2743
pull/4695/head
Yunus Emre Kalkan 5 years ago
parent 3a9dff4fec
commit 221d5c7eab

@ -59,6 +59,10 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Blogging.Admin.HttpApi
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Blogging.Admin.Web", "src\Volo.Blogging.Admin.Web\Volo.Blogging.Admin.Web.csproj", "{DB75CA32-96A5-4D10-8DD0-E62A3D0DDBCB}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Shared", "Shared", "{9FAD5B78-0577-4500-92D5-DC86E05F773C}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Blogging.Application.Contracts.Shared", "src\Volo.Blogging.Application.Contracts.Shared\Volo.Blogging.Application.Contracts.Shared.csproj", "{E28EBBE0-8EB7-4FC1-9267-E6D30993EAE4}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@ -153,6 +157,10 @@ Global
{DB75CA32-96A5-4D10-8DD0-E62A3D0DDBCB}.Debug|Any CPU.Build.0 = Debug|Any CPU
{DB75CA32-96A5-4D10-8DD0-E62A3D0DDBCB}.Release|Any CPU.ActiveCfg = Release|Any CPU
{DB75CA32-96A5-4D10-8DD0-E62A3D0DDBCB}.Release|Any CPU.Build.0 = Release|Any CPU
{E28EBBE0-8EB7-4FC1-9267-E6D30993EAE4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{E28EBBE0-8EB7-4FC1-9267-E6D30993EAE4}.Debug|Any CPU.Build.0 = Debug|Any CPU
{E28EBBE0-8EB7-4FC1-9267-E6D30993EAE4}.Release|Any CPU.ActiveCfg = Release|Any CPU
{E28EBBE0-8EB7-4FC1-9267-E6D30993EAE4}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@ -183,6 +191,8 @@ Global
{59BBAF94-CC8E-4313-9143-F2F5C36A7C45} = {BE2A423C-271E-469A-AD90-5640DEBEE9C1}
{58A63CC9-C886-448B-AB4E-068600294D86} = {BE2A423C-271E-469A-AD90-5640DEBEE9C1}
{DB75CA32-96A5-4D10-8DD0-E62A3D0DDBCB} = {BE2A423C-271E-469A-AD90-5640DEBEE9C1}
{9FAD5B78-0577-4500-92D5-DC86E05F773C} = {42BF26EF-B8C7-42DC-9FFB-3653109B7776}
{E28EBBE0-8EB7-4FC1-9267-E6D30993EAE4} = {9FAD5B78-0577-4500-92D5-DC86E05F773C}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {F2BAE819-78D4-407A-9201-22473B2850B0}

@ -2,7 +2,7 @@
<Import Project="..\..\..\..\configureawait.props" />
<Import Project="..\..\..\..\common.props" />
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<AssemblyName>Volo.Blogging.Admin.Application.Contracts</AssemblyName>
@ -12,15 +12,7 @@
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\Volo.Blogging.Domain.Shared\Volo.Blogging.Domain.Shared.csproj" />
<ProjectReference Include="..\..\..\..\framework\src\Volo.Abp.Ddd.Application\Volo.Abp.Ddd.Application.csproj" />
<ProjectReference Include="..\Volo.Blogging.Application.Contracts.Shared\Volo.Blogging.Application.Contracts.Shared.csproj" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Extensions.FileProviders.Embedded" Version="3.1.5" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="Volo\Blogging\Admin\Localization\Resources\Blogging\Admin\ApplicationContracts\*.json" />
</ItemGroup>
</Project>

@ -5,22 +5,12 @@ using Volo.Blogging.Localization;
namespace Volo.Blogging.Admin
{
[DependsOn(typeof(BloggingDomainSharedModule))]
[DependsOn(typeof(BloggingApplicationContractsSharedModule))]
public class BloggingAdminApplicationContractsModule : AbpModule
{
public override void ConfigureServices(ServiceConfigurationContext context)
{
Configure<AbpVirtualFileSystemOptions>(options =>
{
options.FileSets.AddEmbedded<BloggingAdminApplicationContractsModule>();
});
Configure<AbpLocalizationOptions>(options =>
{
options.Resources
.Get<BloggingResource>()
.AddVirtualJson("Volo/Blogging/Admin/Localization/Resources/Blogging/Admin/ApplicationContracts");
});
}
}
}

@ -1,25 +0,0 @@
using Volo.Abp.Authorization.Permissions;
using Volo.Abp.Localization;
using Volo.Blogging.Localization;
namespace Volo.Blogging.Admin
{
public class BloggingAdminPermissionDefinitionProvider : PermissionDefinitionProvider
{
public override void Define(IPermissionDefinitionContext context)
{
var bloggingGroup = context.AddGroup(BloggingAdminPermissions.GroupName, L("Permission:BloggingAdmin"));
var blogs = bloggingGroup.AddPermission(BloggingAdminPermissions.Blogs.Default, L("Permission:Blogs"));
blogs.AddChild(BloggingAdminPermissions.Blogs.Management, L("Permission:Management"));
blogs.AddChild(BloggingAdminPermissions.Blogs.Update, L("Permission:Edit"));
blogs.AddChild(BloggingAdminPermissions.Blogs.Delete, L("Permission:Delete"));
blogs.AddChild(BloggingAdminPermissions.Blogs.Create, L("Permission:Create"));
}
private static LocalizableString L(string name)
{
return LocalizableString.Create<BloggingResource>(name);
}
}
}

@ -1,23 +0,0 @@
using Volo.Abp.Reflection;
namespace Volo.Blogging.Admin
{
public class BloggingAdminPermissions
{
public const string GroupName = "Blogging.Admin";
public static class Blogs
{
public const string Default = GroupName + ".Blog";
public const string Management = Default + ".Management";
public const string Delete = Default + ".Delete";
public const string Update = Default + ".Update";
public const string Create = Default + ".Create";
}
public static string[] GetAll()
{
return ReflectionHelper.GetPublicConstantsRecursively(typeof(BloggingAdminPermissions));
}
}
}

@ -1,11 +0,0 @@
{
"culture": "cs",
"texts": {
"Permission:BloggingAdmin": "Blogování",
"Permission:Blogs": "Blogy",
"Permission:Management": "Správa",
"Permission:Edit": "Upravit",
"Permission:Create": "Vytvořit",
"Permission:Delete": "Smazat"
}
}

@ -1,11 +0,0 @@
{
"culture": "de",
"texts": {
"Permission:BloggingAdmin": "Blog",
"Permission:Blogs": "Blogs",
"Permission:Management": "Verwaltung",
"Permission:Edit": "Bearbeiten",
"Permission:Create": "Erstellen",
"Permission:Delete": "Löschen"
}
}

@ -1,11 +0,0 @@
{
"culture": "en",
"texts": {
"Permission:BloggingAdmin": "Blogging",
"Permission:Blogs": "Blogs",
"Permission:Management": "Management",
"Permission:Edit": "Edit",
"Permission:Create": "Create",
"Permission:Delete": "Delete"
}
}

@ -1,11 +0,0 @@
{
"culture": "nl",
"texts": {
"Permission:BloggingAdmin": "Blog",
"Permission:Blogs": "Blogs",
"Permission:Management": "Beheer",
"Permission:Edit": "Bewerk",
"Permission:Create": "Maak aan",
"Permission:Delete": "Verwijder"
}
}

@ -1,11 +0,0 @@
{
"culture": "pl-PL",
"texts": {
"Permission:BloggingAdmin": "Blog",
"Permission:Blogs": "Blogi",
"Permission:Management": "Zarządzanie",
"Permission:Edit": "Edytuj",
"Permission:Create": "Utwórz",
"Permission:Delete": "Usuń"
}
}

@ -1,11 +0,0 @@
{
"culture": "pt-BR",
"texts": {
"Permission:BloggingAdmin": "Blog",
"Permission:Blogs": "Blogs",
"Permission:Management": "Gerenciamento",
"Permission:Edit": "Editar",
"Permission:Create": "Criar",
"Permission:Delete": "Excluir"
}
}

@ -1,11 +0,0 @@
{
"culture": "sl",
"texts": {
"Permission:BloggingAdmin": "Blog",
"Permission:Blogs": "Blogi",
"Permission:Management": "Upravljanje",
"Permission:Edit": "Urejanje",
"Permission:Create": "Ustvarjanje",
"Permission:Delete": "Brisanje"
}
}

@ -1,11 +0,0 @@
{
"culture": "tr",
"texts": {
"Permission:BloggingAdmin": "Blog",
"Permission:Blogs": "Bloglar",
"Permission:Management": "Yönetme",
"Permission:Edit": "Düzenle",
"Permission:Create": "Ekle",
"Permission:Delete": "Sil"
}
}

@ -1,11 +0,0 @@
{
"culture": "vi",
"texts": {
"Permission:BloggingAdmin": "Blog",
"Permission:Blogs": "Blogs",
"Permission:Management": "Quản lý",
"Permission:Edit": "Sửa",
"Permission:Create": "Tạo",
"Permission:Delete": "Xóa"
}
}

@ -1,11 +0,0 @@
{
"culture": "zh-Hans",
"texts": {
"Permission:BloggingAdmin": "博客",
"Permission:Blogs": "博客",
"Permission:Management": "管理",
"Permission:Edit": "编辑",
"Permission:Create": "创建",
"Permission:Delete": "删除"
}
}

@ -1,11 +0,0 @@
{
"culture": "zh-Hant",
"texts": {
"Permission:BloggingAdmin": "部落格",
"Permission:Blogs": "部落格",
"Permission:Management": "管理",
"Permission:Edit": "標及",
"Permission:Create": "新增",
"Permission:Delete": "刪除"
}
}

@ -32,7 +32,7 @@ namespace Volo.Blogging.Admin.Blogs
return ObjectMapper.Map<Blog, BlogDto>(blog);
}
[Authorize(BloggingAdminPermissions.Blogs.Create)]
[Authorize(BloggingPermissions.Blogs.Create)]
public async Task<BlogDto> CreateAsync(CreateBlogDto input)
{
var newBlog = await _blogRepository.InsertAsync(new Blog(GuidGenerator.Create(), input.Name, input.ShortName)
@ -43,7 +43,7 @@ namespace Volo.Blogging.Admin.Blogs
return ObjectMapper.Map<Blog, BlogDto>(newBlog);
}
[Authorize(BloggingAdminPermissions.Blogs.Update)]
[Authorize(BloggingPermissions.Blogs.Update)]
public async Task<BlogDto> UpdateAsync(Guid id, UpdateBlogDto input)
{
var blog = await _blogRepository.GetAsync(id);
@ -55,7 +55,7 @@ namespace Volo.Blogging.Admin.Blogs
return ObjectMapper.Map<Blog, BlogDto>(blog);
}
[Authorize(BloggingAdminPermissions.Blogs.Delete)]
[Authorize(BloggingPermissions.Blogs.Delete)]
public async Task DeleteAsync(Guid id)
{
await _blogRepository.DeleteAsync(id);

@ -18,12 +18,12 @@ namespace Volo.Blogging.Admin
{
var l = context.GetLocalizer<BloggingResource>();
if (await context.IsGrantedAsync(BloggingAdminPermissions.Blogs.Management))
if (await context.IsGrantedAsync(BloggingPermissions.Blogs.Management))
{
var managementRootMenuItem = new ApplicationMenuItem("BlogManagement", l["Menu:BlogManagement"]);
//TODO: Using the same permission. Reconsider.
if (await context.IsGrantedAsync(BloggingAdminPermissions.Blogs.Management))
if (await context.IsGrantedAsync(BloggingPermissions.Blogs.Management))
{
managementRootMenuItem.AddItem(new ApplicationMenuItem("BlogManagement.Blogs", l["Menu:Blogs"], "~/Blogging/Admin/Blogs"));
}

@ -24,7 +24,7 @@ namespace Volo.Blogging.Admin.Pages.Blogging.Admin.Blogs
public virtual async Task<ActionResult> OnGetAsync()
{
if (!await _authorization.IsGrantedAsync(BloggingAdminPermissions.Blogs.Create))
if (!await _authorization.IsGrantedAsync(BloggingPermissions.Blogs.Create))
{
return Redirect("/");
}

@ -28,7 +28,7 @@ namespace Volo.Blogging.Admin.Pages.Blogging.Admin.Blogs
public virtual async Task<ActionResult> OnGetAsync()
{
if (!await _authorization.IsGrantedAsync(BloggingAdminPermissions.Blogs.Update))
if (!await _authorization.IsGrantedAsync(BloggingPermissions.Blogs.Update))
{
return Redirect("/");
}

@ -28,7 +28,7 @@
<h2>@L["Blogs"]</h2>
</abp-column>
<abp-column size-md="_6" class="text-right">
@if (await Authorization.IsGrantedAsync(BloggingAdminPermissions.Blogs.Create))
@if (await Authorization.IsGrantedAsync(BloggingPermissions.Blogs.Create))
{
<abp-button icon="plus" text="@L["CreateANewBlog"].Value" button-type="Primary" id="CreateNewBlogButtonId"></abp-button>
}

@ -15,7 +15,7 @@ namespace Volo.Blogging.Admin.Pages.Blogging.Admin.Blogs
public virtual async Task<ActionResult> OnGetAsync()
{
if (!await _authorization.IsGrantedAsync(BloggingAdminPermissions.Blogs.Management))
if (!await _authorization.IsGrantedAsync(BloggingPermissions.Blogs.Management))
{
return Redirect("/");
}

@ -22,7 +22,7 @@
[
{
text: l('Edit'),
visible: abp.auth.isGranted('Blogging.Admin.Blog.Update'),
visible: abp.auth.isGranted('Blogging.Blog.Update'),
action: function (data) {
_editModal.open({
blogId: data.record.id
@ -31,7 +31,7 @@
},
{
text: l('Delete'),
visible: abp.auth.isGranted('Blogging.Admin.Blog.Delete'),
visible: abp.auth.isGranted('Blogging.Blog.Delete'),
confirmMessage: function (data) { return l('BlogDeletionWarningMessage') },
action: function (data) {
volo.blogging.admin.blogManagement

@ -0,0 +1,3 @@
<Weavers xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="FodyWeavers.xsd">
<ConfigureAwait />
</Weavers>

@ -0,0 +1,30 @@
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<!-- This file was generated by Fody. Manual changes to this file will be lost when your project is rebuilt. -->
<xs:element name="Weavers">
<xs:complexType>
<xs:all>
<xs:element name="ConfigureAwait" minOccurs="0" maxOccurs="1">
<xs:complexType>
<xs:attribute name="ContinueOnCapturedContext" type="xs:boolean" />
</xs:complexType>
</xs:element>
</xs:all>
<xs:attribute name="VerifyAssembly" type="xs:boolean">
<xs:annotation>
<xs:documentation>'true' to run assembly verification (PEVerify) on the target assembly after all weavers have been executed.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="VerifyIgnoreCodes" type="xs:string">
<xs:annotation>
<xs:documentation>A comma-separated list of error codes that can be safely ignored in assembly verification.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="GenerateXsd" type="xs:boolean">
<xs:annotation>
<xs:documentation>'false' to turn off automatic generation of the XML Schema file.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
</xs:schema>

@ -0,0 +1,18 @@
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="..\..\..\..\configureawait.props" />
<Import Project="..\..\..\..\common.props" />
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<AssemblyName>Volo.Blogging.Application.Contracts.Shared</AssemblyName>
<PackageId>Volo.Blogging.Application.Contracts.Shared</PackageId>
<RootNamespace />
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\Volo.Blogging.Domain.Shared\Volo.Blogging.Domain.Shared.csproj" />
<ProjectReference Include="..\..\..\..\framework\src\Volo.Abp.Ddd.Application\Volo.Abp.Ddd.Application.csproj" />
</ItemGroup>
</Project>

@ -0,0 +1,15 @@
using Volo.Abp.Application;
using Volo.Abp.Modularity;
namespace Volo.Blogging
{
[DependsOn(typeof(BloggingDomainSharedModule),
typeof(AbpDddApplicationModule))]
public class BloggingApplicationContractsSharedModule : AbpModule
{
public override void ConfigureServices(ServiceConfigurationContext context)
{
}
}
}

@ -10,6 +10,12 @@ namespace Volo.Blogging
{
var bloggingGroup = context.AddGroup(BloggingPermissions.GroupName, L("Permission:Blogging"));
var blogs = bloggingGroup.AddPermission(BloggingPermissions.Blogs.Default, L("Permission:Blogs"));
blogs.AddChild(BloggingPermissions.Blogs.Management, L("Permission:Management"));
blogs.AddChild(BloggingPermissions.Blogs.Update, L("Permission:Edit"));
blogs.AddChild(BloggingPermissions.Blogs.Delete, L("Permission:Delete"));
blogs.AddChild(BloggingPermissions.Blogs.Create, L("Permission:Create"));
var posts = bloggingGroup.AddPermission(BloggingPermissions.Posts.Default, L("Permission:Posts"));
posts.AddChild(BloggingPermissions.Posts.Update, L("Permission:Edit"));
posts.AddChild(BloggingPermissions.Posts.Delete, L("Permission:Delete"));

@ -6,6 +6,15 @@ namespace Volo.Blogging
{
public const string GroupName = "Blogging";
public static class Blogs
{
public const string Default = GroupName + ".Blog";
public const string Management = Default + ".Management";
public const string Delete = Default + ".Delete";
public const string Update = Default + ".Update";
public const string Create = Default + ".Create";
}
public static class Posts
{
public const string Default = GroupName + ".Post";

@ -12,17 +12,7 @@
</PropertyGroup>
<ItemGroup>
<EmbeddedResource Include="Volo\Blogging\Localization\Resources\Blogging\ApplicationContracts\*.json" />
<None Remove="Volo\Blogging\Localization\Resources\Blogging\ApplicationContracts\*.json" />
<ProjectReference Include="..\Volo.Blogging.Application.Contracts.Shared\Volo.Blogging.Application.Contracts.Shared.csproj" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Volo.Blogging.Domain.Shared\Volo.Blogging.Domain.Shared.csproj" />
<ProjectReference Include="..\..\..\..\framework\src\Volo.Abp.Ddd.Application\Volo.Abp.Ddd.Application.csproj" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Extensions.FileProviders.Embedded" Version="3.1.5" />
</ItemGroup>
</Project>

@ -5,21 +5,12 @@ using Volo.Blogging.Localization;
namespace Volo.Blogging
{
[DependsOn(typeof(BloggingDomainSharedModule))]
[DependsOn(typeof(BloggingApplicationContractsSharedModule))]
public class BloggingApplicationContractsModule : AbpModule
{
public override void ConfigureServices(ServiceConfigurationContext context)
{
Configure<AbpVirtualFileSystemOptions>(options =>
{
options.FileSets.AddEmbedded<BloggingApplicationContractsModule>();
});
Configure<AbpLocalizationOptions>(options =>
{
options.Resources
.Get<BloggingResource>()
.AddVirtualJson("Volo/Blogging/Localization/Resources/Blogging/ApplicationContracts");
});
}
}
}

@ -1,10 +0,0 @@
{
"culture": "cs",
"texts": {
"Permission:Blogging": "Blog",
"Permission:Blogs": "Blogy",
"Permission:Posts": "Příspěvky",
"Permission:Tags": "Tagy",
"Permission:Comments": "Komentáře"
}
}

@ -1,10 +0,0 @@
{
"culture": "de",
"texts": {
"Permission:Blogging": "Blog",
"Permission:Blogs": "Blogs",
"Permission:Posts": "Beitr<74>ge",
"Permission:Tags": "Tags",
"Permission:Comments": "Kommentare"
}
}

@ -1,10 +0,0 @@
{
"culture": "en",
"texts": {
"Permission:Blogging": "Blog",
"Permission:Blogs": "Blogs",
"Permission:Posts": "Posts",
"Permission:Tags": "Tags",
"Permission:Comments": "Comments"
}
}

@ -1,10 +0,0 @@
{
"culture": "nl",
"texts": {
"Permission:Blogging": "Blog",
"Permission:Blogs": "Blogs",
"Permission:Posts": "Posts",
"Permission:Tags": "Tags",
"Permission:Comments": "Kommentaar"
}
}

@ -1,10 +0,0 @@
{
"culture": "pl-PL",
"texts": {
"Permission:Blogging": "Blog",
"Permission:Blogs": "Blogi",
"Permission:Posts": "Posty",
"Permission:Tags": "Tagi",
"Permission:Comments": "Komentarze"
}
}

@ -1,10 +0,0 @@
{
"culture": "pt-BR",
"texts": {
"Permission:Blogging": "Blog",
"Permission:Blogs": "Blogs",
"Permission:Posts": "Postagens",
"Permission:Tags": "Etiquetas",
"Permission:Comments": "Comentários"
}
}

@ -1,10 +0,0 @@
{
"culture": "sl",
"texts": {
"Permission:Blogging": "Blog",
"Permission:Blogs": "Blogi",
"Permission:Posts": "Objave",
"Permission:Tags": "Oznake",
"Permission:Comments": "Komentarji"
}
}

@ -1,10 +0,0 @@
{
"culture": "tr",
"texts": {
"Permission:Blogging": "Blog",
"Permission:Blogs": "Bloglar",
"Permission:Posts": "Yazılar",
"Permission:Tags": "Etiketler",
"Permission:Comments": "Yorumlar"
}
}

@ -1,10 +0,0 @@
{
"culture": "vi",
"texts": {
"Permission:Blogging": "Blog",
"Permission:Blogs": "Blogs",
"Permission:Posts": "Bài viết",
"Permission:Tags": "Thẻ",
"Permission:Comments": "Bình luận"
}
}

@ -1,10 +0,0 @@
{
"culture": "zh-Hans",
"texts": {
"Permission:Blogging": "博客",
"Permission:Blogs": "博客",
"Permission:Posts": "帖子",
"Permission:Tags": "标签",
"Permission:Comments": "评论"
}
}

@ -1,10 +0,0 @@
{
"culture": "zh-Hant",
"texts": {
"Permission:Blogging": "部落格",
"Permission:Blogs": "部落格",
"Permission:Posts": "文章",
"Permission:Tags": "標籤",
"Permission:Comments": "評論"
}
}

@ -3,6 +3,15 @@
"texts": {
"Menu:Blogs": "Blogy",
"Menu:BlogManagement": "Blogování",
"Permission:Blogs": "Blogy",
"Permission:Management": "Správa",
"Permission:Edit": "Upravit",
"Permission:Create": "Vytvořit",
"Permission:Delete": "Smazat",
"Permission:Blogging": "Blog",
"Permission:Posts": "Příspěvky",
"Permission:Tags": "Tagy",
"Permission:Comments": "Komentáře",
"Title": "Nadpis",
"Delete": "Smazat",
"Reply": "Odpovědět",

@ -3,8 +3,17 @@
"texts": {
"Menu:Blogs": "Blogs",
"Menu:BlogManagement": "Blog-Verwaltung",
"Permission:Blogs": "Blogs",
"Permission:Management": "Verwaltung",
"Permission:Edit": "Bearbeiten",
"Permission:Create": "Erstellen",
"Permission:Delete": "Löschen",
"Permission:Blogging": "Blog",
"Permission:Posts": "Beitr<74>ge",
"Permission:Tags": "Tags",
"Permission:Comments": "Kommentare",
"Title": "Titel",
"Delete": "Löschen",
"Delete": "L<EFBFBD>schen",
"Reply": "Antwort",
"ReplyTo": "Antwort auf {0}",
"ContinueReading": "Weiterlesen",
@ -20,15 +29,15 @@
"SeeAll": "Alle anzeigen",
"PopularTags": "Beliebte Tags",
"WiewsWithCount": "{0} Aufrufe",
"LastPosts": "Letzte Beiträge",
"LastPosts": "Letzte Beitr<EFBFBD>ge",
"LeaveComment": "Kommentar hinterlassen",
"TagsInThisArticle": "Tags in diesem Artikel",
"Posts": "Beiträge",
"Posts": "Beitr<EFBFBD>ge",
"Edit": "Bearbeiten",
"BLOG": "BLOG",
"CommentDeletionWarningMessage": "Kommentar wird gelöscht.",
"PostDeletionWarningMessage": "Beitrag wird gelöscht.",
"BlogDeletionWarningMessage": "Blog wird gelöscht.",
"CommentDeletionWarningMessage": "Kommentar wird gel<EFBFBD>scht.",
"PostDeletionWarningMessage": "Beitrag wird gel<EFBFBD>scht.",
"BlogDeletionWarningMessage": "Blog wird gel<EFBFBD>scht.",
"AreYouSure": "Sind Sie sicher?",
"CommentWithCount": "{0} Kommentare",
"Comment": "Kommentar",
@ -46,4 +55,4 @@
"ShareOn": "Teilen auf",
"TitleLengthWarning": "Halten Sie Ihren Titel unter 60 Zeichen, um SEO-freundlich zu sein!"
}
}
}

@ -3,6 +3,15 @@
"texts": {
"Menu:Blogs": "Blogs",
"Menu:BlogManagement": "Blogging",
"Permission:Management": "Management",
"Permission:Edit": "Edit",
"Permission:Create": "Create",
"Permission:Delete": "Delete",
"Permission:Blogging": "Blog",
"Permission:Blogs": "Blogs",
"Permission:Posts": "Posts",
"Permission:Tags": "Tags",
"Permission:Comments": "Comments",
"Title": "Title",
"Delete": "Delete",
"Reply": "Reply",

@ -3,6 +3,15 @@
"texts": {
"Menu:Blogs": "Blogs",
"Menu:BlogManagement": "Blog Beheer",
"Permission:Management": "Beheer",
"Permission:Edit": "Bewerk",
"Permission:Create": "Maak aan",
"Permission:Delete": "Verwijder",
"Permission:Blogging": "Blog",
"Permission:Blogs": "Blogs",
"Permission:Posts": "Posts",
"Permission:Tags": "Tags",
"Permission:Comments": "Kommentaar",
"Title": "Titel",
"Delete": "Verwijder",
"Reply": "Antwoord",
@ -46,4 +55,4 @@
"ShareOn": "Delen op",
"TitleLengthWarning": "Houd uw titel kleiner dan 60 tekens om SEO-vriendelijk te zijn!"
}
}
}

@ -3,6 +3,15 @@
"texts": {
"Menu:Blogs": "Blogi",
"Menu:BlogManagement": "Zarządzanie blogiem",
"Permission:Management": "Zarządzanie",
"Permission:Edit": "Edytuj",
"Permission:Create": "Utwórz",
"Permission:Delete": "Usuń",
"Permission:Blogging": "Blog",
"Permission:Blogs": "Blogi",
"Permission:Posts": "Posty",
"Permission:Tags": "Tagi",
"Permission:Comments": "Komentarze",
"Title": "Tytuł",
"Delete": "Usuń",
"Reply": "Odpowiedz",
@ -44,4 +53,4 @@
"Blogs": "Blogi",
"Tags": "Tagi"
}
}
}

@ -3,6 +3,15 @@
"texts": {
"Menu:Blogs": "Blogs",
"Menu:BlogManagement": "Gerenciar Blog",
"Permission:Management": "Gerenciamento",
"Permission:Edit": "Editar",
"Permission:Create": "Criar",
"Permission:Delete": "Excluir",
"Permission:Blogging": "Blog",
"Permission:Blogs": "Blogs",
"Permission:Posts": "Postagens",
"Permission:Tags": "Etiquetas",
"Permission:Comments": "Comentários",
"Title": "Título",
"Delete": "Excluir",
"Reply": "Responder",
@ -44,4 +53,4 @@
"Blogs": "Blogs",
"Tags": "Etiquetas"
}
}
}

@ -3,6 +3,15 @@
"texts": {
"Menu:Blogs": "Blogi",
"Menu:BlogManagement": "Upravljanje bloga",
"Permission:Management": "Upravljanje",
"Permission:Edit": "Urejanje",
"Permission:Create": "Ustvarjanje",
"Permission:Delete": "Brisanje",
"Permission:Blogging": "Blog",
"Permission:Blogs": "Blogi",
"Permission:Posts": "Objave",
"Permission:Tags": "Oznake",
"Permission:Comments": "Komentarji",
"Title": "Naslov",
"Delete": "Izbriši",
"Reply": "Odgovori",
@ -44,4 +53,4 @@
"Blogs": "Blogi",
"Tags": "Oznake"
}
}
}

@ -3,6 +3,15 @@
"texts": {
"Menu:Blogs": "Bloglar",
"Menu:BlogManagement": "Blog Yönetimi",
"Permission:Management": "Yönetme",
"Permission:Edit": "Düzenle",
"Permission:Create": "Ekle",
"Permission:Delete": "Sil",
"Permission:Blogging": "Blog",
"Permission:Blogs": "Bloglar",
"Permission:Posts": "Yazılar",
"Permission:Tags": "Etiketler",
"Permission:Comments": "Yorumlar",
"Title": "Başlık",
"Delete": "Sil",
"Reply": "Yanıtla",
@ -46,4 +55,4 @@
"ShareOn": "Paylaş",
"TitleLengthWarning": "Başlığınınz SEO dostu olabilmesi için 60 karakterden az olmasını sağlayın!"
}
}
}

@ -3,6 +3,15 @@
"texts": {
"Menu:Blogs": "Blogs",
"Menu:BlogManagement": "Quản lý Blog",
"Permission:Management": "Quản lý",
"Permission:Edit": "Sửa",
"Permission:Create": "Tạo",
"Permission:Delete": "Xóa",
"Permission:Blogging": "Blog",
"Permission:Blogs": "Blogs",
"Permission:Posts": "Bài viết",
"Permission:Tags": "Thẻ",
"Permission:Comments": "Bình luận",
"Title": "Tiêu đề",
"Delete": "Xóa",
"Reply": "Trả lời",

@ -3,6 +3,15 @@
"texts": {
"Menu:Blogs": "博客",
"Menu:BlogManagement": "博客管理",
"Permission:Management": "管理",
"Permission:Edit": "编辑",
"Permission:Create": "创建",
"Permission:Delete": "删除",
"Permission:Blogging": "博客",
"Permission:Blogs": "博客",
"Permission:Posts": "帖子",
"Permission:Tags": "标签",
"Permission:Comments": "评论",
"Title": "标题",
"Delete": "删除",
"Reply": "回复",
@ -44,4 +53,4 @@
"Blogs": "博客",
"Tags": "标签"
}
}
}

@ -3,6 +3,15 @@
"texts": {
"Menu:Blogs": "部落格",
"Menu:BlogManagement": "部落格管理",
"Permission:Management": "管理",
"Permission:Edit": "標及",
"Permission:Create": "新增",
"Permission:Delete": "刪除",
"Permission:Blogging": "部落格",
"Permission:Blogs": "部落格",
"Permission:Posts": "文章",
"Permission:Tags": "標籤",
"Permission:Comments": "評論",
"Title": "標題",
"Delete": "刪除",
"Reply": "回覆",
@ -46,4 +55,4 @@
"ShareOn": "分享在",
"TitleLengthWarning": "為了優化搜索引擎標題建議保持在60個字元以內"
}
}
}

@ -141,6 +141,7 @@ $projects = (
"modules/background-jobs/src/Volo.Abp.BackgroundJobs.MongoDB",
# modules/blogging
"modules/blogging/src/Volo.Blogging.Application.Contracts.Shared",
"modules/blogging/src/Volo.Blogging.Application.Contracts",
"modules/blogging/src/Volo.Blogging.Application",
"modules/blogging/src/Volo.Blogging.Domain",

Loading…
Cancel
Save