在Form Designer的属性空格中, 默认的语言是中性语言, 即显示为(Default)的第一项, 为了做Localization, 需要把切换到其它语言比如简体中文, 如果切换之前被编译的Form 文件是已存盘且没有新的更改, 同时也假设要切换到的语言也在此前被编译过, 如此一来也就是说你还没有输入一个字, 但显示在编译区中文件title 已经变成了*号, 表明被更改过. 这怎么回事? 到底什么被改了?
*.cs文件并未被改动, 问题是, 在VS2003中, 在Form Designer中做改动, 意味着可能被修改的不仅是*.cs文件, 还可能影响其资源文件. 一直以来都对IDE真正做了什么怀有疑问, 今天终于较真把文件先备份至别处, 切换后存盘, 一一比较过去.
◆ *.cs文件并未被更改
◆ *.resx 文件中多出了一项:
<data name="$this.Language" type="System.Globalization.CultureInfo, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Chinese (Simplified)</value>
</data>
|
仅此
◆ *.zh-chs.resx 文件也多出了一项:
<data name="$this.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Inherit</value>
</data>
|
也仅此而已.
不过, 实际去比较这两个文件时你会被微软障碍耳目, 因为他会把XML文件中各项的顺序给搞乱(这么做无疑会给这个世界上所有那些管理.NET代码的CVS服务器添加负担, 因为check in时两个文件diff的结果会不必要地变多), 为了彰显真正的不同之处, 下面是用vim 处理此类问题的办法:
1. 将所有
... 折叠至一行
g/
/j
2. 将所有 :95,$-sort
高版本的vim 中内置sort了, 低版本的需要是 :95,$-!sort
3. 分别在两个缓冲区中执行 :diffthis
4. 从文件第一行开始, 在normal模式下, 用]c 跳转至下一个不同处, [c是上一个.
阅读(1204) | 评论(0) | 转发(0) |