首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >GetString始终返回默认语言资源

GetString始终返回默认语言资源
EN

Stack Overflow用户
提问于 2019-06-17 17:22:09
回答 2查看 565关注 0票数 0

我在.Net-Core中有一个微服务,它必须处理resx文件中的一些资源,并根据我通过调用API提供的区域性返回它们,因此我不会使用当前线程的区域性,但当我调用方法GetString(键,区域性)时,它总是返回默认语言。我现在有两个resx文件: resource.resx和resource.it-IT.resx如果我用it-IT区域性字符串调用api,我总是在resource.resx文件而不是resource.it-IT.resx文件中得到翻译结果。

resx文件位于另一个名为Localization的项目中

我有一个泛型方法,其中我传递了我必须本地化的枚举和存储本地化的文件的类型,然后我组成资源的键并调用GetString方法。我还尝试使用以下命令更改当前线程的区域性

代码语言:javascript
复制
Thread.CurrentThread.CurrentUICulture = CultureInfo.GetCultureInfo(cultureName);
代码语言:javascript
复制
public static string GetDisplayName(this Enum e, Type resourceType, string cultureName)
{
   var rm = new ResourceManager(resourceType);

   var resourceDisplayName = rm.GetString(e.GetType().Name + "_" + e, CultureInfo.CreateSpecificCulture(cultureName));

   return string.IsNullOrWhiteSpace(resourceDisplayName) ? string.Format("[[{0}]]", e) : resourceDisplayName;
 }

我已经做了更多的研究,在资源管理器中,当我检查它时,我有3个resourceSet

代码语言:javascript
复制
resource
resource.it
resource.it-IT

如果我检查这3个资源集,我所有的资源都是英文的,资源管理器似乎不会加载resx意大利语文件

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-06-17 18:48:31

读完这篇文章后:NetCore Bug我设法解决了我的问题,首先我将我的方法重构为:

代码语言:javascript
复制
 public static string GetDisplayName(this Enum e, Type resourceType, string cultureName)
    {
        var rm = new ResourceManager(resourceType.FullName, resourceType.Assembly);

        var key = $"{e.GetType().Name}_{e}";
        var culture = CultureInfo.CreateSpecificCulture(cultureName);
        var resourceDisplayName = rm.GetString(key, culture);

        return string.IsNullOrWhiteSpace(resourceDisplayName) ? string.Format("[[{0}]]", e) : resourceDisplayName;
    }

然后,我从API项目中删除了对Localization项目的引用,只将该引用保留在另一个项目中,然后从API项目中引用该项目

票数 0
EN

Stack Overflow用户

发布于 2019-06-17 17:36:34

关于您的resource.resxresource.it-IT.resx文件,请检查您的密钥在这两个文件中是否相同。如果您尝试访问的密钥不可用,代码将自动重定向到默认文件(resource.resx)。

此链接将帮助完成Localization and Globalization的实施

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56628371

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档