Skip to content

Commit 7330614

Browse files
authored
Merge pull request #171 from MediaTek-Labs/playground
v2.16.0
2 parents 073a790 + 2e3f9ad commit 7330614

24 files changed

+2913
-2561
lines changed

.manifest.5196.json

Whitespace-only changes.

.manifest.5247.json

Whitespace-only changes.

blockly/apps/blocklyduino/category.xml

+2
Original file line numberDiff line numberDiff line change
@@ -649,6 +649,8 @@
649649
<block type="otto_ultrasonic_distance"></block>
650650
<block type="otto_buzzer_init"></block>
651651
<block type="otto_buzzer_sing"></block>
652+
<block type="otto_mouth"></block>
653+
<block type="otto_led_matrix_init"></block>
652654
</category>
653655
</category>
654656
</category>

blockly/apps/blocklyduino/index.html

+2
Original file line numberDiff line numberDiff line change
@@ -837,6 +837,8 @@
837837
<block type="otto_ultrasonic_distance"></block>
838838
<block type="otto_buzzer_init"></block>
839839
<block type="otto_buzzer_sing"></block>
840+
<block type="otto_mouth"></block>
841+
<block type="otto_led_matrix_init"></block>
840842
</category>
841843
</category>
842844
</category>

blockly/arduino_compressed.js

+129-127
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

blockly/blockly_compressed.js

+105-101
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

blockly/blockly_uncompressed.js

+1,534-1,534
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

blockly/blocks/otto.js

