C# 为什么我的所有资源文件都包含TrayLocation?是西苏利泽';是谁的错?

C# 为什么我的所有资源文件都包含TrayLocation?是西苏利泽';是谁的错?,c#,winforms,localization,C#,Winforms,Localization,在我们的C#WinForms应用程序中,我们遇到了一些本地化问题:大量.resx文件中似乎有一个“control.trayloLocation”条目,其值指定了点位置(例如17、58)。这是非常不寻常的,因为通常会将此类属性添加到资源文件中,名称以“>>”开头,以指示它们是表单属性 这可能与我们使用Sisulizer进行翻译有关,因为它可能会向.resx添加一个属性,但很难确定这是否是原因 有没有其他人在WinForms和Sisulizer上遇到过同样的问题?注:为了充分披露,我是TranSol

在我们的C#WinForms应用程序中,我们遇到了一些本地化问题:大量.resx文件中似乎有一个“control.trayloLocation”条目,其值指定了点位置(例如17、58)。这是非常不寻常的,因为通常会将此类属性添加到资源文件中,名称以“>>”开头,以指示它们是表单属性

这可能与我们使用Sisulizer进行翻译有关,因为它可能会向.resx添加一个属性,但很难确定这是否是原因


有没有其他人在WinForms和Sisulizer上遇到过同样的问题?注:为了充分披露,我是TranSolution的作者,TranSolution是Visual Studio开发人员的本地化程序(因此也是Sisulizer的竞争对手)。这不一定是Sisulizer添加的内容(尽管这是可能的)。当您创建托盘控件时,MSFT会自行添加此属性,该控件只是出现在visual Studio窗体设计器底部的“托盘”区域中的非可视控件。依我看,它通常不是一个“System.Windows.Forms.Control”衍生工具,即GUI控件。它是与表单或用户控件关联的其他非可视控件,例如“System.Data.DataSet”(因此不是最终用户实际看到的内容的一部分)。例如,在表单设计器中,尝试将“工具箱”中的“数据集”拖到表单上。它将出现在设计器窗口底部的区域(“托盘”区域),因此“TrayLocation”属性将显示它在该区域中的位置。您甚至会在“.resx”文件中注意到,该属性是“元数据”元素,而不是“数据”元素(与“.resx”文件中的大多数其他元素一样)。此上下文中的“元数据”通常指的是通常不与控件关联的附加属性(附加属性可以动态添加到任何.NET对象,但这是一个很长的过程)。这些特定属性通常由VisualStudio本身使用,因此您不会发现它们作为MSDN中实际控件的一部分被记录。请注意,您提到的“>>”实际上指定了与表单或用户控件关联的4个特殊MSFT属性之一,即:

>>控制名

>>ControlName.Type

>>ControlName.Parent

>>ControlName.ZOrder

但是,这些与托盘控件无关(它们通常只用于表单或用户控件)。事实上,MSFT甚至没有对它们进行正式的文档记录(上次我检查时),尽管您在基于表单的“.resx”文件中找到的很多内容都没有文档记录。您可以在这里找到这些属性的准官方解释(来自MSFT表单团队的人员)


最后,请注意,根据程序的不同,在第三方本地化程序中处理这些属性和其他情况可能并不总是正确的。我不知道Sisulizer在做什么(想必他们在为您正确处理事情),但根据我自己的经验,要一次追踪到这一点需要做很多工作(同样,因为基于表单的“.resx”文件中发生的许多事情没有被MSFT记录在案)。

注意:为了充分披露,我是TranSolution的作者,TranSolution是Visual Studio开发人员的本地化程序(因此也是Sisulizer的竞争对手)。这不一定是Sisulizer添加的内容(尽管这是可能的)。当您创建托盘控件时,MSFT会自行添加此属性,该控件只是出现在visual Studio窗体设计器底部的“托盘”区域中的非可视控件。依我看,它通常不是一个“System.Windows.Forms.Control”衍生工具,即GUI控件。它是与表单或用户控件关联的其他非可视控件,例如“System.Data.DataSet”(因此不是最终用户实际看到的内容的一部分)。例如,在表单设计器中,尝试将“工具箱”中的“数据集”拖到表单上。它将出现在设计器窗口底部的区域(“托盘”区域),因此“TrayLocation”属性将显示它在该区域中的位置。您甚至会在“.resx”文件中注意到,该属性是“元数据”元素,而不是“数据”元素(与“.resx”文件中的大多数其他元素一样)。此上下文中的“元数据”通常指的是通常不与控件关联的附加属性(附加属性可以动态添加到任何.NET对象,但这是一个很长的过程)。这些特定属性通常由VisualStudio本身使用,因此您不会发现它们作为MSDN中实际控件的一部分被记录。请注意,您提到的“>>”实际上指定了与表单或用户控件关联的4个特殊MSFT属性之一,即:

>>控制名

>>ControlName.Type

>>ControlName.Parent

>>ControlName.ZOrder

但是,这些与托盘控件无关(它们通常只用于表单或用户控件)。事实上,MSFT甚至没有对它们进行正式的文档记录(上次我检查时),尽管您在基于表单的“.resx”文件中找到的很多内容都没有文档记录。您可以在这里找到这些属性的准官方解释(来自MSFT表单团队的人员)


最后,请注意,根据程序的不同,在第三方本地化程序中处理这些属性和其他情况可能并不总是正确的。我不知道Sisulizer在做什么(想必他们正在为您正确地处理事情),但根据我自己的经验,一次又一次地追踪这一点需要花费大量的工作(同样,因为基于表单的“.resx”文件中发生的许多事情没有被MSFT记录).

两周前,我注意到了同样的问题,并向Sisulizer报告了这个问题。他们解决了这个问题,并且在使用最新的b