.net core 实现基于 JSON 的多语言
摘要:资源文件示例:。Razor 视图示例:。
.net core 实现基于 JSON 的实现多语言
Intro
上次我们提到了,微软默认提供基于资源文件的多语言本地化,个人感觉使用起来不是太方便,没有 json 看起来直观,于是动手造了一个轮子, dotnet core 基于 json 的本地化组件
GetStarted
需要引用 nuget 包 WeihanLi.Extensions.Localization.Json
注册服务:
中间件配置(如果是asp.net core,和之前一样):
That's it~
添加你的资源文件
TypeBased 资源文件的路径
For Types:
Home/Index
=> Controllers/HomeController
资源路径:
-
[ResourcesPath]/Controllers/HomeController.[cultureName].json
示例:
-
Resources/Controllers/HomeController.en.json
-
Resources/Controllers/HomeController.zh.json
For Razor 视图:
示例:
-
Resources/Views/Home/Index.en.json
-
Resources/Views/Home/Index.zh.json
CultureBased 资源文件路径
For Types:
Home/Index
=> Controllers/HomeController
资源路径:
-
[ResourcesPath]/[cultureName]/Controllers/HomeController.json
示例:
-
Resources/en/Controllers/HomeController.json
-
Resources/zh/Controllers/HomeController.json
For Razor 视图:
示例:
-
Resources/en/Views/Home/Index.json
-
Resources/zh/Views/Home/Index.json
Copy your resource files to output:
需要设置将资源文件拷贝到输出目录,否则会找不到资源文件,可以在启动项目项目文件中加入以下示例代码:
上面的配置会将 Resources
目录下的所有 json 文件拷贝到输出目录下,可以根据自己的需要进行修改
Use
用法和之前是一样的
Controller 示例:
Razor 视图示例:
资源文件示例:
Samples
-
AspNetCore3.1 Basic Sample
-
ActivityReservation