Lazarus0.926的中文化配置

Lazarus经过了一年的持续开发,于本月‘正式’发布0.926测试版。(为啥不叫正式版?估计要等到1.0)。最鼓舞人心的特性莫过于UTF8编码的全面支持。这意味着雄心勃勃的开发者能够在自己的软件中同时使用:中文简体、繁体、韩文、日文、法语、阿拉伯语……。不过,作为一个刚刚迈入Pascal编程领域的新手,大鹏关心的是这个东西在中文视窗下的方便之处。下面就几个方面测试:中文界面、代码内中文字符显示、免重装运行、中文输入法热键冲突。

首先的好消息是,中文语言包后继有人。从po文件中得知,一位署名‘XY.Chen’的网友拿起了翻译接力棒。我用winMerge软件对比网友‘巫山霏云’在0.924的工作,内容有很大更新,目测在三成以上。正是有了这些志愿者的辛勤工作,我们很容易见到亲切的中文界面。步骤:Environment》Environment Options…》Desktop》Chinese(zh_CN),重启生效。

第2个消息不是好消息。对于一个喜欢在程序中写中文注释的新手来说,我很遗憾的发现了自0.925以来的一个小问题。代码编辑器中的中文显示会重叠。想像一下,就是5个汉字挤在3个汉字的宽度里。下面有截图,我也找到了勉强解决的办法。该问题我曾在Lazarus的邮件群中请教过,可惜,一群热心的老外‘围观 ’英文不匝地的我,反正是没有解决问题,也不知道有没有人去提交bug。我因为被他们唬得一愣一愣的,也没敢确认这就是一个bug。经过一番折腾,可以确认几点:只是显示问题,不影响代码保存和编译;只是代码编辑器有显示问题,组件属性和中文界面没有影响。另外一个很重要的事实,0.924版本中没有这个问题。

根本原因据老外说,是synedit这个L内置编辑器的问题。暂时发现的解决方法是,更改编辑器的默认字体(Courier New),换个什么呢?Tahoma可以凑和。后来我用的是文泉驿的正黑字体(0.6),效果如图。顺便祝贺文泉驿四岁生日,这是个伟大的开源项目!

lazarus-926-editor-font-err

The way cope with that Chinese characters overlap:  Environment》Editor Options…》Display》Default editor font… (change other font)

第3个消息是,老生常谈的输入法热键冲突在这款IDE上同样发生着。由于英文程序员们不需要输入法,所以他们常常把Ctrl+Space这个快捷键定义为一些辅助输入代码的热键,可惜,这个组合偏偏在中文视窗上是切换中英文输入法的热键。而且视窗热键的级别很高,所以结果就是,当你在Lazarus里面写代码想寻求提示的时候,按了Ctrl+空格,很遗憾,只是把你的拼音或五笔输入法调了出来,而Lazaurs并没有给你应有的提示框。步骤:环境》编辑器选项…》键盘映射》Code Tools命令行》标识符自动完成(改个什么键呢?F2如何?)。

差点还忘记了一个好消息,第4个消息是,现在0.926的Lazarus支持免重装了!也就是说,如果你有一份安装好了的Lazarus,而你的windows遭遇了不测需要重装,或者,你想到另外一台电脑运行L,那么,恭喜你,不需要再次安装了,直接使用或拷贝原来的程序目录即可。lazarus.exe在第一次运行的时候,会弹出好几个对话框,告诉你发现了路径错误(如果你两次运行环境完全一致,则不会有这个问题,比如你重装C盘的Win)。没关系,到环境选项对话框去更改几个路径配置即可。据我观察,新版的Lazarus已经把用户信息写入到了视窗默认的位置(C:\Documents and Settings\…),当然就路径无关了。哦,我的老习惯,L还能够在光盘上只读运行。


 2008-10-29补充:老外在邮件群里面答复了我,已经有人提交了bug并给了一个临时补丁(不知道咋用),具体情况在issue页面上已经写的蛮多了,看这里:bugs.freepascal.org/view.php?id=11819 。回我信的马丁就是这个bug的负责人。

2008-12-7补充:据牡蛎同学提示,已经摸索出彻底的《Lazarus免安装方法》,针对0.926有效。如下:

  1.  下载lazarus-0.9.26-fpc-2.2.2-win32.exe,用UniExtract.exe解压,后者是个专门拆解安装包的免费软件。得到约400MB计一万二千余个文件,形如:
    Lazarus{app}...
        {sys}libqt4intf.dll    1,214 KB    2008-5-9
        install_script.iss    1,362 KB    2008-11-6
  2. 保留最大的app目录,其余无用。然后运行app\Lazarus.exe,会弹出路径警报,确认。出IDE后到环境设置对话框确定各路径为绝对路径。尝试过各种相对路径写法,均失败。至此,可顺利运行L,但不能调用fpc进行编译。报错为:
    C:\...project1.lpr(1,1) Fatal: Can't find unit contnrs used by Masks
  3. 问题的根源为解压目录呢缺少fpc.cfg文件。经猜测,确可用fpcmkcfg.exe生成。命令提示符运行:
    G:\lazarus>fpc2.2.2\bin\i386-win32\fpcmkcfg.exe > fpc.cfg

    然后修改cfg文件内的路径为绝对路径(若能支持相对路径则更好),如:

    #IFDEF FPCAPACHE_2_0
    -Fu/units/$FPCTARGET/httpd-2.0

    改为

    -FuG:\lazarusfpc2.2.2/units/$FPCTARGET/httpd-2.0

    有多处修改,#为注释符号。保存后L即可编译。
    至此完成。

发表一条评论