我有一个需要本地化的C#应用程序。我可以使用RESX .NET MUI strategy来做到这一点。现在,我有一个单独的团队,在构建/编译时提供额外的本地化资源(XML文件)。我想利用.NETs MUI策略提供一个很好的回退机制,但我似乎无法找到实现这一目标的方法。
注意,我已经考虑过在我的应用程序的字符串资源文件中添加本地化的文件名(我知道)。但是,如果在运行时该文件不存在,那么我将遇到问题(并且无法自动回退)。
那么,在这种情况下有没有办法利用.NET MUI策略?
答案 0 :(得分:1)
选项1:
您可以将XML文件存储在资源中,然后获取一个流对象来读取它,它使用与字符串相同的方法等。请参阅http://msdn.microsoft.com/en-us/library/zxee5096.aspx。
选项2:
您也可以使用与资源本身相同的基本方法。我发现Web应用程序很方便,它通常基于很多文件(.aspx,.html,.css,.js,.png等)。假设您有一堆目录,如:
localized / en / SomeFile1.xml(等等......) localized / en-US / SomeFile1.xml(等等......) 集中式/ EN-GB / SomeFile.xml 局部/ FR / SomeFile.xml
我接受了我的en-IE偏好,并且你不匹配,但是你确实匹配en并且这已经足够好了(理想情况下你应该选择en-IE比en更接近en-GB-美国,但这完全进入奖励 - 信用领域,并且比.NET更好地利用资源)。
您的匹配算法应为:
zxx
未被.NET afaik使用,但它与BCP 47 / RFC 4647和ISO 639一起用于没有语言内容的项目 - 例如你的护照照片是locale zxx因为将法国文件作为约鲁巴语或威尔士语文件使用是恰当的。)此时,您将比资源文件做得更好。尽管如此,大多数选项1更简单,而且更加独立。