2018-12-25 VS Code英汉词典v0.0.8: 批量翻译文件部分命名

续前文: VS Code英汉词典进化效果演示: 翻译文件所有命名

vscode"英汉词典"插件地址: 官方链接
现在实现的效果比之前的演示差很多, 因为executeDocumentSymbolProvider返回的标识符比想象中的少很多. 而且像main这样的常用术语还未进行合适的手工翻译.
提取文件中标识符并翻译的相关部分代码:
provideTextDocumentContent(uri: vscode.Uri): string | Thenable<string> {
// TODO: 如果没有当前活跃编辑器, 返回空
let textEditor = vscode.window.activeTextEditor;
return vscode.commands.executeCommand<vscode.DocumentSymbol[]>('vscode.executeDocumentSymbolProvider', textEditor.document.uri)
.then(
(symbols: Array<vscode.DocumentSymbol>) => {
for (var 标识符 of symbols) {
this.原命名列表.push(释义处理.消除英文小括号内容(标识符.name));
for (var 子标识符 of 标识符.children) {
this.原命名列表.push(释义处理.消除英文小括号内容(子标识符.name));
}
}
// 长词先查释义, 以免出现一个命名"xxxxyyyy"先替换了yyyy而xxxx未替换的情况
this.原命名列表.sort(function (a, b) { return b.length - a.length });
var 新内容 = textEditor.document.getText();
for (var 原命名 of this.原命名列表) {
let 中文释义 = 查词.取释义(原命名).释义;
let 翻译 = 释义处理.取字段中所有词(原命名).length > 1
? 中文释义
: 释义处理.首选(中文释义, 词典常量.词性_计算机);
if (翻译) {
新内容 = this._replaceAll(新内容, 原命名, 翻译);
}
}
return 新内容;
}
)
}
-------------- 坑 --------------
之后废了一个小时在这个出现过的这个插件发布才会碰到的问题: Error: Item has already been added. Key in dictionary · Issue #5 · program-in-chinese/vscode_english_chinese_dictionary
初步分析有两个问题:
- 如果两个中文文件名有同样长度, 比如"查词.ts"和"功用.ts", 在本地打包不会有问题(vsce package), 但是在发布时(vsce publish), 估计服务端在保存到后端时会将这两个文件误识别成重命名.
- 更隐蔽一点的, 在无数次重命名后发现, 在运行publish时, 它不会清理本地的js输出文件夹(这里是out/). 因此在重命名过程中生成的所有.js文件都仍然存在. 导致这无数次重命名都没有效果.
打算复现并报告第一点这个bug. 对第二点的权宜之计---发布前手动清理out目录!
2018-12-25 VS Code英汉词典v0.0.8: 批量翻译文件部分命名的更多相关文章
- 2018-12-16 VS Code英汉词典进化效果演示: 翻译文件所有命名
续VS Code英汉词典插件v0.0.7-尝试词性搭配, 下一个功能打算实现文件的批量命名翻译: 批量代码汉化工具 · Issue #86 · program-in-chinese/overview ...
- 2018-12-03 VS Code英汉词典插件v0.0.7-尝试词性搭配
续上文VS Code英汉词典插件v0.0.6-改为TS实现, 加测试后, 继续重构(提取常量, 避免var, 添加类型等等), 并完善测试. 测试方法参考: Testing Visual Studio ...
- 2018-11-29 VS Code英汉词典插件v0.0.6-改为TS实现, 加测试
如前文VS Code英汉词典插件v0.0.4-驼峰下划线命名打算, 首先将JS源码改为TypeScript实现, 并添加了必要的测试. 昨天得知vue.js 3.0会用TypeScript实现, 正好 ...
- 2018-11-09 VS Code英汉词典插件v0.0.4-驼峰下划线命名
首先, 在两天时间内安装数破百, 多谢支持. VS Code插件市场地址: 英汉词典 - Visual Studio Marketplace 开源库地址同前文: Visual Studio Code插 ...
- 2018-11-06 Visual Studio Code插件-英汉词典初版发布
VS插件市场地址: 英汉词典 - Visual Studio Marketplace 开源在: program-in-chinese/vscode_english_chinese_dictionary ...
- 2018-09-06 Java实现英汉词典API初版发布在Maven
在打算批量代码汉化工具 · Issue #86 · program-in-chinese/overview时, 发现没有现成的Java库实现英汉查询功能. 于是开此项目. 源码库: program-i ...
- 吴裕雄--天生自然python学习笔记:python 用firebase实现英汉词典进阶版
用 post 方法创建的数据会自动产生一个 id (Key ),但有时也常常为了取得这个 id 而让程序难以处理 . 以英汉词典标准版来说,它的数据结构如下: 如果将每条数据都改为{eword:cwo ...
- linux 英汉词典程序shell+postgresql版
在linux控制台下工作,有时候遇到不懂的单词,想要找个linux下的词典程序,搜寻无果,只好自己动手写个了. 首先获取词典文本文件,在github上找到一个 建立数据库 create databas ...
- 用java实现的英汉词典
import java.io.*; import java.util.*; public class MyDictionary { static private Map<String, Stri ...
随机推荐
- linux学习(JDK,Tomcat,nginx)安装
最近学习了在linux,在上面搭建了一个tomcat的服务器,后来又使用nginx进行反向代理了一下下,希望文章对初学者有所帮助. 1.安装JDK.(采用jdk的rpm包进行安装) 安装jdk之前需要 ...
- ubuntu18.04安装搜狗拼音
1.下载好搜狗安装包http://pinyin.sogou.com/linux/ ,注意位数! 2.打开终端安装依赖 sudo apt install libfcitx-qt0 3.提取下载好的 ...
- 如何通俗的理解spring的控制反转、依赖注入、面向切面编程等等
之前一直不理解spring的一些基础特性是什么意思,虽然网上的解释也很多,但是由于我比较笨,就是看不懂,知道最近才稍微了解,下面就以通俗讲解的方式记录下来. 前言 假设我是一个没有开店经验的小老板,准 ...
- Swift-函数学习
函数:函数是独立的代码块,执行特定的任务. Swift 的统一函数语法足够灵活,能表达没有参数名称的简单的 C 型函数的任何东西,本地和外部复杂 Objective-C-style 方法参数名称为每个 ...
- 一次故障解决过程梳理:mysql varchar text timestamp
CHAR 类型的一个变体是 VARCHAR 类型,char(M),M是指字节长度,和varchar(M)一样 故障原因:mysql主键设置为int(9),但数据量已经大于int(9)的范围了 tips ...
- 使用jekyll和Github搭建个人博客
一.使用jekyll和Github三步搭建个人博客 在 Github 上建一个库,库的名字是xxx.github.com,其中的xxx是你的github的账号名(图中标注的不要勾选) 注:如果没有Gi ...
- 转载:selenium webdriver定位不到元素的五种原因及解决办法
1.动态id定位不到元素for example: //WebElement xiexin_element = driver.findElement(By.id("_mail_c ...
- nsq源码阅读笔记之nsqd(三)——diskQueue
diskQueue是backendQueue接口的一个实现.backendQueue的作用是在实现在内存go channel缓冲区满的情况下对消息的处理的对象. 除了diskQueue外还有dummy ...
- 学习ASP.NET Core Razor 编程系列十——添加新字段
学习ASP.NET Core Razor 编程系列目录 学习ASP.NET Core Razor 编程系列一 学习ASP.NET Core Razor 编程系列二——添加一个实体 学习ASP.NET ...
- BZOJ_1146_[CTSC2008]网络管理Network_主席树+树状数组
BZOJ_1146_[CTSC2008]网络管理Network_主席树 Description M公司是一个非常庞大的跨国公司,在许多国家都设有它的下属分支机构或部门.为了让分布在世界各地的N个 部门 ...