谷歌浏览器的源码分析(2)

这么大的工程,我从哪里开始呢?我认为从界面开始,这样才可以快速地深入研究。下面就可以先尝试修改一个chrome的关于对话框,上一次看到它是英语的,那么我就来把它改成中文的吧,这样有目标了。从chrome的工程里可以看到它是支持多种语言的,在Windows平台上支持多语言的标准做法,就是写多个语言的DLL。因此,chrome也不例外,从app工程集里,就可以看到如下图所示:

<shapetype id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="[email protected]@[email protected]@[email protected]@[email protected]@5xe" filled="f" stroked="f"><stroke joinstyle="miter"></stroke><formulas><f eqn="if lineDrawn pixelLineWidth 0"></f><f eqn="sum @0 1 0"></f><f eqn="sum 0 0 @1"></f><f eqn="prod @2 1 2"></f><f eqn="prod @3 21600 pixelWidth"></f><f eqn="prod @3 21600 pixelHeight"></f><f eqn="sum @0 0 1"></f><f eqn="prod @6 1 2"></f><f eqn="prod @7 21600 pixelWidth"></f><f eqn="sum @8 21600 0"></f><f eqn="prod @7 21600 pixelHeight"></f><f eqn="sum @10 21600 0"></f></formulas><path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"></path><lock v:ext="edit" aspectratio="t"></lock></shapetype><shape id="_x0000_i1025" style="WIDTH: 218.25pt; HEIGHT: 592.5pt" type="#_x0000_t75"><imagedata src="file:///C:/DOCUME~1/caijs/LOCALS~1/Temp/msohtml1/01/clip_image001.png" o:title="可多米3"></imagedata></shape>

谷歌浏览器的源码分析(2)


上面显示了多种语言的动态连接库资源,其中zh-CN是简体中文的。

接着打开资源文件的字符串编辑,如下图:

<shape id="_x0000_i1026" style="WIDTH: 437.25pt; HEIGHT: 66pt" type="#_x0000_t75"><imagedata src="file:///C:/DOCUME~1/caijs/LOCALS~1/Temp/msohtml1/01/clip_image003.png" o:title="可多米4"></imagedata></shape>

谷歌浏览器的源码分析(2)


把上面的字符串修改为 “关于 可多米”,然后把这个工程重新编译一下,就会生成下面的文件:

<shape id="_x0000_i1027" style="WIDTH: 393pt; HEIGHT: 78.75pt" type="#_x0000_t75"><imagedata src="file:///C:/DOCUME~1/caijs/LOCALS~1/Temp/msohtml1/01/clip_image005.png" o:title="可多米5"></imagedata></shape>

谷歌浏览器的源码分析(2)


然后运行自己编译的可多米,就会显示出修改的成果,如下图:

<shape id="_x0000_i1028" style="WIDTH: 436.5pt; HEIGHT: 410.25pt" type="#_x0000_t75"><imagedata src="file:///C:/DOCUME~1/caijs/LOCALS~1/Temp/msohtml1/01/clip_image007.png" o:title="可多米6"></imagedata></shape>

谷歌浏览器的源码分析(2)


可以看到关于对话框的标题,就变成我上面修改的了。这样学习它的修改,就是几分钟的事情,哈哈......

这样就学习了可多米开发汉化的工作,这是本地化的重要做的一件事情,也学习到怎么样支持多语言的实现方式。那么它的关于对话框是从那里显示出来的呢?怎么样把字符串更新到上面的呢?下一次再告诉你。