gpt4 book ai didi

c# - 制作多语言用户控件

转载 作者:太空狗 更新时间:2023-10-29 23:41:15 25 4
gpt4 key购买 nike

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

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

所以使用来自 MSDN 的代码

Assembly myAssembly = this.GetType().Assembly;
ResourceManager mgr = new ResourceManager("namespace.resource", myAssembly);
mgr.GetString(...)

我的工作可以(轻松)完成。
但我有一些问题:

  1. 当最终用户使用我的控件(生成的 DLL)时,由于目标应用程序中的主命名空间发生变化,我在使用 new ResourceManager(...) 时是否会遇到一些麻烦?
    假设我不知道最终用户将使用哪个命名空间。
  2. 当我创建语言资源时,VS 会生成附属程序集:有没有一种方法可以将这些文件“集成”到我的目标 DLL 中?
    如果可能,我只想部署一个文件...
  3. 是否有更好的方法来完成我的任务?
  4. 在开发多语言控件时,我真的需要注意什么吗?

谢谢大家


更新:(感谢@lak-b 的一些建议)

经过一些研究我回答了一些问题:

  1. 是的,我可以硬编码命名空间,当最终用户将我的控件放在他的表单上时,这不会改变
  2. 嗯,看来没有简单的方法。
    不管怎样this SO post提供了精彩的类(class)和出色的解决方案!!
  3. ...不,对于这个问题,我还在等待有人告诉我更好/更简单的方法
  4. 从 lak-b 指定了一些临界点。
    还有什么我需要担心的吗?

再次感谢

最佳答案

看看Best practice to make a multi language application in C#/WinForms?

  1. 您可以在此处“硬编码”程序集名称。
  2. 试试这个 http://research.microsoft.com/en-us/people/mbarnett/ILMerge.aspx
    1. 您只需要仔细研究并实际操作即可! :) 简而言之 - 你必须关心很多事情:
      • 日期时间
      • 货币
      • 一周的第一天
      • 从右到左或从左到右等等。

关于c# - 制作多语言用户控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7802306/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com