Improve translation details.

pull/591/head
梁士伟 7 years ago
parent dccab0220d
commit 1b3425b5bf

@ -13,7 +13,7 @@ ABP内置了简单,动态,强大,模块化的方式.
> 默认情况下已在启动模板安装此软件包. 大多数情况下,你不需要手动安装它.
将`Volo.Abp.AspNetCore.Mvc.UI.Bundling` nuget包安装到的项目中:
将`Volo.Abp.AspNetCore.Mvc.UI.Bundling` nuget包安装到的项目中:
````
install-package Volo.Abp.AspNetCore.Mvc.UI.Bundling
@ -132,7 +132,7 @@ public class MyWebModule : AbpModule
}
````
> 可以在脚本和样式包中使用相同的名称(*MyGlobalBundle*), 因为它们被添加到不同的集合(`ScriptBundles`和`StyleBundles`).
> 可以在脚本和样式包中使用相同的名称(*MyGlobalBundle*), 因为它们被添加到不同的集合(`ScriptBundles`和`StyleBundles`).
在定义bundle之后, 可以使用上面定义的相同tag helpers将其包括在页面中. 例如:
@ -311,7 +311,7 @@ services.Configure<BundlingOptions>(options =>
建议为应用程序定义多个包, 每个包用于不同的目的.
* **全局包**: 应用程序中的每个页面都包含全局样式/脚本包. 主题已经定义了全局样式和脚本包. 的模块可以为他们做出贡献.
* **全局包**: 应用程序中的每个页面都包含全局样式/脚本包. 主题已经定义了全局样式和脚本包. 的模块可以为他们做出贡献.
* **布局包**: 这是针对单个布局的特定包. 仅包含在所有页面之间共享的资源使用布局. 使用bundling tag helpers创建捆绑包是一种很好的做法.
* **模块包**: 用于单个模块页面之间的共享资源.
* **页面包**: 为每个页面创建的特定包. 使用bundling tag helpers创建捆绑包作为最佳实践.

@ -45,7 +45,7 @@ yarn
#### 贡献包
如果你需要不在标准软件包中的第三方NPM软件包,可以在Github[repository](https://github.com/volosoft/abp)上创建Pull请求. 接受遵循这些规则的拉取请求:
如果你需要不在标准软件包中的第三方NPM软件包,可以在Github[repository](https://github.com/volosoft/abp)上创建Pull请求. 接受遵循这些规则的拉取请求:
* 对于NPM上的`package-name`, 包名称应该命名为`@abp/package-name`(例如:`bootstrap`包的`@abp/bootstrap`).
* 它应该是**最新的稳定**版本的包.

@ -86,7 +86,7 @@ public class LabelDto : EntityDto<Guid>
* **推荐** 为异步方法使用 **Async** 后缀.
* **不推荐** 在方法名中重复实体的名称.
* 例如: 在 `IProductAppService` 中定义`GetProductAsync(...)` 而不是 `GetAsync(...)` .
* 例如: 在 `IProductAppService` 中定义`GetAsync(...)` 而不是 `GetProductAsync(...)` .
##### 获取单一实体
@ -104,7 +104,7 @@ Task<QuestionWithDetailsDto> GetAsync(Guid id);
* **推荐** 如果需要获取单个DTO可以使用参数进行 **过滤**, **排序** 和 **分页**.
* **推荐** 尽可能让过滤参数可选.
* **推荐** 将排序与分页属性设置为可选, 并且提供默认值.
* **推荐** 限制最大页数大小 (基性能考虑).
* **推荐** 限制最大页数大小 (基性能考虑).
* **推荐** 返回 **详细DTO**集合. 示例:
````C#
@ -116,7 +116,7 @@ Task<List<QuestionWithDetailsDto>> GetListAsync(QuestionListQueryDto queryDto);
* **推荐** 使用 `CreateAsync` 做为**方法名**.
* **推荐** 使用**专门的输入DTO**来创建实体.
* **推荐** 使用 **data annotations** 进行输入验证.
* 尽可能在**领域**之间共享常量(通过**domain shared** package定义的常量).
* 尽可能在**领域**之间共享常量(通过**domain shared** package定义的常量).
* **推荐** 只需要创建实体的**最少**信息, 但是提供了其他可选属性.
示例**方法**:
@ -147,7 +147,7 @@ public class CreateQuestionDto
- **推荐** 使用**专门的输入DTO**来更新实体.
- **推荐** 获取实体的id做为分离的原始参数. 不要包含更新DTO.
- **推荐** 使用 **data annotations** 进行输入验证.
- 尽可能在**领域**之间共享常量(通过**domain shared** package定义的常量).
- 尽可能在**领域**之间共享常量(通过**domain shared** package定义的常量).
- **推荐** 返回更新实体的**详细**DTO.
示例:

@ -81,7 +81,7 @@ ABP提供了用于处理Web应用程序异常的标准模型.
}
````
`AbpValidationException`已经实现了`IHasValidationErrors`接口,当请求输入无效时,框架会自动抛出此错误. 因此,除非有自定义的验证逻辑,否则不需要处理验证错误.
`AbpValidationException`已经实现了`IHasValidationErrors`接口,当请求输入无效时,框架会自动抛出此错误. 因此,除非有自定义的验证逻辑,否则不需要处理验证错误.
#### 日志

@ -60,7 +60,7 @@ The solution is configured to use **Entity Framework Core** with **MS SQL Server
### 运行应用程序
现在可以运行应用程序,它将会打开**home**页面:
现在可以运行应用程序,它将会打开**home**页面:
![bookstore-homepage](images/bookstore-homepage.png)

@ -1,6 +1,6 @@
## 使用Console Application
本教程将介绍如何从头开始以最小的依赖关系启动ABP. 通常希望以 **[启动模板](https://abp.io/Templates)** 开头.
本教程将介绍如何从头开始以最小的依赖关系启动ABP. 通常希望以 **[启动模板](https://abp.io/Templates)** 开头.
### 创建一个新项目
@ -10,7 +10,7 @@
### 安装 Volo.Abp 包
Volo.Abp.Core是创建基于ABP的应用程序的核心nuget包. 所以,将它安装到的项目中:
Volo.Abp.Core是创建基于ABP的应用程序的核心nuget包. 所以,将它安装到的项目中:
````
Install-Package Volo.Abp.Core

@ -12,7 +12,7 @@ Volo.Abp.Localization是本地化系统的核心包. 使用程序包管理器控
Install-Package Volo.Abp.Localization
```
然后,可以将 **AbpLocalizationModule** 依赖项添加到您的模块:
然后,可以将 **AbpLocalizationModule** 依赖项添加到模块:
```c#
using Volo.Abp.Modularity;
@ -126,7 +126,7 @@ services.Configure<AbpLocalizationOptions>(options =>
##### 扩展现有资源
继承资源可以创建新的资源, 无需修改现有的资源. 但是在某些情况下, 可能不想创建新资源,而是直接扩展现有资源. 例如:
继承资源可以创建新的资源, 无需修改现有的资源. 但是在某些情况下, 可能不想创建新资源,而是直接扩展现有资源. 例如:
````C#
services.Configure<AbpLocalizationOptions>(options =>

@ -76,7 +76,7 @@ ABP提供了 `IBasicRepository<TEntity, TPrimaryKey>` 和 `IBasicRepository<TEnt
#### 自定义仓储示例
ABP不会强制实现任何接口或从存储库的任何基类继承. 它可以只是一个简单的POCO类. 但是建议继承现有的仓储接口和类, 获得开箱即用的标准方法使你的工作更轻松.
ABP不会强制实现任何接口或从存储库的任何基类继承. 它可以只是一个简单的POCO类. 但是建议继承现有的仓储接口和类, 获得开箱即用的标准方法使你的工作更轻松.
##### 自定义仓储接口

@ -107,7 +107,7 @@ public class MyService
通过引用程序集(或添加nuget包)将文件嵌入模块程序集并从另一个项目中使用它对于创建可重用模块非常有价值. 但是, 这使得开发模块本身变得有点困难.
假设正在开发一个包含嵌入式JavaScript文件的模块. 当你更改文件时, 你必须重新编译项目, 重新启动应用程序并刷新浏览器页面以进行更改. 显然, 这是非常耗时和乏味的.
假设正在开发一个包含嵌入式JavaScript文件的模块. 当你更改文件时, 你必须重新编译项目, 重新启动应用程序并刷新浏览器页面以进行更改. 显然, 这是非常耗时和乏味的.
我们需要的是应用程序在开发时直接使用物理文件的能力, 让浏览器刷新时同步JavaScript文件的任何更改. `ReplaceEmbeddedByPyhsical` 方法使其成为可能.

Loading…
Cancel
Save