@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.
- package/CHANGELOG.md +6 -0
- package/auth/admin.js +8 -0
- package/locales/en.json +16 -1
- package/markup/admin.js +8 -3
- package/markup/blockly.js +4 -4
- package/package.json +9 -9
- package/public/blockly/blockly_compressed.js +2016 -0
- package/public/blockly/blockly_compressed.js.map +1 -0
- package/public/blockly/blocks_compressed.js +212 -0
- package/public/blockly/blocks_compressed.js.map +1 -0
- package/public/blockly/javascript_compressed.js +121 -0
- package/public/blockly/javascript_compressed.js.map +1 -0
- package/public/blockly/msg/ab.js +440 -0
- package/public/blockly/msg/ace.js +440 -0
- package/public/blockly/msg/af.js +440 -0
- package/public/blockly/msg/am.js +440 -0
- package/public/blockly/msg/ar.js +440 -0
- package/public/blockly/msg/ast.js +440 -0
- package/public/blockly/msg/az.js +440 -0
- package/public/blockly/msg/ba.js +440 -0
- package/public/blockly/msg/bcc.js +440 -0
- package/public/blockly/msg/be-tarask.js +440 -0
- package/public/blockly/msg/be.js +440 -0
- package/public/blockly/msg/bg.js +440 -0
- package/public/blockly/msg/bn.js +440 -0
- package/public/blockly/msg/br.js +440 -0
- package/public/blockly/msg/bs.js +440 -0
- package/public/blockly/msg/ca.js +440 -0
- package/public/blockly/msg/cdo.js +440 -0
- package/public/blockly/msg/cs.js +440 -0
- package/public/blockly/msg/da.js +440 -0
- package/public/blockly/msg/de.js +440 -0
- package/public/blockly/msg/diq.js +440 -0
- package/public/blockly/msg/dty.js +440 -0
- package/public/blockly/msg/ee.js +440 -0
- package/public/blockly/msg/el.js +440 -0
- package/public/blockly/msg/en-gb.js +440 -0
- package/public/blockly/msg/en.js +440 -0
- package/public/blockly/msg/eo.js +440 -0
- package/public/blockly/msg/es.js +440 -0
- package/public/blockly/msg/et.js +440 -0
- package/public/blockly/msg/eu.js +440 -0
- package/public/blockly/msg/fa.js +440 -0
- package/public/blockly/msg/fi.js +440 -0
- package/public/blockly/msg/fo.js +440 -0
- package/public/blockly/msg/fr.js +440 -0
- package/public/blockly/msg/frr.js +440 -0
- package/public/blockly/msg/gl.js +440 -0
- package/public/blockly/msg/gn.js +440 -0
- package/public/blockly/msg/gor.js +440 -0
- package/public/blockly/msg/ha.js +440 -0
- package/public/blockly/msg/hak.js +440 -0
- package/public/blockly/msg/he.js +440 -0
- package/public/blockly/msg/hi.js +440 -0
- package/public/blockly/msg/hr.js +440 -0
- package/public/blockly/msg/hrx.js +440 -0
- package/public/blockly/msg/hu.js +440 -0
- package/public/blockly/msg/hy.js +440 -0
- package/public/blockly/msg/ia.js +440 -0
- package/public/blockly/msg/id.js +440 -0
- package/public/blockly/msg/ig.js +440 -0
- package/public/blockly/msg/inh.js +440 -0
- package/public/blockly/msg/is.js +440 -0
- package/public/blockly/msg/it.js +440 -0
- package/public/blockly/msg/ja.js +440 -0
- package/public/blockly/msg/ka.js +440 -0
- package/public/blockly/msg/kab.js +440 -0
- package/public/blockly/msg/kbd-cyrl.js +440 -0
- package/public/blockly/msg/km.js +440 -0
- package/public/blockly/msg/kn.js +440 -0
- package/public/blockly/msg/ko.js +440 -0
- package/public/blockly/msg/ksh.js +440 -0
- package/public/blockly/msg/ku-latn.js +440 -0
- package/public/blockly/msg/ky.js +440 -0
- package/public/blockly/msg/la.js +440 -0
- package/public/blockly/msg/lb.js +440 -0
- package/public/blockly/msg/lki.js +440 -0
- package/public/blockly/msg/lo.js +440 -0
- package/public/blockly/msg/lrc.js +440 -0
- package/public/blockly/msg/lt.js +440 -0
- package/public/blockly/msg/lv.js +440 -0
- package/public/blockly/msg/mg.js +440 -0
- package/public/blockly/msg/mk.js +440 -0
- package/public/blockly/msg/ml.js +440 -0
- package/public/blockly/msg/mnw.js +440 -0
- package/public/blockly/msg/ms.js +440 -0
- package/public/blockly/msg/msg.d.ts +444 -0
- package/public/blockly/msg/my.js +440 -0
- package/public/blockly/msg/mzn.js +440 -0
- package/public/blockly/msg/nb.js +440 -0
- package/public/blockly/msg/ne.js +440 -0
- package/public/blockly/msg/nl.js +440 -0
- package/public/blockly/msg/oc.js +440 -0
- package/public/blockly/msg/olo.js +440 -0
- package/public/blockly/msg/pa.js +440 -0
- package/public/blockly/msg/pl.js +440 -0
- package/public/blockly/msg/pms.js +440 -0
- package/public/blockly/msg/ps.js +440 -0
- package/public/blockly/msg/pt-br.js +440 -0
- package/public/blockly/msg/pt.js +440 -0
- package/public/blockly/msg/ro.js +440 -0
- package/public/blockly/msg/ru.js +440 -0
- package/public/blockly/msg/sc.js +440 -0
- package/public/blockly/msg/sco.js +440 -0
- package/public/blockly/msg/sd.js +440 -0
- package/public/blockly/msg/shn.js +440 -0
- package/public/blockly/msg/si.js +440 -0
- package/public/blockly/msg/sk.js +440 -0
- package/public/blockly/msg/skr-arab.js +440 -0
- package/public/blockly/msg/sl.js +440 -0
- package/public/blockly/msg/smn.js +440 -0
- package/public/blockly/msg/sq.js +440 -0
- package/public/blockly/msg/sr-latn.js +440 -0
- package/public/blockly/msg/sr.js +440 -0
- package/public/blockly/msg/sv.js +440 -0
- package/public/blockly/msg/sw.js +440 -0
- package/public/blockly/msg/ta.js +440 -0
- package/public/blockly/msg/tcy.js +440 -0
- package/public/blockly/msg/te.js +440 -0
- package/public/blockly/msg/th.js +440 -0
- package/public/blockly/msg/ti.js +440 -0
- package/public/blockly/msg/tl.js +440 -0
- package/public/blockly/msg/tlh.js +440 -0
- package/public/blockly/msg/tr.js +440 -0
- package/public/blockly/msg/ug-arab.js +440 -0
- package/public/blockly/msg/uk.js +440 -0
- package/public/blockly/msg/ur.js +440 -0
- package/public/blockly/msg/uz.js +440 -0
- package/public/blockly/msg/vi.js +440 -0
- package/public/blockly/msg/xmf.js +440 -0
- package/public/blockly/msg/yo.js +440 -0
- package/public/blockly/msg/yue.js +440 -0
- package/public/blockly/msg/zgh.js +440 -0
- package/public/blockly/msg/zh-hans.js +440 -0
- package/public/blockly/msg/zh-hant.js +440 -0
- package/public/saltcorn-common.js +8 -1
- package/public/saltcorn.js +12 -0
- package/routes/actions.js +32 -25
- package/routes/admin.js +90 -63
- package/routes/common_lists.js +46 -24
- package/routes/fields.js +31 -9
- package/routes/list.js +17 -4
- package/routes/notifications.js +27 -20
- package/routes/pageedit.js +14 -13
- package/routes/plugins.js +0 -32
- package/routes/tables.js +173 -92
- package/routes/utils.js +27 -0
- package/routes/view.js +2 -1
- package/routes/viewedit.js +14 -13
- package/serve.js +52 -1
- package/tests/api.test.js +0 -18
- package/tests/plugins.test.js +2 -2
- 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"] = "加入註解";
|
|
21
|
+
Blockly.Msg["CANNOT_DELETE_VARIABLE_PROCEDURE"] = "無法刪除變數「%1」,因為這是功能「%2」定義的一部份內容";
|
|
22
|
+
Blockly.Msg["CHANGE_VALUE_TITLE"] = "修改值:";
|
|
23
|
+
Blockly.Msg["CLEAN_UP"] = "整理區塊";
|
|
24
|
+
Blockly.Msg["COLLAPSED_WARNINGS_WARNING"] = "收合含有警告的區塊。";
|
|
25
|
+
Blockly.Msg["COLLAPSE_ALL"] = "收合區塊";
|
|
26
|
+
Blockly.Msg["COLLAPSE_BLOCK"] = "收合區塊";
|
|
27
|
+
Blockly.Msg["COLOUR_BLEND_COLOUR1"] = "顏色 1";
|
|
28
|
+
Blockly.Msg["COLOUR_BLEND_COLOUR2"] = "顏色 2";
|
|
29
|
+
Blockly.Msg["COLOUR_BLEND_HELPURL"] = "https://meyerweb.com/eric/tools/color-blend/#:::rgbp"; // untranslated
|
|
30
|
+
Blockly.Msg["COLOUR_BLEND_RATIO"] = "比例";
|
|
31
|
+
Blockly.Msg["COLOUR_BLEND_TITLE"] = "混合";
|
|
32
|
+
Blockly.Msg["COLOUR_BLEND_TOOLTIP"] = "用一個給定的比率(0.0-1.0)混合兩種顏色。";
|
|
33
|
+
Blockly.Msg["COLOUR_PICKER_HELPURL"] = "https://zh.wikipedia.org/wiki/顏色";
|
|
34
|
+
Blockly.Msg["COLOUR_PICKER_TOOLTIP"] = "從調色板中選擇一種顏色。";
|
|
35
|
+
Blockly.Msg["COLOUR_RANDOM_HELPURL"] = "http://randomcolour.com"; // untranslated
|
|
36
|
+
Blockly.Msg["COLOUR_RANDOM_TITLE"] = "隨機顏色";
|
|
37
|
+
Blockly.Msg["COLOUR_RANDOM_TOOLTIP"] = "隨機選擇一種顏色。";
|
|
38
|
+
Blockly.Msg["COLOUR_RGB_BLUE"] = "藍";
|
|
39
|
+
Blockly.Msg["COLOUR_RGB_GREEN"] = "綠";
|
|
40
|
+
Blockly.Msg["COLOUR_RGB_HELPURL"] = "https://www.december.com/html/spec/colorpercompact.html"; // untranslated
|
|
41
|
+
Blockly.Msg["COLOUR_RGB_RED"] = "紅";
|
|
42
|
+
Blockly.Msg["COLOUR_RGB_TITLE"] = "顏色";
|
|
43
|
+
Blockly.Msg["COLOUR_RGB_TOOLTIP"] = "透過指定紅、綠、 藍色的值來建立一種顏色。所有的值必須介於 0 和 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"] = "中斷循環";
|
|
46
|
+
Blockly.Msg["CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE"] = "繼續下一個循環";
|
|
47
|
+
Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK"] = "中斷當前的循環。";
|
|
48
|
+
Blockly.Msg["CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE"] = "跳過這個循環的其餘步驟,並繼續下一次的循環。";
|
|
49
|
+
Blockly.Msg["CONTROLS_FLOW_STATEMENTS_WARNING"] = "警告:此區塊僅可用於循環內。";
|
|
50
|
+
Blockly.Msg["CONTROLS_FOREACH_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#for-each"; // untranslated
|
|
51
|
+
Blockly.Msg["CONTROLS_FOREACH_TITLE"] = "為列表 %2 裡的每一項 %1";
|
|
52
|
+
Blockly.Msg["CONTROLS_FOREACH_TOOLTIP"] = "遍歷每個清單中的項目,將變數「%1」設定到該項目中,然後執行某些陳述式。";
|
|
53
|
+
Blockly.Msg["CONTROLS_FOR_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#count-with"; // untranslated
|
|
54
|
+
Blockly.Msg["CONTROLS_FOR_TITLE"] = "循環計數 %1 從 %2 到 %3 每次增加 %4";
|
|
55
|
+
Blockly.Msg["CONTROLS_FOR_TOOLTIP"] = "從起始數到結尾數中取出變數「%1」的值,按指定的時間間隔,執行指定的區塊。";
|
|
56
|
+
Blockly.Msg["CONTROLS_IF_ELSEIF_TOOLTIP"] = "添加條件到「如果」積木。";
|
|
57
|
+
Blockly.Msg["CONTROLS_IF_ELSE_TOOLTIP"] = "加入一個最終、所有條件都執行的部份到「如果」區塊中。";
|
|
58
|
+
Blockly.Msg["CONTROLS_IF_HELPURL"] = "https://github.com/google/blockly/wiki/IfElse"; // untranslated
|
|
59
|
+
Blockly.Msg["CONTROLS_IF_IF_TOOLTIP"] = "添加、刪除或重新排列各部份以重新配置這個「如果」區塊。";
|
|
60
|
+
Blockly.Msg["CONTROLS_IF_MSG_ELSE"] = "否則";
|
|
61
|
+
Blockly.Msg["CONTROLS_IF_MSG_ELSEIF"] = "否則,如果";
|
|
62
|
+
Blockly.Msg["CONTROLS_IF_MSG_IF"] = "如果";
|
|
63
|
+
Blockly.Msg["CONTROLS_IF_TOOLTIP_1"] = "當值為 true 時,執行一些陳述式。";
|
|
64
|
+
Blockly.Msg["CONTROLS_IF_TOOLTIP_2"] = "當值為 true 時,執行第一個陳述式。否則,執行第二個陳述式。";
|
|
65
|
+
Blockly.Msg["CONTROLS_IF_TOOLTIP_3"] = "如果第一個值為 true,則執行第一個陳述式。否則,當第二個值為 true 時,則執行第二個陳述式。";
|
|
66
|
+
Blockly.Msg["CONTROLS_IF_TOOLTIP_4"] = "如果第一個值為 true,則執行第一個陳述式。否則當第二個值為 true 時,則執行第二個陳述式。如果前幾個敘述都不為 ture,則執行最後一個陳述式。";
|
|
67
|
+
Blockly.Msg["CONTROLS_REPEAT_HELPURL"] = "https://zh.wikipedia.org/wiki/For迴圈";
|
|
68
|
+
Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"] = "執行";
|
|
69
|
+
Blockly.Msg["CONTROLS_REPEAT_TITLE"] = "重複%1次";
|
|
70
|
+
Blockly.Msg["CONTROLS_REPEAT_TOOLTIP"] = "重複執行指定的陳述式多次。";
|
|
71
|
+
Blockly.Msg["CONTROLS_WHILEUNTIL_HELPURL"] = "https://github.com/google/blockly/wiki/Loops#repeat"; // untranslated
|
|
72
|
+
Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_UNTIL"] = "重複直到";
|
|
73
|
+
Blockly.Msg["CONTROLS_WHILEUNTIL_OPERATOR_WHILE"] = "重複,當";
|
|
74
|
+
Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL"] = "當值為 false 時,執行一些陳述式。";
|
|
75
|
+
Blockly.Msg["CONTROLS_WHILEUNTIL_TOOLTIP_WHILE"] = "當值為 true 時,執行一些陳述式。";
|
|
76
|
+
Blockly.Msg["DELETE_ALL_BLOCKS"] = "刪除全部 %1 個區塊?";
|
|
77
|
+
Blockly.Msg["DELETE_BLOCK"] = "刪除區塊";
|
|
78
|
+
Blockly.Msg["DELETE_VARIABLE"] = "刪除變數「%1」";
|
|
79
|
+
Blockly.Msg["DELETE_VARIABLE_CONFIRMATION"] = "刪除使用%1次的「%2」變數?";
|
|
80
|
+
Blockly.Msg["DELETE_X_BLOCKS"] = "刪除%1個積木";
|
|
81
|
+
Blockly.Msg["DIALOG_CANCEL"] = "取消";
|
|
82
|
+
Blockly.Msg["DIALOG_OK"] = "確定";
|
|
83
|
+
Blockly.Msg["DISABLE_BLOCK"] = "停用區塊";
|
|
84
|
+
Blockly.Msg["DUPLICATE_BLOCK"] = "重複";
|
|
85
|
+
Blockly.Msg["DUPLICATE_COMMENT"] = "複製註解";
|
|
86
|
+
Blockly.Msg["ENABLE_BLOCK"] = "啟用積木";
|
|
87
|
+
Blockly.Msg["EXPAND_ALL"] = "展開積木";
|
|
88
|
+
Blockly.Msg["EXPAND_BLOCK"] = "展開區塊";
|
|
89
|
+
Blockly.Msg["EXTERNAL_INPUTS"] = "外部輸入";
|
|
90
|
+
Blockly.Msg["HELP"] = "說明";
|
|
91
|
+
Blockly.Msg["INLINE_INPUTS"] = "單行輸入";
|
|
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"] = "建立空的清單";
|
|
94
|
+
Blockly.Msg["LISTS_CREATE_EMPTY_TOOLTIP"] = "返回一個長度(項目數量)為 0 的清單,不包含任何資料記錄";
|
|
95
|
+
Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TITLE_ADD"] = "清單";
|
|
96
|
+
Blockly.Msg["LISTS_CREATE_WITH_CONTAINER_TOOLTIP"] = "添加、刪除或重新排列各部份以重新配置這個清單區塊。";
|
|
97
|
+
Blockly.Msg["LISTS_CREATE_WITH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated
|
|
98
|
+
Blockly.Msg["LISTS_CREATE_WITH_INPUT_WITH"] = "使用這些值建立清單";
|
|
99
|
+
Blockly.Msg["LISTS_CREATE_WITH_ITEM_TOOLTIP"] = "添加一個項目到清單裡。";
|
|
100
|
+
Blockly.Msg["LISTS_CREATE_WITH_TOOLTIP"] = "建立一個具備任意數量項目的清單。";
|
|
101
|
+
Blockly.Msg["LISTS_GET_INDEX_FIRST"] = "第一筆";
|
|
102
|
+
Blockly.Msg["LISTS_GET_INDEX_FROM_END"] = "倒數第 # 筆";
|
|
103
|
+
Blockly.Msg["LISTS_GET_INDEX_FROM_START"] = "#"; // untranslated
|
|
104
|
+
Blockly.Msg["LISTS_GET_INDEX_GET"] = "取得";
|
|
105
|
+
Blockly.Msg["LISTS_GET_INDEX_GET_REMOVE"] = "取得並移除";
|
|
106
|
+
Blockly.Msg["LISTS_GET_INDEX_LAST"] = "最後一筆";
|
|
107
|
+
Blockly.Msg["LISTS_GET_INDEX_RANDOM"] = "隨機";
|
|
108
|
+
Blockly.Msg["LISTS_GET_INDEX_REMOVE"] = "移除";
|
|
109
|
+
Blockly.Msg["LISTS_GET_INDEX_TAIL"] = ""; // untranslated
|
|
110
|
+
Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FIRST"] = "返回清單中的第一個項目。";
|
|
111
|
+
Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_FROM"] = "返回在清單中指定位置的項目。";
|
|
112
|
+
Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_LAST"] = "返回清單中的最後一個項目。";
|
|
113
|
+
Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_RANDOM"] = "返回清單中隨機一個項目。";
|
|
114
|
+
Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST"] = "移除並返回清單中的第一個項目。";
|
|
115
|
+
Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM"] = "移除並返回清單中的指定位置的項目。";
|
|
116
|
+
Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST"] = "移除並返回清單中的最後一個項目。";
|
|
117
|
+
Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM"] = "移除並返回清單中的隨機項目。";
|
|
118
|
+
Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST"] = "移除清單中的第一個項目。";
|
|
119
|
+
Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM"] = "移除在清單中指定位置的項目。";
|
|
120
|
+
Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST"] = "移除清單中的最後一個項目。";
|
|
121
|
+
Blockly.Msg["LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM"] = "移除清單中隨機一個項目。";
|
|
122
|
+
Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_END"] = "到 # 倒數";
|
|
123
|
+
Blockly.Msg["LISTS_GET_SUBLIST_END_FROM_START"] = "到 #";
|
|
124
|
+
Blockly.Msg["LISTS_GET_SUBLIST_END_LAST"] = "到 最後面";
|
|
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"] = "取得子清單 從 最前面";
|
|
127
|
+
Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_END"] = "取得子清單 從 # 倒數";
|
|
128
|
+
Blockly.Msg["LISTS_GET_SUBLIST_START_FROM_START"] = "取得子清單 從 #";
|
|
129
|
+
Blockly.Msg["LISTS_GET_SUBLIST_TAIL"] = ""; // untranslated
|
|
130
|
+
Blockly.Msg["LISTS_GET_SUBLIST_TOOLTIP"] = "複製清單中指定的部分。";
|
|
131
|
+
Blockly.Msg["LISTS_INDEX_FROM_END_TOOLTIP"] = "%1 是最後一個項目。";
|
|
132
|
+
Blockly.Msg["LISTS_INDEX_FROM_START_TOOLTIP"] = "%1 是第一個項目。";
|
|
133
|
+
Blockly.Msg["LISTS_INDEX_OF_FIRST"] = "從 最前面 索引項目";
|
|
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"] = "從 最後面 索引項目";
|
|
136
|
+
Blockly.Msg["LISTS_INDEX_OF_TOOLTIP"] = "在清單中檢索是否有包含項目,如果有,返回從頭/倒數算起的索引值。如果沒有則返回 %1。";
|
|
137
|
+
Blockly.Msg["LISTS_INLIST"] = "自清單";
|
|
138
|
+
Blockly.Msg["LISTS_ISEMPTY_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#is-empty"; // untranslated
|
|
139
|
+
Blockly.Msg["LISTS_ISEMPTY_TITLE"] = "%1 值為空";
|
|
140
|
+
Blockly.Msg["LISTS_ISEMPTY_TOOLTIP"] = "如果該清單為空,則返回 true。";
|
|
141
|
+
Blockly.Msg["LISTS_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#length-of"; // untranslated
|
|
142
|
+
Blockly.Msg["LISTS_LENGTH_TITLE"] = "長度 %1";
|
|
143
|
+
Blockly.Msg["LISTS_LENGTH_TOOLTIP"] = "返回清單的長度(項目數)。";
|
|
144
|
+
Blockly.Msg["LISTS_REPEAT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#create-list-with"; // untranslated
|
|
145
|
+
Blockly.Msg["LISTS_REPEAT_TITLE"] = "建立清單使用項目 %1 重複 %2 次";
|
|
146
|
+
Blockly.Msg["LISTS_REPEAT_TOOLTIP"] = "建立一個清單,項目中包含指定重複次數的值。";
|
|
147
|
+
Blockly.Msg["LISTS_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#reversing-a-list";
|
|
148
|
+
Blockly.Msg["LISTS_REVERSE_MESSAGE0"] = "反轉%1";
|
|
149
|
+
Blockly.Msg["LISTS_REVERSE_TOOLTIP"] = "反轉清單的複製內容。";
|
|
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"] = "為";
|
|
152
|
+
Blockly.Msg["LISTS_SET_INDEX_INSERT"] = "添加";
|
|
153
|
+
Blockly.Msg["LISTS_SET_INDEX_SET"] = "設定";
|
|
154
|
+
Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST"] = "添加一個項目到清單中的第一個位置。";
|
|
155
|
+
Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_FROM"] = "添加一個項目到清單中的指定位置。";
|
|
156
|
+
Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_LAST"] = "添加一個項目到清單中的最後一個位置。";
|
|
157
|
+
Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM"] = "添加一個項目到清單中的隨機位置。";
|
|
158
|
+
Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FIRST"] = "設定清單中的第一個項目。";
|
|
159
|
+
Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_FROM"] = "設定清單中指定位置的項目。";
|
|
160
|
+
Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_LAST"] = "設定清單中的最後一個項目。";
|
|
161
|
+
Blockly.Msg["LISTS_SET_INDEX_TOOLTIP_SET_RANDOM"] = "設定清單中隨機一個項目。";
|
|
162
|
+
Blockly.Msg["LISTS_SORT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#sorting-a-list";
|
|
163
|
+
Blockly.Msg["LISTS_SORT_ORDER_ASCENDING"] = "升序";
|
|
164
|
+
Blockly.Msg["LISTS_SORT_ORDER_DESCENDING"] = "降序";
|
|
165
|
+
Blockly.Msg["LISTS_SORT_TITLE"] = "排列 %1 %2 %3";
|
|
166
|
+
Blockly.Msg["LISTS_SORT_TOOLTIP"] = "排序清單的複製內容。";
|
|
167
|
+
Blockly.Msg["LISTS_SORT_TYPE_IGNORECASE"] = "依字母排序,忽略大小寫";
|
|
168
|
+
Blockly.Msg["LISTS_SORT_TYPE_NUMERIC"] = "依數字";
|
|
169
|
+
Blockly.Msg["LISTS_SORT_TYPE_TEXT"] = "依字母";
|
|
170
|
+
Blockly.Msg["LISTS_SPLIT_HELPURL"] = "https://github.com/google/blockly/wiki/Lists#splitting-strings-and-joining-lists"; // untranslated
|
|
171
|
+
Blockly.Msg["LISTS_SPLIT_LIST_FROM_TEXT"] = "從文本製作清單";
|
|
172
|
+
Blockly.Msg["LISTS_SPLIT_TEXT_FROM_LIST"] = "從清單拆出文本";
|
|
173
|
+
Blockly.Msg["LISTS_SPLIT_TOOLTIP_JOIN"] = "串起清單項目成一個文本,並用分隔符號分開。";
|
|
174
|
+
Blockly.Msg["LISTS_SPLIT_TOOLTIP_SPLIT"] = "將文本變成清單項目,按分隔符號拆分。";
|
|
175
|
+
Blockly.Msg["LISTS_SPLIT_WITH_DELIMITER"] = "用分隔符";
|
|
176
|
+
Blockly.Msg["LOGIC_BOOLEAN_FALSE"] = "假";
|
|
177
|
+
Blockly.Msg["LOGIC_BOOLEAN_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#values"; // untranslated
|
|
178
|
+
Blockly.Msg["LOGIC_BOOLEAN_TOOLTIP"] = "返回真或假。";
|
|
179
|
+
Blockly.Msg["LOGIC_BOOLEAN_TRUE"] = "真";
|
|
180
|
+
Blockly.Msg["LOGIC_COMPARE_HELPURL"] = "https://zh.wikipedia.org/wiki/不等";
|
|
181
|
+
Blockly.Msg["LOGIC_COMPARE_TOOLTIP_EQ"] = "如果這兩個輸入區塊的結果相等,返回 true。";
|
|
182
|
+
Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GT"] = "如果第一個輸入結果大於第二個,返回 true。";
|
|
183
|
+
Blockly.Msg["LOGIC_COMPARE_TOOLTIP_GTE"] = "如果第一個輸入結果大於或等於第二個,返回 true。";
|
|
184
|
+
Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LT"] = "如果第一個輸入結果比第二個小,返回 true。";
|
|
185
|
+
Blockly.Msg["LOGIC_COMPARE_TOOLTIP_LTE"] = "如果第一個輸入結果小於或等於第二個,返回 true。";
|
|
186
|
+
Blockly.Msg["LOGIC_COMPARE_TOOLTIP_NEQ"] = "如果這兩個輸入區塊的結果不相等,返回 true。";
|
|
187
|
+
Blockly.Msg["LOGIC_NEGATE_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#not"; // untranslated
|
|
188
|
+
Blockly.Msg["LOGIC_NEGATE_TITLE"] = "%1 不成立";
|
|
189
|
+
Blockly.Msg["LOGIC_NEGATE_TOOLTIP"] = "如果輸入結果是 false,則返回 true。如果輸入結果是 true,則返回 false。";
|
|
190
|
+
Blockly.Msg["LOGIC_NULL"] = "空";
|
|
191
|
+
Blockly.Msg["LOGIC_NULL_HELPURL"] = "https://en.wikipedia.org/wiki/Nullable_type"; // untranslated
|
|
192
|
+
Blockly.Msg["LOGIC_NULL_TOOLTIP"] = "返回空值。";
|
|
193
|
+
Blockly.Msg["LOGIC_OPERATION_AND"] = "和";
|
|
194
|
+
Blockly.Msg["LOGIC_OPERATION_HELPURL"] = "https://github.com/google/blockly/wiki/Logic#logical-operations"; // untranslated
|
|
195
|
+
Blockly.Msg["LOGIC_OPERATION_OR"] = "或";
|
|
196
|
+
Blockly.Msg["LOGIC_OPERATION_TOOLTIP_AND"] = "如果兩個輸入結果都為 true,則返回 true。";
|
|
197
|
+
Blockly.Msg["LOGIC_OPERATION_TOOLTIP_OR"] = "如果至少一個輸入結果為 true,返回 true。";
|
|
198
|
+
Blockly.Msg["LOGIC_TERNARY_CONDITION"] = "測試";
|
|
199
|
+
Blockly.Msg["LOGIC_TERNARY_HELPURL"] = "https://zh.wikipedia.org/wiki/條件運算符";
|
|
200
|
+
Blockly.Msg["LOGIC_TERNARY_IF_FALSE"] = "如果為假";
|
|
201
|
+
Blockly.Msg["LOGIC_TERNARY_IF_TRUE"] = "如果為真";
|
|
202
|
+
Blockly.Msg["LOGIC_TERNARY_TOOLTIP"] = "檢查「測試」中的條件。如果條件為真,將返回「如果為真」的值;否則,返回「如果為假」的值。";
|
|
203
|
+
Blockly.Msg["MATH_ADDITION_SYMBOL"] = "+"; // untranslated
|
|
204
|
+
Blockly.Msg["MATH_ARITHMETIC_HELPURL"] = "https://zh.wikipedia.org/wiki/算術";
|
|
205
|
+
Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_ADD"] = "返回兩個數字的總和。";
|
|
206
|
+
Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_DIVIDE"] = "返回兩個數字的商。";
|
|
207
|
+
Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MINUS"] = "返回兩個數字的差。";
|
|
208
|
+
Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_MULTIPLY"] = "返回兩個數字的乘積。";
|
|
209
|
+
Blockly.Msg["MATH_ARITHMETIC_TOOLTIP_POWER"] = "返回第二個數字的指數的第一個數字。";
|
|
210
|
+
Blockly.Msg["MATH_ATAN2_HELPURL"] = "https://zh.wikipedia.org/wiki/Atan2";
|
|
211
|
+
Blockly.Msg["MATH_ATAN2_TITLE"] = "X:%1 Y:%2 的 Atan2";
|
|
212
|
+
Blockly.Msg["MATH_ATAN2_TOOLTIP"] = "回傳點(X,Y)從 -180 至 180 度的反正切值。";
|
|
213
|
+
Blockly.Msg["MATH_CHANGE_HELPURL"] = "https://zh.wikipedia.org/wiki/加法";
|
|
214
|
+
Blockly.Msg["MATH_CHANGE_TITLE"] = "修改 %1 自 %2";
|
|
215
|
+
Blockly.Msg["MATH_CHANGE_TOOLTIP"] = "將數字加到變數「%1」。";
|
|
216
|
+
Blockly.Msg["MATH_CONSTANT_HELPURL"] = "https://zh.wikipedia.org/wiki/數學常數";
|
|
217
|
+
Blockly.Msg["MATH_CONSTANT_TOOLTIP"] = "返回一個的常見常量: π (3.141......),e (2.718...)、 φ (1.618...)、 開方(2) (1.414......)、 開方(½) (0.707......) 或 ∞ (無窮大)。";
|
|
218
|
+
Blockly.Msg["MATH_CONSTRAIN_HELPURL"] = "https://en.wikipedia.org/wiki/Clamping_(graphics)"; // untranslated
|
|
219
|
+
Blockly.Msg["MATH_CONSTRAIN_TITLE"] = "限制數字 %1 介於(低)%2 到(高)%3";
|
|
220
|
+
Blockly.Msg["MATH_CONSTRAIN_TOOLTIP"] = "限制數字介於兩個指定的數字之間(包含)。";
|
|
221
|
+
Blockly.Msg["MATH_DIVISION_SYMBOL"] = "÷"; // untranslated
|
|
222
|
+
Blockly.Msg["MATH_IS_DIVISIBLE_BY"] = "可被整除";
|
|
223
|
+
Blockly.Msg["MATH_IS_EVEN"] = "是偶數";
|
|
224
|
+
Blockly.Msg["MATH_IS_NEGATIVE"] = "是負數";
|
|
225
|
+
Blockly.Msg["MATH_IS_ODD"] = "是奇數";
|
|
226
|
+
Blockly.Msg["MATH_IS_POSITIVE"] = "是正值";
|
|
227
|
+
Blockly.Msg["MATH_IS_PRIME"] = "是質數";
|
|
228
|
+
Blockly.Msg["MATH_IS_TOOLTIP"] = "如果數字是偶數,奇數,非負整數,正數、 負數,或如果它是可被某數字整除,則返回 true 或 false。";
|
|
229
|
+
Blockly.Msg["MATH_IS_WHOLE"] = "是整數";
|
|
230
|
+
Blockly.Msg["MATH_MODULO_HELPURL"] = "https://zh.wikipedia.org/wiki/模除";
|
|
231
|
+
Blockly.Msg["MATH_MODULO_TITLE"] = "%1 除以 %2 的餘數";
|
|
232
|
+
Blockly.Msg["MATH_MODULO_TOOLTIP"] = "回傳兩個數字相除的餘數。";
|
|
233
|
+
Blockly.Msg["MATH_MULTIPLICATION_SYMBOL"] = "×"; // untranslated
|
|
234
|
+
Blockly.Msg["MATH_NUMBER_HELPURL"] = "https://zh.wikipedia.org/wiki/數";
|
|
235
|
+
Blockly.Msg["MATH_NUMBER_TOOLTIP"] = "一個數字。";
|
|
236
|
+
Blockly.Msg["MATH_ONLIST_HELPURL"] = ""; // untranslated
|
|
237
|
+
Blockly.Msg["MATH_ONLIST_OPERATOR_AVERAGE"] = "平均數 自清單";
|
|
238
|
+
Blockly.Msg["MATH_ONLIST_OPERATOR_MAX"] = "最大值 自清單";
|
|
239
|
+
Blockly.Msg["MATH_ONLIST_OPERATOR_MEDIAN"] = "中位數 自清單";
|
|
240
|
+
Blockly.Msg["MATH_ONLIST_OPERATOR_MIN"] = "最小值 自清單";
|
|
241
|
+
Blockly.Msg["MATH_ONLIST_OPERATOR_MODE"] = "比較眾數 自清單";
|
|
242
|
+
Blockly.Msg["MATH_ONLIST_OPERATOR_RANDOM"] = "隨機抽取 自清單";
|
|
243
|
+
Blockly.Msg["MATH_ONLIST_OPERATOR_STD_DEV"] = "標準差 自清單";
|
|
244
|
+
Blockly.Msg["MATH_ONLIST_OPERATOR_SUM"] = "數字總和 自清單";
|
|
245
|
+
Blockly.Msg["MATH_ONLIST_TOOLTIP_AVERAGE"] = "返回清單中數值的平均值(算術平均值)。";
|
|
246
|
+
Blockly.Msg["MATH_ONLIST_TOOLTIP_MAX"] = "返回清單項目中最大的數字。";
|
|
247
|
+
Blockly.Msg["MATH_ONLIST_TOOLTIP_MEDIAN"] = "返回清單中數值的中位數。";
|
|
248
|
+
Blockly.Msg["MATH_ONLIST_TOOLTIP_MIN"] = "返回清單項目中最小的數字。";
|
|
249
|
+
Blockly.Msg["MATH_ONLIST_TOOLTIP_MODE"] = "返回一個清單中的最常見的項目。";
|
|
250
|
+
Blockly.Msg["MATH_ONLIST_TOOLTIP_RANDOM"] = "從清單中返回一個隨機的項目。";
|
|
251
|
+
Blockly.Msg["MATH_ONLIST_TOOLTIP_STD_DEV"] = "返回清單中數字的標準差。";
|
|
252
|
+
Blockly.Msg["MATH_ONLIST_TOOLTIP_SUM"] = "返回清單中的所有數字的總和。";
|
|
253
|
+
Blockly.Msg["MATH_POWER_SYMBOL"] = "^"; // untranslated
|
|
254
|
+
Blockly.Msg["MATH_RANDOM_FLOAT_HELPURL"] = "https://zh.wikipedia.org/wiki/隨機數生成器";
|
|
255
|
+
Blockly.Msg["MATH_RANDOM_FLOAT_TITLE_RANDOM"] = "隨機取分數";
|
|
256
|
+
Blockly.Msg["MATH_RANDOM_FLOAT_TOOLTIP"] = "在 0.0(包含)和 1.0(不包含)之間隨機取一個數。";
|
|
257
|
+
Blockly.Msg["MATH_RANDOM_INT_HELPURL"] = "https://zh.wikipedia.org/wiki/隨機數生成器";
|
|
258
|
+
Blockly.Msg["MATH_RANDOM_INT_TITLE"] = "隨機取數 %1 到 %2";
|
|
259
|
+
Blockly.Msg["MATH_RANDOM_INT_TOOLTIP"] = "在指定二個數之間隨機取一個數(包含)。";
|
|
260
|
+
Blockly.Msg["MATH_ROUND_HELPURL"] = "https://zh.wikipedia.org/wiki/數值簡化";
|
|
261
|
+
Blockly.Msg["MATH_ROUND_OPERATOR_ROUND"] = "四捨五入";
|
|
262
|
+
Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDDOWN"] = "無條件捨去";
|
|
263
|
+
Blockly.Msg["MATH_ROUND_OPERATOR_ROUNDUP"] = "無條件進位";
|
|
264
|
+
Blockly.Msg["MATH_ROUND_TOOLTIP"] = "將數字無條件進位或無條件捨去。";
|
|
265
|
+
Blockly.Msg["MATH_SINGLE_HELPURL"] = "https://zh.wikipedia.org/wiki/平方根";
|
|
266
|
+
Blockly.Msg["MATH_SINGLE_OP_ABSOLUTE"] = "絕對值";
|
|
267
|
+
Blockly.Msg["MATH_SINGLE_OP_ROOT"] = "開根號";
|
|
268
|
+
Blockly.Msg["MATH_SINGLE_TOOLTIP_ABS"] = "返回指定數字的絕對值。";
|
|
269
|
+
Blockly.Msg["MATH_SINGLE_TOOLTIP_EXP"] = "返回指定數字指數的e的冪次。";
|
|
270
|
+
Blockly.Msg["MATH_SINGLE_TOOLTIP_LN"] = "返回指定數字的自然對數。";
|
|
271
|
+
Blockly.Msg["MATH_SINGLE_TOOLTIP_LOG10"] = "返回指定數字的對數。";
|
|
272
|
+
Blockly.Msg["MATH_SINGLE_TOOLTIP_NEG"] = "返回指定數字的相反數。";
|
|
273
|
+
Blockly.Msg["MATH_SINGLE_TOOLTIP_POW10"] = "返回指定數字指數的10的冪次。";
|
|
274
|
+
Blockly.Msg["MATH_SINGLE_TOOLTIP_ROOT"] = "返回指定數字的平方根。";
|
|
275
|
+
Blockly.Msg["MATH_SUBTRACTION_SYMBOL"] = "-"; // untranslated
|
|
276
|
+
Blockly.Msg["MATH_TRIG_ACOS"] = "acos"; // untranslated
|
|
277
|
+
Blockly.Msg["MATH_TRIG_ASIN"] = "asin"; // untranslated
|
|
278
|
+
Blockly.Msg["MATH_TRIG_ATAN"] = "atan"; // untranslated
|
|
279
|
+
Blockly.Msg["MATH_TRIG_COS"] = "cos"; // untranslated
|
|
280
|
+
Blockly.Msg["MATH_TRIG_HELPURL"] = "https://zh.wikipedia.org/wiki/三角函數";
|
|
281
|
+
Blockly.Msg["MATH_TRIG_SIN"] = "sin"; // untranslated
|
|
282
|
+
Blockly.Msg["MATH_TRIG_TAN"] = "tan"; // untranslated
|
|
283
|
+
Blockly.Msg["MATH_TRIG_TOOLTIP_ACOS"] = "返回指定角度的反餘弦值(非弧度)。";
|
|
284
|
+
Blockly.Msg["MATH_TRIG_TOOLTIP_ASIN"] = "返回指定角度的反正弦值(非弧度)。";
|
|
285
|
+
Blockly.Msg["MATH_TRIG_TOOLTIP_ATAN"] = "返回指定角度的反正切值。";
|
|
286
|
+
Blockly.Msg["MATH_TRIG_TOOLTIP_COS"] = "返回指定角度的餘弦值(非弧度)。";
|
|
287
|
+
Blockly.Msg["MATH_TRIG_TOOLTIP_SIN"] = "返回指定角度的正弦值(非弧度)。";
|
|
288
|
+
Blockly.Msg["MATH_TRIG_TOOLTIP_TAN"] = "返回指定角度的正切值(非弧度)。";
|
|
289
|
+
Blockly.Msg["NEW_COLOUR_VARIABLE"] = "建立顏色變數…";
|
|
290
|
+
Blockly.Msg["NEW_NUMBER_VARIABLE"] = "建立數值變數……";
|
|
291
|
+
Blockly.Msg["NEW_STRING_VARIABLE"] = "建立字串變數……";
|
|
292
|
+
Blockly.Msg["NEW_VARIABLE"] = "建立變數…";
|
|
293
|
+
Blockly.Msg["NEW_VARIABLE_TITLE"] = "新變數名稱:";
|
|
294
|
+
Blockly.Msg["NEW_VARIABLE_TYPE_TITLE"] = "新變數類型:";
|
|
295
|
+
Blockly.Msg["ORDINAL_NUMBER_SUFFIX"] = ""; // untranslated
|
|
296
|
+
Blockly.Msg["PROCEDURES_ALLOW_STATEMENTS"] = "允許陳述式";
|
|
297
|
+
Blockly.Msg["PROCEDURES_BEFORE_PARAMS"] = "與:";
|
|
298
|
+
Blockly.Msg["PROCEDURES_CALLNORETURN_HELPURL"] = "https://zh.wikipedia.org/wiki/子程式";
|
|
299
|
+
Blockly.Msg["PROCEDURES_CALLNORETURN_TOOLTIP"] = "執行使用者定義的函式「%1」。";
|
|
300
|
+
Blockly.Msg["PROCEDURES_CALLRETURN_HELPURL"] = "https://zh.wikipedia.org/wiki/%E5%AD%90%E7%A8%8B%E5%BA%8F";
|
|
301
|
+
Blockly.Msg["PROCEDURES_CALLRETURN_TOOLTIP"] = "執行使用者定義的函式「%1」,並使用它的回傳值。";
|
|
302
|
+
Blockly.Msg["PROCEDURES_CALL_BEFORE_PARAMS"] = "與:";
|
|
303
|
+
Blockly.Msg["PROCEDURES_CREATE_DO"] = "建立「%1」";
|
|
304
|
+
Blockly.Msg["PROCEDURES_DEFNORETURN_COMMENT"] = "描述此函式...";
|
|
305
|
+
Blockly.Msg["PROCEDURES_DEFNORETURN_DO"] = ""; // untranslated
|
|
306
|
+
Blockly.Msg["PROCEDURES_DEFNORETURN_HELPURL"] = "https://zh.wikipedia.org/wiki/子程式";
|
|
307
|
+
Blockly.Msg["PROCEDURES_DEFNORETURN_PROCEDURE"] = "做些什麼";
|
|
308
|
+
Blockly.Msg["PROCEDURES_DEFNORETURN_TITLE"] = "到";
|
|
309
|
+
Blockly.Msg["PROCEDURES_DEFNORETURN_TOOLTIP"] = "創建一個無回傳值的函式。";
|
|
310
|
+
Blockly.Msg["PROCEDURES_DEFRETURN_HELPURL"] = "https://zh.wikipedia.org/wiki/子程式";
|
|
311
|
+
Blockly.Msg["PROCEDURES_DEFRETURN_RETURN"] = "返回";
|
|
312
|
+
Blockly.Msg["PROCEDURES_DEFRETURN_TOOLTIP"] = "創建一個有回傳值的的函式。";
|
|
313
|
+
Blockly.Msg["PROCEDURES_DEF_DUPLICATE_WARNING"] = "警告: 此函式中有重複的參數。";
|
|
314
|
+
Blockly.Msg["PROCEDURES_HIGHLIGHT_DEF"] = "反白顯示函式定義";
|
|
315
|
+
Blockly.Msg["PROCEDURES_IFRETURN_HELPURL"] = "http://c2.com/cgi/wiki?GuardClause"; // untranslated
|
|
316
|
+
Blockly.Msg["PROCEDURES_IFRETURN_TOOLTIP"] = "如果值為 true,則返回第二個值。";
|
|
317
|
+
Blockly.Msg["PROCEDURES_IFRETURN_WARNING"] = "警告:這個區塊只可以在定義函式時使用。";
|
|
318
|
+
Blockly.Msg["PROCEDURES_MUTATORARG_TITLE"] = "輸入名稱:";
|
|
319
|
+
Blockly.Msg["PROCEDURES_MUTATORARG_TOOLTIP"] = "添加一個輸入區塊到函式。";
|
|
320
|
+
Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TITLE"] = "輸入";
|
|
321
|
+
Blockly.Msg["PROCEDURES_MUTATORCONTAINER_TOOLTIP"] = "添加、刪除或重新排列此函式的輸入。";
|
|
322
|
+
Blockly.Msg["REDO"] = "重做";
|
|
323
|
+
Blockly.Msg["REMOVE_COMMENT"] = "移除註解";
|
|
324
|
+
Blockly.Msg["RENAME_VARIABLE"] = "重新命名變數...";
|
|
325
|
+
Blockly.Msg["RENAME_VARIABLE_TITLE"] = "將所有「%1」變數重新命名為:";
|
|
326
|
+
Blockly.Msg["TEXT_APPEND_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated
|
|
327
|
+
Blockly.Msg["TEXT_APPEND_TITLE"] = "至 %1 套用文字 %2";
|
|
328
|
+
Blockly.Msg["TEXT_APPEND_TOOLTIP"] = "添加一些文字到變數「%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"] = "轉成英文小寫";
|
|
331
|
+
Blockly.Msg["TEXT_CHANGECASE_OPERATOR_TITLECASE"] = "轉成英文首字大寫";
|
|
332
|
+
Blockly.Msg["TEXT_CHANGECASE_OPERATOR_UPPERCASE"] = "轉成英文大寫";
|
|
333
|
+
Blockly.Msg["TEXT_CHANGECASE_TOOLTIP"] = "使用不同的大小寫複製這段文字。";
|
|
334
|
+
Blockly.Msg["TEXT_CHARAT_FIRST"] = "取得 第一個字元";
|
|
335
|
+
Blockly.Msg["TEXT_CHARAT_FROM_END"] = "取得 倒數第 # 個字元";
|
|
336
|
+
Blockly.Msg["TEXT_CHARAT_FROM_START"] = "取得 字元 #";
|
|
337
|
+
Blockly.Msg["TEXT_CHARAT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#extracting-text"; // untranslated
|
|
338
|
+
Blockly.Msg["TEXT_CHARAT_LAST"] = "取得 最後一個字元";
|
|
339
|
+
Blockly.Msg["TEXT_CHARAT_RANDOM"] = "取得 任意字元";
|
|
340
|
+
Blockly.Msg["TEXT_CHARAT_TAIL"] = ""; // untranslated
|
|
341
|
+
Blockly.Msg["TEXT_CHARAT_TITLE"] = "在文字 %1 %2";
|
|
342
|
+
Blockly.Msg["TEXT_CHARAT_TOOLTIP"] = "返回位於指定位置的字元。";
|
|
343
|
+
Blockly.Msg["TEXT_COUNT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#counting-substrings";
|
|
344
|
+
Blockly.Msg["TEXT_COUNT_MESSAGE0"] = "在%2計算%1";
|
|
345
|
+
Blockly.Msg["TEXT_COUNT_TOOLTIP"] = "計算某些文字在內容裡的出現次數。";
|
|
346
|
+
Blockly.Msg["TEXT_CREATE_JOIN_ITEM_TOOLTIP"] = "添加一個項目到字串中。";
|
|
347
|
+
Blockly.Msg["TEXT_CREATE_JOIN_TITLE_JOIN"] = "加入";
|
|
348
|
+
Blockly.Msg["TEXT_CREATE_JOIN_TOOLTIP"] = "添加、刪除或重新排列各部份以重新配置這個文字區塊。";
|
|
349
|
+
Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_END"] = "到 倒數第 # 個字元";
|
|
350
|
+
Blockly.Msg["TEXT_GET_SUBSTRING_END_FROM_START"] = "到 字元 #";
|
|
351
|
+
Blockly.Msg["TEXT_GET_SUBSTRING_END_LAST"] = "到最後一個字元";
|
|
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"] = "在字串";
|
|
354
|
+
Blockly.Msg["TEXT_GET_SUBSTRING_START_FIRST"] = "取得 第一個字元";
|
|
355
|
+
Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_END"] = "取得 倒數第 # 個字元";
|
|
356
|
+
Blockly.Msg["TEXT_GET_SUBSTRING_START_FROM_START"] = "取得 字元 #";
|
|
357
|
+
Blockly.Msg["TEXT_GET_SUBSTRING_TAIL"] = ""; // untranslated
|
|
358
|
+
Blockly.Msg["TEXT_GET_SUBSTRING_TOOLTIP"] = "返回指定的部分文字。";
|
|
359
|
+
Blockly.Msg["TEXT_INDEXOF_HELPURL"] = "https://github.com/google/blockly/wiki/Text#finding-text"; // untranslated
|
|
360
|
+
Blockly.Msg["TEXT_INDEXOF_OPERATOR_FIRST"] = "從 最前面 索引字串";
|
|
361
|
+
Blockly.Msg["TEXT_INDEXOF_OPERATOR_LAST"] = "從 最後面 索引字串";
|
|
362
|
+
Blockly.Msg["TEXT_INDEXOF_TITLE"] = "在文字 %1 %2 %3";
|
|
363
|
+
Blockly.Msg["TEXT_INDEXOF_TOOLTIP"] = "在字串1中檢索是否有包含字串2,如果有,返回從頭/倒數算起的索引值。如果沒有則返回 %1。";
|
|
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 為空";
|
|
366
|
+
Blockly.Msg["TEXT_ISEMPTY_TOOLTIP"] = "如果提供的字串為空,則返回 true。";
|
|
367
|
+
Blockly.Msg["TEXT_JOIN_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-creation"; // untranslated
|
|
368
|
+
Blockly.Msg["TEXT_JOIN_TITLE_CREATEWITH"] = "字串組合";
|
|
369
|
+
Blockly.Msg["TEXT_JOIN_TOOLTIP"] = "通過連接任意數量的項目來建立一串文字。";
|
|
370
|
+
Blockly.Msg["TEXT_LENGTH_HELPURL"] = "https://github.com/google/blockly/wiki/Text#text-modification"; // untranslated
|
|
371
|
+
Blockly.Msg["TEXT_LENGTH_TITLE"] = "長度 %1";
|
|
372
|
+
Blockly.Msg["TEXT_LENGTH_TOOLTIP"] = "返回這串文字的字元數(包含空格)。";
|
|
373
|
+
Blockly.Msg["TEXT_PRINT_HELPURL"] = "https://github.com/google/blockly/wiki/Text#printing-text"; // untranslated
|
|
374
|
+
Blockly.Msg["TEXT_PRINT_TITLE"] = "輸出 %1";
|
|
375
|
+
Blockly.Msg["TEXT_PRINT_TOOLTIP"] = "輸出指定的文字、 數字或其他值。";
|
|
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"] = "輸入數字";
|
|
378
|
+
Blockly.Msg["TEXT_PROMPT_TOOLTIP_TEXT"] = "輸入文字";
|
|
379
|
+
Blockly.Msg["TEXT_PROMPT_TYPE_NUMBER"] = "輸入 數字 並顯示提示訊息";
|
|
380
|
+
Blockly.Msg["TEXT_PROMPT_TYPE_TEXT"] = "輸入 文字 並顯示提示訊息";
|
|
381
|
+
Blockly.Msg["TEXT_REPLACE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#replacing-substrings";
|
|
382
|
+
Blockly.Msg["TEXT_REPLACE_MESSAGE0"] = "在%3以%2取代%1";
|
|
383
|
+
Blockly.Msg["TEXT_REPLACE_TOOLTIP"] = "取代在內容裡的全部某些文字。";
|
|
384
|
+
Blockly.Msg["TEXT_REVERSE_HELPURL"] = "https://github.com/google/blockly/wiki/Text#reversing-text";
|
|
385
|
+
Blockly.Msg["TEXT_REVERSE_MESSAGE0"] = "反轉%1";
|
|
386
|
+
Blockly.Msg["TEXT_REVERSE_TOOLTIP"] = "反轉排序在文字裡的字元。";
|
|
387
|
+
Blockly.Msg["TEXT_TEXT_HELPURL"] = "https://zh.wikipedia.org/wiki/字串";
|
|
388
|
+
Blockly.Msg["TEXT_TEXT_TOOLTIP"] = "一個字元、一個單詞,或一串文字。";
|
|
389
|
+
Blockly.Msg["TEXT_TRIM_HELPURL"] = "https://github.com/google/blockly/wiki/Text#trimming-removing-spaces"; // untranslated
|
|
390
|
+
Blockly.Msg["TEXT_TRIM_OPERATOR_BOTH"] = "消除兩側空格";
|
|
391
|
+
Blockly.Msg["TEXT_TRIM_OPERATOR_LEFT"] = "消除左側空格";
|
|
392
|
+
Blockly.Msg["TEXT_TRIM_OPERATOR_RIGHT"] = "消除右側空格";
|
|
393
|
+
Blockly.Msg["TEXT_TRIM_TOOLTIP"] = "複製這段文字,同時刪除兩端多餘的空格。";
|
|
394
|
+
Blockly.Msg["TODAY"] = "今天";
|
|
395
|
+
Blockly.Msg["UNDO"] = "還原";
|
|
396
|
+
Blockly.Msg["UNNAMED_KEY"] = "未命名";
|
|
397
|
+
Blockly.Msg["VARIABLES_DEFAULT_NAME"] = "項目";
|
|
398
|
+
Blockly.Msg["VARIABLES_GET_CREATE_SET"] = "建立「賦值 %1」";
|
|
399
|
+
Blockly.Msg["VARIABLES_GET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#get"; // untranslated
|
|
400
|
+
Blockly.Msg["VARIABLES_GET_TOOLTIP"] = "返回此變數的值。";
|
|
401
|
+
Blockly.Msg["VARIABLES_SET"] = "賦值 %1 成 %2";
|
|
402
|
+
Blockly.Msg["VARIABLES_SET_CREATE_GET"] = "建立「取得 %1」";
|
|
403
|
+
Blockly.Msg["VARIABLES_SET_HELPURL"] = "https://github.com/google/blockly/wiki/Variables#set"; // untranslated
|
|
404
|
+
Blockly.Msg["VARIABLES_SET_TOOLTIP"] = "設定此變數,好和輸入結果相等。";
|
|
405
|
+
Blockly.Msg["VARIABLE_ALREADY_EXISTS"] = "已存在變數「%1」。";
|
|
406
|
+
Blockly.Msg["VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE"] = "已存在名為「%1」,且用於其它類型「%2」的變數。";
|
|
407
|
+
Blockly.Msg["WORKSPACE_ARIA_LABEL"] = "Blockly工作區";
|
|
408
|
+
Blockly.Msg["WORKSPACE_COMMENT_DEFAULT_TEXT"] = "來說些事情...";
|
|
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
|
+
}));
|
|
@@ -139,6 +139,9 @@ function valid_js_var_name(s) {
|
|
|
139
139
|
if (!s) return false;
|
|
140
140
|
return !!s.match(/^[a-zA-Z_$][a-zA-Z_$0-9]*$/);
|
|
141
141
|
}
|
|
142
|
+
|
|
143
|
+
const apply_showif_fetching_urls = new Set();
|
|
144
|
+
|
|
142
145
|
function apply_showif() {
|
|
143
146
|
const isNode = getIsNode();
|
|
144
147
|
$("[data-show-if]").each(function (ix, element) {
|
|
@@ -358,6 +361,7 @@ function apply_showif() {
|
|
|
358
361
|
...cache,
|
|
359
362
|
[qs]: "fetching",
|
|
360
363
|
});
|
|
364
|
+
apply_showif_fetching_urls.add(`/api/${dynwhere.table}?${qs}`);
|
|
361
365
|
$.ajax(`/api/${dynwhere.table}?${qs}`)
|
|
362
366
|
.then((resp) => {
|
|
363
367
|
if (resp.success) {
|
|
@@ -378,7 +382,10 @@ function apply_showif() {
|
|
|
378
382
|
});
|
|
379
383
|
}
|
|
380
384
|
})
|
|
381
|
-
.fail(checkNetworkError)
|
|
385
|
+
.fail(checkNetworkError)
|
|
386
|
+
.always(() => {
|
|
387
|
+
apply_showif_fetching_urls.delete(`/api/${dynwhere.table}?${qs}`);
|
|
388
|
+
});
|
|
382
389
|
}
|
|
383
390
|
});
|
|
384
391
|
$("[data-filter-table]").each(function (ix, element) {
|
package/public/saltcorn.js
CHANGED
|
@@ -459,6 +459,18 @@ function saveAndContinueIfValid(e, k, event) {
|
|
|
459
459
|
});
|
|
460
460
|
}
|
|
461
461
|
|
|
462
|
+
function saveAndContinueDelayed(e, k, event, retries = 1) {
|
|
463
|
+
//wait for applyShowIf
|
|
464
|
+
setTimeout(() => {
|
|
465
|
+
if (apply_showif_fetching_urls.size > 0 && retries < 5) {
|
|
466
|
+
setTimeout(() => {
|
|
467
|
+
saveAndContinueDelayed(e, k, event, retries + 1);
|
|
468
|
+
}, 200);
|
|
469
|
+
} else saveAndContinue(e, k, event);
|
|
470
|
+
});
|
|
471
|
+
return false;
|
|
472
|
+
}
|
|
473
|
+
|
|
462
474
|
function saveAndContinue(e, k, event) {
|
|
463
475
|
if (
|
|
464
476
|
event &&
|