Moe*_*eri 5 c# localization asp.net-core
我已经在 .NET(框架和核心)领域工作多年了,我希望将 .NET Framework 应用程序移植到 .NET Core。
在此 .NET Framework 应用程序中,我们有 .resx 文件,其中包含数千个标签,并翻译为 5 种语言。这些 .resx 文件已生成 C# 源代码,使我们能够以类型安全的方式静态访问它们。这样做时会尊重当前的 UI 文化。
当我查找 .NET Core 中的本地化文档(可在此处找到)时,游戏规则发生了巨大变化:
我是唯一一个认为这比 .NET Framework 中的内容复杂得多且不必要的人吗?我能理解ILocalizer和朋友们从哪里来的,因为现在一切都需要经过依赖注入。但是魔法弦呢?Resx 文件到处都是?
老实说,.NET Core 的底层机制一直给我留下了深刻的印象,但本地化方面却让我完全不知所措。有没有人可以针对这个问题提供可靠、有效的解决方案?拥有类型安全标签可能是我的第一要求。
提前致谢!
编辑:这是具有更好格式的赏金消息:
我正在寻找 C# 本地化解决方案
如果这些要求的唯一解决方案是现有的 .resx 工作流程,那么我也会接受来自官方文档的权威答案或来自 Microsoft 内部权威人士的声明,其中明确提到带有生成的 C# 代码的资源文件是可接受的,支持 ILocalizer 故事的替代方案。
小智 1
尽管管理多语言资源的首选方法是使用您提到的那些接口,但您可以继续使用通过.NET Core 创建多语言应用程序的旧风格,方法是拥有多个“resx”文件。但我找不到提到“resx”文件将来将过时的文档。
我创建了一个示例 .Net Core Web api,它使用两个单独的资源文件来提供其字符串。它使用一个参数通过以下代码确定其 Thread.CurrentThread.CurrentUICulture:
[HttpGet]
public ActionResult<string> Get(string lang)
{
Thread.CurrentThread.CurrentUICulture = CultureInfo.GetCultureInfo(lang);
return Resource.Test;
}
Run Code Online (Sandbox Code Playgroud)
正如您在这些图片中看到的,根据我的首选语言,我得到了两种不同的输出。
| 归档时间: |
|
| 查看次数: |
555 次 |
| 最近记录: |