@saltcorn/server 1.1.1-beta.5 → 1.1.1-beta.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (153) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/auth/admin.js +8 -0
  3. package/locales/en.json +16 -1
  4. package/markup/admin.js +8 -3
  5. package/markup/blockly.js +4 -4
  6. package/package.json +9 -9
  7. package/public/blockly/blockly_compressed.js +2016 -0
  8. package/public/blockly/blockly_compressed.js.map +1 -0
  9. package/public/blockly/blocks_compressed.js +212 -0
  10. package/public/blockly/blocks_compressed.js.map +1 -0
  11. package/public/blockly/javascript_compressed.js +121 -0
  12. package/public/blockly/javascript_compressed.js.map +1 -0
  13. package/public/blockly/msg/ab.js +440 -0
  14. package/public/blockly/msg/ace.js +440 -0
  15. package/public/blockly/msg/af.js +440 -0
  16. package/public/blockly/msg/am.js +440 -0
  17. package/public/blockly/msg/ar.js +440 -0
  18. package/public/blockly/msg/ast.js +440 -0
  19. package/public/blockly/msg/az.js +440 -0
  20. package/public/blockly/msg/ba.js +440 -0
  21. package/public/blockly/msg/bcc.js +440 -0
  22. package/public/blockly/msg/be-tarask.js +440 -0
  23. package/public/blockly/msg/be.js +440 -0
  24. package/public/blockly/msg/bg.js +440 -0
  25. package/public/blockly/msg/bn.js +440 -0
  26. package/public/blockly/msg/br.js +440 -0
  27. package/public/blockly/msg/bs.js +440 -0
  28. package/public/blockly/msg/ca.js +440 -0
  29. package/public/blockly/msg/cdo.js +440 -0
  30. package/public/blockly/msg/cs.js +440 -0
  31. package/public/blockly/msg/da.js +440 -0
  32. package/public/blockly/msg/de.js +440 -0
  33. package/public/blockly/msg/diq.js +440 -0
  34. package/public/blockly/msg/dty.js +440 -0
  35. package/public/blockly/msg/ee.js +440 -0
  36. package/public/blockly/msg/el.js +440 -0
  37. package/public/blockly/msg/en-gb.js +440 -0
  38. package/public/blockly/msg/en.js +440 -0
  39. package/public/blockly/msg/eo.js +440 -0
  40. package/public/blockly/msg/es.js +440 -0
  41. package/public/blockly/msg/et.js +440 -0
  42. package/public/blockly/msg/eu.js +440 -0
  43. package/public/blockly/msg/fa.js +440 -0
  44. package/public/blockly/msg/fi.js +440 -0
  45. package/public/blockly/msg/fo.js +440 -0
  46. package/public/blockly/msg/fr.js +440 -0
  47. package/public/blockly/msg/frr.js +440 -0
  48. package/public/blockly/msg/gl.js +440 -0
  49. package/public/blockly/msg/gn.js +440 -0
  50. package/public/blockly/msg/gor.js +440 -0
  51. package/public/blockly/msg/ha.js +440 -0
  52. package/public/blockly/msg/hak.js +440 -0
  53. package/public/blockly/msg/he.js +440 -0
  54. package/public/blockly/msg/hi.js +440 -0
  55. package/public/blockly/msg/hr.js +440 -0
  56. package/public/blockly/msg/hrx.js +440 -0
  57. package/public/blockly/msg/hu.js +440 -0
  58. package/public/blockly/msg/hy.js +440 -0
  59. package/public/blockly/msg/ia.js +440 -0
  60. package/public/blockly/msg/id.js +440 -0
  61. package/public/blockly/msg/ig.js +440 -0
  62. package/public/blockly/msg/inh.js +440 -0
  63. package/public/blockly/msg/is.js +440 -0
  64. package/public/blockly/msg/it.js +440 -0
  65. package/public/blockly/msg/ja.js +440 -0
  66. package/public/blockly/msg/ka.js +440 -0
  67. package/public/blockly/msg/kab.js +440 -0
  68. package/public/blockly/msg/kbd-cyrl.js +440 -0
  69. package/public/blockly/msg/km.js +440 -0
  70. package/public/blockly/msg/kn.js +440 -0
  71. package/public/blockly/msg/ko.js +440 -0
  72. package/public/blockly/msg/ksh.js +440 -0
  73. package/public/blockly/msg/ku-latn.js +440 -0
  74. package/public/blockly/msg/ky.js +440 -0
  75. package/public/blockly/msg/la.js +440 -0
  76. package/public/blockly/msg/lb.js +440 -0
  77. package/public/blockly/msg/lki.js +440 -0
  78. package/public/blockly/msg/lo.js +440 -0
  79. package/public/blockly/msg/lrc.js +440 -0
  80. package/public/blockly/msg/lt.js +440 -0
  81. package/public/blockly/msg/lv.js +440 -0
  82. package/public/blockly/msg/mg.js +440 -0
  83. package/public/blockly/msg/mk.js +440 -0
  84. package/public/blockly/msg/ml.js +440 -0
  85. package/public/blockly/msg/mnw.js +440 -0
  86. package/public/blockly/msg/ms.js +440 -0
  87. package/public/blockly/msg/msg.d.ts +444 -0
  88. package/public/blockly/msg/my.js +440 -0
  89. package/public/blockly/msg/mzn.js +440 -0
  90. package/public/blockly/msg/nb.js +440 -0
  91. package/public/blockly/msg/ne.js +440 -0
  92. package/public/blockly/msg/nl.js +440 -0
  93. package/public/blockly/msg/oc.js +440 -0
  94. package/public/blockly/msg/olo.js +440 -0
  95. package/public/blockly/msg/pa.js +440 -0
  96. package/public/blockly/msg/pl.js +440 -0
  97. package/public/blockly/msg/pms.js +440 -0
  98. package/public/blockly/msg/ps.js +440 -0
  99. package/public/blockly/msg/pt-br.js +440 -0
  100. package/public/blockly/msg/pt.js +440 -0
  101. package/public/blockly/msg/ro.js +440 -0
  102. package/public/blockly/msg/ru.js +440 -0
  103. package/public/blockly/msg/sc.js +440 -0
  104. package/public/blockly/msg/sco.js +440 -0
  105. package/public/blockly/msg/sd.js +440 -0
  106. package/public/blockly/msg/shn.js +440 -0
  107. package/public/blockly/msg/si.js +440 -0
  108. package/public/blockly/msg/sk.js +440 -0
  109. package/public/blockly/msg/skr-arab.js +440 -0
  110. package/public/blockly/msg/sl.js +440 -0
  111. package/public/blockly/msg/smn.js +440 -0
  112. package/public/blockly/msg/sq.js +440 -0
  113. package/public/blockly/msg/sr-latn.js +440 -0
  114. package/public/blockly/msg/sr.js +440 -0
  115. package/public/blockly/msg/sv.js +440 -0
  116. package/public/blockly/msg/sw.js +440 -0
  117. package/public/blockly/msg/ta.js +440 -0
  118. package/public/blockly/msg/tcy.js +440 -0
  119. package/public/blockly/msg/te.js +440 -0
  120. package/public/blockly/msg/th.js +440 -0
  121. package/public/blockly/msg/ti.js +440 -0
  122. package/public/blockly/msg/tl.js +440 -0
  123. package/public/blockly/msg/tlh.js +440 -0
  124. package/public/blockly/msg/tr.js +440 -0
  125. package/public/blockly/msg/ug-arab.js +440 -0
  126. package/public/blockly/msg/uk.js +440 -0
  127. package/public/blockly/msg/ur.js +440 -0
  128. package/public/blockly/msg/uz.js +440 -0
  129. package/public/blockly/msg/vi.js +440 -0
  130. package/public/blockly/msg/xmf.js +440 -0
  131. package/public/blockly/msg/yo.js +440 -0
  132. package/public/blockly/msg/yue.js +440 -0
  133. package/public/blockly/msg/zgh.js +440 -0
  134. package/public/blockly/msg/zh-hans.js +440 -0
  135. package/public/blockly/msg/zh-hant.js +440 -0
  136. package/public/saltcorn-common.js +8 -1
  137. package/public/saltcorn.js +12 -0
  138. package/routes/actions.js +32 -25
  139. package/routes/admin.js +90 -63
  140. package/routes/common_lists.js +46 -24
  141. package/routes/fields.js +31 -9
  142. package/routes/list.js +17 -4
  143. package/routes/notifications.js +27 -20
  144. package/routes/pageedit.js +14 -13
  145. package/routes/plugins.js +0 -32
  146. package/routes/tables.js +173 -92
  147. package/routes/utils.js +27 -0
  148. package/routes/view.js +2 -1
  149. package/routes/viewedit.js +14 -13
  150. package/serve.js +52 -1
  151. package/tests/api.test.js +0 -18
  152. package/tests/plugins.test.js +2 -2
  153. package/wrapper.js +80 -42
