From f24cca4ea9fb6d97d0b2f1c85dc83fb0a3ea7e61 Mon Sep 17 00:00:00 2001 From: Johnny Date: Mon, 15 Apr 2019 16:47:41 +0800 Subject: [PATCH 1/5] Add translation for enum value --- lib/i18n/traditional-chinese.js | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/lib/i18n/traditional-chinese.js b/lib/i18n/traditional-chinese.js index 0a3acae55..eeee33815 100644 --- a/lib/i18n/traditional-chinese.js +++ b/lib/i18n/traditional-chinese.js @@ -9,8 +9,27 @@ // See COPYING for details "use strict"; +var keys = [ + ["on", "開"],["off", "關"],["drip coffee","濾掛式 咖啡"],["espresso","義式 濃縮"],["latte","拿鐵"],["flat white", "牛奶 咖啡"],["mocha","摩卡"], + ["caramel mocha","星冰樂"],["white mocha","白摩卡"],["macchiato","瑪琪雅朵"],["caramel macchiato","白瑪琪雅朵"],["cappuccino","卡布其諾"],["americano","美式"], + ["heat","暖氣"],["cool","冷氣"],["track","歌曲"],["normal","普通"],["vibrate","振動"],["silent","靜音"],["auto","自動"],["away","不在"],["pool","共乘"],["select","uber 精選"], + ["suv","休旅車"],["assist","uber 關懷"],["best of youtube","熱門"],["recommended","推薦"],["paid","付費"],["music","音樂"],["comedy","喜劇"],["film and entertainment","電影 與 娛樂"], + ["gaming","遊戲"],["beauty and fashion","流行"],["from_tv","電視"],["automotive","汽車"],["animation","動畫"],["sports","動畫"],["diy","動手做"],["tech","科技"],["science","科學 與 自然"], + ["cooking","烹飪"],["causes","起因"],["news and politics","政治"],["lifestyle","生活 風格"],["raining","下雨"],["cloudy","多雲"],["sunny","晴天"],["snowy","下 雪"],["sleety","下 冰雹"], + ["drizzling","毛毛雨"],["windy","刮風"],["politics","政治"],["opinions","社論"],["local","地區"],["sports","運動"],["national","國家"],["world","國際"],["business","商業"], + ["powerpost","焦點"],["capital weather gang","首都 天氣"],["morning mix","晨間 新聞"],["wonkblog"],["world news","世界 新聞"],["us business","美國 商業"],["markets","市場"], + ["technology","科技"],["cat","貓"],["dog","狗"],["horse","馬"],["snail","蝸牛"],["year","年"],["yoda",],["shakespeare","莎士比亞"],["vulcan","瓦肯人"],["klingon","克林貢"], + ["viral","傳閱"],["rising","上升"],["uber_black","尊榮"] +] + function postprocessSynthetic(sentence, program) { // We need a dummy postprocessSynthetic() here + keys.forEach(function(key) { + var re = new RegExp("\\b" + key[0] + "\\b", "g"); + if(sentence.match(re)){ + sentence = sentence.replace(key[0], key[1]) + } + }); return sentence; } From 7749a2e93b72f6cc9aab746520db6506129c8086 Mon Sep 17 00:00:00 2001 From: Johnny Date: Mon, 15 Apr 2019 17:26:15 +0800 Subject: [PATCH 2/5] Add map Chinese content --- lib/i18n/traditional-chinese.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/i18n/traditional-chinese.js b/lib/i18n/traditional-chinese.js index eeee33815..1c596318f 100644 --- a/lib/i18n/traditional-chinese.js +++ b/lib/i18n/traditional-chinese.js @@ -18,7 +18,7 @@ var keys = [ ["cooking","烹飪"],["causes","起因"],["news and politics","政治"],["lifestyle","生活 風格"],["raining","下雨"],["cloudy","多雲"],["sunny","晴天"],["snowy","下 雪"],["sleety","下 冰雹"], ["drizzling","毛毛雨"],["windy","刮風"],["politics","政治"],["opinions","社論"],["local","地區"],["sports","運動"],["national","國家"],["world","國際"],["business","商業"], ["powerpost","焦點"],["capital weather gang","首都 天氣"],["morning mix","晨間 新聞"],["wonkblog"],["world news","世界 新聞"],["us business","美國 商業"],["markets","市場"], - ["technology","科技"],["cat","貓"],["dog","狗"],["horse","馬"],["snail","蝸牛"],["year","年"],["yoda",],["shakespeare","莎士比亞"],["vulcan","瓦肯人"],["klingon","克林貢"], + ["technology","科技"],["cat","貓"],["dog","狗"],["horse","馬"],["snail","蝸牛"],["year","年"],["yoda","尤達"],["shakespeare","莎士比亞"],["vulcan","瓦肯人"],["klingon","克林貢"], ["viral","傳閱"],["rising","上升"],["uber_black","尊榮"] ] From 25d11875825e4af3f255304b391668825b02504e Mon Sep 17 00:00:00 2001 From: Johnny Date: Mon, 15 Apr 2019 18:01:06 +0800 Subject: [PATCH 3/5] Fix travis error --- lib/i18n/traditional-chinese.js | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/lib/i18n/traditional-chinese.js b/lib/i18n/traditional-chinese.js index 1c596318f..2f09d45e8 100644 --- a/lib/i18n/traditional-chinese.js +++ b/lib/i18n/traditional-chinese.js @@ -20,15 +20,14 @@ var keys = [ ["powerpost","焦點"],["capital weather gang","首都 天氣"],["morning mix","晨間 新聞"],["wonkblog"],["world news","世界 新聞"],["us business","美國 商業"],["markets","市場"], ["technology","科技"],["cat","貓"],["dog","狗"],["horse","馬"],["snail","蝸牛"],["year","年"],["yoda","尤達"],["shakespeare","莎士比亞"],["vulcan","瓦肯人"],["klingon","克林貢"], ["viral","傳閱"],["rising","上升"],["uber_black","尊榮"] -] +]; function postprocessSynthetic(sentence, program) { // We need a dummy postprocessSynthetic() here keys.forEach(function(key) { var re = new RegExp("\\b" + key[0] + "\\b", "g"); - if(sentence.match(re)){ - sentence = sentence.replace(key[0], key[1]) - } + if(sentence.match(re)) + sentence = sentence.replace(key[0], key[1]); }); return sentence; } From 86300c137ec3a93654722a527fc9fd35772b6f0d Mon Sep 17 00:00:00 2001 From: Johnny Date: Wed, 17 Apr 2019 16:29:08 +0800 Subject: [PATCH 4/5] Add test and fix keys content order --- lib/i18n/traditional-chinese.js | 8 +++---- test/test_i18n_chinese.js | 40 +++++++++++++++++++++++++++++++++ 2 files changed, 44 insertions(+), 4 deletions(-) create mode 100644 test/test_i18n_chinese.js diff --git a/lib/i18n/traditional-chinese.js b/lib/i18n/traditional-chinese.js index 2f09d45e8..ded8049cc 100644 --- a/lib/i18n/traditional-chinese.js +++ b/lib/i18n/traditional-chinese.js @@ -10,14 +10,14 @@ "use strict"; var keys = [ - ["on", "開"],["off", "關"],["drip coffee","濾掛式 咖啡"],["espresso","義式 濃縮"],["latte","拿鐵"],["flat white", "牛奶 咖啡"],["mocha","摩卡"], - ["caramel mocha","星冰樂"],["white mocha","白摩卡"],["macchiato","瑪琪雅朵"],["caramel macchiato","白瑪琪雅朵"],["cappuccino","卡布其諾"],["americano","美式"], + ["on", "開"],["off", "關"],["drip coffee","濾掛式 咖啡"],["espresso","義式 濃縮"],["latte","拿鐵"],["flat white", "牛奶 咖啡"],["white mocha","白摩卡"], + ["caramel mocha","星冰樂"],["mocha","摩卡"],["macchiato","瑪琪雅朵"],["caramel macchiato","白瑪琪雅朵"],["cappuccino","卡布其諾"],["americano","美式"], ["heat","暖氣"],["cool","冷氣"],["track","歌曲"],["normal","普通"],["vibrate","振動"],["silent","靜音"],["auto","自動"],["away","不在"],["pool","共乘"],["select","uber 精選"], ["suv","休旅車"],["assist","uber 關懷"],["best of youtube","熱門"],["recommended","推薦"],["paid","付費"],["music","音樂"],["comedy","喜劇"],["film and entertainment","電影 與 娛樂"], ["gaming","遊戲"],["beauty and fashion","流行"],["from_tv","電視"],["automotive","汽車"],["animation","動畫"],["sports","動畫"],["diy","動手做"],["tech","科技"],["science","科學 與 自然"], ["cooking","烹飪"],["causes","起因"],["news and politics","政治"],["lifestyle","生活 風格"],["raining","下雨"],["cloudy","多雲"],["sunny","晴天"],["snowy","下 雪"],["sleety","下 冰雹"], - ["drizzling","毛毛雨"],["windy","刮風"],["politics","政治"],["opinions","社論"],["local","地區"],["sports","運動"],["national","國家"],["world","國際"],["business","商業"], - ["powerpost","焦點"],["capital weather gang","首都 天氣"],["morning mix","晨間 新聞"],["wonkblog"],["world news","世界 新聞"],["us business","美國 商業"],["markets","市場"], + ["drizzling","毛毛雨"],["windy","刮風"],["politics","政治"],["opinions","社論"],["local","地區"],["sports","運動"],["national","國家"],["world","國際"],["powerpost","焦點"], + ["capital weather gang","首都 天氣"],["morning mix","晨間 新聞"],["wonkblog"],["world news","世界 新聞"],["us business","美國 商業"],["business","商業"],["markets","市場"], ["technology","科技"],["cat","貓"],["dog","狗"],["horse","馬"],["snail","蝸牛"],["year","年"],["yoda","尤達"],["shakespeare","莎士比亞"],["vulcan","瓦肯人"],["klingon","克林貢"], ["viral","傳閱"],["rising","上升"],["uber_black","尊榮"] ]; diff --git a/test/test_i18n_chinese.js b/test/test_i18n_chinese.js new file mode 100644 index 000000000..627f941bf --- /dev/null +++ b/test/test_i18n_chinese.js @@ -0,0 +1,40 @@ +// -*- mode: js; indent-tabs-mode: nil; js-basic-offset: 4 -*- +// +// This file is part of ThingEngine +// +// Copyright 2019 National Taiwan University +// +// Author: Johnny Hsu +// +// See COPYING for details +"use strict"; + +const assert = require('assert'); + +const zh_tw = require('../lib/i18n/traditional-chinese'); + +const SENTENCE_TEST_CASES = [ + ["給 我 一杯 drip coffee", "給 我 一杯 濾掛式 咖啡"], + ["給 我 一杯 white mocha", "給 我 一杯 白摩卡"], + ["幫 我 放 music", "幫 我 放 音樂"], + ["今天 天氣 是 raining", "今天 天氣 是 下雨"], + ["台北 的 天氣 cloudy", "台北 的 天氣 多雲"], + ["給 我 powerpost 版 新聞", "給 我 焦點 版 新聞"], + ["福斯 新聞 的 us business 新聞", "福斯 新聞 的 美國 商業 新聞"], + ["叫 一 輛 uber uber_black", "叫 一 輛 uber 尊榮"], +]; + +function testPostProcessSynthetic() { + for (let i = 0; i < SENTENCE_TEST_CASES.length; i++) { + let [original, processed] = SENTENCE_TEST_CASES[i]; + let result = zh_tw.postprocessSynthetic(original, ""); + assert.strictEqual(processed, result); + } +} + +async function main() { + testPostProcessSynthetic() +} +module.exports = main; +if (!module.parent) + main(); \ No newline at end of file From 9b59c162d03bbbe87d901f0d6260822effa2802b Mon Sep 17 00:00:00 2001 From: Johnny Date: Wed, 17 Apr 2019 16:35:50 +0800 Subject: [PATCH 5/5] Add test_i18n_chinese in test/index.js --- test/index.js | 1 + 1 file changed, 1 insertion(+) diff --git a/test/index.js b/test/index.js index 646cdf92c..9b49bce85 100644 --- a/test/index.js +++ b/test/index.js @@ -19,4 +19,5 @@ seq([ ('./test_stream_utils'), ('./test_requoting'), ('./test_sentence_generator'), + ('./test_i18n_chinese'), ]);