C# 中,我可以使用常规ISO命名约定(即 Strings.resxStrings.en-GB.resxStrings.fr.resx )为各种语言/文化构建resx文件 . 编译时,我会为每个特定于文化的resx文件获取相应的文件夹 . 我的困境在于使用的命名约定 .

MS使用“格式languagecode2-country / regioncode2,其中languagecode2是从 ISO 639-1 派生的小写双字母代码,country / regioncode2是从 ISO 3166 派生的大写双字母代码 . ”

由于与我公司中其他组件的一些交互,我几乎无法控制,我需要使用下划线(_),如下所示:languagecode2_country / regioncode2 . 例如,我需要 "en_GB" 而不是 "en-GB" . 目标是让我的应用程序在系统上的文化设置为 "en-GB" 时,在名为 en_GB 的文件夹中查找资源文件 .

这可能吗?我没有为分隔符找到ISO规范,所以如果那样,我可以将其用作弹药来修复真正的问题并遵循我正在使用的其他组件中的标准 .

请注意,当我访问应用程序中的本地化资源时,我会通过 designer.cs 文件中的自动生成属性执行此操作,因此我不能将 "en-GB" 替换为 "en_GB" .