+70
Original file line numberDiff line numberDiff line change
@@ -376,3 +376,73 @@ Blockly.Blocks['otto_buzzer_sing'] = {
376376
this.setTooltip(Blockly.Msg.OTTO_BUZZER_INIT_TOOLTIP);
377377
}
378378
};
379+
380+
Blockly.Blocks['otto_mouth'] = {
381+
init: function() {
382+
this.setHelpUrl(Blockly.Msg.OTTO_HELPURL);
383+
this.setColour(Blockly.Blocks.otto.HUE);
384+
this.appendDummyInput()
385+
.appendField(Blockly.Msg.OTTO_MOUTH_TITLE)
386+
.appendField(new Blockly.FieldDropdown([
387+
[Blockly.Msg.OTTO_MOUTH_ZERO, "zero"],
388+
[Blockly.Msg.OTTO_MOUTH_ONE, "one"],
389+
[Blockly.Msg.OTTO_MOUTH_TWO, "two"],
390+
[Blockly.Msg.OTTO_MOUTH_THREE, "three"],
391+
[Blockly.Msg.OTTO_MOUTH_FOUR, "four"],
392+
[Blockly.Msg.OTTO_MOUTH_FIVE, "five"],
393+
[Blockly.Msg.OTTO_MOUTH_SIX, "six"],
394+
[Blockly.Msg.OTTO_MOUTH_SEVEN, "seven"],
395+
[Blockly.Msg.OTTO_MOUTH_EIGHT, "eight"],
396+
[Blockly.Msg.OTTO_MOUTH_NINE, "nine"],
397+
[Blockly.Msg.OTTO_MOUTH_SMILE, "smile"],
398+
[Blockly.Msg.OTTO_MOUTH_HAPPY_OPEN, "happyOpen"],
399+
[Blockly.Msg.OTTO_MOUTH_HAPPY_CLOSED, "happyClosed"],
400+
[Blockly.Msg.OTTO_MOUTH_HEART, "heart"],
401+
[Blockly.Msg.OTTO_MOUTH_BIG_SUPRISE, "bigSurprise"],
402+
[Blockly.Msg.OTTO_MOUTH_SMALL_SUPRISE, "smallSurprise"],
403+
[Blockly.Msg.OTTO_MOUTH_TONGUE_OUT, "tongueOut"],
404+
[Blockly.Msg.OTTO_MOUTH_VAMP_1, "vamp1"],
405+
[Blockly.Msg.OTTO_MOUTH_VAMP_2, "vamp2"],
406+
[Blockly.Msg.OTTO_MOUTH_LINE_MOUTH, "lineMouth"],
407+
[Blockly.Msg.OTTO_MOUTH_CONFUSED, "confused"],
408+
[Blockly.Msg.OTTO_MOUTH_DIAGONAL, "diagonal"],
409+
[Blockly.Msg.OTTO_MOUTH_SAD, "sad"],
410+
[Blockly.Msg.OTTO_MOUTH_SAD_OPEN, "sadOpen"],
411+
[Blockly.Msg.OTTO_MOUTH_SAD_CLOSED, "sadClosed"],
412+
[Blockly.Msg.OTTO_MOUTH_OK_MOUTH, "okMouth"],
413+
[Blockly.Msg.OTTO_MOUTH_X_MOUTH, "xMouth"],
414+
[Blockly.Msg.OTTO_MOUTH_INTERROGATION, "interrogation"],
415+
[Blockly.Msg.OTTO_MOUTH_THUNDER, "thunder"],
416+
[Blockly.Msg.OTTO_MOUTH_CULITO, "culito"],
417+
[Blockly.Msg.OTTO_MOUTH_ANGRY, "angry"]
418+
]), "MOUTH");
419+
this.setPreviousStatement(true, null);
420+
this.setNextStatement(true, null);
421+
this.setTooltip(Blockly.Msg.OTTO_MOUTH_INIT_TOOLTIP);
422+
}
423+
};
424+
425+
Blockly.Blocks['otto_led_matrix_init'] = {
426+
init: function() {
427+
this.setHelpUrl(Blockly.Msg.OTTO_HELPURL);
428+
this.setColour(Blockly.Blocks.otto.HUE);
429+
this.appendDummyInput()
430+
.appendField(Blockly.Msg.OTTO_LED_MATRIX_INIT_TITLE)
431+
.appendField(Blockly.Msg.OTTO_LED_MATRIX_DIN)
432+
.appendField(new Blockly.FieldDropdown(profile.default.digital), "DIN")
433+
.appendField(Blockly.Msg.OTTO_LED_MATRIX_CS)
434+
.appendField(new Blockly.FieldDropdown(profile.default.digital), "CS")
435+
.appendField(Blockly.Msg.OTTO_LED_MATRIX_CLK)
436+
.appendField(new Blockly.FieldDropdown(profile.default.digital), "CLK")
437+
.appendField(Blockly.Msg.OTTO_LED_MATRIX_DIR)
438+
.appendField(new Blockly.FieldDropdown([
439+
[Blockly.Msg.OTTO_MATRIX_DIR_0, "MATRIX_DIR_0"],
440+
[Blockly.Msg.OTTO_MATRIX_DIR_90, "MATRIX_DIR_90"],
441+
[Blockly.Msg.OTTO_MATRIX_DIR_180, "MATRIX_DIR_180"],
442+
[Blockly.Msg.OTTO_MATRIX_DIR_270, "MATRIX_DIR_270"]
443+
]), "DIR");
444+
this.setPreviousStatement(true, null);
445+
this.setNextStatement(true, null);
446+
this.setTooltip(Blockly.Msg.OTTO_LED_MATRIX_INIT_TOOLTIP);
447+
}
448+
};

blockly/blocks_compressed.js

+276-270
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

blockly/generators/arduino/otto.js

