-
-
Notifications
You must be signed in to change notification settings - Fork 2.1k
/
_messages.js
1472 lines (1253 loc) · 101 KB
/
_messages.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
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
// -*- mode: java; c-basic-offset: 2; -*-
// Copyright © 2012-2016 Massachusetts Institute of Technology. All rights reserved.
/**
* Visual Blocks Language
*
* Copyright © 2012 Google Inc.
* Copyright © 2012-2017 Massachusetts Institute of Technology
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/**
* @fileoverview Traditional English strings.
* @author mckinney@gmail.com (Andrew F. McKinney)
*/
'use strict';
goog.provide('AI.Blockly.Msg.en');
goog.require('Blockly.Msg.en');
/**
* Due to the frequency of long strings, the 80-column wrap rule need not apply
* to message files.
*/
Blockly.Msg.en.switch_language_to_english = {
// Switch language to English.
category: '',
helpUrl: '',
init: function() {
// Context menus.
Blockly.Msg.UNDO = 'Undo';
Blockly.Msg.REDO = 'Redo';
Blockly.Msg.CLEAN_UP = 'Clean up Blocks';
Blockly.Msg.DUPLICATE_BLOCK = 'Duplicate';
Blockly.Msg.REMOVE_COMMENT = 'Remove Comment';
Blockly.Msg.ADD_COMMENT = 'Add Comment';
Blockly.Msg.EXTERNAL_INPUTS = 'External Inputs';
Blockly.Msg.INLINE_INPUTS = 'Inline Inputs';
Blockly.Msg.HORIZONTAL_PARAMETERS = 'Arrange Parameters Horizontally';
Blockly.Msg.VERTICAL_PARAMETERS = 'Arrange Parameters Vertically';
Blockly.Msg.CONFIRM_DELETE = 'Confirm deletion';
Blockly.Msg.DELETE_ALL_BLOCKS = "Delete all %1 blocks?";
Blockly.Msg.DELETE_BLOCK = 'Delete Block';
Blockly.Msg.DELETE_X_BLOCKS = 'Delete %1 Blocks';
Blockly.Msg.COLLAPSE_BLOCK = 'Collapse Block';
Blockly.Msg.EXPAND_BLOCK = 'Expand Block';
Blockly.Msg.DISABLE_BLOCK = 'Disable Block';
Blockly.Msg.ENABLE_BLOCK = 'Enable Block';
Blockly.Msg.HELP = 'Help';
Blockly.Msg.EXPORT_IMAGE = 'Download Blocks as Image';
Blockly.Msg.COLLAPSE_ALL = 'Collapse Blocks';
Blockly.Msg.EXPAND_ALL = 'Expand Blocks';
Blockly.Msg.ARRANGE_H = 'Arrange Blocks Horizontally';
Blockly.Msg.ARRANGE_V = 'Arrange Blocks Vertically';
Blockly.Msg.ARRANGE_S = 'Arrange Blocks Diagonally';
Blockly.Msg.SORT_W = 'Sort Blocks by Width';
Blockly.Msg.SORT_H = 'Sort Blocks by Height';
Blockly.Msg.SORT_C = 'Sort Blocks by Category';
Blockly.Msg.COPY_TO_BACKPACK = 'Add to Backpack';
Blockly.Msg.COPY_ALLBLOCKS = 'Copy All Blocks to Backpack';
Blockly.Msg.REMOVE_FROM_BACKPACK = 'Remove from Backpack';
Blockly.Msg.BACKPACK_GET = 'Paste All Blocks from Backpack';
Blockly.Msg.BACKPACK_EMPTY = 'Empty the Backpack';
Blockly.Msg.BACKPACK_CONFIRM_EMPTY = 'Are you sure you want to empty the backpack?';
Blockly.Msg.BACKPACK_DOC_TITLE = "Backpack Information";
Blockly.Msg.SHOW_BACKPACK_DOCUMENTATION = "Show Backpack documentation";
Blockly.Msg.BACKPACK_DOCUMENTATION = "The Backpack is a copy/paste feature. It allows you to copy blocks from one project or screen " +
" and paste them into another project or screen. " +
" To copy, you can drag-and-drop blocks into the Backpack. To paste, click on the Backpack icon and " +
" drag-and-drop blocks into the workspace." +
"</p><p>If you leave MIT App Inventor with blocks left in your backpack, " +
" they will be there the next time you login." +
"</p><p><a href='/reference/other/backpack.html' target='_blank'>Click Here</a> for further documentation and a 'how to' video.";
Blockly.Msg.ENABLE_GRID = 'Enable Workspace Grid';
Blockly.Msg.DISABLE_GRID = 'Disable Workspace Grid';
Blockly.Msg.ENABLE_SNAPPING = 'Enable Snap to Grid';
Blockly.Msg.DISABLE_SNAPPING = 'Disable Snap to Grid';
Blockly.Msg.DISABLE_ALL_BLOCKS = 'Disable All Blocks';
Blockly.Msg.ENABLE_ALL_BLOCKS = 'Enable All Blocks';
Blockly.Msg.HIDE_ALL_COMMENTS = 'Hide All Comments';
Blockly.Msg.SHOW_ALL_COMMENTS = 'Show All Comments';
// Variable renaming.
Blockly.Msg.CHANGE_VALUE_TITLE = 'Change value:';
Blockly.Msg.NEW_VARIABLE = 'New variable...';
Blockly.Msg.NEW_VARIABLE_TITLE = 'New variable name:';
Blockly.Msg.RENAME_VARIABLE = 'Rename variable...';
Blockly.Msg.RENAME_VARIABLE_TITLE = 'Rename all "%1" variables to:';
// Toolbox.
Blockly.Msg.VARIABLE_CATEGORY = 'Variables';
Blockly.Msg.PROCEDURE_CATEGORY = 'Procedures';
// Warnings/Errors
Blockly.Msg.ERROR_BLOCK_CANNOT_BE_IN_DEFINTION = "This block cannot be in a definition";
Blockly.Msg.ERROR_SELECT_VALID_ITEM_FROM_DROPDOWN = "Select a valid item in the drop down.";
Blockly.Msg.ERROR_DUPLICATE_EVENT_HANDLER = "This is a duplicate event handler for this component.";
Blockly.Msg.ERROR_COMPONENT_DOES_NOT_EXIST = "Component does not exist";
Blockly.Msg.ERROR_BLOCK_IS_NOT_DEFINED = "This block is not defined. Delete this block!";
Blockly.Msg.ERROR_BREAK_ONLY_IN_LOOP = "The break block should be used only within loops";
// Colour Blocks.
Blockly.Msg.LANG_COLOUR_PICKER_HELPURL = '/reference/blocks/colors.html#basic';
Blockly.Msg.LANG_COLOUR_PICKER_TOOLTIP = 'Click the square to pick a color.';
Blockly.Msg.LANG_COLOUR_BLACK = 'black';
Blockly.Msg.LANG_COLOUR_WHITE = 'white';
Blockly.Msg.LANG_COLOUR_RED = 'red';
Blockly.Msg.LANG_COLOUR_PINK = 'pink';
Blockly.Msg.LANG_COLOUR_ORANGE = 'orange';
Blockly.Msg.LANG_COLOUR_YELLOW = 'yellow';
Blockly.Msg.LANG_COLOUR_GREEN = 'green';
Blockly.Msg.LANG_COLOUR_CYAN = 'cyan';
Blockly.Msg.LANG_COLOUR_BLUE = 'blue';
Blockly.Msg.LANG_COLOUR_MAGENTA = 'magenta';
Blockly.Msg.LANG_COLOUR_LIGHT_GRAY = 'light gray';
Blockly.Msg.LANG_COLOUR_DARK_GRAY = 'dark gray';
Blockly.Msg.LANG_COLOUR_GRAY = 'gray';
Blockly.Msg.LANG_COLOUR_SPLIT_COLOUR = 'split color';
Blockly.Msg.LANG_COLOUR_SPLIT_COLOUR_HELPURL = '/reference/blocks/colors.html#split';
Blockly.Msg.LANG_COLOUR_SPLIT_COLOUR_TOOLTIP = "A list of four elements, each in the range 0 to 255, representing the red, green, blue and alpha components.";
Blockly.Msg.LANG_COLOUR_MAKE_COLOUR = 'make color';
Blockly.Msg.LANG_COLOUR_MAKE_COLOUR_HELPURL = '/reference/blocks/colors.html#make';
Blockly.Msg.LANG_COLOUR_MAKE_COLOUR_TOOLTIP = "A color with the given red, green, blue, and optionally alpha components";
// Control Blocks
Blockly.Msg.LANG_CATEGORY_CONTROLS = 'Control';
Blockly.Msg.LANG_CONTROLS_IF_HELPURL = '/reference/blocks/control.html#if';
Blockly.Msg.LANG_CONTROLS_IF_TOOLTIP_1 = 'If a value is true, then do some statements.';
Blockly.Msg.LANG_CONTROLS_IF_TOOLTIP_2 = 'If a value is true, then do the first block of statements.\n' +
'Otherwise, do the second block of statements.';
Blockly.Msg.LANG_CONTROLS_IF_TOOLTIP_3 = 'If the first value is true, then do the first block of statements.\n' +
'Otherwise, if the second value is true, do the second block of statements.';
Blockly.Msg.LANG_CONTROLS_IF_TOOLTIP_4 = 'If the first value is true, then do the first block of statements.\n' +
'Otherwise, if the second value is true, do the second block of statements.\n' +
'If none of the values are true, do the last block of statements.';
Blockly.Msg.LANG_CONTROLS_IF_MSG_IF = 'if';
Blockly.Msg.LANG_CONTROLS_IF_MSG_ELSEIF = 'else if';
Blockly.Msg.LANG_CONTROLS_IF_MSG_ELSE = 'else';
Blockly.Msg.LANG_CONTROLS_IF_MSG_THEN = 'then';
Blockly.Msg.LANG_CONTROLS_IF_IF_TITLE_IF = 'if';
Blockly.Msg.LANG_CONTROLS_IF_IF_TOOLTIP = 'Add, remove, or reorder sections\n' +
'to reconfigure this if block.';
Blockly.Msg.LANG_CONTROLS_IF_ELSEIF_TITLE_ELSEIF = 'else if';
Blockly.Msg.LANG_CONTROLS_IF_ELSEIF_TOOLTIP = 'Add a condition to the if block.';
Blockly.Msg.LANG_CONTROLS_IF_ELSE_TITLE_ELSE = 'else';
Blockly.Msg.LANG_CONTROLS_IF_ELSE_TOOLTIP = 'Add a final, catch-all condition to the if block.';
Blockly.Msg.LANG_CONTROLS_WHILEUNTIL_HELPURL = '/reference/blocks/control.html#while';
Blockly.Msg.LANG_CONTROLS_WHILEUNTIL_TITLE_REPEAT = 'repeat';
Blockly.Msg.LANG_CONTROLS_WHILEUNTIL_INPUT_DO = 'do';
Blockly.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE = 'while';
Blockly.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL = 'until';
Blockly.Msg.LANG_CONTROLS_WHILEUNTIL_TOOLTIP_WHILE = 'While a value is true, then do some statements.';
Blockly.Msg.LANG_CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL = 'While a value is false, then do some statements.';
Blockly.Msg.LANG_CONTROLS_WHILEUNTIL_TOOLTIP_1 = 'Runs the blocks in the \'do\' section while the test is '
+ 'true.';
Blockly.Msg.LANG_CONTROLS_FOR_HELPURL = '';
Blockly.Msg.LANG_CONTROLS_FOR_INPUT_WITH = 'count with';
Blockly.Msg.LANG_CONTROLS_FOR_INPUT_VAR = 'x';
Blockly.Msg.LANG_CONTROLS_FOR_INPUT_FROM = 'from';
Blockly.Msg.LANG_CONTROLS_FOR_INPUT_TO = 'to';
Blockly.Msg.LANG_CONTROLS_FOR_INPUT_DO = 'do';
Blockly.Msg.LANG_CONTROLS_FOR_TOOLTIP = 'Count from a start number to an end number.\n' +
'For each count, set the current count number to\n' +
'variable "%1", and then do some statements.';
Blockly.Msg.LANG_CONTROLS_FORRANGE_HELPURL = '/reference/blocks/control.html#forrange';
Blockly.Msg.LANG_CONTROLS_FORRANGE_INPUT_ITEM = 'for each';
Blockly.Msg.LANG_CONTROLS_FORRANGE_INPUT_VAR = 'number';
Blockly.Msg.LANG_CONTROLS_FORRANGE_INPUT_START = 'from';
Blockly.Msg.LANG_CONTROLS_FORRANGE_INPUT_END = 'to';
Blockly.Msg.LANG_CONTROLS_FORRANGE_INPUT_STEP = 'by';
Blockly.Msg.LANG_CONTROLS_FORRANGE_INPUT_DO = 'do';
Blockly.Msg.LANG_CONTROLS_FORRANGE_INPUT_COLLAPSED_TEXT = 'for number in range';
Blockly.Msg.LANG_CONTROLS_FORRANGE_INPUT_COLLAPSED_PREFIX = 'for ';
Blockly.Msg.LANG_CONTROLS_FORRANGE_INPUT_COLLAPSED_SUFFIX = ' in range';
Blockly.Msg.LANG_CONTROLS_FORRANGE_TOOLTIP = 'Runs the blocks in the \'do\' section for each numeric '
+ 'value in the range from start to end, stepping the value each time. Use the given '
+ 'variable name to refer to the current value.';
Blockly.Msg.LANG_CONTROLS_FOREACH_HELPURL = '/reference/blocks/control.html#foreach';
Blockly.Msg.LANG_CONTROLS_FOREACH_INPUT_ITEM = 'for each';
Blockly.Msg.LANG_CONTROLS_FOREACH_INPUT_VAR = 'item';
Blockly.Msg.LANG_CONTROLS_FOREACH_INPUT_INLIST = 'in list';
Blockly.Msg.LANG_CONTROLS_FOREACH_INPUT_DO = 'do';
Blockly.Msg.LANG_CONTROLS_FOREACH_INPUT_COLLAPSED_TEXT = 'for item in list';
Blockly.Msg.LANG_CONTROLS_FOREACH_INPUT_COLLAPSED_PREFIX = 'for ';
Blockly.Msg.LANG_CONTROLS_FOREACH_INPUT_COLLAPSED_SUFFIX = ' in list';
Blockly.Msg.LANG_CONTROLS_FOREACH_TOOLTIP = 'Runs the blocks in the \'do\' section for each item in '
+ 'the list. Use the given variable name to refer to the current list item.';
Blockly.Msg.LANG_CONTROLS_GET_HELPURL = '/reference/blocks/control.html#get';
Blockly.Msg.LANG_CONTROLS_FLOW_STATEMENTS_HELPURL = 'http://en.wikipedia.org/wiki/Control_flow';
Blockly.Msg.LANG_CONTROLS_FLOW_STATEMENTS_INPUT_OFLOOP = 'of loop';
Blockly.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK = 'break out';
Blockly.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE = 'continue with next iteration';
Blockly.Msg.LANG_CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK = 'Break out of the containing loop.';
Blockly.Msg.LANG_CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE = 'Skip the rest of this loop, and\n' +
'continue with the next iteration.';
Blockly.Msg.LANG_CONTROLS_FLOW_STATEMENTS_WARNING = 'Warning:\n' +
'This block may only\n' +
'be used within a loop.';
Blockly.Msg.LANG_CONTROLS_WHILE_HELPURL = '/reference/blocks/control.html#while';;
Blockly.Msg.LANG_CONTROLS_WHILE_TITLE = 'while';
Blockly.Msg.LANG_CONTROLS_WHILE_INPUT_TEST = 'test';
Blockly.Msg.LANG_CONTROLS_WHILE_INPUT_DO = 'do';
Blockly.Msg.LANG_CONTROLS_WHILE_COLLAPSED_TEXT = 'while';
Blockly.Msg.LANG_CONTROLS_WHILE_TOOLTIP = 'Runs the blocks in the \'do\' section while the test is '
+ 'true.';
Blockly.Msg.LANG_CONTROLS_CHOOSE_HELPURL = '/reference/blocks/control.html#choose';
Blockly.Msg.LANG_CONTROLS_CHOOSE_TITLE = 'if'
Blockly.Msg.LANG_CONTROLS_CHOOSE_INPUT_TEST = '';
Blockly.Msg.LANG_CONTROLS_CHOOSE_INPUT_THEN_RETURN = 'then';
Blockly.Msg.LANG_CONTROLS_CHOOSE_INPUT_ELSE_RETURN = 'else';
Blockly.Msg.LANG_CONTROLS_CHOOSE_COLLAPSED_TEXT = 'if';
Blockly.Msg.LANG_CONTROLS_CHOOSE_TOOLTIP = 'If the condition being tested is true,'
+ 'return the result of evaluating the expression attached to the \'then-return\' slot;'
+ 'otherwise return the result of evaluating the expression attached to the \'else-return\' slot;'
+ 'at most one of the return slot expressions will be evaluated.';
Blockly.Msg.LANG_CONTROLS_DO_THEN_RETURN_HELPURL = '/reference/blocks/control.html#doreturn';
Blockly.Msg.LANG_CONTROLS_DO_THEN_RETURN_INPUT_DO = 'do';
Blockly.Msg.LANG_CONTROLS_DO_THEN_RETURN_INPUT_RETURN = 'result';
Blockly.Msg.LANG_CONTROLS_DO_THEN_RETURN_TOOLTIP = 'Runs the blocks in \'do\' and returns a statement. Useful if you need to run a procedure before returning a value to a variable.';
Blockly.Msg.LANG_CONTROLS_DO_THEN_RETURN_COLLAPSED_TEXT = 'do/result';
Blockly.Msg.LANG_CONTROLS_DO_THEN_RETURN_TITLE = 'do result';
Blockly.Msg.LANG_CONTROLS_EVAL_BUT_IGNORE_TITLE = 'evaluate but ignore result'
Blockly.Msg.LANG_CONTROLS_EVAL_BUT_IGNORE_HELPURL = '/reference/blocks/control.html#evaluate';
Blockly.Msg.LANG_CONTROLS_EVAL_BUT_COLLAPSED_TEXT = 'eval but ignore'
Blockly.Msg.LANG_CONTROLS_EVAL_BUT_IGNORE_TOOLTIP = 'Runs the connected block of code and ignores the return value (if any). Useful if need to call a procedure with a return value but don\'t need the value.';
/* [lyn, 10/14/13] Removed for now. May come back some day.
Blockly.Msg.LANG_CONTROLS_NOTHING_TITLE = 'nothing';
Blockly.Msg.LANG_CONTROLS_NOTHING_HELPURL = '/reference/blocks/control.html#nothing';
Blockly.Msg.LANG_CONTROLS_NOTHING_TOOLTIP = 'Returns nothing. Used to initialize variables or can be plugged into a return socket if no value needed to return. this is equivalent to null or None.';
*/
Blockly.Msg.LANG_CONTROLS_OPEN_ANOTHER_SCREEN_HELPURL = '/reference/blocks/control.html#openscreen';
Blockly.Msg.LANG_CONTROLS_OPEN_ANOTHER_SCREEN_TITLE = 'open another screen';
Blockly.Msg.LANG_CONTROLS_OPEN_ANOTHER_SCREEN_INPUT_SCREENNAME = 'screenName';
Blockly.Msg.LANG_CONTROLS_OPEN_ANOTHER_SCREEN_COLLAPSED_TEXT = 'open screen';
Blockly.Msg.LANG_CONTROLS_OPEN_ANOTHER_SCREEN_TOOLTIP = 'Opens a new screen in a multiple screen app.';
Blockly.Msg.LANG_CONTROLS_OPEN_ANOTHER_SCREEN_WITH_START_VALUE_HELPURL = '/reference/blocks/control.html#openscreenwithvalue';
Blockly.Msg.LANG_CONTROLS_OPEN_ANOTHER_SCREEN_WITH_START_VALUE_TITLE = 'open another screen with start value';
Blockly.Msg.LANG_CONTROLS_OPEN_ANOTHER_SCREEN_WITH_START_VALUE_INPUT_SCREENNAME = 'screenName';
Blockly.Msg.LANG_CONTROLS_OPEN_ANOTHER_SCREEN_WITH_START_VALUE_INPUT_STARTVALUE = 'startValue';
Blockly.Msg.LANG_CONTROLS_OPEN_ANOTHER_SCREEN_WITH_START_VALUE_COLLAPSED_TEXT = 'open screen with value'
Blockly.Msg.LANG_CONTROLS_OPEN_ANOTHER_SCREEN_WITH_START_VALUE_TOOLTIP = 'Opens a new screen in a multiple screen app and passes the '
+ 'start value to that screen.';
Blockly.Msg.LANG_CONTROLS_GET_START_VALUE_HELPURL = '/reference/blocks/control.html#getstartvalue';
Blockly.Msg.LANG_CONTROLS_GET_START_VALUE_TITLE = 'get start value';
Blockly.Msg.LANG_CONTROLS_GET_START_VALUE_INPUT_SCREENNAME = 'screenName';
Blockly.Msg.LANG_CONTROLS_GET_START_VALUE_INPUT_STARTVALUE = 'startValue';
Blockly.Msg.LANG_CONTROLS_GET_START_VALUE_COLLAPSED_TEXT = 'get start value';
Blockly.Msg.LANG_CONTROLS_GET_START_VALUE_TOOLTIP = 'Returns the value that was passed to this screen when it '
+ 'was opened, typically by another screen in a multiple-screen app. If no value was '
+ 'passed, returns the empty text.';
Blockly.Msg.LANG_CONTROLS_CLOSE_SCREEN_HELPURL = '/reference/blocks/control.html#closescreen';;
Blockly.Msg.LANG_CONTROLS_CLOSE_SCREEN_TITLE = 'close screen';
Blockly.Msg.LANG_CONTROLS_CLOSE_SCREEN_COLLAPSED_TEXT = 'close screen';
Blockly.Msg.LANG_CONTROLS_CLOSE_SCREEN_TOOLTIP = 'Close the current screen';
Blockly.Msg.LANG_CONTROLS_CLOSE_SCREEN_WITH_VALUE_HELPURL = '/reference/blocks/control.html#closescreenwithvalue';;
Blockly.Msg.LANG_CONTROLS_CLOSE_SCREEN_WITH_VALUE_TITLE = 'close screen with value';
Blockly.Msg.LANG_CONTROLS_CLOSE_SCREEN_WITH_VALUE_INPUT_RESULT = 'result';
Blockly.Msg.LANG_CONTROLS_CLOSE_SCREEN_WITH_VALUE_COLLAPSED_TEXT = 'close screen with value';
Blockly.Msg.LANG_CONTROLS_CLOSE_SCREEN_WITH_VALUE_TOOLTIP = 'Closes the current screen and returns a result to the '
+ 'screen that opened this one.';
Blockly.Msg.LANG_CONTROLS_CLOSE_APPLICATION_HELPURL = '/reference/blocks/control.html#closeapp';;
Blockly.Msg.LANG_CONTROLS_CLOSE_APPLICATION_TITLE = 'close application';
Blockly.Msg.LANG_CONTROLS_CLOSE_APPLICATION_COLLAPSED_TEXT = 'close application';
Blockly.Msg.LANG_CONTROLS_CLOSE_APPLICATION_TOOLTIP = 'Closes all screens in this app and stops the app.';
Blockly.Msg.LANG_CONTROLS_GET_PLAIN_START_TEXT_HELPURL = '/reference/blocks/control.html#getplainstarttext';
Blockly.Msg.LANG_CONTROLS_GET_PLAIN_START_TEXT_TITLE = 'get plain start text';
Blockly.Msg.LANG_CONTROLS_GET_PLAIN_START_TEXT_COLLAPSED_TEXT = 'get plain start text';
Blockly.Msg.LANG_CONTROLS_GET_PLAIN_START_TEXT_TOOLTIP = 'Returns the plain text that was passed to this screen when '
+ 'it was started by another app. If no value was passed, returns the empty text. For '
+ 'multiple screen apps, use get start value rather than get plain start text.';
Blockly.Msg.LANG_CONTROLS_CLOSE_SCREEN_WITH_PLAIN_TEXT_HELPURL = '/reference/blocks/control.html#closescreenwithplaintext';
Blockly.Msg.LANG_CONTROLS_CLOSE_SCREEN_WITH_PLAIN_TEXT_TITLE = 'close screen with plain text';
Blockly.Msg.LANG_CONTROLS_CLOSE_SCREEN_WITH_PLAIN_TEXT_INPUT_TEXT = 'text';
Blockly.Msg.LANG_CONTROLS_CLOSE_SCREEN_WITH_PLAIN_TEXT_COLLAPSED_TEXT = 'close screen with plain text';
Blockly.Msg.LANG_CONTROLS_CLOSE_SCREEN_WITH_PLAIN_TEXT_TOOLTIP = 'Closes the current screen and returns text to the app that '
+ 'opened this one. This command is for returning text to non-App Inventor activities, not to App Inventor screens. '
+ 'For App Inventor Screens, as in multiple screen apps, use Close Screen with Value, not Close Screen with Plain Text.';
Blockly.Msg.LANG_CONTROLS_BREAK_HELPURL = '/reference/blocks/control.html#break';
Blockly.Msg.LANG_CONTROLS_BREAK_TITLE = 'break';
Blockly.Msg.LANG_CONTROLS_BREAK_INPUT_TEXT = 'value';
Blockly.Msg.LANG_CONTROLS_BREAK_COLLAPSED_TEXT = 'break';
// Logic Blocks.
Blockly.Msg.LANG_CATEGORY_LOGIC = 'Logic';
Blockly.Msg.LANG_LOGIC_COMPARE_HELPURL = 'http://en.wikipedia.org/wiki/Inequality_(mathematics)';
Blockly.Msg.LANG_LOGIC_COMPARE_HELPURL_EQ = '/reference/blocks/logic.html#=';
Blockly.Msg.LANG_LOGIC_COMPARE_HELPURL_NEQ = '/reference/blocks/logic.html#not=';
Blockly.Msg.LANG_LOGIC_COMPARE_TOOLTIP_EQ = 'Tests whether two things are equal. \n' +
'The things being compared can be any things, not only numbers. \n' +
'Numbers are considered to be equal to their printed form as strings, \n' +
'for example, the number 0 is equal to the text \"0\". Also, two strings \n' +
'that represent numbers are equal if the numbers are equal, for example \n' +
'\"1\" is equal to \"01\".';
Blockly.Msg.LANG_LOGIC_COMPARE_TOOLTIP_NEQ = 'Return true if both inputs are not equal to each other.';
Blockly.Msg.LANG_LOGIC_COMPARE_TRANSLATED_NAME = 'logic equal';
Blockly.Msg.LANG_LOGIC_COMPARE_EQ = '=';
Blockly.Msg.LANG_LOGIC_COMPARE_NEQ = '\u2260';
Blockly.Msg.LANG_LOGIC_OPERATION_HELPURL_AND = '/reference/blocks/logic.html#and';
Blockly.Msg.LANG_LOGIC_OPERATION_HELPURL_OR = '/reference/blocks/logic.html#or';
Blockly.Msg.LANG_LOGIC_OPERATION_AND = 'and';
Blockly.Msg.LANG_LOGIC_OPERATION_OR = 'or';
Blockly.Msg.LANG_LOGIC_OPERATION_TOOLTIP_AND = 'Return true if all inputs are true.';
Blockly.Msg.LANG_LOGIC_OPERATION_TOOLTIP_OR = 'Return true if any input is true.';
Blockly.Msg.LANG_LOGIC_NEGATE_HELPURL = '/reference/blocks/logic.html#not';
Blockly.Msg.LANG_LOGIC_NEGATE_INPUT_NOT = 'not';
Blockly.Msg.LANG_LOGIC_NEGATE_TOOLTIP = 'Returns true if the input is false.\n' +
'Returns false if the input is true.';
Blockly.Msg.LANG_LOGIC_BOOLEAN_TRUE_HELPURL = '/reference/blocks/logic.html#true';
Blockly.Msg.LANG_LOGIC_BOOLEAN_FALSE_HELPURL = '/reference/blocks/logic.html#false';
Blockly.Msg.LANG_LOGIC_BOOLEAN_TRUE = 'true';
Blockly.Msg.LANG_LOGIC_BOOLEAN_FALSE = 'false';
Blockly.Msg.LANG_LOGIC_BOOLEAN_TOOLTIP_TRUE = 'Returns the boolean true.';
Blockly.Msg.LANG_LOGIC_BOOLEAN_TOOLTIP_FALSE = 'Returns the boolean false.';
// Math Blocks.
Blockly.Msg.LANG_CATEGORY_MATH = 'Math';
Blockly.Msg.LANG_MATH_NUMBER_HELPURL = '/reference/blocks/math.html#number';
Blockly.Msg.LANG_MATH_NUMBER_TOOLTIP = 'Report the number shown.';
Blockly.Msg.LANG_MATH_MUTATOR_ITEM_INPUT_NUMBER = 'number';
Blockly.Msg.LANG_MATH_COMPARE_HELPURL = '';
Blockly.Msg.LANG_MATH_COMPARE_HELPURL_EQ = '/reference/blocks/math.html#=';
Blockly.Msg.LANG_MATH_COMPARE_HELPURL_NEQ = '/reference/blocks/math.html#not=';
Blockly.Msg.LANG_MATH_COMPARE_HELPURL_LT = '/reference/blocks/math.html#lt';
Blockly.Msg.LANG_MATH_COMPARE_HELPURL_LTE = '/reference/blocks/math.html#lte';
Blockly.Msg.LANG_MATH_COMPARE_HELPURL_GT = '/reference/blocks/math.html#gt';
Blockly.Msg.LANG_MATH_COMPARE_HELPURL_GTE = '/reference/blocks/math.html#gte';
Blockly.Msg.LANG_MATH_COMPARE_TOOLTIP_EQ = 'Return true if both numbers are equal to each other.';
Blockly.Msg.LANG_MATH_COMPARE_TOOLTIP_NEQ = 'Return true if both numbers are not equal to each other.';
Blockly.Msg.LANG_MATH_COMPARE_TOOLTIP_LT = 'Return true if the first number is smaller\n' +
'than the second number.';
Blockly.Msg.LANG_MATH_COMPARE_TOOLTIP_LTE = 'Return true if the first number is smaller\n' +
'than or equal to the second number.';
Blockly.Msg.LANG_MATH_COMPARE_TOOLTIP_GT = 'Return true if the first number is greater\n' +
'than the second number.';
Blockly.Msg.LANG_MATH_COMPARE_TOOLTIP_GTE = 'Return true if the first number is greater\n' +
'than or equal to the second number.';
Blockly.Msg.LANG_MATH_COMPARE_EQ = '=';
Blockly.Msg.LANG_MATH_COMPARE_NEQ = '\u2260';
Blockly.Msg.LANG_MATH_COMPARE_LT = '<';
Blockly.Msg.LANG_MATH_COMPARE_LTE = '\u2264';
Blockly.Msg.LANG_MATH_COMPARE_GT = '>';
Blockly.Msg.LANG_MATH_COMPARE_GTE = '\u2265';
Blockly.Msg.LANG_MATH_ARITHMETIC_HELPURL_ADD = '/reference/blocks/math.html#add';
Blockly.Msg.LANG_MATH_ARITHMETIC_HELPURL_MINUS = '/reference/blocks/math.html#subtract';
Blockly.Msg.LANG_MATH_ARITHMETIC_HELPURL_MULTIPLY = '/reference/blocks/math.html#multiply';
Blockly.Msg.LANG_MATH_ARITHMETIC_HELPURL_DIVIDE = '/reference/blocks/math.html#divide';
Blockly.Msg.LANG_MATH_ARITHMETIC_HELPURL_POWER = '/reference/blocks/math.html#exponent';
Blockly.Msg.LANG_MATH_BITWISE_HELPURL_AND = '/reference/blocks/math.html#bitwise_and';
Blockly.Msg.LANG_MATH_BITWISE_HELPURL_IOR = '/reference/blocks/math.html#bitwise_ior';
Blockly.Msg.LANG_MATH_BITWISE_HELPURL_XOR = '/reference/blocks/math.html#bitwise_xor';
Blockly.Msg.LANG_MATH_ARITHMETIC_TOOLTIP_ADD = 'Return the sum of the two numbers.';
Blockly.Msg.LANG_MATH_ARITHMETIC_TOOLTIP_MINUS = 'Return the difference of the two numbers.';
Blockly.Msg.LANG_MATH_ARITHMETIC_TOOLTIP_MULTIPLY = 'Return the product of the two numbers.';
Blockly.Msg.LANG_MATH_ARITHMETIC_TOOLTIP_DIVIDE = 'Return the quotient of the two numbers.';
Blockly.Msg.LANG_MATH_ARITHMETIC_TOOLTIP_POWER = 'Return the first number raised to\n' +
'the power of the second number.';
Blockly.Msg.LANG_MATH_BITWISE_TOOLTIP_AND = 'Return the bitwise AND of the two numbers.';
Blockly.Msg.LANG_MATH_BITWISE_TOOLTIP_IOR = 'Return the bitwise inclusive OR of the two numbers.';
Blockly.Msg.LANG_MATH_BITWISE_TOOLTIP_XOR = 'Return the bitwise exclusive OR of the two numbers.';
Blockly.Msg.LANG_MATH_ARITHMETIC_ADD = '+';
Blockly.Msg.LANG_MATH_ARITHMETIC_MINUS = '-';
Blockly.Msg.LANG_MATH_ARITHMETIC_MULTIPLY = '*';
Blockly.Msg.LANG_MATH_ARITHMETIC_DIVIDE = '/';
Blockly.Msg.LANG_MATH_ARITHMETIC_POWER = '^';
Blockly.Msg.LANG_MATH_BITWISE_AND = 'bitwise and';
Blockly.Msg.LANG_MATH_BITWISE_IOR = 'bitwise or';
Blockly.Msg.LANG_MATH_BITWISE_XOR = 'bitwise xor';
/*Blockly.Msg.LANG_MATH_CHANGE_TITLE_CHANGE = 'change';
Blockly.Msg.LANG_MATH_CHANGE_TITLE_ITEM = 'item';
Blockly.Msg.LANG_MATH_CHANGE_INPUT_BY = 'by';
Blockly.Msg.LANG_MATH_CHANGE_TOOLTIP = 'Add a number to variable "%1".';*/
Blockly.Msg.LANG_MATH_SINGLE_OP_ROOT = 'square root';
Blockly.Msg.LANG_MATH_SINGLE_OP_ABSOLUTE = 'absolute';
Blockly.Msg.LANG_MATH_SINGLE_OP_NEG = 'neg';
Blockly.Msg.LANG_MATH_SINGLE_OP_LN = 'log';
Blockly.Msg.LANG_MATH_SINGLE_OP_EXP = 'e^';
Blockly.Msg.LANG_MATH_SINGLE_TOOLTIP_ROOT = 'Return the square root of a number.';
Blockly.Msg.LANG_MATH_SINGLE_HELPURL_ROOT = '/reference/blocks/math.html#sqrt';
Blockly.Msg.LANG_MATH_SINGLE_TOOLTIP_ABS = 'Return the absolute value of a number.';
Blockly.Msg.LANG_MATH_SINGLE_HELPURL_ABS = '/reference/blocks/math.html#abs';
Blockly.Msg.LANG_MATH_SINGLE_TOOLTIP_NEG = 'Return the negation of a number.';
Blockly.Msg.LANG_MATH_SINGLE_HELPURL_NEG = '/reference/blocks/math.html#neg';
Blockly.Msg.LANG_MATH_SINGLE_TOOLTIP_LN = 'Return the natural logarithm of a number, i.e. the logarithm to the base e (2.71828...)';
Blockly.Msg.LANG_MATH_SINGLE_HELPURL_LN ='/reference/blocks/math.html#log';
Blockly.Msg.LANG_MATH_SINGLE_TOOLTIP_EXP = 'Return e (2.71828...) to the power of a number.';
Blockly.Msg.LANG_MATH_SINGLE_HELPURL_EXP ='/reference/blocks/math.html#e';
/*Blockly.Msg.LANG_MATH_SINGLE_TOOLTIP_POW10 = 'Return 10 to the power of a number.';*/
Blockly.Msg.LANG_MATH_ROUND_TOOLTIP_ROUND = 'Round a number up or down.';
Blockly.Msg.LANG_MATH_ROUND_HELPURL_ROUND = '/reference/blocks/math.html#round';
Blockly.Msg.LANG_MATH_ROUND_TOOLTIP_CEILING = 'Rounds the input to the smallest\n' +
'number not less then the input';
Blockly.Msg.LANG_MATH_ROUND_HELPURL_CEILING = '/reference/blocks/math.html#ceiling';
Blockly.Msg.LANG_MATH_ROUND_TOOLTIP_FLOOR = 'Rounds the input to the largest\n' +
'number not greater then the input';
Blockly.Msg.LANG_MATH_ROUND_HELPURL_FLOOR = '/reference/blocks/math.html#floor';
Blockly.Msg.LANG_MATH_ROUND_OPERATOR_ROUND = 'round';
Blockly.Msg.LANG_MATH_ROUND_OPERATOR_CEILING = 'ceiling';
Blockly.Msg.LANG_MATH_ROUND_OPERATOR_FLOOR = 'floor';
Blockly.Msg.LANG_MATH_TRIG_SIN = 'sin';
Blockly.Msg.LANG_MATH_TRIG_COS = 'cos';
Blockly.Msg.LANG_MATH_TRIG_TAN = 'tan';
Blockly.Msg.LANG_MATH_TRIG_ASIN = 'asin';
Blockly.Msg.LANG_MATH_TRIG_ACOS = 'acos';
Blockly.Msg.LANG_MATH_TRIG_ATAN = 'atan';
Blockly.Msg.LANG_MATH_TRIG_ATAN2 = 'atan2';
Blockly.Msg.LANG_MATH_TRIG_ATAN2_X = 'x';
Blockly.Msg.LANG_MATH_TRIG_ATAN2_Y = 'y';
Blockly.Msg.LANG_MATH_TRIG_TOOLTIP_SIN = 'Provides the sine of the given angle in degrees.';
Blockly.Msg.LANG_MATH_TRIG_HELPURL_SIN = '/reference/blocks/math.html#sin';
Blockly.Msg.LANG_MATH_TRIG_TOOLTIP_COS = 'Provides the cosine of the given angle in degrees.';
Blockly.Msg.LANG_MATH_TRIG_HELPURL_COS = '/reference/blocks/math.html#cos';
Blockly.Msg.LANG_MATH_TRIG_TOOLTIP_TAN = 'Provides the tangent of the given angle in degrees.';
Blockly.Msg.LANG_MATH_TRIG_HELPURL_TAN = '/reference/blocks/math.html#tan';
Blockly.Msg.LANG_MATH_TRIG_TOOLTIP_ASIN = 'Provides the angle in the range (-90,+90]\n' +
'degrees with the given sine value.';
Blockly.Msg.LANG_MATH_TRIG_HELPURL_ASIN = '/reference/blocks/math.html#asin';
Blockly.Msg.LANG_MATH_TRIG_TOOLTIP_ACOS = 'Provides the angle in the range [0, 180)\n' +
'degrees with the given cosine value.';
Blockly.Msg.LANG_MATH_TRIG_HELPURL_ACOS = '/reference/blocks/math.html#acos';
Blockly.Msg.LANG_MATH_TRIG_TOOLTIP_ATAN = 'Provides the angle in the range (-90, +90)\n' +
'degrees with the given tangent value.';
ATAN : Blockly.Msg.LANG_MATH_TRIG_HELPURL_ATAN = '/reference/blocks/math.html#atan';
Blockly.Msg.LANG_MATH_TRIG_TOOLTIP_ATAN2 = 'Provides the angle in the range (-180, +180]\n' +
'degrees with the given rectangular coordinates.';
Blockly.Msg.LANG_MATH_TRIG_HELPURL_ATAN2 = '/reference/blocks/math.html#atan2';
Blockly.Msg.LANG_MATH_ONLIST_OPERATOR_MIN = 'min';
Blockly.Msg.LANG_MATH_ONLIST_OPERATOR_MAX = 'max';
Blockly.Msg.LANG_MATH_ONLIST_TOOLTIP_MIN = 'Return the smallest of its arguments..';
Blockly.Msg.LANG_MATH_ONLIST_TOOLTIP_MAX = 'Return the largest of its arguments..';
Blockly.Msg.LANG_MATH_ONLIST_HELPURL_MIN = 'http://appinventor.mit.edu/explore/ai2/support/blocks/math#min';
Blockly.Msg.LANG_MATH_ONLIST_HELPURL_MAX = 'http://appinventor.mit.edu/explore/ai2/support/blocks/math#max';
Blockly.Msg.LANG_MATH_DIVIDE = '\u00F7';
Blockly.Msg.LANG_MATH_DIVIDE_OPERATOR_MODULO = 'modulo of';
Blockly.Msg.LANG_MATH_DIVIDE_OPERATOR_REMAINDER = 'remainder of';
Blockly.Msg.LANG_MATH_DIVIDE_OPERATOR_QUOTIENT = 'quotient of';
Blockly.Msg.LANG_MATH_DIVIDE_TOOLTIP_MODULO = 'Return the modulo.';
Blockly.Msg.LANG_MATH_DIVIDE_HELPURL_MODULO = '/reference/blocks/math.html#modulo';
Blockly.Msg.LANG_MATH_DIVIDE_TOOLTIP_REMAINDER = 'Return the remainder.';
Blockly.Msg.LANG_MATH_DIVIDE_HELPURL_REMAINDER = '/reference/blocks/math.html#remainder';
Blockly.Msg.LANG_MATH_DIVIDE_TOOLTIP_QUOTIENT = 'Return the quotient.';
Blockly.Msg.LANG_MATH_DIVIDE_HELPURL_QUOTIENT = '/reference/blocks/math.html#quotient';
Blockly.Msg.LANG_MATH_RANDOM_INT_HELPURL = '/reference/blocks/math.html#randomint';
Blockly.Msg.LANG_MATH_RANDOM_INT_TITLE_RANDOM = 'random integer';
Blockly.Msg.LANG_MATH_RANDOM_INT_INPUT_FROM = 'from';
Blockly.Msg.LANG_MATH_RANDOM_INT_INPUT_TO = 'to';
Blockly.Msg.LANG_MATH_RANDOM_INT_INPUT = 'random integer from %1 to %2';
Blockly.Msg.LANG_MATH_RANDOM_INT_TOOLTIP = 'Returns a random integer between the upper bound\n' +
'and the lower bound. The bounds will be clipped to be smaller\n' +
'than 2**30.';
Blockly.Msg.LANG_MATH_RANDOM_FLOAT_HELPURL = '/reference/blocks/math.html#randomfrac';
Blockly.Msg.LANG_MATH_RANDOM_FLOAT_TITLE_RANDOM = 'random fraction';
Blockly.Msg.LANG_MATH_RANDOM_FLOAT_TOOLTIP = 'Return a random number between 0 and 1.';
Blockly.Msg.LANG_MATH_RANDOM_SEED_HELPURL = '/reference/blocks/math.html#randomseed';
Blockly.Msg.LANG_MATH_RANDOM_SEED_TITLE_RANDOM = 'random set seed';
Blockly.Msg.LANG_MATH_RANDOM_SEED_INPUT_TO = 'to';
Blockly.Msg.LANG_MATH_RANDOM_SEED_TOOLTIP = 'specifies a numeric seed\n' +
'for the random number generator';
Blockly.Msg.LANG_MATH_CONVERT_ANGLES_TITLE_CONVERT = 'convert';
Blockly.Msg.LANG_MATH_CONVERT_ANGLES_OP_RAD_TO_DEG = 'radians to degrees';
Blockly.Msg.LANG_MATH_CONVERT_ANGLES_OP_DEG_TO_RAD = 'degrees to radians';
Blockly.Msg.LANG_MATH_CONVERT_ANGLES_TOOLTIP_RAD_TO_DEG = 'Returns the degree value in the range\n' +
'[0, 360) corresponding to its radians argument.';
Blockly.Msg.LANG_MATH_CONVERT_ANGLES_HELPURL_RAD_TO_DEG = '/reference/blocks/math.html#convertrad';
Blockly.Msg.LANG_MATH_CONVERT_ANGLES_TOOLTIP_DEG_TO_RAD = 'Returns the radian value in the range\n' +
'[-\u03C0, +\u03C0) corresponding to its degrees argument.';
Blockly.Msg.LANG_MATH_CONVERT_ANGLES_HELPURL_DEG_TO_RAD = '/reference/blocks/math.html#convertdeg';
Blockly.Msg.LANG_MATH_FORMAT_AS_DECIMAL_HELPURL = '/reference/blocks/math.html#format';
Blockly.Msg.LANG_MATH_FORMAT_AS_DECIMAL_TITLE = 'format as decimal';
Blockly.Msg.LANG_MATH_FORMAT_AS_DECIMAL_INPUT_NUM = 'number';
Blockly.Msg.LANG_MATH_FORMAT_AS_DECIMAL_INPUT_PLACES = 'places';
Blockly.Msg.LANG_MATH_FORMAT_AS_DECIMAL_INPUT = 'format as decimal number %1 places %2';
Blockly.Msg.LANG_MATH_FORMAT_AS_DECIMAL_TOOLTIP = 'Returns the number formatted as a decimal\n' +
'with a specified number of places.';
Blockly.Msg.LANG_MATH_IS_A_NUMBER_HELPURL = '/reference/blocks/math.html#isnumber';
Blockly.Msg.LANG_MATH_IS_A_NUMBER_INPUT_NUM = 'is number?';
Blockly.Msg.LANG_MATH_IS_A_NUMBER_TOOLTIP = 'Tests if something is a number.';
Blockly.Msg.LANG_MATH_IS_A_DECIMAL_HELPURL = '/reference/blocks/math.html#isnumber';
Blockly.Msg.LANG_MATH_IS_A_DECIMAL_INPUT_NUM = 'is Base 10?';
Blockly.Msg.LANG_MATH_IS_A_DECIMAL_TOOLTIP = 'Tests if something is a string that represents a positive base 10 integer.';
Blockly.Msg.LANG_MATH_IS_A_HEXADECIMAL_HELPURL = '/reference/blocks/math.html#isnumber';
Blockly.Msg.LANG_MATH_IS_A_HEXADECIMAL_INPUT_NUM = 'is hexadecimal?';
Blockly.Msg.LANG_MATH_IS_A_HEXADECIMAL_TOOLTIP = 'Tests if something is a string that represents a hexadecimal number.';
Blockly.Msg.LANG_MATH_IS_A_BINARY_HELPURL = '/reference/blocks/math.html#isnumber';
Blockly.Msg.LANG_MATH_IS_A_BINARY_INPUT_NUM = 'is binary?';
Blockly.Msg.LANG_MATH_IS_A_BINARY_TOOLTIP = 'Tests if something is a string that represents a binary number.';
Blockly.Msg.LANG_MATH_CONVERT_NUMBER_TITLE_CONVERT = 'convert number';
Blockly.Msg.LANG_MATH_CONVERT_NUMBER_OP_DEC_TO_HEX = 'base 10 to hex';
Blockly.Msg.LANG_MATH_CONVERT_NUMBER_HELPURL_DEC_TO_HEX = 'http://appinventor.mit.edu/explore/ai2/support/blocks/math#convertnumber';
Blockly.Msg.LANG_MATH_CONVERT_NUMBER_TOOLTIP_DEC_TO_HEX = 'Takes a positive integer in base 10 and returns the string that represents the number in hexadecimal';
Blockly.Msg.LANG_MATH_CONVERT_NUMBER_OP_HEX_TO_DEC = 'hex to base 10';
Blockly.Msg.LANG_MATH_CONVERT_NUMBER_HELPURL_HEX_TO_DEC = 'http://appinventor.mit.edu/explore/ai2/support/blocks/math#convertnumber';
Blockly.Msg.LANG_MATH_CONVERT_NUMBER_TOOLTIP_HEX_TO_DEC = 'Takes a string that represents a number in hexadecimal and returns the string that represents the number in base 10';
Blockly.Msg.LANG_MATH_CONVERT_NUMBER_OP_DEC_TO_BIN = 'base 10 to binary';
Blockly.Msg.LANG_MATH_CONVERT_NUMBER_HELPURL_DEC_TO_BIN = 'http://appinventor.mit.edu/explore/ai2/support/blocks/math#convertnumber';
Blockly.Msg.LANG_MATH_CONVERT_NUMBER_TOOLTIP_DEC_TO_BIN = 'Takes a positive integer in base 10 and returns the string that represents the number in binary';
Blockly.Msg.LANG_MATH_CONVERT_NUMBER_OP_BIN_TO_DEC = 'binary to base 10';
Blockly.Msg.LANG_MATH_CONVERT_NUMBER_HELPURL_BIN_TO_DEC = 'http://appinventor.mit.edu/explore/ai2/support/blocks/math#convertnumber';
Blockly.Msg.LANG_MATH_CONVERT_NUMBER_TOOLTIP_BIN_TO_DEC = 'Takes a string that represents a number in binary and returns the string that represents the number in base 10';
// Text Blocks.
Blockly.Msg.LANG_CATEGORY_TEXT = 'Text';
Blockly.Msg.LANG_TEXT_TEXT_HELPURL = '/reference/blocks/text.html#string';
Blockly.Msg.LANG_TEXT_TEXT_TOOLTIP = 'A text string.';
Blockly.Msg.LANG_TEXT_TEXT_LEFT_QUOTE = '\u201C';
Blockly.Msg.LANG_TEXT_TEXT_RIGHT_QUOTE = '\u201D';
Blockly.Msg.LANG_TEXT_JOIN_HELPURL = '/reference/blocks/text.html#join';
Blockly.Msg.LANG_TEXT_JOIN_TITLE_CREATEWITH = 'create text with';
Blockly.Msg.LANG_TEXT_JOIN_TOOLTIP = 'Appends all the inputs to form a single text string.\n'
+ 'If there are no inputs, makes an empty text.';
Blockly.Msg.LANG_TEXT_JOIN_TITLE_JOIN = 'join';
Blockly.Msg.LANG_TEXT_JOIN_ITEM_TITLE_ITEM = 'string';
Blockly.Msg.LANG_TEXT_JOIN_ITEM_TOOLTIP = '';
Blockly.Msg.LANG_TEXT_APPEND_HELPURL = 'http://www.liv.ac.uk/HPC/HTMLF90Course/HTMLF90CourseNotesnode91.html';
Blockly.Msg.LANG_TEXT_APPEND_TO = 'to';
Blockly.Msg.LANG_TEXT_APPEND_APPENDTEXT = 'append text';
Blockly.Msg.LANG_TEXT_APPEND_VARIABLE = 'item';
Blockly.Msg.LANG_TEXT_APPEND_TOOLTIP = 'Append some text to variable "%1".';
Blockly.Msg.LANG_TEXT_LENGTH_HELPURL = '/reference/blocks/text.html#length';
Blockly.Msg.LANG_TEXT_LENGTH_INPUT_LENGTH = 'length';
Blockly.Msg.LANG_TEXT_LENGTH_TOOLTIP = 'Returns number of letters (including spaces)\n' +
'in the provided text.';
Blockly.Msg.LANG_TEXT_ISEMPTY_HELPURL = '/reference/blocks/text.html#isempty';
Blockly.Msg.LANG_TEXT_ISEMPTY_INPUT_ISEMPTY = 'is empty';
Blockly.Msg.LANG_TEXT_ISEMPTY_TOOLTIP = 'Returns true if the length of the\n' + 'text is 0, false otherwise.';
Blockly.Msg.LANG_TEXT_COMPARE_LT = ' <';
Blockly.Msg.LANG_TEXT_COMPARE_EQUAL = ' =';
Blockly.Msg.LANG_TEXT_COMPARE_GT = ' >';
Blockly.Msg.LANG_TEXT_COMPARE_HELPURL = '/reference/blocks/text.html#compare';
Blockly.Msg.LANG_TEXT_COMPARE_INPUT_COMPARE = 'compare texts';
Blockly.Msg.LANG_TEXT_COMPARE_TOOLTIP_LT = 'Tests whether text1 is lexicographically less than text2.\n'
+ 'if one text is the prefix of the other, the shorter text is\n'
+ 'considered smaller. Uppercase characters precede lowercase characters.';
Blockly.Msg.LANG_TEXT_COMPARE_TOOLTIP_EQUAL = 'Tests whether text strings are identical, ie., have the same\n'
+ 'characters in the same order. This is different from ordinary =\n'
+ 'in the case where the text strings are numbers: 123 and 0123 are =\n'
+ 'but not text =.';
Blockly.Msg.LANG_TEXT_COMPARE_TOOLTIP_GT = 'Reports whether text1 is lexicographically greater than text2.\n'
+ 'if one text is the prefix of the other, the shorter text is considered smaller.\n'
+ 'Uppercase characters precede lowercase characters.';
Blockly.Msg.LANG_TEXT_TEXT_OBFUSCATE_TOOLTIP = "Produces text, like a text block. The difference is that the \n"
+ "text is not easily discoverable by examining the app's APK. Use this when creating apps \n"
+ "to distribute that include confidential information, for example, API keys. \n"
+ "Warning: This provides only very low security against expert adversaries.";
Blockly.Msg.LANG_TEXT_TEXT_OBFUSCATE = 'Obfuscated Text';
Blockly.Msg.LANG_TEXT_TEXT_OBFUSCATE_HELPURL = '/reference/blocks/text.html#obfuscatetext';
/*Blockly.Msg.LANG_TEXT_ENDSTRING_HELPURL = 'http://publib.boulder.ibm.com/infocenter/lnxpcomp/v8v101/index.jsp?topic=%2Fcom.ibm.xlcpp8l.doc%2Flanguage%2Fref%2Farsubex.htm';
Blockly.Msg.LANG_TEXT_ENDSTRING_INPUT = 'letters in text';
Blockly.Msg.LANG_TEXT_ENDSTRING_TOOLTIP = 'Returns specified number of letters at the beginning or end of the text.';
Blockly.Msg.LANG_TEXT_ENDSTRING_OPERATOR_FIRST = 'first';
Blockly.Msg.LANG_TEXT_ENDSTRING_OPERATOR_LAST = 'last';*/
/*Blockly.Msg.LANG_TEXT_INDEXOF_HELPURL = 'http://publib.boulder.ibm.com/infocenter/lnxpcomp/v8v101/index.jsp?topic=%2Fcom.ibm.xlcpp8l.doc%2Flanguage%2Fref%2Farsubex.htm';
Blockly.Msg.LANG_TEXT_INDEXOF_TITLE_FIND = 'find';
Blockly.Msg.LANG_TEXT_INDEXOF_INPUT_OCCURRENCE = 'occurrence of text';
Blockly.Msg.LANG_TEXT_INDEXOF_INPUT_INTEXT = 'in text';
Blockly.Msg.LANG_TEXT_INDEXOF_TOOLTIP = 'Returns the index of the first/last occurrence\n' +
'of first text in the second text.\n' +
'Returns 0 if text is not found.';
Blockly.Msg.LANG_TEXT_INDEXOF_OPERATOR_FIRST = 'first';
Blockly.Msg.LANG_TEXT_INDEXOF_OPERATOR_LAST = 'last';*/
/*Blockly.Msg.LANG_TEXT_CHARAT_HELPURL = 'http://publib.boulder.ibm.com/infocenter/lnxpcomp/v8v101/index.jsp?topic=%2Fcom.ibm.xlcpp8l.doc%2Flanguage%2Fref%2Farsubex.htm';
Blockly.Msg.LANG_TEXT_CHARAT_INPUT_AT = 'letter at';
Blockly.Msg.LANG_TEXT_CHARAT_INPUT_INTEXT = 'in text';
Blockly.Msg.LANG_TEXT_CHARAT_TOOLTIP = 'Returns the letter at the specified position.';*/
Blockly.Msg.LANG_TEXT_CHANGECASE_OPERATOR_UPPERCASE = 'upcase';
Blockly.Msg.LANG_TEXT_CHANGECASE_OPERATOR_DOWNCASE = 'downcase';
Blockly.Msg.LANG_TEXT_CHANGECASE_TOOLTIP_UPPERCASE = 'Returns a copy of its text string argument converted to uppercase.';
Blockly.Msg.LANG_TEXT_CHANGECASE_HELPURL_UPPERCASE = '/reference/blocks/text.html#upcase';
Blockly.Msg.LANG_TEXT_CHANGECASE_TOOLTIP_DOWNCASE = 'Returns a copy of its text string argument converted to lowercase.';
Blockly.Msg.LANG_TEXT_CHANGECASE_HELPURL_DOWNCASE = '/reference/blocks/text.html#downcase';
Blockly.Msg.LANG_TEXT_TRIM_HELPURL = '/reference/blocks/text.html#trim';
Blockly.Msg.LANG_TEXT_TRIM_TITLE_TRIM = 'trim';
Blockly.Msg.LANG_TEXT_TRIM_TOOLTIP = 'Returns a copy of its text string arguments with any\n'
+ 'leading or trailing spaces removed.';
Blockly.Msg.LANG_TEXT_STARTS_AT_HELPURL = '/reference/blocks/text.html#startsat';
Blockly.Msg.LANG_TEXT_STARTS_AT_INPUT_STARTS_AT = 'starts at';
Blockly.Msg.LANG_TEXT_STARTS_AT_INPUT_TEXT = 'text';
Blockly.Msg.LANG_TEXT_STARTS_AT_INPUT_PIECE = 'piece';
Blockly.Msg.LANG_TEXT_STARTS_AT_INPUT = 'starts at text %1 piece %2';
Blockly.Msg.LANG_TEXT_STARTS_AT_TOOLTIP = 'Returns the starting index of the piece in the text.\n'
+ 'where index 1 denotes the beginning of the text. Returns 0 if the\n'
+ 'piece is not in the text.';
Blockly.Msg.LANG_TEXT_CONTAINS_HELPURL = '/reference/blocks/text.html#contains';
Blockly.Msg.LANG_TEXT_CONTAINS_INPUT_CONTAINS = 'contains';
Blockly.Msg.LANG_TEXT_CONTAINS_INPUT_TEXT = 'text';
Blockly.Msg.LANG_TEXT_CONTAINS_INPUT_PIECE = 'piece';
Blockly.Msg.LANG_TEXT_CONTAINS_INPUT = 'contains text %1 piece %2';
Blockly.Msg.LANG_TEXT_CONTAINS_TOOLTIP = 'Tests whether the piece is contained in the text.';
Blockly.Msg.LANG_TEXT_SPLIT_HELPURL = '';
Blockly.Msg.LANG_TEXT_SPLIT_INPUT_TEXT = 'text';
Blockly.Msg.LANG_TEXT_SPLIT_INPUT_AT = 'at';
Blockly.Msg.LANG_TEXT_SPLIT_INPUT_AT_LIST = 'at (list)';
Blockly.Msg.LANG_TEXT_SPLIT_OPERATOR_SPLIT_AT_FIRST = 'split at first';
Blockly.Msg.LANG_TEXT_SPLIT_OPERATOR_SPLIT_AT_FIRST_OF_ANY = 'split at first of any';
Blockly.Msg.LANG_TEXT_SPLIT_OPERATOR_SPLIT = 'split';
Blockly.Msg.LANG_TEXT_SPLIT_OPERATOR_SPLIT_AT_ANY = 'split at any';
Blockly.Msg.LANG_TEXT_SPLIT_TOOLTIP_SPLIT_AT_FIRST = 'Divides the given text into two pieces using the location of the first occurrence of \n'
+ 'the text \'at\' as the dividing point, and returns a two-item list consisting of the piece \n'
+ 'before the dividing point and the piece after the dividing point. \n'
+ 'Splitting "apple,banana,cherry,dogfood" with a comma as the splitting point \n'
+ 'returns a list of two items: the first is the text "apple" and the second is the text \n'
+ '"banana,cherry,dogfood". \n'
+ 'Notice that the comma after "apple" does not appear in the result, \n'
+ 'because that is the dividing point.';
Blockly.Msg.LANG_TEXT_SPLIT_HELPURL_SPLIT_AT_FIRST = '/reference/blocks/text.html#splitat';
Blockly.Msg.LANG_TEXT_SPLIT_TOOLTIP_SPLIT_AT_FIRST_OF_ANY = 'Divides the given text into a two-item list, using the first location of any item \n'
+ 'in the list \'at\' as the dividing point. \n\n'
+ 'Splitting "I love apples bananas apples grapes" by the list "(ba,ap)" returns \n'
+ 'a list of two items, the first being "I love" and the second being \n'
+ '"ples bananas apples grapes."';
Blockly.Msg.LANG_TEXT_SPLIT_HELPURL_SPLIT_AT_FIRST_OF_ANY = '/reference/blocks/text.html#splitatfirstofany';
Blockly.Msg.LANG_TEXT_SPLIT_TOOLTIP_SPLIT = 'Divides text into pieces using the text \'at\' as the dividing points and produces a list of the results. \n'
+ 'Splitting "one,two,three,four" at "," (comma) returns the list "(one two three four)". \n'
+ 'Splitting "one-potato,two-potato,three-potato,four" at "-potato", returns the list "(one two three four)".';
Blockly.Msg.LANG_TEXT_SPLIT_HELPURL_SPLIT = '/reference/blocks/text.html#split';
Blockly.Msg.LANG_TEXT_SPLIT_TOOLTIP_SPLIT_AT_ANY = 'Divides the given text into a list, using any of the items in the list \'at\' as the \n'
+ 'dividing point, and returns a list of the results. \n'
+ 'Splitting "appleberry,banana,cherry,dogfood" with \'at\' as the two-element list whose \n'
+ 'first item is a comma and whose second item is "rry" returns a list of four items: \n'
+ '"(applebe banana che dogfood)".';
Blockly.Msg.LANG_TEXT_SPLIT_HELPURL_SPLIT_AT_ANY = '/reference/blocks/text.html#splitatany';
/*.LANG_TEXT_PRINT_HELPURL = 'http://www.liv.ac.uk/HPC/HTMLF90Course/HTMLF90CourseNotesnode91.html';
Blockly.Msg.LANG_TEXT_PRINT_TITLE_PRINT = 'print';
Blockly.Msg.LANG_TEXT_PRINT_TOOLTIP = 'Print the specified text, number or other value.';*/
/*Blockly.Msg.LANG_TEXT_PROMPT_HELPURL = 'http://www.liv.ac.uk/HPC/HTMLF90Course/HTMLF90CourseNotesnode92.html';
Blockly.Msg.LANG_TEXT_PROMPT_TITLE_PROMPT_FOR = 'prompt for';
Blockly.Msg.LANG_TEXT_PROMPT_TITILE_WITH_MESSAGE = 'with message';
Blockly.Msg.LANG_TEXT_PROMPT_TOOLTIP = 'Prompt for user input with the specified text.';
Blockly.Msg.LANG_TEXT_PROMPT_TYPE_TEXT = 'text';
Blockly.Msg.LANG_TEXT_PROMPT_TYPE_NUMBER = 'number';*/
Blockly.Msg.LANG_TEXT_SPLIT_AT_SPACES_HELPURL = '/reference/blocks/text.html#splitspaces';
Blockly.Msg.LANG_TEXT_SPLIT_AT_SPACES_TITLE = 'split at spaces';
Blockly.Msg.LANG_TEXT_SPLIT_AT_TOOLTIP = 'Split the text into pieces separated by spaces.';
Blockly.Msg.LANG_TEXT_SEGMENT_HELPURL = '/reference/blocks/text.html#segment';
Blockly.Msg.LANG_TEXT_SEGMENT_TITLE_SEGMENT = 'segment';
Blockly.Msg.LANG_TEXT_SEGMENT_INPUT_START = 'start';
Blockly.Msg.LANG_TEXT_SEGMENT_INPUT_LENGTH = 'length';
Blockly.Msg.LANG_TEXT_SEGMENT_INPUT_TEXT = 'text';
Blockly.Msg.LANG_TEXT_SEGMENT_INPUT = 'segment text %1 start %2 length %3';
Blockly.Msg.LANG_TEXT_SEGMENT_AT_TOOLTIP = 'Extracts the segment of the given length from the given text\n'
+ 'starting from the given text starting from the given position. Position\n'
+ '1 denotes the beginning of the text.';
Blockly.Msg.LANG_TEXT_REPLACE_ALL_HELPURL = '/reference/blocks/text.html#replaceall';
Blockly.Msg.LANG_TEXT_REPLACE_ALL_INPUT_SEGMENT = 'segment';
Blockly.Msg.LANG_TEXT_REPLACE_ALL_INPUT_TEXT = 'text';
Blockly.Msg.LANG_TEXT_REPLACE_ALL_TITLE_REPLACE_ALL = 'replace all';
Blockly.Msg.LANG_TEXT_REPLACE_ALL_INPUT_REPLACEMENT = 'replacement';
Blockly.Msg.LANG_TEXT_REPLACE_ALL_INPUT = 'replace all text %1 segment %2 replacement %3';
Blockly.Msg.LANG_TEXT_REPLACE_ALL_TOOLTIP = 'Returns a new text obtained by replacing all occurrences\n'
+ 'of the segment with the replacement.';
Blockly.Msg.LANG_TEXT_TEXT_IS_STRING_HELPURL = '/reference/blocks/text.html#isstring';
Blockly.Msg.LANG_TEXT_TEXT_IS_STRING_TITLE = 'is a string?';
Blockly.Msg.LANG_TEXT_TEXT_IS_STRING_INPUT_THING = 'thing';
Blockly.Msg.LANG_TEXT_TEXT_IS_STRING_TOOLTIP = 'Returns true if <code>thing</code> is a string.';
// Lists Blocks.
Blockly.Msg.LANG_CATEGORY_LISTS = 'Lists';
//Blockly.Msg.LANG_LISTS_CREATE_EMPTY_HELPURL = 'http://en.wikipedia.org/wiki/Linked_list.html#Empty_lists';
Blockly.Msg.LANG_LISTS_CREATE_EMPTY_TITLE = 'create empty list';
//Blockly.Msg.LANG_LISTS_CREATE_EMPTY_TOOLTIP = 'Returns a list, of length 0, containing no data records';
Blockly.Msg.LANG_LISTS_CREATE_WITH_EMPTY_HELPURL = '/reference/blocks/lists.html#makealist';
Blockly.Msg.LANG_LISTS_CREATE_WITH_TITLE_MAKE_LIST = 'make a list';
Blockly.Msg.LANG_LISTS_CREATE_WITH_TOOLTIP = 'Create a list with any number of items.';
Blockly.Msg.LANG_LISTS_CREATE_WITH_CONTAINER_TITLE_ADD = 'list';
Blockly.Msg.LANG_LISTS_CREATE_WITH_CONTAINER_TOOLTIP = 'Add, remove, or reorder sections to reconfigure this list block.';
Blockly.Msg.LANG_LISTS_CREATE_WITH_ITEM_TITLE = 'item';
Blockly.Msg.LANG_LISTS_CREATE_WITH_ITEM_TOOLTIP = 'Add an item to the list.';
Blockly.Msg.LANG_LISTS_ADD_ITEM_TITLE = 'item';
Blockly.Msg.LANG_LISTS_ADD_ITEM_TOOLTIP = 'Add an item to the list.';
Blockly.Msg.LANG_LISTS_ADD_ITEM_HELPURL = '/reference/blocks/lists.html#additems';
Blockly.Msg.LANG_LISTS_SELECT_ITEM_TITLE_HELPURL = '/reference/blocks/lists.html#selectlistitem';
Blockly.Msg.LANG_LISTS_SELECT_ITEM_TITLE_SELECT = 'select list item';
Blockly.Msg.LANG_LISTS_SELECT_ITEM_INPUT_LIST = 'list';
Blockly.Msg.LANG_LISTS_SELECT_ITEM_INPUT_INDEX = 'index';
Blockly.Msg.LANG_LISTS_SELECT_ITEM_INPUT = 'select list item list %1 index %2';
Blockly.Msg.LANG_LISTS_SELECT_ITEM_TOOLTIP = 'Returns the item at position index in the list.';
Blockly.Msg.LANG_LISTS_IS_IN_HELPURL = '/reference/blocks/lists.html#inlist';
Blockly.Msg.LANG_LISTS_IS_IN_TITLE_IS_IN = 'is in list?';
Blockly.Msg.LANG_LISTS_IS_IN_INPUT_THING = 'thing';
Blockly.Msg.LANG_LISTS_IS_IN_INPUT_LIST = 'list';
Blockly.Msg.LANG_LISTS_IS_IN_INPUT = 'is in list? thing %1 list %2'
Blockly.Msg.LANG_LISTS_IS_IN_TOOLTIP = 'Returns true if the the thing is an item in the list, and '
+ 'false if not.';
Blockly.Msg.LANG_LISTS_POSITION_IN_HELPURL = '/reference/blocks/lists.html#indexinlist';
Blockly.Msg.LANG_LISTS_POSITION_IN_TITLE_POSITION = 'index in list';
Blockly.Msg.LANG_LISTS_POSITION_IN_INPUT_THING = 'thing';
Blockly.Msg.LANG_LISTS_POSITION_IN_INPUT_LIST = 'list';
Blockly.Msg.LANG_LISTS_POSITION_IN_INPUT = 'index in list thing %1 list %2';
Blockly.Msg.LANG_LISTS_POSITION_IN_TOOLTIP = 'Find the position of the thing in the list. If it\'s not in '
+ 'the list, return 0.';
Blockly.Msg.LANG_LISTS_PICK_RANDOM_ITEM_HELPURL = '/reference/blocks/lists.html#pickrandomitem';
Blockly.Msg.LANG_LISTS_PICK_RANDOM_TITLE_PICK_RANDOM = 'pick a random item';
Blockly.Msg.LANG_LISTS_PICK_RANDOM_ITEM_INPUT_LIST = 'list';
Blockly.Msg.LANG_LISTS_PICK_RANDOM_TOOLTIP = 'Pick an item at random from the list.';
Blockly.Msg.LANG_LISTS_REPLACE_ITEM_HELPURL = '/reference/blocks/lists.html#replace';
Blockly.Msg.LANG_LISTS_REPLACE_ITEM_TITLE_REPLACE = 'replace list item';
Blockly.Msg.LANG_LISTS_REPLACE_ITEM_INPUT_LIST = 'list';
Blockly.Msg.LANG_LISTS_REPLACE_ITEM_INPUT_INDEX = 'index';
Blockly.Msg.LANG_LISTS_REPLACE_ITEM_INPUT_REPLACEMENT = 'replacement';
Blockly.Msg.LANG_LISTS_REPLACE_ITEM_INPUT = 'replace list item list %1 index %2 replacement %3';
Blockly.Msg.LANG_LISTS_REPLACE_ITEM_TOOLTIP = 'Replaces the nth item in a list.';
Blockly.Msg.LANG_LISTS_REMOVE_ITEM_HELPURL = '/reference/blocks/lists.html#removeitem';
Blockly.Msg.LANG_LISTS_REMOVE_ITEM_TITLE_REMOVE = 'remove list item';
Blockly.Msg.LANG_LISTS_REMOVE_ITEM_INPUT_LIST = 'list';
Blockly.Msg.LANG_LISTS_REMOVE_ITEM_INPUT_INDEX = 'index';
Blockly.Msg.LANG_LISTS_REMOVE_ITEM_INPUT = 'remove list item list %1 index %2';
Blockly.Msg.LANG_LISTS_REMOVE_ITEM_TOOLTIP = 'Removes the item at the specified position from the list.';
/*Blockly.Msg.LANG_LISTS_REPEAT_HELPURL = 'http://publib.boulder.ibm.com/infocenter/lnxpcomp/v8v101/index.jsp?topic=%2Fcom.ibm.xlcpp8l.doc%2Flanguage%2Fref%2Farsubex.htm';
Blockly.Msg.LANG_LISTS_REPEAT_TITLE_CREATE = 'create list with item';
Blockly.Msg.LANG_LISTS_REPEAT_INPUT_REPEATED = 'repeated';
Blockly.Msg.LANG_LISTS_REPEAT_INPUT_TIMES = 'times';
Blockly.Msg.LANG_LISTS_REPEAT_TOOLTIP = 'Creates a list consisting of the given value\n' +
'repeated the specified number of times.';*/
Blockly.Msg.LANG_LISTS_LENGTH_HELPURL = '/reference/blocks/lists.html#lengthoflist';
Blockly.Msg.LANG_LISTS_LENGTH_INPUT_LENGTH = 'length of list';
Blockly.Msg.LANG_LISTS_LENGTH_INPUT_LIST = 'list';
Blockly.Msg.LANG_LISTS_LENGTH_INPUT = 'length of list list %1';
Blockly.Msg.LANG_LISTS_LENGTH_TOOLTIP = 'Counts the number of items in a list.';
Blockly.Msg.LANG_LISTS_APPEND_LIST_HELPURL = '/reference/blocks/lists.html#append';
Blockly.Msg.LANG_LISTS_APPEND_LIST_TITLE_APPEND = 'append to list';
Blockly.Msg.LANG_LISTS_APPEND_LIST_INPUT_LIST1 = 'list1';
Blockly.Msg.LANG_LISTS_APPEND_LIST_INPUT_LIST2 = 'list2';
Blockly.Msg.LANG_LISTS_APPEND_LIST_INPUT = 'append to list list1 %1 list2 %2';
Blockly.Msg.LANG_LISTS_APPEND_LIST_TOOLTIP = 'Appends all the items in list2 onto the end of list1. After '
+ 'the append, list1 will include these additional elements, but list2 will be unchanged.';
Blockly.Msg.LANG_LISTS_ADD_ITEMS_HELPURL = '/reference/blocks/lists.html#additems';
Blockly.Msg.LANG_LISTS_ADD_ITEMS_TITLE_ADD = 'add items to list';
Blockly.Msg.LANG_LISTS_ADD_ITEMS_INPUT_LIST = ' list';
Blockly.Msg.LANG_LISTS_ADD_ITEMS_INPUT_ITEM = 'item';
Blockly.Msg.LANG_LISTS_ADD_ITEMS_INPUT = 'add items to list list %1 item %2';
Blockly.Msg.LANG_LISTS_ADD_ITEMS_TOOLTIP = 'Adds items to the end of a list.';
Blockly.Msg.LANG_LISTS_ADD_ITEMS_CONTAINER_TITLE_ADD = 'list';
Blockly.Msg.LANG_LISTS_ADD_ITEMS_CONTAINER_TOOLTIP = 'Add, remove, or reorder sections to reconfigure this list block.';
Blockly.Msg.LANG_LISTS_COPY_HELPURL = '/reference/blocks/lists.html#copy';
Blockly.Msg.LANG_LISTS_COPY_TITLE_COPY = 'copy list';
Blockly.Msg.LANG_LISTS_COPY_INPUT_LIST = 'list';
Blockly.Msg.LANG_LISTS_COPY_TOOLTIP = 'Makes a copy of a list, including copying all sublists';
Blockly.Msg.LANG_LISTS_IS_LIST_HELPURL = '/reference/blocks/lists.html#isalist';
Blockly.Msg.LANG_LISTS_IS_LIST_TITLE_IS_LIST = 'is a list?';
Blockly.Msg.LANG_LISTS_IS_LIST_INPUT_THING = 'thing';
Blockly.Msg.LANG_LISTS_IS_LIST_TOOLTIP = 'Tests if something is a list.';
Blockly.Msg.LANG_LISTS_REVERSE_HELPURL = '/reference/blocks/lists.html#reverse';
Blockly.Msg.LANG_LISTS_REVERSE_TITLE_REVERSE = 'reverse list';
Blockly.Msg.LANG_LISTS_REVERSE_INPUT_LIST = 'list';
Blockly.Msg.LANG_LISTS_REVERSE_TOOLTIP = 'Reverses the order of input list and returns it as a new list.';
Blockly.Msg.LANG_LISTS_TO_CSV_ROW_HELPURL = '/reference/blocks/lists.html#listtocsvrow';
Blockly.Msg.LANG_LISTS_TO_CSV_ROW_TITLE_TO_CSV = 'list to csv row';
Blockly.Msg.LANG_LISTS_TO_CSV_ROW_INPUT_LIST = 'list';
Blockly.Msg.LANG_LISTS_TO_CSV_ROW_TOOLTIP = 'Interprets the list as a row of a table and returns a CSV '
+ '\(comma-separated value\) text representing the row. Each item in the row list is '
+ 'considered to be a field, and is quoted with double-quotes in the resulting CSV text. '
+ 'Items are separated by commas. The returned row text does not have a line separator at '
+ 'the end.';
Blockly.Msg.LANG_LISTS_FROM_CSV_ROW_HELPURL = '/reference/blocks/lists.html#listfromcsvrow';
Blockly.Msg.LANG_LISTS_FROM_CSV_ROW_TITLE_FROM_CSV = 'list from csv row';
Blockly.Msg.LANG_LISTS_FROM_CSV_ROW_INPUT_TEXT = 'text';
Blockly.Msg.LANG_LISTS_FROM_CSV_ROW_TOOLTIP = 'Parses a text as a CSV \(comma-separated value\) formatted '
+ 'row to produce a list of fields. It is an error for the row text to contain unescaped '
+ 'newlines inside fields \(effectively, multiple lines\). It is okay for the row text to '
+ 'end in a single newline or CRLF.';
Blockly.Msg.LANG_LISTS_TO_CSV_TABLE_HELPURL = '/reference/blocks/lists.html#listtocsvtable';
Blockly.Msg.LANG_LISTS_TO_CSV_TABLE_TITLE_TO_CSV = 'list to csv table';
Blockly.Msg.LANG_LISTS_TO_CSV_TABLE_INPUT_LIST = 'list';
Blockly.Msg.LANG_LISTS_TO_CSV_TABLE_TOOLTIP = 'Interprets the list as a table in row-major format and '
+ 'returns a CSV \(comma-separated value\) text representing the table. Each item in the '
+ 'list should itself be a list representing a row of the CSV table. Each item in the row '
+ 'list is considered to be a field, and is quoted with double-quotes in the resulting CSV '
+ 'text. In the returned text, items in rows are separated by commas and rows are '
+ 'separated by CRLF \(\\r\\n\).';
Blockly.Msg.LANG_LISTS_FROM_CSV_TABLE_HELPURL = '/reference/blocks/lists.html#listfromcsvtable';
Blockly.Msg.LANG_LISTS_FROM_CSV_TABLE_TITLE_FROM_CSV = 'list from csv table';
Blockly.Msg.LANG_LISTS_FROM_CSV_TABLE_INPUT_TEXT = 'text';
Blockly.Msg.LANG_LISTS_FROM_CSV_TABLE_TOOLTIP = 'Parses a text as a CSV \(comma-separated value\) formatted '
+ 'table to produce a list of rows, each of which is a list of fields. Rows can be '
+ 'separated by newlines \(\\n\) or CRLF \(\\r\\n\).';
Blockly.Msg.LANG_LISTS_INSERT_ITEM_HELPURL = '/reference/blocks/lists.html#insert';
Blockly.Msg.LANG_LISTS_INSERT_TITLE_INSERT_LIST = 'insert list item';
Blockly.Msg.LANG_LISTS_INSERT_INPUT_LIST = 'list';
Blockly.Msg.LANG_LISTS_INSERT_INPUT_INDEX = 'index';
Blockly.Msg.LANG_LISTS_INSERT_INPUT_ITEM = 'item';
Blockly.Msg.LANG_LISTS_INSERT_INPUT = 'insert list item list %1 index %2 item %3';
Blockly.Msg.LANG_LISTS_INSERT_TOOLTIP = 'Insert an item into a list at the specified position.';
Blockly.Msg.LANG_LISTS_IS_EMPTY_HELPURL = '/reference/blocks/lists.html#islistempty';
Blockly.Msg.LANG_LISTS_TITLE_IS_EMPTY = 'is list empty?';
Blockly.Msg.LANG_LISTS_INPUT_LIST = 'list';
Blockly.Msg.LANG_LISTS_IS_EMPTY_TOOLTIP = 'Returns true if the list is empty.';
Blockly.Msg.LANG_LISTS_LOOKUP_IN_PAIRS_HELPURL = '/reference/blocks/lists.html#lookuppairs';
Blockly.Msg.LANG_LISTS_LOOKUP_IN_PAIRS_TITLE_LOOKUP_IN_PAIRS = 'look up in pairs';
Blockly.Msg.LANG_LISTS_LOOKUP_IN_PAIRS_INPUT_KEY = 'key';
Blockly.Msg.LANG_LISTS_LOOKUP_IN_PAIRS_INPUT_PAIRS = 'pairs';
Blockly.Msg.LANG_LISTS_LOOKUP_IN_PAIRS_INPUT_NOT_FOUND = 'notFound';
Blockly.Msg.LANG_LISTS_LOOKUP_IN_PAIRS_INPUT = 'look up in pairs key %1 pairs %2 notFound %3';
Blockly.Msg.LANG_LISTS_LOOKUP_IN_PAIRS_TOOLTIP = 'Returns the value associated with the key in the list of pairs';
// Join With Separator block
Blockly.Msg.LANG_LISTS_JOIN_WITH_SEPARATOR_HELPURL = '/reference/blocks/lists.html#joinwithseparator';
Blockly.Msg.LANG_LISTS_JOIN_WITH_SEPARATOR_TITLE = 'join with separator';
Blockly.Msg.LANG_LISTS_JOIN_WITH_SEPARATOR_SEPARATOR = 'separator';
Blockly.Msg.LANG_LISTS_JOIN_WITH_SEPARATOR_LIST = 'list';
Blockly.Msg.LANG_LISTS_JOIN_WITH_SEPARATOR_INPUT = 'join items using separator %1 list %2';
Blockly.Msg.LANG_LISTS_JOIN_WITH_SEPARATOR_TOOLTIP = 'Returns text with list elements joined with separator';
/*Blockly.Msg.LANG_LISTS_INDEX_OF_HELPURL = 'http://publib.boulder.ibm.com/infocenter/lnxpcomp/v8v101/index.jsp?topic=%2Fcom.ibm.xlcpp8l.doc%2Flanguage%2Fref%2Farsubex.htm';
Blockly.Msg.LANG_LISTS_INDEX_OF_TITLE_FIND = 'find';
Blockly.Msg.LANG_LISTS_INDEX_OF_INPUT_OCCURRENCE = 'occurrence of item';
Blockly.Msg.LANG_LISTS_INDEX_OF_INPUT_IN_LIST = 'in list';
Blockly.Msg.LANG_LISTS_INDEX_OF_TOOLTIP = 'Returns the index of the first/last occurrence\n' +
'of the item in the list.\n' +
'Returns 0 if text is not found.';
Blockly.Msg.LANG_LISTS_INDEX_OF_FIRST = 'first';
Blockly.Msg.LANG_LISTS_INDEX_OF_LAST = 'last';
Blockly.Msg.LANG_LISTS_GET_INDEX_HELPURL = 'http://publib.boulder.ibm.com/infocenter/lnxpcomp/v8v101/index.jsp?topic=%2Fcom.ibm.xlcpp8l.doc%2Flanguage%2Fref%2Farsubex.htm';
Blockly.Msg.LANG_LISTS_GET_INDEX_TITLE_GET = 'get item at';
Blockly.Msg.LANG_LISTS_GET_INDEX_INPUT_IN_LIST = 'in list';
Blockly.Msg.LANG_LISTS_GET_INDEX_TOOLTIP = 'Returns the value at the specified position in a list.';
Blockly.Msg.LANG_LISTS_SET_INDEX_HELPURL = 'http://publib.boulder.ibm.com/infocenter/lnxpcomp/v8v101/index.jsp?topic=%2Fcom.ibm.xlcpp8l.doc%2Flanguage%2Fref%2Farsubex.htm';
Blockly.Msg.LANG_LISTS_SET_INDEX_INPUT_SET = 'set item at';
Blockly.Msg.LANG_LISTS_SET_INDEX_INPUT_IN_LIST = 'in list';
Blockly.Msg.LANG_LISTS_SET_INDEX_INPUT_TO = 'to';
Blockly.Msg.LANG_LISTS_SET_INDEX_TOOLTIP = 'Sets the value at the specified position in a list.';*/
// Variables Blocks.
Blockly.Msg.LANG_VARIABLES_GLOBAL_DECLARATION_HELPURL = '/reference/blocks/variables.html#global';
Blockly.Msg.LANG_VARIABLES_GLOBAL_DECLARATION_TITLE_INIT = 'initialize global';
Blockly.Msg.LANG_VARIABLES_GLOBAL_DECLARATION_NAME = 'name';
Blockly.Msg.LANG_VARIABLES_GLOBAL_DECLARATION_TO = 'to';
Blockly.Msg.LANG_VARIABLES_GLOBAL_DECLARATION_COLLAPSED_TEXT = 'global';
Blockly.Msg.LANG_VARIABLES_GLOBAL_DECLARATION_TOOLTIP = 'Creates a global variable and gives it the value of the attached blocks.';
Blockly.Msg.LANG_VARIABLES_GET_HELPURL = '/reference/blocks/variables.html#get';
Blockly.Msg.LANG_VARIABLES_GET_TITLE_GET = 'get';
/* Blockly.Msg.LANG_VARIABLES_GET_INPUT_ITEM = 'item'; */ // [lyn, 10/14/13] unused
Blockly.Msg.LANG_VARIABLES_GET_COLLAPSED_TEXT = 'get';
Blockly.Msg.LANG_VARIABLES_GET_TOOLTIP = 'Returns the value of this variable.';
Blockly.Msg.LANG_VARIABLES_SET_HELPURL = '/reference/blocks/variables.html#set';
Blockly.Msg.LANG_VARIABLES_SET_TITLE_SET = 'set';
/* Blockly.Msg.LANG_VARIABLES_SET_INPUT_ITEM = 'item'; */ // [lyn, 10/14/13] unused
Blockly.Msg.LANG_VARIABLES_SET_TITLE_TO = 'to';
Blockly.Msg.LANG_VARIABLES_SET_COLLAPSED_TEXT = 'set';
Blockly.Msg.LANG_VARIABLES_SET_TOOLTIP = 'Sets this variable to be equal to the input.';
Blockly.Msg.LANG_VARIABLES_VARIABLE = ' variable';
Blockly.Msg.LANG_VARIABLES_LOCAL_DECLARATION_HELPURL = '/reference/blocks/variables.html#do';
Blockly.Msg.LANG_VARIABLES_LOCAL_DECLARATION_TITLE_INIT = 'initialize local';
Blockly.Msg.LANG_VARIABLES_LOCAL_DECLARATION_DEFAULT_NAME = 'name';
Blockly.Msg.LANG_VARIABLES_LOCAL_DECLARATION_INPUT_TO = 'to';
Blockly.Msg.LANG_VARIABLES_LOCAL_DECLARATION_IN_DO = 'in';
Blockly.Msg.LANG_VARIABLES_LOCAL_DECLARATION_COLLAPSED_TEXT = 'local';
Blockly.Msg.LANG_VARIABLES_LOCAL_DECLARATION_TOOLTIP = 'Allows you to create variables that are only accessible in the do part of this block.';
Blockly.Msg.LANG_VARIABLES_LOCAL_DECLARATION_TRANSLATED_NAME = 'initialize local in do';
Blockly.Msg.LANG_VARIABLES_LOCAL_DECLARATION_EXPRESSION_HELPURL = '/reference/blocks/variables.html#return';
/* // These don't differ between the statement and expression
Blockly.Msg.LANG_VARIABLES_LOCAL_DECLARATION_EXPRESSION_TITLE_INIT = 'initialize local';
Blockly.Msg.LANG_VARIABLES_LOCAL_DECLARATION_EXPRESSION_INPUT_NAME = 'name';
Blockly.Msg.LANG_VARIABLES_LOCAL_DECLARATION_EXPRESSION_INPUT_TO = 'to';
*/
Blockly.Msg.LANG_VARIABLES_LOCAL_DECLARATION_EXPRESSION_IN_RETURN = 'in';
Blockly.Msg.LANG_VARIABLES_LOCAL_DECLARATION_EXPRESSION_COLLAPSED_TEXT = 'local';
Blockly.Msg.LANG_VARIABLES_LOCAL_DECLARATION_EXPRESSION_TOOLTIP = 'Allows you to create variables that are only accessible in the return part of this block.';
Blockly.Msg.LANG_VARIABLES_LOCAL_DECLARATION_EXPRESSION_TRANSLATED_NAME = 'initialize local in return';
Blockly.Msg.LANG_VARIABLES_LOCAL_MUTATOR_CONTAINER_TITLE_LOCAL_NAMES = 'local names';
Blockly.Msg.LANG_VARIABLES_LOCAL_MUTATOR_CONTAINER_TOOLTIP = '';
Blockly.Msg.LANG_VARIABLES_LOCAL_MUTATOR_ARG_TITLE_NAME = 'name';
Blockly.Msg.LANG_VARIABLES_LOCAL_MUTATOR_ARG_DEFAULT_VARIABLE = 'x';
// Procedures Blocks.
Blockly.Msg.LANG_PROCEDURES_DEFNORETURN_HELPURL = '/reference/blocks/procedures.html#do';
Blockly.Msg.LANG_PROCEDURES_DEFNORETURN_DEFINE = 'to';
Blockly.Msg.LANG_PROCEDURES_DEFNORETURN_PROCEDURE = 'procedure';
Blockly.Msg.LANG_PROCEDURES_DEFNORETURN_DO = 'do';
Blockly.Msg.LANG_PROCEDURES_DEFNORETURN_COLLAPSED_PREFIX = 'to ';
Blockly.Msg.LANG_PROCEDURES_DEFNORETURN_TOOLTIP = 'A procedure that does not return a value.';
Blockly.Msg.LANG_PROCEDURES_DOTHENRETURN_HELPURL = '/reference/blocks/procedures.html#doreturn';
Blockly.Msg.LANG_PROCEDURES_DOTHENRETURN_THEN_RETURN = 'result';
Blockly.Msg.LANG_PROCEDURES_DOTHENRETURN_DO = 'do';
Blockly.Msg.LANG_PROCEDURES_DOTHENRETURN_RETURN = 'result';
Blockly.Msg.LANG_PROCEDURES_DOTHENRETURN_TOOLTIP = 'Runs the blocks in \'do\' and returns a statement. Useful if you need to run a procedure before returning a value to a variable.';
Blockly.Msg.LANG_PROCEDURES_DOTHENRETURN_COLLAPSED_TEXT = 'do/result';
Blockly.Msg.LANG_PROCEDURES_DEFRETURN_HELPURL = '/reference/blocks/procedures.html#return';
Blockly.Msg.LANG_PROCEDURES_DEFRETURN_DEFINE = 'to';
Blockly.Msg.LANG_PROCEDURES_DEFRETURN_PROCEDURE = Blockly.Msg.LANG_PROCEDURES_DEFNORETURN_PROCEDURE;
Blockly.Msg.LANG_PROCEDURES_DEFRETURN_DO = Blockly.Msg.LANG_PROCEDURES_DEFNORETURN_DO;
Blockly.Msg.LANG_PROCEDURES_DEFRETURN_RETURN = 'result';