相关疑难解决方法(0)

在大型.NET项目中实现多语言/全球化的最佳方式

我将很快开始研究一个大型的c#项目,并希望从一开始就构建多语言支持.我有一个游戏,可以使用每种语言的单独资源文件,然后使用资源管理器加载字符串.

我还有其他可以研究的好方法吗?

.net c# multilingual localization

74
推荐指数
3
解决办法
8万
查看次数

全球化现有的Windows窗体应用程序?

我有一个使用VS 2005和.net framework 2.0开发的现有winforms应用程序.

现在我们需要全球化这个应用程序.这两个地区是德语和日语.

我知道我们可以使用form的localize属性来创建本地化的表单资源,并且可以为消息框中使用的字符串,异常等提供其他资源文件.

我想知道全局化现有应用程序的最佳方法,我应该在每个表单上设置localize属性,还是有一些工具可以提取标签名称和控件名称...日期格式,货币,等等

我们还在代码中的某些地方使用了一些复合字符串来连接消息字符串,这些字符串如何被本地化?

在开始全球化活动之前,我们将把应用程序迁移到VS 2008和.net framework 3.5.

.net globalization internationalization winforms

10
推荐指数
1
解决办法
1万
查看次数

C#中的多语言支持

我在c#windows Appliation中开发了一个示例软件.如何使其成为多语言支持软件.

例如:其中一个消息框显示"欢迎使用示例应用程序"

我在chinees操作系统中安装了该软件,但它只显示英文信息.

我正在使用"字符串表"(资源文件)来解决这个问题.

在字符串表中,我需要为英语和中文中的每条消息创建条目.

这是一个及时的过程.还有其他办法吗?

c# multilingual localization winforms

6
推荐指数
1
解决办法
4429
查看次数

进行多语言用户控制

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

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

所以使用MSDN中的代码

Assembly myAssembly = this.GetType().Assembly;
ResourceManager mgr = new ResourceManager("namespace.resource", myAssembly);
mgr.GetString(...) 
Run Code Online (Sandbox Code Playgroud)

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

  1. 当我从最终用户使用我的控件(生成的DLL)时,new ResourceManager(...)由于目标应用程序中的主命名空间更改,我是否可以使用?
    考虑我不知道最终用户将使用哪个命名空间.
  2. 当我创建语言资源时,VS会生成附属程序集:有没有办法可以将这些文件"集成"到目标DLL中?
    我想尽可能只部署一个文件......
  3. 有没有更好的方法来完成我的任务?
  4. 在开发多语言控件时,有什么我真的需要关心的吗?

感谢大家


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

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

  1. 这是真的,我可以硬编码命名空间,当最终用户将我的控件放在他的表单上时,它不会被更改
  2. 好吧,似乎没有一个简单的方法.
    无论如何,这个SO帖子提供了一个很好的教训和一个很好的解
  3. ...不,对于这个问题,我还在等待有人告诉我一个更好/更简单的方法
  4. 从lak-b中指定了一些关键点.
    还有什么我不得不担心的吗?

再次感谢

c# multilingual user-controls winforms

5
推荐指数
1
解决办法
2288
查看次数

如何转换C#.NET应用程序以支持多种语言?

我有一个C#应用程序,我需要转换为支持英语和西班牙语,是否有一种简单的方法来添加它,以后能够添加其他语言?

c# localization winforms

4
推荐指数
1
解决办法
2726
查看次数

从SQL表构建C#dll

我有一个包含三列的SQL表:Id,English和Norwegian.Id是主键.在我的应用程序中,我有一个标志(EN/NO)来决定用于标签的哪种语言,GUI中的按钮++.应用程序每次加载时都会执行select*,应用程序在运行时查找所有必需的值.但是我没有为每个实例加载整个数据集,而是想导出这些值并创建一个dll,这样我就可以在本地存储这些值.

是否有可能创建这个in-code,因此dll会在每次构建时自行更新?或者我必须运行一些外部程序来动态创建ex.一个.cs代码复制/粘贴到我的班级?(我需要能够重新运行该过程,因为每次需要新标签/文本时都会添加行)

到目前为止,我已经考虑过如何构建导出的三个解决方案,但是没有关于如何导出数据的线索:

  1. 在静态上下文中保留DataTable的状态,并提供帮助方法来标准化获取值的方式.

  2. 创建一个包含每个唯一ID作为method-name的类,以及一个用于决定返回哪个值的参数:

    public static class Names
    {
      public static string 12345(string language)
      {
        switch (language)
        {
            case "EN":
                return "Hello";
            case "NO":
                return "Hei";
            default:
                return "Hello";
        }
      }
    }
    
    Run Code Online (Sandbox Code Playgroud)
  3. 为ID为键的每种语言创建一个包含可搜索列表的类,并将值(作为值)

c# sql dll sql-server-2008 c#-4.0

1
推荐指数
1
解决办法
346
查看次数