微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从自定义位置加载本地化资源

如何解决从自定义位置加载本地化资源

一个 c# 应用程序中,我有一个资源文件,其中包含英文字符串 (strings.resx) 和它的几个本地化版本(strings.es.resxstrings.fr.resx 等)。编译时,基本字符串包含在程序集中,每个额外的本地化资源文件都被编译成一个 .dll 文件,该文件放置在一个命名为语言代码(例如 es/<appname>.resource.dll)的文件夹中。

到目前为止,我将所有本地化的 dll 文件与应用程序捆绑在一起。我猜大多数用户最多只需要一个额外的本地化资源文件,所以我想发布没有额外本地化文件的应用程序,并且只在需要时下载它们。假设用户将应用安装在 program files 或其他受保护的文件夹中,我想将本地化文件保存在 %localAppData% 中的文件夹中。

如果本地化的资源文件不在 app 文件夹中,我该如何加载它们?目前它们都在源文件local/strings.resxlocal/strings.es.resx 等中,我可以使用

加载它们
        var rm = new ResourceManager("MyApplication.local.strings",typeof(Form1).Assembly);

具有当前 CultureInfo 的字符串。

我想告诉应用程序:加载字符串,但还要检查此特定文件夹(例如 %localAppData%/MyApplication/local)以获取该资源文件的本地化版本。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。