+63-28
Original file line numberDiff line numberDiff line change
@@ -36,16 +36,16 @@ Blockly.Arduino.otto_init = function() {
3636
Blockly.Arduino.definitions_['define_include_otto'] = '#include <Otto.h>\n';
3737
Blockly.Arduino.definitions_['define_define_otto_item'] = 'Otto __otto;\n';
3838

39-
Blockly.Arduino.definitions_['define_define_otto_ascii'] = '/*\n --------------- \n | O O |\n |---------------|\n YR ==> | | <== YL \n --------------- \n || ||\n || ||\n RR ==> ----- ----- <== RL \n |----- -----|\n*/\n';
39+
Blockly.Arduino.definitions_['define_define_otto_ascii'] = '/*\n --------------- \n | O O |\n |---------------|\n RIGHT LEG ==> | | <== LEFT LEG \n --------------- \n || ||\n || ||\n RIGHT FOOT ==> ----- ----- <== LEFT FOOT \n |----- -----|\n*/\n';
4040

41-
Blockly.Arduino.definitions_['define_define_otto_init_yl'] = '#define OTTO_PIN_YL ' + dropdown_yl;
42-
Blockly.Arduino.definitions_['define_define_otto_init_yr'] = '#define OTTO_PIN_YR ' + dropdown_yr;
43-
Blockly.Arduino.definitions_['define_define_otto_init_rl'] = '#define OTTO_PIN_RL ' + dropdown_rl;
44-
Blockly.Arduino.definitions_['define_define_otto_init_rr'] = '#define OTTO_PIN_RR ' + dropdown_rr;
41+
Blockly.Arduino.definitions_['define_define_otto_init_yl'] = '#define OTTO_PIN_LEFT_LEG ' + dropdown_yl;
42+
Blockly.Arduino.definitions_['define_define_otto_init_yr'] = '#define OTTO_PIN_RIGHT_LEG ' + dropdown_yr;
43+
Blockly.Arduino.definitions_['define_define_otto_init_rl'] = '#define OTTO_PIN_LEFT_FOOT ' + dropdown_rl;
44+
Blockly.Arduino.definitions_['define_define_otto_init_rr'] = '#define OTTO_PIN_RIGHT_FOOT ' + dropdown_rr;
4545

46-
Blockly.Arduino.setups_['setup_otto_init'] = '__otto.initLegs(OTTO_PIN_YL, OTTO_PIN_YR, OTTO_PIN_RL, OTTO_PIN_RR, false);';
46+
Blockly.Arduino.setups_['setup_otto_init'] = '__otto.initLegs(OTTO_PIN_LEFT_LEG, OTTO_PIN_RIGHT_LEG, OTTO_PIN_LEFT_FOOT, OTTO_PIN_RIGHT_FOOT, false);';
4747

48-
var code = ''
48+
var code = '';
4949
return code;
5050
};
5151

@@ -59,14 +59,18 @@ Blockly.Arduino.otto_calibrate = function(){
5959
Blockly.Arduino.definitions_['define_include_otto'] = '#include <Otto.h>\n';
6060
Blockly.Arduino.definitions_['define_define_otto_item'] = 'Otto __otto;\n';
6161

62-
Blockly.Arduino.definitions_['define_define_otto_trim_yl'] = '#define OTTO_TRIM_YL ' + yl;
63-
Blockly.Arduino.definitions_['define_define_otto_trim_yr'] = '#define OTTO_TRIM_YR ' + yr;
64-
Blockly.Arduino.definitions_['define_define_otto_trim_rl'] = '#define OTTO_TRIM_RL ' + rl;
65-
Blockly.Arduino.definitions_['define_define_otto_trim_rr'] = '#define OTTO_TRIM_RR ' + rr;
62+
Blockly.Arduino.definitions_['define_define_otto_trim_yl'] = '#define OTTO_TRIM_LEFT_LEG ' + yl;
63+
Blockly.Arduino.definitions_['define_define_otto_trim_yr'] = '#define OTTO_TRIM_RIGHT_LEG ' + yr;
64+
Blockly.Arduino.definitions_['define_define_otto_trim_rl'] = '#define OTTO_TRIM_LEFT_FOOT ' + rl;
65+
Blockly.Arduino.definitions_['define_define_otto_trim_rr'] = '#define OTTO_TRIM_RIGHT_FOOT ' + rr;
6666

67-
Blockly.Arduino.setups_['setup_otto_trim'] = '__otto.setTrims(OTTO_TRIM_YL, OTTO_TRIM_YR, OTTO_TRIM_RL, OTTO_TRIM_RR);';
67+
if ('setup_otto_init' in Blockly.Arduino.setups_) {
68+
Blockly.Arduino.setups_['setup_otto_init'] = '__otto.initLegs(OTTO_PIN_LEFT_LEG, OTTO_PIN_RIGHT_LEG, OTTO_PIN_LEFT_FOOT, OTTO_PIN_RIGHT_FOOT, true);';
69+
}
6870

69-
var code = ''
71+
Blockly.Arduino.setups_['setup_otto_trim'] = '__otto.setTrims(OTTO_TRIM_LEFT_LEG, OTTO_TRIM_RIGHT_LEG, OTTO_TRIM_LEFT_FOOT, OTTO_TRIM_RIGHT_FOOT);';
72+
73+
var code = '';
7074
return code;
7175
};
7276

