Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 创建多语言用户控件_C#_Winforms_User Controls_Multilingual - Fatal编程技术网

C# 创建多语言用户控件

C# 创建多语言用户控件,c#,winforms,user-controls,multilingual,C#,Winforms,User Controls,Multilingual,我正在开发一个用户控件,现在(在工作结束时)我面临着使其成为多语言的问题。 我想我可以这样做: 对于UI部分,我可以在控件上设置Localizable=true,并让VS生成默认语言所需的所有“记录” 然后我必须手动添加用于动态菜单、消息等的所有字符串 最后,我需要为我需要的语言创建所有资源文件 所以使用来自 我的工作可以(很容易)完成。 但我有一些问题: 当从最终用户使用我的控件(生成的DLL)时,由于目标应用程序中的主命名空间更改,我在使用新ResourceManager(…)时会遇到一些问

我正在开发一个用户控件,现在(在工作结束时)我面临着使其成为多语言的问题。 我想我可以这样做:

  • 对于UI部分,我可以在控件上设置
    Localizable=true
    ,并让VS生成默认语言所需的所有“记录”
  • 然后我必须手动添加用于动态菜单、消息等的所有字符串
  • 最后,我需要为我需要的语言创建所有资源文件
  • 所以使用来自

    我的工作可以(很容易)完成。
    但我有一些问题:

  • 当从最终用户使用我的控件(生成的DLL)时,由于目标应用程序中的主命名空间更改,我在使用
    新ResourceManager(…)
    时会遇到一些问题吗?
    考虑到我不知道最终用户将使用哪个命名空间。
  • 当我创建语言资源时,VS生成附属程序集:有没有办法将这些文件“集成”到目标DLL中?
    如果可能的话,我只想部署一个文件
  • 有没有更好的方法来完成我的任务
  • 当我开发一个多语言控件时,我真的需要关心什么吗
  • 谢谢大家


    更新:(感谢@lak-b的建议) 经过研究,我回答了一些问题:

  • 的确,我可以硬编码名称空间,当最终用户将我的控件放在他的窗体上时,这一点不会改变
  • 嗯,似乎没有一个简单的方法。
    无论如何,这是一个很好的教训,也是一个很好的解决方案
  • 。。。不,对于这个问题,我仍在等待有人告诉我更好/更简单的方法
  • lak-b中规定了一些临界点。
    还有什么我必须担心的吗
  • 再次感谢

    看一看

  • 您可以在此处输入“硬编码”程序集名称
  • 试试这个
  • 你只要在这件事上胡思乱想,然后付诸行动就行了!:)简言之,你必须关心很多事情:
    • 日期时间
    • 通货
    • 一周的第一天
    • 从右向左或从左向右 等等

  • 我现在很忙,但我会尽快看一看。谢谢非常感谢,你的帖子给了我一些想法,因此我能够找到其他帖子/资源。看看我编辑的帖子+1给你:)
    Assembly myAssembly = this.GetType().Assembly;
    ResourceManager mgr = new ResourceManager("namespace.resource", myAssembly);
    mgr.GetString(...)