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

问题描述

一个 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 (将#修改为@)