C# 将本地化添加到ASP.NET Core 2.0应用程序
我需要将本地化添加到我的ASP.NET核心应用程序中 我不知道实现这个目标的最好方法是什么。。。我希望有包含不同翻译的外部文件,这样我就可以修改它们,而无需再次编译我的应用程序 我在互联网上看到,有两种方法可以在.Net核心应用程序中添加本地化: -使用.resx文件,但不能根据需要修改它们 -我需要的是.po文件 但是,我不知道.po文件是否真的是一个好的解决方案。。。有一个金块软件包“OrchardCore.Localization.Core”,它配置了PO文件支持,但它是一个测试版,没有太多的更改,据我所知,它似乎不能很好地与DataAnnotation配合使用C# 将本地化添加到ASP.NET Core 2.0应用程序,c#,localization,asp.net-core-mvc,C#,Localization,Asp.net Core Mvc,我需要将本地化添加到我的ASP.NET核心应用程序中 我不知道实现这个目标的最好方法是什么。。。我希望有包含不同翻译的外部文件,这样我就可以修改它们,而无需再次编译我的应用程序 我在互联网上看到,有两种方法可以在.Net核心应用程序中添加本地化: -使用.resx文件,但不能根据需要修改它们 -我需要的是.po文件 但是,我不知道.po文件是否真的是一个好的解决方案。。。有一个金块软件包“OrchardCore.Localization.Core”,它配置了PO文件支持,但它是一个测试版,没有太
你觉得怎么样?对于我的问题,什么是最好的解决方案?事实上,在构建过程中,resx文件被编译成二进制文件(),因此在不重新编译的情况下,您无法修改它们(至少是简单地修改它们) 相反,PO文件是纯文本文件,可以随时轻松编辑 这是我在我的项目中使用PO而不是内置的、基于resx的本地化很长一段时间的原因之一。我从Orchard CMS项目(经典项目)中得到了这个想法,它对我来说非常有效。我认为作者在Orchard的.NET核心重新实现中坚持使用PO这一事实很好地表明PO是本地化的可行选择 要在ASP.NET Core中进行PO本地化,您需要:
- 一个PO文件解析器。Orchard Core必须包含这样的内容,但我不知道它有多成熟。当我切换到.NET内核并在.NET标准上实现它时,我需要这个功能。后来我
- 的自定义实现。这并不难做到。你可以找到这样一个例子,例如
至于数据注释:我不知道Orchard Core中如何实现本地化的确切细节,但是如果您使用IStringLocalizer路径,那么您在数据注释本地化方面的问题应该不会少,也不会多,就像您使用默认的resx实现一样。(关于数据注释本地化,有一些已知的问题,比如没有那么严重的问题太难解决。)“但是你不能随心所欲地修改它们”什么?为什么不呢?官方文档中有很多关于使用任何你想要的翻译源的文档。你试过调查吗?查看@DavidG以了解我读到的内容,.resx是应用程序解决方案中包含的资源文件。您不能使用外部工具修改它们,而不必再次编译应用程序以进行更改。我错了吗?有什么我不明白的吗?很好的解释!谢谢!