【发布时间】:2018-06-01 03:36:30
【问题描述】:
由于我缺乏知识,我已经编辑了这个问题
我正在制作一个带有DataGridView 的UserControl,我想尽可能地简化实现过程,所以我想知道我应该通过本地化来做到这一点吗?
据我所知,research 到目前为止,我的本地化方法是这样的:
例如,假设我的 form/UserControl 上有一个按钮,文本属性设置为 "hello" ,现在我想将我的 form/UserControl 本地化为意大利语。
- 将 localizable 属性设置为 true 并选择语言(在这种情况下 意大利语)
- 谷歌翻译
- 将文本属性设置为“Ciao”
默认情况下是英语,所以我的表单中已经有.resx 文件,但是在此之后VS 将生成意大利语资源,其中button.Text 属性为key,“ciao”为值,如果我理解正确,但是如果有人来将 button.Text 属性从 hello 更改为“hello world”,那么我的意大利资源将不正确,除非手动更改,有没有办法以某种方式自动进行此更改?
我想知道这一点,因为当我的UserControl 和DataGridView 在某些form 上实现时,我无法确定我的DataGridView 有哪些列,所以我想知道我是否应该将本地化过程留给实施我控制的人?
谢谢你,非常感谢你的帮助,很抱歉编辑。
【问题讨论】:
-
@ZoharPeled 我可以在用户控件中添加 .resx 文件,但我需要在其中包含大量字符串,因为我不知道将在哪个表单上实现
-
如果
DataGridView的列始终相同,那么在设计时使用UserControl的LocalizableandLanguageproperty 也是一个简单的好选择。最好的方法是基于意见。这取决于不同的要求。如果列不同并且可以由UserControl的用户添加,那么您不需要在控件本身中提供本地化,表单应该是可本地化的,您只需将列公开为您的控制权。 -
@RezaAghaei 感谢您的建议,列不一样,所以您对表单本地化是正确的,但我在考虑长期,如果可能添加或修改新列,我该如何更新@987654340 @文件自动,我知道这不是我的工作,但刚刚开始工作并试图证明自己,也许我应该编辑问题
-
添加新列的时间,也将本地化字符串添加到资源中。要更改语言或添加新语言,您可以分发附属程序集。
-
@RezaAghaei 谢谢你,很好的建议,但我第一次听说卫星组件,我认为这是一个很好的example,如果你有更多的时间,请随时回答我的问题。跨度>
标签: c# winforms datagridview user-controls