首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何从dll获取可用的翻译

如何从dll获取可用的翻译
EN

Stack Overflow用户
提问于 2009-02-25 10:26:56
回答 2查看 861关注 0票数 1

有没有办法获得.net动态链接库的可用资源翻译?

我们的软件正在被翻译成一些不同的语言,我想让用户选择软件所用的语言,尽管我只想让他们在翻译成的语言之间进行选择。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-09-07 13:22:36

我只是遇到了类似的问题,所以只是为了将来的参考。

对于我的软件,翻译在程序文件夹中,每一个都在它们自己的子文件夹下,以区域性名称命名。代码解释了这一切:

代码语言:javascript
运行
复制
    private void SettingsForm_Load(object sender, EventArgs e)
    {
   // load default language to the list
        languageList.Add(new Language("English", "en"));
        string fileName = "myProgram.resources.dll";

   // load other languages available in the folder
        DirectoryInfo di = new DirectoryInfo(Application.StartupPath);
        foreach (DirectoryInfo dir in di.GetDirectories())
        {
            if (File.Exists(dir.FullName + "\\" + fileName))
            {
                try
                {
                    CultureInfo ci = new CultureInfo(dir.Name);
                    languageList.Add(new Language(ci.NativeName, ci.Name));
                }
                catch
                {
                    // whatever happens just don't load the language and proceed ;)
                    continue;
                }
            }
        }
    }

它增加了一些异常处理开销,但有多少用户会在安装目录中创建自定义文件夹,并使用与本地化文件完全相同的假资源??:P

票数 2
EN

Stack Overflow用户

发布于 2009-02-25 11:50:27

因此,您需要能够获取基本dll的区域性,然后枚举所有附属dll?

第一部分非常简单(只需获取程序集级属性)。

对于后者,在类ResourceManager上似乎没有帮助器,这意味着您需要模拟它的探测机制(可能包括属性和.config文件提供的所有覆盖)。

另一种选择是在构建或安装时构建列表(如果以后可以添加其他语言,后者会工作得更好),为.config文件创建一个列表。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/585461

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档