@@ -75,7 +79,7 @@ Blockly.Arduino.otto_home = function(){
7579
Blockly.Arduino.definitions_['define_include_otto'] = '#include <Otto.h>\n';
7680
Blockly.Arduino.definitions_['define_define_otto_item'] = 'Otto __otto;\n';
7781

78-
var code = '__otto.home();\n'
82+
var code = '__otto.home();\n';
7983
return code;
8084
};
8185

@@ -88,7 +92,7 @@ Blockly.Arduino.otto_walk = function(){
8892
Blockly.Arduino.definitions_['define_include_otto'] = '#include <Otto.h>\n';
8993
Blockly.Arduino.definitions_['define_define_otto_item'] = 'Otto __otto;\n';
9094

91-
var code = '__otto.walk(' + distance + ', ' + duration + ', ' + dropdown_direction + ');\n'
95+
var code = '__otto.walk(' + distance + ', ' + duration + ', ' + dropdown_direction + ');\n';
9296
return code;
9397
};
9498

@@ -101,7 +105,7 @@ Blockly.Arduino.otto_turn = function(){
101105
Blockly.Arduino.definitions_['define_include_otto'] = '#include <Otto.h>\n';
102106
Blockly.Arduino.definitions_['define_define_otto_item'] = 'Otto __otto;\n';
103107

104-
var code = '__otto.turn(' + distance + ', ' + duration + ', ' + dropdown_direction + ');\n'
108+
var code = '__otto.turn(' + distance + ', ' + duration + ', ' + dropdown_direction + ');\n';
105109
return code;
106110
};
107111

@@ -114,7 +118,7 @@ Blockly.Arduino.otto_bend = function(){
114118
Blockly.Arduino.definitions_['define_include_otto'] = '#include <Otto.h>\n';
115119
Blockly.Arduino.definitions_['define_define_otto_item'] = 'Otto __otto;\n';
116120

117-
var code = '__otto.bend(' + distance + ', ' + duration + ', ' + dropdown_direction + ');\n'
121+
var code = '__otto.bend(' + distance + ', ' + duration + ', ' + dropdown_direction + ');\n';
118122
return code;
119123
};
120124

@@ -127,7 +131,7 @@ Blockly.Arduino.otto_shake_leg = function(){
127131
Blockly.Arduino.definitions_['define_include_otto'] = '#include <Otto.h>\n';
128132
Blockly.Arduino.definitions_['define_define_otto_item'] = 'Otto __otto;\n';
129133

130-
var code = '__otto.shakeLeg(' + distance + ', ' + duration + ', ' + dropdown_direction + ');\n'
134+
var code = '__otto.shakeLeg(' + distance + ', ' + duration + ', ' + dropdown_direction + ');\n';
131135
return code;
132136
};
133137

@@ -141,7 +145,7 @@ Blockly.Arduino.otto_freestyle = function(){
141145
Blockly.Arduino.definitions_['define_include_otto'] = '#include <Otto.h>\n';
142146
Blockly.Arduino.definitions_['define_define_otto_item'] = 'Otto __otto;\n';
143147

144-
var code = '__otto.' + dropdown_style + '(' + distance + ', ' + duration + ', ' + height + ');\n'
148+
var code = '__otto.' + dropdown_style + '(' + distance + ', ' + duration + ', ' + height + ');\n';
145149
return code;
146150
};
147151

