首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >全球化现有的Windows窗体应用程序?

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

Stack Overflow用户
提问于 2009-10-05 11:58:35
回答 4查看 11.8K关注 0票数 10

我有一个使用VS2005和.net Framework2.0开发的现有winforms应用程序。

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

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

我想知道全球化现有应用程序的最佳方法,是应该在每个表单上设置localize属性,还是有一些工具可以提取标签名称并控制日期格式、货币等的names..what考虑因素。

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

在开始全球化活动之前,我们将把应用程序迁移到VS2008和.net Framework3.5。

EN

Stack Overflow用户

发布于 2009-10-05 12:13:02

如果你使用Visual Source Safe作为你的源代码控制(希望你不是),无论你做什么,都不要在你的源代码中添加日语文本。虽然Visual Studio可以处理unicode源文件,但VSS不能很好地处理它们。

我开发了一个将自身翻译成日语的应用程序,在源代码本身中包含日语(用于调用类似MessageBox的函数)会损坏文件,而且因为VSS是基于diff的,所以文件会一直损坏到原始的签入版本。由于VSS将基于unicode的CS文件的某些部分(每个字符使用两个字节)偏移了一个字节,所以会发生这种损坏。

修复这些文件需要大量的手工工作,我的老板在我身后盯着我,尖叫着说我们注定要失败,所以不要这么做。

此外,这里还有几个关于此主题的其他StackOverflow问题:

Best way to implement multi-language/globalization in large .NET project

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

就我个人而言,我更喜欢更简单的方法。在Excel或应用程序中需要翻译的每一段英文文本(控制文本属性、在MessageBox函数中使用的字符串等)中创建一个列表。并将电子表格发送给您的翻译人员。在应用程序中,在每个窗体的Load事件中调用一个方法,该方法循环访问窗体上的所有控件,并将其文本属性更改为翻译值。将所有对MessageBox的调用替换为对翻译要显示的文本的中间函数的调用,然后使用翻译后的文本调用MessageBox。

使用内置的全球化方法是一项大量的工作,因为您必须手动创建每个全球化表单,然后手动将所有文本替换为翻译,而这项任务非常需要程序员流利。我提到的方法是通过编程完成的,不需要程序员流利地使用翻译后的语言。

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

https://stackoverflow.com/questions/1519648

复制
相关文章

相似问题

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