續上文 "VS Code英漢詞典插件v0.0.6 改為TS實現, 加測試" 後, 繼續重構(提取常量, 避免var, 添加類型等等), 並完善測試. 測試方法參考: "Testing Visual Studio Code Extensions" , 調試也支持. 覺得雖然啟動測試有一定開銷(似乎必需 ...
續上文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