@@ -155,7 +159,7 @@ Blockly.Arduino.otto_moonwalk = function(){
155159
Blockly.Arduino.definitions_['define_include_otto'] = '#include <Otto.h>\n';
156160
Blockly.Arduino.definitions_['define_define_otto_item'] = 'Otto __otto;\n';
157161

158-
var code = '__otto.moonwalker(' + distance + ', ' + duration + ', ' + height + ', ' + dropdown_direction + ');\n'
162+
var code = '__otto.moonwalker(' + distance + ', ' + duration + ', ' + height + ', ' + dropdown_direction + ');\n';
159163
return code;
160164
};
161165

@@ -169,7 +173,7 @@ Blockly.Arduino.otto_crusaito = function(){
169173
Blockly.Arduino.definitions_['define_include_otto'] = '#include <Otto.h>\n';
170174
Blockly.Arduino.definitions_['define_define_otto_item'] = 'Otto __otto;\n';
171175

172-
var code = '__otto.crusaito(' + distance + ', ' + duration + ', ' + height + ', ' + dropdown_direction + ');\n'
176+
var code = '__otto.crusaito(' + distance + ', ' + duration + ', ' + height + ', ' + dropdown_direction + ');\n';
173177
return code;
174178
};
175179

@@ -183,7 +187,7 @@ Blockly.Arduino.otto_flapping = function(){
183187
Blockly.Arduino.definitions_['define_include_otto'] = '#include <Otto.h>\n';
184188
Blockly.Arduino.definitions_['define_define_otto_item'] = 'Otto __otto;\n';
185189

186-
var code = '__otto.flapping(' + distance + ', ' + duration + ', ' + height + ', ' + dropdown_direction + ');\n'
190+
var code = '__otto.flapping(' + distance + ', ' + duration + ', ' + height + ', ' + dropdown_direction + ');\n';
187191
return code;
188192
};
189193

@@ -201,12 +205,12 @@ Blockly.Arduino.otto_ultrasonic_init = function() {
201205
Blockly.Arduino.definitions_['define_include_otto'] = '#include <Otto.h>\n';
202206
Blockly.Arduino.definitions_['define_define_otto_item'] = 'Otto __otto;\n';
203207

204-
Blockly.Arduino.definitions_['define_define_otto_ultrasonic_init_trigger'] = '#define OTTO_PIN_TRIGGER ' + dropdown_trigger;
205-
Blockly.Arduino.definitions_['define_define_otto_ultrasonic_init_echo'] = '#define OTTO_PIN_ECHO ' + dropdown_echo;
208+
Blockly.Arduino.definitions_['define_define_otto_ultrasonic_init_trigger'] = '#define OTTO_PIN_ULTRASONIC_TRIGGER ' + dropdown_trigger;
209+
Blockly.Arduino.definitions_['define_define_otto_ultrasonic_init_echo'] = '#define OTTO_PIN_ULTRASONIC_ECHO ' + dropdown_echo;
206210

207-
Blockly.Arduino.setups_['setup_otto_ultrasonic_init'] = '__otto.initUltrasonic(OTTO_PIN_TRIGGER, OTTO_PIN_ECHO);';
211+
Blockly.Arduino.setups_['setup_otto_ultrasonic_init'] = '__otto.initUltrasonic(OTTO_PIN_ULTRASONIC_TRIGGER, OTTO_PIN_ULTRASONIC_ECHO);';
208212

209-
var code = ''
213+
var code = '';
210214
return code;
211215
};
212216

@@ -215,7 +219,7 @@ Blockly.Arduino.otto_ultrasonic_distance = function() {
215219
Blockly.Arduino.definitions_['define_include_otto'] = '#include <Otto.h>\n';
216220
Blockly.Arduino.definitions_['define_define_otto_item'] = 'Otto __otto;\n';
217221

218-
var code = '__otto.getDistance()'
222+
var code = '__otto.getDistance()';
219223
return [code, Blockly.Arduino.ORDER_ATOMIC];
220224
};
221225

