@bobfrankston/rmfmail 1.2.274 → 1.2.277
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/.commitmsg +31 -0
- package/bin/build-tinymce.js +27 -0
- package/client/android-bootstrap.bundle.js +169 -0
- package/client/android-bootstrap.bundle.js.map +2 -2
- package/client/app.bundle.js +231 -23
- package/client/app.bundle.js.map +4 -4
- package/client/app.js +81 -1
- package/client/app.js.map +1 -1
- package/client/app.ts +75 -1
- package/client/components/invite-card.js +107 -0
- package/client/components/invite-card.js.map +1 -0
- package/client/components/invite-card.ts +119 -0
- package/client/components/message-viewer.js +42 -17
- package/client/components/message-viewer.js.map +1 -1
- package/client/components/message-viewer.ts +42 -16
- package/client/compose/compose.bundle.js +90 -2
- package/client/compose/compose.bundle.js.map +4 -4
- package/client/compose/compose.js +26 -1
- package/client/compose/compose.js.map +1 -1
- package/client/compose/compose.ts +22 -1
- package/client/compose/editor.js +12 -1
- package/client/compose/editor.js.map +1 -1
- package/client/compose/editor.ts +17 -2
- package/client/index.html +1 -0
- package/client/lib/rmf-tiny.js +3 -0
- package/client/lib/tinymce/langs/ar-SA.js +440 -0
- package/client/lib/tinymce/langs/ar.js +441 -0
- package/client/lib/tinymce/langs/az.js +440 -0
- package/client/lib/tinymce/langs/be.js +440 -0
- package/client/lib/tinymce/langs/bg-BG.js +440 -0
- package/client/lib/tinymce/langs/bn-BD.js +440 -0
- package/client/lib/tinymce/langs/bs.js +440 -0
- package/client/lib/tinymce/langs/ca.js +440 -0
- package/client/lib/tinymce/langs/cs.js +440 -0
- package/client/lib/tinymce/langs/cy.js +440 -0
- package/client/lib/tinymce/langs/da.js +440 -0
- package/client/lib/tinymce/langs/de.js +440 -0
- package/client/lib/tinymce/langs/el.js +440 -0
- package/client/lib/tinymce/langs/eo.js +440 -0
- package/client/lib/tinymce/langs/es-MX.js +440 -0
- package/client/lib/tinymce/langs/es.js +440 -0
- package/client/lib/tinymce/langs/et.js +440 -0
- package/client/lib/tinymce/langs/eu.js +440 -0
- package/client/lib/tinymce/langs/fa.js +441 -0
- package/client/lib/tinymce/langs/fi.js +440 -0
- package/client/lib/tinymce/langs/fr-FR.js +440 -0
- package/client/lib/tinymce/langs/gl.js +440 -0
- package/client/lib/tinymce/langs/he-IL.js +440 -0
- package/client/lib/tinymce/langs/hr.js +440 -0
- package/client/lib/tinymce/langs/hu-HU.js +440 -0
- package/client/lib/tinymce/langs/hy.js +440 -0
- package/client/lib/tinymce/langs/id.js +440 -0
- package/client/lib/tinymce/langs/index.json +63 -0
- package/client/lib/tinymce/langs/is-IS.js +440 -0
- package/client/lib/tinymce/langs/it.js +440 -0
- package/client/lib/tinymce/langs/ja.js +440 -0
- package/client/lib/tinymce/langs/ka-GE.js +440 -0
- package/client/lib/tinymce/langs/kab.js +440 -0
- package/client/lib/tinymce/langs/kk.js +440 -0
- package/client/lib/tinymce/langs/ko-KR.js +440 -0
- package/client/lib/tinymce/langs/lt.js +440 -0
- package/client/lib/tinymce/langs/lv.js +440 -0
- package/client/lib/tinymce/langs/nb-NO.js +440 -0
- package/client/lib/tinymce/langs/ne.js +440 -0
- package/client/lib/tinymce/langs/nl-BE.js +440 -0
- package/client/lib/tinymce/langs/nl.js +440 -0
- package/client/lib/tinymce/langs/oc.js +440 -0
- package/client/lib/tinymce/langs/pl.js +440 -0
- package/client/lib/tinymce/langs/pt-BR.js +440 -0
- package/client/lib/tinymce/langs/pt-PT.js +440 -0
- package/client/lib/tinymce/langs/ro.js +440 -0
- package/client/lib/tinymce/langs/ru.js +440 -0
- package/client/lib/tinymce/langs/sk.js +440 -0
- package/client/lib/tinymce/langs/sl-SI.js +440 -0
- package/client/lib/tinymce/langs/sr.js +440 -0
- package/client/lib/tinymce/langs/sv-SE.js +440 -0
- package/client/lib/tinymce/langs/ta.js +440 -0
- package/client/lib/tinymce/langs/tg.js +440 -0
- package/client/lib/tinymce/langs/th-TH.js +440 -0
- package/client/lib/tinymce/langs/tr.js +440 -0
- package/client/lib/tinymce/langs/ug.js +440 -0
- package/client/lib/tinymce/langs/uk.js +440 -0
- package/client/lib/tinymce/langs/vi.js +440 -0
- package/client/lib/tinymce/langs/zh-CN.js +440 -0
- package/client/lib/tinymce/langs/zh-HK.js +440 -0
- package/client/lib/tinymce/langs/zh-MO.js +440 -0
- package/client/lib/tinymce/langs/zh-TW.js +440 -0
- package/client/lib/tinymce-langs.js +96 -0
- package/client/lib/tinymce-langs.js.map +1 -0
- package/client/lib/tinymce-langs.ts +99 -0
- package/client/package.json +1 -1
- package/client/styles/components.css +48 -0
- package/docs/editor.md +29 -3
- package/docs/preferences.md +2 -1
- package/npmchanges.md +29 -0
- package/package.json +18 -15
- package/packages/mailx-imap/package-lock.json +2 -2
- package/packages/mailx-imap/package.json +2 -2
- package/packages/mailx-settings/package.json +1 -1
- package/packages/mailx-store/package.json +1 -1
- package/packages/mailx-store/store.d.ts +5 -0
- package/packages/mailx-store/store.d.ts.map +1 -1
- package/packages/mailx-store/store.js +21 -0
- package/packages/mailx-store/store.js.map +1 -1
- package/packages/mailx-store/store.ts +27 -0
- package/packages/mailx-types/index.d.ts +56 -0
- package/packages/mailx-types/index.d.ts.map +1 -1
- package/packages/mailx-types/index.js +187 -0
- package/packages/mailx-types/index.js.map +1 -1
- package/packages/mailx-types/index.ts +192 -0
- package/packages/mailx-types/package.json +1 -1
- /package/packages/mailx-imap/{node_modules.npmglobalize-stash-31304 → node_modules.npmglobalize-stash-48352}/.package-lock.json +0 -0
|
@@ -0,0 +1,440 @@
|
|
|
1
|
+
tinymce.addI18n("zh-TW", {
|
|
2
|
+
"#": "",
|
|
3
|
+
"Accessibility": "\u5354\u52a9\u5de5\u5177",
|
|
4
|
+
"Accordion": "\u624b\u98a8\u7434\u5f0f\u529f\u80fd\u8868",
|
|
5
|
+
"Accordion body...": "\u624b\u98a8\u7434\u5f0f\u529f\u80fd\u8868\u4e3b\u9ad4...",
|
|
6
|
+
"Accordion summary...": "\u624b\u98a8\u7434\u5f0f\u529f\u80fd\u8868\u6458\u8981...",
|
|
7
|
+
"Action": "\u52d5\u4f5c",
|
|
8
|
+
"Activity": "\u6d3b\u52d5",
|
|
9
|
+
"Address": "\u5730\u5740",
|
|
10
|
+
"Advanced": "\u9032\u968e",
|
|
11
|
+
"Align": "\u5c0d\u9f4a",
|
|
12
|
+
"Align center": "\u7f6e\u4e2d\u5c0d\u9f4a",
|
|
13
|
+
"Align left": "\u9760\u5de6\u5c0d\u9f4a",
|
|
14
|
+
"Align right": "\u9760\u53f3\u5c0d\u9f4a",
|
|
15
|
+
"Alignment": "\u5c0d\u9f4a",
|
|
16
|
+
"Alignment {0}": "",
|
|
17
|
+
"All": "\u5168\u90e8",
|
|
18
|
+
"Alternative description": "\u66ff\u4ee3\u63cf\u8ff0",
|
|
19
|
+
"Alternative source": "\u66ff\u4ee3\u4f86\u6e90",
|
|
20
|
+
"Alternative source URL": "\u66ff\u4ee3\u4f86\u6e90\u7db2\u5740",
|
|
21
|
+
"Anchor": "\u9328\u9ede",
|
|
22
|
+
"Anchor...": "\u9328\u9ede...",
|
|
23
|
+
"Anchors": "\u9328\u9ede",
|
|
24
|
+
"Animals and Nature": "\u52d5\u7269\u548c\u81ea\u7136",
|
|
25
|
+
"Arrows": "\u7bad\u982d",
|
|
26
|
+
"B": "\u85cd",
|
|
27
|
+
"Background color": "\u80cc\u666f\u984f\u8272",
|
|
28
|
+
"Background color menu": "",
|
|
29
|
+
"Background color {0}": "",
|
|
30
|
+
"Black": "\u9ed1\u8272",
|
|
31
|
+
"Block": "\u5340\u584a",
|
|
32
|
+
"Block {0}": "",
|
|
33
|
+
"Blockquote": "\u5f15\u6587\u5340\u584a",
|
|
34
|
+
"Blocks": "\u6bb5\u843d\u5340\u584a",
|
|
35
|
+
"Blue": "\u85cd\u8272",
|
|
36
|
+
"Blue channel": "",
|
|
37
|
+
"Body": "\u8868\u9ad4",
|
|
38
|
+
"Bold": "\u7c97\u9ad4",
|
|
39
|
+
"Border": "\u6846\u7dda",
|
|
40
|
+
"Border color": "\u6846\u7dda\u984f\u8272",
|
|
41
|
+
"Border style": "\u908a\u6846\u6a23\u5f0f",
|
|
42
|
+
"Border width": "\u908a\u6846\u5bec\u5ea6",
|
|
43
|
+
"Bottom": "\u4e0b\u65b9\u5c0d\u9f4a",
|
|
44
|
+
"Browse files": "\u700f\u89bd\u6a94\u6848",
|
|
45
|
+
"Browse for an image": "\u5f9e\u5716\u7247\u4e2d\u700f\u89bd",
|
|
46
|
+
"Browse links": "\u700f\u89bd\u9023\u7d50",
|
|
47
|
+
"Build with {0}": "",
|
|
48
|
+
"Bullet list": "\u7121\u5e8f\u5217\u8868",
|
|
49
|
+
"Cancel": "\u53d6\u6d88",
|
|
50
|
+
"Caption": "\u6a19\u984c",
|
|
51
|
+
"Cell": "\u5132\u5b58\u683c",
|
|
52
|
+
"Cell padding": "\u5132\u5b58\u683c\u5167\u908a\u8ddd",
|
|
53
|
+
"Cell properties": "\u5132\u5b58\u683c\u5c6c\u6027",
|
|
54
|
+
"Cell spacing": "\u5132\u5b58\u683c\u5916\u9593\u8ddd",
|
|
55
|
+
"Cell styles": "\u5132\u5b58\u683c\u6a23\u5f0f",
|
|
56
|
+
"Cell type": "\u5132\u5b58\u683c\u5225",
|
|
57
|
+
"Center": "\u7f6e\u4e2d",
|
|
58
|
+
"Characters": "\u5b57\u5143",
|
|
59
|
+
"Characters (no spaces)": "\u5b57\u5143(\u7121\u7a7a\u683c)",
|
|
60
|
+
"Circle": "\u7a7a\u5fc3\u5713",
|
|
61
|
+
"Class": "\u985e\u578b",
|
|
62
|
+
"Clear formatting": "\u6e05\u9664\u683c\u5f0f",
|
|
63
|
+
"Close": "\u95dc\u9589",
|
|
64
|
+
"Code": "\u7a0b\u5f0f\u78bc",
|
|
65
|
+
"Code sample...": "\u7a0b\u5f0f\u78bc\u7bc4\u4f8b...",
|
|
66
|
+
"Code view": "\u4ee3\u78bc\u8996\u5716",
|
|
67
|
+
"Color Picker": "\u9078\u8272\u5668",
|
|
68
|
+
"Color swatch": "\u984f\u8272\u6a23\u672c",
|
|
69
|
+
"Cols": "\u5217",
|
|
70
|
+
"Column": "\u6b04",
|
|
71
|
+
"Column clipboard actions": "\u5217\u526a\u8cbc\u677f\u64cd\u4f5c",
|
|
72
|
+
"Column group": "\u5217\u7d44",
|
|
73
|
+
"Column header": "\u5217\u6a19\u984c",
|
|
74
|
+
"Constrain proportions": "\u4fdd\u6301\u6bd4\u4f8b",
|
|
75
|
+
"Copy": "\u8907\u88fd",
|
|
76
|
+
"Copy column": "\u8907\u88fd\u5217",
|
|
77
|
+
"Copy row": "\u8907\u88fd\u884c",
|
|
78
|
+
"Could not find the specified string.": "\u672a\u627e\u5230\u641c\u7d22\u5167\u5bb9\u3002",
|
|
79
|
+
"Could not load emojis": "\u7121\u6cd5\u8f09\u5165Emojis",
|
|
80
|
+
"Count": "\u8a08\u6578",
|
|
81
|
+
"Currency": "\u8ca8\u5e63",
|
|
82
|
+
"Current window": "\u7576\u524d\u8996\u7a97",
|
|
83
|
+
"Custom color": "\u81ea\u8a02\u984f\u8272",
|
|
84
|
+
"Custom...": "\u81ea\u8a02......",
|
|
85
|
+
"Cut": "\u526a\u4e0b",
|
|
86
|
+
"Cut column": "\u526a\u4e0b\u5217",
|
|
87
|
+
"Cut row": "\u526a\u4e0b\u884c",
|
|
88
|
+
"Dark Blue": "\u6df1\u85cd\u8272",
|
|
89
|
+
"Dark Gray": "\u6df1\u7070\u8272",
|
|
90
|
+
"Dark Green": "\u6df1\u7da0\u8272",
|
|
91
|
+
"Dark Orange": "\u6df1\u6a59\u8272",
|
|
92
|
+
"Dark Purple": "\u6df1\u7d2b\u8272",
|
|
93
|
+
"Dark Red": "\u6df1\u7d05\u8272",
|
|
94
|
+
"Dark Turquoise": "\u6df1\u85cd\u7da0\u8272",
|
|
95
|
+
"Dark Yellow": "\u6697\u9ec3\u8272",
|
|
96
|
+
"Dashed": "\u865b\u7dda",
|
|
97
|
+
"Date/time": "\u65e5\u671f/\u6642\u9593",
|
|
98
|
+
"Decrease indent": "\u6e1b\u5c11\u7e2e\u6392",
|
|
99
|
+
"Default": "\u9810\u8a2d",
|
|
100
|
+
"Delete accordion": "\u522a\u9664\u624b\u98a8\u7434\u5f0f\u529f\u80fd\u8868",
|
|
101
|
+
"Delete column": "\u522a\u9664\u5217",
|
|
102
|
+
"Delete row": "\u522a\u9664\u884c",
|
|
103
|
+
"Delete table": "\u522a\u9664\u8868\u683c",
|
|
104
|
+
"Dimensions": "\u5c3a\u5bf8",
|
|
105
|
+
"Disc": "\u5be6\u5fc3\u5713",
|
|
106
|
+
"Div": "DIV",
|
|
107
|
+
"Document": "\u6587\u4ef6",
|
|
108
|
+
"Dotted": "\u865b\u7dda",
|
|
109
|
+
"Double": "\u96d9\u7cbe\u5ea6",
|
|
110
|
+
"Drop an image here": "\u62d6\u653e\u4e00\u5f35\u5716\u50cf\u81f3\u6b64",
|
|
111
|
+
"Dropped file type is not supported": "\u6b64\u6a94\u6848\u985e\u578b\u4e0d\u652f\u6301\u62d6\u653e",
|
|
112
|
+
"Edit": "\u7de8\u8f2f",
|
|
113
|
+
"Editor's height: {0} pixels": "",
|
|
114
|
+
"Editor's height: {0} pixels, Editor's width: {1} pixels": "",
|
|
115
|
+
"Embed": "\u5167\u5d4c",
|
|
116
|
+
"Emojis": "",
|
|
117
|
+
"Emojis...": "",
|
|
118
|
+
"Error": "\u932f\u8aa4",
|
|
119
|
+
"Error: Form submit field collision.": "\u932f\u8aa4\uff1a\u8868\u683c\u51fa\u73fe\u591a\u91cd\u63d0\u4ea4\u885d\u7a81\u3002",
|
|
120
|
+
"Error: No form element found.": "\u932f\u8aa4\uff1a\u627e\u4e0d\u5230\u8868\u683c\u5143\u7d20\u3002",
|
|
121
|
+
"Extended Latin": "\u62c9\u4e01\u8a9e\u64f4\u5145",
|
|
122
|
+
"Failed to initialize plugin: {0}": "\u7121\u6cd5\u521d\u59cb\u5316\u63d2\u4ef6 {0}",
|
|
123
|
+
"Failed to load plugin url: {0}": "\u7121\u6cd5\u8f09\u5165\u63d2\u4ef6\u93c8\u7d50 {0}",
|
|
124
|
+
"Failed to load plugin: {0} from url {1}": "\u7121\u6cd5\u5f9e {1} \u8f09\u5165\u63d2\u4ef6 {0}",
|
|
125
|
+
"Failed to upload image: {0}": "\u4e0a\u8f09\u5716\u7247\u5931\u6557\uff1a{0}",
|
|
126
|
+
"File": "\u6587\u4ef6",
|
|
127
|
+
"Find": "\u5c0b\u627e",
|
|
128
|
+
"Find (if searchreplace plugin activated)": "\u5c0b\u627e(\u5982\u679c\u5c0b\u627e\u53d6\u4ee3\u5916\u639b\u7a0b\u5f0f\u5df2\u555f\u52d5)",
|
|
129
|
+
"Find and Replace": "\u5c0b\u627e\u548c\u53d6\u4ee3",
|
|
130
|
+
"Find and replace...": "\u5c0b\u627e\u4e26\u53d6\u4ee3...",
|
|
131
|
+
"Find in selection": "\u5728\u9078\u5340\u4e2d\u5c0b\u627e",
|
|
132
|
+
"Find whole words only": "\u5168\u5b57\u5339\u914d",
|
|
133
|
+
"Flags": "\u65d7\u5e5f",
|
|
134
|
+
"Focus to contextual toolbar": "\u79fb\u52d5\u7126\u9ede\u5230\u4e0a\u4e0b\u6587\u83dc\u55ae",
|
|
135
|
+
"Focus to element path": "\u79fb\u52d5\u7126\u9ede\u5230\u5143\u7d20\u8def\u5f91",
|
|
136
|
+
"Focus to menubar": "\u79fb\u52d5\u7126\u9ede\u5230\u529f\u80fd\u8868\u5217",
|
|
137
|
+
"Focus to notification": "",
|
|
138
|
+
"Focus to toolbar": "\u79fb\u52d5\u7126\u9ede\u5230\u5de5\u5177\u5217",
|
|
139
|
+
"Font": "\u5b57\u578b",
|
|
140
|
+
"Font size {0}": "",
|
|
141
|
+
"Font sizes": "\u5b57\u9ad4\u5927\u5c0f",
|
|
142
|
+
"Font {0}": "",
|
|
143
|
+
"Fonts": "\u5b57\u9ad4",
|
|
144
|
+
"Food and Drink": "\u98df\u7269\u548c\u98f2\u54c1",
|
|
145
|
+
"Footer": "\u8868\u5c3e",
|
|
146
|
+
"Format": "\u683c\u5f0f",
|
|
147
|
+
"Format {0}": "",
|
|
148
|
+
"Formats": "\u683c\u5f0f",
|
|
149
|
+
"Fullscreen": "\u5168\u87a2\u5e55",
|
|
150
|
+
"G": "\u7da0",
|
|
151
|
+
"General": "\u4e00\u822c",
|
|
152
|
+
"Gray": "\u7070\u8272",
|
|
153
|
+
"Green": "\u7da0\u8272",
|
|
154
|
+
"Green channel": "",
|
|
155
|
+
"Groove": "\u51f9\u69fd",
|
|
156
|
+
"Handy Shortcuts": "\u5feb\u901f\u9375",
|
|
157
|
+
"Header": "\u8868\u982d",
|
|
158
|
+
"Header cell": "\u8868\u982d\u5132\u5b58\u683c",
|
|
159
|
+
"Heading 1": "\u6a19\u984c1",
|
|
160
|
+
"Heading 2": "\u6a19\u984c2",
|
|
161
|
+
"Heading 3": "\u6a19\u984c3",
|
|
162
|
+
"Heading 4": "\u6a19\u984c4",
|
|
163
|
+
"Heading 5": "\u6a19\u984c5",
|
|
164
|
+
"Heading 6": "\u6a19\u984c6",
|
|
165
|
+
"Headings": "\u6a19\u984c",
|
|
166
|
+
"Height": "\u9ad8\u5ea6",
|
|
167
|
+
"Height:": "",
|
|
168
|
+
"Help": "\u5e6b\u52a9",
|
|
169
|
+
"Hex color code": "\u5341\u516d\u9032\u4f4d\u984f\u8272\u4ee3\u78bc",
|
|
170
|
+
"Hexadecimal only, 000000 to FFFFFF": "",
|
|
171
|
+
"Hidden": "\u96b1\u85cf",
|
|
172
|
+
"Horizontal align": "\u6c34\u5e73\u5c0d\u9f4a",
|
|
173
|
+
"Horizontal line": "\u6c34\u6e96\u5206\u5272\u7dda",
|
|
174
|
+
"Horizontal space": "\u6c34\u5e73\u9593\u8ddd",
|
|
175
|
+
"ID": "",
|
|
176
|
+
"ID should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores.": "ID\u61c9\u8a72\u4ee5\u82f1\u6587\u5b57\u6bcd\u958b\u982d\uff0c\u5f8c\u9762\u53ea\u80fd\u6709\u82f1\u6587\u5b57\u6bcd\u3001\u6578\u4f4d\u3001\u7834\u6298\u865f\u3001\u9ede\u3001\u5192\u865f\u6216\u5e95\u7dda\u3002",
|
|
177
|
+
"Image is decorative": "\u9019\u662f\u88dd\u98fe\u5716\u50cf",
|
|
178
|
+
"Image list": "\u5716\u7247\u6e05\u55ae",
|
|
179
|
+
"Image title": "\u5716\u7247\u6a19\u984c",
|
|
180
|
+
"Image...": "\u5716\u7247...",
|
|
181
|
+
"ImageProxy HTTP error: Could not find Image Proxy": "\u5716\u7247\u670d\u52d9\uff1a\u627e\u4e0d\u5230\u670d\u52d9",
|
|
182
|
+
"ImageProxy HTTP error: Incorrect Image Proxy URL": "\u5716\u7247\u670d\u52d9\uff1a\u932f\u8aa4\u93c8\u7d50",
|
|
183
|
+
"ImageProxy HTTP error: Rejected request": "\u5716\u7247\u670d\u52d9\uff1a\u62d2\u7d55\u5b58\u53d6",
|
|
184
|
+
"ImageProxy HTTP error: Unknown ImageProxy error": "\u5716\u7247\u670d\u52d9\uff1a\u672a\u77e5\u932f\u8aa4",
|
|
185
|
+
"Increase indent": "\u589e\u52a0\u7e2e\u6392",
|
|
186
|
+
"Inline": "\u6587\u672c",
|
|
187
|
+
"Insert": "\u63d2\u5165",
|
|
188
|
+
"Insert Template": "\u63d2\u5165\u7bc4\u672c",
|
|
189
|
+
"Insert accordion": "\u63d2\u5165\u624b\u98a8\u7434\u5f0f\u529f\u80fd\u8868",
|
|
190
|
+
"Insert column after": "\u5728\u53f3\u5074\u63d2\u5165\u5217",
|
|
191
|
+
"Insert column before": "\u5728\u5de6\u5074\u63d2\u5165\u5217",
|
|
192
|
+
"Insert date/time": "\u63d2\u5165\u65e5\u671f/\u6642\u9593",
|
|
193
|
+
"Insert date/time menu": "",
|
|
194
|
+
"Insert image": "\u63d2\u5165\u5716\u7247",
|
|
195
|
+
"Insert link (if link plugin activated)": "\u63d2\u5165\u9023\u7d50 (\u5982\u679c\u9023\u7d50\u5916\u639b\u7a0b\u5f0f\u5df2\u555f\u52d5)",
|
|
196
|
+
"Insert row after": "\u5728\u4e0b\u65b9\u63d2\u5165\u884c",
|
|
197
|
+
"Insert row before": "\u5728\u4e0a\u65b9\u63d2\u5165\u884c",
|
|
198
|
+
"Insert table": "\u63d2\u5165\u8868\u683c",
|
|
199
|
+
"Insert template...": "\u63d2\u5165\u7bc4\u672c...",
|
|
200
|
+
"Insert video": "\u63d2\u5165\u5f71\u7247",
|
|
201
|
+
"Insert/Edit code sample": "\u63d2\u5165/\u7de8\u8f2f \u7a0b\u5f0f\u78bc\u7bc4\u4f8b",
|
|
202
|
+
"Insert/edit image": "\u63d2\u5165/\u7de8\u8f2f\u5716\u7247",
|
|
203
|
+
"Insert/edit link": "\u63d2\u5165/\u7de8\u8f2f\u9023\u7d50",
|
|
204
|
+
"Insert/edit media": "\u63d2\u5165/\u7de8\u8f2f\u5a92\u9ad4",
|
|
205
|
+
"Insert/edit video": "\u63d2\u5165/\u7de8\u8f2f\u5f71\u7247",
|
|
206
|
+
"Inset": "\u5d4c\u5165",
|
|
207
|
+
"Invalid hex color code: {0}": "\u7121\u6548\u7684\u984f\u8272\u78bc\uff1a{0}",
|
|
208
|
+
"Invalid input": "\u7121\u6548\u8f38\u5165",
|
|
209
|
+
"Italic": "\u659c\u9ad4",
|
|
210
|
+
"Justify": "\u5de6\u53f3\u5c0d\u9f4a",
|
|
211
|
+
"Keyboard Navigation": "\u9375\u76e4\u6307\u5f15",
|
|
212
|
+
"Language": "\u8a9e\u8a00",
|
|
213
|
+
"Learn more...": "\u4e86\u89e3\u66f4\u591a...",
|
|
214
|
+
"Left": "\u5de6",
|
|
215
|
+
"Left to right": "\u7531\u5de6\u5230\u53f3",
|
|
216
|
+
"Light Blue": "\u6dfa\u85cd\u8272",
|
|
217
|
+
"Light Gray": "\u6dfa\u7070\u8272",
|
|
218
|
+
"Light Green": "\u6dfa\u7da0\u8272",
|
|
219
|
+
"Light Purple": "\u6dfa\u7d2b\u8272",
|
|
220
|
+
"Light Red": "\u6dfa\u7d05\u8272",
|
|
221
|
+
"Light Yellow": "\u6dfa\u9ec3\u8272",
|
|
222
|
+
"Line height": "\u884c\u9ad8",
|
|
223
|
+
"Link": "",
|
|
224
|
+
"Link list": "\u9023\u7d50\u6e05\u55ae",
|
|
225
|
+
"Link...": "\u9023\u7d50...",
|
|
226
|
+
"List Properties": "\u6e05\u55ae\u5c6c\u6027",
|
|
227
|
+
"List properties...": "\u6a19\u984c\u5b57\u9ad4\u5c6c\u6027",
|
|
228
|
+
"Loading emojis...": "\u6b63\u5728\u8f09\u5165Emojis...",
|
|
229
|
+
"Loading...": "\u8f09\u5165\u4e2d...",
|
|
230
|
+
"Lower Alpha": "\u5c0f\u5beb\u82f1\u6587\u5b57\u6bcd",
|
|
231
|
+
"Lower Greek": "\u5c0f\u5beb\u5e0c\u81d8\u5b57\u6bcd",
|
|
232
|
+
"Lower Roman": "\u5c0f\u5beb\u7f85\u99ac\u6578\u5b57",
|
|
233
|
+
"Match case": "\u5927\u5c0f\u5beb\u5339\u914d",
|
|
234
|
+
"Mathematical": "\u6578\u5b78",
|
|
235
|
+
"Media poster (Image URL)": "\u5c01\u9762(\u5716\u7247\u4f4d\u5740)",
|
|
236
|
+
"Media...": "\u591a\u5a92\u9ad4...",
|
|
237
|
+
"Medium Blue": "\u4e2d\u85cd\u8272",
|
|
238
|
+
"Medium Gray": "\u4e2d\u7070\u8272",
|
|
239
|
+
"Medium Purple": "\u4e2d\u7d2b\u8272",
|
|
240
|
+
"Merge cells": "\u5408\u4f75\u5132\u5b58\u683c",
|
|
241
|
+
"Middle": "\u7f6e\u4e2d\u5c0d\u9f4a",
|
|
242
|
+
"Midnight Blue": "\u6df1\u85cd\u8272",
|
|
243
|
+
"More...": "\u66f4\u591a...",
|
|
244
|
+
"Name": "\u540d\u7a31",
|
|
245
|
+
"Navy Blue": "\u6d77\u8ecd\u85cd",
|
|
246
|
+
"New document": "\u65b0\u589e\u6587\u4ef6",
|
|
247
|
+
"New window": "\u65b0\u8996\u7a97",
|
|
248
|
+
"Next": "\u4e0b\u4e00\u500b",
|
|
249
|
+
"No": "\u5426",
|
|
250
|
+
"No alignment": "\u4e0d\u5c0d\u9f4a",
|
|
251
|
+
"No color": "\u7121",
|
|
252
|
+
"Nonbreaking space": "\u4e0d\u5206\u884c\u7a7a\u683c",
|
|
253
|
+
"None": "\u7121",
|
|
254
|
+
"Numbered list": "\u6578\u5b57\u6e05\u55ae",
|
|
255
|
+
"Numbers only, 0 to 255": "",
|
|
256
|
+
"OR": "\u6216",
|
|
257
|
+
"Objects": "\u7269\u4ef6",
|
|
258
|
+
"Ok": "\u78ba\u5b9a",
|
|
259
|
+
"Open help dialog": "\u6253\u958b\u5e6b\u52a9\u5c0d\u8a71\u65b9\u584a",
|
|
260
|
+
"Open link": "\u6253\u958b\u9023\u7d50",
|
|
261
|
+
"Open link in...": "\u9023\u7d50\u6253\u958b\u4f4d\u7f6e...",
|
|
262
|
+
"Open popup menu for split buttons": "\u6253\u958b\u5f48\u51fa\u5f0f\u529f\u80fd\u8868\uff0c\u7528\u65bc\u62c6\u5206\u6309\u9215",
|
|
263
|
+
"Orange": "\u6a59\u8272",
|
|
264
|
+
"Outset": "\u5916\u7f6e",
|
|
265
|
+
"Page break": "\u5206\u9801\u7b26",
|
|
266
|
+
"Paragraph": "\u6bb5\u843d",
|
|
267
|
+
"Paste": "\u8cbc\u4e0a",
|
|
268
|
+
"Paste as text": "\u4ee5\u7d14\u6587\u5b57\u8cbc\u4e0a",
|
|
269
|
+
"Paste column after": "\u8cbc\u4e0a\u5f8c\u9762\u7684\u5217",
|
|
270
|
+
"Paste column before": "\u8cbc\u4e0a\u6b64\u5217\u524d",
|
|
271
|
+
"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "\u7576\u524d\u70ba\u7d14\u6587\u5b57\u8cbc\u4e0a\u6a21\u5f0f\uff0c\u518d\u6b21\u9ede\u64ca\u53ef\u4ee5\u56de\u5230\u666e\u901a\u8cbc\u4e0a\u6a21\u5f0f\u3002",
|
|
272
|
+
"Paste or type a link": "\u8cbc\u4e0a\u6216\u8f38\u5165\u9023\u7d50",
|
|
273
|
+
"Paste row after": "\u8cbc\u4e0a\u884c\u5230\u4e0b\u65b9",
|
|
274
|
+
"Paste row before": "\u8cbc\u4e0a\u884c\u5230\u4e0a\u65b9",
|
|
275
|
+
"Paste your embed code below:": "\u8acb\u5c07\u60a8\u7684\u5d4c\u5165\u5f0f\u7a0b\u5f0f\u78bc\u8cbc\u5728\u4e0b\u65b9\uff1a",
|
|
276
|
+
"People": "\u4eba\u985e",
|
|
277
|
+
"Plugins": "\u5916\u639b\u7a0b\u5f0f",
|
|
278
|
+
"Plugins installed ({0}):": "\u5df2\u5b89\u88dd\u5916\u639b\u7a0b\u5f0f ({0}):",
|
|
279
|
+
"Powered by {0}": "\u7531{0}\u9a45\u52d5",
|
|
280
|
+
"Pre": "\u524d\u8a00",
|
|
281
|
+
"Preferences": "\u9996\u9078\u9805",
|
|
282
|
+
"Preformatted": "\u9810\u5148\u683c\u5f0f\u5316\u7684",
|
|
283
|
+
"Premium plugins:": "\u4ed8\u8cbb\u5916\u639b\u7a0b\u5f0f\uff1a",
|
|
284
|
+
"Press the Up and Down arrow keys to resize the editor.": "\u6309\u5411\u4e0a\u548c\u5411\u4e0b\u65b9\u5411\u9375\u4ee5\u8abf\u6574\u7de8\u8f2f\u5668\u5927\u5c0f\u3002",
|
|
285
|
+
"Press the arrow keys to resize the editor.": "\u6309\u65b9\u5411\u9375\u4ee5\u8abf\u6574\u7de8\u8f2f\u5668\u5927\u5c0f\u3002",
|
|
286
|
+
"Press {0} for help": "\u6309 {0} \u6253\u958b\u8aaa\u660e\u8996\u7a97",
|
|
287
|
+
"Preview": "\u9810\u89bd",
|
|
288
|
+
"Previous": "\u4e0a\u4e00\u500b",
|
|
289
|
+
"Print": "\u5217\u5370",
|
|
290
|
+
"Print...": "\u5217\u5370...",
|
|
291
|
+
"Purple": "\u7d2b\u8272",
|
|
292
|
+
"Quotations": "\u5f15\u7528",
|
|
293
|
+
"R": "\u7d05",
|
|
294
|
+
"Range 0 to 255": "\u7bc4\u570d0\u81f3255",
|
|
295
|
+
"Red": "\u7d05\u8272",
|
|
296
|
+
"Red channel": "",
|
|
297
|
+
"Redo": "\u91cd\u505a",
|
|
298
|
+
"Remove": "\u79fb\u9664",
|
|
299
|
+
"Remove color": "\u79fb\u9664\u984f\u8272",
|
|
300
|
+
"Remove link": "\u79fb\u9664\u9023\u7d50",
|
|
301
|
+
"Replace": "\u53d6\u4ee3",
|
|
302
|
+
"Replace all": "\u53d6\u4ee3\u5168\u90e8",
|
|
303
|
+
"Replace with": "\u53d6\u4ee3\u70ba",
|
|
304
|
+
"Resize": "\u8abf\u6574\u5927\u5c0f",
|
|
305
|
+
"Restore last draft": "\u6062\u5fa9\u4e0a\u6b21\u7684\u8349\u7a3f",
|
|
306
|
+
"Reveal or hide additional toolbar items": "\u986f\u793a\u6216\u96b1\u85cf\u5176\u4ed6\u5de5\u5177\u5217\u9078\u9805",
|
|
307
|
+
"Rich Text Area": "\u5bcc\u6587\u672c\u5340\u57df",
|
|
308
|
+
"Rich Text Area. Press ALT-0 for help.": "\u7de8\u8f2f\u5340\u3002\u6309Alt+0\u9375\u6253\u958b\u8aaa\u660e\u8996\u7a97\u3002",
|
|
309
|
+
"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "\u7de8\u8f2f\u5340\u3002\u6309ALT-F9\u6253\u958b\u529f\u80fd\u8868\uff0c\u6309ALT-F10\u6253\u958b\u5de5\u5177\u5217\uff0c\u6309ALT-0\u6253\u958b\u8aaa\u660e\u8996\u7a97",
|
|
310
|
+
"Ridge": "\u6d77\u810a\u5ea7",
|
|
311
|
+
"Right": "\u53f3",
|
|
312
|
+
"Right to left": "\u7531\u53f3\u5230\u5de6",
|
|
313
|
+
"Row": "\u884c",
|
|
314
|
+
"Row clipboard actions": "\u884c\u526a\u8cbc\u677f\u64cd\u4f5c",
|
|
315
|
+
"Row group": "\u884c\u7d44",
|
|
316
|
+
"Row header": "\u884c\u982d",
|
|
317
|
+
"Row properties": "\u884c\u5c6c\u6027",
|
|
318
|
+
"Row type": "\u884c\u985e\u578b",
|
|
319
|
+
"Rows": "\u884c\u6578",
|
|
320
|
+
"Save": "\u5132\u5b58",
|
|
321
|
+
"Save (if save plugin activated)": "\u5132\u5b58(\u5982\u679c\u5132\u5b58\u5916\u639b\u7a0b\u5f0f\u5df2\u555f\u52d5)",
|
|
322
|
+
"Scope": "\u7bc4\u570d",
|
|
323
|
+
"Search": "\u641c\u7d22",
|
|
324
|
+
"Select all": "\u5168\u9078",
|
|
325
|
+
"Select the {0} element": "",
|
|
326
|
+
"Select...": "\u9078\u64c7...",
|
|
327
|
+
"Selection": "\u9078\u64c7",
|
|
328
|
+
"Shortcut": "\u6377\u5f91",
|
|
329
|
+
"Show blocks": "\u986f\u793a\u5340\u584a\u908a\u6846",
|
|
330
|
+
"Show caption": "\u986f\u793a\u6a19\u984c",
|
|
331
|
+
"Show invisible characters": "\u986f\u793a\u4e0d\u53ef\u898b\u5b57\u5143",
|
|
332
|
+
"Size": "\u5b57\u578b\u5927\u5c0f",
|
|
333
|
+
"Solid": "\u5be6\u7dda",
|
|
334
|
+
"Source": "\u6e90",
|
|
335
|
+
"Source code": "\u539f\u59cb\u7a0b\u5f0f\u78bc",
|
|
336
|
+
"Special Character": "\u7279\u6b8a\u5b57\u5143",
|
|
337
|
+
"Special character...": "\u7279\u6b8a\u5b57\u5143...",
|
|
338
|
+
"Split cell": "\u62c6\u5206\u5132\u5b58\u683c",
|
|
339
|
+
"Square": "\u5be6\u5fc3\u65b9\u584a",
|
|
340
|
+
"Start list at number": "\u4ee5\u6578\u5b57\u958b\u59cb\u6e05\u55ae",
|
|
341
|
+
"Strikethrough": "\u522a\u9664\u7dda",
|
|
342
|
+
"Style": "\u6a23\u5f0f",
|
|
343
|
+
"Subscript": "\u4e0b\u6a19",
|
|
344
|
+
"Superscript": "\u4e0a\u6a19",
|
|
345
|
+
"Switch to or from fullscreen mode": "\u5207\u63db\u5168\u87a2\u5e55\u6a21\u5f0f",
|
|
346
|
+
"Symbols": "\u7b26\u865f",
|
|
347
|
+
"System Font": "\u7cfb\u7d71\u5b57\u9ad4",
|
|
348
|
+
"Table": "\u8868\u683c",
|
|
349
|
+
"Table caption": "\u8868\u683c\u6a19\u984c",
|
|
350
|
+
"Table properties": "\u8868\u683c\u5c6c\u6027",
|
|
351
|
+
"Table styles": "\u8868\u683c\u6a23\u5f0f",
|
|
352
|
+
"Template": "\u7bc4\u672c",
|
|
353
|
+
"Templates": "\u7bc4\u672c",
|
|
354
|
+
"Text": "\u6587\u5b57",
|
|
355
|
+
"Text color": "\u6587\u5b57\u984f\u8272",
|
|
356
|
+
"Text color menu": "",
|
|
357
|
+
"Text color {0}": "",
|
|
358
|
+
"Text to display": "\u8981\u986f\u793a\u7684\u6587\u672c",
|
|
359
|
+
"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "\u60a8\u8f38\u5165\u7684 URL \u4f3c\u4e4e\u662f\u4e00\u500b\u96fb\u90f5\u5730\u5740\u3002\u8981\u52a0\u4e0a\u6240\u9700\u7684 mailto:// \u9996\u78bc\u55ce\uff1f",
|
|
360
|
+
"The URL you entered seems to be an external link. Do you want to add the required http:// prefix?": "\u60a8\u8f38\u5165\u7684 URL \u4f3c\u4e4e\u662f\u4e00\u500b\u5916\u90e8\u9023\u7d50\u3002\u8981\u52a0\u4e0a\u6240\u9700\u7684 http:// \u9996\u78bc\u55ce\uff1f",
|
|
361
|
+
"The URL you entered seems to be an external link. Do you want to add the required https:// prefix?": "\u60a8\u8f38\u5165\u7684 URL \u4f3c\u4e4e\u662f\u4e00\u500b\u5916\u90e8\u9023\u7d50\u3002\u8981\u52a0\u4e0a\u6240\u9700\u7684 https:// \u9996\u78bc\u55ce\uff1f",
|
|
362
|
+
"Title": "\u6a19\u984c",
|
|
363
|
+
"To open the popup, press Shift+Enter": "\u6309Shitf+Enter\u9375\u6253\u958b\u5c0d\u8a71\u65b9\u584a",
|
|
364
|
+
"Toggle accordion": "\u5207\u63db\u624b\u98a8\u7434\u5f0f\u529f\u80fd\u8868",
|
|
365
|
+
"Tools": "\u5de5\u5177",
|
|
366
|
+
"Top": "\u4e0a\u65b9\u5c0d\u9f4a",
|
|
367
|
+
"Travel and Places": "\u65c5\u904a\u548c\u5730\u9ede",
|
|
368
|
+
"Turquoise": "\u9752\u7da0\u8272",
|
|
369
|
+
"Underline": "\u5e95\u7dda",
|
|
370
|
+
"Undo": "\u5fa9\u539f",
|
|
371
|
+
"Upload": "\u4e0a\u50b3",
|
|
372
|
+
"Uploading image": "\u4e0a\u50b3\u5716\u7247",
|
|
373
|
+
"Upper Alpha": "\u5927\u5beb\u82f1\u6587\u5b57\u6bcd",
|
|
374
|
+
"Upper Roman": "\u5927\u5beb\u7f85\u99ac\u6578\u5b57",
|
|
375
|
+
"Url": "\u7db2\u5740",
|
|
376
|
+
"Use arrow keys to navigate.": "",
|
|
377
|
+
"User Defined": "\u81ea\u8a02",
|
|
378
|
+
"Valid": "\u6709\u6548",
|
|
379
|
+
"Version": "\u7248\u672c",
|
|
380
|
+
"Vertical align": "\u5782\u76f4\u5c0d\u9f4a",
|
|
381
|
+
"Vertical space": "\u5782\u76f4\u9593\u8ddd",
|
|
382
|
+
"View": "\u67e5\u770b",
|
|
383
|
+
"Visual aids": "\u683c\u7dda",
|
|
384
|
+
"Warn": "\u8b66\u544a",
|
|
385
|
+
"White": "\u767d\u8272",
|
|
386
|
+
"Width": "\u5bec\u5ea6",
|
|
387
|
+
"Width:": "",
|
|
388
|
+
"Word count": "\u5b57\u6578",
|
|
389
|
+
"Words": "\u55ae\u8a5e",
|
|
390
|
+
"Words: {0}": "\u5b57\u6578\uff1a{0}",
|
|
391
|
+
"Yellow": "\u9ec3\u8272",
|
|
392
|
+
"Yes": "\u662f",
|
|
393
|
+
"You are using {0}": "\u4f60\u6b63\u5728\u4f7f\u7528 {0}",
|
|
394
|
+
"You have unsaved changes are you sure you want to navigate away?": "\u4f60\u9084\u6709\u6587\u4ef6\u5c1a\u672a\u5132\u5b58\uff0c\u78ba\u5b9a\u8981\u96e2\u958b\uff1f",
|
|
395
|
+
"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X/C/V keyboard shortcuts instead.": "\u4f60\u7684\u700f\u89bd\u5668\u4e0d\u652f\u63f4\u5b58\u53d6\u526a\u8cbc\u7c3f\uff0c\u8acb\u4f7f\u7528Ctrl+X/C/V\u7b49\u5feb\u6377\u9375\u3002",
|
|
396
|
+
"alignment": "\u5c0d\u9f4a",
|
|
397
|
+
"austral sign": "\u6fb3\u5143\u7b26\u865f",
|
|
398
|
+
"cedi sign": "\u585e\u5730\u7b26\u865f",
|
|
399
|
+
"colon sign": "\u5192\u865f",
|
|
400
|
+
"cruzeiro sign": "\u514b\u9b6f\u8cfd\u7f85\u5e63\u7b26\u865f",
|
|
401
|
+
"currency sign": "\u8ca8\u5e63\u7b26\u865f",
|
|
402
|
+
"dollar sign": "\u7f8e\u5143\u7b26\u865f",
|
|
403
|
+
"dong sign": "\u8d8a\u5357\u76fe\u7b26\u865f",
|
|
404
|
+
"drachma sign": "\u5e0c\u81d8\u8ca8\u5e63\u7b26\u865f-\u5fb7\u62c9\u514b\u99ac",
|
|
405
|
+
"euro-currency sign": "\u6b50\u5143\u7b26\u865f",
|
|
406
|
+
"example": "\u4f8b\u5b50",
|
|
407
|
+
"formatting": "\u683c\u5f0f\u5316",
|
|
408
|
+
"french franc sign": "\u6cd5\u90ce\u7b26\u865f",
|
|
409
|
+
"german penny symbol": "\u5fb7\u570b\u4fbf\u58eb\u7b26\u865f",
|
|
410
|
+
"guarani sign": "\u74dc\u62c9\u5c3c\u7b26\u865f",
|
|
411
|
+
"history": "\u6b77\u53f2",
|
|
412
|
+
"hryvnia sign": "\u683c\u88e1\u592b\u5c3c\u4e9e\u7b26\u865f",
|
|
413
|
+
"indentation": "\u7e2e\u6392",
|
|
414
|
+
"indian rupee sign": "\u5370\u5ea6\u76e7\u6bd4",
|
|
415
|
+
"kip sign": "\u5bee\u570b\u8ca8\u5e63\u7b26\u865f-\u57fa\u666e",
|
|
416
|
+
"lira sign": "\u91cc\u62c9\u7b26\u865f",
|
|
417
|
+
"livre tournois sign": "\u88e1\u5f17\u5f17\u723e\u7b26\u865f",
|
|
418
|
+
"manat sign": "\u99ac\u7d0d\u7279\u7b26\u865f",
|
|
419
|
+
"mill sign": "\u5bc6\u723e\u7b26\u865f",
|
|
420
|
+
"naira sign": "\u5948\u62c9\u7b26\u865f",
|
|
421
|
+
"new sheqel sign": "\u65b0\u8b1d\u514b\u723e\u7b26\u865f",
|
|
422
|
+
"nordic mark sign": "\u5317\u6b50\u99ac\u514b",
|
|
423
|
+
"peseta sign": "\u6bd4\u85a9\u659c\u5854\u7b26\u865f",
|
|
424
|
+
"peso sign": "\u6bd4\u7d22\u7b26\u865f",
|
|
425
|
+
"ruble sign": "\u76e7\u5e03\u7b26\u865f",
|
|
426
|
+
"rupee sign": "\u76e7\u6bd4\u7b26\u865f",
|
|
427
|
+
"spesmilo sign": "spesmilo\u7b26\u865f",
|
|
428
|
+
"styles": "\u6a23\u5f0f",
|
|
429
|
+
"tenge sign": "\u5805\u6208\u7b26\u865f",
|
|
430
|
+
"tugrik sign": "\u8499\u53e4\u570b\u8ca8\u5e63\u7b26\u865f-\u5716\u683c\u91cc\u514b",
|
|
431
|
+
"turkish lira sign": "\u571f\u8033\u5176\u91cc\u62c9",
|
|
432
|
+
"won sign": "\u97d3\u5143\u7b26\u865f",
|
|
433
|
+
"yen character": "\u65e5\u5143\u5b57\u6a23",
|
|
434
|
+
"yen/yuan character variant one": "\u5143\u5b57\u6a23\uff08\u5927\u5beb\uff09",
|
|
435
|
+
"yuan character": "\u4eba\u6c11\u5e63\u5143\u5b57\u6a23",
|
|
436
|
+
"yuan character, in hong kong and taiwan": "\u5143\u5b57\u6a23\uff08\u6e2f\u81fa\u5730\u5340\uff09",
|
|
437
|
+
"{0} characters": "{0} \u500b\u5b57\u5143",
|
|
438
|
+
"{0} columns, {1} rows": "{0} \u6b04\uff0c{1} \u5217",
|
|
439
|
+
"{0} words": "{0} \u5b57"
|
|
440
|
+
});
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TinyMCE UI-language packs: what is available, and which one a setting
|
|
3
|
+
* resolves to.
|
|
4
|
+
*
|
|
5
|
+
* Scope: these packs translate the editor CHROME — menus, dialogs, tooltips.
|
|
6
|
+
* They do not touch message content, the spellchecker (English dictionary) or
|
|
7
|
+
* Harper (English only). Choosing German gets you a German toolbar around an
|
|
8
|
+
* unchanged English writing experience.
|
|
9
|
+
*
|
|
10
|
+
* TinyMCE has NO auto-detection: its `language` option defaults to "en", and
|
|
11
|
+
* for anything else it fetches `<baseURL>/langs/<code>.js` and raises an
|
|
12
|
+
* in-editor error notification if that file is missing. Detection is therefore
|
|
13
|
+
* ours, and we must only ever hand it a code we shipped a pack for.
|
|
14
|
+
*
|
|
15
|
+
* The packs are copied next to tinymce.min.js by bin/build-tinymce.js, which
|
|
16
|
+
* also writes langs/index.json listing what it copied. Resolving against that
|
|
17
|
+
* manifest — rather than a hardcoded list — means the copied files stay the
|
|
18
|
+
* single source of truth for what can be offered, and a custom
|
|
19
|
+
* `mailx-tinymce-cdn` override is followed automatically because the manifest
|
|
20
|
+
* URL is derived from the script URL by the same rule TinyMCE uses.
|
|
21
|
+
*
|
|
22
|
+
* (Claude Code 2026-08-23)
|
|
23
|
+
*/
|
|
24
|
+
/** Setting value meaning "follow the browser's language list". */
|
|
25
|
+
export const LANGUAGE_AUTO = "auto";
|
|
26
|
+
/** TinyMCE's built-in strings. No pack, no fetch. */
|
|
27
|
+
export const LANGUAGE_ENGLISH = "en";
|
|
28
|
+
/** Where build-tinymce.js wrote the list of packs it copied, derived from the
|
|
29
|
+
* TinyMCE script URL exactly as TinyMCE derives `langs/<code>.js`. */
|
|
30
|
+
export function langManifestUrl(tinymceScriptUrl) {
|
|
31
|
+
return new URL("langs/index.json", new URL(tinymceScriptUrl, location.href)).href;
|
|
32
|
+
}
|
|
33
|
+
/** Language codes we have packs for, e.g. ["ar", "de", "pt-BR", …]. Empty when
|
|
34
|
+
* the manifest is missing (an older build, or a CDN override pointing at a
|
|
35
|
+
* tree without our langs/ directory) — callers then stay on English rather
|
|
36
|
+
* than provoking TinyMCE's load-error notification. */
|
|
37
|
+
export async function availableLanguages(tinymceScriptUrl) {
|
|
38
|
+
try {
|
|
39
|
+
const r = await fetch(langManifestUrl(tinymceScriptUrl));
|
|
40
|
+
if (!r.ok)
|
|
41
|
+
return [];
|
|
42
|
+
const list = await r.json();
|
|
43
|
+
return Array.isArray(list) ? list.filter(x => typeof x === "string") : [];
|
|
44
|
+
}
|
|
45
|
+
catch {
|
|
46
|
+
return [];
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Resolve a stored setting to a code TinyMCE can actually load.
|
|
51
|
+
*
|
|
52
|
+
* `setting` is either LANGUAGE_AUTO, LANGUAGE_ENGLISH, or a pack code. A code
|
|
53
|
+
* we no longer ship falls back to English rather than failing at load time.
|
|
54
|
+
*
|
|
55
|
+
* Auto walks the browser's ordered preference list and takes the first hit:
|
|
56
|
+
* an exact pack ("pt-BR"), then the bare language ("pt"), then any regional
|
|
57
|
+
* pack for that language ("pt" → "pt-BR"). English short-circuits — it needs
|
|
58
|
+
* no pack. Matching is case-insensitive because BCP-47 region subtags are
|
|
59
|
+
* conventionally upper-case in the pack names and browsers are not required
|
|
60
|
+
* to agree.
|
|
61
|
+
*/
|
|
62
|
+
export function resolveLanguage(setting, available, preferred = navigator.languages || [navigator.language]) {
|
|
63
|
+
const byLower = new Map(available.map(code => [code.toLowerCase(), code]));
|
|
64
|
+
if (setting && setting !== LANGUAGE_AUTO) {
|
|
65
|
+
if (setting === LANGUAGE_ENGLISH)
|
|
66
|
+
return LANGUAGE_ENGLISH;
|
|
67
|
+
return byLower.get(setting.toLowerCase()) || LANGUAGE_ENGLISH;
|
|
68
|
+
}
|
|
69
|
+
for (const tag of preferred) {
|
|
70
|
+
if (!tag)
|
|
71
|
+
continue;
|
|
72
|
+
const lower = tag.toLowerCase();
|
|
73
|
+
const base = lower.split("-")[0];
|
|
74
|
+
if (base === LANGUAGE_ENGLISH)
|
|
75
|
+
return LANGUAGE_ENGLISH;
|
|
76
|
+
const hit = byLower.get(lower)
|
|
77
|
+
|| byLower.get(base)
|
|
78
|
+
|| available.find(code => code.toLowerCase().split("-")[0] === base);
|
|
79
|
+
if (hit)
|
|
80
|
+
return hit;
|
|
81
|
+
}
|
|
82
|
+
return LANGUAGE_ENGLISH;
|
|
83
|
+
}
|
|
84
|
+
/** Human-readable name for a pack code, in the reader's own language —
|
|
85
|
+
* `Intl.DisplayNames` already knows every one of these, so no name table is
|
|
86
|
+
* maintained here. Falls back to the raw code on a runtime that doesn't. */
|
|
87
|
+
export function languageLabel(code) {
|
|
88
|
+
try {
|
|
89
|
+
const names = new Intl.DisplayNames(navigator.languages || undefined, { type: "language" });
|
|
90
|
+
return names.of(code) || code;
|
|
91
|
+
}
|
|
92
|
+
catch {
|
|
93
|
+
return code;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
//# sourceMappingURL=tinymce-langs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tinymce-langs.js","sourceRoot":"","sources":["tinymce-langs.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TinyMCE UI-language packs: what is available, and which one a setting
|
|
3
|
+
* resolves to.
|
|
4
|
+
*
|
|
5
|
+
* Scope: these packs translate the editor CHROME — menus, dialogs, tooltips.
|
|
6
|
+
* They do not touch message content, the spellchecker (English dictionary) or
|
|
7
|
+
* Harper (English only). Choosing German gets you a German toolbar around an
|
|
8
|
+
* unchanged English writing experience.
|
|
9
|
+
*
|
|
10
|
+
* TinyMCE has NO auto-detection: its `language` option defaults to "en", and
|
|
11
|
+
* for anything else it fetches `<baseURL>/langs/<code>.js` and raises an
|
|
12
|
+
* in-editor error notification if that file is missing. Detection is therefore
|
|
13
|
+
* ours, and we must only ever hand it a code we shipped a pack for.
|
|
14
|
+
*
|
|
15
|
+
* The packs are copied next to tinymce.min.js by bin/build-tinymce.js, which
|
|
16
|
+
* also writes langs/index.json listing what it copied. Resolving against that
|
|
17
|
+
* manifest — rather than a hardcoded list — means the copied files stay the
|
|
18
|
+
* single source of truth for what can be offered, and a custom
|
|
19
|
+
* `mailx-tinymce-cdn` override is followed automatically because the manifest
|
|
20
|
+
* URL is derived from the script URL by the same rule TinyMCE uses.
|
|
21
|
+
*
|
|
22
|
+
* (Claude Code 2026-08-23)
|
|
23
|
+
*/
|
|
24
|
+
|
|
25
|
+
/** Setting value meaning "follow the browser's language list". */
|
|
26
|
+
export const LANGUAGE_AUTO = "auto";
|
|
27
|
+
/** TinyMCE's built-in strings. No pack, no fetch. */
|
|
28
|
+
export const LANGUAGE_ENGLISH = "en";
|
|
29
|
+
|
|
30
|
+
/** Where build-tinymce.js wrote the list of packs it copied, derived from the
|
|
31
|
+
* TinyMCE script URL exactly as TinyMCE derives `langs/<code>.js`. */
|
|
32
|
+
export function langManifestUrl(tinymceScriptUrl: string): string {
|
|
33
|
+
return new URL("langs/index.json", new URL(tinymceScriptUrl, location.href)).href;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/** Language codes we have packs for, e.g. ["ar", "de", "pt-BR", …]. Empty when
|
|
37
|
+
* the manifest is missing (an older build, or a CDN override pointing at a
|
|
38
|
+
* tree without our langs/ directory) — callers then stay on English rather
|
|
39
|
+
* than provoking TinyMCE's load-error notification. */
|
|
40
|
+
export async function availableLanguages(tinymceScriptUrl: string): Promise<string[]> {
|
|
41
|
+
try {
|
|
42
|
+
const r = await fetch(langManifestUrl(tinymceScriptUrl));
|
|
43
|
+
if (!r.ok) return [];
|
|
44
|
+
const list = await r.json();
|
|
45
|
+
return Array.isArray(list) ? list.filter(x => typeof x === "string") : [];
|
|
46
|
+
} catch {
|
|
47
|
+
return [];
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* Resolve a stored setting to a code TinyMCE can actually load.
|
|
53
|
+
*
|
|
54
|
+
* `setting` is either LANGUAGE_AUTO, LANGUAGE_ENGLISH, or a pack code. A code
|
|
55
|
+
* we no longer ship falls back to English rather than failing at load time.
|
|
56
|
+
*
|
|
57
|
+
* Auto walks the browser's ordered preference list and takes the first hit:
|
|
58
|
+
* an exact pack ("pt-BR"), then the bare language ("pt"), then any regional
|
|
59
|
+
* pack for that language ("pt" → "pt-BR"). English short-circuits — it needs
|
|
60
|
+
* no pack. Matching is case-insensitive because BCP-47 region subtags are
|
|
61
|
+
* conventionally upper-case in the pack names and browsers are not required
|
|
62
|
+
* to agree.
|
|
63
|
+
*/
|
|
64
|
+
export function resolveLanguage(
|
|
65
|
+
setting: string,
|
|
66
|
+
available: readonly string[],
|
|
67
|
+
preferred: readonly string[] = navigator.languages || [navigator.language],
|
|
68
|
+
): string {
|
|
69
|
+
const byLower = new Map(available.map(code => [code.toLowerCase(), code]));
|
|
70
|
+
|
|
71
|
+
if (setting && setting !== LANGUAGE_AUTO) {
|
|
72
|
+
if (setting === LANGUAGE_ENGLISH) return LANGUAGE_ENGLISH;
|
|
73
|
+
return byLower.get(setting.toLowerCase()) || LANGUAGE_ENGLISH;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
for (const tag of preferred) {
|
|
77
|
+
if (!tag) continue;
|
|
78
|
+
const lower = tag.toLowerCase();
|
|
79
|
+
const base = lower.split("-")[0];
|
|
80
|
+
if (base === LANGUAGE_ENGLISH) return LANGUAGE_ENGLISH;
|
|
81
|
+
const hit = byLower.get(lower)
|
|
82
|
+
|| byLower.get(base)
|
|
83
|
+
|| available.find(code => code.toLowerCase().split("-")[0] === base);
|
|
84
|
+
if (hit) return hit;
|
|
85
|
+
}
|
|
86
|
+
return LANGUAGE_ENGLISH;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
/** Human-readable name for a pack code, in the reader's own language —
|
|
90
|
+
* `Intl.DisplayNames` already knows every one of these, so no name table is
|
|
91
|
+
* maintained here. Falls back to the raw code on a runtime that doesn't. */
|
|
92
|
+
export function languageLabel(code: string): string {
|
|
93
|
+
try {
|
|
94
|
+
const names = new Intl.DisplayNames(navigator.languages || undefined, { type: "language" });
|
|
95
|
+
return names.of(code) || code;
|
|
96
|
+
} catch {
|
|
97
|
+
return code;
|
|
98
|
+
}
|
|
99
|
+
}
|