-
Notifications
You must be signed in to change notification settings - Fork 1
/
en.js
828 lines (777 loc) · 47.3 KB
/
en.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
//robot car
Blockly.Msg.LIOU_ROBOT_FORWARD = "FORWARD";
Blockly.Msg.LIOU_ROBOT_BACKWARD = "BACKWARD";
Blockly.Msg.LIOU_ROBOT_LEFT = "LEFTWARD";
Blockly.Msg.LIOU_ROBOT_RIGHT = "RIGHTWARD";
Blockly.Msg.LIOU_ROBOT_STOP = "STOP";
Blockly.Msg.LIOU_ROBOT_MOVE_SPEED = "Speed(0~255)";
Blockly.Msg.LIOU_ROBOT_LEFT_SIDE= "Left";
Blockly.Msg.LIOU_ROBOT_RIGHT_SIDE= "Right";
Blockly.Msg.LIOU_ROBOT_WHEEL = "wheel";
Blockly.Msg.LIOU_ROBOT_LINE_FOLLOWER = "Line Follower";
Blockly.Msg.LIOU_ROBOT_BLACK = "black";
Blockly.Msg.LIOU_ROBOT_WHITE = "white";
Blockly.Msg.LIOU_ROBOT_SERVO = "SERVO";
Blockly.Msg.LIOU_ROBOT_ANGLE = "Angle(0~180)";
Blockly.Msg.LIOU_ROBOT_WHEN = "When ";
Blockly.Msg.LIOU_ROBOT_BUTTON = "button";
Blockly.Msg.LIOU_ROBOT_BUTTON_CHECK = "is pressed";
Blockly.Msg.LIOU_ROBOT_SONAR = "The distance of sonar(cm)";
Blockly.Msg.LIOU_ROBOT_IR_RECEIVED1 = "If receive the IR code of button:";
Blockly.Msg.LIOU_ROBOT_IR_EVENT = "When receive IR signal";
Blockly.Msg.LIOU_ROBOT_IR_WARNING = "Need to Begin Block.";
Blockly.Msg.LIOU_ROBOT_IR_RECEIVED2_TYPE = "If receive the IR code type:";
Blockly.Msg.LIOU_ROBOT_IR_RECEIVED2_MSG = "code:";
Blockly.Msg.LIOU_ROBOT_PIN = "pin";
//jetmole
Blockly.Msg.CATEGORY_JETMOLE = "Jet Mole";
Blockly.Msg.JETMOLE_HELPURL = "https://sites.google.com/jes.mlc.edu.tw/ljj/linkit7697/噴射鼴鼠";
Blockly.Msg.MOLE_MOVE_CAR = "Jet Mole Move";
Blockly.Msg.MOLE_MOVE_CAR_TOOLTIP = "Jet Mole";
Blockly.Msg.MOLE_MOVE_MOTOR_L = "Jet Mole Left Drill";
Blockly.Msg.MOLE_MOVE_MOTOR_R = "Jet Mole Right Drill";
//blocks of Liou Zheng-Ji
Blockly.Msg.CATEGORY_LIOU = "Liou";
//Iot
Blockly.Msg.CATEGORY_IOT = "IoT";
//Liou robot
Blockly.Msg.CATEGORY_LIOU_ROBOT = "Robot";
//mqtt
Blockly.Msg.CATEGORY_MQTT = "MQTT";
Blockly.Msg.MOTT_HELPURL = "https://sites.google.com/jes.mlc.edu.tw/ljj/linkit7697/mqtt積木";
Blockly.Msg.SET_MQTT_UNTIL_READY_TITLE = "Connect to MQTT";
Blockly.Msg.MQTT_TOOLTIP = "MQTT";
Blockly.Msg.MQTT_BROKER = "MQTT broker";
Blockly.Msg.MQTT_PORT = "Port";
Blockly.Msg.MQTT_ID = "ID";
Blockly.Msg.MQTT_USERNAME = "Username";
Blockly.Msg.MQTT_PASSWORD = "Password";
Blockly.Msg.MQTT_SUB = "Subscribe Topic";
Blockly.Msg.MQTT_PUB_TITLE = "Publish Message";
Blockly.Msg.MQTT_TOPIC = "Topic";
Blockly.Msg.MQTT_MESSAGE = "Message";
Blockly.Msg.MQTT_EVENT = "When message received from MQTT";
Blockly.Msg.MQTT_RECEIVED_TOPIC = "received topic name";
Blockly.Msg.MQTT_RECEIVED_MSG = "received message";
Blockly.Msg.LIOU_ROBOT_IR_RECEIVED = "When button of IR remote controller is pressed";
Blockly.Msg.MQTT_WARNING = 'You have to setup "'+Blockly.Msg.SET_MQTT_UNTIL_READY_TITLE+'" block at first.';
Blockly.Msg.MQTT_RECONNECT = "MQTT reconnect";
Blockly.Msg.MQTT_CONNECTED = "MQTT connected?";
//ThingSpeak
Blockly.Msg.CATEGORY_THINGSPEAK = "ThingSpeak";
Blockly.Msg.THINGS_GET_URL_HELPURL = "https://sites.google.com/jes.mlc.edu.tw/ljj/linkit7697/thingspeak";
Blockly.Msg.THINGS_GET_URL_TITLE = "Send data to ThingSpeak";
Blockly.Msg.THINGS_KEY = "write key";
Blockly.Msg.THINGS_FIELD1 = "Field1";
Blockly.Msg.THINGS_FIELD2 = "Field2";
Blockly.Msg.THINGS_FIELD3 = "Field3";
Blockly.Msg.THINGS_FIELD4 = "Field4";
Blockly.Msg.THINGS_FIELD5 = "Field5";
Blockly.Msg.THINGS_FIELD6 = "Field6";
Blockly.Msg.THINGS_FIELD7 = "Field7";
Blockly.Msg.THINGS_FIELD8 = "Field8";
Blockly.Msg.THINGS_GET_URL_TOOLTIP = "ThingSpeak";
Blockly.Msg.THINGS_GET_REC_TITLE = "get the update entry ID";
//Ljj_modules
Blockly.Msg.CATEGORY_LIOU_MODULES = "modules";
//MP3 DFRobot Player mini
Blockly.Msg.CATEGORY_MP3 = "MP3";
Blockly.Msg.MP3_HELPURL = "https://sites.google.com/jes.mlc.edu.tw/ljj/linkit7697/mp3播放積木";
Blockly.Msg.MP3_SET_PINS_TITLE = "set DFPlayer mini pin";
Blockly.Msg.MP3_TOOLTIP = "MP3";
Blockly.Msg.MP3_RX_PIN = "RX Pin connect to Pin";
Blockly.Msg.MP3_TX_PIN = "TX Pin connect to Pin(2 or 3)";
Blockly.Msg.MP3_TX_PIN_ESP32 = "TX Pin connect to Pin";
Blockly.Msg.MP3_PLAYFOLDER_TITLE = "Play MP3 in folder";
Blockly.Msg.MP3_FOLDER = "Folder Index";
Blockly.Msg.MP3_INDEX_IN_FOLDER = "MP3 Index";
Blockly.Msg.MP3_EXECUTE = "Execute procedure";
Blockly.Msg.MP3_PLAY = "Play";
Blockly.Msg.MP3_STOP = "Stop";
Blockly.Msg.MP3_PAUSE = "Pause";
Blockly.Msg.MP3_PLAY_NEXT = "Play Next";
Blockly.Msg.MP3_PLAY_PREVIOUS = "Play Previous";
Blockly.Msg.MP3_VOLUME_TITLE = "Set volume(0~30)";
Blockly.Msg.MP3_LOOP_PLAYFOLDER = "loop play all the MP3s in the folder:";
Blockly.Msg.MP3_LOOP_OPTIONS = "Loop options:";
Blockly.Msg.MP3_LOOP_MP3 = "Enable loop MP3";
Blockly.Msg.MP3_DISABLE_LOOP_MP3 = "Disable loop MP3";
Blockly.Msg.MP3_LOOP_ALL = "Enable play all the MP3s in the SD card";
Blockly.Msg.MP3_DISABLE_LOOP_ALL = "Disable loop play all the MP3s in the SD card";
Blockly.Msg.MP3_RANDOM = "Play MP3 randomly";
//LJJ_TOOLS
Blockly.Msg.CATEGORY_LJJ_TOOLS = "Tools";
Blockly.Msg.TOOLS_HELPURL = "TOOLS";
Blockly.Msg.LJJ_TOOLS_TOOLTIP = "TOOLS";
Blockly.Msg.LJJ_TOOLS_CONVERT_STR_INT = "Convert String to Int";
Blockly.Msg.LJJ_TOOLS_CONVERT_STR_FLOAT = "Convert String to Float";
Blockly.Msg.TOOLS_ARRAY_VALUE = "Convert String to Array Value";
//Maqueen
Blockly.Msg.CATEGORY_MAQUEEN = "Maqueen";
Blockly.Msg.MAQUEEN_HELPURL = "https://sites.google.com/jes.mlc.edu.tw/ljj/linkit7697/麥昆小車積木";
Blockly.Msg.MAQUEEN_TOOLTIP = "Maqueen";
Blockly.Msg.MAQUEEN_LIGHT_LEFT = "Left Head Light";
Blockly.Msg.MAQUEEN_LIGHT_RIGHT = "Right Head Light";
Blockly.Msg.MAQUEEN_LIGHT_ON = "ON";
Blockly.Msg.MAQUEEN_LIGHT_OFF = "OFF";
Blockly.Msg.MAQUEEN_TONE_PRETEXT = "Tone";
Blockly.Msg.MAQUEEN_NO_TONE_PRETEXT = "No tone";
//IR
Blockly.Msg.CATEGORY_IR = "InfraRed";
Blockly.Msg.IR_HELPURL = "https://sites.google.com/jes.mlc.edu.tw/ljj/linkit7697/紅外線發射與接收";
Blockly.Msg.IR_RECEIVED_TYPE = "the received IR Type";
Blockly.Msg.IR_RECEIVED_CODE = "the received IR Code";
Blockly.Msg.IR_TOOLTIP = "InfraRed";
Blockly.Msg.IR_RECEIVE_PIN_TITLE = "Set IR receiver pin:";
Blockly.Msg.IR_PIN_WARNING = "You have to set IR receiver pin first.";
Blockly.Msg.IR_SENDER_PIN_TITLE = "Set IR sender pin:";
Blockly.Msg.IR_REMOTE = "MakeBlock & KSRobot";
Blockly.Msg.IR_SENDER_8266_PIN_TITLE = "Set ESP8266 IR transmitter pin:";
Blockly.Msg.IR_ESP8266_WARNING = "You have set the board to be ESP8266 first;";
Blockly.Msg.IR_ESP8266_BOARD_WARNING = "If your board is ESP8266, you have to \""+Blockly.Msg.IR_SENDER_8266_PIN_TITLE +"\" first.";
//weather
Blockly.Msg.CATEGORY_CRAWLER = "Web Crawler";
Blockly.Msg.CATEGORY_WEATHER = "World Weather";
Blockly.Msg.WEATHER_HELPURL = "https://sites.google.com/jes.mlc.edu.tw/ljj/linkit7697/天氣查詢積木";
Blockly.Msg.FETCH_WEATHER_TITLE = "Fetch weather info from web";
Blockly.Msg.WEATHER_WARNING = "You have to set \"Fetch weather info from web\" first.";
Blockly.Msg.WEATHER_CITYID = "City ID";
Blockly.Msg.WEATHER_KEY = "API key";
Blockly.Msg.WEATHER_TOOLTIP = "World Weather";
Blockly.Msg.WEATHER_GET_CITYID = "Get city ID of big city";
Blockly.Msg.WEATHER_GET_CITYID_TW = "Get city ID of Taiwan";
Blockly.Msg.WEATHER_GET_VALUE = "Get";
Blockly.Msg.WEATHER_CITY_NAME = "city name";
Blockly.Msg.WEATHER_CITY_WEATHER = "weather";
Blockly.Msg.WEATHER_CITY_DESCRIPTION = "weather description";
Blockly.Msg.WEATHER_CITY_TEMP = "temperature";
Blockly.Msg.WEATHER_CITY_TEMP_MIN = "temp min";
Blockly.Msg.WEATHER_CITY_TEMP_MAX = "temp max";
Blockly.Msg.WEATHER_CITY_PRESSURE = "pressure";
Blockly.Msg.WEATHER_CITY_HUMIDITY = "humidity";
Blockly.Msg.WEATHER_CITY_WIND_SPEED = "wind speed";
Blockly.Msg.WEATHER_CITY_WIND_DEG = "wind direction degree";
Blockly.Msg.WEATHER_CITY_SUNRISE = "sunrise(local time)";
Blockly.Msg.WEATHER_CITY_SUNSET = "sunset(local time)";
//AQI
Blockly.Msg.AQI_HELPURL = "https://sites.google.com/jes.mlc.edu.tw/ljj/linkit7697/空氣品質積木";
Blockly.Msg.FETCH_AQI_TITLE = "Get Air Quality Index(AQI) around Taiwan";
Blockly.Msg.AQI_TOOLTIP = "AQI";
Blockly.Msg.AQI_GET_VALUE_TITLE = "Get the AQI information";
Blockly.Msg.AQI_GET_VALUE_STATION = "station:";
Blockly.Msg.AQI_GET_VALUE_ATTR = "information:";
Blockly.Msg.AQI_WARNING = "You have to set \""+ Blockly.Msg.FETCH_AQI_TITLE+"\" first.";
Blockly.Msg.AQI_WARNING2 = "You have to set \"ESP8266 "+ Blockly.Msg.FETCH_AQI_TITLE+"\" first.";
Blockly.Msg.AQI_AttrName=[["AQI index","AQI"],["Status","Status"],["SO2","SO2"],["CO","CO"],["O3","O3"],["Wind Speed","WIND_SPEED"],["Wind Direction","WIND_DIREC"],
["PM10","PM10"],["PM2.5","PM2.5"],["PM10 average","PM10_AVG"],["PM2.5 average","PM2.5_AVG"],["Puslish Time","PublishTime"],["Site Name","SiteName"]];
//KSB045
Blockly.Msg.KSB045_HELPURL= "https://sites.google.com/jes.mlc.edu.tw/ljj/linkit7697/搖桿積木";
Blockly.Msg.KSB045_TOOLTIP = "KSB045";
Blockly.Msg.KSB045_TITLE = "GamePad";
Blockly.Msg.KSB045_XY = "joystick value of ";
Blockly.Msg.KSB045_AXIS_END = "axis";
Blockly.Msg.KSB045_MID_XY = "joystick center value of";
Blockly.Msg.KSB045_VIBRATION = "set vibration motor";
Blockly.Msg.KSB045_WARNING = "You have to set \""+Blockly.Msg.KSB045_TITLE+" init\" first.";
//LDM6432
Blockly.Msg.LDM6432_HELPURL = "https://sites.google.com/jes.mlc.edu.tw/ljj/linkit7697/ldm6432-mqtt";
Blockly.Msg.LDM6432_TOOLTIP= "LDM6432";
Blockly.Msg.LDM6432_SET_TOPIC = "set LDM6432 MQTT Topic:";
Blockly.Msg.LDM6432_SET_TOPIC_PREFIX = "control the device ID";
Blockly.Msg.LDM6432_SET_TOPIC_POST = "of the LDM";
Blockly.Msg.LDM6432_SET_MQTT_PUBLIC = "control your LDMs,MQTT Topic";
Blockly.Msg.LDM6432_SET_MQTT_BITMAP_PUBLIC = "bitmap Topic";
Blockly.Msg.LDM6432_SEND_BITMAP = "send bitmap string to display on LDM";
Blockly.Msg.LDM6432_WARNING = "set MQTT connection first.";
Blockly.Msg.LDM6432_WAIT_FOR_E = "whether wait for echo after every command?";
Blockly.Msg.LDM6432_CLOCK = "set clock mode";
Blockly.Msg.LDM6432_SHOWPAGE1 = "LDM show single page(0~6):";
Blockly.Msg.LDM6432_CLEAR = "LDM clear";
Blockly.Msg.LDM6432_DISPLAY = "LDM display";
Blockly.Msg.LDM6432_ON_OFF = "set LDM";
Blockly.Msg.LDM6432_VERSION = "display firmware revision";
Blockly.Msg.LDM6432_COMMAND = "LDM execute AT command:";
Blockly.Msg.LDM6432_ANIMATION_TYPE1= "fly in and out upward";
Blockly.Msg.LDM6432_ANIMATION_TYPE2= "fly in and out downward";
Blockly.Msg.LDM6432_ANIMATION_TYPE3= "fly in and out leftward";
Blockly.Msg.LDM6432_ANIMATION_TYPE4= "fly in and out rightward";
Blockly.Msg.LDM6432_ANIMATION_TYPE5= "blink";
Blockly.Msg.LDM6432_ANIMATION_TYPE6= "fly in downward";
Blockly.Msg.LDM6432_ANIMATION_TYPE7= "fly in upward";
Blockly.Msg.LDM6432_ANIMATION_TYPE8= "fly in rightward";
Blockly.Msg.LDM6432_ANIMATION_TYPE9= "fly in leftward";
Blockly.Msg.LDM6432_ANIMATION_TYPE10= "fly in down-rightward";
Blockly.Msg.LDM6432_ANIMATION_TYPE11= "fly in down-leftward";
Blockly.Msg.LDM6432_ANIMATION_TYPE12= "fly in up-rightward";
Blockly.Msg.LDM6432_ANIMATION_TYPE13= "fly in up-leftward";
Blockly.Msg.LDM6432_ANIMATION_TYPE14= "fly in from each direction";
Blockly.Msg.LDM6432_EFFECTSPEED = "set effect animation speed(1~10)"
Blockly.Msg.LDM6432_SHOWPAGE2= "LDM display single page(0~6)";
Blockly.Msg.LDM6432_SHOWPAGE2_EFFECT= "animation effect";
Blockly.Msg.LDM6432_SPEED= "speed(1~10)";
Blockly.Msg.LDM6432_STOP_ANIMATION = "stop display animation";
Blockly.Msg.LDM6432_SAVE_TO_ROM = "write dipslay contents to current displayed EEPROM page address";
Blockly.Msg.LDM6432_PAGES_INTERVAL = "set multi pages interval time between every page";
Blockly.Msg.LDM6432_PLAY_PAGES = "display multi pages stored in the LDM";
Blockly.Msg.LDM6432_PLAY_PAGES_TOTAL = "number of pages(2~7)";
Blockly.Msg.LDM6432_PERIOD = "interval period(1~10)";
Blockly.Msg.LDM6432_PUTSTRING = "LDM put string:";
Blockly.Msg.LDM6432_PUTSTRING_CONTENT = "String:";
Blockly.Msg.LDM6432_LINE ="on line(0~3):";
Blockly.Msg.LDM6432_COLUMN = "column(0~10):";
Blockly.Msg.LDM6432_SET_COLOR = "set font or painting color code(0~111):";
Blockly.Msg.LDM6432_FONTSIZE = "font size:";
Blockly.Msg.LDM6432_TRANSPARENT = "set font or pattern overlay on background:";
Blockly.Msg.LDM6432_COLOR_CODE= "color code";
Blockly.Msg.LDM6432_COLOR=[['black','0'],['white','111'],['red','96'],['orange','100'],['yellow','108'],['green','4'],['blue','3'],['indigo','66'],['purple','99'],['dark red','32'],['pink','103'],['earth yellow','104'],['lime','12']];
Blockly.Msg.LDM6432_BACKGROUND = "set LDM background color code(0~111)";
Blockly.Msg.LDM6432_GLOBAL_CHANGE_COLOR = "swap displayed color from color";
Blockly.Msg.LDM6432_GLOBAL_CHANGE_COLOR_TO = "to color";
Blockly.Msg.LDM6432_LOCAL_CHANGE_COLOR = "swap displayed color in the area:";
Blockly.Msg.LDM6432_LOCAL_CHANGE_COLOR_X = "x for the top left corner:";
Blockly.Msg.LDM6432_LOCAL_CHANGE_COLOR_Y = "y for the top left corner:";
Blockly.Msg.LDM6432_LOCAL_CHANGE_COLOR_WIDTH = "width:";
Blockly.Msg.LDM6432_LOCAL_CHANGE_COLOR_HEIGHT = "height:";
Blockly.Msg.LDM6432_LOCAL_CHANGE_COLOR1 = "from color:";
Blockly.Msg.LDM6432_LOCAL_CHANGE_COLOR2 = "from color:";
Blockly.Msg.LDM6432_XY_COLOR = "set the color code:";
Blockly.Msg.LDM6432_XY_COLOR_X = " to X:";
Blockly.Msg.LDM6432_XY_COLOR_Y = "Y:";
Blockly.Msg.LDM6432_ALL_COLOR_CHANGE = "change color of all pixels except the black color pixels to color code:";
Blockly.Msg.LDM6432_DRAW_LINE = "draw a line on LDM";
Blockly.Msg.LDM6432_DRAW_LINE_COLOR_X1 = "first point X";
Blockly.Msg.LDM6432_DRAW_LINE_COLOR_Y1 = "first point Y";
Blockly.Msg.LDM6432_DRAW_LINE_COLOR_X2 = "second point X";
Blockly.Msg.LDM6432_DRAW_LINE_COLOR_Y2 = "second point Y";
Blockly.Msg.LDM6432_DRAW_RECTANGLE = "draw a rectangle on LDM";
Blockly.Msg.LDM6432_FILLED = "filled with color";
Blockly.Msg.LDM6432_DRAW_CIRCLE = "draw a circle on LDM";
Blockly.Msg.LDM6432_DRAW_CIRCLE_CENTER_X = "center X";
Blockly.Msg.LDM6432_DRAW_CIRCLE_CENTER_Y = "center Y";
Blockly.Msg.LDM6432_DRAW_CIRCLE_RADIUS = "radius";
Blockly.Msg.LDM6432_DRAW_SQUARE = "draw a square on LDM";
Blockly.Msg.LDM6432_DRAW_SQUARE_WIDTH = "width";
Blockly.Msg.LDM6432_PAGE_SCROLL = "scroll the whole display";
Blockly.Msg.LDM6432_PAGE_SCROLL_TYPE_TITLE = "scrolling type";
Blockly.Msg.LDM6432_PAGE_SCROLL_TIME = "shift time(1~200ms)";
Blockly.Msg.LDM6432_PAGE_SCROLL_TYPE=[['upward','ATd2='],['downward','ATd3='],['leftward','ATd4='],['rightward','ATd5=']];
Blockly.Msg.LDM6432_ERASE_IMAGE_OUT = "erase the whole display";
Blockly.Msg.LDM6432_IMAGE_DIRECTION_TITLE = "type:";
Blockly.Msg.LDM6432_IMAGE_OUT_TIME ="shift time(1~200ms)";
Blockly.Msg.LDM6432_IMAGE_OUT_TYPE = [['inside out','0='],['outside in','1']];
Blockly.Msg.LDM6432_SHOW_IMAGE_OUT = "display the whole display";
Blockly.Msg.LDM6432_SAVE_DISPLAYED = "save the whole display contents to RAM";
Blockly.Msg.LDM6432_LOAD_DISPLAYED = "load and show the whole display contents from RAM";
Blockly.Msg.LDM6432_LOAD_PATTERN = "load user pattern from EEPROM";
Blockly.Msg.LDM6432_LOAD_PATTERN_ICON = "pattern type:";
Blockly.Msg.LDM6432_LOAD_PATTERN_ICON_ID = "Pattern ID:";
Blockly.Msg.LDM6432_LOAD_PATTERN_NOW = "display now";
Blockly.Msg.LDM6432_MOVE_PATTERN = "move user pattern 1 pixel";
Blockly.Msg.LDM6432_MOVE_PATTERN_TYPE=[['upward','AT32='],['downward','AT33='],['leftward','AT34='],['rightward','AT35=']];
Blockly.Msg.LDM6432_SHOW_ALL = "Display the multi patterns in the same time";
//BME280
Blockly.Msg.BME280_HELPURL = "https://sites.google.com/jes.mlc.edu.tw/ljj/linkit7697/bme280";
Blockly.Msg.BME280_ADDR_TITLE = "set BME280 I2C address";
Blockly.Msg.BME280_TOOLTIP = "BME280";
Blockly.Msg.BME280_GET_TITLE = "get value of BME280:";
Blockly.Msg.BME280_VALUE_TYPE=[['temperature(C)','bme.readTemperature()'],['humidity(%)','bme.readHumidity()'],['pressure(hPa)','(bme.readPressure() / 100.0F)'],['altitude(m)','bme.readAltitude(SEALEVELPRESSURE_HPA)']];
Blockly.Msg.BME280_WARNING = "You have to setup BME280 I2C address first.";
//7697bit
Blockly.Msg.MTK7697BIT_HELPURL = "https://sites.google.com/jes.mlc.edu.tw/ljj/linkit7697/7697bit";
Blockly.Msg.MTK7697BIT_TOOLTIP = "7697:bit breakout";
Blockly.Msg.MTK7697BIT_PINMAP_TITLE = "micro:bit pin:";
//OLED
Blockly.Msg.OLED_DISPLAY_HELPURL_NEW = "https://sites.google.com/jes.mlc.edu.tw/ljj/linkit7697/oled顯示中文";
Blockly.Msg.OLED_DISPLAY_HELPURL_IMAGE = "https://sites.google.com/jes.mlc.edu.tw/ljj/linkit7697/oled動態更換自訂圖案";
Blockly.Msg.OLED_DISPLAY_HELPURL_CHART = "https://sites.google.com/jes.mlc.edu.tw/ljj/linkit7697/oled顯示圖表";
Blockly.Msg.OLED_DISPLAY_FLIP = "set FlipMode";
Blockly.Msg.OLED_DISPLAY_ROTATION = "set rotation";
Blockly.Msg.OLED_DISPLAY_FONT_DIR = "set font direction";
Blockly.Msg.OLED_DISPLAY_FONT_DIR_LIST = [["Left to right","0"],["Top to down","1"],["Right to left","2"],["Down to top","3"]];
Blockly.Msg.OLED_DISPLAY_SHOW_XBM = "Show the custom bitmap on OLED from the String" ;
Blockly.Msg.OLED_DISPLAY_CLEAR_BUFFER = "Clear OLED displayed buffer";
Blockly.Msg.OLED_DISPLAY_SEND_BUFFER = "Send buffer to OLED";
Blockly.Msg.OLED_DISPLAY_SET_OVERWRITE = "Set font background transparent";
Blockly.Msg.OLED_DISPLAY_SET_COLOR = "Set font and draw color:";
Blockly.Msg.OLED_DISPLAY_TOOLTIP = "An OLED monochrome 128×64dot matrix display module";
Blockly.Msg.OLED_DISPLAY_DRAW_BOX_END_NEW = "(width, height):";
Blockly.Msg.OLED_DISPLAY_DRAW_FRAME_END_NEW = "(width, height):";
Blockly.Msg.OLED_DISPLAY_CHINESE_FONT = "set apply Chinese font";
Blockly.Msg.OLED_DISPLAY_SET_ENG_FONT ="set English font";
Blockly.Msg.OLED_DISPLAY_HELPURL=Blockly.Msg.OLED_DISPLAY_HELPURL_NEW;
Blockly.Msg.OLED_DISPLAY_CLOCK = "get time from RTC to draw clock";
Blockly.Msg.OLED_DISPLAY_CHART = "draw chart";
Blockly.Msg.OLED_DISPLAY_CHART_INPUT = "value";
Blockly.Msg.OLED_DISPLAY_CHART_MIN = "minimum of value";
Blockly.Msg.OLED_DISPLAY_CHART_MAX = "maximum of value";
Blockly.Msg.OLED_DISPLAY_CHART_EXTRA= "extra procedure";
Blockly.Msg.OLED_DISPLAY_CHART_TYPE = "type";
Blockly.Msg.OLED_DISPLAY_CHART_TYPE_LIST = [["Line chart","0"],["Bar chart","1"]];
Blockly.Msg.OLED_DISPLAY_CHART_SCROLL = "scroll from";
Blockly.Msg.OLED_DISPLAY_CHART_DIR_LIST = [["right to left","0"],["left to right","1"]];
Blockly.Msg.OLED_DISPLAY_CHART_CLEAR = "clear Statistics of chart";
Blockly.Msg.OLED_DISPLAY_QR = "draw QR Code";
Blockly.Msg.OLED_DISPLAY_QR_SIZE = "size";
Blockly.Msg.OLED_DISPLAY_QR_CONTENT = "content";
//AIRBOX
Blockly.Msg.CATEGORY_AIRBOX = "AIRBOX";
Blockly.Msg.AIRBOX_HELPURL = "https://sites.google.com/jes.mlc.edu.tw/ljj/linkit7697/airbox空氣盒子";
Blockly.Msg.FETCH_AIRBOX_TITLE= "Fetch airbox data from web";
Blockly.Msg.AIRBOX_DEVICEID = "Device ID";
Blockly.Msg.AIRBOX_TOOLTIP = "AirBox";
Blockly.Msg.AIRBOX_GET_VALUE = "Get data from AirBox:";
Blockly.Msg.AIRBOX_VALUE_DROPDOWN=[['PM2.5','docAirbox["feeds"][0]["AirBox"]["s_d0"].as<float>()'],
['PM10','docAirbox["feeds"][0]["AirBox"]["s_d1"].as<float>()'],
['PM1','docAirbox["feeds"][0]["AirBox"]["s_d2"].as<float>()'],
['Latitude','docAirbox["feeds"][0]["AirBox"]["gps_lat"].as<float>()'],
['Longitude','docAirbox["feeds"][0]["AirBox"]["gps_lon"].as<float>()'],
['Temperature','docAirbox["feeds"][0]["AirBox"]["s_t0"].as<float>()'],
['Humidity','docAirbox["feeds"][0]["AirBox"]["s_h0"].as<float>()'],
['Data TimeStamp','docAirbox["feeds"][0]["AirBox"]["timestamp"].as<char*>()'],
['AirBox location','docAirbox["feeds"][0]["AirBox"]["area"].as<char*>()'],
['AirBox name','docAirbox["feeds"][0]["AirBox"]["name"].as<char*>()'],
['Device ID','docAirbox[\"device_id\"].as<char*>()']
];
Blockly.Msg.AIRBOX_WARNING = "You have to Fetch airbox data from web first.";
//TW Stock
Blockly.Msg.STOCK_HELPURL= "https://sites.google.com/jes.mlc.edu.tw/ljj/linkit7697/股票即時資訊積木";
Blockly.Msg.FETCH_STOCK_TITLE = "Fetch realtime stock information from web";
Blockly.Msg.STOCK_STOCKID = "Stock ID";
Blockly.Msg.STOCK_TOOLTIP = "Taiwan Stock";
Blockly.Msg.STOCK_GET_VALUE = "Get stock data";
Blockly.Msg.STOCK_VALUE_DROPDOWN=[['Stock ID','docStock["msgArray"][0]["c"].as<char*>()'],
['name','docStock["msgArray"][0]["n"].as<char*>()'],
['Full name','docStock["msgArray"][0]["nf"].as<char*>()'],
['Opening Price','docStock["msgArray"][0]["o"].as<char*>()'],
['Closing Price','docStock["msgArray"][0]["y"].as<char*>()'],
['Day High','docStock["msgArray"][0]["h"].as<char*>()'],
['Day Low','docStock["msgArray"][0]["l"].as<char*>()'],
['Volume','docStock["msgArray"][0]["tv"].as<String>()'],
['Total Volume','docStock["msgArray"][0]["v"].as<char*>()'],
['Strike price','docStock["msgArray"][0]["z"].as<String>()'],
['date','docStock["msgArray"][0]["d"].as<char*>()'],
['time','docStock["msgArray"][0]["t"].as<char*>()']
];
Blockly.Msg.STOCK_WARNING = "You have to fetch stock realtime information from web first.";
//Probbie
Blockly.Msg.PROBBIE_HELPURL = "https://sites.google.com/jes.mlc.edu.tw/ljj/linkit7697/寶比機器人積木";
Blockly.Msg.PROBBIE_TITLE = "Probbie";
Blockly.Msg.PROBBIE_INIT = "initialize";
Blockly.Msg.PROBBIE_TOOLTIP = "Probbie";
Blockly.Msg.PROBBIE_7697="7697 for Probbie";
Blockly.Msg.PROBBIE_POCKETCARD="PocketCard for Probbie2";
Blockly.Msg.PROBBIE_LEFT_EYE = "left eye";
Blockly.Msg.PROBBIE_RIGHT_EYE = "right eye";
Blockly.Msg.PROBBIE_ALL_EYES = "both eyes";
Blockly.Msg.PROBBIE_COLOR = "color:";
Blockly.Msg.PROBBIE_DETECT = "detect obstacle by IR";
Blockly.Msg.PROBBIE_OBSTACLE = "obstacle";
Blockly.Msg.PROBBIE_OBSTACLE_TYPE=[["is none","ProximityValue==0"],["is on left side","ProximityValue==1"],["is on right side","ProximityValue==2"],["are on both side","ProximityValue==3"]];
Blockly.Msg.PROBBIE_READ_IR_VALUE = "read IR value:";
Blockly.Msg.PROBBIE_WARNING = "You have to initialize your Probbie first.";
Blockly.Msg.PROBBIE_OBSTACLE_WARNING= 'You have to set "detect obstacle by IR" first.';
//Broadcast UDP
Blockly.Msg.BROADCAST_UDP_HELPURL= "https://sites.google.com/jes.mlc.edu.tw/ljj/linkit7697/udp廣播積木";
Blockly.Msg.BROADCAST_UDP_TITLE = "UDP Broadcast";
Blockly.Msg.BROADCAST_UDP_INIT = "init port:";
Blockly.Msg.BROADCAST_UDP_TOOLTIP= "Broadcast UDP";
Blockly.Msg.BROADCAST_UDP_SEND = "broadcast message:";
Blockly.Msg.BROADCAST_UDP_RECEIVED_EVENT = "on received broadcast message";
Blockly.Msg.BROADCAST_UDP_RECEIVED_MSG = "received message";
Blockly.Msg.BROADCAST_UDP_RESET = "reset broadcast port:";
Blockly.Msg.BROADCAST_UDP_WARNING = "You have to init your broadcast port first.";
Blockly.Msg.BROADCAST_UDP_CHECK = "check UDP message";
//WEBSERVER
Blockly.Msg.WEBSERVER_HELPURL= "https://sites.google.com/jes.mlc.edu.tw/ljj/linkit7697/網頁伺服器積木";
Blockly.Msg.WEBSERVER_TITLE = "Web Server";
Blockly.Msg.WEBSERVER_INIT = "init port:";
Blockly.Msg.WEBSERVER_TOOLTIP= "Web Server";
Blockly.Msg.WEBSERVER_WARNING = "You have to init your web server port at first.";
Blockly.Msg.WEBSERVER_EVERY = "every";
Blockly.Msg.WEBSERVER_UPDATE = "seconds refresh";
Blockly.Msg.WEBSERVER_HEAD_TITLE = "set Web page title:";
Blockly.Msg.WEBSERVER_HEAD_DESCRIPTION = "set head text";
Blockly.Msg.WEBSERVER_HEAD_CONTENT = "content";
Blockly.Msg.WEBSERVER_HEAD_SIZE = "size:";
Blockly.Msg.WEBSERVER_HEAD_ALIGN = "align:";
Blockly.Msg.WEBSERVER_HEAD_ALIGN_TYPE=[["left","left"],["right","right"],["center","center"]];
Blockly.Msg.WEBSERVER_PARAGRAPH_BEGIN = "set paragraph begin,";
Blockly.Msg.WEBSERVER_PARAGRAPH_BREAK = "set break";
Blockly.Msg.WEBSERVER_FONT_SIZE = "font size:"
Blockly.Msg.WEBSERVER_FONT_CONTENT = "content:";
Blockly.Msg.WEBSERVER_PREPARE_BODY = "send web content to client";
Blockly.Msg.WEBSERVER_FONT_BOLD = "bold:";
Blockly.Msg.WEBSERVER_TALK_TITLE = "set speech:";
Blockly.Msg.WEBSERVER_BG_COLOR = "background color:";
Blockly.Msg.WEBSERVER_CUSTOM = "set your HTML code:";
Blockly.Msg.WEBSERVER_DIGITAL = "set digitalWrite controller, pin:";
Blockly.Msg.WEBSERVER_TEXT = "set content text:";
Blockly.Msg.WEBSERVER_BTN_TYPE = "button text:";
Blockly.Msg.WEBSERVER_PWM = "set analogWrite controller, pin:";
Blockly.Msg.WEBSERVER_CUSTOM_CONTROLLER_TYPE_TITLE = "type:";
Blockly.Msg.WEBSERVER_CUSTOM_CONTROLLER_TYPE=[["text","text"],["button","button"]];
Blockly.Msg.WEBSERVER_CUSTOM_HREF = "href:";
Blockly.Msg.WEBSERVER_CUSTOM_CONTROLLER_VALUE = "content:";
Blockly.Msg.WEBSERVER_EVENT_TITLE = "when location contains the string:";
Blockly.Msg.WEBSERVER_SERVO = "set servo angle, pin:";
Blockly.Msg.WEBSERVER_CUSTOM_CONTROLLER="set custom controller";
Blockly.Msg.WEBSERVER_BODY_WARNING="You have to set \""+Blockly.Msg.WEBSERVER_PREPARE_BODY+"\" block first.";
Blockly.Msg.LINKIT_SET_WIFI_UNTIL_READY_TYPE= "board:";
//Custom_block
Blockly.Msg.CUSTOM_BLOCK_TITLE = "Custom Block";
Blockly.Msg.CUSTOM_BLOCK_INCLUDE = "include file:";
Blockly.Msg.CUSTOM_BLOCK_CODE = "Your code:";
//BOARDS
Blockly.Msg.BOARDS_TITLE = "Board";
Blockly.Msg.BOARDS_SETUP = "Setup your board:";
Blockly.Msg.BOARDS_TOOLTIP = "Setup your board";
Blockly.Msg.BOARDS_DIGITAL = "Digital pin";
Blockly.Msg.BOARDS_ANALOG = "Analog pin";
Blockly.Msg.BOARDS_I2C_RESET = "Reset I2C pin";
Blockly.Msg.BOARDS_HELPURL = "https://sites.google.com/jes.mlc.edu.tw/ljj/linkit7697/開發板設定積木";
//ESP32_Board尤哲哲
Blockly.Msg.ESP32_BOARD_HELPURL = "https://sites.google.com/jes.mlc.edu.tw/ljj/esp32/esp32教學輔助板";
Blockly.Msg.ESP32_BOARD_TITLE = "ESP32 Expansion board";
Blockly.Msg.ESP32_BOARD_TOOLTIP = "";
Blockly.Msg.ESP32_BOARD_RGB= [["indicator light 0","0"],["indicator light 1","1"],["indicator light 2","2"],["indicator light 3","3"],["indicator light 4","4"],["red light","7"],["green light","6"],["blue light","5"]];
Blockly.Msg.ESP32_BOARD_RGB_CUSTOM = "light number:";
Blockly.Msg.ESP32_BOARD_RGB_STATUS = "Status";
Blockly.Msg.ESP32_BOARD_I2C_RESET = "Reset I2C pin SDA:26 SCL:27";
//ESP32_analogWrite
Blockly.Msg.ESP32_ANALOG_WRITE_TOOLTIP = "";
Blockly.Msg.ESP32_ANALOG_WRITE_CHANNEL = "Channel(0~15)";
Blockly.Msg.ESP32_ANALOG_WRITE_HELPURL = "https://sites.google.com/jes.mlc.edu.tw/ljj/linkit7697/開發板設定積木";
Blockly.Msg.ESP32_ANALOG_WRITE_TITLE= "analogWrite(0~255)";
//ESP32_BuiltIn sensor
Blockly.Msg.BUILTIN_HELPURL = "https://sites.google.com/jes.mlc.edu.tw/ljj/esp32/雙核心及內建感測器積木";
Blockly.Msg.BUILTIN_TITLE = "ESP32_Builtin";
Blockly.Msg.BUILTIN_HALL_READ = "read value of Hall sensor";
Blockly.Msg.BUILTIN_TOOLTIP = "";
Blockly.Msg.BUILTIN_TOUCH_READ = "read value of touch sensor";
Blockly.Msg.BUILTIN_TOUCHED_PREFIX = "when";
Blockly.Msg.BUILTIN_TOUCHED_POSTFIX = "was touched";
Blockly.Msg.CORE_TITLE = "ESP32 Dual-Core";
Blockly.Msg.CORE_TASK_NAME = "Task name";
Blockly.Msg.CORE_INDEX = "run in core";
Blockly.Msg.CORE_SETUP = "setup";
Blockly.Msg.CORE_LOOP = "loop";
Blockly.Msg.CORE_RUN = "run";
Blockly.Msg.CORE_STACK = "stack size";
Blockly.Msg.CORE_PRIORITY = "priority";
Blockly.Msg.CORE_STOP = "stop task";
Blockly.Msg.CORE_WARNIG ="You have to set \""+Blockly.Msg.CORE_TITLE+" function\" block first.";
Blockly.Msg.CORE_NUM = "get core ID";
//POCKETCARD
Blockly.Msg.POCKETCARD_HELPURL = "https://sites.google.com/jes.mlc.edu.tw/ljj/esp32/pocketcard";
Blockly.Msg.POCKETCARD_TOOLTIP = "PocketCard";
Blockly.Msg.POCKETCARD_LIGHT_SENSOR = "Light sensor value";
Blockly.Msg.POCKETCARD_TEMPERATURE_SENSOR = "Temperature value";
Blockly.Msg.POCKETCARD_PIXELS_BRIGHTNESS = "brightness";
Blockly.Msg.POCKETCARD_PIXEL_FORMAT = "built-in RGB format";
Blockly.Msg.POCKETCARD_PIXELS_COLOR = "built-in RGB color";
//MPU9250
Blockly.Msg.MPU9250_HELPURL= "https://sites.google.com/jes.mlc.edu.tw/ljj/linkit7697/mpu9250九軸感應器";
Blockly.Msg.MPU9250_TITLE = "MPU9250";
Blockly.Msg.MPU9250_ACCEL_BEGIN = "Begin accelerometer, scale range:";
Blockly.Msg.MPU9250_TOOLTIP= "";
Blockly.Msg.MPU9250_ACCEL_FETCH = "Update the data of accelerometer";
Blockly.Msg.MPU9250_ACCEL_WARNING = "You have to set \"Begin accelerometer\" block first.";
Blockly.Msg.MPU9250_ACCEL_3AXIS = "Accelerometer G value";
Blockly.Msg.MPU925_3AXIS_POST_FIX="axis";
Blockly.Msg.MPU9250_ACCEL_3AXIS_WARNING = "You have to set \""+Blockly.Msg.MPU9250_ACCEL_FETCH+"\" block first.";
Blockly.Msg.MPU9250_MAG_BEGIN = "Begin Magnetometer";
Blockly.Msg.MPU9250_MAG_FETCH = "Update the data of Magnetometer";
Blockly.Msg.MPU9250_MAG_WARNING = "You have to set \""+Blockly.Msg.MPU9250_MAG_BEGIN+"\" block first.";
Blockly.Msg.MPU9250_MAG_3AXIS = "Magnetometer data";
Blockly.Msg.MPU9250_MAG_3AXIS_WARNING = "You have to set \""+Blockly.Msg.MPU9250_MAG_FETCH+"\" block first.";
Blockly.Msg.MPU9250_GYRO_BEGIN = "Begin Gyroscope, scale range:";
Blockly.Msg.MPU9250_GYRO_FETCH = "Update the data of Gyroscope";
Blockly.Msg.MPU9250_GYRO_WARNING = "You have to set \"Begin Gyroscope\" block first.";
Blockly.Msg.MPU9250_GYRO_3AXIS = "Gyroscope data";
Blockly.Msg.MPU9250_GYRO_3AXIS_WARNING = "You have to set \""+Blockly.Msg.MPU9250_GYRO_FETCH+"\" block first.";
Blockly.Msg.MPU925_3AXIS_POST_FIX_UNIT = "DPS";
Blockly.Msg.MPU9250_ACCEL_PITCH_ROLL = "Rotation angle";
Blockly.Msg.MPU9250_PITCH_ROLL=[["Pitch","pitch"],["Roll","roll"]];
//MSA301
Blockly.Msg.MSA301_HELPURL= "https://sites.google.com/jes.mlc.edu.tw/ljj/linkit7697/msa301三軸感應器積木";
Blockly.Msg.MSA301_TITLE = "MSA301";
Blockly.Msg.MSA301_ACCEL_BEGIN = "Begin accelerometer, scale range:";
Blockly.Msg.MSA301_TOOLTIP= "";
Blockly.Msg.MSA301_ACCEL_FETCH = "Update the data of accelerometer";
Blockly.Msg.MSA301_ACCEL_WARNING = "You have to set \""+Blockly.Msg.MSA301_ACCEL_FETCH+"\" block first.";
Blockly.Msg.MSA301_ACCEL_3AXIS = "Accelerometer value(m/s^2)";
Blockly.Msg.MSA301_3AXIS_POST_FIX = "axis";
Blockly.Msg.MSA301_ACCEL_3AXIS_WARNING = "You have to set \""+Blockly.Msg.MSA301_ACCEL_FETCH+"\" block first.";
Blockly.Msg.MSA301_TAP_SETUP = "setup tap detection";
Blockly.Msg.MSA301_TAP_MODE=[["is single tapped?","(1<<5)"],["is double tapped?","(1<<4)"]];
Blockly.Msg.MSA301_TAP_WARNING = "You have to set \""+Blockly.Msg.MSA301_TAP_SETUP+"\" block first.";
Blockly.Msg.MSA301_TAP_BEGIN = "is tapped";
Blockly.Msg.MSA301_TAP_BEGIN_WARNING = "You have to set \""+Blockly.Msg.LIOU_ROBOT_WHEN +" "+Blockly.Msg.MSA301_TITLE+" "+Blockly.Msg.MSA301_TAP_BEGIN+"\" block first.";
//GoogleSheets
Blockly.Msg.GOOGLESHEETS_HELPURL = "https://sites.google.com/jes.mlc.edu.tw/ljj/linkit7697/google試算表積木";
Blockly.Msg.GOOGLESHEETS_TOOLTIP = "Google Sheets";
Blockly.Msg.GOOGLESHEETS_DATA_TITLE_CREATEWITH = "create data with";
Blockly.Msg.GOOGLESHEETS_TITLE = "GoogleSheets";
Blockly.Msg.GOOGLESHEETS_SHEETID = "Sheet ID";
Blockly.Msg.GOOGLESHEETS_SHEETTAG = "Sheet Tag";
Blockly.Msg.GOOGLESHEETS_SEND_DATA = "send data to Google";
Blockly.Msg.GOOGLESHEETS_DATA = "Data";
Blockly.Msg.GOOGLESHEETS_SETUP_TITLE = "setup";
Blockly.Msg.GOOGLESHEETS_FETCH_FROM_SHEET = "fetch data from sheet";
Blockly.Msg.GOOGLESHEETS_BEGIN = "from cell:";
Blockly.Msg.GOOGLESHEETS_END = "to cell:";
Blockly.Msg.GOOGLESHEETS_DATEINCLUDE = "include timestamp";
Blockly.Msg.GOOGLESHEETS_GET_CELL_VALUE = "get value of cell:";
Blockly.Msg.GOOGLESHEETS_UPDATE_TITLE = "update cell:";
Blockly.Msg.GOOGLESHEETS_UPDATE_DATA_TITLE = "value:";
Blockly.Msg.GOOGLESHEETS_SETUP_SHEET_WARNIG = "You have to "+Blockly.Msg.GOOGLESHEETS_SETUP_TITLE+" "+Blockly.Msg.GOOGLESHEETS_SHEETID+" first.";
Blockly.Msg.GOOGLESHEETS_SETUP_FORM_WARNIG = "You have to "+Blockly.Msg.GOOGLESHEETS_SETUP_TITLE+" "+Blockly.Msg.GOOGLESHEETS_SHEETTAG+" first.";
Blockly.Msg.GOOGLESHEETS_FETCH_DATA_WARNIG = 'You have to '+Blockly.Msg.GOOGLESHEETS_SETUP_TITLE+' "'+Blockly.Msg.GOOGLESHEETS_FETCH_FROM_SHEET+'" first.';
Blockly.Msg.GOOGLESHEETS_GET_LAST_ROW = "get the last row number";
Blockly.Msg.GOOGLESHEETS_SEARCH_FROM_SHEET = "search a row where";
Blockly.Msg.GOOGLESHEETS_COLUMN_NAME = "column";
Blockly.Msg.GOOGLESHEETS_KEY_WORD = "equals";
Blockly.Msg.GOOGLESHEETS_GET_FIELD_VALUE = "get field value from search result";
Blockly.Msg.GOOGLESHEETS_DELETE_SEARCH = "delete a row where";
Blockly.Msg.GOOGLESHEETS_SEARCH_DATA_WARNIG = 'You have to setup "'+Blockly.Msg.GOOGLESHEETS_TITLE+' '+Blockly.Msg.GOOGLESHEETS_SEARCH_FROM_SHEET+'" first.';
Blockly.Msg.GOOGLESHEETS_DELETE_ROW = "delete a row where";
Blockly.Msg.GOOGLESHEETS_ROWINDEX = "row index is";
//ESP32 NTP
Blockly.Msg.ESP32NTP_HELPURL = "https://sites.google.com/jes.mlc.edu.tw/ljj/esp32/rtc及網路校時";
Blockly.Msg.ESP32NTP_TOOLTIP = "NTP Time";
Blockly.Msg.ESP32NTP_TITLE = "ESP32 RTC";
Blockly.Msg.ESP32NTP_SETUP_TITLE = "setup time from NTP";
Blockly.Msg.ESP32NTP_TIMEZONE = "TimeZone";
Blockly.Msg.ESP32NTP_GET_RTC_STR = "get string from RTC";
Blockly.Msg.ESP32NTP_GET_RTC_FIELD = "get number from RTC";
Blockly.Msg.ESP32NTP_RTC_FIELD_TYPE= [["year","0"],["month","1"],["day","2"],["hour","3"],["minute","4"],["second","5"],["weekday","6"]];
Blockly.Msg.ESP32NTP_TIME_FORMAT = [["DateTime","0"],["Date","1"],["Time","2"]];
Blockly.Msg.ESP32NTP_SET_TIME = "set DateTime to RTC";
//Line Notify
Blockly.Msg.LINENOTIFY_HELPURL = "https://sites.google.com/jes.mlc.edu.tw/ljj/linkit7697/line通知積木";
Blockly.Msg.LINENOTIFY_TITLE = "LineNotify";
Blockly.Msg.LINENOTIFY_TOOLTIP = "LineNotify";
Blockly.Msg.LINENOTIFY_SETUP_TOKEN = "set Token";
Blockly.Msg.LINENOTIFY_SEND_MSG = "send Line message";
Blockly.Msg.LINENOTIFY_PACKAGEID = "PackageID";
Blockly.Msg.LINENOTIFY_STICKERID = "StickerID";
Blockly.Msg.LINENOTIFY_SET_TOKEN_WARNIG = "You have to "+Blockly.Msg.LINENOTIFY_SETUP_TOKEN+" first.";
Blockly.Msg.LINENOTIFY_LINE_BREAK = "line feed";
//TTGO TFT
Blockly.Msg.TTGO_TFT_HELPURL = "https://sites.google.com/jes.mlc.edu.tw/ljj/esp32/t-display";
Blockly.Msg.TTGO_TFT_TITLE = "TTGO_TFT";
Blockly.Msg.TTGO_TFT_INIT = "initial";
Blockly.Msg.TTGO_TFT_TOOLTIP = "TTGO TFT";
Blockly.Msg.TTGO_TFT_ROTATION=[["Portrait","0"],["Landscape","1"]];
Blockly.Msg.TTGO_TFT_FILL_COLOR = "fill color";
Blockly.Msg.TTGO_TFT_INIT_WARNIG = "You have to "+Blockly.Msg.TTGO_TFT_INIT+" "+Blockly.Msg.TTGO_TFT_TITLE+" first.";
Blockly.Msg.TTGO_TFT_DRAW_CHINESE_TEXT ="show Chinese text";
Blockly.Msg.TTGO_TFT_DRAW_ENG_FONT_SIZE = "set English font size(1~7)";
Blockly.Msg.TTGO_TFT_PRINT_ENG_TEXT = "show English text";
Blockly.Msg.TTGO_TFT_DRAW_ENG_TEXT = "draw English text";
Blockly.Msg.TTGO_TFT_DRAW_ENG_FONT_NUMBER = "set specific font number(1~8)";
Blockly.Msg.TTGO_SET_FONT_NAME = "set symbol font name";
Blockly.Msg.TTGO_SET_ALPHABET_FONT_NAME = "set a font name";
Blockly.Msg.TTGO_TFT_DRAW_SYMBOL = "draw glyph";
Blockly.Msg.TTGO_TFT_DRAW_SYMBOL_NUMBER = "glyph number";
Blockly.Msg.TTGO_TFT_SET_ROTATION = "set TFT rotation";
Blockly.Msg.TTGO_DRAW_BOX = "draw box";
Blockly.Msg.TTGO_DRAW_TRIANGLE = "draw triangle";
Blockly.Msg.TTGO_TFT_COLOR_HOUR = "hour hand";
Blockly.Msg.TTGO_TFT_COLOR_MIN = "minute hand";
Blockly.Msg.TTGO_TFT_COLOR_SEC = "second hand";
Blockly.Msg.TTGO_TFT_COLOR_SCALE = "scale";
Blockly.Msg.TTGO_TFT_SET_CLOCK = "set clock color";
Blockly.Msg.TTGO_TFT_CLOCK_POSITION_TITLE = "position:";
Blockly.Msg.TTGO_TFT_CLOCK_POSITION=[["middle","1"],["top(left)","0"],["bottom(right)","2"]];
//S20
Blockly.Msg.S20_HELPURL = "https://sites.google.com/jes.mlc.edu.tw/ljj/esp32/s20智慧插座積木";
Blockly.Msg.S20_TOOLTIP = "S20";
Blockly.Msg.S20_TITLE = "Sonoff S20";
Blockly.Msg.S20_LED = "LED(P13) digitalWrite";
Blockly.Msg.S20_RELAY = "relay(P12) digitalWrite";
Blockly.Msg.S20_PRESSED = "button(P0) pressed?";
Blockly.Msg.S20_RELAY_OPENED = "relay(P12) is ON?";
//I2S DAC
Blockly.Msg.DAC_HELPURL = "https://sites.google.com/jes.mlc.edu.tw/ljj/esp32/i2s數位音頻轉換積木";
Blockly.Msg.DAC_TITLE = "I2S DAC"
Blockly.Msg.DAC_INIT = "initial";
Blockly.Msg.DAC_TOOLTIP = "I2S DAC";
Blockly.Msg.DAC_LOOP = "keep the DAC working";
Blockly.Msg.DAC_INIT_WARNIG = "You have to "+Blockly.Msg.DAC_INIT+" "+Blockly.Msg.DAC_TITLE+" first.";
Blockly.Msg.DAC_TTS_TITLE = "Google text to speech(TTS)";
Blockly.Msg.DAC_TTS_LANGUAGE = "language";
Blockly.Msg.DAC_TTS_LANGUAGES = [["Taiwan","zh-TW"],["US","en-US"],["UK","en-GB"],["Japan","ja-JP"],["Korea","ko-KR"],["Frence","fr-FR"],["German","de-DE"],["Thailand","th"],["Vietnum","vi"]];
Blockly.Msg.DAC_RADIO_TITLE = "listen to the internet radio";
Blockly.Msg.DAC_TTS_END = "when TTS ends";
Blockly.Msg.DAC_TTS_ENDS_WITH ="if TTS content equals";
Blockly.Msg.DAC_TTS_ENDS_WITH_WARNIG = "You have to put the block into \""+Blockly.Msg.DAC_TTS_END+"\" block.";
Blockly.Msg.DAC_IS_RUNNING = "is runnig?";
Blockly.Msg.DAC_FILE_SOURCE_TITLE = "play MP3 file from";
Blockly.Msg.DAC_FILE_SOURCE = [["SD card","1"],["SPIFFS","2"]];
Blockly.Msg.DAC_FILE_NAME = "file name(include path)";
Blockly.Msg.DAC_MP3_END = "when MP3 ends";
Blockly.Msg.DAC_MP3_ENDS_WITH = "if MP3 file name is";
Blockly.Msg.DAC_MP3_ENDS_WITH_WARNIG = "You have to put the block into \""+Blockly.Msg.DAC_MP3_END+"\" block.";
Blockly.Msg.DAC_TTS_FILE_TITLE = "save Google TTS MP3 file";
Blockly.Msg.DAC_TTS_SAVE_TO = "to";
Blockly.Msg.DAC_STOP = "stop any audio";
Blockly.Msg.DAC_GAIN = "set volume gain(0.0~4.0)";
Blockly.Msg.DAC_RADIO_LIST_TITLE = "internet radio";
Blockly.Msg.DAC_RADIO_LIST = [["ICRT","http://live.leanstream.co/ICRTFM-MP3"],
["NPR News","http://npr-ice.streamguys1.com/live.mp3"],
["BBC News","http://stream.live.vc.bbcmedia.co.uk/bbc_world_service"],
["城市廣播網","http://fm929.cityfm.tw:8080/929.mp3"],
["輔大之聲","http://140.136.115.115:8000/fjuvoice885.mp3"],
["Kids public radio","http://kidspublicradio2.got.net:8000/pipsqueaks"],
["Piano Solo","http://pianosolo.streamguys.net/live"],
["古典音樂台","http://onair.family977.com.tw:8000/live.mp3"],
["栗子的輕音樂","http://lizeradio.com:8080/;&type=mp3"],
["紐約愛樂","http://stream.wqxr.org/wqxr"],
["BEAM FM","http://shoutcast.beamfm.net:8504/;"],
["Jazz Decades","http://wgbh.streamguys.com:8116/Jazz24-7"],
["LINN Jazz英國網路音樂台","http://radio.linn.co.uk:8000/autodj"],
["Soul Radio","http://soulradio02.live-streams.nl/live"],
["WeFunk Radio","http://s-09.wefunkradio.com:8000/wefunk64.mp3"],
["181 FM","http://relay.181.fm:8128/"],
["南投廣播","http://fm971.cityfm.tw:8080/971.mp3"],
["竹塹電台","http://211.72.230.118:8081/"],
["噶瑪蘭廣播","http://61.220.209.152:8081/"],
["屏東之聲","http://59.120.255.169:8081/"],
["潮州之聲","http://59.120.255.170:8081/"],
["歡喜之聲","http://59.125.41.65:8081/"],
["下港之聲","http://59.120.255.155:8081/"],
["環球廣播電台","http://60.248.53.115:8081/"],
["大千電台","http://stream.superfm99-1.com.tw:8554/"],
["寶島新聲","http://stream.superfm99-1.com.tw:8555/"]
];
Blockly.Msg.DAC_HTTP_MP3_TITLE = "play internet MP3 from";
Blockly.Msg.DAC_HTTP_MP3_END = "when internet MP3 ends";
Blockly.Msg.DAC_HTTP_MP3_ENDS_WITH = "if internet MP3 URL is";
Blockly.Msg.DAC_HTTP_MP3_ENDS_WITH_WARNIG = "You have to put the block into \""+Blockly.Msg.DAC_HTTP_MP3_END+"\" block.";
//SD_Card
Blockly.Msg.SD_HELPURL = "https://sites.google.com/jes.mlc.edu.tw/ljj/linkit7697/sd記憶卡積木";
Blockly.Msg.SD_TOOLTIP = "";
Blockly.Msg.SD_TITLE = "SD_Card";
Blockly.Msg.SD_INIT = "initial";
Blockly.Msg.SD_EXISTS = "SD exists?";
Blockly.Msg.SD_INIT_WARNIG = "You have to "+Blockly.Msg.SD_INIT+" "+Blockly.Msg.SD_TITLE+" first.";
Blockly.Msg.SD_MKDIR = "create directory";
Blockly.Msg.SD_RMDIR = "remove directory";
Blockly.Msg.SD_VARIABLE = "declaire a File Object variable name";
Blockly.Msg.SD_FILE_VARIABLE = "File Object";
Blockly.Msg.SD_FILE_OPEN = "open file name(include path)";
Blockly.Msg.SD_FILE_INIT_WARNIG = "You have to "+Blockly.Msg.SD_VARIABLE+" first.";
Blockly.Msg.SD_FILE_OPEN_MODE_TITLE = "open mode";
Blockly.Msg.SD_FILE_OPEN_MODE =[["read only","O_RDONLY"],["over write","O_TRUNC | O_WRITE | O_CREAT"],["append","O_WRITE | O_CREAT | O_AT_END"]];
Blockly.Msg.SD_FILE_EXISTS = "is file opened successfully?";
Blockly.Msg.SD_FILE_CLOSE = "file close";
Blockly.Msg.SD_FILE_PRINT_CONTENT = "text";
Blockly.Msg.SD_FILE_PRINT_MODE = [["print line",".println"],["print",".print"]];
Blockly.Msg.SD_FILE_AVAILABLE = "available?";
Blockly.Msg.SD_FILE_READ_UNTIL_CHAR = "read string until char";
Blockly.Msg.SD_FILE_READ_LINE = "read a line of string";
//ESP32_IRQ
Blockly.Msg.ESP32_IRQ_HELPURL = "https://sites.google.com/jes.mlc.edu.tw/ljj/esp32/中斷處理";
Blockly.Msg.ESP32_IRQ_TIMER_TITLE = "ESP32 Timer interrupts";
Blockly.Msg.ESP32_IRQ_FUNCTION = "function";
Blockly.Msg.ESP32_IRQ_FUNCTION_NAME = "name";
Blockly.Msg.ESP32_IRQ_TOOLTIP = "Interrupts";
Blockly.Msg.ESP32_IRQ_RUN = "run";
Blockly.Msg.ESP32_IRQ_RUN_ON_TIMER = "on Timer";
Blockly.Msg.ESP32_IRQ_TIMER_DURATION= "every";
Blockly.Msg.ESP32_IRQ_TIMER_UNIT = [["millisecond","1000"],["microseconds","1"]];
Blockly.Msg.ESP32_IRQ_DELETE = "delete timer task";
Blockly.Msg.ESP32_IRQ_TIMER_WARNIG = "You have to set \""+Blockly.Msg.ESP32_IRQ_TIMER_TITLE+" "+Blockly.Msg.ESP32_IRQ_FUNCTION+"\" first.";
Blockly.Msg.ESP32_IRQ_TIMER_DELETE_WARNIG = "You have to set \""+Blockly.Msg.ESP32_IRQ_TIMER_TITLE+" "+Blockly.Msg.ESP32_IRQ_RUN+" "+Blockly.Msg.ESP32_IRQ_RUN_ON_TIMER+"\" first.";
Blockly.Msg.ESP32_IRQ_PIN_TITLE = "ESP32 Pin Interrupts";
Blockly.Msg.ESP32_IRQ_PIN_MODE = [["is falling","FALLING"],["is rising","RISING"],["is changing","CHANGE"],["is low","LOW"],["is high","HIGH"]];
Blockly.Msg.ESP32_IRQ_PIN_WARNIG = "You have to set \""+Blockly.Msg.ESP32_IRQ_PIN_TITLE+" "+Blockly.Msg.ESP32_IRQ_FUNCTION+"\" first.";
Blockly.Msg.ESP32_IRQ_PIN_DELETE = "detach interrupt";
Blockly.Msg.ESP32_IRQ_PIN_DELETE_WARNIG = "You have to set \""+Blockly.Msg.ESP32_IRQ_PIN_TITLE+" "+Blockly.Msg.ESP32_IRQ_RUN+"\" first.";
//L9110
Blockly.Msg.L9110_HELPURL = "https://sites.google.com/jes.mlc.edu.tw/ljj/linkit7697/l9110馬達驅動板";
Blockly.Msg.L9110_TITLE = "L9110 motor board";
Blockly.Msg.L9110_INIT = "init";
Blockly.Msg.L9110_TOOLTIP = "L9110";
Blockly.Msg.L9110_MOTOR = "motor";
Blockly.Msg.L9110_MOTOR_LIST = [["M1","m1"],["M2","m2"],["both","both"]];
Blockly.Msg.L9110_ROTATE = "rotate";
Blockly.Msg.L9110_DIRECTION = [["clockWise","1"],["counterClockWise","2"]];
Blockly.Msg.L9110_WARNING = "You have to set \""+Blockly.Msg.L9110_TITLE+" "+Blockly.Msg.L9110_INIT+"\" first.";
//EZ Start Plus
Blockly.Msg.STARTPLUS_HELPURL = "https://sites.google.com/jes.mlc.edu.tw/ljj/esp32/ez-start-kit-擴展板";
Blockly.Msg.STARTPLUS_TITLE = 'EZ Start Kit+';
Blockly.Msg.STARTPLUS_TOOLTIP = "EZ Start Kit+";
Blockly.Msg.STARTPLUS_DHT = "DHT11";
Blockly.Msg.STARTPLUS_NEOPIXEL_SET_ALL_COLORS = "show all pixels colors";
Blockly.Msg.STARTPLUS_IR_TITLE = "init IR receiver";
//MAX30102
Blockly.Msg.MAX30105_HELPURL = "https://sites.google.com/jes.mlc.edu.tw/ljj/linkit7697/max30102血氧濃度感測積木";
Blockly.Msg.MAX30105_TITLE = "MAX30102 SPO2";
Blockly.Msg.MAX30105_TOOLTIP = "MAX30102 SPO2";
Blockly.Msg.MAX30105_LED = "red LED brightness";
Blockly.Msg.MAX30105_CHECK = "detected";
Blockly.Msg.MAX30105_CHECK_LIST = [["finger","IR"],["MAX3010X","READY"],["HearBeat","HB"]];
Blockly.Msg.MAX30105_WARNING = "You have to set \""+Blockly.Msg.MAX30105_TITLE+" "+Blockly.Msg.PROBBIE_INIT+"\" first.";
Blockly.Msg.MAX30105_BEATRATE = "HearBeat rate";
Blockly.Msg.MAX30105_AVG = "times average value";
Blockly.Msg.MAX30105_SPO2 = "SpO2";
Blockly.Msg.MAX30105_TEMPERATURE = "temperature";
Blockly.Msg.MAX30105_TEMP_LIST = [["Celsius","C"],["Fahrenheit","F"]];
Blockly.Msg.MAX30105_BEAT_RANGE = "set available heartbeat rate range:";
Blockly.Msg.MAX30105_SPO2_CLEAR = "reset SpO2 detected value";
//SPIFFS
Blockly.Msg.SPIFFS_HELPURL = "https://sites.google.com/jes.mlc.edu.tw/ljj/esp32/spiffs";
Blockly.Msg.SPIFFS_TITLE = "SPIFFS";
Blockly.Msg.SPIFFS_INIT = Blockly.Msg.SD_INIT;
Blockly.Msg.SPIFFS_TOOLTIP = "SPIFFS";
Blockly.Msg.SPIFFS_EXISTS ="SPIFFS exists?";
Blockly.Msg.SPIFFS_INIT_WARNIG = "You have to "+Blockly.Msg.SPIFFS_INIT+" "+Blockly.Msg.SPIFFS_TITLE+" first.";
Blockly.Msg.SPIFFS_FORMAT = "format";
Blockly.Msg.SPIFFS_FILE_INIT_WARNIG = "You have to "+Blockly.Msg.SD_VARIABLE+" first.";
Blockly.Msg.SPIFFS_FILE_OPEN_MODE =[["read only","r"],["over write","w"],["append","a"],["append+","a+"]];
Blockly.Msg.SPIFFS_FILE_DELETE = "remove file(include path)";
Blockly.Msg.SPIFFS_FILE_DOWNLOAD = "download file from URL";
Blockly.Msg.SPIFFS_FILE_SAVE = "save to file name(include path)";
//ASR
Blockly.Msg.ASR_HELPURL = "https://sites.google.com/jes.mlc.edu.tw/ljj/linkit7697/asr語音辨識指令積木";
Blockly.Msg.ASR_TITLE = "ASR";
Blockly.Msg.ASR_CHECK = "check speech recognition result";
Blockly.Msg.ASR_TOOLTIP = "ASR";
Blockly.Msg.ASR_WHEN_CHECKED = "is recognized?";
Blockly.Msg.ASR_WARNING = "You have to set \""+Blockly.Msg.ASR_TITLE+" "+Blockly.Msg.ASR_CHECK+"\" first.";
Blockly.Msg.ASR_SPEECH_LIST =[
["Hi,Shaun","1"],["Turn on lights","16"],["Turn off lights","17"],["Turn left","18"],["Turn right","19"],["Go forward","20"],["Go Backward","21"],
["Line Tracking","22"],["Avoid object","23"],["Stop car","24"],["Start device","32"],["Close device","33"],["Pause device","34"],["Keep going","35"],
["Add a level","36"],["Lower a level","37"],["Music on","38"],["Music off","39"],["Switch music","40"],["Execute function one","49"],
["Execute function two","50"],["Learning entry 1","80"],["Learning entry 2","81"],["Learning entry 3","82"],["Learning entry 4","83"],
["Learning entry 5","84"],["Learning entry 6","85"],["Learning entry 7","86"],["Learning entry 8","87"],["Learning entry 9","88"],["Learning entry 10","89"]
];
Blockly.Msg.ASR_CLEAR = "restore factory settings";
Blockly.Msg.ASR_LEARN = "enter learning-model";
//PN532_I2C
Blockly.Msg.PN532I2C_HELPURL = "https://sites.google.com/jes.mlc.edu.tw/ljj/esp32/pn532讀取rfid";
Blockly.Msg.PN532I2C_TITLE = "NFC PN532";
Blockly.Msg.PN532I2C_INIT = "init";
Blockly.Msg.PN532I2C_TOOLTIP = "";
Blockly.Msg.PN532I2C_LOOP = "check RFID";
Blockly.Msg.PN532I2C_WARNING = "You have to set \""+Blockly.Msg.PN532I2C_TITLE+" "+Blockly.Msg.PN532I2C_INIT+"\" first.";
Blockly.Msg.PN532I2C_CHECK_UID = "read a RFID tag ID?";
Blockly.Msg.PN532I2C_UID = "RFID Tag ID";
Blockly.Msg.PN532I2C_TYPE = "the type of the detected RFID tag";
Blockly.Msg.PN532I2C_CLASSIC = "Mifare Classic";
Blockly.Msg.PN532I2C_WRITE_BLOCK = "write string";
Blockly.Msg.PN532I2C_WRITE_SECTOR = "write long string";
Blockly.Msg.PN532I2C_ON = "on";
Blockly.Msg.PN532I2C_SECTOR = "Sector";
Blockly.Msg.PN532I2C_BLOCK = "Block";
Blockly.Msg.PN532I2C_READ_BLOCK = "read string";
Blockly.Msg.PN532I2C_READ_SECTOR = "read long string";
Blockly.Msg.PN532I2C_FROM = "from";
Blockly.Msg.PN532I2C_ULTRALIGHT = "Mifare Ultralight";
Blockly.Msg.PN532I2C_PAGE = "Page";
Blockly.Msg.PN532I2C_PAGE_List = [["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"],["10","10"],["11","11"],["12","12"],["13","13"],["14","14"],
["15","15"],["16","16"],["17","17"],["18","18"],["19","19"],["20","20"],["21","21"],["22","22"],["23","23"],["24","24"],
["25","25"],["26","26"],["27","27"],["28","28"],["29","29"],["30","30"],["31","31"],["32","32"],["33","33"],["34","34"],
["35","35"],["36","36"],["37","37"],["38","38"],["39","39"]];