@@ -230,7 +234,7 @@ Blockly.Arduino.otto_buzzer_init = function() {
230234

231235
Blockly.Arduino.setups_['setup_otto_buzzer_init'] = '__otto.initBuzzer(OTTO_PIN_BUZZER);';
232236

233-
var code = ''
237+
var code = '';
234238
return code;
235239
};
236240

@@ -244,3 +248,34 @@ Blockly.Arduino.otto_buzzer_sing = function() {
244248
var code = '__otto.sing(' + dropdown_sing + ');\n';
245249
return code;
246250
};
251+
252+
Blockly.Arduino.otto_mouth = function() {
253+
254+
var dropdown_mouth = this.getFieldValue('MOUTH');
255+
256+
Blockly.Arduino.definitions_['define_include_otto'] = '#include <Otto.h>\n';
257+
Blockly.Arduino.definitions_['define_define_otto_item'] = 'Otto __otto;\n';
258+
259+
var code = '__otto.putMouth(' + dropdown_mouth + ');\n';
260+
return code;
261+
};
262+
263+
Blockly.Arduino.otto_led_matrix_init = function() {
264+
265+
var dropdown_din = this.getFieldValue('DIN');
266+
var dropdown_cs = this.getFieldValue('CS');
267+
var dropdown_clk = this.getFieldValue('CLK');
268+
var dropdown_dir = this.getFieldValue('DIR');
269+
270+
Blockly.Arduino.definitions_['define_include_otto'] = '#include <Otto.h>\n';
271+
Blockly.Arduino.definitions_['define_define_otto_item'] = 'Otto __otto;\n';
272+
273+
Blockly.Arduino.definitions_['define_define_otto_led_matrix_init_din'] = '#define OTTO_PIN_LED_DIN ' + dropdown_din;
274+
Blockly.Arduino.definitions_['define_define_otto_led_matrix_init_din'] = '#define OTTO_PIN_LED_CS_PIN ' + dropdown_cs;
275+
Blockly.Arduino.definitions_['define_define_otto_led_matrix_init_din'] = '#define OTTO_PIN_LED_CLK_PIN ' + dropdown_clk;
276+
277+
Blockly.Arduino.setups_['setup_otto_led_matrix_init'] = '__otto.initLEDMatrix(OTTO_PIN_LED_DIN, OTTO_PIN_LED_CS_PIN, ' + dropdown_dir + ');';
278+
279+
var code = '';
280+
return code;
281+
};

blockly/i18n/common.pyc

-33 Bytes
Binary file not shown.

blockly/msg/js/en.js

