Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2311688
  • 博文数量: 527
  • 博客积分: 10343
  • 博客等级: 上将
  • 技术积分: 5565
  • 用 户 组: 普通用户
  • 注册时间: 2005-07-26 23:05
文章分类

全部博文(527)

文章存档

2014年(4)

2012年(13)

2011年(19)

2010年(91)

2009年(136)

2008年(142)

2007年(80)

2006年(29)

2005年(13)

我的朋友

分类: WINDOWS

2007-09-12 19:55:56

在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是上一个.





阅读(1176) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~