中文编程
首发于中文编程
VS Code英汉词典插件v0.0.7-尝试词性搭配

VS Code英汉词典插件v0.0.7-尝试词性搭配

续上文VS Code英汉词典插件v0.0.6-改为TS实现, 加测试后, 继续重构(提取常量, 避免var, 添加类型等等), 并完善测试.

测试方法参考: Testing Visual Studio Code Extensions, 调试也支持. 觉得虽然启动测试有一定开销(似乎必需启动一个vscode个例), 但还可以接受. 在重构过程中测试用例起了保驾作用.

借助TypeScript特性, 为所有的接口添加了类型, 比如:

export interface 词形变化 {
  类型: string;
  变化: string;
}

export interface 单词条 {
  : string;
  释义: string;
  词形: 词形变化[];
}

export interface 字段释义 {
  原字段: string;
  释义: string;
  各词: 单词条[];
}

尝试形容词+名词搭配优先:

export function 选取释义(所有词条: 模型.单词条[], 所有词: string[]): string[] {
  let 所有释义 = [];

  // TODO: 重构
  if (所有词条.length == 2) {
    let 1释义 = 所有词条[0].释义;
    let 2释义 = 所有词条[1].释义;
    if (1释义 && 取按词性释义(1释义).has(词典常量.词性_形容词)
      && 2释义 && 取按词性释义(2释义).has(词典常量.词性_名词)) {
      所有释义.push(首选(1释义, 词典常量.词性_形容词));
      所有释义.push(首选(2释义, 词典常量.词性_名词));
      return (所有释义);
    }
  }

  for (let i = 0; i < 所有词条.length; i++) {
    let 词条 = 所有词条[i];
    所有释义.push(词条.释义 ? 首选(词条.释义, 词典常量.词性_计算机) : 所有词[i]);
  }
  return 所有释义;
}

下面的打算:

改进命名: 常用命名/缩写的手工翻译 · Issue #16 · program-in-chinese/vscode_english_chinese_dictionary

添加并列编辑器形式的源码翻译: 批量代码汉化工具 · Issue #86 · program-in-chinese/overview

编辑于 2018-12-04

文章被以下专栏收录

    在所有编程语言和领域中尝试编写中文代码,开发相关工具,总结经验,一致代码风格。包括中文命名,汉化现有语言,创造中文语法的编程语言等等。作为最熟悉的母语,用来编写代码会让代码更容易被自己和母语相同的其他开发者理解。基于英文的编程语言和框架中,使用中文命名有时有技术问题。希望这里为后人趟雷,填坑。多数现有API是英文的,这里也会对其中一些常用的进行汉化。当然,这里也会对基于中文的编程语言进行探讨。包括汉化基于英文的编程语言,以及创造新的编程语言。