C# 1个区域性的多个resx文件

C# 1个区域性的多个resx文件,c#,localization,globalization,resx,currentculture,C#,Localization,Globalization,Resx,Currentculture,我有一个c#应用程序,需要支持多种区域性类型。我为每种语言创建了一个resx文件,更改区域性类型会更改我正在使用的resx文件。效果很好。 现在我有一个客户不喜欢我使用的标签。他们在en US文化中,我想保持en US的resx不变,保持我们大多数客户的方式不变,但对于这一特定客户,有没有办法在仍然是en US一部分的情况下更改其资源文件? 例如,我可以制作一个“en-US2”resx文件或类似的文件,并指向它吗?或者有没有更好的方法可以为同一种语言创建多个不同的resx文件?我问了一个类似的问

我有一个c#应用程序,需要支持多种区域性类型。我为每种语言创建了一个resx文件,更改区域性类型会更改我正在使用的resx文件。效果很好。 现在我有一个客户不喜欢我使用的标签。他们在en US文化中,我想保持en US的resx不变,保持我们大多数客户的方式不变,但对于这一特定客户,有没有办法在仍然是en US一部分的情况下更改其资源文件?
例如,我可以制作一个“en-US2”resx文件或类似的文件,并指向它吗?或者有没有更好的方法可以为同一种语言创建多个不同的resx文件?

我问了一个类似的问题,这个问题有着相同的想法,基本上C#应该与单个Resources.resx一起使用,在那里你可以将它文化化。从我在周围的所有搜索中收集到的信息来看,您有两种选择:将其全部放在一个文件中(如workersWelcomeText和employeeWelcomeText),或者创建多个resx文件,并构建一个模型来处理它们,然后返回所需的资源文件:

模型(非必要,但良好实践):

构造从文件检索资源的方法:

    // You can do this in-line, just remember to reset your resex if you change the file
    internal static string GetStrRes(string resourceStr)
    {
        //Gets your resource file
        System.Resources.ResXResourceSet resxSet = new System.Resources.ResXResourceSet(Models.Dialog.ResourceFile);

        string response = resxSet.GetString(resourceStr);

        return response;
    }
要设置模型参数,请执行以下操作:

Models.Dialog.Name = "Worker";
Models.Dialog.Culture = "en-US";
要使用模型,请执行以下操作:

// Returns content of string resource key, same as Resources.workerText
await context.PostAsync(BotUtils.GetStrRes("RES_KEY"));

我问了一个类似的问题,基本上C#是用来与单个Resources.resx一起使用的,在那里你可以把它培养出来。从我在周围的所有搜索中收集到的信息来看,您有两种选择:将其全部放在一个文件中(如workersWelcomeText和employeeWelcomeText),或者创建多个resx文件,并构建一个模型来处理它们,然后返回所需的资源文件:

模型(非必要,但良好实践):

构造从文件检索资源的方法:

    // You can do this in-line, just remember to reset your resex if you change the file
    internal static string GetStrRes(string resourceStr)
    {
        //Gets your resource file
        System.Resources.ResXResourceSet resxSet = new System.Resources.ResXResourceSet(Models.Dialog.ResourceFile);

        string response = resxSet.GetString(resourceStr);

        return response;
    }
要设置模型参数,请执行以下操作:

Models.Dialog.Name = "Worker";
Models.Dialog.Culture = "en-US";
要使用模型,请执行以下操作:

// Returns content of string resource key, same as Resources.workerText
await context.PostAsync(BotUtils.GetStrRes("RES_KEY"));

这可能是您所追求的,但请注意,定制文化1)您可能希望为特殊客户使用多个资源。像MainResource.resx,MainResource.en-US.resx对于每个人,SpecialCase.resx,SpecialCase.en-US.resx对于某些特定的人。2) 或者,如果您控制此特定客户端的部署,您可以只交换资源=),如果您确实需要答案,请向您的问题添加更多信息。或者您可以直接在客户端的计算机上进行编辑。这可能是您想要的,但请注意,自定义区域性1)您可能希望为特殊客户端使用多个资源。像MainResource.resx,MainResource.en-US.resx对于每个人,SpecialCase.resx,SpecialCase.en-US.resx对于某些特定的人。2) 或者,如果您控制此特定客户端的部署,您可以只交换资源=),如果您确实需要答案,请在问题中添加更多信息。或者您也可以直接在客户端的计算机上进行编辑。