+43
Original file line numberDiff line numberDiff line change
@@ -471,6 +471,49 @@ Blockly.Msg.OTTO_BUZZER_SING_CONFUSED = "Confused";
471471
Blockly.Msg.OTTO_BUZZER_SING_FART_1 = "Fart 1";
472472
Blockly.Msg.OTTO_BUZZER_SING_FART_2 = "Fart 2";
473473
Blockly.Msg.OTTO_BUZZER_SING_FART_3 = "Fart 3";
474+
Blockly.Msg.OTTO_MOUTH_TITLE = "Otto Put Mouth";
475+
Blockly.Msg.OTTO_MOUTH_INIT_TOOLTIP = "putMouth()";
476+
Blockly.Msg.OTTO_MOUTH_ZERO = "Zero";
477+
Blockly.Msg.OTTO_MOUTH_ONE = "One";
478+
Blockly.Msg.OTTO_MOUTH_TWO = "Two";
479+
Blockly.Msg.OTTO_MOUTH_THREE = "Three";
480+
Blockly.Msg.OTTO_MOUTH_FOUR = "Four";
481+
Blockly.Msg.OTTO_MOUTH_FIVE = "Five";
482+
Blockly.Msg.OTTO_MOUTH_SIX = "Six";
483+
Blockly.Msg.OTTO_MOUTH_SEVEN = "Seven";
484+
Blockly.Msg.OTTO_MOUTH_EIGHT = "Eight";
485+
Blockly.Msg.OTTO_MOUTH_NINE = "Nine";
486+
Blockly.Msg.OTTO_MOUTH_SMILE = "Smile";
487+
Blockly.Msg.OTTO_MOUTH_HAPPY_OPEN = "Happy (Open)";
488+
Blockly.Msg.OTTO_MOUTH_HAPPY_CLOSED = "Happy (Closed)";
489+
Blockly.Msg.OTTO_MOUTH_HEART = "Heart";
490+
Blockly.Msg.OTTO_MOUTH_BIG_SUPRISE = "Surprise (Big)";
491+
Blockly.Msg.OTTO_MOUTH_SMALL_SUPRISE = "Surprise (Small)";
492+
Blockly.Msg.OTTO_MOUTH_TONGUE_OUT = "Tongue Out";
493+
Blockly.Msg.OTTO_MOUTH_VAMP_1 = "Vamp 1";
494+
Blockly.Msg.OTTO_MOUTH_VAMP_2 = "Vamp 2";
495+
Blockly.Msg.OTTO_MOUTH_LINE_MOUTH = "Line";
496+
Blockly.Msg.OTTO_MOUTH_CONFUSED = "Confused";
497+
Blockly.Msg.OTTO_MOUTH_DIAGONAL = "Diagonal";
498+
Blockly.Msg.OTTO_MOUTH_SAD = "Sad";
499+
Blockly.Msg.OTTO_MOUTH_SAD_OPEN = "Sad (Open)";
500+
Blockly.Msg.OTTO_MOUTH_SAD_CLOSED = "Sad (Closed)";
501+
Blockly.Msg.OTTO_MOUTH_OK_MOUTH = "OK";
502+
Blockly.Msg.OTTO_MOUTH_X_MOUTH = "X";
503+
Blockly.Msg.OTTO_MOUTH_INTERROGATION = "Interrogation";
504+
Blockly.Msg.OTTO_MOUTH_THUNDER = "Thunder";
505+
Blockly.Msg.OTTO_MOUTH_CULITO = "Culito";
506+
Blockly.Msg.OTTO_MOUTH_ANGRY = "Angry";
507+
Blockly.Msg.OTTO_LED_MATRIX_INIT_TITLE = "Otto Init LED Matrix";
508+
Blockly.Msg.OTTO_LED_MATRIX_INIT_TOOLTIP = "initLEDMatrix()";
509+
Blockly.Msg.OTTO_LED_MATRIX_DIN = "DIN";
510+
Blockly.Msg.OTTO_LED_MATRIX_CS = "CS Pin";
511+
Blockly.Msg.OTTO_LED_MATRIX_CLK = "CLK Pin";
512+
Blockly.Msg.OTTO_LED_MATRIX_DIR = "Rotation";
513+
Blockly.Msg.OTTO_MATRIX_DIR_0 = "0°";
514+
Blockly.Msg.OTTO_MATRIX_DIR_90 = "90°";
515+
Blockly.Msg.OTTO_MATRIX_DIR_180 = "180°";
516+
Blockly.Msg.OTTO_MATRIX_DIR_270 = "270°";
474517
Blockly.Msg.HELP = "Help";
475518
Blockly.Msg.I2C_MATRIX_ADDRESS = "Address";
476519
Blockly.Msg.I2C_MATRIX_BEGIN_TITLE = "Begin";

blockly/msg/js/zh-hant.js