@@ -0,0 +1,440 @@
1
+ /* eslint-disable */
2
+ ;(function(root, factory) {
3
+ if (typeof define === 'function' && define.amd) { // AMD
4
+ define([], factory);
5
+ } else if (typeof exports === 'object') { // Node.js
6
+ module.exports = factory();
7
+ } else { // Browser
8
+ var messages = factory();
9
+ for (var key in messages) {
10
+ root.Blockly.Msg[key] = messages[key];
11
+ }
12
+ }
13
+ }(this, function() {
14
+ // This file was automatically generated. Do not modify.
15
+
16
+ 'use strict';
17
+
18
+ var Blockly = Blockly || { Msg: Object.create(null) };
19
+
20
+ Blockly.Msg["ADD_COMMENT"] = "Berikan Komen";
21
+ Blockly.Msg["CANNOT_DELETE_VARIABLE_PROCEDURE"] = "Can't delete the variable '%1' because it's part of the definition of the function '%2'"; // untranslated
22
+ Blockly.Msg["CHANGE_VALUE_TITLE"] = "Ubah nilai:";
23
+ Blockly.Msg["CLEAN_UP"] = "Kemaskan Blok";
24
+ Blockly.Msg["COLLAPSED_WARNINGS_WARNING"] = "Collapsed blocks contain warnings."; // untranslated
25
+ Blockly.Msg["COLLAPSE_ALL"] = "Lipat Blok²";
26
+ Blockly.Msg["COLLAPSE_BLOCK"] = "Lipat Blok";
27
+ Blockly.Msg["COLOUR_BLEND_COLOUR1"] = "warna 1";
28
+ Blockly.Msg["COLOUR_BLEND_COLOUR2"] = "warna 2";
29
+ Blockly.Msg["COLOUR_BLEND_HELPURL"] = "https://meyerweb.com/eric/tools/color-blend/#:::rgbp"; // untranslated
30
+ Blockly.Msg["COLOUR_BLEND_RATIO"] = "nisbah";
31
+ Blockly.Msg["COLOUR_BLEND_TITLE"] = "adun";
32
+ Blockly.Msg["COLOUR_BLEND_TOOLTIP"] = "Campurkan dua warna sekali pada nisbah yang ditentukan (0.0 - 1.0).";
33
+ Blockly.Msg["COLOUR_PICKER_HELPURL"] = "https://ms.wikipedia.org/wiki/Warna";
34
+ Blockly.Msg["COLOUR_PICKER_TOOLTIP"] = "Pilih satu warna daripada palet.";
35
+ Blockly.Msg["COLOUR_RANDOM_HELPURL"] = "http://randomcolour.com"; // untranslated
36
+ Blockly.Msg["COLOUR_RANDOM_TITLE"] = "warna rawak";
37
+ Blockly.Msg["COLOUR_RANDOM_TOOLTIP"] = "Pilih satu warna secara rawak.";
38
+ Blockly.Msg["COLOUR_RGB_BLUE"] = "biru";
39
+ Blockly.Msg["COLOUR_RGB_GREEN"] = "hijau";
40
+ Blockly.Msg["COLOUR_RGB_HELPURL"] = "https://www.december.com/html/spec/colorpercompact.html"; // untranslated
41
+ Blockly.Msg["COLOUR_RGB_RED"] = "merah";
42
+ Blockly.Msg["COLOUR_RGB_TITLE"] = "warnakan";
43
+ Blockly.Msg["COLOUR_RGB_TOOLTIP"] = "Peroleh satu warna dengan menentukan amaun campuran merah, hijau dan biru. Kesemua nilai haruslah antara 0 hingga 100.";
44
+ Blockly.Msg["CONTROLS_FLOW_STATEMENTS_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#loop-termination-blocks"; // untranslated
45
+ Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK"] = "hentikan gelung";
46
+ Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE"] = "teruskan dengan lelaran gelung seterusnya";
47
+ Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK"] = "Keluar dari gelung pengandung.";
48
+ Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE"] = "Langkau seluruh gelung yang tinggal dan bersambung dengan lelaran seterusnya.";
49
+ Blockly.Msg["CONTROLS_FLOW_STATEMENTS_WARNING"] = "Amaran: Blok ini hanya boleh digunakan dalam satu gelung.";
50
+ Blockly.Msg["CONTROLS_FOREACH_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#for-each"; // untranslated
51
+ Blockly.Msg["CONTROLS_FOREACH_TITLE"] = "untuk setiap perkara %1 dalam senarai %2";
52
+ Blockly.Msg["CONTROLS_FOREACH_TOOLTIP"] = "Untuk setiap perkara dalam senarai, tetapkan pembolehubah '%1' pada perkara, kemudian lakukan beberapa perintah.";
53
+ Blockly.Msg["CONTROLS_FOR_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#count-with"; // untranslated
54
+ Blockly.Msg["CONTROLS_FOR_TITLE"] = "kira dengan %1 dari %2 hingga %3 selang %4";
55
+ Blockly.Msg["CONTROLS_FOR_TOOLTIP"] = "Gunakan pembolehubah '%1' pada nilai-nilai dari nombor pangkal hingga nombor hujung, mengira mengikut selang yang ditentukan, dan lakukan blok-blok yang tertentu.";
56
+ Blockly.Msg["CONTROLS_IF_ELSEIF_TOOLTIP"] = "Tambah satu syarat kepada blok jika.";
57
+ Blockly.Msg["CONTROLS_IF_ELSE_TOOLTIP"] = "Tambah yang terakhir, alihkan semua keadaan ke blok jika.";
58
+ Blockly.Msg["CONTROLS_IF_HELPURL"] = "https://github.com/google/blockly/wiki/IfElse"; // untranslated
59
+ Blockly.Msg["CONTROLS_IF_IF_TOOLTIP"] = "Tambah, alih keluar, atau susun semula bahagian-bahagian untuk menyusun semula blok jika.";
60
+ Blockly.Msg["CONTROLS_IF_MSG_ELSE"] = "lain";
61
+ Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"] = "lain jika";
62
+ Blockly.Msg["CONTROLS_IF_MSG_IF"] = "jika";
63
+ Blockly.Msg["CONTROLS_IF_TOOLTIP_1"] = "Jika nilai yang benar, lakukan beberapa penyata.";
64
+ Blockly.Msg["CONTROLS_IF_TOOLTIP_2"] = "Jika suatu nilai benar, lakukan penyata blok pertama. Jika tidak, bina penyata blok kedua.";
65
+ Blockly.Msg["CONTROLS_IF_TOOLTIP_3"] = "Jika nilai yang pertama adalah benar, lakukan penyata pertama blok. Sebaliknya, jika nilai kedua adalah benar, lakukan penyata blok kedua.";
66
+ Blockly.Msg["CONTROLS_IF_TOOLTIP_4"] = "Jika nilai yang pertama adalah benar, lakukan penyata blok pertama. Sebaliknya, jika nilai kedua adalah benar, lakukan penyata blok kedua. Jika tiada nilai adalah benar, lakukan penyata blok terakhir.";
67
+ Blockly.Msg["CONTROLS_REPEAT_HELPURL"] = "https://en.wikipedia.org/wiki/For_loop";
68
+ Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"] = "lakukan";
69
+ Blockly.Msg["CONTROLS_REPEAT_TITLE"] = "ulang %1 kali";
70
+ Blockly.Msg["CONTROLS_REPEAT_TOOLTIP"] = "Lakukan perintah berulang kali.";
71
+ Blockly.Msg["CONTROLS_WHILEUNTIL_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#repeat"; // untranslated
72
+ Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_UNTIL"] = "ulangi sehingga";
73
+ Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_WHILE"] = "ulangi apabila";
74
+ Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL"] = "Lakukan beberapa perintah apabila nilainya palsu (false).";
75
+ Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_WHILE"] = "Lakukan beberapa perintah apabila nilainya benar (true).";
76
+ Blockly.Msg["DELETE_ALL_BLOCKS"] = "Hapuskan kesemua %1 blok?";
77
+ Blockly.Msg["DELETE_BLOCK"] = "Hapuskan Blok";
78
+ Blockly.Msg["DELETE_VARIABLE"] = "Delete the '%1' variable"; // untranslated
79
+ Blockly.Msg["DELETE_VARIABLE_CONFIRMATION"] = "Delete %1 uses of the '%2' variable?"; // untranslated
80
+ Blockly.Msg["DELETE_X_BLOCKS"] = "Hapuskan %1 Blok";
81
+ Blockly.Msg["DIALOG_CANCEL"] = "Batalkan";
82
+ Blockly.Msg["DIALOG_OK"] = "OK";
83
+ Blockly.Msg["DISABLE_BLOCK"] = "Matikan Blok";
84
+ Blockly.Msg["DUPLICATE_BLOCK"] = "Pendua";
85
+ Blockly.Msg["DUPLICATE_COMMENT"] = "Duplicate Comment"; // untranslated
86
+ Blockly.Msg["ENABLE_BLOCK"] = "Hidupkan Blok";
87
+ Blockly.Msg["EXPAND_ALL"] = "Buka Blok²";
88
+ Blockly.Msg["EXPAND_BLOCK"] = "Buka Blok";
89
+ Blockly.Msg["EXTERNAL_INPUTS"] = "Input Luaran";
90
+ Blockly.Msg["HELP"] = "Bantuan";
91
+ Blockly.Msg["INLINE_INPUTS"] = "Input Sebaris";
92
+ Blockly.Msg["LISTS_CREATE_EMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-empty-list"; // untranslated
93
+ Blockly.Msg["LISTS_CREATE_EMPTY_TITLE"] = "Wujudkan senarai kosong";
94
+ Blockly.Msg["LISTS_CREATE_EMPTY_TOOLTIP"] = "Kembalikan senarai panjang 0, yang tidak mengandungi rekod data";
95
+ Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TITLE_ADD"] = "senarai";
96
+ Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TOOLTIP"] = "Tambah, alih keluar, atau susun semula bahagian-bahagian untuk menyusun semula senarai blok.";
97
+ Blockly.Msg["LISTS_CREATE_WITH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with";
98
+ Blockly.Msg["LISTS_CREATE_WITH_INPUT_WITH"] = "wujudkan senarai dengan";
99
+ Blockly.Msg["LISTS_CREATE_WITH_ITEM_TOOLTIP"] = "Tambah item ke dalam senarai.";
100
+ Blockly.Msg["LISTS_CREATE_WITH_TOOLTIP"] = "Wujudkan senarai dengan apa jua nombor item.";
101
+ Blockly.Msg["LISTS_GET_INDEX_FIRST"] = "pertama";
102
+ Blockly.Msg["LISTS_GET_INDEX_FROM_END"] = "# dari akhir";
103
+ Blockly.Msg["LISTS_GET_INDEX_FROM_START"] = "#";
104
+ Blockly.Msg["LISTS_GET_INDEX_GET"] = "dapatkan";
105
+ Blockly.Msg["LISTS_GET_INDEX_GET_REMOVE"] = "dapat dan alihkan";
106
+ Blockly.Msg["LISTS_GET_INDEX_LAST"] = "terakhir";
107
+ Blockly.Msg["LISTS_GET_INDEX_RANDOM"] = "rawak";
108
+ Blockly.Msg["LISTS_GET_INDEX_REMOVE"] = "alihkan";
109
+ Blockly.Msg["LISTS_GET_INDEX_TAIL"] = ""; // untranslated
110
+ Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FIRST"] = "Kembalikan item pertama dalam senarai.";
111
+ Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FROM"] = "Kembalikan item dalam kedudukan yang ditetapkan dalam senarai.";
112
+ Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_LAST"] = "Kembalikan item pertama dalam senarai.";
113
+ Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_RANDOM"] = "Kembalikan item rawak dalam senarai.";
114
+ Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST"] = "Alihkan dan kembalikan item pertama dalam senarai.";
115
+ Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM"] = "Alihkan dan kembalikan item mengikut spesifikasi posisi dalam senarai.";
116
+ Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST"] = "Alihkan dan kembalikan item terakhir dalam senarai.";
117
+ Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM"] = "Alihkan dan kembalikan item rawak dalam senarai.";
118
+ Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST"] = "Alihkan item pertama dalam senarai.";
119
+ Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM"] = "Alihkan item pada posisi mengikut spesifikasi dalam senarai.";
120
+ Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST"] = "Alihkan item terakhir dalam senarai.";
121
+ Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM"] = "Alihkan item rawak dalam senarai.";
122
+ Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_END"] = "ke # dari akhir";
123
+ Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_START"] = "ke #";
124
+ Blockly.Msg["LISTS_GET_SUBLIST_END_LAST"] = "ke akhir";
125
+ Blockly.Msg["LISTS_GET_SUBLIST_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-a-sublist"; // untranslated
126
+ Blockly.Msg["LISTS_GET_SUBLIST_START_FIRST"] = "dapatkan sub-senarai daripada pertama";
127
+ Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_END"] = "dapatkan sub-senarai daripada # daripada terakhir";
128
+ Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_START"] = "dapatkan sub-senarai daripada #";
129
+ Blockly.Msg["LISTS_GET_SUBLIST_TAIL"] = ""; // untranslated
130
+ Blockly.Msg["LISTS_GET_SUBLIST_TOOLTIP"] = "Wujudkan salinan bahagian yang ditentukan dari senarai.";
131
+ Blockly.Msg["LISTS_INDEX_FROM_END_TOOLTIP"] = "%1 ialah item terakhir.";
132
+ Blockly.Msg["LISTS_INDEX_FROM_START_TOOLTIP"] = "%1 ialah item pertama.";
133
+ Blockly.Msg["LISTS_INDEX_OF_FIRST"] = "cari pertama item kejadian";
134
+ Blockly.Msg["LISTS_INDEX_OF_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#getting-items-from-a-list"; // untranslated
135
+ Blockly.Msg["LISTS_INDEX_OF_LAST"] = "cari kejadian akhir item";
136
+ Blockly.Msg["LISTS_INDEX_OF_TOOLTIP"] = "Menyatakan indeks kejadian pertama/terakhir item berkenaan dalam senarai. Menyatakan %1 jika item berkenaan tidak ditemui.";
137
+ Blockly.Msg["LISTS_INLIST"] = "dalam senarai";
138
+ Blockly.Msg["LISTS_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#is-empty"; // untranslated
139
+ Blockly.Msg["LISTS_ISEMPTY_TITLE"] = "%1 adalah kosong";
140
+ Blockly.Msg["LISTS_ISEMPTY_TOOLTIP"] = "Kembalikan benar jika senarai kosong.";
141
+ Blockly.Msg["LISTS_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#length-of"; // untranslated
142
+ Blockly.Msg["LISTS_LENGTH_TITLE"] = "panjang %1";
143
+ Blockly.Msg["LISTS_LENGTH_TOOLTIP"] = "Kembalikan panjang senarai";
144
+ Blockly.Msg["LISTS_REPEAT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated
145
+ Blockly.Msg["LISTS_REPEAT_TITLE"] = "wujudkan senarai dengan item %1 diulangi %2 kali";
146
+ Blockly.Msg["LISTS_REPEAT_TOOLTIP"] = "Wujudkan senarai yang terdiri daripada nilai berulang mengikut nombor yang ditentukan.";
147
+ Blockly.Msg["LISTS_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#reversing-a-list"; // untranslated
148
+ Blockly.Msg["LISTS_REVERSE_MESSAGE0"] = "reverse %1"; // untranslated
149
+ Blockly.Msg["LISTS_REVERSE_TOOLTIP"] = "Reverse a copy of a list."; // untranslated
150
+ Blockly.Msg["LISTS_SET_INDEX_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#in-list--set"; // untranslated
151
+ Blockly.Msg["LISTS_SET_INDEX_INPUT_TO"] = "sebagai";
152
+ Blockly.Msg["LISTS_SET_INDEX_INSERT"] = "masukkan pada";
153
+ Blockly.Msg["LISTS_SET_INDEX_SET"] = "set";
154
+ Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST"] = "Selit item pada permulaan senarai.";
155
+ Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FROM"] = "Masukkan item pada posisi yand ditentukan dalam senarai.";
156
+ Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_LAST"] = "Tambahkan item dalam senarai akhir.";
157
+ Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM"] = "Selit item secara rawak di dalam senarai.";
158
+ Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FIRST"] = "Set item pertama dalam senarai.";
159
+ Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FROM"] = "Masukkan item pada posisi yang ditentukan dalam senarai.";
160
+ Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_LAST"] = "Set item terakhir dalam senarai.";
161
+ Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_RANDOM"] = "Set item rawak dalam senarai.";
162
+ Blockly.Msg["LISTS_SORT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#sorting-a-list"; // untranslated
163
+ Blockly.Msg["LISTS_SORT_ORDER_ASCENDING"] = "ascending"; // untranslated
164
+ Blockly.Msg["LISTS_SORT_ORDER_DESCENDING"] = "descending"; // untranslated
165
+ Blockly.Msg["LISTS_SORT_TITLE"] = "sort %1 %2 %3"; // untranslated
166
+ Blockly.Msg["LISTS_SORT_TOOLTIP"] = "Sort a copy of a list."; // untranslated
167
+ Blockly.Msg["LISTS_SORT_TYPE_IGNORECASE"] = "alphabetic, ignore case"; // untranslated
168
+ Blockly.Msg["LISTS_SORT_TYPE_NUMERIC"] = "numeric"; // untranslated
169
+ Blockly.Msg["LISTS_SORT_TYPE_TEXT"] = "alphabetic"; // untranslated
170
+ Blockly.Msg["LISTS_SPLIT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#splitting-strings-and-joining-lists";
171
+ Blockly.Msg["LISTS_SPLIT_LIST_FROM_TEXT"] = "buat senarai dgn teks";
172
+ Blockly.Msg["LISTS_SPLIT_TEXT_FROM_LIST"] = "buat teks drpd senarai";
173
+ Blockly.Msg["LISTS_SPLIT_TOOLTIP_JOIN"] = "Cantumkan senarai teks menjadi satu teks, dipecahkan oleh delimiter.";
174
+ Blockly.Msg["LISTS_SPLIT_TOOLTIP_SPLIT"] = "Pecahkan teks kepada senarai teks, berpecah di setiap delimiter.";
175
+ Blockly.Msg["LISTS_SPLIT_WITH_DELIMITER"] = "dengan delimiter";
176
+ Blockly.Msg["LOGIC_BOOLEAN_FALSE"] = "palsu";
177
+ Blockly.Msg["LOGIC_BOOLEAN_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#values"; // untranslated
178
+ Blockly.Msg["LOGIC_BOOLEAN_TOOLTIP"] = "Kembalikan samada benar atau palsu.";
179
+ Blockly.Msg["LOGIC_BOOLEAN_TRUE"] = "benar";
180
+ Blockly.Msg["LOGIC_COMPARE_HELPURL"] = "https://id.wikipedia.org/wiki/Pertidaksamaan";
181
+ Blockly.Msg["LOGIC_COMPARE_TOOLTIP_EQ"] = "Kembali benar jika kedua-dua input benar antara satu sama lain.";
182
+ Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GT"] = "Kembali benar jika input pertama adalah lebih besar daripada input kedua.";
183
+ Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GTE"] = "Kembali benar jika input pertama adalah lebih besar daripada atau sama dengan input kedua.";
184
+ Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LT"] = "Kembali benar jika input pertama adalah lebih kecil daripada input kedua.";
185
+ Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LTE"] = "Kembali benar jika input pertama adalah lebih kecil daripada atau sama dengan input kedua.";
186
+ Blockly.Msg["LOGIC_COMPARE_TOOLTIP_NEQ"] = "Taip balik benar jika kedua-dua input tidak sama.";
187
+ Blockly.Msg["LOGIC_NEGATE_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#not"; // untranslated
188
+ Blockly.Msg["LOGIC_NEGATE_TITLE"] = "bukan %1";
189
+ Blockly.Msg["LOGIC_NEGATE_TOOLTIP"] = "'Benar' akan dibalas jika inputnya salah. 'Salah' akan dibalas jika inputnya benar.";
190
+ Blockly.Msg["LOGIC_NULL"] = "null";
191
+ Blockly.Msg["LOGIC_NULL_HELPURL"] = "https://en.wikipedia.org/wiki/Nullable_type"; // untranslated
192
+ Blockly.Msg["LOGIC_NULL_TOOLTIP"] = "Returns null.";
193
+ Blockly.Msg["LOGIC_OPERATION_AND"] = "dan";
194
+ Blockly.Msg["LOGIC_OPERATION_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#logical-operations"; // untranslated
195
+ Blockly.Msg["LOGIC_OPERATION_OR"] = "atau";
196
+ Blockly.Msg["LOGIC_OPERATION_TOOLTIP_AND"] = "Return true if both inputs are true.";
197
+ Blockly.Msg["LOGIC_OPERATION_TOOLTIP_OR"] = "Return true if at least one of the inputs is true.";
198
+ Blockly.Msg["LOGIC_TERNARY_CONDITION"] = "test";
199
+ Blockly.Msg["LOGIC_TERNARY_HELPURL"] = "https://en.wikipedia.org/wiki/%3F:"; // untranslated
200
+ Blockly.Msg["LOGIC_TERNARY_IF_FALSE"] = "Jika palsu";
201
+ Blockly.Msg["LOGIC_TERNARY_IF_TRUE"] = "Jika benar";
202
+ Blockly.Msg["LOGIC_TERNARY_TOOLTIP"] = "Check the condition in 'test'. If the condition is true, returns the 'if true' value; otherwise returns the 'if false' value.";
203
+ Blockly.Msg["MATH_ADDITION_SYMBOL"] = "+";
204
+ Blockly.Msg["MATH_ARITHMETIC_HELPURL"] = "https://ms.wikipedia.org/wiki/Aritmetik";
205
+ Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_ADD"] = "Kembalikan jumlah kedua-dua bilangan.";
206
+ Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_DIVIDE"] = "Taip balik hasil bahagi dua nombor tersebut.";
207
+ Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MINUS"] = "Taip balik hasil tolak dua nombor tersebut.";
208
+ Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MULTIPLY"] = "Taip balik hasil darab dua nombor tersebut.";
209
+ Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_POWER"] = "Return the first number raised to the power of the second number.";
210
+ Blockly.Msg["MATH_ATAN2_HELPURL"] = "https://en.wikipedia.org/wiki/Atan2"; // untranslated
211
+ Blockly.Msg["MATH_ATAN2_TITLE"] = "atan2 of X:%1 Y:%2"; // untranslated
212
+ Blockly.Msg["MATH_ATAN2_TOOLTIP"] = "Return the arctangent of point (X, Y) in degrees from -180 to 180."; // untranslated
213
+ Blockly.Msg["MATH_CHANGE_HELPURL"] = "https://id.wikipedia.org/wiki/Perjumlahan";
214
+ Blockly.Msg["MATH_CHANGE_TITLE"] = "perubahan %1 oleh %2";
215
+ Blockly.Msg["MATH_CHANGE_TOOLTIP"] = "Tambah nombor kepada pembolehubah '%1'.";
216
+ Blockly.Msg["MATH_CONSTANT_HELPURL"] = "https://ms.wikipedia.org/wiki/Pemalar_matematik";
217
+ Blockly.Msg["MATH_CONSTANT_TOOLTIP"] = "Return one of the common constants: π (3.141…), e (2.718…), φ (1.618…), sqrt(2) (1.414…), sqrt(½) (0.707…), or ∞ (infinity).";
218
+ Blockly.Msg["MATH_CONSTRAIN_HELPURL"] = "https://en.wikipedia.org/wiki/Clamping_(graphics)"; // untranslated
219
+ Blockly.Msg["MATH_CONSTRAIN_TITLE"] = "constrain %1 low %2 high %3";
220
+ Blockly.Msg["MATH_CONSTRAIN_TOOLTIP"] = "Constrain a number to be between the specified limits (inclusive).";
221
+ Blockly.Msg["MATH_DIVISION_SYMBOL"] = "÷";
222
+ Blockly.Msg["MATH_IS_DIVISIBLE_BY"] = "Boleh dibahagikan dengan";
223
+ Blockly.Msg["MATH_IS_EVEN"] = "Adalah genap";
224
+ Blockly.Msg["MATH_IS_NEGATIVE"] = "negatif";
225
+ Blockly.Msg["MATH_IS_ODD"] = "aneh";
226
+ Blockly.Msg["MATH_IS_POSITIVE"] = "adalah positif";
227
+ Blockly.Msg["MATH_IS_PRIME"] = "is prime";
228
+ Blockly.Msg["MATH_IS_TOOLTIP"] = "Check if a number is an even, odd, prime, whole, positive, negative, or if it is divisible by certain number. Returns true or false.";
229
+ Blockly.Msg["MATH_IS_WHOLE"] = "is whole";
230
+ Blockly.Msg["MATH_MODULO_HELPURL"] = "https://id.wikipedia.org/wiki/Operasi_modulus";
231
+ Blockly.Msg["MATH_MODULO_TITLE"] = "remainder of %1 ÷ %2";
232
+ Blockly.Msg["MATH_MODULO_TOOLTIP"] = "Taip balik baki yang didapat daripada pembahagian dua nombor tersebut.";
233
+ Blockly.Msg["MATH_MULTIPLICATION_SYMBOL"] = "×";
234
+ Blockly.Msg["MATH_NUMBER_HELPURL"] = "https://ms.wikipedia.org/wiki/Nombor";
235
+ Blockly.Msg["MATH_NUMBER_TOOLTIP"] = "Suatu nombor.";
236
+ Blockly.Msg["MATH_ONLIST_HELPURL"] = ""; // untranslated
237
+ Blockly.Msg["MATH_ONLIST_OPERATOR_AVERAGE"] = "purata daripada senarai";
238
+ Blockly.Msg["MATH_ONLIST_OPERATOR_MAX"] = "Max senarai";
239
+ Blockly.Msg["MATH_ONLIST_OPERATOR_MEDIAN"] = "Median senarai";
240
+ Blockly.Msg["MATH_ONLIST_OPERATOR_MIN"] = "min dalam senarai";
241
+ Blockly.Msg["MATH_ONLIST_OPERATOR_MODE"] = "jenis senarai";
242
+ Blockly.Msg["MATH_ONLIST_OPERATOR_RANDOM"] = "Item rawak daripada senarai";
243
+ Blockly.Msg["MATH_ONLIST_OPERATOR_STD_DEV"] = "sisihan piawai bagi senarai";
244
+ Blockly.Msg["MATH_ONLIST_OPERATOR_SUM"] = "Jumlah senarai";
245
+ Blockly.Msg["MATH_ONLIST_TOOLTIP_AVERAGE"] = "Kembalikan purata (min aritmetik) nilai-nilai angka di dalam senarai.";
246
+ Blockly.Msg["MATH_ONLIST_TOOLTIP_MAX"] = "Pulangkan jumlah terbesar dalam senarai.";
247
+ Blockly.Msg["MATH_ONLIST_TOOLTIP_MEDIAN"] = "Kembalikan nombor median dalam senarai.";
248
+ Blockly.Msg["MATH_ONLIST_TOOLTIP_MIN"] = "Kembalikan nombor terkecil dalam senarai.";
249
+ Blockly.Msg["MATH_ONLIST_TOOLTIP_MODE"] = "Kembali senarai item yang paling biasa dalam senarai.";
250
+ Blockly.Msg["MATH_ONLIST_TOOLTIP_RANDOM"] = "Kembalikan elemen rawak daripada senarai.";
251
+ Blockly.Msg["MATH_ONLIST_TOOLTIP_STD_DEV"] = "Kembali dengan sisihan piawai daripada senarai.";
252
+ Blockly.Msg["MATH_ONLIST_TOOLTIP_SUM"] = "Kembalikan jumlah semua nombor dalam senarai.";
253
+ Blockly.Msg["MATH_POWER_SYMBOL"] = "^";
254
+ Blockly.Msg["MATH_RANDOM_FLOAT_HELPURL"] = "https://en.wikipedia.org/wiki/Random_number_generation";
255
+ Blockly.Msg["MATH_RANDOM_FLOAT_TITLE_RANDOM"] = "pecahan rawak";
256
+ Blockly.Msg["MATH_RANDOM_FLOAT_TOOLTIP"] = "Kembali sebahagian kecil rawak antara 0.0 (inklusif) dan 1.0 (eksklusif).";
257
+ Blockly.Msg["MATH_RANDOM_INT_HELPURL"] = "https://en.wikipedia.org/wiki/Random_number_generation";
258
+ Blockly.Msg["MATH_RANDOM_INT_TITLE"] = "integer rawak dari %1ke %2";
259
+ Blockly.Msg["MATH_RANDOM_INT_TOOLTIP"] = "Kembalikan integer rawak diantara dua had yang ditentukan, inklusif.";
260
+ Blockly.Msg["MATH_ROUND_HELPURL"] = "https://en.wikipedia.org/wiki/Rounding";
261
+ Blockly.Msg["MATH_ROUND_OPERATOR_ROUND"] = "pusingan";
262
+ Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDDOWN"] = "Pusingan ke bawah";
263
+ Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDUP"] = "pusingan ke atas";
264
+ Blockly.Msg["MATH_ROUND_TOOLTIP"] = "Bulat nombor yang naik atau turun.";
265
+ Blockly.Msg["MATH_SINGLE_HELPURL"] = "https://ms.wikipedia.org/wiki/Punca_kuasa_dua";
266
+ Blockly.Msg["MATH_SINGLE_OP_ABSOLUTE"] = "mutlak";
267
+ Blockly.Msg["MATH_SINGLE_OP_ROOT"] = "Punca kuasa dua";
268
+ Blockly.Msg["MATH_SINGLE_TOOLTIP_ABS"] = "Kembalikan nilai mutlak suatu nombor.";
269
+ Blockly.Msg["MATH_SINGLE_TOOLTIP_EXP"] = "Kembalikan e kepada kuasa nombor.";
270
+ Blockly.Msg["MATH_SINGLE_TOOLTIP_LN"] = "Kembali dalam logaritma nombor asli.";
271
+ Blockly.Msg["MATH_SINGLE_TOOLTIP_LOG10"] = "Kembali logarithm 10 asas nombor.";
272
+ Blockly.Msg["MATH_SINGLE_TOOLTIP_NEG"] = "Kembalikan nombor yang songsang.";
273
+ Blockly.Msg["MATH_SINGLE_TOOLTIP_POW10"] = "Kembalikan 10 kepada kuasa nombor.";
274
+ Blockly.Msg["MATH_SINGLE_TOOLTIP_ROOT"] = "Kembalikan punca kuasa nombor.";
275
+ Blockly.Msg["MATH_SUBTRACTION_SYMBOL"] = "-";
276
+ Blockly.Msg["MATH_TRIG_ACOS"] = "acos";
277
+ Blockly.Msg["MATH_TRIG_ASIN"] = "asin";
278
+ Blockly.Msg["MATH_TRIG_ATAN"] = "atan";
279
+ Blockly.Msg["MATH_TRIG_COS"] = "cos";
280
+ Blockly.Msg["MATH_TRIG_HELPURL"] = "https://ms.wikipedia.org/wiki/Fungsi_trigonometri";
281
+ Blockly.Msg["MATH_TRIG_SIN"] = "sin";
282
+ Blockly.Msg["MATH_TRIG_TAN"] = "tan";
283
+ Blockly.Msg["MATH_TRIG_TOOLTIP_ACOS"] = "Kembali arccosine beberapa nombor.";
284
+ Blockly.Msg["MATH_TRIG_TOOLTIP_ASIN"] = "Kembalikan arcsince beberapa nombor.";
285
+ Blockly.Msg["MATH_TRIG_TOOLTIP_ATAN"] = "Kembalikan beberapa nombor arctangent.";
286
+ Blockly.Msg["MATH_TRIG_TOOLTIP_COS"] = "Kembalikan darjah kosinus (bukan radian).";
287
+ Blockly.Msg["MATH_TRIG_TOOLTIP_SIN"] = "Kembalikan darjah sine (bukan radian).";
288
+ Blockly.Msg["MATH_TRIG_TOOLTIP_TAN"] = "Kembalikan darjah tangen (bukan radian).";
289
+ Blockly.Msg["NEW_COLOUR_VARIABLE"] = "Create colour variable..."; // untranslated
290
+ Blockly.Msg["NEW_NUMBER_VARIABLE"] = "Create number variable..."; // untranslated
291
+ Blockly.Msg["NEW_STRING_VARIABLE"] = "Create string variable..."; // untranslated
292
+ Blockly.Msg["NEW_VARIABLE"] = "Pembolehubah baru...";
293
+ Blockly.Msg["NEW_VARIABLE_TITLE"] = "Nama pembolehubah baru:";
294
+ Blockly.Msg["NEW_VARIABLE_TYPE_TITLE"] = "New variable type:"; // untranslated
295
+ Blockly.Msg["ORDINAL_NUMBER_SUFFIX"] = ""; // untranslated
296
+ Blockly.Msg["PROCEDURES_ALLOW_STATEMENTS"] = "bolehkan kenyataan";
297
+ Blockly.Msg["PROCEDURES_BEFORE_PARAMS"] = "dengan:";
298
+ Blockly.Msg["PROCEDURES_CALLNORETURN_HELPURL"] = "https://ms.wikipedia.org/wiki/Fungsi";
299
+ Blockly.Msg["PROCEDURES_CALLNORETURN_TOOLTIP"] = "Run the user-defined function '%1'.";
300
+ Blockly.Msg["PROCEDURES_CALLRETURN_HELPURL"] = "https://ms.wikipedia.org/wiki/Fungsi";
301
+ Blockly.Msg["PROCEDURES_CALLRETURN_TOOLTIP"] = "Run the user-defined function '%1' and use its output.";
302
+ Blockly.Msg["PROCEDURES_CALL_BEFORE_PARAMS"] = "dengan:";
303
+ Blockly.Msg["PROCEDURES_CREATE_DO"] = "Hasilkan '%1'";
304
+ Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"] = "Terangkan fungsi ini...";
305
+ Blockly.Msg["PROCEDURES_DEFNORETURN_DO"] = ""; // untranslated
306
+ Blockly.Msg["PROCEDURES_DEFNORETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated
307
+ Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"] = "Buat sesuatu";
308
+ Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"] = "Untuk";
309
+ Blockly.Msg["PROCEDURES_DEFNORETURN_TOOLTIP"] = "Menghasilkan suatu fungsi tanpa output.";
310
+ Blockly.Msg["PROCEDURES_DEFRETURN_HELPURL"] = "https://en.wikipedia.org/wiki/Subroutine"; // untranslated
311
+ Blockly.Msg["PROCEDURES_DEFRETURN_RETURN"] = "kembali";
312
+ Blockly.Msg["PROCEDURES_DEFRETURN_TOOLTIP"] = "Mencipta satu fungsi dengan pengeluaran.";
313
+ Blockly.Msg["PROCEDURES_DEF_DUPLICATE_WARNING"] = "Amaran: Fungsi ini mempunyai parameter yang berganda.";
314
+ Blockly.Msg["PROCEDURES_HIGHLIGHT_DEF"] = "Serlahkan definisi fungsi";
315
+ Blockly.Msg["PROCEDURES_IFRETURN_HELPURL"] = "http://c2.com/cgi/wiki?GuardClause";
316
+ Blockly.Msg["PROCEDURES_IFRETURN_TOOLTIP"] = "If a value is true, then return a second value.";
317
+ Blockly.Msg["PROCEDURES_IFRETURN_WARNING"] = "Amaran: Blok ini hanya boleh digunakan dalam fungsi definisi.";
318
+ Blockly.Msg["PROCEDURES_MUTATORARG_TITLE"] = "Nama input:";
319
+ Blockly.Msg["PROCEDURES_MUTATORARG_TOOLTIP"] = "Tambah satu input pada fungsi.";
320
+ Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TITLE"] = "Input-input";
321
+ Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TOOLTIP"] = "Tambah, alih keluar atau susun semula input pada fungsi ini.";
322
+ Blockly.Msg["REDO"] = "Redo"; // untranslated
323
+ Blockly.Msg["REMOVE_COMMENT"] = "Padamkan Komen";
324
+ Blockly.Msg["RENAME_VARIABLE"] = "Tukar nama pembolehubah...";
325
+ Blockly.Msg["RENAME_VARIABLE_TITLE"] = "Tukar nama semua pembolehubah '%1' kepada:";
326
+ Blockly.Msg["TEXT_APPEND_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated
327
+ Blockly.Msg["TEXT_APPEND_TITLE"] = "to %1 append text %2"; // untranslated
328
+ Blockly.Msg["TEXT_APPEND_TOOLTIP"] = "Append some text to variable '%1'.";
329
+ Blockly.Msg["TEXT_CHANGECASE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#adjusting-text-case"; // untranslated
330
+ Blockly.Msg["TEXT_CHANGECASE_OPERATOR_LOWERCASE"] = "Kepada huruf kecil";
331
+ Blockly.Msg["TEXT_CHANGECASE_OPERATOR_TITLECASE"] = "to Title Case";
332
+ Blockly.Msg["TEXT_CHANGECASE_OPERATOR_UPPERCASE"] = "Kepada HURUF BESAR";
333
+ Blockly.Msg["TEXT_CHANGECASE_TOOLTIP"] = "Return a copy of the text in a different case.";
334
+ Blockly.Msg["TEXT_CHARAT_FIRST"] = "get first letter";
335
+ Blockly.Msg["TEXT_CHARAT_FROM_END"] = "get letter # from end";
336
+ Blockly.Msg["TEXT_CHARAT_FROM_START"] = "get letter #";
337
+ Blockly.Msg["TEXT_CHARAT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-text"; // untranslated
338
+ Blockly.Msg["TEXT_CHARAT_LAST"] = "Dapatkan abjad terakhir";
339
+ Blockly.Msg["TEXT_CHARAT_RANDOM"] = "Dapatkan abjad rawak";
340
+ Blockly.Msg["TEXT_CHARAT_TAIL"] = ""; // untranslated
341
+ Blockly.Msg["TEXT_CHARAT_TITLE"] = "in text %1 %2"; // untranslated
342
+ Blockly.Msg["TEXT_CHARAT_TOOLTIP"] = "Returns the letter at the specified position.";
343
+ Blockly.Msg["TEXT_COUNT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#counting-substrings"; // untranslated
344
+ Blockly.Msg["TEXT_COUNT_MESSAGE0"] = "count %1 in %2"; // untranslated
345
+ Blockly.Msg["TEXT_COUNT_TOOLTIP"] = "Count how many times some text occurs within some other text."; // untranslated
346
+ Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TOOLTIP"] = "Add an item to the text.";
347
+ Blockly.Msg["TEXT_CREATE_JOIN_TITLE_JOIN"] = "Sertai";
348
+ Blockly.Msg["TEXT_CREATE_JOIN_TOOLTIP"] = "Add, remove, or reorder sections to reconfigure this text block.";
349
+ Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_END"] = "to letter # from end";
350
+ Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_START"] = "to letter #";
351
+ Blockly.Msg["TEXT_GET_SUBSTRING_END_LAST"] = "untuk huruf terakhir";
352
+ Blockly.Msg["TEXT_GET_SUBSTRING_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text"; // untranslated
353
+ Blockly.Msg["TEXT_GET_SUBSTRING_INPUT_IN_TEXT"] = "dalam teks";
354
+ Blockly.Msg["TEXT_GET_SUBSTRING_START_FIRST"] = "get substring from first letter";
355
+ Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_END"] = "get substring from letter # from end";
356
+ Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_START"] = "get substring from letter #";
357
+ Blockly.Msg["TEXT_GET_SUBSTRING_TAIL"] = ""; // untranslated
358
+ Blockly.Msg["TEXT_GET_SUBSTRING_TOOLTIP"] = "Returns a specified portion of the text.";
359
+ Blockly.Msg["TEXT_INDEXOF_HELPURL"] = "https://github.com/google/blockly/wiki/Text#finding-text"; // untranslated
360
+ Blockly.Msg["TEXT_INDEXOF_OPERATOR_FIRST"] = "mencari kejadian pertama teks";
361
+ Blockly.Msg["TEXT_INDEXOF_OPERATOR_LAST"] = "mencari kejadian terakhir teks";
362
+ Blockly.Msg["TEXT_INDEXOF_TITLE"] = "dalam teks %1 %2 %3";
363
+ Blockly.Msg["TEXT_INDEXOF_TOOLTIP"] = "Kembalikan Indeks kejadian pertama/terakhir dari teks pertama ke dalam teks kedua. Kembalikan %1 Jika teks tidak ditemui.";
364
+ Blockly.Msg["TEXT_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Text#checking-for-empty-text"; // untranslated
365
+ Blockly.Msg["TEXT_ISEMPTY_TITLE"] = "%1 adalah kosong";
366
+ Blockly.Msg["TEXT_ISEMPTY_TOOLTIP"] = "Kembalikan benar jika teks yang disediakan adalah kosong.";
367
+ Blockly.Msg["TEXT_JOIN_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-creation"; // untranslated
368
+ Blockly.Msg["TEXT_JOIN_TITLE_CREATEWITH"] = "hasilkan teks dengan";
369
+ Blockly.Msg["TEXT_JOIN_TOOLTIP"] = "Hasilkan sebahagian teks dengan menghubungkan apa jua nombor item.";
370
+ Blockly.Msg["TEXT_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated
371
+ Blockly.Msg["TEXT_LENGTH_TITLE"] = "panjang %1";
372
+ Blockly.Msg["TEXT_LENGTH_TOOLTIP"] = "Kembalikan jumlah huruf (termasuk ruang) dalam teks yang disediakan.";
373
+ Blockly.Msg["TEXT_PRINT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#printing-text"; // untranslated
374
+ Blockly.Msg["TEXT_PRINT_TITLE"] = "cetak %1";
375
+ Blockly.Msg["TEXT_PRINT_TOOLTIP"] = "Cetak teks yang ditentukan, nombor atau nilai lain.";
376
+ Blockly.Msg["TEXT_PROMPT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#getting-input-from-the-user"; // untranslated
377
+ Blockly.Msg["TEXT_PROMPT_TOOLTIP_NUMBER"] = "Peringatan kepada pengguna untuk nombor.";
378
+ Blockly.Msg["TEXT_PROMPT_TOOLTIP_TEXT"] = "Peringatkan pengguna untuk sebahagian teks.";
379
+ Blockly.Msg["TEXT_PROMPT_TYPE_NUMBER"] = "Prom untuk nombor dengan mesej";
380
+ Blockly.Msg["TEXT_PROMPT_TYPE_TEXT"] = "Prom untuk teks dengan mesej";
381
+ Blockly.Msg["TEXT_REPLACE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#replacing-substrings"; // untranslated
382
+ Blockly.Msg["TEXT_REPLACE_MESSAGE0"] = "replace %1 with %2 in %3"; // untranslated
383
+ Blockly.Msg["TEXT_REPLACE_TOOLTIP"] = "Replace all occurances of some text within some other text."; // untranslated
384
+ Blockly.Msg["TEXT_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#reversing-text"; // untranslated
385
+ Blockly.Msg["TEXT_REVERSE_MESSAGE0"] = "reverse %1"; // untranslated
386
+ Blockly.Msg["TEXT_REVERSE_TOOLTIP"] = "Reverses the order of the characters in the text."; // untranslated
387
+ Blockly.Msg["TEXT_TEXT_HELPURL"] = "https://ms.wikipedia.org/wiki/Rentetan";
388
+ Blockly.Msg["TEXT_TEXT_TOOLTIP"] = "Huruf, perkataan, atau baris teks.";
389
+ Blockly.Msg["TEXT_TRIM_HELPURL"] = "https://github.com/google/blockly/wiki/Text#trimming-removing-spaces"; // untranslated
390
+ Blockly.Msg["TEXT_TRIM_OPERATOR_BOTH"] = "mengurangkan kawasan dari kedua-dua belah";
391
+ Blockly.Msg["TEXT_TRIM_OPERATOR_LEFT"] = "mengurangkan ruang dari sebelah kiri";
392
+ Blockly.Msg["TEXT_TRIM_OPERATOR_RIGHT"] = "mengurangkan kawasan dari sisi kanan";
393
+ Blockly.Msg["TEXT_TRIM_TOOLTIP"] = "Kembali salinan teks dengan ruang yang dikeluarkan daripada satu atau hujung kedua belah.";
394
+ Blockly.Msg["TODAY"] = "Hari ini";
395
+ Blockly.Msg["UNDO"] = "Undo"; // untranslated
396
+ Blockly.Msg["UNNAMED_KEY"] = "unnamed"; // untranslated
397
+ Blockly.Msg["VARIABLES_DEFAULT_NAME"] = "Perkara";
398
+ Blockly.Msg["VARIABLES_GET_CREATE_SET"] = "Hasilkan 'set %1'";
399
+ Blockly.Msg["VARIABLES_GET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#get"; // untranslated
400
+ Blockly.Msg["VARIABLES_GET_TOOLTIP"] = "Kembalikan nilai pemboleh ubah ini.";
401
+ Blockly.Msg["VARIABLES_SET"] = "set %1 ke %2";
402
+ Blockly.Msg["VARIABLES_SET_CREATE_GET"] = "Hasilkan 'set %1'";
403
+ Blockly.Msg["VARIABLES_SET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#set"; // untranslated
404
+ Blockly.Msg["VARIABLES_SET_TOOLTIP"] = "Set pembolehubah ini supaya sama dengan input.";
405
+ Blockly.Msg["VARIABLE_ALREADY_EXISTS"] = "A variable named '%1' already exists."; // untranslated
406
+ Blockly.Msg["VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE"] = "A variable named '%1' already exists for another type: '%2'."; // untranslated
407
+ Blockly.Msg["WORKSPACE_ARIA_LABEL"] = "Blockly Workspace"; // untranslated
408
+ Blockly.Msg["WORKSPACE_COMMENT_DEFAULT_TEXT"] = "Say something..."; // untranslated
409
+ Blockly.Msg["CONTROLS_FOREACH_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"];
410
+ Blockly.Msg["CONTROLS_FOR_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"];
411
+ Blockly.Msg["CONTROLS_IF_ELSEIF_TITLE_ELSEIF"] = Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"];
412
+ Blockly.Msg["CONTROLS_IF_ELSE_TITLE_ELSE"] = Blockly.Msg["CONTROLS_IF_MSG_ELSE"];
413
+ Blockly.Msg["CONTROLS_IF_IF_TITLE_IF"] = Blockly.Msg["CONTROLS_IF_MSG_IF"];
414
+ Blockly.Msg["CONTROLS_IF_MSG_THEN"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"];
415
+ Blockly.Msg["CONTROLS_WHILEUNTIL_INPUT_DO"] = Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"];
416
+ Blockly.Msg["LISTS_CREATE_WITH_ITEM_TITLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"];
417
+ Blockly.Msg["LISTS_GET_INDEX_HELPURL"] = Blockly.Msg["LISTS_INDEX_OF_HELPURL"];
418
+ Blockly.Msg["LISTS_GET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"];
419
+ Blockly.Msg["LISTS_GET_SUBLIST_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"];
420
+ Blockly.Msg["LISTS_INDEX_OF_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"];
421
+ Blockly.Msg["LISTS_SET_INDEX_INPUT_IN_LIST"] = Blockly.Msg["LISTS_INLIST"];
422
+ Blockly.Msg["MATH_CHANGE_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"];
423
+ Blockly.Msg["PROCEDURES_DEFRETURN_COMMENT"] = Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"];
424
+ Blockly.Msg["PROCEDURES_DEFRETURN_DO"] = Blockly.Msg["PROCEDURES_DEFNORETURN_DO"];
425
+ Blockly.Msg["PROCEDURES_DEFRETURN_PROCEDURE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"];
426
+ Blockly.Msg["PROCEDURES_DEFRETURN_TITLE"] = Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"];
427
+ Blockly.Msg["TEXT_APPEND_VARIABLE"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"];
428
+ Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TITLE_ITEM"] = Blockly.Msg["VARIABLES_DEFAULT_NAME"];
429
+
430
+ Blockly.Msg["MATH_HUE"] = "230";
431
+ Blockly.Msg["LOOPS_HUE"] = "120";
432
+ Blockly.Msg["LISTS_HUE"] = "260";
433
+ Blockly.Msg["LOGIC_HUE"] = "210";
434
+ Blockly.Msg["VARIABLES_HUE"] = "330";
435
+ Blockly.Msg["TEXTS_HUE"] = "160";
436
+ Blockly.Msg["PROCEDURES_HUE"] = "290";
437
+ Blockly.Msg["COLOUR_HUE"] = "20";
438
+ Blockly.Msg["VARIABLES_DYNAMIC_HUE"] = "310";
439
+ return Blockly.Msg;
440
+ }));