[原]Sublime Text 汉化技巧:防止其它插件覆盖主菜单名称[赵亮-碧海情天thefore]

问题

  迄今为止,仍然发现有些朋友提供的Sublime Text汉化包存在这种问题:汉化后的主菜单名称(主要是“配置”和“工具”两个菜单)会在安装插件时被插件改写成英文。
  我在汉化时也碰到了这个问题,并早已解决。后来把自己积累的很多翻译和定制的风格发布出来,希望于大家有益,也盼望得到建议。在第一版的介绍中就提到了对这个问题的解决,只是没有单独拎出来。
  考虑到搜索引擎收录和用户搜索时对兴趣点的关注,我想有必要单独把这个问题拿出来讲一下,方便仍然被这个问题困扰的用户和汉化作者们参考。

解决方案

  方法1. 直接下载 http://my.oschina.net/theforever/blog/188155 中的软件包。有兴趣就可以去查看一下里面以我名字命名的插件,它有多个作用,其中之一就是解决这个问题的。
  方法2. 看本文章,学会原理,自己尝试。
  借用句老话:“以彼之道还施彼身”。听起来有点玄妙,实则很简单合理。既然问题是由于其它插件修改 main.sublime-menu 文件引起的,我们当然也可以来同样改回去。
  关于 Sublime Text 菜单格式的说明,恐怕网上第一份独家首发的就是我前一两个月写的这篇文章 http://my.oschina.net/theforever/blog/186764 (说是概要,是因为没介绍JSON格式。如果懂得JSON格式,也可以说是一份详解了),有不熟悉的朋友可以先查看了解一下。
  解决问题的关键其实主要就在于:如何控制修改的时机,也就是说怎么控制在所有那些英文插件改变菜单之后再把菜单改回去,而不是过早执行之后被它们又在后面改回去。
  通过我的判断和尝试,Sublime Text 是按照插件(或插件目录)的名称来逐个加载的。同时,插件包的加载顺序优先,插件目录的加载顺序靠后。
  因此,只要在 Data\Packages 目录下建立一个名称相对于其它一般插件名称肯定更靠后的目录(因为Sublime Text使用UTF8,所以自然支持汉语,汉语名称肯定比任何英文名称更靠后),在其中放置一个main.sublime-meu,在里面只放置几个主菜单的项目,设置好对应的id和汉化的caption即可。
  这样一来,由于这个菜单文件相对于其它菜单文件是最后执行的,因此可以通过重载来覆盖之前所有插件对主菜单的改变。于是你尽管随便装多少插件,都不会再导致主菜单变成英文了,因为最终又设成中文了。

  在我的发布包里,主菜单的第一项是一个汉化作者的信息按钮。但它并不是那么简单,从开始我就打算用这个按钮来告诉大家菜单文件的修改运用的可能和方法。对有兴趣的朋友们来说,这是我准备的一个礼物。我绝不强调让你保留它,而是希望你看会它,然后觉得位置如果不顺心可以删掉它(虽然在我来看,通过它使菜单让出行号栏也很不错,也许是我自己看习惯了吧)。

你可能感兴趣的:([原]Sublime Text 汉化技巧:防止其它插件覆盖主菜单名称[赵亮-碧海情天thefore])