+43
Original file line numberDiff line numberDiff line change
@@ -469,6 +469,49 @@ Blockly.Msg.OTTO_BUZZER_SING_CONFUSED = "疑惑";
469469
Blockly.Msg.OTTO_BUZZER_SING_FART_1 = "放屁聲 1";
470470
Blockly.Msg.OTTO_BUZZER_SING_FART_2 = "放屁聲 2";
471471
Blockly.Msg.OTTO_BUZZER_SING_FART_3 = "放屁聲 3";
472+
Blockly.Msg.OTTO_MOUTH_TITLE = "Otto LED 嘴形";
473+
Blockly.Msg.OTTO_MOUTH_INIT_TOOLTIP = "putMouth()";
474+
Blockly.Msg.OTTO_MOUTH_ZERO = "零";
475+
Blockly.Msg.OTTO_MOUTH_ONE = "一";
476+
Blockly.Msg.OTTO_MOUTH_TWO = "二";
477+
Blockly.Msg.OTTO_MOUTH_THREE = "三";
478+
Blockly.Msg.OTTO_MOUTH_FOUR = "四";
479+
Blockly.Msg.OTTO_MOUTH_FIVE = "五";
480+
Blockly.Msg.OTTO_MOUTH_SIX = "六";
481+
Blockly.Msg.OTTO_MOUTH_SEVEN = "七";
482+
Blockly.Msg.OTTO_MOUTH_EIGHT = "八";
483+
Blockly.Msg.OTTO_MOUTH_NINE = "九";
484+
Blockly.Msg.OTTO_MOUTH_SMILE = "微笑";
485+
Blockly.Msg.OTTO_MOUTH_HAPPY_OPEN = "快樂(合)";
486+
Blockly.Msg.OTTO_MOUTH_HAPPY_CLOSED = "快樂(閉)";
487+
Blockly.Msg.OTTO_MOUTH_HEART = "愛心";
488+
Blockly.Msg.OTTO_MOUTH_BIG_SUPRISE = "驚訝(大)";
489+
Blockly.Msg.OTTO_MOUTH_SMALL_SUPRISE = "驚訝(小)";
490+
Blockly.Msg.OTTO_MOUTH_TONGUE_OUT = "吐舌";
491+
Blockly.Msg.OTTO_MOUTH_VAMP_1 = "吸血鬼 1";
492+
Blockly.Msg.OTTO_MOUTH_VAMP_2 = "吸血鬼 2";
493+
Blockly.Msg.OTTO_MOUTH_LINE_MOUTH = "線形";
494+
Blockly.Msg.OTTO_MOUTH_CONFUSED = "困惑";
495+
Blockly.Msg.OTTO_MOUTH_DIAGONAL = "傾斜";
496+
Blockly.Msg.OTTO_MOUTH_SAD = "悲傷";
497+
Blockly.Msg.OTTO_MOUTH_SAD_OPEN = "悲傷(合)";
498+
Blockly.Msg.OTTO_MOUTH_SAD_CLOSED = "悲傷(閉)";
499+
Blockly.Msg.OTTO_MOUTH_OK_MOUTH = "OK";
500+
Blockly.Msg.OTTO_MOUTH_X_MOUTH = "X 形";
501+
Blockly.Msg.OTTO_MOUTH_INTERROGATION = "拷問";
502+
Blockly.Msg.OTTO_MOUTH_THUNDER = "打雷";
503+
Blockly.Msg.OTTO_MOUTH_CULITO = "星形";
504+
Blockly.Msg.OTTO_MOUTH_ANGRY = "生氣";
505+
Blockly.Msg.OTTO_LED_MATRIX_INIT_TITLE = "Otto 初始化 LED 陣列";
506+
Blockly.Msg.OTTO_LED_MATRIX_INIT_TOOLTIP = "initLEDMatrix()";
507+
Blockly.Msg.OTTO_LED_MATRIX_DIN = "DIN";
508+
Blockly.Msg.OTTO_LED_MATRIX_CS = "CS Pin";
509+
Blockly.Msg.OTTO_LED_MATRIX_CLK = "CLK Pin";
510+
Blockly.Msg.OTTO_LED_MATRIX_DIR = "旋轉";
511+
Blockly.Msg.OTTO_MATRIX_DIR_0 = "0°";
512+
Blockly.Msg.OTTO_MATRIX_DIR_90 = "90°";
513+
Blockly.Msg.OTTO_MATRIX_DIR_180 = "180°";
514+
Blockly.Msg.OTTO_MATRIX_DIR_270 = "270°";
472515
Blockly.Msg.HELP = "說明";
473516
Blockly.Msg.I2C_MATRIX_ADDRESS = "位置";
474517
Blockly.Msg.I2C_MATRIX_BEGIN_TITLE = "開始";

0 commit comments

Comments
 (0)