@lupinum/ginko 0.4.0 → 0.6.0
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 +161 -0
- package/README.md +2 -2
- package/dist/basics.d.mts +492 -0
- package/dist/basics.d.ts +492 -0
- package/dist/basics.mjs +416 -0
- package/dist/cli/index.mjs +59 -56
- package/dist/index.d.mts +5 -4
- package/dist/index.d.ts +5 -4
- package/dist/index.mjs +3 -3
- package/dist/internal/search.mjs +6 -3
- package/dist/internal.d.mts +387 -41
- package/dist/internal.d.ts +387 -41
- package/dist/internal.mjs +267 -101
- package/dist/nuxt/module.d.mts +2 -2
- package/dist/nuxt/module.d.ts +2 -2
- package/dist/nuxt/module.mjs +108 -15
- package/dist/nuxt/runtime/GinkoImage.d.mts +1 -1
- package/dist/nuxt/runtime/GinkoMarkdown.mjs +2 -2
- package/dist/nuxt/runtime/composables.d.mts +4 -3
- package/dist/nuxt/runtime/composables.mjs +19 -15
- package/dist/nuxt/runtime/fetch.d.mts +3 -1
- package/dist/nuxt/runtime/fetch.mjs +12 -6
- package/dist/nuxt/runtime/markdown.d.mts +3 -0
- package/dist/nuxt/runtime/markdown.mjs +15 -3
- package/dist/nuxt/runtime/plugin.mjs +6 -35
- package/dist/nuxt/runtime/preview-listener.d.mts +13 -0
- package/dist/nuxt/runtime/preview-listener.mjs +37 -0
- package/dist/nuxt/runtime/preview.vue +3 -1
- package/dist/nuxt/runtime/schema.d.ts +6 -0
- package/dist/nuxt/runtime/server/bundles.d.ts +4 -0
- package/dist/nuxt/runtime/server/files-md.d.ts +2 -0
- package/dist/nuxt/runtime/server/files.d.ts +2 -0
- package/dist/nuxt/runtime/server/headers.d.ts +2 -0
- package/dist/nuxt/runtime/server/items.d.mts +12 -0
- package/dist/nuxt/runtime/server/items.d.ts +12 -0
- package/dist/nuxt/runtime/server/items.mjs +17 -0
- package/dist/nuxt/runtime/server/llms-full.d.ts +2 -0
- package/dist/nuxt/runtime/server/llms.d.ts +2 -0
- package/dist/nuxt/runtime/server/markdown-trees.d.ts +2 -0
- package/dist/nuxt/runtime/server/markdown.d.ts +2 -0
- package/dist/nuxt/runtime/server/markdown.mjs +1 -1
- package/dist/nuxt/runtime/server/platform-md.d.mts +3 -0
- package/dist/nuxt/runtime/server/platform-md.d.ts +3 -0
- package/dist/nuxt/runtime/server/platform-md.mjs +71 -0
- package/dist/nuxt/runtime/server/redirects.d.ts +2 -0
- package/dist/nuxt/runtime/server/robots.d.ts +2 -0
- package/dist/nuxt/runtime/server/search.d.ts +2 -0
- package/dist/nuxt/runtime/server/site-config.d.ts +14 -0
- package/dist/nuxt/runtime/server/sitemap-source.d.ts +2 -0
- package/dist/nuxt/runtime/server/sitemap-xml.d.ts +24 -0
- package/dist/nuxt/runtime/server/sitemap.d.ts +2 -0
- package/dist/nuxt/runtime/shared.d.mts +10 -3
- package/dist/nuxt/runtime/shared.mjs +2 -2
- package/dist/shared/{ginko.BBkZW2nW.d.ts → ginko.6cI8KXZP.d.mts} +2 -2
- package/dist/shared/{ginko.CrNRBkS5.mjs → ginko.B1-DoOea.mjs} +253 -309
- package/dist/shared/ginko.BNVC-g9n.mjs +10389 -0
- package/dist/shared/{ginko.Bwan3BB-.d.mts → ginko.B_pACpVU.d.ts} +2 -2
- package/dist/shared/ginko.BaFweQcB.d.mts +91 -0
- package/dist/shared/ginko.BiDXgjLy.d.ts +91 -0
- package/dist/shared/ginko.C-oz8wwI.mjs +95 -0
- package/dist/shared/{ginko.BDF3bW0C.d.ts → ginko.CLzVaDi4.d.ts} +56 -5
- package/dist/shared/ginko.C_nq6vk7.d.mts +1622 -0
- package/dist/shared/ginko.CjWB8N7f.d.ts +128 -0
- package/dist/shared/ginko.D1PeQ3ds.mjs +36 -0
- package/dist/shared/ginko.D2oht0Kx.d.ts +1622 -0
- package/dist/shared/ginko.DCHGkQ7P.mjs +116 -0
- package/dist/shared/ginko.DIl7l-75.mjs +26 -0
- package/dist/shared/{ginko.akHewCGt.d.mts → ginko.DkIc0ZZk.d.mts} +56 -5
- package/dist/shared/{ginko.D-fNojn9.d.mts → ginko.DrkUeYFP.d.mts} +824 -10
- package/dist/shared/{ginko.D-fNojn9.d.ts → ginko.DrkUeYFP.d.ts} +824 -10
- package/dist/shared/ginko.WAfoMhv1.mjs +601 -0
- package/dist/shared/ginko.o1yIKlgj.d.mts +128 -0
- package/dist/shared/{ginko.Dht0xxE5.mjs → ginko.raCzOPYC.mjs} +1 -2
- package/dist/shared/{ginko.C90fPpMP.mjs → ginko.t-gbwzxh.mjs} +128 -101
- package/dist/shared/ginko.yKMIjJ68.mjs +84 -0
- package/dist/vue.d.mts +5 -4
- package/dist/vue.d.ts +5 -4
- package/dist/vue.mjs +1 -1
- package/i18n/ar.json +212 -0
- package/i18n/de.json +9 -1
- package/i18n/en.json +9 -1
- package/i18n/es.json +12 -4
- package/i18n/fr.json +212 -0
- package/i18n/it.json +212 -0
- package/package.json +7 -3
- package/dist/shared/ginko.BTUfZCfa.d.mts +0 -172
- package/dist/shared/ginko.C-QjDn3O.mjs +0 -4944
- package/dist/shared/ginko.CQvxhyez.mjs +0 -40
- package/dist/shared/ginko.Dc0oNcDv.d.ts +0 -172
- package/dist/shared/ginko.Mn30dmlm.mjs +0 -20
|
@@ -1,4944 +0,0 @@
|
|
|
1
|
-
import { defineComarkPlugin, parseMarkdown as parseMarkdown$1 } from 'comark';
|
|
2
|
-
import alert from 'comark/plugins/alert';
|
|
3
|
-
import attributes from 'comark/plugins/attributes';
|
|
4
|
-
import components from 'comark/plugins/components';
|
|
5
|
-
import emoji from 'comark/plugins/emoji';
|
|
6
|
-
import footnotes from 'comark/plugins/footnotes';
|
|
7
|
-
import frontmatter from 'comark/plugins/frontmatter';
|
|
8
|
-
import math from 'comark/plugins/math';
|
|
9
|
-
import mermaid from 'comark/plugins/mermaid';
|
|
10
|
-
import taskList from 'comark/plugins/task-list';
|
|
11
|
-
import toc from 'comark/plugins/toc';
|
|
12
|
-
import { defineCatalog } from '@lupinum/ginko-i18n/core';
|
|
13
|
-
|
|
14
|
-
const K = new Uint32Array([
|
|
15
|
-
1116352408,
|
|
16
|
-
1899447441,
|
|
17
|
-
3049323471,
|
|
18
|
-
3921009573,
|
|
19
|
-
961987163,
|
|
20
|
-
1508970993,
|
|
21
|
-
2453635748,
|
|
22
|
-
2870763221,
|
|
23
|
-
3624381080,
|
|
24
|
-
310598401,
|
|
25
|
-
607225278,
|
|
26
|
-
1426881987,
|
|
27
|
-
1925078388,
|
|
28
|
-
2162078206,
|
|
29
|
-
2614888103,
|
|
30
|
-
3248222580,
|
|
31
|
-
3835390401,
|
|
32
|
-
4022224774,
|
|
33
|
-
264347078,
|
|
34
|
-
604807628,
|
|
35
|
-
770255983,
|
|
36
|
-
1249150122,
|
|
37
|
-
1555081692,
|
|
38
|
-
1996064986,
|
|
39
|
-
2554220882,
|
|
40
|
-
2821834349,
|
|
41
|
-
2952996808,
|
|
42
|
-
3210313671,
|
|
43
|
-
3336571891,
|
|
44
|
-
3584528711,
|
|
45
|
-
113926993,
|
|
46
|
-
338241895,
|
|
47
|
-
666307205,
|
|
48
|
-
773529912,
|
|
49
|
-
1294757372,
|
|
50
|
-
1396182291,
|
|
51
|
-
1695183700,
|
|
52
|
-
1986661051,
|
|
53
|
-
2177026350,
|
|
54
|
-
2456956037,
|
|
55
|
-
2730485921,
|
|
56
|
-
2820302411,
|
|
57
|
-
3259730800,
|
|
58
|
-
3345764771,
|
|
59
|
-
3516065817,
|
|
60
|
-
3600352804,
|
|
61
|
-
4094571909,
|
|
62
|
-
275423344,
|
|
63
|
-
430227734,
|
|
64
|
-
506948616,
|
|
65
|
-
659060556,
|
|
66
|
-
883997877,
|
|
67
|
-
958139571,
|
|
68
|
-
1322822218,
|
|
69
|
-
1537002063,
|
|
70
|
-
1747873779,
|
|
71
|
-
1955562222,
|
|
72
|
-
2024104815,
|
|
73
|
-
2227730452,
|
|
74
|
-
2361852424,
|
|
75
|
-
2428436474,
|
|
76
|
-
2756734187,
|
|
77
|
-
3204031479,
|
|
78
|
-
3329325298
|
|
79
|
-
]);
|
|
80
|
-
function sha256(input) {
|
|
81
|
-
const bytes = new TextEncoder().encode(input);
|
|
82
|
-
const length = bytes.length;
|
|
83
|
-
const padded = new Uint8Array(length + 9 + 63 >> 6 << 6);
|
|
84
|
-
padded.set(bytes);
|
|
85
|
-
padded[length] = 128;
|
|
86
|
-
const view = new DataView(padded.buffer);
|
|
87
|
-
view.setUint32(padded.length - 8, Math.floor(length * 8 / 2 ** 32));
|
|
88
|
-
view.setUint32(padded.length - 4, length * 8 >>> 0);
|
|
89
|
-
const h = new Uint32Array([1779033703, 3144134277, 1013904242, 2773480762, 1359893119, 2600822924, 528734635, 1541459225]);
|
|
90
|
-
const w = new Uint32Array(64);
|
|
91
|
-
const rotr = (x, n) => x >>> n | x << 32 - n;
|
|
92
|
-
for (let offset = 0; offset < padded.length; offset += 64) {
|
|
93
|
-
for (let i = 0; i < 16; i++) w[i] = view.getUint32(offset + i * 4);
|
|
94
|
-
for (let i = 16; i < 64; i++) {
|
|
95
|
-
const a2 = w[i - 15], b2 = w[i - 2];
|
|
96
|
-
const s0 = rotr(a2, 7) ^ rotr(a2, 18) ^ a2 >>> 3;
|
|
97
|
-
const s1 = rotr(b2, 17) ^ rotr(b2, 19) ^ b2 >>> 10;
|
|
98
|
-
w[i] = w[i - 16] + s0 + w[i - 7] + s1 >>> 0;
|
|
99
|
-
}
|
|
100
|
-
let [a, b, c, d, e, f, g, hh] = h;
|
|
101
|
-
for (let i = 0; i < 64; i++) {
|
|
102
|
-
const t1 = hh + (rotr(e, 6) ^ rotr(e, 11) ^ rotr(e, 25)) + (e & f ^ ~e & g) + K[i] + w[i] >>> 0;
|
|
103
|
-
const t2 = (rotr(a, 2) ^ rotr(a, 13) ^ rotr(a, 22)) + (a & b ^ a & c ^ b & c) >>> 0;
|
|
104
|
-
hh = g;
|
|
105
|
-
g = f;
|
|
106
|
-
f = e;
|
|
107
|
-
e = d + t1 >>> 0;
|
|
108
|
-
d = c;
|
|
109
|
-
c = b;
|
|
110
|
-
b = a;
|
|
111
|
-
a = t1 + t2 >>> 0;
|
|
112
|
-
}
|
|
113
|
-
h[0] = h[0] + a >>> 0;
|
|
114
|
-
h[1] = h[1] + b >>> 0;
|
|
115
|
-
h[2] = h[2] + c >>> 0;
|
|
116
|
-
h[3] = h[3] + d >>> 0;
|
|
117
|
-
h[4] = h[4] + e >>> 0;
|
|
118
|
-
h[5] = h[5] + f >>> 0;
|
|
119
|
-
h[6] = h[6] + g >>> 0;
|
|
120
|
-
h[7] = h[7] + hh >>> 0;
|
|
121
|
-
}
|
|
122
|
-
return Array.from(h, (x) => x.toString(16).padStart(8, "0")).join("");
|
|
123
|
-
}
|
|
124
|
-
function stableJson(value) {
|
|
125
|
-
if (Array.isArray(value)) return `[${value.map(stableJson).join(",")}]`;
|
|
126
|
-
if (value && typeof value === "object") {
|
|
127
|
-
return `{${Object.keys(value).sort().map((k) => `${JSON.stringify(k)}:${stableJson(value[k])}`).join(",")}}`;
|
|
128
|
-
}
|
|
129
|
-
return JSON.stringify(value) ?? "null";
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
function options(input) {
|
|
133
|
-
return input.map((o) => typeof o === "string" ? { value: o, label: o } : o);
|
|
134
|
-
}
|
|
135
|
-
const f = {
|
|
136
|
-
text: (label, o) => ({ type: "text", label, ...o }),
|
|
137
|
-
longtext: (label, o) => ({ type: "longtext", label, ...o }),
|
|
138
|
-
/** Markdown has no `default`: its start value is the empty text. */
|
|
139
|
-
markdown: (label, o) => ({ type: "markdown", label, ...o }),
|
|
140
|
-
number: (label, o) => ({ type: "number", label, ...o }),
|
|
141
|
-
money: (label, o) => ({ type: "money", label, ...o }),
|
|
142
|
-
boolean: (label, o) => ({ type: "boolean", label, ...o }),
|
|
143
|
-
date: (label, o) => ({ type: "date", label, ...o }),
|
|
144
|
-
time: (label, o) => ({ type: "time", label, ...o }),
|
|
145
|
-
daterange: (label, o) => ({ type: "daterange", label, ...o }),
|
|
146
|
-
choice: (label, o) => {
|
|
147
|
-
const { options: input, ...rest } = o;
|
|
148
|
-
return { type: "choice", label, ...rest, options: options(input) };
|
|
149
|
-
},
|
|
150
|
-
choices: (label, o) => {
|
|
151
|
-
const { options: input, ...rest } = o;
|
|
152
|
-
return { type: "choices", label, ...rest, options: options(input) };
|
|
153
|
-
},
|
|
154
|
-
list: (label, o) => {
|
|
155
|
-
const { fields, itemLabel, ...rest } = o;
|
|
156
|
-
return { type: "list", label, itemLabel, of: fields, ...rest };
|
|
157
|
-
},
|
|
158
|
-
/** Images and files have no `default`: their values are uploads of the site's owner. */
|
|
159
|
-
image: (label, o) => ({ type: "image", label, ...o }),
|
|
160
|
-
file: (label, o) => ({ type: "file", label, ...o }),
|
|
161
|
-
/** One entry of the collection `to`: the value is its ID. */
|
|
162
|
-
ref: (label, o) => ({ type: "ref", label, ...o }),
|
|
163
|
-
/** Several entries of the collection `to`, at most `max`: the value is a list of IDs. Stored as a ref with `multiple: true`. */
|
|
164
|
-
refs: (label, o) => ({ type: "ref", label, ...o, multiple: true }),
|
|
165
|
-
/** The address of an entry, made once from the text field `from`; it has its own value per language. */
|
|
166
|
-
slug: (label, o) => ({ type: "slug", label, ...o })
|
|
167
|
-
};
|
|
168
|
-
const MAX_CENTS = 1e8;
|
|
169
|
-
const TEXT_DEFAULT_MAX = { text: 200, longtext: 2e3, markdown: 5e4 };
|
|
170
|
-
function effectiveProfile(field) {
|
|
171
|
-
return field.profile ?? "rich";
|
|
172
|
-
}
|
|
173
|
-
function isShown(field, siblings) {
|
|
174
|
-
const when = field.showWhen;
|
|
175
|
-
if (!when) return true;
|
|
176
|
-
const equal = stableJson(siblings[when.field] ?? null) === stableJson("is" in when ? when.is : when.not);
|
|
177
|
-
return "is" in when ? equal : !equal;
|
|
178
|
-
}
|
|
179
|
-
function effectiveMax(field) {
|
|
180
|
-
switch (field.type) {
|
|
181
|
-
case "text":
|
|
182
|
-
case "longtext":
|
|
183
|
-
case "markdown":
|
|
184
|
-
return field.max ?? TEXT_DEFAULT_MAX[field.type];
|
|
185
|
-
case "money":
|
|
186
|
-
return Math.min(field.max ?? MAX_CENTS, MAX_CENTS);
|
|
187
|
-
case "ref":
|
|
188
|
-
return field.multiple ? field.max ?? Infinity : Infinity;
|
|
189
|
-
case "choices":
|
|
190
|
-
return Math.min(field.max ?? field.options.length, field.options.length);
|
|
191
|
-
case "number":
|
|
192
|
-
case "list":
|
|
193
|
-
return field.max;
|
|
194
|
-
case "file":
|
|
195
|
-
return field.maxBytes;
|
|
196
|
-
default:
|
|
197
|
-
return Infinity;
|
|
198
|
-
}
|
|
199
|
-
}
|
|
200
|
-
function effectiveMin(field) {
|
|
201
|
-
switch (field.type) {
|
|
202
|
-
case "number":
|
|
203
|
-
return field.min;
|
|
204
|
-
case "money":
|
|
205
|
-
return field.min ?? 0;
|
|
206
|
-
case "list":
|
|
207
|
-
return field.min ?? 0;
|
|
208
|
-
default:
|
|
209
|
-
return -Infinity;
|
|
210
|
-
}
|
|
211
|
-
}
|
|
212
|
-
const TRANSLATABLE_TYPES = /* @__PURE__ */ new Set(["text", "longtext", "markdown", "slug"]);
|
|
213
|
-
function isTranslatable(field) {
|
|
214
|
-
if (field.type === "slug") return true;
|
|
215
|
-
if (!TRANSLATABLE_TYPES.has(field.type)) return false;
|
|
216
|
-
if (field.type === "text" && field.format) return false;
|
|
217
|
-
return field.translate !== false;
|
|
218
|
-
}
|
|
219
|
-
const ALT_MAX = 300;
|
|
220
|
-
function effectiveAlt(own, library, locale) {
|
|
221
|
-
const text = (map) => {
|
|
222
|
-
const value = typeof map === "object" && map !== null ? map[locale] : void 0;
|
|
223
|
-
return typeof value === "string" ? value.trim() : "";
|
|
224
|
-
};
|
|
225
|
-
return text(own) || text(library);
|
|
226
|
-
}
|
|
227
|
-
|
|
228
|
-
const MAX_LOCALES = 20;
|
|
229
|
-
function isLocale(value) {
|
|
230
|
-
if (typeof value !== "string" || value === "") return false;
|
|
231
|
-
try {
|
|
232
|
-
const canonical = Intl.getCanonicalLocales(value);
|
|
233
|
-
return canonical.length === 1 && canonical[0] === value;
|
|
234
|
-
} catch {
|
|
235
|
-
return false;
|
|
236
|
-
}
|
|
237
|
-
}
|
|
238
|
-
let currencies;
|
|
239
|
-
function isCurrency(value) {
|
|
240
|
-
if (typeof value !== "string" || !/^[A-Z]{3}$/.test(value)) return false;
|
|
241
|
-
currencies ??= new Set(Intl.supportedValuesOf("currency"));
|
|
242
|
-
return currencies.has(value);
|
|
243
|
-
}
|
|
244
|
-
function labelOf(label, locale, main) {
|
|
245
|
-
if (typeof label === "string") return label;
|
|
246
|
-
if (Object.hasOwn(label, locale)) return label[locale];
|
|
247
|
-
if (Object.hasOwn(label, main)) return label[main];
|
|
248
|
-
if (Object.hasOwn(label, "en")) return label.en;
|
|
249
|
-
return Object.values(label)[0] ?? "";
|
|
250
|
-
}
|
|
251
|
-
function sameLabel(a, b) {
|
|
252
|
-
if (typeof a === "string" || typeof b === "string" || a === void 0 || b === void 0) return a === b;
|
|
253
|
-
const keys = Object.keys(a);
|
|
254
|
-
return keys.length === Object.keys(b).length && keys.every((k) => Object.hasOwn(b, k) && a[k] === b[k]);
|
|
255
|
-
}
|
|
256
|
-
function labelProblem(path, label, main) {
|
|
257
|
-
if (typeof label === "string") return label.trim() === "" ? `${path}: label is empty.` : null;
|
|
258
|
-
if (typeof label !== "object" || label === null || Array.isArray(label)) return `${path}: label must be a text or an object with one text per language.`;
|
|
259
|
-
const record = label;
|
|
260
|
-
const bad = Object.keys(record).find((k) => !isLocale(k));
|
|
261
|
-
if (bad !== void 0) return `${path}: label has the invalid language \u201C${bad}\u201D.`;
|
|
262
|
-
if (!Object.hasOwn(record, main) && !Object.hasOwn(record, "en")) return `${path}: label needs a text in the main language \u201C${main}\u201D or in English.`;
|
|
263
|
-
if (Object.values(record).some((v) => typeof v !== "string" || v.trim() === "")) return `${path}: label needs a text for each language.`;
|
|
264
|
-
return null;
|
|
265
|
-
}
|
|
266
|
-
|
|
267
|
-
function isSafeHref(href) {
|
|
268
|
-
if (typeof href !== "string" || href.length > 2e3 || /[\u0000- \u007f\\]/.test(href)) return false;
|
|
269
|
-
if (href.startsWith("#")) return true;
|
|
270
|
-
if (href.startsWith("$")) return /^\$[A-Za-z0-9._-]+(#[A-Za-z0-9._-]*)?$/.test(href);
|
|
271
|
-
if (href.startsWith("/")) return !href.startsWith("//") && !href.startsWith("/\\");
|
|
272
|
-
return /^(https?:\/\/[^\s]+|mailto:[^\s]+|tel:\+?[0-9 ()/-]+)$/i.test(href);
|
|
273
|
-
}
|
|
274
|
-
function safeHref(href) {
|
|
275
|
-
return href !== void 0 && isSafeHref(href) ? href : void 0;
|
|
276
|
-
}
|
|
277
|
-
|
|
278
|
-
const issues$2 = {
|
|
279
|
-
unknownBrick: "Baustein „{brick}“ gibt es nicht.",
|
|
280
|
-
markdown: "„{label}“: {problem}",
|
|
281
|
-
notObject: "Erwartet ein Objekt.",
|
|
282
|
-
unknownField: "Unbekanntes Feld.",
|
|
283
|
-
fieldMissing: "„{label}“ fehlt.",
|
|
284
|
-
notLocalized: "„{label}“ muss pro Sprache gespeichert sein.",
|
|
285
|
-
unknownLocale: "Sprache „{locale}“ ist nicht eingerichtet.",
|
|
286
|
-
fieldEmpty: "„{label}“ ist leer.",
|
|
287
|
-
notText: "„{label}“ muss Text sein.",
|
|
288
|
-
tooLong: "„{label}“ ist zu lang (höchstens {max} Zeichen).",
|
|
289
|
-
controlChars: "„{label}“ enthält unsichtbare Steuerzeichen.",
|
|
290
|
-
badFormat: "„{label}“ hat kein gültiges Format.",
|
|
291
|
-
badSlug: "„{label}“ ist keine gültige Adresse.",
|
|
292
|
-
notNumber: "„{label}“ muss eine Zahl sein.",
|
|
293
|
-
outOfRange: "„{label}“ muss zwischen {min} und {max} liegen.",
|
|
294
|
-
badStep: "„{label}“ passt nicht zur Schrittweite {step}.",
|
|
295
|
-
notMoney: "„{label}“ muss ein Betrag in Cent sein.",
|
|
296
|
-
moneyOutOfRange: "„{label}“ liegt außerhalb der Grenzen.",
|
|
297
|
-
notBoolean: "„{label}“ muss ja oder nein sein.",
|
|
298
|
-
badDate: "„{label}“ ist kein gültiges Datum.",
|
|
299
|
-
badTime: "„{label}“ ist keine gültige Uhrzeit.",
|
|
300
|
-
badDateRange: "„{label}“ ist kein gültiger Zeitraum.",
|
|
301
|
-
dateRangeOrder: "„{label}“: „von“ liegt nach „bis“.",
|
|
302
|
-
badChoice: "„{label}“ hat einen ungültigen Wert.",
|
|
303
|
-
badChoices: "„{label}“ hat ungültige Werte.",
|
|
304
|
-
duplicateValues: "„{label}“ enthält Werte doppelt.",
|
|
305
|
-
tooManyChosen: "„{label}“: höchstens {max}.",
|
|
306
|
-
notIdList: "„{label}“ muss eine Liste von Eintrags-IDs sein.",
|
|
307
|
-
notId: "„{label}“ muss eine Eintrags-ID sein.",
|
|
308
|
-
duplicateEntries: "„{label}“ enthält Einträge doppelt.",
|
|
309
|
-
refGone: "„{label}“: Der Eintrag gibt es nicht mehr.",
|
|
310
|
-
notList: "„{label}“ muss eine Liste sein.",
|
|
311
|
-
tooManyRows: "„{label}“ hat zu viele Einträge (höchstens {max}).",
|
|
312
|
-
tooFewRows: "„{label}“ braucht mindestens {min} Einträge.",
|
|
313
|
-
duplicateRowValue: "„{label}“: „{value}“ kommt mehrfach vor.",
|
|
314
|
-
badRowId: "„{label}“: Zeile {row} hat keine gültige ID.",
|
|
315
|
-
duplicateRowId: "„{label}“: Zeilen-ID doppelt.",
|
|
316
|
-
notImage: "„{label}“ ist kein gültiges Bild.",
|
|
317
|
-
altMissing: "„{label}“: Beschreibung des Bildes (Alt-Text) fehlt.",
|
|
318
|
-
altTooLong: "„{label}“: Alt-Text zu lang.",
|
|
319
|
-
notFile: "„{label}“ ist keine gültige Datei."
|
|
320
|
-
};
|
|
321
|
-
const file$2 = {
|
|
322
|
-
typeNotAllowed: "Dieser Dateityp ist nicht erlaubt (erlaubt: {allowed}).",
|
|
323
|
-
tooBig: "Die Datei ist zu groß (höchstens {max, number} MB)."
|
|
324
|
-
};
|
|
325
|
-
const markdown$2 = {
|
|
326
|
-
profile: {
|
|
327
|
-
inline: "nur Text mit fett, kursiv, Code und Links",
|
|
328
|
-
basic: "Absätze, Überschriften, Listen (auch mit Kästchen), Zitate, Hinweise und Fußnoten",
|
|
329
|
-
rich: "auch Tabellen, Bilder, Code-Blöcke, Formeln und Diagramme",
|
|
330
|
-
page: "auch Komponenten"
|
|
331
|
-
},
|
|
332
|
-
tagBlocked: "„{tag}“ ist nicht erlaubt.",
|
|
333
|
-
tagNotInProfile: "„{tag}“ ist hier nicht erlaubt ({allowed}).",
|
|
334
|
-
propBlocked: "Die Eigenschaft „{prop}“ ist nicht erlaubt.",
|
|
335
|
-
unsafeLink: "Link ist nicht erlaubt (nur http, https, mailto, tel oder /pfad).",
|
|
336
|
-
oneParagraph: "Hier ist nur ein Absatz erlaubt.",
|
|
337
|
-
tooComplex: "Text ist zu komplex (höchstens {max} Elemente)."
|
|
338
|
-
};
|
|
339
|
-
const component$2 = {
|
|
340
|
-
or: "{first} oder {second}",
|
|
341
|
-
and: "{first}, {second}",
|
|
342
|
-
quoted: "„{name}“",
|
|
343
|
-
unknown: "Komponente „{tag}“ gibt es nicht.",
|
|
344
|
-
propUnknown: "Komponente „{tag}“: Eigenschaft „{prop}“ gibt es nicht.",
|
|
345
|
-
propInvalid: "Komponente „{tag}“: Eigenschaft „{prop}“ {problem}",
|
|
346
|
-
propMissing: "Komponente „{tag}“: Eigenschaft „{prop}“ fehlt.",
|
|
347
|
-
propEmpty: "Komponente „{tag}“: Eigenschaft „{prop}“ ist leer.",
|
|
348
|
-
blockInParagraph: "Komponente „{tag}“ ist ein Block und gehört nicht in einen Absatz.",
|
|
349
|
-
parentOnly: "Komponente „{tag}“ darf nur in {parents} stehen.",
|
|
350
|
-
slotUnknown: "Komponente „{tag}“: Der Bereich „{slot}“ gibt es nicht (erlaubt: {allowed}).",
|
|
351
|
-
noSlots: "Komponente „{tag}“: hat keine Bereiche, „{slot}“ ist nicht erlaubt.",
|
|
352
|
-
childNotAllowed: "Komponente „{tag}“ darf nur {children} enthalten, nicht „{child}“.",
|
|
353
|
-
prop: {
|
|
354
|
-
notBoolean: "muss „true“ oder „false“ sein.",
|
|
355
|
-
notNumber: "muss eine Zahl sein.",
|
|
356
|
-
outOfRange: "muss zwischen {min} und {max} liegen.",
|
|
357
|
-
badStep: "passt nicht zur Schrittweite {step}.",
|
|
358
|
-
notText: "muss Text sein.",
|
|
359
|
-
tooLong: "ist zu lang (höchstens {max} Zeichen).",
|
|
360
|
-
badChoice: "hat einen ungültigen Wert (erlaubt: {allowed}).",
|
|
361
|
-
badChoices: "hat ungültige Werte (erlaubt: {allowed}).",
|
|
362
|
-
duplicateValues: "enthält Werte doppelt.",
|
|
363
|
-
tooManyChosen: "erlaubt höchstens {max} Werte.",
|
|
364
|
-
badImage: "muss ein Pfad oder eine Web-Adresse sein.",
|
|
365
|
-
notId: "muss eine Eintrags-ID sein.",
|
|
366
|
-
badType: "hat einen nicht erlaubten Typ."
|
|
367
|
-
}
|
|
368
|
-
};
|
|
369
|
-
const links$2 = {
|
|
370
|
-
snippetMissing: "Textbaustein „{name}“ nicht gefunden (Eintrag snippets/{name} mit Feld body).",
|
|
371
|
-
linkBroken: "Link {href} führt zu keinem Eintrag und keiner Seite.",
|
|
372
|
-
linkRedirected: "Link {href} führt über eine Weiterleitung zu {to}.",
|
|
373
|
-
pathUnknown: "Pfad {path} passt zu keinem Eintrag, keiner Seite und keiner Datei in public/.",
|
|
374
|
-
anchorMissing: "Anker #{anchor} fehlt: keine Überschrift mit dieser id.",
|
|
375
|
-
externalBroken: "Externer Link {href} ist kaputt ({reason})."
|
|
376
|
-
};
|
|
377
|
-
const editor$2 = {
|
|
378
|
-
component: {
|
|
379
|
-
unknown: "„{tag}“ gibt es hier nicht.",
|
|
380
|
-
more: "{first} Noch {count} weitere {count, plural, one {Angabe} other {Angaben}} prüfen."
|
|
381
|
-
},
|
|
382
|
-
prop: {
|
|
383
|
-
missing: "{label} fehlt.",
|
|
384
|
-
empty: "{label} ist leer.",
|
|
385
|
-
invalid: "{label} {problem}"
|
|
386
|
-
},
|
|
387
|
-
problem: {
|
|
388
|
-
imageNoDescription: "Dem Bild fehlt die Beschreibung."
|
|
389
|
-
},
|
|
390
|
-
source: {
|
|
391
|
-
unstable: "Der Text bleibt beim Speichern nicht gleich, er wird deshalb als Markdown bearbeitet.",
|
|
392
|
-
lossy: "Der Text lässt sich im Editor nicht verlustfrei darstellen.",
|
|
393
|
-
failed: "Der Text lässt sich im Editor nicht darstellen ({reason})."
|
|
394
|
-
}
|
|
395
|
-
};
|
|
396
|
-
const diff$2 = {
|
|
397
|
-
freshSetting: "{name}: {value}.",
|
|
398
|
-
freshLocales: "Sprachen: {locales}.",
|
|
399
|
-
siteRenamed: "Der Seitenname kann nicht geändert werden.",
|
|
400
|
-
currencyChanged: "Die Währung der Seite kann nicht geändert werden.",
|
|
401
|
-
mainLocaleChanged: "Die Hauptsprache kann nicht geändert werden.",
|
|
402
|
-
localeRemoved: "Sprache „{locale}“ kann nicht entfernt werden.",
|
|
403
|
-
localeOrder: "Neue Sprachen kommen ans Ende der Liste.",
|
|
404
|
-
localeAdded: "Neue Sprache „{locale}“.",
|
|
405
|
-
timezoneChanged: "Zeitzone kann nicht geändert werden.",
|
|
406
|
-
valueChanged: "{name} geändert.",
|
|
407
|
-
pagesChanged: "Statische Seiten geändert.",
|
|
408
|
-
agentsChanged: "Prüfung für KI-Änderungen geändert.",
|
|
409
|
-
tasksChanged: "Aufgaben geändert.",
|
|
410
|
-
retiredBack: "„{path}“ war zurückgezogen und kann nicht zurückkommen.",
|
|
411
|
-
unretired: "„{path}“ war zurückgezogen.",
|
|
412
|
-
retiredRuleChanged: "Die Regel für „{path}“ kann nicht geändert werden.",
|
|
413
|
-
retiredNow: "„{path}“ wird zurückgezogen.",
|
|
414
|
-
migrationChanged: "Migration „{id}“ hat sich geändert.",
|
|
415
|
-
migrationFillsExisting: "Migration „{id}“ füllt „{target}“, das es schon gibt.",
|
|
416
|
-
migrationAdded: "Neue Migration „{id}“.",
|
|
417
|
-
migrationDropped: "Migration „{id}“ ist nicht mehr in der Config.",
|
|
418
|
-
brickRemoved: "Baustein „{key}“ fehlt.",
|
|
419
|
-
brickAdded: "Neuer Baustein „{key}“.",
|
|
420
|
-
singleWithoutDefault: "Neues Einzelstück: Pflichtfeld „{name}“ braucht einen default.",
|
|
421
|
-
unknownChange: "„{at}“: Eigenschaft „{prop}“ geändert, das ist nicht vorgesehen.",
|
|
422
|
-
kindChanged: "„{key}“ wechselt zwischen Einzelstück und Sammlung.",
|
|
423
|
-
textChanged: "Text geändert.",
|
|
424
|
-
maxLowered: "„{at}“: max kann nicht kleiner werden.",
|
|
425
|
-
maxRaised: "max erhöht.",
|
|
426
|
-
routeAdded: "Detailseiten neu.",
|
|
427
|
-
routeAddedLocale: "Adresse für die neue Sprache.",
|
|
428
|
-
routeChanged: "„{key}“: Adressen (route) können nicht geändert werden.",
|
|
429
|
-
fieldRemoved: "Feld „{at}“ fehlt.",
|
|
430
|
-
fieldAdded: "Neues Feld „{at}“.",
|
|
431
|
-
fieldAddedDefault: "Neues Pflichtfeld „{at}“ mit default.",
|
|
432
|
-
fieldAddedMigration: "Neues Pflichtfeld „{at}“, gefüllt durch Migration.",
|
|
433
|
-
requiredWithoutDefault: "Neues Pflichtfeld „{at}“ ohne default oder Migration.",
|
|
434
|
-
typeChanged: "„{at}“: Typ {from} → {to}.",
|
|
435
|
-
retiredFieldChanged: "„{at}“: Ein zurückgezogenes Feld behält seine production-Definition.",
|
|
436
|
-
madeRequired: "„{at}“: optional → Pflicht.",
|
|
437
|
-
madeOptional: "„{at}“ ist jetzt optional.",
|
|
438
|
-
translationChanged: "„{at}“: Übersetzbarkeit geändert.",
|
|
439
|
-
defaultChanged: "„{at}“: default kann nicht geändert werden.",
|
|
440
|
-
minRaised: "„{at}“: min kann nicht größer werden.",
|
|
441
|
-
minLowered: "min verkleinert.",
|
|
442
|
-
minOffGrid: "„{at}“: min kann nur um ein Vielfaches der Schrittweite {step} kleiner werden.",
|
|
443
|
-
propChanged: "„{at}“: {prop} kann nicht geändert werden.",
|
|
444
|
-
optionRemoved: "„{at}“: Option „{option}“ fehlt.",
|
|
445
|
-
optionRenamed: "Option umbenannt.",
|
|
446
|
-
optionAdded: "Neue Option „{option}“.",
|
|
447
|
-
uniqueChanged: "„{at}“: unique kann nicht neu gesetzt oder geändert werden.",
|
|
448
|
-
uniqueDropped: "„{at}“: unique entfällt.",
|
|
449
|
-
fix: {
|
|
450
|
-
newField: "Neues Feld anlegen, mit einer Migration füllen und das alte Feld unter `retired` eintragen.",
|
|
451
|
-
newFieldOnly: "Ein neues Feld anlegen.",
|
|
452
|
-
newSite: "Eine neue Seite anlegen.",
|
|
453
|
-
moneyFields: "money-Felder mit fester `currency` neu anlegen.",
|
|
454
|
-
planMigration: "Mit eurer Entwicklerin oder eurem Entwickler eine Migration planen.",
|
|
455
|
-
keepLocale: "Sprache behalten; Seiten in dieser Sprache können ausgeblendet werden.",
|
|
456
|
-
keepLocaleOrder: "Reihenfolge der bestehenden Sprachen beibehalten.",
|
|
457
|
-
keepTimezone: "Zeitzone beibehalten.",
|
|
458
|
-
keepRule: "Regel unverändert lassen.",
|
|
459
|
-
newMigrationId: "Eine Reparatur bekommt eine neue ID.",
|
|
460
|
-
fillNewFieldsOnly: "Nur neue Felder füllen; für bestehende ein neues Feld anlegen.",
|
|
461
|
-
retireBrick: "Baustein unter `retired` eintragen statt ihn zu löschen.",
|
|
462
|
-
defaultOrOptional: "`default` angeben oder das Feld optional machen.",
|
|
463
|
-
keepProperty: "Eigenschaft beibehalten.",
|
|
464
|
-
keepMax: "max beibehalten.",
|
|
465
|
-
keepRoute: "Route beibehalten.",
|
|
466
|
-
defaultMigrationOrOptional: "`default` angeben, eine Migration schreiben oder das Feld optional machen.",
|
|
467
|
-
keepDefinition: "Definition unverändert lassen; nur Texte dürfen sich ändern.",
|
|
468
|
-
keepDefault: "default beibehalten.",
|
|
469
|
-
keepMin: "min beibehalten.",
|
|
470
|
-
minOnGrid: "min so senken, dass der Unterschied ein Vielfaches von step ist.",
|
|
471
|
-
keepOption: "Option behalten; sie kann umbenannt (label) werden.",
|
|
472
|
-
newList: "Neue Liste anlegen und mit einer Migration füllen."
|
|
473
|
-
}
|
|
474
|
-
};
|
|
475
|
-
const preview$2 = {
|
|
476
|
-
notFound: "Diese Seite gibt es nicht.",
|
|
477
|
-
failed: "Die Vorschau lädt nicht.",
|
|
478
|
-
loading: "Vorschau wird geladen …"
|
|
479
|
-
};
|
|
480
|
-
const de = {
|
|
481
|
-
issues: issues$2,
|
|
482
|
-
file: file$2,
|
|
483
|
-
markdown: markdown$2,
|
|
484
|
-
component: component$2,
|
|
485
|
-
links: links$2,
|
|
486
|
-
editor: editor$2,
|
|
487
|
-
diff: diff$2,
|
|
488
|
-
preview: preview$2
|
|
489
|
-
};
|
|
490
|
-
|
|
491
|
-
const issues$1 = {
|
|
492
|
-
unknownBrick: "There is no brick “{brick}”.",
|
|
493
|
-
markdown: "“{label}”: {problem}",
|
|
494
|
-
notObject: "An object is expected.",
|
|
495
|
-
unknownField: "Unknown field.",
|
|
496
|
-
fieldMissing: "“{label}” is missing.",
|
|
497
|
-
notLocalized: "“{label}” must be stored per language.",
|
|
498
|
-
unknownLocale: "The language “{locale}” is not set up.",
|
|
499
|
-
fieldEmpty: "“{label}” is empty.",
|
|
500
|
-
notText: "“{label}” must be text.",
|
|
501
|
-
tooLong: "“{label}” is too long (at most {max} characters).",
|
|
502
|
-
controlChars: "“{label}” contains invisible control characters.",
|
|
503
|
-
badFormat: "“{label}” has no valid format.",
|
|
504
|
-
badSlug: "“{label}” is not a valid address.",
|
|
505
|
-
notNumber: "“{label}” must be a number.",
|
|
506
|
-
outOfRange: "“{label}” must be between {min} and {max}.",
|
|
507
|
-
badStep: "“{label}” does not fit the step size {step}.",
|
|
508
|
-
notMoney: "“{label}” must be an amount in cents.",
|
|
509
|
-
moneyOutOfRange: "“{label}” is outside the limits.",
|
|
510
|
-
notBoolean: "“{label}” must be yes or no.",
|
|
511
|
-
badDate: "“{label}” is not a valid date.",
|
|
512
|
-
badTime: "“{label}” is not a valid time.",
|
|
513
|
-
badDateRange: "“{label}” is not a valid period.",
|
|
514
|
-
dateRangeOrder: "“{label}”: “from” is after “to”.",
|
|
515
|
-
badChoice: "“{label}” has an invalid value.",
|
|
516
|
-
badChoices: "“{label}” has invalid values.",
|
|
517
|
-
duplicateValues: "“{label}” contains values twice.",
|
|
518
|
-
tooManyChosen: "“{label}”: at most {max}.",
|
|
519
|
-
notIdList: "“{label}” must be a list of entry IDs.",
|
|
520
|
-
notId: "“{label}” must be an entry ID.",
|
|
521
|
-
duplicateEntries: "“{label}” contains entries twice.",
|
|
522
|
-
refGone: "“{label}”: The entry no longer exists.",
|
|
523
|
-
notList: "“{label}” must be a list.",
|
|
524
|
-
tooManyRows: "“{label}” has too many items (at most {max}).",
|
|
525
|
-
tooFewRows: "“{label}” needs at least {min} items.",
|
|
526
|
-
duplicateRowValue: "“{label}”: “{value}” appears more than once.",
|
|
527
|
-
badRowId: "“{label}”: Row {row} has no valid ID.",
|
|
528
|
-
duplicateRowId: "“{label}”: Row ID appears twice.",
|
|
529
|
-
notImage: "“{label}” is not a valid image.",
|
|
530
|
-
altMissing: "“{label}”: The image description (alt text) is missing.",
|
|
531
|
-
altTooLong: "“{label}”: Alt text is too long.",
|
|
532
|
-
notFile: "“{label}” is not a valid file."
|
|
533
|
-
};
|
|
534
|
-
const file$1 = {
|
|
535
|
-
typeNotAllowed: "This file type is not allowed (allowed: {allowed}).",
|
|
536
|
-
tooBig: "The file is too large (at most {max, number} MB)."
|
|
537
|
-
};
|
|
538
|
-
const markdown$1 = {
|
|
539
|
-
profile: {
|
|
540
|
-
inline: "only text with bold, italic, code and links",
|
|
541
|
-
basic: "paragraphs, headings, lists (also with checkboxes), quotes, notices and footnotes",
|
|
542
|
-
rich: "also tables, images, code blocks, formulas and diagrams",
|
|
543
|
-
page: "also components"
|
|
544
|
-
},
|
|
545
|
-
tagBlocked: "“{tag}” is not allowed.",
|
|
546
|
-
tagNotInProfile: "“{tag}” is not allowed here ({allowed}).",
|
|
547
|
-
propBlocked: "The property “{prop}” is not allowed.",
|
|
548
|
-
unsafeLink: "Link is not allowed (only http, https, mailto, tel or /path).",
|
|
549
|
-
oneParagraph: "Only one paragraph is allowed here.",
|
|
550
|
-
tooComplex: "Text is too complex (at most {max} elements)."
|
|
551
|
-
};
|
|
552
|
-
const component$1 = {
|
|
553
|
-
or: "{first} or {second}",
|
|
554
|
-
and: "{first}, {second}",
|
|
555
|
-
quoted: "“{name}”",
|
|
556
|
-
unknown: "There is no component “{tag}”.",
|
|
557
|
-
propUnknown: "Component “{tag}”: There is no property “{prop}”.",
|
|
558
|
-
propInvalid: "Component “{tag}”: property “{prop}” {problem}",
|
|
559
|
-
propMissing: "Component “{tag}”: property “{prop}” is missing.",
|
|
560
|
-
propEmpty: "Component “{tag}”: property “{prop}” is empty.",
|
|
561
|
-
blockInParagraph: "Component “{tag}” is a block and does not belong in a paragraph.",
|
|
562
|
-
parentOnly: "Component “{tag}” may only appear in {parents}.",
|
|
563
|
-
slotUnknown: "Component “{tag}”: There is no area “{slot}” (allowed: {allowed}).",
|
|
564
|
-
noSlots: "Component “{tag}”: has no areas, “{slot}” is not allowed.",
|
|
565
|
-
childNotAllowed: "Component “{tag}” may only contain {children}, not “{child}”.",
|
|
566
|
-
prop: {
|
|
567
|
-
notBoolean: "must be “true” or “false”.",
|
|
568
|
-
notNumber: "must be a number.",
|
|
569
|
-
outOfRange: "must be between {min} and {max}.",
|
|
570
|
-
badStep: "does not fit the step size {step}.",
|
|
571
|
-
notText: "must be text.",
|
|
572
|
-
tooLong: "is too long (at most {max} characters).",
|
|
573
|
-
badChoice: "has an invalid value (allowed: {allowed}).",
|
|
574
|
-
badChoices: "has invalid values (allowed: {allowed}).",
|
|
575
|
-
duplicateValues: "contains values twice.",
|
|
576
|
-
tooManyChosen: "allows at most {max} values.",
|
|
577
|
-
badImage: "must be a path or a web address.",
|
|
578
|
-
notId: "must be an entry ID.",
|
|
579
|
-
badType: "has a type that is not allowed."
|
|
580
|
-
}
|
|
581
|
-
};
|
|
582
|
-
const links$1 = {
|
|
583
|
-
snippetMissing: "Text snippet “{name}” not found (entry snippets/{name} with field body).",
|
|
584
|
-
linkBroken: "Link {href} leads to no entry and no page.",
|
|
585
|
-
linkRedirected: "Link {href} leads to {to} through a redirect.",
|
|
586
|
-
pathUnknown: "Path {path} matches no entry, no page and no file in public/.",
|
|
587
|
-
anchorMissing: "Anchor #{anchor} is missing: no heading with this id.",
|
|
588
|
-
externalBroken: "External link {href} is broken ({reason})."
|
|
589
|
-
};
|
|
590
|
-
const editor$1 = {
|
|
591
|
-
component: {
|
|
592
|
-
unknown: "“{tag}” does not exist here.",
|
|
593
|
-
more: "{first} Check {count} more {count, plural, one {setting} other {settings}}."
|
|
594
|
-
},
|
|
595
|
-
prop: {
|
|
596
|
-
missing: "{label} is missing.",
|
|
597
|
-
empty: "{label} is empty.",
|
|
598
|
-
invalid: "{label} {problem}"
|
|
599
|
-
},
|
|
600
|
-
problem: {
|
|
601
|
-
imageNoDescription: "The image has no description."
|
|
602
|
-
},
|
|
603
|
-
source: {
|
|
604
|
-
unstable: "The text would change when saved, so it is edited as Markdown.",
|
|
605
|
-
lossy: "The text cannot be shown in the editor without losing something.",
|
|
606
|
-
failed: "The text cannot be shown in the editor ({reason})."
|
|
607
|
-
}
|
|
608
|
-
};
|
|
609
|
-
const diff$1 = {
|
|
610
|
-
freshSetting: "{name}: {value}.",
|
|
611
|
-
freshLocales: "Languages: {locales}.",
|
|
612
|
-
siteRenamed: "The site name (`site`) cannot be changed.",
|
|
613
|
-
currencyChanged: "The site currency cannot be changed.",
|
|
614
|
-
mainLocaleChanged: "The main language cannot be changed.",
|
|
615
|
-
localeRemoved: "Language “{locale}” cannot be removed.",
|
|
616
|
-
localeOrder: "New languages go at the end of the list.",
|
|
617
|
-
localeAdded: "New language “{locale}”.",
|
|
618
|
-
timezoneChanged: "The time zone cannot be changed.",
|
|
619
|
-
valueChanged: "{name} changed.",
|
|
620
|
-
pagesChanged: "Static pages changed.",
|
|
621
|
-
agentsChanged: "Review for AI changes changed.",
|
|
622
|
-
tasksChanged: "Tasks changed.",
|
|
623
|
-
retiredBack: "“{path}” was retired and cannot come back.",
|
|
624
|
-
unretired: "“{path}” was retired.",
|
|
625
|
-
retiredRuleChanged: "The rule for “{path}” cannot be changed.",
|
|
626
|
-
retiredNow: "“{path}” is being retired.",
|
|
627
|
-
migrationChanged: "Migration “{id}” has changed.",
|
|
628
|
-
migrationFillsExisting: "Migration “{id}” fills “{target}”, which already exists.",
|
|
629
|
-
migrationAdded: "New migration “{id}”.",
|
|
630
|
-
migrationDropped: "Migration “{id}” is no longer in the config.",
|
|
631
|
-
brickRemoved: "Brick “{key}” is missing.",
|
|
632
|
-
brickAdded: "New brick “{key}”.",
|
|
633
|
-
singleWithoutDefault: "New single: required field “{name}” needs a default.",
|
|
634
|
-
unknownChange: "“{at}”: property “{prop}” changed, which is not allowed.",
|
|
635
|
-
kindChanged: "“{key}” switches between single and collection.",
|
|
636
|
-
textChanged: "Text changed.",
|
|
637
|
-
maxLowered: "“{at}”: max cannot be lowered.",
|
|
638
|
-
maxRaised: "max raised.",
|
|
639
|
-
routeAdded: "New detail pages.",
|
|
640
|
-
routeAddedLocale: "Address for the new language.",
|
|
641
|
-
routeChanged: "“{key}”: addresses (route) cannot be changed.",
|
|
642
|
-
fieldRemoved: "Field “{at}” is missing.",
|
|
643
|
-
fieldAdded: "New field “{at}”.",
|
|
644
|
-
fieldAddedDefault: "New required field “{at}” with default.",
|
|
645
|
-
fieldAddedMigration: "New required field “{at}”, filled by a migration.",
|
|
646
|
-
requiredWithoutDefault: "New required field “{at}” without default or migration.",
|
|
647
|
-
typeChanged: "“{at}”: type {from} → {to}.",
|
|
648
|
-
retiredFieldChanged: "“{at}”: a retired field keeps its production definition.",
|
|
649
|
-
madeRequired: "“{at}”: optional → required.",
|
|
650
|
-
madeOptional: "“{at}” is now optional.",
|
|
651
|
-
translationChanged: "“{at}”: translatability changed.",
|
|
652
|
-
defaultChanged: "“{at}”: default cannot be changed.",
|
|
653
|
-
minRaised: "“{at}”: min cannot be raised.",
|
|
654
|
-
minLowered: "min lowered.",
|
|
655
|
-
minOffGrid: "“{at}”: min can only be lowered by a multiple of the step {step}.",
|
|
656
|
-
propChanged: "“{at}”: {prop} cannot be changed.",
|
|
657
|
-
optionRemoved: "“{at}”: option “{option}” is missing.",
|
|
658
|
-
optionRenamed: "Option renamed.",
|
|
659
|
-
optionAdded: "New option “{option}”.",
|
|
660
|
-
uniqueChanged: "“{at}”: unique cannot be set or changed.",
|
|
661
|
-
uniqueDropped: "“{at}”: unique removed.",
|
|
662
|
-
fix: {
|
|
663
|
-
newField: "Add a new field, fill it with a migration and list the old field under `retired`.",
|
|
664
|
-
newFieldOnly: "Add a new field.",
|
|
665
|
-
newSite: "Create a new site.",
|
|
666
|
-
moneyFields: "Add new money fields with a fixed `currency`.",
|
|
667
|
-
planMigration: "Plan a migration with your developer.",
|
|
668
|
-
keepLocale: "Keep the language; pages in it can be hidden.",
|
|
669
|
-
keepLocaleOrder: "Keep the order of the existing languages.",
|
|
670
|
-
keepTimezone: "Keep the time zone.",
|
|
671
|
-
keepRule: "Leave the rule as it is.",
|
|
672
|
-
newMigrationId: "A repair gets a new ID.",
|
|
673
|
-
fillNewFieldsOnly: "Fill only new fields; for an existing one, add a new field.",
|
|
674
|
-
retireBrick: "List the brick under `retired` instead of deleting it.",
|
|
675
|
-
defaultOrOptional: "Set a `default` or make the field optional.",
|
|
676
|
-
keepProperty: "Keep the property.",
|
|
677
|
-
keepMax: "Keep max.",
|
|
678
|
-
keepRoute: "Keep the route.",
|
|
679
|
-
defaultMigrationOrOptional: "Set a `default`, write a migration or make the field optional.",
|
|
680
|
-
keepDefinition: "Leave the definition as it is; only texts may change.",
|
|
681
|
-
keepDefault: "Keep the default.",
|
|
682
|
-
keepMin: "Keep min.",
|
|
683
|
-
minOnGrid: "Lower min so that the difference is a multiple of step.",
|
|
684
|
-
keepOption: "Keep the option; it can be renamed (label).",
|
|
685
|
-
newList: "Add a new list and fill it with a migration."
|
|
686
|
-
}
|
|
687
|
-
};
|
|
688
|
-
const preview$1 = {
|
|
689
|
-
notFound: "This page does not exist.",
|
|
690
|
-
failed: "The preview does not load.",
|
|
691
|
-
loading: "Loading the preview …"
|
|
692
|
-
};
|
|
693
|
-
const en = {
|
|
694
|
-
issues: issues$1,
|
|
695
|
-
file: file$1,
|
|
696
|
-
markdown: markdown$1,
|
|
697
|
-
component: component$1,
|
|
698
|
-
links: links$1,
|
|
699
|
-
editor: editor$1,
|
|
700
|
-
diff: diff$1,
|
|
701
|
-
preview: preview$1
|
|
702
|
-
};
|
|
703
|
-
|
|
704
|
-
const issues = {
|
|
705
|
-
unknownBrick: "No existe el bloque “{brick}”.",
|
|
706
|
-
markdown: "“{label}”: {problem}",
|
|
707
|
-
notObject: "Se espera un objeto.",
|
|
708
|
-
unknownField: "Campo desconocido.",
|
|
709
|
-
fieldMissing: "Falta “{label}”.",
|
|
710
|
-
notLocalized: "“{label}” debe guardarse por idioma.",
|
|
711
|
-
unknownLocale: "El idioma “{locale}” no está configurado.",
|
|
712
|
-
fieldEmpty: "No hay contenido en “{label}”.",
|
|
713
|
-
notText: "“{label}” debe ser texto.",
|
|
714
|
-
tooLong: "“{label}” es demasiado largo (máximo {max} caracteres).",
|
|
715
|
-
controlChars: "“{label}” contiene caracteres de control invisibles.",
|
|
716
|
-
badFormat: "“{label}” no tiene un formato válido.",
|
|
717
|
-
badSlug: "“{label}” no es una dirección válida.",
|
|
718
|
-
notNumber: "“{label}” debe ser un número.",
|
|
719
|
-
outOfRange: "“{label}” debe estar entre {min} y {max}.",
|
|
720
|
-
badStep: "“{label}” no encaja con el paso {step}.",
|
|
721
|
-
notMoney: "“{label}” debe ser un importe en céntimos.",
|
|
722
|
-
moneyOutOfRange: "“{label}” está fuera de los límites.",
|
|
723
|
-
notBoolean: "“{label}” debe ser sí o no.",
|
|
724
|
-
badDate: "“{label}” no es una fecha válida.",
|
|
725
|
-
badTime: "“{label}” no es una hora válida.",
|
|
726
|
-
badDateRange: "“{label}” no es un período válido.",
|
|
727
|
-
dateRangeOrder: "“{label}”: “desde” es posterior a “hasta”.",
|
|
728
|
-
badChoice: "“{label}” tiene un valor no válido.",
|
|
729
|
-
badChoices: "“{label}” tiene valores no válidos.",
|
|
730
|
-
duplicateValues: "“{label}” contiene valores repetidos.",
|
|
731
|
-
tooManyChosen: "“{label}”: máximo {max}.",
|
|
732
|
-
notIdList: "“{label}” debe ser una lista de ID de entradas.",
|
|
733
|
-
notId: "“{label}” debe ser un ID de entrada.",
|
|
734
|
-
duplicateEntries: "“{label}” contiene entradas repetidas.",
|
|
735
|
-
refGone: "“{label}”: la entrada ya no existe.",
|
|
736
|
-
notList: "“{label}” debe ser una lista.",
|
|
737
|
-
tooManyRows: "“{label}” tiene demasiados elementos (máximo {max}).",
|
|
738
|
-
tooFewRows: "“{label}” necesita al menos {min} elementos.",
|
|
739
|
-
duplicateRowValue: "“{label}”: “{value}” aparece más de una vez.",
|
|
740
|
-
badRowId: "“{label}”: la fila {row} no tiene un ID válido.",
|
|
741
|
-
duplicateRowId: "“{label}”: el ID de fila aparece dos veces.",
|
|
742
|
-
notImage: "“{label}” no es una imagen válida.",
|
|
743
|
-
altMissing: "“{label}”: falta la descripción de la imagen (texto alternativo).",
|
|
744
|
-
altTooLong: "“{label}”: el texto alternativo es demasiado largo.",
|
|
745
|
-
notFile: "“{label}” no es un archivo válido."
|
|
746
|
-
};
|
|
747
|
-
const file = {
|
|
748
|
-
typeNotAllowed: "Este tipo de archivo no está permitido (permitidos: {allowed}).",
|
|
749
|
-
tooBig: "El archivo es demasiado grande (máximo {max, number} MB)."
|
|
750
|
-
};
|
|
751
|
-
const markdown = {
|
|
752
|
-
profile: {
|
|
753
|
-
inline: "solo texto con negrita, cursiva, código y enlaces",
|
|
754
|
-
basic: "párrafos, títulos, listas (también con casillas), citas, avisos y notas al pie",
|
|
755
|
-
rich: "además tablas, imágenes, bloques de código, fórmulas y diagramas",
|
|
756
|
-
page: "además componentes"
|
|
757
|
-
},
|
|
758
|
-
tagBlocked: "“{tag}” no está permitido.",
|
|
759
|
-
tagNotInProfile: "“{tag}” no está permitido aquí ({allowed}).",
|
|
760
|
-
propBlocked: "La propiedad “{prop}” no está permitida.",
|
|
761
|
-
unsafeLink: "Enlace no permitido (solo http, https, mailto, tel o /ruta).",
|
|
762
|
-
oneParagraph: "Aquí solo se permite un párrafo.",
|
|
763
|
-
tooComplex: "El texto es demasiado complejo (máximo {max} elementos)."
|
|
764
|
-
};
|
|
765
|
-
const component = {
|
|
766
|
-
or: "{first} o {second}",
|
|
767
|
-
and: "{first}, {second}",
|
|
768
|
-
quoted: "“{name}”",
|
|
769
|
-
unknown: "No existe el componente “{tag}”.",
|
|
770
|
-
propUnknown: "Componente “{tag}”: no existe la propiedad “{prop}”.",
|
|
771
|
-
propInvalid: "Componente “{tag}”: la propiedad “{prop}” {problem}",
|
|
772
|
-
propMissing: "Componente “{tag}”: falta la propiedad “{prop}”.",
|
|
773
|
-
propEmpty: "Componente “{tag}”: la propiedad “{prop}” está vacía.",
|
|
774
|
-
blockInParagraph: "El componente “{tag}” es un bloque y no va dentro de un párrafo.",
|
|
775
|
-
parentOnly: "El componente “{tag}” solo puede aparecer en {parents}.",
|
|
776
|
-
slotUnknown: "Componente “{tag}”: no existe el área “{slot}” (permitidas: {allowed}).",
|
|
777
|
-
noSlots: "Componente “{tag}”: no tiene áreas, “{slot}” no está permitida.",
|
|
778
|
-
childNotAllowed: "El componente “{tag}” solo puede contener {children}, no “{child}”.",
|
|
779
|
-
prop: {
|
|
780
|
-
notBoolean: "debe ser “true” o “false”.",
|
|
781
|
-
notNumber: "debe ser un número.",
|
|
782
|
-
outOfRange: "debe estar entre {min} y {max}.",
|
|
783
|
-
badStep: "no encaja con el paso {step}.",
|
|
784
|
-
notText: "debe ser texto.",
|
|
785
|
-
tooLong: "tiene demasiados caracteres (máximo {max}).",
|
|
786
|
-
badChoice: "tiene un valor no válido (permitidos: {allowed}).",
|
|
787
|
-
badChoices: "tiene valores no válidos (permitidos: {allowed}).",
|
|
788
|
-
duplicateValues: "contiene valores repetidos.",
|
|
789
|
-
tooManyChosen: "permite como máximo {max} valores.",
|
|
790
|
-
badImage: "debe ser una ruta o una dirección web.",
|
|
791
|
-
notId: "debe ser un ID de entrada.",
|
|
792
|
-
badType: "tiene un tipo que no está permitido."
|
|
793
|
-
}
|
|
794
|
-
};
|
|
795
|
-
const links = {
|
|
796
|
-
snippetMissing: "No se encontró el fragmento de texto “{name}” (entrada snippets/{name} con el campo body).",
|
|
797
|
-
linkBroken: "El enlace {href} no lleva a ninguna entrada ni página.",
|
|
798
|
-
linkRedirected: "El enlace {href} lleva a {to} mediante una redirección.",
|
|
799
|
-
pathUnknown: "La ruta {path} no coincide con ninguna entrada, página ni archivo de public/.",
|
|
800
|
-
anchorMissing: "Falta el ancla #{anchor}: no hay ningún título con este id.",
|
|
801
|
-
externalBroken: "El enlace externo {href} está roto ({reason})."
|
|
802
|
-
};
|
|
803
|
-
const editor = {
|
|
804
|
-
component: {
|
|
805
|
-
unknown: "“{tag}” no existe aquí.",
|
|
806
|
-
more: "{first} Revisa {count} {count, plural, one {ajuste} other {ajustes}} más."
|
|
807
|
-
},
|
|
808
|
-
prop: {
|
|
809
|
-
missing: "Falta {label}.",
|
|
810
|
-
empty: "No hay contenido en {label}.",
|
|
811
|
-
invalid: "{label} {problem}"
|
|
812
|
-
},
|
|
813
|
-
problem: {
|
|
814
|
-
imageNoDescription: "La imagen no tiene descripción."
|
|
815
|
-
},
|
|
816
|
-
source: {
|
|
817
|
-
unstable: "El texto cambiaría al guardarse, por eso se edita como Markdown.",
|
|
818
|
-
lossy: "El texto no se puede mostrar en el editor sin perder algo.",
|
|
819
|
-
failed: "El texto no se puede mostrar en el editor ({reason})."
|
|
820
|
-
}
|
|
821
|
-
};
|
|
822
|
-
const diff = {
|
|
823
|
-
freshSetting: "{name}: {value}.",
|
|
824
|
-
freshLocales: "Idiomas: {locales}.",
|
|
825
|
-
siteRenamed: "El nombre del sitio (`site`) no se puede cambiar.",
|
|
826
|
-
currencyChanged: "La moneda del sitio no se puede cambiar.",
|
|
827
|
-
mainLocaleChanged: "El idioma principal no se puede cambiar.",
|
|
828
|
-
localeRemoved: "El idioma “{locale}” no se puede eliminar.",
|
|
829
|
-
localeOrder: "Los idiomas nuevos van al final de la lista.",
|
|
830
|
-
localeAdded: "Idioma nuevo “{locale}”.",
|
|
831
|
-
timezoneChanged: "La zona horaria no se puede cambiar.",
|
|
832
|
-
valueChanged: "{name} ha cambiado.",
|
|
833
|
-
pagesChanged: "Las páginas estáticas han cambiado.",
|
|
834
|
-
agentsChanged: "Ha cambiado la revisión de los cambios de IA.",
|
|
835
|
-
tasksChanged: "Las tareas han cambiado.",
|
|
836
|
-
retiredBack: "“{path}” se retiró y no puede volver.",
|
|
837
|
-
unretired: "“{path}” se retiró.",
|
|
838
|
-
retiredRuleChanged: "La regla de “{path}” no se puede cambiar.",
|
|
839
|
-
retiredNow: "“{path}” se está retirando.",
|
|
840
|
-
migrationChanged: "La migración “{id}” ha cambiado.",
|
|
841
|
-
migrationFillsExisting: "La migración “{id}” rellena “{target}”, que ya existe.",
|
|
842
|
-
migrationAdded: "Migración nueva “{id}”.",
|
|
843
|
-
migrationDropped: "La migración “{id}” ya no está en la configuración.",
|
|
844
|
-
brickRemoved: "Falta el bloque “{key}”.",
|
|
845
|
-
brickAdded: "Bloque nuevo “{key}”.",
|
|
846
|
-
singleWithoutDefault: "Bloque único nuevo: el campo obligatorio “{name}” necesita un valor predeterminado.",
|
|
847
|
-
unknownChange: "“{at}”: la propiedad “{prop}” ha cambiado, y eso no está permitido.",
|
|
848
|
-
kindChanged: "“{key}” cambia entre bloque único y colección.",
|
|
849
|
-
textChanged: "El texto ha cambiado.",
|
|
850
|
-
maxLowered: "“{at}”: max no se puede reducir.",
|
|
851
|
-
maxRaised: "max aumentado.",
|
|
852
|
-
routeAdded: "Páginas de detalle nuevas.",
|
|
853
|
-
routeAddedLocale: "Dirección para el idioma nuevo.",
|
|
854
|
-
routeChanged: "“{key}”: las direcciones (route) no se pueden cambiar.",
|
|
855
|
-
fieldRemoved: "Falta el campo “{at}”.",
|
|
856
|
-
fieldAdded: "Campo nuevo “{at}”.",
|
|
857
|
-
fieldAddedDefault: "Campo obligatorio nuevo “{at}” con valor predeterminado.",
|
|
858
|
-
fieldAddedMigration: "Campo obligatorio nuevo “{at}”, rellenado por una migración.",
|
|
859
|
-
requiredWithoutDefault: "Campo obligatorio nuevo “{at}” sin valor predeterminado ni migración.",
|
|
860
|
-
typeChanged: "“{at}”: tipo {from} → {to}.",
|
|
861
|
-
retiredFieldChanged: "“{at}”: un campo retirado conserva su definición de producción.",
|
|
862
|
-
madeRequired: "“{at}”: opcional → obligatorio.",
|
|
863
|
-
madeOptional: "“{at}” ahora es opcional.",
|
|
864
|
-
translationChanged: "“{at}”: ha cambiado si se puede traducir.",
|
|
865
|
-
defaultChanged: "“{at}”: el valor predeterminado no se puede cambiar.",
|
|
866
|
-
minRaised: "“{at}”: min no se puede aumentar.",
|
|
867
|
-
minLowered: "min reducido.",
|
|
868
|
-
minOffGrid: "“{at}”: min solo se puede reducir en un múltiplo del paso {step}.",
|
|
869
|
-
propChanged: "“{at}”: {prop} no se puede cambiar.",
|
|
870
|
-
optionRemoved: "“{at}”: falta la opción “{option}”.",
|
|
871
|
-
optionRenamed: "Opción renombrada.",
|
|
872
|
-
optionAdded: "Opción nueva “{option}”.",
|
|
873
|
-
uniqueChanged: "“{at}”: unique no se puede definir ni cambiar.",
|
|
874
|
-
uniqueDropped: "“{at}”: unique eliminado.",
|
|
875
|
-
fix: {
|
|
876
|
-
newField: "Añade un campo nuevo, rellénalo con una migración y lista el campo anterior en `retired`.",
|
|
877
|
-
newFieldOnly: "Añade un campo nuevo.",
|
|
878
|
-
newSite: "Crea un sitio nuevo.",
|
|
879
|
-
moneyFields: "Añade campos de dinero nuevos con una `currency` fija.",
|
|
880
|
-
planMigration: "Planifica una migración con tu desarrollador.",
|
|
881
|
-
keepLocale: "Conserva el idioma; las páginas en ese idioma se pueden ocultar.",
|
|
882
|
-
keepLocaleOrder: "Conserva el orden de los idiomas existentes.",
|
|
883
|
-
keepTimezone: "Conserva la zona horaria.",
|
|
884
|
-
keepRule: "Deja la regla como está.",
|
|
885
|
-
newMigrationId: "Una reparación recibe un ID nuevo.",
|
|
886
|
-
fillNewFieldsOnly: "Rellena solo campos nuevos; para uno existente, añade un campo nuevo.",
|
|
887
|
-
retireBrick: "Lista el bloque en `retired` en lugar de eliminarlo.",
|
|
888
|
-
defaultOrOptional: "Define un valor `default` o haz el campo opcional.",
|
|
889
|
-
keepProperty: "Conserva la propiedad.",
|
|
890
|
-
keepMax: "Conserva max.",
|
|
891
|
-
keepRoute: "Conserva la route.",
|
|
892
|
-
defaultMigrationOrOptional: "Define un valor `default`, escribe una migración o haz el campo opcional.",
|
|
893
|
-
keepDefinition: "Deja la definición como está; solo pueden cambiar los textos.",
|
|
894
|
-
keepDefault: "Conserva el valor predeterminado.",
|
|
895
|
-
keepMin: "Conserva min.",
|
|
896
|
-
minOnGrid: "Reduce min para que la diferencia sea un múltiplo de step.",
|
|
897
|
-
keepOption: "Conserva la opción; se puede renombrar (label).",
|
|
898
|
-
newList: "Añade una lista nueva y rellénala con una migración."
|
|
899
|
-
}
|
|
900
|
-
};
|
|
901
|
-
const preview = {
|
|
902
|
-
notFound: "Esta página no existe.",
|
|
903
|
-
failed: "La vista previa no se carga.",
|
|
904
|
-
loading: "Cargando la vista previa …"
|
|
905
|
-
};
|
|
906
|
-
const es = {
|
|
907
|
-
issues: issues,
|
|
908
|
-
file: file,
|
|
909
|
-
markdown: markdown,
|
|
910
|
-
component: component,
|
|
911
|
-
links: links,
|
|
912
|
-
editor: editor,
|
|
913
|
-
diff: diff,
|
|
914
|
-
preview: preview
|
|
915
|
-
};
|
|
916
|
-
|
|
917
|
-
const compiled = {
|
|
918
|
-
"de": {
|
|
919
|
-
"issues": {
|
|
920
|
-
"unknownBrick": [
|
|
921
|
-
"Baustein \u201E",
|
|
922
|
-
[
|
|
923
|
-
"a",
|
|
924
|
-
"brick"
|
|
925
|
-
],
|
|
926
|
-
"\u201C gibt es nicht."
|
|
927
|
-
],
|
|
928
|
-
"markdown": [
|
|
929
|
-
"\u201E",
|
|
930
|
-
[
|
|
931
|
-
"a",
|
|
932
|
-
"label"
|
|
933
|
-
],
|
|
934
|
-
"\u201C: ",
|
|
935
|
-
[
|
|
936
|
-
"a",
|
|
937
|
-
"problem"
|
|
938
|
-
]
|
|
939
|
-
],
|
|
940
|
-
"notObject": "Erwartet ein Objekt.",
|
|
941
|
-
"unknownField": "Unbekanntes Feld.",
|
|
942
|
-
"fieldMissing": [
|
|
943
|
-
"\u201E",
|
|
944
|
-
[
|
|
945
|
-
"a",
|
|
946
|
-
"label"
|
|
947
|
-
],
|
|
948
|
-
"\u201C fehlt."
|
|
949
|
-
],
|
|
950
|
-
"notLocalized": [
|
|
951
|
-
"\u201E",
|
|
952
|
-
[
|
|
953
|
-
"a",
|
|
954
|
-
"label"
|
|
955
|
-
],
|
|
956
|
-
"\u201C muss pro Sprache gespeichert sein."
|
|
957
|
-
],
|
|
958
|
-
"unknownLocale": [
|
|
959
|
-
"Sprache \u201E",
|
|
960
|
-
[
|
|
961
|
-
"a",
|
|
962
|
-
"locale"
|
|
963
|
-
],
|
|
964
|
-
"\u201C ist nicht eingerichtet."
|
|
965
|
-
],
|
|
966
|
-
"fieldEmpty": [
|
|
967
|
-
"\u201E",
|
|
968
|
-
[
|
|
969
|
-
"a",
|
|
970
|
-
"label"
|
|
971
|
-
],
|
|
972
|
-
"\u201C ist leer."
|
|
973
|
-
],
|
|
974
|
-
"notText": [
|
|
975
|
-
"\u201E",
|
|
976
|
-
[
|
|
977
|
-
"a",
|
|
978
|
-
"label"
|
|
979
|
-
],
|
|
980
|
-
"\u201C muss Text sein."
|
|
981
|
-
],
|
|
982
|
-
"tooLong": [
|
|
983
|
-
"\u201E",
|
|
984
|
-
[
|
|
985
|
-
"a",
|
|
986
|
-
"label"
|
|
987
|
-
],
|
|
988
|
-
"\u201C ist zu lang (h\xF6chstens ",
|
|
989
|
-
[
|
|
990
|
-
"a",
|
|
991
|
-
"max"
|
|
992
|
-
],
|
|
993
|
-
" Zeichen)."
|
|
994
|
-
],
|
|
995
|
-
"controlChars": [
|
|
996
|
-
"\u201E",
|
|
997
|
-
[
|
|
998
|
-
"a",
|
|
999
|
-
"label"
|
|
1000
|
-
],
|
|
1001
|
-
"\u201C enth\xE4lt unsichtbare Steuerzeichen."
|
|
1002
|
-
],
|
|
1003
|
-
"badFormat": [
|
|
1004
|
-
"\u201E",
|
|
1005
|
-
[
|
|
1006
|
-
"a",
|
|
1007
|
-
"label"
|
|
1008
|
-
],
|
|
1009
|
-
"\u201C hat kein g\xFCltiges Format."
|
|
1010
|
-
],
|
|
1011
|
-
"badSlug": [
|
|
1012
|
-
"\u201E",
|
|
1013
|
-
[
|
|
1014
|
-
"a",
|
|
1015
|
-
"label"
|
|
1016
|
-
],
|
|
1017
|
-
"\u201C ist keine g\xFCltige Adresse."
|
|
1018
|
-
],
|
|
1019
|
-
"notNumber": [
|
|
1020
|
-
"\u201E",
|
|
1021
|
-
[
|
|
1022
|
-
"a",
|
|
1023
|
-
"label"
|
|
1024
|
-
],
|
|
1025
|
-
"\u201C muss eine Zahl sein."
|
|
1026
|
-
],
|
|
1027
|
-
"outOfRange": [
|
|
1028
|
-
"\u201E",
|
|
1029
|
-
[
|
|
1030
|
-
"a",
|
|
1031
|
-
"label"
|
|
1032
|
-
],
|
|
1033
|
-
"\u201C muss zwischen ",
|
|
1034
|
-
[
|
|
1035
|
-
"a",
|
|
1036
|
-
"min"
|
|
1037
|
-
],
|
|
1038
|
-
" und ",
|
|
1039
|
-
[
|
|
1040
|
-
"a",
|
|
1041
|
-
"max"
|
|
1042
|
-
],
|
|
1043
|
-
" liegen."
|
|
1044
|
-
],
|
|
1045
|
-
"badStep": [
|
|
1046
|
-
"\u201E",
|
|
1047
|
-
[
|
|
1048
|
-
"a",
|
|
1049
|
-
"label"
|
|
1050
|
-
],
|
|
1051
|
-
"\u201C passt nicht zur Schrittweite ",
|
|
1052
|
-
[
|
|
1053
|
-
"a",
|
|
1054
|
-
"step"
|
|
1055
|
-
],
|
|
1056
|
-
"."
|
|
1057
|
-
],
|
|
1058
|
-
"notMoney": [
|
|
1059
|
-
"\u201E",
|
|
1060
|
-
[
|
|
1061
|
-
"a",
|
|
1062
|
-
"label"
|
|
1063
|
-
],
|
|
1064
|
-
"\u201C muss ein Betrag in Cent sein."
|
|
1065
|
-
],
|
|
1066
|
-
"moneyOutOfRange": [
|
|
1067
|
-
"\u201E",
|
|
1068
|
-
[
|
|
1069
|
-
"a",
|
|
1070
|
-
"label"
|
|
1071
|
-
],
|
|
1072
|
-
"\u201C liegt au\xDFerhalb der Grenzen."
|
|
1073
|
-
],
|
|
1074
|
-
"notBoolean": [
|
|
1075
|
-
"\u201E",
|
|
1076
|
-
[
|
|
1077
|
-
"a",
|
|
1078
|
-
"label"
|
|
1079
|
-
],
|
|
1080
|
-
"\u201C muss ja oder nein sein."
|
|
1081
|
-
],
|
|
1082
|
-
"badDate": [
|
|
1083
|
-
"\u201E",
|
|
1084
|
-
[
|
|
1085
|
-
"a",
|
|
1086
|
-
"label"
|
|
1087
|
-
],
|
|
1088
|
-
"\u201C ist kein g\xFCltiges Datum."
|
|
1089
|
-
],
|
|
1090
|
-
"badTime": [
|
|
1091
|
-
"\u201E",
|
|
1092
|
-
[
|
|
1093
|
-
"a",
|
|
1094
|
-
"label"
|
|
1095
|
-
],
|
|
1096
|
-
"\u201C ist keine g\xFCltige Uhrzeit."
|
|
1097
|
-
],
|
|
1098
|
-
"badDateRange": [
|
|
1099
|
-
"\u201E",
|
|
1100
|
-
[
|
|
1101
|
-
"a",
|
|
1102
|
-
"label"
|
|
1103
|
-
],
|
|
1104
|
-
"\u201C ist kein g\xFCltiger Zeitraum."
|
|
1105
|
-
],
|
|
1106
|
-
"dateRangeOrder": [
|
|
1107
|
-
"\u201E",
|
|
1108
|
-
[
|
|
1109
|
-
"a",
|
|
1110
|
-
"label"
|
|
1111
|
-
],
|
|
1112
|
-
"\u201C: \u201Evon\u201C liegt nach \u201Ebis\u201C."
|
|
1113
|
-
],
|
|
1114
|
-
"badChoice": [
|
|
1115
|
-
"\u201E",
|
|
1116
|
-
[
|
|
1117
|
-
"a",
|
|
1118
|
-
"label"
|
|
1119
|
-
],
|
|
1120
|
-
"\u201C hat einen ung\xFCltigen Wert."
|
|
1121
|
-
],
|
|
1122
|
-
"badChoices": [
|
|
1123
|
-
"\u201E",
|
|
1124
|
-
[
|
|
1125
|
-
"a",
|
|
1126
|
-
"label"
|
|
1127
|
-
],
|
|
1128
|
-
"\u201C hat ung\xFCltige Werte."
|
|
1129
|
-
],
|
|
1130
|
-
"duplicateValues": [
|
|
1131
|
-
"\u201E",
|
|
1132
|
-
[
|
|
1133
|
-
"a",
|
|
1134
|
-
"label"
|
|
1135
|
-
],
|
|
1136
|
-
"\u201C enth\xE4lt Werte doppelt."
|
|
1137
|
-
],
|
|
1138
|
-
"tooManyChosen": [
|
|
1139
|
-
"\u201E",
|
|
1140
|
-
[
|
|
1141
|
-
"a",
|
|
1142
|
-
"label"
|
|
1143
|
-
],
|
|
1144
|
-
"\u201C: h\xF6chstens ",
|
|
1145
|
-
[
|
|
1146
|
-
"a",
|
|
1147
|
-
"max"
|
|
1148
|
-
],
|
|
1149
|
-
"."
|
|
1150
|
-
],
|
|
1151
|
-
"notIdList": [
|
|
1152
|
-
"\u201E",
|
|
1153
|
-
[
|
|
1154
|
-
"a",
|
|
1155
|
-
"label"
|
|
1156
|
-
],
|
|
1157
|
-
"\u201C muss eine Liste von Eintrags-IDs sein."
|
|
1158
|
-
],
|
|
1159
|
-
"notId": [
|
|
1160
|
-
"\u201E",
|
|
1161
|
-
[
|
|
1162
|
-
"a",
|
|
1163
|
-
"label"
|
|
1164
|
-
],
|
|
1165
|
-
"\u201C muss eine Eintrags-ID sein."
|
|
1166
|
-
],
|
|
1167
|
-
"duplicateEntries": [
|
|
1168
|
-
"\u201E",
|
|
1169
|
-
[
|
|
1170
|
-
"a",
|
|
1171
|
-
"label"
|
|
1172
|
-
],
|
|
1173
|
-
"\u201C enth\xE4lt Eintr\xE4ge doppelt."
|
|
1174
|
-
],
|
|
1175
|
-
"refGone": [
|
|
1176
|
-
"\u201E",
|
|
1177
|
-
[
|
|
1178
|
-
"a",
|
|
1179
|
-
"label"
|
|
1180
|
-
],
|
|
1181
|
-
"\u201C: Der Eintrag gibt es nicht mehr."
|
|
1182
|
-
],
|
|
1183
|
-
"notList": [
|
|
1184
|
-
"\u201E",
|
|
1185
|
-
[
|
|
1186
|
-
"a",
|
|
1187
|
-
"label"
|
|
1188
|
-
],
|
|
1189
|
-
"\u201C muss eine Liste sein."
|
|
1190
|
-
],
|
|
1191
|
-
"tooManyRows": [
|
|
1192
|
-
"\u201E",
|
|
1193
|
-
[
|
|
1194
|
-
"a",
|
|
1195
|
-
"label"
|
|
1196
|
-
],
|
|
1197
|
-
"\u201C hat zu viele Eintr\xE4ge (h\xF6chstens ",
|
|
1198
|
-
[
|
|
1199
|
-
"a",
|
|
1200
|
-
"max"
|
|
1201
|
-
],
|
|
1202
|
-
")."
|
|
1203
|
-
],
|
|
1204
|
-
"tooFewRows": [
|
|
1205
|
-
"\u201E",
|
|
1206
|
-
[
|
|
1207
|
-
"a",
|
|
1208
|
-
"label"
|
|
1209
|
-
],
|
|
1210
|
-
"\u201C braucht mindestens ",
|
|
1211
|
-
[
|
|
1212
|
-
"a",
|
|
1213
|
-
"min"
|
|
1214
|
-
],
|
|
1215
|
-
" Eintr\xE4ge."
|
|
1216
|
-
],
|
|
1217
|
-
"duplicateRowValue": [
|
|
1218
|
-
"\u201E",
|
|
1219
|
-
[
|
|
1220
|
-
"a",
|
|
1221
|
-
"label"
|
|
1222
|
-
],
|
|
1223
|
-
"\u201C: \u201E",
|
|
1224
|
-
[
|
|
1225
|
-
"a",
|
|
1226
|
-
"value"
|
|
1227
|
-
],
|
|
1228
|
-
"\u201C kommt mehrfach vor."
|
|
1229
|
-
],
|
|
1230
|
-
"badRowId": [
|
|
1231
|
-
"\u201E",
|
|
1232
|
-
[
|
|
1233
|
-
"a",
|
|
1234
|
-
"label"
|
|
1235
|
-
],
|
|
1236
|
-
"\u201C: Zeile ",
|
|
1237
|
-
[
|
|
1238
|
-
"a",
|
|
1239
|
-
"row"
|
|
1240
|
-
],
|
|
1241
|
-
" hat keine g\xFCltige ID."
|
|
1242
|
-
],
|
|
1243
|
-
"duplicateRowId": [
|
|
1244
|
-
"\u201E",
|
|
1245
|
-
[
|
|
1246
|
-
"a",
|
|
1247
|
-
"label"
|
|
1248
|
-
],
|
|
1249
|
-
"\u201C: Zeilen-ID doppelt."
|
|
1250
|
-
],
|
|
1251
|
-
"notImage": [
|
|
1252
|
-
"\u201E",
|
|
1253
|
-
[
|
|
1254
|
-
"a",
|
|
1255
|
-
"label"
|
|
1256
|
-
],
|
|
1257
|
-
"\u201C ist kein g\xFCltiges Bild."
|
|
1258
|
-
],
|
|
1259
|
-
"altMissing": [
|
|
1260
|
-
"\u201E",
|
|
1261
|
-
[
|
|
1262
|
-
"a",
|
|
1263
|
-
"label"
|
|
1264
|
-
],
|
|
1265
|
-
"\u201C: Beschreibung des Bildes (Alt-Text) fehlt."
|
|
1266
|
-
],
|
|
1267
|
-
"altTooLong": [
|
|
1268
|
-
"\u201E",
|
|
1269
|
-
[
|
|
1270
|
-
"a",
|
|
1271
|
-
"label"
|
|
1272
|
-
],
|
|
1273
|
-
"\u201C: Alt-Text zu lang."
|
|
1274
|
-
],
|
|
1275
|
-
"notFile": [
|
|
1276
|
-
"\u201E",
|
|
1277
|
-
[
|
|
1278
|
-
"a",
|
|
1279
|
-
"label"
|
|
1280
|
-
],
|
|
1281
|
-
"\u201C ist keine g\xFCltige Datei."
|
|
1282
|
-
]
|
|
1283
|
-
},
|
|
1284
|
-
"file": {
|
|
1285
|
-
"typeNotAllowed": [
|
|
1286
|
-
"Dieser Dateityp ist nicht erlaubt (erlaubt: ",
|
|
1287
|
-
[
|
|
1288
|
-
"a",
|
|
1289
|
-
"allowed"
|
|
1290
|
-
],
|
|
1291
|
-
")."
|
|
1292
|
-
],
|
|
1293
|
-
"tooBig": [
|
|
1294
|
-
"Die Datei ist zu gro\xDF (h\xF6chstens ",
|
|
1295
|
-
[
|
|
1296
|
-
"n",
|
|
1297
|
-
"max"
|
|
1298
|
-
],
|
|
1299
|
-
" MB)."
|
|
1300
|
-
]
|
|
1301
|
-
},
|
|
1302
|
-
"markdown": {
|
|
1303
|
-
"profile": {
|
|
1304
|
-
"inline": "nur Text mit fett, kursiv, Code und Links",
|
|
1305
|
-
"basic": "Abs\xE4tze, \xDCberschriften, Listen (auch mit K\xE4stchen), Zitate, Hinweise und Fu\xDFnoten",
|
|
1306
|
-
"rich": "auch Tabellen, Bilder, Code-Bl\xF6cke, Formeln und Diagramme",
|
|
1307
|
-
"page": "auch Komponenten"
|
|
1308
|
-
},
|
|
1309
|
-
"tagBlocked": [
|
|
1310
|
-
"\u201E",
|
|
1311
|
-
[
|
|
1312
|
-
"a",
|
|
1313
|
-
"tag"
|
|
1314
|
-
],
|
|
1315
|
-
"\u201C ist nicht erlaubt."
|
|
1316
|
-
],
|
|
1317
|
-
"tagNotInProfile": [
|
|
1318
|
-
"\u201E",
|
|
1319
|
-
[
|
|
1320
|
-
"a",
|
|
1321
|
-
"tag"
|
|
1322
|
-
],
|
|
1323
|
-
"\u201C ist hier nicht erlaubt (",
|
|
1324
|
-
[
|
|
1325
|
-
"a",
|
|
1326
|
-
"allowed"
|
|
1327
|
-
],
|
|
1328
|
-
")."
|
|
1329
|
-
],
|
|
1330
|
-
"propBlocked": [
|
|
1331
|
-
"Die Eigenschaft \u201E",
|
|
1332
|
-
[
|
|
1333
|
-
"a",
|
|
1334
|
-
"prop"
|
|
1335
|
-
],
|
|
1336
|
-
"\u201C ist nicht erlaubt."
|
|
1337
|
-
],
|
|
1338
|
-
"unsafeLink": "Link ist nicht erlaubt (nur http, https, mailto, tel oder /pfad).",
|
|
1339
|
-
"oneParagraph": "Hier ist nur ein Absatz erlaubt.",
|
|
1340
|
-
"tooComplex": [
|
|
1341
|
-
"Text ist zu komplex (h\xF6chstens ",
|
|
1342
|
-
[
|
|
1343
|
-
"a",
|
|
1344
|
-
"max"
|
|
1345
|
-
],
|
|
1346
|
-
" Elemente)."
|
|
1347
|
-
]
|
|
1348
|
-
},
|
|
1349
|
-
"component": {
|
|
1350
|
-
"or": [
|
|
1351
|
-
[
|
|
1352
|
-
"a",
|
|
1353
|
-
"first"
|
|
1354
|
-
],
|
|
1355
|
-
" oder ",
|
|
1356
|
-
[
|
|
1357
|
-
"a",
|
|
1358
|
-
"second"
|
|
1359
|
-
]
|
|
1360
|
-
],
|
|
1361
|
-
"and": [
|
|
1362
|
-
[
|
|
1363
|
-
"a",
|
|
1364
|
-
"first"
|
|
1365
|
-
],
|
|
1366
|
-
", ",
|
|
1367
|
-
[
|
|
1368
|
-
"a",
|
|
1369
|
-
"second"
|
|
1370
|
-
]
|
|
1371
|
-
],
|
|
1372
|
-
"quoted": [
|
|
1373
|
-
"\u201E",
|
|
1374
|
-
[
|
|
1375
|
-
"a",
|
|
1376
|
-
"name"
|
|
1377
|
-
],
|
|
1378
|
-
"\u201C"
|
|
1379
|
-
],
|
|
1380
|
-
"unknown": [
|
|
1381
|
-
"Komponente \u201E",
|
|
1382
|
-
[
|
|
1383
|
-
"a",
|
|
1384
|
-
"tag"
|
|
1385
|
-
],
|
|
1386
|
-
"\u201C gibt es nicht."
|
|
1387
|
-
],
|
|
1388
|
-
"propUnknown": [
|
|
1389
|
-
"Komponente \u201E",
|
|
1390
|
-
[
|
|
1391
|
-
"a",
|
|
1392
|
-
"tag"
|
|
1393
|
-
],
|
|
1394
|
-
"\u201C: Eigenschaft \u201E",
|
|
1395
|
-
[
|
|
1396
|
-
"a",
|
|
1397
|
-
"prop"
|
|
1398
|
-
],
|
|
1399
|
-
"\u201C gibt es nicht."
|
|
1400
|
-
],
|
|
1401
|
-
"propInvalid": [
|
|
1402
|
-
"Komponente \u201E",
|
|
1403
|
-
[
|
|
1404
|
-
"a",
|
|
1405
|
-
"tag"
|
|
1406
|
-
],
|
|
1407
|
-
"\u201C: Eigenschaft \u201E",
|
|
1408
|
-
[
|
|
1409
|
-
"a",
|
|
1410
|
-
"prop"
|
|
1411
|
-
],
|
|
1412
|
-
"\u201C ",
|
|
1413
|
-
[
|
|
1414
|
-
"a",
|
|
1415
|
-
"problem"
|
|
1416
|
-
]
|
|
1417
|
-
],
|
|
1418
|
-
"propMissing": [
|
|
1419
|
-
"Komponente \u201E",
|
|
1420
|
-
[
|
|
1421
|
-
"a",
|
|
1422
|
-
"tag"
|
|
1423
|
-
],
|
|
1424
|
-
"\u201C: Eigenschaft \u201E",
|
|
1425
|
-
[
|
|
1426
|
-
"a",
|
|
1427
|
-
"prop"
|
|
1428
|
-
],
|
|
1429
|
-
"\u201C fehlt."
|
|
1430
|
-
],
|
|
1431
|
-
"propEmpty": [
|
|
1432
|
-
"Komponente \u201E",
|
|
1433
|
-
[
|
|
1434
|
-
"a",
|
|
1435
|
-
"tag"
|
|
1436
|
-
],
|
|
1437
|
-
"\u201C: Eigenschaft \u201E",
|
|
1438
|
-
[
|
|
1439
|
-
"a",
|
|
1440
|
-
"prop"
|
|
1441
|
-
],
|
|
1442
|
-
"\u201C ist leer."
|
|
1443
|
-
],
|
|
1444
|
-
"blockInParagraph": [
|
|
1445
|
-
"Komponente \u201E",
|
|
1446
|
-
[
|
|
1447
|
-
"a",
|
|
1448
|
-
"tag"
|
|
1449
|
-
],
|
|
1450
|
-
"\u201C ist ein Block und geh\xF6rt nicht in einen Absatz."
|
|
1451
|
-
],
|
|
1452
|
-
"parentOnly": [
|
|
1453
|
-
"Komponente \u201E",
|
|
1454
|
-
[
|
|
1455
|
-
"a",
|
|
1456
|
-
"tag"
|
|
1457
|
-
],
|
|
1458
|
-
"\u201C darf nur in ",
|
|
1459
|
-
[
|
|
1460
|
-
"a",
|
|
1461
|
-
"parents"
|
|
1462
|
-
],
|
|
1463
|
-
" stehen."
|
|
1464
|
-
],
|
|
1465
|
-
"slotUnknown": [
|
|
1466
|
-
"Komponente \u201E",
|
|
1467
|
-
[
|
|
1468
|
-
"a",
|
|
1469
|
-
"tag"
|
|
1470
|
-
],
|
|
1471
|
-
"\u201C: Der Bereich \u201E",
|
|
1472
|
-
[
|
|
1473
|
-
"a",
|
|
1474
|
-
"slot"
|
|
1475
|
-
],
|
|
1476
|
-
"\u201C gibt es nicht (erlaubt: ",
|
|
1477
|
-
[
|
|
1478
|
-
"a",
|
|
1479
|
-
"allowed"
|
|
1480
|
-
],
|
|
1481
|
-
")."
|
|
1482
|
-
],
|
|
1483
|
-
"noSlots": [
|
|
1484
|
-
"Komponente \u201E",
|
|
1485
|
-
[
|
|
1486
|
-
"a",
|
|
1487
|
-
"tag"
|
|
1488
|
-
],
|
|
1489
|
-
"\u201C: hat keine Bereiche, \u201E",
|
|
1490
|
-
[
|
|
1491
|
-
"a",
|
|
1492
|
-
"slot"
|
|
1493
|
-
],
|
|
1494
|
-
"\u201C ist nicht erlaubt."
|
|
1495
|
-
],
|
|
1496
|
-
"childNotAllowed": [
|
|
1497
|
-
"Komponente \u201E",
|
|
1498
|
-
[
|
|
1499
|
-
"a",
|
|
1500
|
-
"tag"
|
|
1501
|
-
],
|
|
1502
|
-
"\u201C darf nur ",
|
|
1503
|
-
[
|
|
1504
|
-
"a",
|
|
1505
|
-
"children"
|
|
1506
|
-
],
|
|
1507
|
-
" enthalten, nicht \u201E",
|
|
1508
|
-
[
|
|
1509
|
-
"a",
|
|
1510
|
-
"child"
|
|
1511
|
-
],
|
|
1512
|
-
"\u201C."
|
|
1513
|
-
],
|
|
1514
|
-
"prop": {
|
|
1515
|
-
"notBoolean": "muss \u201Etrue\u201C oder \u201Efalse\u201C sein.",
|
|
1516
|
-
"notNumber": "muss eine Zahl sein.",
|
|
1517
|
-
"outOfRange": [
|
|
1518
|
-
"muss zwischen ",
|
|
1519
|
-
[
|
|
1520
|
-
"a",
|
|
1521
|
-
"min"
|
|
1522
|
-
],
|
|
1523
|
-
" und ",
|
|
1524
|
-
[
|
|
1525
|
-
"a",
|
|
1526
|
-
"max"
|
|
1527
|
-
],
|
|
1528
|
-
" liegen."
|
|
1529
|
-
],
|
|
1530
|
-
"badStep": [
|
|
1531
|
-
"passt nicht zur Schrittweite ",
|
|
1532
|
-
[
|
|
1533
|
-
"a",
|
|
1534
|
-
"step"
|
|
1535
|
-
],
|
|
1536
|
-
"."
|
|
1537
|
-
],
|
|
1538
|
-
"notText": "muss Text sein.",
|
|
1539
|
-
"tooLong": [
|
|
1540
|
-
"ist zu lang (h\xF6chstens ",
|
|
1541
|
-
[
|
|
1542
|
-
"a",
|
|
1543
|
-
"max"
|
|
1544
|
-
],
|
|
1545
|
-
" Zeichen)."
|
|
1546
|
-
],
|
|
1547
|
-
"badChoice": [
|
|
1548
|
-
"hat einen ung\xFCltigen Wert (erlaubt: ",
|
|
1549
|
-
[
|
|
1550
|
-
"a",
|
|
1551
|
-
"allowed"
|
|
1552
|
-
],
|
|
1553
|
-
")."
|
|
1554
|
-
],
|
|
1555
|
-
"badChoices": [
|
|
1556
|
-
"hat ung\xFCltige Werte (erlaubt: ",
|
|
1557
|
-
[
|
|
1558
|
-
"a",
|
|
1559
|
-
"allowed"
|
|
1560
|
-
],
|
|
1561
|
-
")."
|
|
1562
|
-
],
|
|
1563
|
-
"duplicateValues": "enth\xE4lt Werte doppelt.",
|
|
1564
|
-
"tooManyChosen": [
|
|
1565
|
-
"erlaubt h\xF6chstens ",
|
|
1566
|
-
[
|
|
1567
|
-
"a",
|
|
1568
|
-
"max"
|
|
1569
|
-
],
|
|
1570
|
-
" Werte."
|
|
1571
|
-
],
|
|
1572
|
-
"badImage": "muss ein Pfad oder eine Web-Adresse sein.",
|
|
1573
|
-
"notId": "muss eine Eintrags-ID sein.",
|
|
1574
|
-
"badType": "hat einen nicht erlaubten Typ."
|
|
1575
|
-
}
|
|
1576
|
-
},
|
|
1577
|
-
"links": {
|
|
1578
|
-
"snippetMissing": [
|
|
1579
|
-
"Textbaustein \u201E",
|
|
1580
|
-
[
|
|
1581
|
-
"a",
|
|
1582
|
-
"name"
|
|
1583
|
-
],
|
|
1584
|
-
"\u201C nicht gefunden (Eintrag snippets/",
|
|
1585
|
-
[
|
|
1586
|
-
"a",
|
|
1587
|
-
"name"
|
|
1588
|
-
],
|
|
1589
|
-
" mit Feld body)."
|
|
1590
|
-
],
|
|
1591
|
-
"linkBroken": [
|
|
1592
|
-
"Link ",
|
|
1593
|
-
[
|
|
1594
|
-
"a",
|
|
1595
|
-
"href"
|
|
1596
|
-
],
|
|
1597
|
-
" f\xFChrt zu keinem Eintrag und keiner Seite."
|
|
1598
|
-
],
|
|
1599
|
-
"linkRedirected": [
|
|
1600
|
-
"Link ",
|
|
1601
|
-
[
|
|
1602
|
-
"a",
|
|
1603
|
-
"href"
|
|
1604
|
-
],
|
|
1605
|
-
" f\xFChrt \xFCber eine Weiterleitung zu ",
|
|
1606
|
-
[
|
|
1607
|
-
"a",
|
|
1608
|
-
"to"
|
|
1609
|
-
],
|
|
1610
|
-
"."
|
|
1611
|
-
],
|
|
1612
|
-
"pathUnknown": [
|
|
1613
|
-
"Pfad ",
|
|
1614
|
-
[
|
|
1615
|
-
"a",
|
|
1616
|
-
"path"
|
|
1617
|
-
],
|
|
1618
|
-
" passt zu keinem Eintrag, keiner Seite und keiner Datei in public/."
|
|
1619
|
-
],
|
|
1620
|
-
"anchorMissing": [
|
|
1621
|
-
"Anker #",
|
|
1622
|
-
[
|
|
1623
|
-
"a",
|
|
1624
|
-
"anchor"
|
|
1625
|
-
],
|
|
1626
|
-
" fehlt: keine \xDCberschrift mit dieser id."
|
|
1627
|
-
],
|
|
1628
|
-
"externalBroken": [
|
|
1629
|
-
"Externer Link ",
|
|
1630
|
-
[
|
|
1631
|
-
"a",
|
|
1632
|
-
"href"
|
|
1633
|
-
],
|
|
1634
|
-
" ist kaputt (",
|
|
1635
|
-
[
|
|
1636
|
-
"a",
|
|
1637
|
-
"reason"
|
|
1638
|
-
],
|
|
1639
|
-
")."
|
|
1640
|
-
]
|
|
1641
|
-
},
|
|
1642
|
-
"editor": {
|
|
1643
|
-
"component": {
|
|
1644
|
-
"unknown": [
|
|
1645
|
-
"\u201E",
|
|
1646
|
-
[
|
|
1647
|
-
"a",
|
|
1648
|
-
"tag"
|
|
1649
|
-
],
|
|
1650
|
-
"\u201C gibt es hier nicht."
|
|
1651
|
-
],
|
|
1652
|
-
"more": [
|
|
1653
|
-
[
|
|
1654
|
-
"a",
|
|
1655
|
-
"first"
|
|
1656
|
-
],
|
|
1657
|
-
" Noch ",
|
|
1658
|
-
[
|
|
1659
|
-
"a",
|
|
1660
|
-
"count"
|
|
1661
|
-
],
|
|
1662
|
-
" weitere ",
|
|
1663
|
-
[
|
|
1664
|
-
"p",
|
|
1665
|
-
"count",
|
|
1666
|
-
0,
|
|
1667
|
-
{
|
|
1668
|
-
"one": [
|
|
1669
|
-
"Angabe"
|
|
1670
|
-
],
|
|
1671
|
-
"other": [
|
|
1672
|
-
"Angaben"
|
|
1673
|
-
]
|
|
1674
|
-
},
|
|
1675
|
-
0
|
|
1676
|
-
],
|
|
1677
|
-
" pr\xFCfen."
|
|
1678
|
-
]
|
|
1679
|
-
},
|
|
1680
|
-
"prop": {
|
|
1681
|
-
"missing": [
|
|
1682
|
-
[
|
|
1683
|
-
"a",
|
|
1684
|
-
"label"
|
|
1685
|
-
],
|
|
1686
|
-
" fehlt."
|
|
1687
|
-
],
|
|
1688
|
-
"empty": [
|
|
1689
|
-
[
|
|
1690
|
-
"a",
|
|
1691
|
-
"label"
|
|
1692
|
-
],
|
|
1693
|
-
" ist leer."
|
|
1694
|
-
],
|
|
1695
|
-
"invalid": [
|
|
1696
|
-
[
|
|
1697
|
-
"a",
|
|
1698
|
-
"label"
|
|
1699
|
-
],
|
|
1700
|
-
" ",
|
|
1701
|
-
[
|
|
1702
|
-
"a",
|
|
1703
|
-
"problem"
|
|
1704
|
-
]
|
|
1705
|
-
]
|
|
1706
|
-
},
|
|
1707
|
-
"problem": {
|
|
1708
|
-
"imageNoDescription": "Dem Bild fehlt die Beschreibung."
|
|
1709
|
-
},
|
|
1710
|
-
"source": {
|
|
1711
|
-
"unstable": "Der Text bleibt beim Speichern nicht gleich, er wird deshalb als Markdown bearbeitet.",
|
|
1712
|
-
"lossy": "Der Text l\xE4sst sich im Editor nicht verlustfrei darstellen.",
|
|
1713
|
-
"failed": [
|
|
1714
|
-
"Der Text l\xE4sst sich im Editor nicht darstellen (",
|
|
1715
|
-
[
|
|
1716
|
-
"a",
|
|
1717
|
-
"reason"
|
|
1718
|
-
],
|
|
1719
|
-
")."
|
|
1720
|
-
]
|
|
1721
|
-
}
|
|
1722
|
-
},
|
|
1723
|
-
"diff": {
|
|
1724
|
-
"freshSetting": [
|
|
1725
|
-
[
|
|
1726
|
-
"a",
|
|
1727
|
-
"name"
|
|
1728
|
-
],
|
|
1729
|
-
": ",
|
|
1730
|
-
[
|
|
1731
|
-
"a",
|
|
1732
|
-
"value"
|
|
1733
|
-
],
|
|
1734
|
-
"."
|
|
1735
|
-
],
|
|
1736
|
-
"freshLocales": [
|
|
1737
|
-
"Sprachen: ",
|
|
1738
|
-
[
|
|
1739
|
-
"a",
|
|
1740
|
-
"locales"
|
|
1741
|
-
],
|
|
1742
|
-
"."
|
|
1743
|
-
],
|
|
1744
|
-
"siteRenamed": "Der Seitenname kann nicht ge\xE4ndert werden.",
|
|
1745
|
-
"currencyChanged": "Die W\xE4hrung der Seite kann nicht ge\xE4ndert werden.",
|
|
1746
|
-
"mainLocaleChanged": "Die Hauptsprache kann nicht ge\xE4ndert werden.",
|
|
1747
|
-
"localeRemoved": [
|
|
1748
|
-
"Sprache \u201E",
|
|
1749
|
-
[
|
|
1750
|
-
"a",
|
|
1751
|
-
"locale"
|
|
1752
|
-
],
|
|
1753
|
-
"\u201C kann nicht entfernt werden."
|
|
1754
|
-
],
|
|
1755
|
-
"localeOrder": "Neue Sprachen kommen ans Ende der Liste.",
|
|
1756
|
-
"localeAdded": [
|
|
1757
|
-
"Neue Sprache \u201E",
|
|
1758
|
-
[
|
|
1759
|
-
"a",
|
|
1760
|
-
"locale"
|
|
1761
|
-
],
|
|
1762
|
-
"\u201C."
|
|
1763
|
-
],
|
|
1764
|
-
"timezoneChanged": "Zeitzone kann nicht ge\xE4ndert werden.",
|
|
1765
|
-
"valueChanged": [
|
|
1766
|
-
[
|
|
1767
|
-
"a",
|
|
1768
|
-
"name"
|
|
1769
|
-
],
|
|
1770
|
-
" ge\xE4ndert."
|
|
1771
|
-
],
|
|
1772
|
-
"pagesChanged": "Statische Seiten ge\xE4ndert.",
|
|
1773
|
-
"agentsChanged": "Pr\xFCfung f\xFCr KI-\xC4nderungen ge\xE4ndert.",
|
|
1774
|
-
"tasksChanged": "Aufgaben ge\xE4ndert.",
|
|
1775
|
-
"retiredBack": [
|
|
1776
|
-
"\u201E",
|
|
1777
|
-
[
|
|
1778
|
-
"a",
|
|
1779
|
-
"path"
|
|
1780
|
-
],
|
|
1781
|
-
"\u201C war zur\xFCckgezogen und kann nicht zur\xFCckkommen."
|
|
1782
|
-
],
|
|
1783
|
-
"unretired": [
|
|
1784
|
-
"\u201E",
|
|
1785
|
-
[
|
|
1786
|
-
"a",
|
|
1787
|
-
"path"
|
|
1788
|
-
],
|
|
1789
|
-
"\u201C war zur\xFCckgezogen."
|
|
1790
|
-
],
|
|
1791
|
-
"retiredRuleChanged": [
|
|
1792
|
-
"Die Regel f\xFCr \u201E",
|
|
1793
|
-
[
|
|
1794
|
-
"a",
|
|
1795
|
-
"path"
|
|
1796
|
-
],
|
|
1797
|
-
"\u201C kann nicht ge\xE4ndert werden."
|
|
1798
|
-
],
|
|
1799
|
-
"retiredNow": [
|
|
1800
|
-
"\u201E",
|
|
1801
|
-
[
|
|
1802
|
-
"a",
|
|
1803
|
-
"path"
|
|
1804
|
-
],
|
|
1805
|
-
"\u201C wird zur\xFCckgezogen."
|
|
1806
|
-
],
|
|
1807
|
-
"migrationChanged": [
|
|
1808
|
-
"Migration \u201E",
|
|
1809
|
-
[
|
|
1810
|
-
"a",
|
|
1811
|
-
"id"
|
|
1812
|
-
],
|
|
1813
|
-
"\u201C hat sich ge\xE4ndert."
|
|
1814
|
-
],
|
|
1815
|
-
"migrationFillsExisting": [
|
|
1816
|
-
"Migration \u201E",
|
|
1817
|
-
[
|
|
1818
|
-
"a",
|
|
1819
|
-
"id"
|
|
1820
|
-
],
|
|
1821
|
-
"\u201C f\xFCllt \u201E",
|
|
1822
|
-
[
|
|
1823
|
-
"a",
|
|
1824
|
-
"target"
|
|
1825
|
-
],
|
|
1826
|
-
"\u201C, das es schon gibt."
|
|
1827
|
-
],
|
|
1828
|
-
"migrationAdded": [
|
|
1829
|
-
"Neue Migration \u201E",
|
|
1830
|
-
[
|
|
1831
|
-
"a",
|
|
1832
|
-
"id"
|
|
1833
|
-
],
|
|
1834
|
-
"\u201C."
|
|
1835
|
-
],
|
|
1836
|
-
"migrationDropped": [
|
|
1837
|
-
"Migration \u201E",
|
|
1838
|
-
[
|
|
1839
|
-
"a",
|
|
1840
|
-
"id"
|
|
1841
|
-
],
|
|
1842
|
-
"\u201C ist nicht mehr in der Config."
|
|
1843
|
-
],
|
|
1844
|
-
"brickRemoved": [
|
|
1845
|
-
"Baustein \u201E",
|
|
1846
|
-
[
|
|
1847
|
-
"a",
|
|
1848
|
-
"key"
|
|
1849
|
-
],
|
|
1850
|
-
"\u201C fehlt."
|
|
1851
|
-
],
|
|
1852
|
-
"brickAdded": [
|
|
1853
|
-
"Neuer Baustein \u201E",
|
|
1854
|
-
[
|
|
1855
|
-
"a",
|
|
1856
|
-
"key"
|
|
1857
|
-
],
|
|
1858
|
-
"\u201C."
|
|
1859
|
-
],
|
|
1860
|
-
"singleWithoutDefault": [
|
|
1861
|
-
"Neues Einzelst\xFCck: Pflichtfeld \u201E",
|
|
1862
|
-
[
|
|
1863
|
-
"a",
|
|
1864
|
-
"name"
|
|
1865
|
-
],
|
|
1866
|
-
"\u201C braucht einen default."
|
|
1867
|
-
],
|
|
1868
|
-
"unknownChange": [
|
|
1869
|
-
"\u201E",
|
|
1870
|
-
[
|
|
1871
|
-
"a",
|
|
1872
|
-
"at"
|
|
1873
|
-
],
|
|
1874
|
-
"\u201C: Eigenschaft \u201E",
|
|
1875
|
-
[
|
|
1876
|
-
"a",
|
|
1877
|
-
"prop"
|
|
1878
|
-
],
|
|
1879
|
-
"\u201C ge\xE4ndert, das ist nicht vorgesehen."
|
|
1880
|
-
],
|
|
1881
|
-
"kindChanged": [
|
|
1882
|
-
"\u201E",
|
|
1883
|
-
[
|
|
1884
|
-
"a",
|
|
1885
|
-
"key"
|
|
1886
|
-
],
|
|
1887
|
-
"\u201C wechselt zwischen Einzelst\xFCck und Sammlung."
|
|
1888
|
-
],
|
|
1889
|
-
"textChanged": "Text ge\xE4ndert.",
|
|
1890
|
-
"maxLowered": [
|
|
1891
|
-
"\u201E",
|
|
1892
|
-
[
|
|
1893
|
-
"a",
|
|
1894
|
-
"at"
|
|
1895
|
-
],
|
|
1896
|
-
"\u201C: max kann nicht kleiner werden."
|
|
1897
|
-
],
|
|
1898
|
-
"maxRaised": "max erh\xF6ht.",
|
|
1899
|
-
"routeAdded": "Detailseiten neu.",
|
|
1900
|
-
"routeAddedLocale": "Adresse f\xFCr die neue Sprache.",
|
|
1901
|
-
"routeChanged": [
|
|
1902
|
-
"\u201E",
|
|
1903
|
-
[
|
|
1904
|
-
"a",
|
|
1905
|
-
"key"
|
|
1906
|
-
],
|
|
1907
|
-
"\u201C: Adressen (route) k\xF6nnen nicht ge\xE4ndert werden."
|
|
1908
|
-
],
|
|
1909
|
-
"fieldRemoved": [
|
|
1910
|
-
"Feld \u201E",
|
|
1911
|
-
[
|
|
1912
|
-
"a",
|
|
1913
|
-
"at"
|
|
1914
|
-
],
|
|
1915
|
-
"\u201C fehlt."
|
|
1916
|
-
],
|
|
1917
|
-
"fieldAdded": [
|
|
1918
|
-
"Neues Feld \u201E",
|
|
1919
|
-
[
|
|
1920
|
-
"a",
|
|
1921
|
-
"at"
|
|
1922
|
-
],
|
|
1923
|
-
"\u201C."
|
|
1924
|
-
],
|
|
1925
|
-
"fieldAddedDefault": [
|
|
1926
|
-
"Neues Pflichtfeld \u201E",
|
|
1927
|
-
[
|
|
1928
|
-
"a",
|
|
1929
|
-
"at"
|
|
1930
|
-
],
|
|
1931
|
-
"\u201C mit default."
|
|
1932
|
-
],
|
|
1933
|
-
"fieldAddedMigration": [
|
|
1934
|
-
"Neues Pflichtfeld \u201E",
|
|
1935
|
-
[
|
|
1936
|
-
"a",
|
|
1937
|
-
"at"
|
|
1938
|
-
],
|
|
1939
|
-
"\u201C, gef\xFCllt durch Migration."
|
|
1940
|
-
],
|
|
1941
|
-
"requiredWithoutDefault": [
|
|
1942
|
-
"Neues Pflichtfeld \u201E",
|
|
1943
|
-
[
|
|
1944
|
-
"a",
|
|
1945
|
-
"at"
|
|
1946
|
-
],
|
|
1947
|
-
"\u201C ohne default oder Migration."
|
|
1948
|
-
],
|
|
1949
|
-
"typeChanged": [
|
|
1950
|
-
"\u201E",
|
|
1951
|
-
[
|
|
1952
|
-
"a",
|
|
1953
|
-
"at"
|
|
1954
|
-
],
|
|
1955
|
-
"\u201C: Typ ",
|
|
1956
|
-
[
|
|
1957
|
-
"a",
|
|
1958
|
-
"from"
|
|
1959
|
-
],
|
|
1960
|
-
" \u2192 ",
|
|
1961
|
-
[
|
|
1962
|
-
"a",
|
|
1963
|
-
"to"
|
|
1964
|
-
],
|
|
1965
|
-
"."
|
|
1966
|
-
],
|
|
1967
|
-
"retiredFieldChanged": [
|
|
1968
|
-
"\u201E",
|
|
1969
|
-
[
|
|
1970
|
-
"a",
|
|
1971
|
-
"at"
|
|
1972
|
-
],
|
|
1973
|
-
"\u201C: Ein zur\xFCckgezogenes Feld beh\xE4lt seine production-Definition."
|
|
1974
|
-
],
|
|
1975
|
-
"madeRequired": [
|
|
1976
|
-
"\u201E",
|
|
1977
|
-
[
|
|
1978
|
-
"a",
|
|
1979
|
-
"at"
|
|
1980
|
-
],
|
|
1981
|
-
"\u201C: optional \u2192 Pflicht."
|
|
1982
|
-
],
|
|
1983
|
-
"madeOptional": [
|
|
1984
|
-
"\u201E",
|
|
1985
|
-
[
|
|
1986
|
-
"a",
|
|
1987
|
-
"at"
|
|
1988
|
-
],
|
|
1989
|
-
"\u201C ist jetzt optional."
|
|
1990
|
-
],
|
|
1991
|
-
"translationChanged": [
|
|
1992
|
-
"\u201E",
|
|
1993
|
-
[
|
|
1994
|
-
"a",
|
|
1995
|
-
"at"
|
|
1996
|
-
],
|
|
1997
|
-
"\u201C: \xDCbersetzbarkeit ge\xE4ndert."
|
|
1998
|
-
],
|
|
1999
|
-
"defaultChanged": [
|
|
2000
|
-
"\u201E",
|
|
2001
|
-
[
|
|
2002
|
-
"a",
|
|
2003
|
-
"at"
|
|
2004
|
-
],
|
|
2005
|
-
"\u201C: default kann nicht ge\xE4ndert werden."
|
|
2006
|
-
],
|
|
2007
|
-
"minRaised": [
|
|
2008
|
-
"\u201E",
|
|
2009
|
-
[
|
|
2010
|
-
"a",
|
|
2011
|
-
"at"
|
|
2012
|
-
],
|
|
2013
|
-
"\u201C: min kann nicht gr\xF6\xDFer werden."
|
|
2014
|
-
],
|
|
2015
|
-
"minLowered": "min verkleinert.",
|
|
2016
|
-
"minOffGrid": [
|
|
2017
|
-
"\u201E",
|
|
2018
|
-
[
|
|
2019
|
-
"a",
|
|
2020
|
-
"at"
|
|
2021
|
-
],
|
|
2022
|
-
"\u201C: min kann nur um ein Vielfaches der Schrittweite ",
|
|
2023
|
-
[
|
|
2024
|
-
"a",
|
|
2025
|
-
"step"
|
|
2026
|
-
],
|
|
2027
|
-
" kleiner werden."
|
|
2028
|
-
],
|
|
2029
|
-
"propChanged": [
|
|
2030
|
-
"\u201E",
|
|
2031
|
-
[
|
|
2032
|
-
"a",
|
|
2033
|
-
"at"
|
|
2034
|
-
],
|
|
2035
|
-
"\u201C: ",
|
|
2036
|
-
[
|
|
2037
|
-
"a",
|
|
2038
|
-
"prop"
|
|
2039
|
-
],
|
|
2040
|
-
" kann nicht ge\xE4ndert werden."
|
|
2041
|
-
],
|
|
2042
|
-
"optionRemoved": [
|
|
2043
|
-
"\u201E",
|
|
2044
|
-
[
|
|
2045
|
-
"a",
|
|
2046
|
-
"at"
|
|
2047
|
-
],
|
|
2048
|
-
"\u201C: Option \u201E",
|
|
2049
|
-
[
|
|
2050
|
-
"a",
|
|
2051
|
-
"option"
|
|
2052
|
-
],
|
|
2053
|
-
"\u201C fehlt."
|
|
2054
|
-
],
|
|
2055
|
-
"optionRenamed": "Option umbenannt.",
|
|
2056
|
-
"optionAdded": [
|
|
2057
|
-
"Neue Option \u201E",
|
|
2058
|
-
[
|
|
2059
|
-
"a",
|
|
2060
|
-
"option"
|
|
2061
|
-
],
|
|
2062
|
-
"\u201C."
|
|
2063
|
-
],
|
|
2064
|
-
"uniqueChanged": [
|
|
2065
|
-
"\u201E",
|
|
2066
|
-
[
|
|
2067
|
-
"a",
|
|
2068
|
-
"at"
|
|
2069
|
-
],
|
|
2070
|
-
"\u201C: unique kann nicht neu gesetzt oder ge\xE4ndert werden."
|
|
2071
|
-
],
|
|
2072
|
-
"uniqueDropped": [
|
|
2073
|
-
"\u201E",
|
|
2074
|
-
[
|
|
2075
|
-
"a",
|
|
2076
|
-
"at"
|
|
2077
|
-
],
|
|
2078
|
-
"\u201C: unique entf\xE4llt."
|
|
2079
|
-
],
|
|
2080
|
-
"fix": {
|
|
2081
|
-
"newField": "Neues Feld anlegen, mit einer Migration f\xFCllen und das alte Feld unter `retired` eintragen.",
|
|
2082
|
-
"newFieldOnly": "Ein neues Feld anlegen.",
|
|
2083
|
-
"newSite": "Eine neue Seite anlegen.",
|
|
2084
|
-
"moneyFields": "money-Felder mit fester `currency` neu anlegen.",
|
|
2085
|
-
"planMigration": "Mit eurer Entwicklerin oder eurem Entwickler eine Migration planen.",
|
|
2086
|
-
"keepLocale": "Sprache behalten; Seiten in dieser Sprache k\xF6nnen ausgeblendet werden.",
|
|
2087
|
-
"keepLocaleOrder": "Reihenfolge der bestehenden Sprachen beibehalten.",
|
|
2088
|
-
"keepTimezone": "Zeitzone beibehalten.",
|
|
2089
|
-
"keepRule": "Regel unver\xE4ndert lassen.",
|
|
2090
|
-
"newMigrationId": "Eine Reparatur bekommt eine neue ID.",
|
|
2091
|
-
"fillNewFieldsOnly": "Nur neue Felder f\xFCllen; f\xFCr bestehende ein neues Feld anlegen.",
|
|
2092
|
-
"retireBrick": "Baustein unter `retired` eintragen statt ihn zu l\xF6schen.",
|
|
2093
|
-
"defaultOrOptional": "`default` angeben oder das Feld optional machen.",
|
|
2094
|
-
"keepProperty": "Eigenschaft beibehalten.",
|
|
2095
|
-
"keepMax": "max beibehalten.",
|
|
2096
|
-
"keepRoute": "Route beibehalten.",
|
|
2097
|
-
"defaultMigrationOrOptional": "`default` angeben, eine Migration schreiben oder das Feld optional machen.",
|
|
2098
|
-
"keepDefinition": "Definition unver\xE4ndert lassen; nur Texte d\xFCrfen sich \xE4ndern.",
|
|
2099
|
-
"keepDefault": "default beibehalten.",
|
|
2100
|
-
"keepMin": "min beibehalten.",
|
|
2101
|
-
"minOnGrid": "min so senken, dass der Unterschied ein Vielfaches von step ist.",
|
|
2102
|
-
"keepOption": "Option behalten; sie kann umbenannt (label) werden.",
|
|
2103
|
-
"newList": "Neue Liste anlegen und mit einer Migration f\xFCllen."
|
|
2104
|
-
}
|
|
2105
|
-
},
|
|
2106
|
-
"preview": {
|
|
2107
|
-
"notFound": "Diese Seite gibt es nicht.",
|
|
2108
|
-
"failed": "Die Vorschau l\xE4dt nicht.",
|
|
2109
|
-
"loading": "Vorschau wird geladen \u2026"
|
|
2110
|
-
}
|
|
2111
|
-
},
|
|
2112
|
-
"en": {
|
|
2113
|
-
"issues": {
|
|
2114
|
-
"unknownBrick": [
|
|
2115
|
-
"There is no brick \u201C",
|
|
2116
|
-
[
|
|
2117
|
-
"a",
|
|
2118
|
-
"brick"
|
|
2119
|
-
],
|
|
2120
|
-
"\u201D."
|
|
2121
|
-
],
|
|
2122
|
-
"markdown": [
|
|
2123
|
-
"\u201C",
|
|
2124
|
-
[
|
|
2125
|
-
"a",
|
|
2126
|
-
"label"
|
|
2127
|
-
],
|
|
2128
|
-
"\u201D: ",
|
|
2129
|
-
[
|
|
2130
|
-
"a",
|
|
2131
|
-
"problem"
|
|
2132
|
-
]
|
|
2133
|
-
],
|
|
2134
|
-
"notObject": "An object is expected.",
|
|
2135
|
-
"unknownField": "Unknown field.",
|
|
2136
|
-
"fieldMissing": [
|
|
2137
|
-
"\u201C",
|
|
2138
|
-
[
|
|
2139
|
-
"a",
|
|
2140
|
-
"label"
|
|
2141
|
-
],
|
|
2142
|
-
"\u201D is missing."
|
|
2143
|
-
],
|
|
2144
|
-
"notLocalized": [
|
|
2145
|
-
"\u201C",
|
|
2146
|
-
[
|
|
2147
|
-
"a",
|
|
2148
|
-
"label"
|
|
2149
|
-
],
|
|
2150
|
-
"\u201D must be stored per language."
|
|
2151
|
-
],
|
|
2152
|
-
"unknownLocale": [
|
|
2153
|
-
"The language \u201C",
|
|
2154
|
-
[
|
|
2155
|
-
"a",
|
|
2156
|
-
"locale"
|
|
2157
|
-
],
|
|
2158
|
-
"\u201D is not set up."
|
|
2159
|
-
],
|
|
2160
|
-
"fieldEmpty": [
|
|
2161
|
-
"\u201C",
|
|
2162
|
-
[
|
|
2163
|
-
"a",
|
|
2164
|
-
"label"
|
|
2165
|
-
],
|
|
2166
|
-
"\u201D is empty."
|
|
2167
|
-
],
|
|
2168
|
-
"notText": [
|
|
2169
|
-
"\u201C",
|
|
2170
|
-
[
|
|
2171
|
-
"a",
|
|
2172
|
-
"label"
|
|
2173
|
-
],
|
|
2174
|
-
"\u201D must be text."
|
|
2175
|
-
],
|
|
2176
|
-
"tooLong": [
|
|
2177
|
-
"\u201C",
|
|
2178
|
-
[
|
|
2179
|
-
"a",
|
|
2180
|
-
"label"
|
|
2181
|
-
],
|
|
2182
|
-
"\u201D is too long (at most ",
|
|
2183
|
-
[
|
|
2184
|
-
"a",
|
|
2185
|
-
"max"
|
|
2186
|
-
],
|
|
2187
|
-
" characters)."
|
|
2188
|
-
],
|
|
2189
|
-
"controlChars": [
|
|
2190
|
-
"\u201C",
|
|
2191
|
-
[
|
|
2192
|
-
"a",
|
|
2193
|
-
"label"
|
|
2194
|
-
],
|
|
2195
|
-
"\u201D contains invisible control characters."
|
|
2196
|
-
],
|
|
2197
|
-
"badFormat": [
|
|
2198
|
-
"\u201C",
|
|
2199
|
-
[
|
|
2200
|
-
"a",
|
|
2201
|
-
"label"
|
|
2202
|
-
],
|
|
2203
|
-
"\u201D has no valid format."
|
|
2204
|
-
],
|
|
2205
|
-
"badSlug": [
|
|
2206
|
-
"\u201C",
|
|
2207
|
-
[
|
|
2208
|
-
"a",
|
|
2209
|
-
"label"
|
|
2210
|
-
],
|
|
2211
|
-
"\u201D is not a valid address."
|
|
2212
|
-
],
|
|
2213
|
-
"notNumber": [
|
|
2214
|
-
"\u201C",
|
|
2215
|
-
[
|
|
2216
|
-
"a",
|
|
2217
|
-
"label"
|
|
2218
|
-
],
|
|
2219
|
-
"\u201D must be a number."
|
|
2220
|
-
],
|
|
2221
|
-
"outOfRange": [
|
|
2222
|
-
"\u201C",
|
|
2223
|
-
[
|
|
2224
|
-
"a",
|
|
2225
|
-
"label"
|
|
2226
|
-
],
|
|
2227
|
-
"\u201D must be between ",
|
|
2228
|
-
[
|
|
2229
|
-
"a",
|
|
2230
|
-
"min"
|
|
2231
|
-
],
|
|
2232
|
-
" and ",
|
|
2233
|
-
[
|
|
2234
|
-
"a",
|
|
2235
|
-
"max"
|
|
2236
|
-
],
|
|
2237
|
-
"."
|
|
2238
|
-
],
|
|
2239
|
-
"badStep": [
|
|
2240
|
-
"\u201C",
|
|
2241
|
-
[
|
|
2242
|
-
"a",
|
|
2243
|
-
"label"
|
|
2244
|
-
],
|
|
2245
|
-
"\u201D does not fit the step size ",
|
|
2246
|
-
[
|
|
2247
|
-
"a",
|
|
2248
|
-
"step"
|
|
2249
|
-
],
|
|
2250
|
-
"."
|
|
2251
|
-
],
|
|
2252
|
-
"notMoney": [
|
|
2253
|
-
"\u201C",
|
|
2254
|
-
[
|
|
2255
|
-
"a",
|
|
2256
|
-
"label"
|
|
2257
|
-
],
|
|
2258
|
-
"\u201D must be an amount in cents."
|
|
2259
|
-
],
|
|
2260
|
-
"moneyOutOfRange": [
|
|
2261
|
-
"\u201C",
|
|
2262
|
-
[
|
|
2263
|
-
"a",
|
|
2264
|
-
"label"
|
|
2265
|
-
],
|
|
2266
|
-
"\u201D is outside the limits."
|
|
2267
|
-
],
|
|
2268
|
-
"notBoolean": [
|
|
2269
|
-
"\u201C",
|
|
2270
|
-
[
|
|
2271
|
-
"a",
|
|
2272
|
-
"label"
|
|
2273
|
-
],
|
|
2274
|
-
"\u201D must be yes or no."
|
|
2275
|
-
],
|
|
2276
|
-
"badDate": [
|
|
2277
|
-
"\u201C",
|
|
2278
|
-
[
|
|
2279
|
-
"a",
|
|
2280
|
-
"label"
|
|
2281
|
-
],
|
|
2282
|
-
"\u201D is not a valid date."
|
|
2283
|
-
],
|
|
2284
|
-
"badTime": [
|
|
2285
|
-
"\u201C",
|
|
2286
|
-
[
|
|
2287
|
-
"a",
|
|
2288
|
-
"label"
|
|
2289
|
-
],
|
|
2290
|
-
"\u201D is not a valid time."
|
|
2291
|
-
],
|
|
2292
|
-
"badDateRange": [
|
|
2293
|
-
"\u201C",
|
|
2294
|
-
[
|
|
2295
|
-
"a",
|
|
2296
|
-
"label"
|
|
2297
|
-
],
|
|
2298
|
-
"\u201D is not a valid period."
|
|
2299
|
-
],
|
|
2300
|
-
"dateRangeOrder": [
|
|
2301
|
-
"\u201C",
|
|
2302
|
-
[
|
|
2303
|
-
"a",
|
|
2304
|
-
"label"
|
|
2305
|
-
],
|
|
2306
|
-
"\u201D: \u201Cfrom\u201D is after \u201Cto\u201D."
|
|
2307
|
-
],
|
|
2308
|
-
"badChoice": [
|
|
2309
|
-
"\u201C",
|
|
2310
|
-
[
|
|
2311
|
-
"a",
|
|
2312
|
-
"label"
|
|
2313
|
-
],
|
|
2314
|
-
"\u201D has an invalid value."
|
|
2315
|
-
],
|
|
2316
|
-
"badChoices": [
|
|
2317
|
-
"\u201C",
|
|
2318
|
-
[
|
|
2319
|
-
"a",
|
|
2320
|
-
"label"
|
|
2321
|
-
],
|
|
2322
|
-
"\u201D has invalid values."
|
|
2323
|
-
],
|
|
2324
|
-
"duplicateValues": [
|
|
2325
|
-
"\u201C",
|
|
2326
|
-
[
|
|
2327
|
-
"a",
|
|
2328
|
-
"label"
|
|
2329
|
-
],
|
|
2330
|
-
"\u201D contains values twice."
|
|
2331
|
-
],
|
|
2332
|
-
"tooManyChosen": [
|
|
2333
|
-
"\u201C",
|
|
2334
|
-
[
|
|
2335
|
-
"a",
|
|
2336
|
-
"label"
|
|
2337
|
-
],
|
|
2338
|
-
"\u201D: at most ",
|
|
2339
|
-
[
|
|
2340
|
-
"a",
|
|
2341
|
-
"max"
|
|
2342
|
-
],
|
|
2343
|
-
"."
|
|
2344
|
-
],
|
|
2345
|
-
"notIdList": [
|
|
2346
|
-
"\u201C",
|
|
2347
|
-
[
|
|
2348
|
-
"a",
|
|
2349
|
-
"label"
|
|
2350
|
-
],
|
|
2351
|
-
"\u201D must be a list of entry IDs."
|
|
2352
|
-
],
|
|
2353
|
-
"notId": [
|
|
2354
|
-
"\u201C",
|
|
2355
|
-
[
|
|
2356
|
-
"a",
|
|
2357
|
-
"label"
|
|
2358
|
-
],
|
|
2359
|
-
"\u201D must be an entry ID."
|
|
2360
|
-
],
|
|
2361
|
-
"duplicateEntries": [
|
|
2362
|
-
"\u201C",
|
|
2363
|
-
[
|
|
2364
|
-
"a",
|
|
2365
|
-
"label"
|
|
2366
|
-
],
|
|
2367
|
-
"\u201D contains entries twice."
|
|
2368
|
-
],
|
|
2369
|
-
"refGone": [
|
|
2370
|
-
"\u201C",
|
|
2371
|
-
[
|
|
2372
|
-
"a",
|
|
2373
|
-
"label"
|
|
2374
|
-
],
|
|
2375
|
-
"\u201D: The entry no longer exists."
|
|
2376
|
-
],
|
|
2377
|
-
"notList": [
|
|
2378
|
-
"\u201C",
|
|
2379
|
-
[
|
|
2380
|
-
"a",
|
|
2381
|
-
"label"
|
|
2382
|
-
],
|
|
2383
|
-
"\u201D must be a list."
|
|
2384
|
-
],
|
|
2385
|
-
"tooManyRows": [
|
|
2386
|
-
"\u201C",
|
|
2387
|
-
[
|
|
2388
|
-
"a",
|
|
2389
|
-
"label"
|
|
2390
|
-
],
|
|
2391
|
-
"\u201D has too many items (at most ",
|
|
2392
|
-
[
|
|
2393
|
-
"a",
|
|
2394
|
-
"max"
|
|
2395
|
-
],
|
|
2396
|
-
")."
|
|
2397
|
-
],
|
|
2398
|
-
"tooFewRows": [
|
|
2399
|
-
"\u201C",
|
|
2400
|
-
[
|
|
2401
|
-
"a",
|
|
2402
|
-
"label"
|
|
2403
|
-
],
|
|
2404
|
-
"\u201D needs at least ",
|
|
2405
|
-
[
|
|
2406
|
-
"a",
|
|
2407
|
-
"min"
|
|
2408
|
-
],
|
|
2409
|
-
" items."
|
|
2410
|
-
],
|
|
2411
|
-
"duplicateRowValue": [
|
|
2412
|
-
"\u201C",
|
|
2413
|
-
[
|
|
2414
|
-
"a",
|
|
2415
|
-
"label"
|
|
2416
|
-
],
|
|
2417
|
-
"\u201D: \u201C",
|
|
2418
|
-
[
|
|
2419
|
-
"a",
|
|
2420
|
-
"value"
|
|
2421
|
-
],
|
|
2422
|
-
"\u201D appears more than once."
|
|
2423
|
-
],
|
|
2424
|
-
"badRowId": [
|
|
2425
|
-
"\u201C",
|
|
2426
|
-
[
|
|
2427
|
-
"a",
|
|
2428
|
-
"label"
|
|
2429
|
-
],
|
|
2430
|
-
"\u201D: Row ",
|
|
2431
|
-
[
|
|
2432
|
-
"a",
|
|
2433
|
-
"row"
|
|
2434
|
-
],
|
|
2435
|
-
" has no valid ID."
|
|
2436
|
-
],
|
|
2437
|
-
"duplicateRowId": [
|
|
2438
|
-
"\u201C",
|
|
2439
|
-
[
|
|
2440
|
-
"a",
|
|
2441
|
-
"label"
|
|
2442
|
-
],
|
|
2443
|
-
"\u201D: Row ID appears twice."
|
|
2444
|
-
],
|
|
2445
|
-
"notImage": [
|
|
2446
|
-
"\u201C",
|
|
2447
|
-
[
|
|
2448
|
-
"a",
|
|
2449
|
-
"label"
|
|
2450
|
-
],
|
|
2451
|
-
"\u201D is not a valid image."
|
|
2452
|
-
],
|
|
2453
|
-
"altMissing": [
|
|
2454
|
-
"\u201C",
|
|
2455
|
-
[
|
|
2456
|
-
"a",
|
|
2457
|
-
"label"
|
|
2458
|
-
],
|
|
2459
|
-
"\u201D: The image description (alt text) is missing."
|
|
2460
|
-
],
|
|
2461
|
-
"altTooLong": [
|
|
2462
|
-
"\u201C",
|
|
2463
|
-
[
|
|
2464
|
-
"a",
|
|
2465
|
-
"label"
|
|
2466
|
-
],
|
|
2467
|
-
"\u201D: Alt text is too long."
|
|
2468
|
-
],
|
|
2469
|
-
"notFile": [
|
|
2470
|
-
"\u201C",
|
|
2471
|
-
[
|
|
2472
|
-
"a",
|
|
2473
|
-
"label"
|
|
2474
|
-
],
|
|
2475
|
-
"\u201D is not a valid file."
|
|
2476
|
-
]
|
|
2477
|
-
},
|
|
2478
|
-
"file": {
|
|
2479
|
-
"typeNotAllowed": [
|
|
2480
|
-
"This file type is not allowed (allowed: ",
|
|
2481
|
-
[
|
|
2482
|
-
"a",
|
|
2483
|
-
"allowed"
|
|
2484
|
-
],
|
|
2485
|
-
")."
|
|
2486
|
-
],
|
|
2487
|
-
"tooBig": [
|
|
2488
|
-
"The file is too large (at most ",
|
|
2489
|
-
[
|
|
2490
|
-
"n",
|
|
2491
|
-
"max"
|
|
2492
|
-
],
|
|
2493
|
-
" MB)."
|
|
2494
|
-
]
|
|
2495
|
-
},
|
|
2496
|
-
"markdown": {
|
|
2497
|
-
"profile": {
|
|
2498
|
-
"inline": "only text with bold, italic, code and links",
|
|
2499
|
-
"basic": "paragraphs, headings, lists (also with checkboxes), quotes, notices and footnotes",
|
|
2500
|
-
"rich": "also tables, images, code blocks, formulas and diagrams",
|
|
2501
|
-
"page": "also components"
|
|
2502
|
-
},
|
|
2503
|
-
"tagBlocked": [
|
|
2504
|
-
"\u201C",
|
|
2505
|
-
[
|
|
2506
|
-
"a",
|
|
2507
|
-
"tag"
|
|
2508
|
-
],
|
|
2509
|
-
"\u201D is not allowed."
|
|
2510
|
-
],
|
|
2511
|
-
"tagNotInProfile": [
|
|
2512
|
-
"\u201C",
|
|
2513
|
-
[
|
|
2514
|
-
"a",
|
|
2515
|
-
"tag"
|
|
2516
|
-
],
|
|
2517
|
-
"\u201D is not allowed here (",
|
|
2518
|
-
[
|
|
2519
|
-
"a",
|
|
2520
|
-
"allowed"
|
|
2521
|
-
],
|
|
2522
|
-
")."
|
|
2523
|
-
],
|
|
2524
|
-
"propBlocked": [
|
|
2525
|
-
"The property \u201C",
|
|
2526
|
-
[
|
|
2527
|
-
"a",
|
|
2528
|
-
"prop"
|
|
2529
|
-
],
|
|
2530
|
-
"\u201D is not allowed."
|
|
2531
|
-
],
|
|
2532
|
-
"unsafeLink": "Link is not allowed (only http, https, mailto, tel or /path).",
|
|
2533
|
-
"oneParagraph": "Only one paragraph is allowed here.",
|
|
2534
|
-
"tooComplex": [
|
|
2535
|
-
"Text is too complex (at most ",
|
|
2536
|
-
[
|
|
2537
|
-
"a",
|
|
2538
|
-
"max"
|
|
2539
|
-
],
|
|
2540
|
-
" elements)."
|
|
2541
|
-
]
|
|
2542
|
-
},
|
|
2543
|
-
"component": {
|
|
2544
|
-
"or": [
|
|
2545
|
-
[
|
|
2546
|
-
"a",
|
|
2547
|
-
"first"
|
|
2548
|
-
],
|
|
2549
|
-
" or ",
|
|
2550
|
-
[
|
|
2551
|
-
"a",
|
|
2552
|
-
"second"
|
|
2553
|
-
]
|
|
2554
|
-
],
|
|
2555
|
-
"and": [
|
|
2556
|
-
[
|
|
2557
|
-
"a",
|
|
2558
|
-
"first"
|
|
2559
|
-
],
|
|
2560
|
-
", ",
|
|
2561
|
-
[
|
|
2562
|
-
"a",
|
|
2563
|
-
"second"
|
|
2564
|
-
]
|
|
2565
|
-
],
|
|
2566
|
-
"quoted": [
|
|
2567
|
-
"\u201C",
|
|
2568
|
-
[
|
|
2569
|
-
"a",
|
|
2570
|
-
"name"
|
|
2571
|
-
],
|
|
2572
|
-
"\u201D"
|
|
2573
|
-
],
|
|
2574
|
-
"unknown": [
|
|
2575
|
-
"There is no component \u201C",
|
|
2576
|
-
[
|
|
2577
|
-
"a",
|
|
2578
|
-
"tag"
|
|
2579
|
-
],
|
|
2580
|
-
"\u201D."
|
|
2581
|
-
],
|
|
2582
|
-
"propUnknown": [
|
|
2583
|
-
"Component \u201C",
|
|
2584
|
-
[
|
|
2585
|
-
"a",
|
|
2586
|
-
"tag"
|
|
2587
|
-
],
|
|
2588
|
-
"\u201D: There is no property \u201C",
|
|
2589
|
-
[
|
|
2590
|
-
"a",
|
|
2591
|
-
"prop"
|
|
2592
|
-
],
|
|
2593
|
-
"\u201D."
|
|
2594
|
-
],
|
|
2595
|
-
"propInvalid": [
|
|
2596
|
-
"Component \u201C",
|
|
2597
|
-
[
|
|
2598
|
-
"a",
|
|
2599
|
-
"tag"
|
|
2600
|
-
],
|
|
2601
|
-
"\u201D: property \u201C",
|
|
2602
|
-
[
|
|
2603
|
-
"a",
|
|
2604
|
-
"prop"
|
|
2605
|
-
],
|
|
2606
|
-
"\u201D ",
|
|
2607
|
-
[
|
|
2608
|
-
"a",
|
|
2609
|
-
"problem"
|
|
2610
|
-
]
|
|
2611
|
-
],
|
|
2612
|
-
"propMissing": [
|
|
2613
|
-
"Component \u201C",
|
|
2614
|
-
[
|
|
2615
|
-
"a",
|
|
2616
|
-
"tag"
|
|
2617
|
-
],
|
|
2618
|
-
"\u201D: property \u201C",
|
|
2619
|
-
[
|
|
2620
|
-
"a",
|
|
2621
|
-
"prop"
|
|
2622
|
-
],
|
|
2623
|
-
"\u201D is missing."
|
|
2624
|
-
],
|
|
2625
|
-
"propEmpty": [
|
|
2626
|
-
"Component \u201C",
|
|
2627
|
-
[
|
|
2628
|
-
"a",
|
|
2629
|
-
"tag"
|
|
2630
|
-
],
|
|
2631
|
-
"\u201D: property \u201C",
|
|
2632
|
-
[
|
|
2633
|
-
"a",
|
|
2634
|
-
"prop"
|
|
2635
|
-
],
|
|
2636
|
-
"\u201D is empty."
|
|
2637
|
-
],
|
|
2638
|
-
"blockInParagraph": [
|
|
2639
|
-
"Component \u201C",
|
|
2640
|
-
[
|
|
2641
|
-
"a",
|
|
2642
|
-
"tag"
|
|
2643
|
-
],
|
|
2644
|
-
"\u201D is a block and does not belong in a paragraph."
|
|
2645
|
-
],
|
|
2646
|
-
"parentOnly": [
|
|
2647
|
-
"Component \u201C",
|
|
2648
|
-
[
|
|
2649
|
-
"a",
|
|
2650
|
-
"tag"
|
|
2651
|
-
],
|
|
2652
|
-
"\u201D may only appear in ",
|
|
2653
|
-
[
|
|
2654
|
-
"a",
|
|
2655
|
-
"parents"
|
|
2656
|
-
],
|
|
2657
|
-
"."
|
|
2658
|
-
],
|
|
2659
|
-
"slotUnknown": [
|
|
2660
|
-
"Component \u201C",
|
|
2661
|
-
[
|
|
2662
|
-
"a",
|
|
2663
|
-
"tag"
|
|
2664
|
-
],
|
|
2665
|
-
"\u201D: There is no area \u201C",
|
|
2666
|
-
[
|
|
2667
|
-
"a",
|
|
2668
|
-
"slot"
|
|
2669
|
-
],
|
|
2670
|
-
"\u201D (allowed: ",
|
|
2671
|
-
[
|
|
2672
|
-
"a",
|
|
2673
|
-
"allowed"
|
|
2674
|
-
],
|
|
2675
|
-
")."
|
|
2676
|
-
],
|
|
2677
|
-
"noSlots": [
|
|
2678
|
-
"Component \u201C",
|
|
2679
|
-
[
|
|
2680
|
-
"a",
|
|
2681
|
-
"tag"
|
|
2682
|
-
],
|
|
2683
|
-
"\u201D: has no areas, \u201C",
|
|
2684
|
-
[
|
|
2685
|
-
"a",
|
|
2686
|
-
"slot"
|
|
2687
|
-
],
|
|
2688
|
-
"\u201D is not allowed."
|
|
2689
|
-
],
|
|
2690
|
-
"childNotAllowed": [
|
|
2691
|
-
"Component \u201C",
|
|
2692
|
-
[
|
|
2693
|
-
"a",
|
|
2694
|
-
"tag"
|
|
2695
|
-
],
|
|
2696
|
-
"\u201D may only contain ",
|
|
2697
|
-
[
|
|
2698
|
-
"a",
|
|
2699
|
-
"children"
|
|
2700
|
-
],
|
|
2701
|
-
", not \u201C",
|
|
2702
|
-
[
|
|
2703
|
-
"a",
|
|
2704
|
-
"child"
|
|
2705
|
-
],
|
|
2706
|
-
"\u201D."
|
|
2707
|
-
],
|
|
2708
|
-
"prop": {
|
|
2709
|
-
"notBoolean": "must be \u201Ctrue\u201D or \u201Cfalse\u201D.",
|
|
2710
|
-
"notNumber": "must be a number.",
|
|
2711
|
-
"outOfRange": [
|
|
2712
|
-
"must be between ",
|
|
2713
|
-
[
|
|
2714
|
-
"a",
|
|
2715
|
-
"min"
|
|
2716
|
-
],
|
|
2717
|
-
" and ",
|
|
2718
|
-
[
|
|
2719
|
-
"a",
|
|
2720
|
-
"max"
|
|
2721
|
-
],
|
|
2722
|
-
"."
|
|
2723
|
-
],
|
|
2724
|
-
"badStep": [
|
|
2725
|
-
"does not fit the step size ",
|
|
2726
|
-
[
|
|
2727
|
-
"a",
|
|
2728
|
-
"step"
|
|
2729
|
-
],
|
|
2730
|
-
"."
|
|
2731
|
-
],
|
|
2732
|
-
"notText": "must be text.",
|
|
2733
|
-
"tooLong": [
|
|
2734
|
-
"is too long (at most ",
|
|
2735
|
-
[
|
|
2736
|
-
"a",
|
|
2737
|
-
"max"
|
|
2738
|
-
],
|
|
2739
|
-
" characters)."
|
|
2740
|
-
],
|
|
2741
|
-
"badChoice": [
|
|
2742
|
-
"has an invalid value (allowed: ",
|
|
2743
|
-
[
|
|
2744
|
-
"a",
|
|
2745
|
-
"allowed"
|
|
2746
|
-
],
|
|
2747
|
-
")."
|
|
2748
|
-
],
|
|
2749
|
-
"badChoices": [
|
|
2750
|
-
"has invalid values (allowed: ",
|
|
2751
|
-
[
|
|
2752
|
-
"a",
|
|
2753
|
-
"allowed"
|
|
2754
|
-
],
|
|
2755
|
-
")."
|
|
2756
|
-
],
|
|
2757
|
-
"duplicateValues": "contains values twice.",
|
|
2758
|
-
"tooManyChosen": [
|
|
2759
|
-
"allows at most ",
|
|
2760
|
-
[
|
|
2761
|
-
"a",
|
|
2762
|
-
"max"
|
|
2763
|
-
],
|
|
2764
|
-
" values."
|
|
2765
|
-
],
|
|
2766
|
-
"badImage": "must be a path or a web address.",
|
|
2767
|
-
"notId": "must be an entry ID.",
|
|
2768
|
-
"badType": "has a type that is not allowed."
|
|
2769
|
-
}
|
|
2770
|
-
},
|
|
2771
|
-
"links": {
|
|
2772
|
-
"snippetMissing": [
|
|
2773
|
-
"Text snippet \u201C",
|
|
2774
|
-
[
|
|
2775
|
-
"a",
|
|
2776
|
-
"name"
|
|
2777
|
-
],
|
|
2778
|
-
"\u201D not found (entry snippets/",
|
|
2779
|
-
[
|
|
2780
|
-
"a",
|
|
2781
|
-
"name"
|
|
2782
|
-
],
|
|
2783
|
-
" with field body)."
|
|
2784
|
-
],
|
|
2785
|
-
"linkBroken": [
|
|
2786
|
-
"Link ",
|
|
2787
|
-
[
|
|
2788
|
-
"a",
|
|
2789
|
-
"href"
|
|
2790
|
-
],
|
|
2791
|
-
" leads to no entry and no page."
|
|
2792
|
-
],
|
|
2793
|
-
"linkRedirected": [
|
|
2794
|
-
"Link ",
|
|
2795
|
-
[
|
|
2796
|
-
"a",
|
|
2797
|
-
"href"
|
|
2798
|
-
],
|
|
2799
|
-
" leads to ",
|
|
2800
|
-
[
|
|
2801
|
-
"a",
|
|
2802
|
-
"to"
|
|
2803
|
-
],
|
|
2804
|
-
" through a redirect."
|
|
2805
|
-
],
|
|
2806
|
-
"pathUnknown": [
|
|
2807
|
-
"Path ",
|
|
2808
|
-
[
|
|
2809
|
-
"a",
|
|
2810
|
-
"path"
|
|
2811
|
-
],
|
|
2812
|
-
" matches no entry, no page and no file in public/."
|
|
2813
|
-
],
|
|
2814
|
-
"anchorMissing": [
|
|
2815
|
-
"Anchor #",
|
|
2816
|
-
[
|
|
2817
|
-
"a",
|
|
2818
|
-
"anchor"
|
|
2819
|
-
],
|
|
2820
|
-
" is missing: no heading with this id."
|
|
2821
|
-
],
|
|
2822
|
-
"externalBroken": [
|
|
2823
|
-
"External link ",
|
|
2824
|
-
[
|
|
2825
|
-
"a",
|
|
2826
|
-
"href"
|
|
2827
|
-
],
|
|
2828
|
-
" is broken (",
|
|
2829
|
-
[
|
|
2830
|
-
"a",
|
|
2831
|
-
"reason"
|
|
2832
|
-
],
|
|
2833
|
-
")."
|
|
2834
|
-
]
|
|
2835
|
-
},
|
|
2836
|
-
"editor": {
|
|
2837
|
-
"component": {
|
|
2838
|
-
"unknown": [
|
|
2839
|
-
"\u201C",
|
|
2840
|
-
[
|
|
2841
|
-
"a",
|
|
2842
|
-
"tag"
|
|
2843
|
-
],
|
|
2844
|
-
"\u201D does not exist here."
|
|
2845
|
-
],
|
|
2846
|
-
"more": [
|
|
2847
|
-
[
|
|
2848
|
-
"a",
|
|
2849
|
-
"first"
|
|
2850
|
-
],
|
|
2851
|
-
" Check ",
|
|
2852
|
-
[
|
|
2853
|
-
"a",
|
|
2854
|
-
"count"
|
|
2855
|
-
],
|
|
2856
|
-
" more ",
|
|
2857
|
-
[
|
|
2858
|
-
"p",
|
|
2859
|
-
"count",
|
|
2860
|
-
0,
|
|
2861
|
-
{
|
|
2862
|
-
"one": [
|
|
2863
|
-
"setting"
|
|
2864
|
-
],
|
|
2865
|
-
"other": [
|
|
2866
|
-
"settings"
|
|
2867
|
-
]
|
|
2868
|
-
},
|
|
2869
|
-
0
|
|
2870
|
-
],
|
|
2871
|
-
"."
|
|
2872
|
-
]
|
|
2873
|
-
},
|
|
2874
|
-
"prop": {
|
|
2875
|
-
"missing": [
|
|
2876
|
-
[
|
|
2877
|
-
"a",
|
|
2878
|
-
"label"
|
|
2879
|
-
],
|
|
2880
|
-
" is missing."
|
|
2881
|
-
],
|
|
2882
|
-
"empty": [
|
|
2883
|
-
[
|
|
2884
|
-
"a",
|
|
2885
|
-
"label"
|
|
2886
|
-
],
|
|
2887
|
-
" is empty."
|
|
2888
|
-
],
|
|
2889
|
-
"invalid": [
|
|
2890
|
-
[
|
|
2891
|
-
"a",
|
|
2892
|
-
"label"
|
|
2893
|
-
],
|
|
2894
|
-
" ",
|
|
2895
|
-
[
|
|
2896
|
-
"a",
|
|
2897
|
-
"problem"
|
|
2898
|
-
]
|
|
2899
|
-
]
|
|
2900
|
-
},
|
|
2901
|
-
"problem": {
|
|
2902
|
-
"imageNoDescription": "The image has no description."
|
|
2903
|
-
},
|
|
2904
|
-
"source": {
|
|
2905
|
-
"unstable": "The text would change when saved, so it is edited as Markdown.",
|
|
2906
|
-
"lossy": "The text cannot be shown in the editor without losing something.",
|
|
2907
|
-
"failed": [
|
|
2908
|
-
"The text cannot be shown in the editor (",
|
|
2909
|
-
[
|
|
2910
|
-
"a",
|
|
2911
|
-
"reason"
|
|
2912
|
-
],
|
|
2913
|
-
")."
|
|
2914
|
-
]
|
|
2915
|
-
}
|
|
2916
|
-
},
|
|
2917
|
-
"diff": {
|
|
2918
|
-
"freshSetting": [
|
|
2919
|
-
[
|
|
2920
|
-
"a",
|
|
2921
|
-
"name"
|
|
2922
|
-
],
|
|
2923
|
-
": ",
|
|
2924
|
-
[
|
|
2925
|
-
"a",
|
|
2926
|
-
"value"
|
|
2927
|
-
],
|
|
2928
|
-
"."
|
|
2929
|
-
],
|
|
2930
|
-
"freshLocales": [
|
|
2931
|
-
"Languages: ",
|
|
2932
|
-
[
|
|
2933
|
-
"a",
|
|
2934
|
-
"locales"
|
|
2935
|
-
],
|
|
2936
|
-
"."
|
|
2937
|
-
],
|
|
2938
|
-
"siteRenamed": "The site name (`site`) cannot be changed.",
|
|
2939
|
-
"currencyChanged": "The site currency cannot be changed.",
|
|
2940
|
-
"mainLocaleChanged": "The main language cannot be changed.",
|
|
2941
|
-
"localeRemoved": [
|
|
2942
|
-
"Language \u201C",
|
|
2943
|
-
[
|
|
2944
|
-
"a",
|
|
2945
|
-
"locale"
|
|
2946
|
-
],
|
|
2947
|
-
"\u201D cannot be removed."
|
|
2948
|
-
],
|
|
2949
|
-
"localeOrder": "New languages go at the end of the list.",
|
|
2950
|
-
"localeAdded": [
|
|
2951
|
-
"New language \u201C",
|
|
2952
|
-
[
|
|
2953
|
-
"a",
|
|
2954
|
-
"locale"
|
|
2955
|
-
],
|
|
2956
|
-
"\u201D."
|
|
2957
|
-
],
|
|
2958
|
-
"timezoneChanged": "The time zone cannot be changed.",
|
|
2959
|
-
"valueChanged": [
|
|
2960
|
-
[
|
|
2961
|
-
"a",
|
|
2962
|
-
"name"
|
|
2963
|
-
],
|
|
2964
|
-
" changed."
|
|
2965
|
-
],
|
|
2966
|
-
"pagesChanged": "Static pages changed.",
|
|
2967
|
-
"agentsChanged": "Review for AI changes changed.",
|
|
2968
|
-
"tasksChanged": "Tasks changed.",
|
|
2969
|
-
"retiredBack": [
|
|
2970
|
-
"\u201C",
|
|
2971
|
-
[
|
|
2972
|
-
"a",
|
|
2973
|
-
"path"
|
|
2974
|
-
],
|
|
2975
|
-
"\u201D was retired and cannot come back."
|
|
2976
|
-
],
|
|
2977
|
-
"unretired": [
|
|
2978
|
-
"\u201C",
|
|
2979
|
-
[
|
|
2980
|
-
"a",
|
|
2981
|
-
"path"
|
|
2982
|
-
],
|
|
2983
|
-
"\u201D was retired."
|
|
2984
|
-
],
|
|
2985
|
-
"retiredRuleChanged": [
|
|
2986
|
-
"The rule for \u201C",
|
|
2987
|
-
[
|
|
2988
|
-
"a",
|
|
2989
|
-
"path"
|
|
2990
|
-
],
|
|
2991
|
-
"\u201D cannot be changed."
|
|
2992
|
-
],
|
|
2993
|
-
"retiredNow": [
|
|
2994
|
-
"\u201C",
|
|
2995
|
-
[
|
|
2996
|
-
"a",
|
|
2997
|
-
"path"
|
|
2998
|
-
],
|
|
2999
|
-
"\u201D is being retired."
|
|
3000
|
-
],
|
|
3001
|
-
"migrationChanged": [
|
|
3002
|
-
"Migration \u201C",
|
|
3003
|
-
[
|
|
3004
|
-
"a",
|
|
3005
|
-
"id"
|
|
3006
|
-
],
|
|
3007
|
-
"\u201D has changed."
|
|
3008
|
-
],
|
|
3009
|
-
"migrationFillsExisting": [
|
|
3010
|
-
"Migration \u201C",
|
|
3011
|
-
[
|
|
3012
|
-
"a",
|
|
3013
|
-
"id"
|
|
3014
|
-
],
|
|
3015
|
-
"\u201D fills \u201C",
|
|
3016
|
-
[
|
|
3017
|
-
"a",
|
|
3018
|
-
"target"
|
|
3019
|
-
],
|
|
3020
|
-
"\u201D, which already exists."
|
|
3021
|
-
],
|
|
3022
|
-
"migrationAdded": [
|
|
3023
|
-
"New migration \u201C",
|
|
3024
|
-
[
|
|
3025
|
-
"a",
|
|
3026
|
-
"id"
|
|
3027
|
-
],
|
|
3028
|
-
"\u201D."
|
|
3029
|
-
],
|
|
3030
|
-
"migrationDropped": [
|
|
3031
|
-
"Migration \u201C",
|
|
3032
|
-
[
|
|
3033
|
-
"a",
|
|
3034
|
-
"id"
|
|
3035
|
-
],
|
|
3036
|
-
"\u201D is no longer in the config."
|
|
3037
|
-
],
|
|
3038
|
-
"brickRemoved": [
|
|
3039
|
-
"Brick \u201C",
|
|
3040
|
-
[
|
|
3041
|
-
"a",
|
|
3042
|
-
"key"
|
|
3043
|
-
],
|
|
3044
|
-
"\u201D is missing."
|
|
3045
|
-
],
|
|
3046
|
-
"brickAdded": [
|
|
3047
|
-
"New brick \u201C",
|
|
3048
|
-
[
|
|
3049
|
-
"a",
|
|
3050
|
-
"key"
|
|
3051
|
-
],
|
|
3052
|
-
"\u201D."
|
|
3053
|
-
],
|
|
3054
|
-
"singleWithoutDefault": [
|
|
3055
|
-
"New single: required field \u201C",
|
|
3056
|
-
[
|
|
3057
|
-
"a",
|
|
3058
|
-
"name"
|
|
3059
|
-
],
|
|
3060
|
-
"\u201D needs a default."
|
|
3061
|
-
],
|
|
3062
|
-
"unknownChange": [
|
|
3063
|
-
"\u201C",
|
|
3064
|
-
[
|
|
3065
|
-
"a",
|
|
3066
|
-
"at"
|
|
3067
|
-
],
|
|
3068
|
-
"\u201D: property \u201C",
|
|
3069
|
-
[
|
|
3070
|
-
"a",
|
|
3071
|
-
"prop"
|
|
3072
|
-
],
|
|
3073
|
-
"\u201D changed, which is not allowed."
|
|
3074
|
-
],
|
|
3075
|
-
"kindChanged": [
|
|
3076
|
-
"\u201C",
|
|
3077
|
-
[
|
|
3078
|
-
"a",
|
|
3079
|
-
"key"
|
|
3080
|
-
],
|
|
3081
|
-
"\u201D switches between single and collection."
|
|
3082
|
-
],
|
|
3083
|
-
"textChanged": "Text changed.",
|
|
3084
|
-
"maxLowered": [
|
|
3085
|
-
"\u201C",
|
|
3086
|
-
[
|
|
3087
|
-
"a",
|
|
3088
|
-
"at"
|
|
3089
|
-
],
|
|
3090
|
-
"\u201D: max cannot be lowered."
|
|
3091
|
-
],
|
|
3092
|
-
"maxRaised": "max raised.",
|
|
3093
|
-
"routeAdded": "New detail pages.",
|
|
3094
|
-
"routeAddedLocale": "Address for the new language.",
|
|
3095
|
-
"routeChanged": [
|
|
3096
|
-
"\u201C",
|
|
3097
|
-
[
|
|
3098
|
-
"a",
|
|
3099
|
-
"key"
|
|
3100
|
-
],
|
|
3101
|
-
"\u201D: addresses (route) cannot be changed."
|
|
3102
|
-
],
|
|
3103
|
-
"fieldRemoved": [
|
|
3104
|
-
"Field \u201C",
|
|
3105
|
-
[
|
|
3106
|
-
"a",
|
|
3107
|
-
"at"
|
|
3108
|
-
],
|
|
3109
|
-
"\u201D is missing."
|
|
3110
|
-
],
|
|
3111
|
-
"fieldAdded": [
|
|
3112
|
-
"New field \u201C",
|
|
3113
|
-
[
|
|
3114
|
-
"a",
|
|
3115
|
-
"at"
|
|
3116
|
-
],
|
|
3117
|
-
"\u201D."
|
|
3118
|
-
],
|
|
3119
|
-
"fieldAddedDefault": [
|
|
3120
|
-
"New required field \u201C",
|
|
3121
|
-
[
|
|
3122
|
-
"a",
|
|
3123
|
-
"at"
|
|
3124
|
-
],
|
|
3125
|
-
"\u201D with default."
|
|
3126
|
-
],
|
|
3127
|
-
"fieldAddedMigration": [
|
|
3128
|
-
"New required field \u201C",
|
|
3129
|
-
[
|
|
3130
|
-
"a",
|
|
3131
|
-
"at"
|
|
3132
|
-
],
|
|
3133
|
-
"\u201D, filled by a migration."
|
|
3134
|
-
],
|
|
3135
|
-
"requiredWithoutDefault": [
|
|
3136
|
-
"New required field \u201C",
|
|
3137
|
-
[
|
|
3138
|
-
"a",
|
|
3139
|
-
"at"
|
|
3140
|
-
],
|
|
3141
|
-
"\u201D without default or migration."
|
|
3142
|
-
],
|
|
3143
|
-
"typeChanged": [
|
|
3144
|
-
"\u201C",
|
|
3145
|
-
[
|
|
3146
|
-
"a",
|
|
3147
|
-
"at"
|
|
3148
|
-
],
|
|
3149
|
-
"\u201D: type ",
|
|
3150
|
-
[
|
|
3151
|
-
"a",
|
|
3152
|
-
"from"
|
|
3153
|
-
],
|
|
3154
|
-
" \u2192 ",
|
|
3155
|
-
[
|
|
3156
|
-
"a",
|
|
3157
|
-
"to"
|
|
3158
|
-
],
|
|
3159
|
-
"."
|
|
3160
|
-
],
|
|
3161
|
-
"retiredFieldChanged": [
|
|
3162
|
-
"\u201C",
|
|
3163
|
-
[
|
|
3164
|
-
"a",
|
|
3165
|
-
"at"
|
|
3166
|
-
],
|
|
3167
|
-
"\u201D: a retired field keeps its production definition."
|
|
3168
|
-
],
|
|
3169
|
-
"madeRequired": [
|
|
3170
|
-
"\u201C",
|
|
3171
|
-
[
|
|
3172
|
-
"a",
|
|
3173
|
-
"at"
|
|
3174
|
-
],
|
|
3175
|
-
"\u201D: optional \u2192 required."
|
|
3176
|
-
],
|
|
3177
|
-
"madeOptional": [
|
|
3178
|
-
"\u201C",
|
|
3179
|
-
[
|
|
3180
|
-
"a",
|
|
3181
|
-
"at"
|
|
3182
|
-
],
|
|
3183
|
-
"\u201D is now optional."
|
|
3184
|
-
],
|
|
3185
|
-
"translationChanged": [
|
|
3186
|
-
"\u201C",
|
|
3187
|
-
[
|
|
3188
|
-
"a",
|
|
3189
|
-
"at"
|
|
3190
|
-
],
|
|
3191
|
-
"\u201D: translatability changed."
|
|
3192
|
-
],
|
|
3193
|
-
"defaultChanged": [
|
|
3194
|
-
"\u201C",
|
|
3195
|
-
[
|
|
3196
|
-
"a",
|
|
3197
|
-
"at"
|
|
3198
|
-
],
|
|
3199
|
-
"\u201D: default cannot be changed."
|
|
3200
|
-
],
|
|
3201
|
-
"minRaised": [
|
|
3202
|
-
"\u201C",
|
|
3203
|
-
[
|
|
3204
|
-
"a",
|
|
3205
|
-
"at"
|
|
3206
|
-
],
|
|
3207
|
-
"\u201D: min cannot be raised."
|
|
3208
|
-
],
|
|
3209
|
-
"minLowered": "min lowered.",
|
|
3210
|
-
"minOffGrid": [
|
|
3211
|
-
"\u201C",
|
|
3212
|
-
[
|
|
3213
|
-
"a",
|
|
3214
|
-
"at"
|
|
3215
|
-
],
|
|
3216
|
-
"\u201D: min can only be lowered by a multiple of the step ",
|
|
3217
|
-
[
|
|
3218
|
-
"a",
|
|
3219
|
-
"step"
|
|
3220
|
-
],
|
|
3221
|
-
"."
|
|
3222
|
-
],
|
|
3223
|
-
"propChanged": [
|
|
3224
|
-
"\u201C",
|
|
3225
|
-
[
|
|
3226
|
-
"a",
|
|
3227
|
-
"at"
|
|
3228
|
-
],
|
|
3229
|
-
"\u201D: ",
|
|
3230
|
-
[
|
|
3231
|
-
"a",
|
|
3232
|
-
"prop"
|
|
3233
|
-
],
|
|
3234
|
-
" cannot be changed."
|
|
3235
|
-
],
|
|
3236
|
-
"optionRemoved": [
|
|
3237
|
-
"\u201C",
|
|
3238
|
-
[
|
|
3239
|
-
"a",
|
|
3240
|
-
"at"
|
|
3241
|
-
],
|
|
3242
|
-
"\u201D: option \u201C",
|
|
3243
|
-
[
|
|
3244
|
-
"a",
|
|
3245
|
-
"option"
|
|
3246
|
-
],
|
|
3247
|
-
"\u201D is missing."
|
|
3248
|
-
],
|
|
3249
|
-
"optionRenamed": "Option renamed.",
|
|
3250
|
-
"optionAdded": [
|
|
3251
|
-
"New option \u201C",
|
|
3252
|
-
[
|
|
3253
|
-
"a",
|
|
3254
|
-
"option"
|
|
3255
|
-
],
|
|
3256
|
-
"\u201D."
|
|
3257
|
-
],
|
|
3258
|
-
"uniqueChanged": [
|
|
3259
|
-
"\u201C",
|
|
3260
|
-
[
|
|
3261
|
-
"a",
|
|
3262
|
-
"at"
|
|
3263
|
-
],
|
|
3264
|
-
"\u201D: unique cannot be set or changed."
|
|
3265
|
-
],
|
|
3266
|
-
"uniqueDropped": [
|
|
3267
|
-
"\u201C",
|
|
3268
|
-
[
|
|
3269
|
-
"a",
|
|
3270
|
-
"at"
|
|
3271
|
-
],
|
|
3272
|
-
"\u201D: unique removed."
|
|
3273
|
-
],
|
|
3274
|
-
"fix": {
|
|
3275
|
-
"newField": "Add a new field, fill it with a migration and list the old field under `retired`.",
|
|
3276
|
-
"newFieldOnly": "Add a new field.",
|
|
3277
|
-
"newSite": "Create a new site.",
|
|
3278
|
-
"moneyFields": "Add new money fields with a fixed `currency`.",
|
|
3279
|
-
"planMigration": "Plan a migration with your developer.",
|
|
3280
|
-
"keepLocale": "Keep the language; pages in it can be hidden.",
|
|
3281
|
-
"keepLocaleOrder": "Keep the order of the existing languages.",
|
|
3282
|
-
"keepTimezone": "Keep the time zone.",
|
|
3283
|
-
"keepRule": "Leave the rule as it is.",
|
|
3284
|
-
"newMigrationId": "A repair gets a new ID.",
|
|
3285
|
-
"fillNewFieldsOnly": "Fill only new fields; for an existing one, add a new field.",
|
|
3286
|
-
"retireBrick": "List the brick under `retired` instead of deleting it.",
|
|
3287
|
-
"defaultOrOptional": "Set a `default` or make the field optional.",
|
|
3288
|
-
"keepProperty": "Keep the property.",
|
|
3289
|
-
"keepMax": "Keep max.",
|
|
3290
|
-
"keepRoute": "Keep the route.",
|
|
3291
|
-
"defaultMigrationOrOptional": "Set a `default`, write a migration or make the field optional.",
|
|
3292
|
-
"keepDefinition": "Leave the definition as it is; only texts may change.",
|
|
3293
|
-
"keepDefault": "Keep the default.",
|
|
3294
|
-
"keepMin": "Keep min.",
|
|
3295
|
-
"minOnGrid": "Lower min so that the difference is a multiple of step.",
|
|
3296
|
-
"keepOption": "Keep the option; it can be renamed (label).",
|
|
3297
|
-
"newList": "Add a new list and fill it with a migration."
|
|
3298
|
-
}
|
|
3299
|
-
},
|
|
3300
|
-
"preview": {
|
|
3301
|
-
"notFound": "This page does not exist.",
|
|
3302
|
-
"failed": "The preview does not load.",
|
|
3303
|
-
"loading": "Loading the preview \u2026"
|
|
3304
|
-
}
|
|
3305
|
-
},
|
|
3306
|
-
"es": {
|
|
3307
|
-
"issues": {
|
|
3308
|
-
"unknownBrick": [
|
|
3309
|
-
"No existe el bloque \u201C",
|
|
3310
|
-
[
|
|
3311
|
-
"a",
|
|
3312
|
-
"brick"
|
|
3313
|
-
],
|
|
3314
|
-
"\u201D."
|
|
3315
|
-
],
|
|
3316
|
-
"markdown": [
|
|
3317
|
-
"\u201C",
|
|
3318
|
-
[
|
|
3319
|
-
"a",
|
|
3320
|
-
"label"
|
|
3321
|
-
],
|
|
3322
|
-
"\u201D: ",
|
|
3323
|
-
[
|
|
3324
|
-
"a",
|
|
3325
|
-
"problem"
|
|
3326
|
-
]
|
|
3327
|
-
],
|
|
3328
|
-
"notObject": "Se espera un objeto.",
|
|
3329
|
-
"unknownField": "Campo desconocido.",
|
|
3330
|
-
"fieldMissing": [
|
|
3331
|
-
"Falta \u201C",
|
|
3332
|
-
[
|
|
3333
|
-
"a",
|
|
3334
|
-
"label"
|
|
3335
|
-
],
|
|
3336
|
-
"\u201D."
|
|
3337
|
-
],
|
|
3338
|
-
"notLocalized": [
|
|
3339
|
-
"\u201C",
|
|
3340
|
-
[
|
|
3341
|
-
"a",
|
|
3342
|
-
"label"
|
|
3343
|
-
],
|
|
3344
|
-
"\u201D debe guardarse por idioma."
|
|
3345
|
-
],
|
|
3346
|
-
"unknownLocale": [
|
|
3347
|
-
"El idioma \u201C",
|
|
3348
|
-
[
|
|
3349
|
-
"a",
|
|
3350
|
-
"locale"
|
|
3351
|
-
],
|
|
3352
|
-
"\u201D no est\xE1 configurado."
|
|
3353
|
-
],
|
|
3354
|
-
"fieldEmpty": [
|
|
3355
|
-
"No hay contenido en \u201C",
|
|
3356
|
-
[
|
|
3357
|
-
"a",
|
|
3358
|
-
"label"
|
|
3359
|
-
],
|
|
3360
|
-
"\u201D."
|
|
3361
|
-
],
|
|
3362
|
-
"notText": [
|
|
3363
|
-
"\u201C",
|
|
3364
|
-
[
|
|
3365
|
-
"a",
|
|
3366
|
-
"label"
|
|
3367
|
-
],
|
|
3368
|
-
"\u201D debe ser texto."
|
|
3369
|
-
],
|
|
3370
|
-
"tooLong": [
|
|
3371
|
-
"\u201C",
|
|
3372
|
-
[
|
|
3373
|
-
"a",
|
|
3374
|
-
"label"
|
|
3375
|
-
],
|
|
3376
|
-
"\u201D es demasiado largo (m\xE1ximo ",
|
|
3377
|
-
[
|
|
3378
|
-
"a",
|
|
3379
|
-
"max"
|
|
3380
|
-
],
|
|
3381
|
-
" caracteres)."
|
|
3382
|
-
],
|
|
3383
|
-
"controlChars": [
|
|
3384
|
-
"\u201C",
|
|
3385
|
-
[
|
|
3386
|
-
"a",
|
|
3387
|
-
"label"
|
|
3388
|
-
],
|
|
3389
|
-
"\u201D contiene caracteres de control invisibles."
|
|
3390
|
-
],
|
|
3391
|
-
"badFormat": [
|
|
3392
|
-
"\u201C",
|
|
3393
|
-
[
|
|
3394
|
-
"a",
|
|
3395
|
-
"label"
|
|
3396
|
-
],
|
|
3397
|
-
"\u201D no tiene un formato v\xE1lido."
|
|
3398
|
-
],
|
|
3399
|
-
"badSlug": [
|
|
3400
|
-
"\u201C",
|
|
3401
|
-
[
|
|
3402
|
-
"a",
|
|
3403
|
-
"label"
|
|
3404
|
-
],
|
|
3405
|
-
"\u201D no es una direcci\xF3n v\xE1lida."
|
|
3406
|
-
],
|
|
3407
|
-
"notNumber": [
|
|
3408
|
-
"\u201C",
|
|
3409
|
-
[
|
|
3410
|
-
"a",
|
|
3411
|
-
"label"
|
|
3412
|
-
],
|
|
3413
|
-
"\u201D debe ser un n\xFAmero."
|
|
3414
|
-
],
|
|
3415
|
-
"outOfRange": [
|
|
3416
|
-
"\u201C",
|
|
3417
|
-
[
|
|
3418
|
-
"a",
|
|
3419
|
-
"label"
|
|
3420
|
-
],
|
|
3421
|
-
"\u201D debe estar entre ",
|
|
3422
|
-
[
|
|
3423
|
-
"a",
|
|
3424
|
-
"min"
|
|
3425
|
-
],
|
|
3426
|
-
" y ",
|
|
3427
|
-
[
|
|
3428
|
-
"a",
|
|
3429
|
-
"max"
|
|
3430
|
-
],
|
|
3431
|
-
"."
|
|
3432
|
-
],
|
|
3433
|
-
"badStep": [
|
|
3434
|
-
"\u201C",
|
|
3435
|
-
[
|
|
3436
|
-
"a",
|
|
3437
|
-
"label"
|
|
3438
|
-
],
|
|
3439
|
-
"\u201D no encaja con el paso ",
|
|
3440
|
-
[
|
|
3441
|
-
"a",
|
|
3442
|
-
"step"
|
|
3443
|
-
],
|
|
3444
|
-
"."
|
|
3445
|
-
],
|
|
3446
|
-
"notMoney": [
|
|
3447
|
-
"\u201C",
|
|
3448
|
-
[
|
|
3449
|
-
"a",
|
|
3450
|
-
"label"
|
|
3451
|
-
],
|
|
3452
|
-
"\u201D debe ser un importe en c\xE9ntimos."
|
|
3453
|
-
],
|
|
3454
|
-
"moneyOutOfRange": [
|
|
3455
|
-
"\u201C",
|
|
3456
|
-
[
|
|
3457
|
-
"a",
|
|
3458
|
-
"label"
|
|
3459
|
-
],
|
|
3460
|
-
"\u201D est\xE1 fuera de los l\xEDmites."
|
|
3461
|
-
],
|
|
3462
|
-
"notBoolean": [
|
|
3463
|
-
"\u201C",
|
|
3464
|
-
[
|
|
3465
|
-
"a",
|
|
3466
|
-
"label"
|
|
3467
|
-
],
|
|
3468
|
-
"\u201D debe ser s\xED o no."
|
|
3469
|
-
],
|
|
3470
|
-
"badDate": [
|
|
3471
|
-
"\u201C",
|
|
3472
|
-
[
|
|
3473
|
-
"a",
|
|
3474
|
-
"label"
|
|
3475
|
-
],
|
|
3476
|
-
"\u201D no es una fecha v\xE1lida."
|
|
3477
|
-
],
|
|
3478
|
-
"badTime": [
|
|
3479
|
-
"\u201C",
|
|
3480
|
-
[
|
|
3481
|
-
"a",
|
|
3482
|
-
"label"
|
|
3483
|
-
],
|
|
3484
|
-
"\u201D no es una hora v\xE1lida."
|
|
3485
|
-
],
|
|
3486
|
-
"badDateRange": [
|
|
3487
|
-
"\u201C",
|
|
3488
|
-
[
|
|
3489
|
-
"a",
|
|
3490
|
-
"label"
|
|
3491
|
-
],
|
|
3492
|
-
"\u201D no es un per\xEDodo v\xE1lido."
|
|
3493
|
-
],
|
|
3494
|
-
"dateRangeOrder": [
|
|
3495
|
-
"\u201C",
|
|
3496
|
-
[
|
|
3497
|
-
"a",
|
|
3498
|
-
"label"
|
|
3499
|
-
],
|
|
3500
|
-
"\u201D: \u201Cdesde\u201D es posterior a \u201Chasta\u201D."
|
|
3501
|
-
],
|
|
3502
|
-
"badChoice": [
|
|
3503
|
-
"\u201C",
|
|
3504
|
-
[
|
|
3505
|
-
"a",
|
|
3506
|
-
"label"
|
|
3507
|
-
],
|
|
3508
|
-
"\u201D tiene un valor no v\xE1lido."
|
|
3509
|
-
],
|
|
3510
|
-
"badChoices": [
|
|
3511
|
-
"\u201C",
|
|
3512
|
-
[
|
|
3513
|
-
"a",
|
|
3514
|
-
"label"
|
|
3515
|
-
],
|
|
3516
|
-
"\u201D tiene valores no v\xE1lidos."
|
|
3517
|
-
],
|
|
3518
|
-
"duplicateValues": [
|
|
3519
|
-
"\u201C",
|
|
3520
|
-
[
|
|
3521
|
-
"a",
|
|
3522
|
-
"label"
|
|
3523
|
-
],
|
|
3524
|
-
"\u201D contiene valores repetidos."
|
|
3525
|
-
],
|
|
3526
|
-
"tooManyChosen": [
|
|
3527
|
-
"\u201C",
|
|
3528
|
-
[
|
|
3529
|
-
"a",
|
|
3530
|
-
"label"
|
|
3531
|
-
],
|
|
3532
|
-
"\u201D: m\xE1ximo ",
|
|
3533
|
-
[
|
|
3534
|
-
"a",
|
|
3535
|
-
"max"
|
|
3536
|
-
],
|
|
3537
|
-
"."
|
|
3538
|
-
],
|
|
3539
|
-
"notIdList": [
|
|
3540
|
-
"\u201C",
|
|
3541
|
-
[
|
|
3542
|
-
"a",
|
|
3543
|
-
"label"
|
|
3544
|
-
],
|
|
3545
|
-
"\u201D debe ser una lista de ID de entradas."
|
|
3546
|
-
],
|
|
3547
|
-
"notId": [
|
|
3548
|
-
"\u201C",
|
|
3549
|
-
[
|
|
3550
|
-
"a",
|
|
3551
|
-
"label"
|
|
3552
|
-
],
|
|
3553
|
-
"\u201D debe ser un ID de entrada."
|
|
3554
|
-
],
|
|
3555
|
-
"duplicateEntries": [
|
|
3556
|
-
"\u201C",
|
|
3557
|
-
[
|
|
3558
|
-
"a",
|
|
3559
|
-
"label"
|
|
3560
|
-
],
|
|
3561
|
-
"\u201D contiene entradas repetidas."
|
|
3562
|
-
],
|
|
3563
|
-
"refGone": [
|
|
3564
|
-
"\u201C",
|
|
3565
|
-
[
|
|
3566
|
-
"a",
|
|
3567
|
-
"label"
|
|
3568
|
-
],
|
|
3569
|
-
"\u201D: la entrada ya no existe."
|
|
3570
|
-
],
|
|
3571
|
-
"notList": [
|
|
3572
|
-
"\u201C",
|
|
3573
|
-
[
|
|
3574
|
-
"a",
|
|
3575
|
-
"label"
|
|
3576
|
-
],
|
|
3577
|
-
"\u201D debe ser una lista."
|
|
3578
|
-
],
|
|
3579
|
-
"tooManyRows": [
|
|
3580
|
-
"\u201C",
|
|
3581
|
-
[
|
|
3582
|
-
"a",
|
|
3583
|
-
"label"
|
|
3584
|
-
],
|
|
3585
|
-
"\u201D tiene demasiados elementos (m\xE1ximo ",
|
|
3586
|
-
[
|
|
3587
|
-
"a",
|
|
3588
|
-
"max"
|
|
3589
|
-
],
|
|
3590
|
-
")."
|
|
3591
|
-
],
|
|
3592
|
-
"tooFewRows": [
|
|
3593
|
-
"\u201C",
|
|
3594
|
-
[
|
|
3595
|
-
"a",
|
|
3596
|
-
"label"
|
|
3597
|
-
],
|
|
3598
|
-
"\u201D necesita al menos ",
|
|
3599
|
-
[
|
|
3600
|
-
"a",
|
|
3601
|
-
"min"
|
|
3602
|
-
],
|
|
3603
|
-
" elementos."
|
|
3604
|
-
],
|
|
3605
|
-
"duplicateRowValue": [
|
|
3606
|
-
"\u201C",
|
|
3607
|
-
[
|
|
3608
|
-
"a",
|
|
3609
|
-
"label"
|
|
3610
|
-
],
|
|
3611
|
-
"\u201D: \u201C",
|
|
3612
|
-
[
|
|
3613
|
-
"a",
|
|
3614
|
-
"value"
|
|
3615
|
-
],
|
|
3616
|
-
"\u201D aparece m\xE1s de una vez."
|
|
3617
|
-
],
|
|
3618
|
-
"badRowId": [
|
|
3619
|
-
"\u201C",
|
|
3620
|
-
[
|
|
3621
|
-
"a",
|
|
3622
|
-
"label"
|
|
3623
|
-
],
|
|
3624
|
-
"\u201D: la fila ",
|
|
3625
|
-
[
|
|
3626
|
-
"a",
|
|
3627
|
-
"row"
|
|
3628
|
-
],
|
|
3629
|
-
" no tiene un ID v\xE1lido."
|
|
3630
|
-
],
|
|
3631
|
-
"duplicateRowId": [
|
|
3632
|
-
"\u201C",
|
|
3633
|
-
[
|
|
3634
|
-
"a",
|
|
3635
|
-
"label"
|
|
3636
|
-
],
|
|
3637
|
-
"\u201D: el ID de fila aparece dos veces."
|
|
3638
|
-
],
|
|
3639
|
-
"notImage": [
|
|
3640
|
-
"\u201C",
|
|
3641
|
-
[
|
|
3642
|
-
"a",
|
|
3643
|
-
"label"
|
|
3644
|
-
],
|
|
3645
|
-
"\u201D no es una imagen v\xE1lida."
|
|
3646
|
-
],
|
|
3647
|
-
"altMissing": [
|
|
3648
|
-
"\u201C",
|
|
3649
|
-
[
|
|
3650
|
-
"a",
|
|
3651
|
-
"label"
|
|
3652
|
-
],
|
|
3653
|
-
"\u201D: falta la descripci\xF3n de la imagen (texto alternativo)."
|
|
3654
|
-
],
|
|
3655
|
-
"altTooLong": [
|
|
3656
|
-
"\u201C",
|
|
3657
|
-
[
|
|
3658
|
-
"a",
|
|
3659
|
-
"label"
|
|
3660
|
-
],
|
|
3661
|
-
"\u201D: el texto alternativo es demasiado largo."
|
|
3662
|
-
],
|
|
3663
|
-
"notFile": [
|
|
3664
|
-
"\u201C",
|
|
3665
|
-
[
|
|
3666
|
-
"a",
|
|
3667
|
-
"label"
|
|
3668
|
-
],
|
|
3669
|
-
"\u201D no es un archivo v\xE1lido."
|
|
3670
|
-
]
|
|
3671
|
-
},
|
|
3672
|
-
"file": {
|
|
3673
|
-
"typeNotAllowed": [
|
|
3674
|
-
"Este tipo de archivo no est\xE1 permitido (permitidos: ",
|
|
3675
|
-
[
|
|
3676
|
-
"a",
|
|
3677
|
-
"allowed"
|
|
3678
|
-
],
|
|
3679
|
-
")."
|
|
3680
|
-
],
|
|
3681
|
-
"tooBig": [
|
|
3682
|
-
"El archivo es demasiado grande (m\xE1ximo ",
|
|
3683
|
-
[
|
|
3684
|
-
"n",
|
|
3685
|
-
"max"
|
|
3686
|
-
],
|
|
3687
|
-
" MB)."
|
|
3688
|
-
]
|
|
3689
|
-
},
|
|
3690
|
-
"markdown": {
|
|
3691
|
-
"profile": {
|
|
3692
|
-
"inline": "solo texto con negrita, cursiva, c\xF3digo y enlaces",
|
|
3693
|
-
"basic": "p\xE1rrafos, t\xEDtulos, listas (tambi\xE9n con casillas), citas, avisos y notas al pie",
|
|
3694
|
-
"rich": "adem\xE1s tablas, im\xE1genes, bloques de c\xF3digo, f\xF3rmulas y diagramas",
|
|
3695
|
-
"page": "adem\xE1s componentes"
|
|
3696
|
-
},
|
|
3697
|
-
"tagBlocked": [
|
|
3698
|
-
"\u201C",
|
|
3699
|
-
[
|
|
3700
|
-
"a",
|
|
3701
|
-
"tag"
|
|
3702
|
-
],
|
|
3703
|
-
"\u201D no est\xE1 permitido."
|
|
3704
|
-
],
|
|
3705
|
-
"tagNotInProfile": [
|
|
3706
|
-
"\u201C",
|
|
3707
|
-
[
|
|
3708
|
-
"a",
|
|
3709
|
-
"tag"
|
|
3710
|
-
],
|
|
3711
|
-
"\u201D no est\xE1 permitido aqu\xED (",
|
|
3712
|
-
[
|
|
3713
|
-
"a",
|
|
3714
|
-
"allowed"
|
|
3715
|
-
],
|
|
3716
|
-
")."
|
|
3717
|
-
],
|
|
3718
|
-
"propBlocked": [
|
|
3719
|
-
"La propiedad \u201C",
|
|
3720
|
-
[
|
|
3721
|
-
"a",
|
|
3722
|
-
"prop"
|
|
3723
|
-
],
|
|
3724
|
-
"\u201D no est\xE1 permitida."
|
|
3725
|
-
],
|
|
3726
|
-
"unsafeLink": "Enlace no permitido (solo http, https, mailto, tel o /ruta).",
|
|
3727
|
-
"oneParagraph": "Aqu\xED solo se permite un p\xE1rrafo.",
|
|
3728
|
-
"tooComplex": [
|
|
3729
|
-
"El texto es demasiado complejo (m\xE1ximo ",
|
|
3730
|
-
[
|
|
3731
|
-
"a",
|
|
3732
|
-
"max"
|
|
3733
|
-
],
|
|
3734
|
-
" elementos)."
|
|
3735
|
-
]
|
|
3736
|
-
},
|
|
3737
|
-
"component": {
|
|
3738
|
-
"or": [
|
|
3739
|
-
[
|
|
3740
|
-
"a",
|
|
3741
|
-
"first"
|
|
3742
|
-
],
|
|
3743
|
-
" o ",
|
|
3744
|
-
[
|
|
3745
|
-
"a",
|
|
3746
|
-
"second"
|
|
3747
|
-
]
|
|
3748
|
-
],
|
|
3749
|
-
"and": [
|
|
3750
|
-
[
|
|
3751
|
-
"a",
|
|
3752
|
-
"first"
|
|
3753
|
-
],
|
|
3754
|
-
", ",
|
|
3755
|
-
[
|
|
3756
|
-
"a",
|
|
3757
|
-
"second"
|
|
3758
|
-
]
|
|
3759
|
-
],
|
|
3760
|
-
"quoted": [
|
|
3761
|
-
"\u201C",
|
|
3762
|
-
[
|
|
3763
|
-
"a",
|
|
3764
|
-
"name"
|
|
3765
|
-
],
|
|
3766
|
-
"\u201D"
|
|
3767
|
-
],
|
|
3768
|
-
"unknown": [
|
|
3769
|
-
"No existe el componente \u201C",
|
|
3770
|
-
[
|
|
3771
|
-
"a",
|
|
3772
|
-
"tag"
|
|
3773
|
-
],
|
|
3774
|
-
"\u201D."
|
|
3775
|
-
],
|
|
3776
|
-
"propUnknown": [
|
|
3777
|
-
"Componente \u201C",
|
|
3778
|
-
[
|
|
3779
|
-
"a",
|
|
3780
|
-
"tag"
|
|
3781
|
-
],
|
|
3782
|
-
"\u201D: no existe la propiedad \u201C",
|
|
3783
|
-
[
|
|
3784
|
-
"a",
|
|
3785
|
-
"prop"
|
|
3786
|
-
],
|
|
3787
|
-
"\u201D."
|
|
3788
|
-
],
|
|
3789
|
-
"propInvalid": [
|
|
3790
|
-
"Componente \u201C",
|
|
3791
|
-
[
|
|
3792
|
-
"a",
|
|
3793
|
-
"tag"
|
|
3794
|
-
],
|
|
3795
|
-
"\u201D: la propiedad \u201C",
|
|
3796
|
-
[
|
|
3797
|
-
"a",
|
|
3798
|
-
"prop"
|
|
3799
|
-
],
|
|
3800
|
-
"\u201D ",
|
|
3801
|
-
[
|
|
3802
|
-
"a",
|
|
3803
|
-
"problem"
|
|
3804
|
-
]
|
|
3805
|
-
],
|
|
3806
|
-
"propMissing": [
|
|
3807
|
-
"Componente \u201C",
|
|
3808
|
-
[
|
|
3809
|
-
"a",
|
|
3810
|
-
"tag"
|
|
3811
|
-
],
|
|
3812
|
-
"\u201D: falta la propiedad \u201C",
|
|
3813
|
-
[
|
|
3814
|
-
"a",
|
|
3815
|
-
"prop"
|
|
3816
|
-
],
|
|
3817
|
-
"\u201D."
|
|
3818
|
-
],
|
|
3819
|
-
"propEmpty": [
|
|
3820
|
-
"Componente \u201C",
|
|
3821
|
-
[
|
|
3822
|
-
"a",
|
|
3823
|
-
"tag"
|
|
3824
|
-
],
|
|
3825
|
-
"\u201D: la propiedad \u201C",
|
|
3826
|
-
[
|
|
3827
|
-
"a",
|
|
3828
|
-
"prop"
|
|
3829
|
-
],
|
|
3830
|
-
"\u201D est\xE1 vac\xEDa."
|
|
3831
|
-
],
|
|
3832
|
-
"blockInParagraph": [
|
|
3833
|
-
"El componente \u201C",
|
|
3834
|
-
[
|
|
3835
|
-
"a",
|
|
3836
|
-
"tag"
|
|
3837
|
-
],
|
|
3838
|
-
"\u201D es un bloque y no va dentro de un p\xE1rrafo."
|
|
3839
|
-
],
|
|
3840
|
-
"parentOnly": [
|
|
3841
|
-
"El componente \u201C",
|
|
3842
|
-
[
|
|
3843
|
-
"a",
|
|
3844
|
-
"tag"
|
|
3845
|
-
],
|
|
3846
|
-
"\u201D solo puede aparecer en ",
|
|
3847
|
-
[
|
|
3848
|
-
"a",
|
|
3849
|
-
"parents"
|
|
3850
|
-
],
|
|
3851
|
-
"."
|
|
3852
|
-
],
|
|
3853
|
-
"slotUnknown": [
|
|
3854
|
-
"Componente \u201C",
|
|
3855
|
-
[
|
|
3856
|
-
"a",
|
|
3857
|
-
"tag"
|
|
3858
|
-
],
|
|
3859
|
-
"\u201D: no existe el \xE1rea \u201C",
|
|
3860
|
-
[
|
|
3861
|
-
"a",
|
|
3862
|
-
"slot"
|
|
3863
|
-
],
|
|
3864
|
-
"\u201D (permitidas: ",
|
|
3865
|
-
[
|
|
3866
|
-
"a",
|
|
3867
|
-
"allowed"
|
|
3868
|
-
],
|
|
3869
|
-
")."
|
|
3870
|
-
],
|
|
3871
|
-
"noSlots": [
|
|
3872
|
-
"Componente \u201C",
|
|
3873
|
-
[
|
|
3874
|
-
"a",
|
|
3875
|
-
"tag"
|
|
3876
|
-
],
|
|
3877
|
-
"\u201D: no tiene \xE1reas, \u201C",
|
|
3878
|
-
[
|
|
3879
|
-
"a",
|
|
3880
|
-
"slot"
|
|
3881
|
-
],
|
|
3882
|
-
"\u201D no est\xE1 permitida."
|
|
3883
|
-
],
|
|
3884
|
-
"childNotAllowed": [
|
|
3885
|
-
"El componente \u201C",
|
|
3886
|
-
[
|
|
3887
|
-
"a",
|
|
3888
|
-
"tag"
|
|
3889
|
-
],
|
|
3890
|
-
"\u201D solo puede contener ",
|
|
3891
|
-
[
|
|
3892
|
-
"a",
|
|
3893
|
-
"children"
|
|
3894
|
-
],
|
|
3895
|
-
", no \u201C",
|
|
3896
|
-
[
|
|
3897
|
-
"a",
|
|
3898
|
-
"child"
|
|
3899
|
-
],
|
|
3900
|
-
"\u201D."
|
|
3901
|
-
],
|
|
3902
|
-
"prop": {
|
|
3903
|
-
"notBoolean": "debe ser \u201Ctrue\u201D o \u201Cfalse\u201D.",
|
|
3904
|
-
"notNumber": "debe ser un n\xFAmero.",
|
|
3905
|
-
"outOfRange": [
|
|
3906
|
-
"debe estar entre ",
|
|
3907
|
-
[
|
|
3908
|
-
"a",
|
|
3909
|
-
"min"
|
|
3910
|
-
],
|
|
3911
|
-
" y ",
|
|
3912
|
-
[
|
|
3913
|
-
"a",
|
|
3914
|
-
"max"
|
|
3915
|
-
],
|
|
3916
|
-
"."
|
|
3917
|
-
],
|
|
3918
|
-
"badStep": [
|
|
3919
|
-
"no encaja con el paso ",
|
|
3920
|
-
[
|
|
3921
|
-
"a",
|
|
3922
|
-
"step"
|
|
3923
|
-
],
|
|
3924
|
-
"."
|
|
3925
|
-
],
|
|
3926
|
-
"notText": "debe ser texto.",
|
|
3927
|
-
"tooLong": [
|
|
3928
|
-
"tiene demasiados caracteres (m\xE1ximo ",
|
|
3929
|
-
[
|
|
3930
|
-
"a",
|
|
3931
|
-
"max"
|
|
3932
|
-
],
|
|
3933
|
-
")."
|
|
3934
|
-
],
|
|
3935
|
-
"badChoice": [
|
|
3936
|
-
"tiene un valor no v\xE1lido (permitidos: ",
|
|
3937
|
-
[
|
|
3938
|
-
"a",
|
|
3939
|
-
"allowed"
|
|
3940
|
-
],
|
|
3941
|
-
")."
|
|
3942
|
-
],
|
|
3943
|
-
"badChoices": [
|
|
3944
|
-
"tiene valores no v\xE1lidos (permitidos: ",
|
|
3945
|
-
[
|
|
3946
|
-
"a",
|
|
3947
|
-
"allowed"
|
|
3948
|
-
],
|
|
3949
|
-
")."
|
|
3950
|
-
],
|
|
3951
|
-
"duplicateValues": "contiene valores repetidos.",
|
|
3952
|
-
"tooManyChosen": [
|
|
3953
|
-
"permite como m\xE1ximo ",
|
|
3954
|
-
[
|
|
3955
|
-
"a",
|
|
3956
|
-
"max"
|
|
3957
|
-
],
|
|
3958
|
-
" valores."
|
|
3959
|
-
],
|
|
3960
|
-
"badImage": "debe ser una ruta o una direcci\xF3n web.",
|
|
3961
|
-
"notId": "debe ser un ID de entrada.",
|
|
3962
|
-
"badType": "tiene un tipo que no est\xE1 permitido."
|
|
3963
|
-
}
|
|
3964
|
-
},
|
|
3965
|
-
"links": {
|
|
3966
|
-
"snippetMissing": [
|
|
3967
|
-
"No se encontr\xF3 el fragmento de texto \u201C",
|
|
3968
|
-
[
|
|
3969
|
-
"a",
|
|
3970
|
-
"name"
|
|
3971
|
-
],
|
|
3972
|
-
"\u201D (entrada snippets/",
|
|
3973
|
-
[
|
|
3974
|
-
"a",
|
|
3975
|
-
"name"
|
|
3976
|
-
],
|
|
3977
|
-
" con el campo body)."
|
|
3978
|
-
],
|
|
3979
|
-
"linkBroken": [
|
|
3980
|
-
"El enlace ",
|
|
3981
|
-
[
|
|
3982
|
-
"a",
|
|
3983
|
-
"href"
|
|
3984
|
-
],
|
|
3985
|
-
" no lleva a ninguna entrada ni p\xE1gina."
|
|
3986
|
-
],
|
|
3987
|
-
"linkRedirected": [
|
|
3988
|
-
"El enlace ",
|
|
3989
|
-
[
|
|
3990
|
-
"a",
|
|
3991
|
-
"href"
|
|
3992
|
-
],
|
|
3993
|
-
" lleva a ",
|
|
3994
|
-
[
|
|
3995
|
-
"a",
|
|
3996
|
-
"to"
|
|
3997
|
-
],
|
|
3998
|
-
" mediante una redirecci\xF3n."
|
|
3999
|
-
],
|
|
4000
|
-
"pathUnknown": [
|
|
4001
|
-
"La ruta ",
|
|
4002
|
-
[
|
|
4003
|
-
"a",
|
|
4004
|
-
"path"
|
|
4005
|
-
],
|
|
4006
|
-
" no coincide con ninguna entrada, p\xE1gina ni archivo de public/."
|
|
4007
|
-
],
|
|
4008
|
-
"anchorMissing": [
|
|
4009
|
-
"Falta el ancla #",
|
|
4010
|
-
[
|
|
4011
|
-
"a",
|
|
4012
|
-
"anchor"
|
|
4013
|
-
],
|
|
4014
|
-
": no hay ning\xFAn t\xEDtulo con este id."
|
|
4015
|
-
],
|
|
4016
|
-
"externalBroken": [
|
|
4017
|
-
"El enlace externo ",
|
|
4018
|
-
[
|
|
4019
|
-
"a",
|
|
4020
|
-
"href"
|
|
4021
|
-
],
|
|
4022
|
-
" est\xE1 roto (",
|
|
4023
|
-
[
|
|
4024
|
-
"a",
|
|
4025
|
-
"reason"
|
|
4026
|
-
],
|
|
4027
|
-
")."
|
|
4028
|
-
]
|
|
4029
|
-
},
|
|
4030
|
-
"editor": {
|
|
4031
|
-
"component": {
|
|
4032
|
-
"unknown": [
|
|
4033
|
-
"\u201C",
|
|
4034
|
-
[
|
|
4035
|
-
"a",
|
|
4036
|
-
"tag"
|
|
4037
|
-
],
|
|
4038
|
-
"\u201D no existe aqu\xED."
|
|
4039
|
-
],
|
|
4040
|
-
"more": [
|
|
4041
|
-
[
|
|
4042
|
-
"a",
|
|
4043
|
-
"first"
|
|
4044
|
-
],
|
|
4045
|
-
" Revisa ",
|
|
4046
|
-
[
|
|
4047
|
-
"a",
|
|
4048
|
-
"count"
|
|
4049
|
-
],
|
|
4050
|
-
" ",
|
|
4051
|
-
[
|
|
4052
|
-
"p",
|
|
4053
|
-
"count",
|
|
4054
|
-
0,
|
|
4055
|
-
{
|
|
4056
|
-
"one": [
|
|
4057
|
-
"ajuste"
|
|
4058
|
-
],
|
|
4059
|
-
"other": [
|
|
4060
|
-
"ajustes"
|
|
4061
|
-
]
|
|
4062
|
-
},
|
|
4063
|
-
0
|
|
4064
|
-
],
|
|
4065
|
-
" m\xE1s."
|
|
4066
|
-
]
|
|
4067
|
-
},
|
|
4068
|
-
"prop": {
|
|
4069
|
-
"missing": [
|
|
4070
|
-
"Falta ",
|
|
4071
|
-
[
|
|
4072
|
-
"a",
|
|
4073
|
-
"label"
|
|
4074
|
-
],
|
|
4075
|
-
"."
|
|
4076
|
-
],
|
|
4077
|
-
"empty": [
|
|
4078
|
-
"No hay contenido en ",
|
|
4079
|
-
[
|
|
4080
|
-
"a",
|
|
4081
|
-
"label"
|
|
4082
|
-
],
|
|
4083
|
-
"."
|
|
4084
|
-
],
|
|
4085
|
-
"invalid": [
|
|
4086
|
-
[
|
|
4087
|
-
"a",
|
|
4088
|
-
"label"
|
|
4089
|
-
],
|
|
4090
|
-
" ",
|
|
4091
|
-
[
|
|
4092
|
-
"a",
|
|
4093
|
-
"problem"
|
|
4094
|
-
]
|
|
4095
|
-
]
|
|
4096
|
-
},
|
|
4097
|
-
"problem": {
|
|
4098
|
-
"imageNoDescription": "La imagen no tiene descripci\xF3n."
|
|
4099
|
-
},
|
|
4100
|
-
"source": {
|
|
4101
|
-
"unstable": "El texto cambiar\xEDa al guardarse, por eso se edita como Markdown.",
|
|
4102
|
-
"lossy": "El texto no se puede mostrar en el editor sin perder algo.",
|
|
4103
|
-
"failed": [
|
|
4104
|
-
"El texto no se puede mostrar en el editor (",
|
|
4105
|
-
[
|
|
4106
|
-
"a",
|
|
4107
|
-
"reason"
|
|
4108
|
-
],
|
|
4109
|
-
")."
|
|
4110
|
-
]
|
|
4111
|
-
}
|
|
4112
|
-
},
|
|
4113
|
-
"diff": {
|
|
4114
|
-
"freshSetting": [
|
|
4115
|
-
[
|
|
4116
|
-
"a",
|
|
4117
|
-
"name"
|
|
4118
|
-
],
|
|
4119
|
-
": ",
|
|
4120
|
-
[
|
|
4121
|
-
"a",
|
|
4122
|
-
"value"
|
|
4123
|
-
],
|
|
4124
|
-
"."
|
|
4125
|
-
],
|
|
4126
|
-
"freshLocales": [
|
|
4127
|
-
"Idiomas: ",
|
|
4128
|
-
[
|
|
4129
|
-
"a",
|
|
4130
|
-
"locales"
|
|
4131
|
-
],
|
|
4132
|
-
"."
|
|
4133
|
-
],
|
|
4134
|
-
"siteRenamed": "El nombre del sitio (`site`) no se puede cambiar.",
|
|
4135
|
-
"currencyChanged": "La moneda del sitio no se puede cambiar.",
|
|
4136
|
-
"mainLocaleChanged": "El idioma principal no se puede cambiar.",
|
|
4137
|
-
"localeRemoved": [
|
|
4138
|
-
"El idioma \u201C",
|
|
4139
|
-
[
|
|
4140
|
-
"a",
|
|
4141
|
-
"locale"
|
|
4142
|
-
],
|
|
4143
|
-
"\u201D no se puede eliminar."
|
|
4144
|
-
],
|
|
4145
|
-
"localeOrder": "Los idiomas nuevos van al final de la lista.",
|
|
4146
|
-
"localeAdded": [
|
|
4147
|
-
"Idioma nuevo \u201C",
|
|
4148
|
-
[
|
|
4149
|
-
"a",
|
|
4150
|
-
"locale"
|
|
4151
|
-
],
|
|
4152
|
-
"\u201D."
|
|
4153
|
-
],
|
|
4154
|
-
"timezoneChanged": "La zona horaria no se puede cambiar.",
|
|
4155
|
-
"valueChanged": [
|
|
4156
|
-
[
|
|
4157
|
-
"a",
|
|
4158
|
-
"name"
|
|
4159
|
-
],
|
|
4160
|
-
" ha cambiado."
|
|
4161
|
-
],
|
|
4162
|
-
"pagesChanged": "Las p\xE1ginas est\xE1ticas han cambiado.",
|
|
4163
|
-
"agentsChanged": "Ha cambiado la revisi\xF3n de los cambios de IA.",
|
|
4164
|
-
"tasksChanged": "Las tareas han cambiado.",
|
|
4165
|
-
"retiredBack": [
|
|
4166
|
-
"\u201C",
|
|
4167
|
-
[
|
|
4168
|
-
"a",
|
|
4169
|
-
"path"
|
|
4170
|
-
],
|
|
4171
|
-
"\u201D se retir\xF3 y no puede volver."
|
|
4172
|
-
],
|
|
4173
|
-
"unretired": [
|
|
4174
|
-
"\u201C",
|
|
4175
|
-
[
|
|
4176
|
-
"a",
|
|
4177
|
-
"path"
|
|
4178
|
-
],
|
|
4179
|
-
"\u201D se retir\xF3."
|
|
4180
|
-
],
|
|
4181
|
-
"retiredRuleChanged": [
|
|
4182
|
-
"La regla de \u201C",
|
|
4183
|
-
[
|
|
4184
|
-
"a",
|
|
4185
|
-
"path"
|
|
4186
|
-
],
|
|
4187
|
-
"\u201D no se puede cambiar."
|
|
4188
|
-
],
|
|
4189
|
-
"retiredNow": [
|
|
4190
|
-
"\u201C",
|
|
4191
|
-
[
|
|
4192
|
-
"a",
|
|
4193
|
-
"path"
|
|
4194
|
-
],
|
|
4195
|
-
"\u201D se est\xE1 retirando."
|
|
4196
|
-
],
|
|
4197
|
-
"migrationChanged": [
|
|
4198
|
-
"La migraci\xF3n \u201C",
|
|
4199
|
-
[
|
|
4200
|
-
"a",
|
|
4201
|
-
"id"
|
|
4202
|
-
],
|
|
4203
|
-
"\u201D ha cambiado."
|
|
4204
|
-
],
|
|
4205
|
-
"migrationFillsExisting": [
|
|
4206
|
-
"La migraci\xF3n \u201C",
|
|
4207
|
-
[
|
|
4208
|
-
"a",
|
|
4209
|
-
"id"
|
|
4210
|
-
],
|
|
4211
|
-
"\u201D rellena \u201C",
|
|
4212
|
-
[
|
|
4213
|
-
"a",
|
|
4214
|
-
"target"
|
|
4215
|
-
],
|
|
4216
|
-
"\u201D, que ya existe."
|
|
4217
|
-
],
|
|
4218
|
-
"migrationAdded": [
|
|
4219
|
-
"Migraci\xF3n nueva \u201C",
|
|
4220
|
-
[
|
|
4221
|
-
"a",
|
|
4222
|
-
"id"
|
|
4223
|
-
],
|
|
4224
|
-
"\u201D."
|
|
4225
|
-
],
|
|
4226
|
-
"migrationDropped": [
|
|
4227
|
-
"La migraci\xF3n \u201C",
|
|
4228
|
-
[
|
|
4229
|
-
"a",
|
|
4230
|
-
"id"
|
|
4231
|
-
],
|
|
4232
|
-
"\u201D ya no est\xE1 en la configuraci\xF3n."
|
|
4233
|
-
],
|
|
4234
|
-
"brickRemoved": [
|
|
4235
|
-
"Falta el bloque \u201C",
|
|
4236
|
-
[
|
|
4237
|
-
"a",
|
|
4238
|
-
"key"
|
|
4239
|
-
],
|
|
4240
|
-
"\u201D."
|
|
4241
|
-
],
|
|
4242
|
-
"brickAdded": [
|
|
4243
|
-
"Bloque nuevo \u201C",
|
|
4244
|
-
[
|
|
4245
|
-
"a",
|
|
4246
|
-
"key"
|
|
4247
|
-
],
|
|
4248
|
-
"\u201D."
|
|
4249
|
-
],
|
|
4250
|
-
"singleWithoutDefault": [
|
|
4251
|
-
"Bloque \xFAnico nuevo: el campo obligatorio \u201C",
|
|
4252
|
-
[
|
|
4253
|
-
"a",
|
|
4254
|
-
"name"
|
|
4255
|
-
],
|
|
4256
|
-
"\u201D necesita un valor predeterminado."
|
|
4257
|
-
],
|
|
4258
|
-
"unknownChange": [
|
|
4259
|
-
"\u201C",
|
|
4260
|
-
[
|
|
4261
|
-
"a",
|
|
4262
|
-
"at"
|
|
4263
|
-
],
|
|
4264
|
-
"\u201D: la propiedad \u201C",
|
|
4265
|
-
[
|
|
4266
|
-
"a",
|
|
4267
|
-
"prop"
|
|
4268
|
-
],
|
|
4269
|
-
"\u201D ha cambiado, y eso no est\xE1 permitido."
|
|
4270
|
-
],
|
|
4271
|
-
"kindChanged": [
|
|
4272
|
-
"\u201C",
|
|
4273
|
-
[
|
|
4274
|
-
"a",
|
|
4275
|
-
"key"
|
|
4276
|
-
],
|
|
4277
|
-
"\u201D cambia entre bloque \xFAnico y colecci\xF3n."
|
|
4278
|
-
],
|
|
4279
|
-
"textChanged": "El texto ha cambiado.",
|
|
4280
|
-
"maxLowered": [
|
|
4281
|
-
"\u201C",
|
|
4282
|
-
[
|
|
4283
|
-
"a",
|
|
4284
|
-
"at"
|
|
4285
|
-
],
|
|
4286
|
-
"\u201D: max no se puede reducir."
|
|
4287
|
-
],
|
|
4288
|
-
"maxRaised": "max aumentado.",
|
|
4289
|
-
"routeAdded": "P\xE1ginas de detalle nuevas.",
|
|
4290
|
-
"routeAddedLocale": "Direcci\xF3n para el idioma nuevo.",
|
|
4291
|
-
"routeChanged": [
|
|
4292
|
-
"\u201C",
|
|
4293
|
-
[
|
|
4294
|
-
"a",
|
|
4295
|
-
"key"
|
|
4296
|
-
],
|
|
4297
|
-
"\u201D: las direcciones (route) no se pueden cambiar."
|
|
4298
|
-
],
|
|
4299
|
-
"fieldRemoved": [
|
|
4300
|
-
"Falta el campo \u201C",
|
|
4301
|
-
[
|
|
4302
|
-
"a",
|
|
4303
|
-
"at"
|
|
4304
|
-
],
|
|
4305
|
-
"\u201D."
|
|
4306
|
-
],
|
|
4307
|
-
"fieldAdded": [
|
|
4308
|
-
"Campo nuevo \u201C",
|
|
4309
|
-
[
|
|
4310
|
-
"a",
|
|
4311
|
-
"at"
|
|
4312
|
-
],
|
|
4313
|
-
"\u201D."
|
|
4314
|
-
],
|
|
4315
|
-
"fieldAddedDefault": [
|
|
4316
|
-
"Campo obligatorio nuevo \u201C",
|
|
4317
|
-
[
|
|
4318
|
-
"a",
|
|
4319
|
-
"at"
|
|
4320
|
-
],
|
|
4321
|
-
"\u201D con valor predeterminado."
|
|
4322
|
-
],
|
|
4323
|
-
"fieldAddedMigration": [
|
|
4324
|
-
"Campo obligatorio nuevo \u201C",
|
|
4325
|
-
[
|
|
4326
|
-
"a",
|
|
4327
|
-
"at"
|
|
4328
|
-
],
|
|
4329
|
-
"\u201D, rellenado por una migraci\xF3n."
|
|
4330
|
-
],
|
|
4331
|
-
"requiredWithoutDefault": [
|
|
4332
|
-
"Campo obligatorio nuevo \u201C",
|
|
4333
|
-
[
|
|
4334
|
-
"a",
|
|
4335
|
-
"at"
|
|
4336
|
-
],
|
|
4337
|
-
"\u201D sin valor predeterminado ni migraci\xF3n."
|
|
4338
|
-
],
|
|
4339
|
-
"typeChanged": [
|
|
4340
|
-
"\u201C",
|
|
4341
|
-
[
|
|
4342
|
-
"a",
|
|
4343
|
-
"at"
|
|
4344
|
-
],
|
|
4345
|
-
"\u201D: tipo ",
|
|
4346
|
-
[
|
|
4347
|
-
"a",
|
|
4348
|
-
"from"
|
|
4349
|
-
],
|
|
4350
|
-
" \u2192 ",
|
|
4351
|
-
[
|
|
4352
|
-
"a",
|
|
4353
|
-
"to"
|
|
4354
|
-
],
|
|
4355
|
-
"."
|
|
4356
|
-
],
|
|
4357
|
-
"retiredFieldChanged": [
|
|
4358
|
-
"\u201C",
|
|
4359
|
-
[
|
|
4360
|
-
"a",
|
|
4361
|
-
"at"
|
|
4362
|
-
],
|
|
4363
|
-
"\u201D: un campo retirado conserva su definici\xF3n de producci\xF3n."
|
|
4364
|
-
],
|
|
4365
|
-
"madeRequired": [
|
|
4366
|
-
"\u201C",
|
|
4367
|
-
[
|
|
4368
|
-
"a",
|
|
4369
|
-
"at"
|
|
4370
|
-
],
|
|
4371
|
-
"\u201D: opcional \u2192 obligatorio."
|
|
4372
|
-
],
|
|
4373
|
-
"madeOptional": [
|
|
4374
|
-
"\u201C",
|
|
4375
|
-
[
|
|
4376
|
-
"a",
|
|
4377
|
-
"at"
|
|
4378
|
-
],
|
|
4379
|
-
"\u201D ahora es opcional."
|
|
4380
|
-
],
|
|
4381
|
-
"translationChanged": [
|
|
4382
|
-
"\u201C",
|
|
4383
|
-
[
|
|
4384
|
-
"a",
|
|
4385
|
-
"at"
|
|
4386
|
-
],
|
|
4387
|
-
"\u201D: ha cambiado si se puede traducir."
|
|
4388
|
-
],
|
|
4389
|
-
"defaultChanged": [
|
|
4390
|
-
"\u201C",
|
|
4391
|
-
[
|
|
4392
|
-
"a",
|
|
4393
|
-
"at"
|
|
4394
|
-
],
|
|
4395
|
-
"\u201D: el valor predeterminado no se puede cambiar."
|
|
4396
|
-
],
|
|
4397
|
-
"minRaised": [
|
|
4398
|
-
"\u201C",
|
|
4399
|
-
[
|
|
4400
|
-
"a",
|
|
4401
|
-
"at"
|
|
4402
|
-
],
|
|
4403
|
-
"\u201D: min no se puede aumentar."
|
|
4404
|
-
],
|
|
4405
|
-
"minLowered": "min reducido.",
|
|
4406
|
-
"minOffGrid": [
|
|
4407
|
-
"\u201C",
|
|
4408
|
-
[
|
|
4409
|
-
"a",
|
|
4410
|
-
"at"
|
|
4411
|
-
],
|
|
4412
|
-
"\u201D: min solo se puede reducir en un m\xFAltiplo del paso ",
|
|
4413
|
-
[
|
|
4414
|
-
"a",
|
|
4415
|
-
"step"
|
|
4416
|
-
],
|
|
4417
|
-
"."
|
|
4418
|
-
],
|
|
4419
|
-
"propChanged": [
|
|
4420
|
-
"\u201C",
|
|
4421
|
-
[
|
|
4422
|
-
"a",
|
|
4423
|
-
"at"
|
|
4424
|
-
],
|
|
4425
|
-
"\u201D: ",
|
|
4426
|
-
[
|
|
4427
|
-
"a",
|
|
4428
|
-
"prop"
|
|
4429
|
-
],
|
|
4430
|
-
" no se puede cambiar."
|
|
4431
|
-
],
|
|
4432
|
-
"optionRemoved": [
|
|
4433
|
-
"\u201C",
|
|
4434
|
-
[
|
|
4435
|
-
"a",
|
|
4436
|
-
"at"
|
|
4437
|
-
],
|
|
4438
|
-
"\u201D: falta la opci\xF3n \u201C",
|
|
4439
|
-
[
|
|
4440
|
-
"a",
|
|
4441
|
-
"option"
|
|
4442
|
-
],
|
|
4443
|
-
"\u201D."
|
|
4444
|
-
],
|
|
4445
|
-
"optionRenamed": "Opci\xF3n renombrada.",
|
|
4446
|
-
"optionAdded": [
|
|
4447
|
-
"Opci\xF3n nueva \u201C",
|
|
4448
|
-
[
|
|
4449
|
-
"a",
|
|
4450
|
-
"option"
|
|
4451
|
-
],
|
|
4452
|
-
"\u201D."
|
|
4453
|
-
],
|
|
4454
|
-
"uniqueChanged": [
|
|
4455
|
-
"\u201C",
|
|
4456
|
-
[
|
|
4457
|
-
"a",
|
|
4458
|
-
"at"
|
|
4459
|
-
],
|
|
4460
|
-
"\u201D: unique no se puede definir ni cambiar."
|
|
4461
|
-
],
|
|
4462
|
-
"uniqueDropped": [
|
|
4463
|
-
"\u201C",
|
|
4464
|
-
[
|
|
4465
|
-
"a",
|
|
4466
|
-
"at"
|
|
4467
|
-
],
|
|
4468
|
-
"\u201D: unique eliminado."
|
|
4469
|
-
],
|
|
4470
|
-
"fix": {
|
|
4471
|
-
"newField": "A\xF1ade un campo nuevo, rell\xE9nalo con una migraci\xF3n y lista el campo anterior en `retired`.",
|
|
4472
|
-
"newFieldOnly": "A\xF1ade un campo nuevo.",
|
|
4473
|
-
"newSite": "Crea un sitio nuevo.",
|
|
4474
|
-
"moneyFields": "A\xF1ade campos de dinero nuevos con una `currency` fija.",
|
|
4475
|
-
"planMigration": "Planifica una migraci\xF3n con tu desarrollador.",
|
|
4476
|
-
"keepLocale": "Conserva el idioma; las p\xE1ginas en ese idioma se pueden ocultar.",
|
|
4477
|
-
"keepLocaleOrder": "Conserva el orden de los idiomas existentes.",
|
|
4478
|
-
"keepTimezone": "Conserva la zona horaria.",
|
|
4479
|
-
"keepRule": "Deja la regla como est\xE1.",
|
|
4480
|
-
"newMigrationId": "Una reparaci\xF3n recibe un ID nuevo.",
|
|
4481
|
-
"fillNewFieldsOnly": "Rellena solo campos nuevos; para uno existente, a\xF1ade un campo nuevo.",
|
|
4482
|
-
"retireBrick": "Lista el bloque en `retired` en lugar de eliminarlo.",
|
|
4483
|
-
"defaultOrOptional": "Define un valor `default` o haz el campo opcional.",
|
|
4484
|
-
"keepProperty": "Conserva la propiedad.",
|
|
4485
|
-
"keepMax": "Conserva max.",
|
|
4486
|
-
"keepRoute": "Conserva la route.",
|
|
4487
|
-
"defaultMigrationOrOptional": "Define un valor `default`, escribe una migraci\xF3n o haz el campo opcional.",
|
|
4488
|
-
"keepDefinition": "Deja la definici\xF3n como est\xE1; solo pueden cambiar los textos.",
|
|
4489
|
-
"keepDefault": "Conserva el valor predeterminado.",
|
|
4490
|
-
"keepMin": "Conserva min.",
|
|
4491
|
-
"minOnGrid": "Reduce min para que la diferencia sea un m\xFAltiplo de step.",
|
|
4492
|
-
"keepOption": "Conserva la opci\xF3n; se puede renombrar (label).",
|
|
4493
|
-
"newList": "A\xF1ade una lista nueva y rell\xE9nala con una migraci\xF3n."
|
|
4494
|
-
}
|
|
4495
|
-
},
|
|
4496
|
-
"preview": {
|
|
4497
|
-
"notFound": "Esta p\xE1gina no existe.",
|
|
4498
|
-
"failed": "La vista previa no se carga.",
|
|
4499
|
-
"loading": "Cargando la vista previa \u2026"
|
|
4500
|
-
}
|
|
4501
|
-
}
|
|
4502
|
-
};
|
|
4503
|
-
|
|
4504
|
-
const DEFAULT_LOCALE = "de";
|
|
4505
|
-
const coreCatalogs = { de, en, es };
|
|
4506
|
-
const catalog = defineCatalog(compiled, { defaultLocale: DEFAULT_LOCALE });
|
|
4507
|
-
const isMsg = (value) => typeof value === "object" && value !== null && typeof value.key === "string";
|
|
4508
|
-
function coreMessage(locale, key, params) {
|
|
4509
|
-
const flat = params && Object.fromEntries(Object.entries(params).map(([name, value]) => [name, isMsg(value) ? coreMessage(locale, value.key, value.params) : value]));
|
|
4510
|
-
return catalog.translator(locale).t(key, flat);
|
|
4511
|
-
}
|
|
4512
|
-
function msg(key, params) {
|
|
4513
|
-
return { key, ...params === void 0 ? {} : { params }, message: coreMessage(DEFAULT_LOCALE, key, params) };
|
|
4514
|
-
}
|
|
4515
|
-
function bare(m) {
|
|
4516
|
-
return { key: m.key, ...m.params === void 0 ? {} : { params: m.params } };
|
|
4517
|
-
}
|
|
4518
|
-
function orList(items) {
|
|
4519
|
-
return joinNames(items, "component.or");
|
|
4520
|
-
}
|
|
4521
|
-
function commaList(items) {
|
|
4522
|
-
return joinNames(items, "component.and");
|
|
4523
|
-
}
|
|
4524
|
-
function joinNames(items, key) {
|
|
4525
|
-
const quoted = items.map((name) => ({ key: "component.quoted", params: { name } }));
|
|
4526
|
-
return quoted.slice(1).reduce((first, second) => ({ key, params: { first, second } }), quoted[0] ?? "");
|
|
4527
|
-
}
|
|
4528
|
-
|
|
4529
|
-
const GINKO_COMPONENTS_KEY = "ginko:components";
|
|
4530
|
-
const GINKO_TOC_KEY = "ginko:toc";
|
|
4531
|
-
function defineComponents(registry) {
|
|
4532
|
-
return registry;
|
|
4533
|
-
}
|
|
4534
|
-
const BLOCKED_TAGS = /* @__PURE__ */ new Set([
|
|
4535
|
-
"script",
|
|
4536
|
-
"style",
|
|
4537
|
-
"iframe",
|
|
4538
|
-
"frame",
|
|
4539
|
-
"frameset",
|
|
4540
|
-
"object",
|
|
4541
|
-
"embed",
|
|
4542
|
-
"applet",
|
|
4543
|
-
"link",
|
|
4544
|
-
"meta",
|
|
4545
|
-
"base",
|
|
4546
|
-
"form",
|
|
4547
|
-
"button",
|
|
4548
|
-
"textarea",
|
|
4549
|
-
"select",
|
|
4550
|
-
"option",
|
|
4551
|
-
"template",
|
|
4552
|
-
"noscript",
|
|
4553
|
-
"svg",
|
|
4554
|
-
"portal",
|
|
4555
|
-
"slot"
|
|
4556
|
-
]);
|
|
4557
|
-
const COMPONENT_ONLY_TAGS = /* @__PURE__ */ new Set(["embed"]);
|
|
4558
|
-
function isBlockedTag(tag, registry) {
|
|
4559
|
-
return BLOCKED_TAGS.has(tag) && !(COMPONENT_ONLY_TAGS.has(tag) && registry !== void 0 && Object.hasOwn(registry, tag));
|
|
4560
|
-
}
|
|
4561
|
-
const PLAIN_TAGS = /* @__PURE__ */ new Set([
|
|
4562
|
-
"strong",
|
|
4563
|
-
"em",
|
|
4564
|
-
"del",
|
|
4565
|
-
"code",
|
|
4566
|
-
"a",
|
|
4567
|
-
"br",
|
|
4568
|
-
"p",
|
|
4569
|
-
"h1",
|
|
4570
|
-
"h2",
|
|
4571
|
-
"h3",
|
|
4572
|
-
"h4",
|
|
4573
|
-
"h5",
|
|
4574
|
-
"h6",
|
|
4575
|
-
"ul",
|
|
4576
|
-
"ol",
|
|
4577
|
-
"li",
|
|
4578
|
-
"blockquote",
|
|
4579
|
-
"hr",
|
|
4580
|
-
"sup",
|
|
4581
|
-
"section",
|
|
4582
|
-
"table",
|
|
4583
|
-
"thead",
|
|
4584
|
-
"tbody",
|
|
4585
|
-
"tr",
|
|
4586
|
-
"th",
|
|
4587
|
-
"td",
|
|
4588
|
-
"img",
|
|
4589
|
-
"pre",
|
|
4590
|
-
"input",
|
|
4591
|
-
"math",
|
|
4592
|
-
"mermaid"
|
|
4593
|
-
]);
|
|
4594
|
-
const TAG = /^[a-z][a-z0-9]*(-[a-z0-9]+)*$/;
|
|
4595
|
-
const PROP = /^[a-z][a-zA-Z0-9]*$/;
|
|
4596
|
-
const RESERVED_PROPS = /* @__PURE__ */ new Set(["as", "innerHTML", "outerHTML", "innerText", "outerText", "textContent"]);
|
|
4597
|
-
const PROP_TYPES = /* @__PURE__ */ new Set(["text", "longtext", "number", "boolean", "choice", "choices", "image", "ref"]);
|
|
4598
|
-
function componentProblems(registry, main) {
|
|
4599
|
-
const problems = [];
|
|
4600
|
-
const tags = Object.keys(registry);
|
|
4601
|
-
for (const tag of tags) {
|
|
4602
|
-
const def = registry[tag];
|
|
4603
|
-
const at = `Component \u201C${tag}\u201D`;
|
|
4604
|
-
if (!TAG.test(tag)) problems.push(`${at}: The name must be lower case and separated by hyphens (for example \u201Ccode-group\u201D).`);
|
|
4605
|
-
if (isBlockedTag(tag, registry)) problems.push(`${at}: The name is blocked.`);
|
|
4606
|
-
else if (PLAIN_TAGS.has(tag)) problems.push(`${at}: The name belongs to Markdown (${tag}) and cannot be overridden.`);
|
|
4607
|
-
if (def.kind !== "block" && def.kind !== "inline") problems.push(`${at}: kind must be \u201Cblock\u201D or \u201Cinline\u201D.`);
|
|
4608
|
-
for (const [path, label] of [["label", def.label], ["describe", def.describe], ...def.editor?.group === void 0 ? [] : [["editor.group", def.editor.group]]]) {
|
|
4609
|
-
const problem = labelProblem(`components.${tag}.${path}`, label, main);
|
|
4610
|
-
if (problem) problems.push(problem);
|
|
4611
|
-
}
|
|
4612
|
-
for (const [name, prop] of Object.entries(def.props ?? {})) {
|
|
4613
|
-
if (!PROP.test(name) || /^on/i.test(name) || RESERVED_PROPS.has(name)) problems.push(`${at}: Invalid property name \u201C${name}\u201D.`);
|
|
4614
|
-
if (!PROP_TYPES.has(prop?.type)) problems.push(`${at}: Property \u201C${name}\u201D cannot have the type \u201C${String(prop?.type)}\u201D (allowed: ${[...PROP_TYPES].join(", ")}).`);
|
|
4615
|
-
}
|
|
4616
|
-
for (const key of ["children", "parents"]) {
|
|
4617
|
-
for (const other of def[key] ?? []) if (!Object.hasOwn(registry, other) && !PLAIN_TAGS.has(other)) problems.push(`${at}: ${key} names \u201C${other}\u201D, which does not exist.`);
|
|
4618
|
-
}
|
|
4619
|
-
}
|
|
4620
|
-
return problems;
|
|
4621
|
-
}
|
|
4622
|
-
function componentSlotNodes(nodes, registry) {
|
|
4623
|
-
const found = /* @__PURE__ */ new Set();
|
|
4624
|
-
const visit = (node) => {
|
|
4625
|
-
if (typeof node === "string" || node[0] === null) return;
|
|
4626
|
-
const [tag, , ...children] = node;
|
|
4627
|
-
if (Object.hasOwn(registry, tag)) {
|
|
4628
|
-
for (const child of children) if (typeof child !== "string" && child[0] === "template") found.add(child);
|
|
4629
|
-
}
|
|
4630
|
-
children.forEach(visit);
|
|
4631
|
-
};
|
|
4632
|
-
nodes.forEach(visit);
|
|
4633
|
-
return found;
|
|
4634
|
-
}
|
|
4635
|
-
function checkComponentTree(nodes, registry, fail) {
|
|
4636
|
-
const visit = (node, parent) => {
|
|
4637
|
-
if (typeof node === "string" || node[0] === null) return;
|
|
4638
|
-
const [tag, props, ...children] = node;
|
|
4639
|
-
if (tag === "template") {
|
|
4640
|
-
for (const child of children) visit(child, tag);
|
|
4641
|
-
return;
|
|
4642
|
-
}
|
|
4643
|
-
if (!PLAIN_TAGS.has(tag) && !isBlockedTag(tag, registry)) {
|
|
4644
|
-
if (!Object.hasOwn(registry, tag)) fail(msg("component.unknown", { tag }));
|
|
4645
|
-
else checkComponent(tag, registry[tag], props, children, parent, fail);
|
|
4646
|
-
}
|
|
4647
|
-
for (const child of children) visit(child, tag);
|
|
4648
|
-
};
|
|
4649
|
-
for (const node of nodes) visit(node, void 0);
|
|
4650
|
-
}
|
|
4651
|
-
function checkComponent(tag, def, props, children, parent, fail) {
|
|
4652
|
-
const seen = /* @__PURE__ */ new Set();
|
|
4653
|
-
for (const [name, raw] of Object.entries(props)) {
|
|
4654
|
-
const key = name.replace(/^:/, "");
|
|
4655
|
-
seen.add(key);
|
|
4656
|
-
const problem = Object.hasOwn(def.props, key) ? componentPropMessage(def.props[key], raw) : void 0;
|
|
4657
|
-
if (problem) fail(msg("component.propInvalid", { tag, prop: key, problem: bare(problem) }));
|
|
4658
|
-
}
|
|
4659
|
-
for (const [key, field] of Object.entries(def.props)) {
|
|
4660
|
-
if (!field.optional && !seen.has(key)) fail(msg("component.propMissing", { tag, prop: key }));
|
|
4661
|
-
else if (!field.optional && isEmptyText(field, props[key] ?? props[`:${key}`])) fail(msg("component.propEmpty", { tag, prop: key }));
|
|
4662
|
-
}
|
|
4663
|
-
if (def.kind === "block" && parent === "p") fail(msg("component.blockInParagraph", { tag }));
|
|
4664
|
-
if (def.parents && (parent === void 0 || !def.parents.includes(parent))) fail(msg("component.parentOnly", { tag, parents: orList(def.parents) }));
|
|
4665
|
-
for (const child of children) {
|
|
4666
|
-
if (typeof child === "string" || child[0] !== "template") continue;
|
|
4667
|
-
const name = String(child[1].name ?? "");
|
|
4668
|
-
if (!def.slots || !Object.hasOwn(def.slots, name)) {
|
|
4669
|
-
fail(def.slots ? msg("component.slotUnknown", { tag, slot: name, allowed: commaList(Object.keys(def.slots)) }) : msg("component.noSlots", { tag, slot: name }));
|
|
4670
|
-
}
|
|
4671
|
-
}
|
|
4672
|
-
if (def.children) {
|
|
4673
|
-
for (const child of children) {
|
|
4674
|
-
if (typeof child === "string" || child[0] === null || child[0] === "template") continue;
|
|
4675
|
-
if (!def.children.includes(child[0])) fail(msg("component.childNotAllowed", { tag, children: orList(def.children), child: child[0] }));
|
|
4676
|
-
}
|
|
4677
|
-
}
|
|
4678
|
-
}
|
|
4679
|
-
function isEmptyText(field, raw) {
|
|
4680
|
-
return (field.type === "text" || field.type === "longtext") && typeof raw === "string" && raw.trim() === "";
|
|
4681
|
-
}
|
|
4682
|
-
function componentPropProblem(field, raw) {
|
|
4683
|
-
return componentPropMessage(field, raw)?.message;
|
|
4684
|
-
}
|
|
4685
|
-
function componentPropMessage(field, raw) {
|
|
4686
|
-
if (field.type === "boolean") {
|
|
4687
|
-
return raw === true || raw === false || raw === "true" || raw === "false" || raw === "" ? void 0 : msg("component.prop.notBoolean");
|
|
4688
|
-
}
|
|
4689
|
-
if (field.type === "number") {
|
|
4690
|
-
const n = typeof raw === "number" ? raw : typeof raw === "string" && raw.trim() !== "" ? Number(raw) : Number.NaN;
|
|
4691
|
-
if (!Number.isFinite(n)) return msg("component.prop.notNumber");
|
|
4692
|
-
if (n < field.min || n > field.max) return msg("component.prop.outOfRange", { min: field.min, max: field.max });
|
|
4693
|
-
if (Math.abs(Math.round((n - field.min) / field.step) * field.step - (n - field.min)) > 1e-9) return msg("component.prop.badStep", { step: field.step });
|
|
4694
|
-
return void 0;
|
|
4695
|
-
}
|
|
4696
|
-
if (typeof raw !== "string") return msg("component.prop.notText");
|
|
4697
|
-
switch (field.type) {
|
|
4698
|
-
case "text":
|
|
4699
|
-
case "longtext":
|
|
4700
|
-
return raw.length > effectiveMax(field) ? msg("component.prop.tooLong", { max: effectiveMax(field) }) : void 0;
|
|
4701
|
-
case "choice":
|
|
4702
|
-
return field.options.some((o) => o.value === raw) ? void 0 : msg("component.prop.badChoice", { allowed: field.options.map((o) => o.value).join(", ") });
|
|
4703
|
-
case "choices": {
|
|
4704
|
-
const values = raw.split(",").map((v) => v.trim()).filter((v) => v !== "");
|
|
4705
|
-
if (values.some((v) => !field.options.some((o) => o.value === v))) return msg("component.prop.badChoices", { allowed: field.options.map((o) => o.value).join(", ") });
|
|
4706
|
-
if (new Set(values).size !== values.length) return msg("component.prop.duplicateValues");
|
|
4707
|
-
return values.length > effectiveMax(field) ? msg("component.prop.tooManyChosen", { max: effectiveMax(field) }) : void 0;
|
|
4708
|
-
}
|
|
4709
|
-
case "image":
|
|
4710
|
-
return raw !== "" && isSafeHref(raw) ? void 0 : msg("component.prop.badImage");
|
|
4711
|
-
case "ref":
|
|
4712
|
-
return raw !== "" ? void 0 : msg("component.prop.notId");
|
|
4713
|
-
default:
|
|
4714
|
-
return msg("component.prop.badType");
|
|
4715
|
-
}
|
|
4716
|
-
}
|
|
4717
|
-
|
|
4718
|
-
const MARKDOWN_PROFILES = ["inline", "basic", "rich", "page"];
|
|
4719
|
-
const INLINE_TAGS = ["strong", "em", "del", "code", "a", "br"];
|
|
4720
|
-
const BASIC_TAGS = [...INLINE_TAGS, "p", "h2", "h3", "h4", "ul", "ol", "li", "input", "blockquote", "hr", "sup", "section"];
|
|
4721
|
-
const TAGS = {
|
|
4722
|
-
inline: /* @__PURE__ */ new Set([...INLINE_TAGS, "p"]),
|
|
4723
|
-
basic: new Set(BASIC_TAGS),
|
|
4724
|
-
rich: /* @__PURE__ */ new Set([...BASIC_TAGS, "table", "thead", "tbody", "tr", "th", "td", "img", "pre", "math", "mermaid"])
|
|
4725
|
-
};
|
|
4726
|
-
const anyValue = () => true;
|
|
4727
|
-
const oneOf = (values) => (value) => typeof value === "string" && values.includes(value);
|
|
4728
|
-
const matching = (pattern) => (value) => typeof value === "string" && pattern.test(value);
|
|
4729
|
-
const heading = { id: (value) => typeof value === "string" && !value.startsWith("__") };
|
|
4730
|
-
const footnoteId = matching(/^fn(ref)?-[\w-]+$/);
|
|
4731
|
-
const rel = (value) => typeof value === "string" && value.trim().split(/\s+/).every((token) => /^[a-z-]*$/.test(token) && token !== "opener");
|
|
4732
|
-
const textAlign = matching(/^text-align:(left|right|center)$/);
|
|
4733
|
-
const classes = (...tokens) => (value) => typeof value === "string" && value.trim() !== "" && value.trim().split(/\s+/).every((token) => tokens.includes(token));
|
|
4734
|
-
const SHIKI_DECLARATION = /^(?:(?:color|--shiki-(?:light|dark)(?:-bg)?)\s*:\s*#[0-9a-f]{3,8}|(?:--shiki-(?:light|dark)-)?(?:font-style|font-weight|text-decoration)\s*:\s*[\w-]+|display\s*:\s*inline(?:-block)?)$/i;
|
|
4735
|
-
const shikiStyle = (value) => typeof value === "string" && value.split(";").every((d) => d.trim() === "" || SHIKI_DECLARATION.test(d.trim()));
|
|
4736
|
-
const TAG_ATTRIBUTES = {
|
|
4737
|
-
a: { href: anyValue, target: oneOf(["_blank"]), rel, id: footnoteId, class: classes("footnote-backref") },
|
|
4738
|
-
img: { src: anyValue, alt: anyValue, width: anyValue, height: anyValue, srcset: anyValue, sizes: anyValue },
|
|
4739
|
-
input: { type: oneOf(["checkbox"]), checked: anyValue, disabled: anyValue, class: classes("task-list-item-checkbox") },
|
|
4740
|
-
ul: { class: classes("contains-task-list") },
|
|
4741
|
-
ol: { start: anyValue, class: classes("contains-task-list", "footnotes-list") },
|
|
4742
|
-
li: { id: footnoteId, class: classes("task-list-item") },
|
|
4743
|
-
sup: { class: classes("footnote-ref") },
|
|
4744
|
-
section: { class: classes("footnotes") },
|
|
4745
|
-
th: { style: textAlign },
|
|
4746
|
-
td: { style: textAlign },
|
|
4747
|
-
pre: { language: anyValue, filename: anyValue, highlights: anyValue, meta: anyValue, class: classes("shiki", "shiki-themes", "github-light", "catppuccin-mocha", "dark:catppuccin-mocha") },
|
|
4748
|
-
code: { class: matching(/^language-\S+$/) },
|
|
4749
|
-
// comark's renderer mounts the component an `as` names in place of the element: only the alert plugin's types (`> [!TIP]`).
|
|
4750
|
-
blockquote: { as: oneOf(["note", "tip", "important", "warning", "caution"]) },
|
|
4751
|
-
math: { content: anyValue, class: oneOf(["math inline", "math block"]) },
|
|
4752
|
-
mermaid: { content: anyValue },
|
|
4753
|
-
h1: heading,
|
|
4754
|
-
h2: heading,
|
|
4755
|
-
h3: heading,
|
|
4756
|
-
h4: heading,
|
|
4757
|
-
h5: heading,
|
|
4758
|
-
h6: heading,
|
|
4759
|
-
// A component's slot (`#title`): comark's `template` node with the slot's name.
|
|
4760
|
-
template: { name: anyValue },
|
|
4761
|
-
span: { style: shikiStyle, class: classes("line", "highlight") },
|
|
4762
|
-
example: { preview: anyValue }
|
|
4763
|
-
};
|
|
4764
|
-
function isGlobalAttribute(key) {
|
|
4765
|
-
return key === "title" || key === "lang" || key === "dir" || /^aria-[a-z0-9-]+$/.test(key);
|
|
4766
|
-
}
|
|
4767
|
-
const URL_PROPS = /* @__PURE__ */ new Set(["href", "src", "srcset", "action", "formaction", "poster", "xlink:href"]);
|
|
4768
|
-
function safeAddress(key, value) {
|
|
4769
|
-
if (typeof value !== "string") return false;
|
|
4770
|
-
if (key !== "srcset") return isSafeHref(value);
|
|
4771
|
-
return value.split(",").every((candidate) => {
|
|
4772
|
-
const [url, descriptor, ...rest] = candidate.trim().split(/\s+/);
|
|
4773
|
-
return url !== void 0 && isSafeHref(url) && (descriptor === void 0 || /^\d+(\.\d+)?[wx]$/.test(descriptor)) && rest.length === 0;
|
|
4774
|
-
});
|
|
4775
|
-
}
|
|
4776
|
-
function isJson(value) {
|
|
4777
|
-
try {
|
|
4778
|
-
JSON.parse(value);
|
|
4779
|
-
return true;
|
|
4780
|
-
} catch {
|
|
4781
|
-
return false;
|
|
4782
|
-
}
|
|
4783
|
-
}
|
|
4784
|
-
function attributeProblem(tag, name, value, registry) {
|
|
4785
|
-
const bound = name.startsWith(":");
|
|
4786
|
-
const key = bound ? name.slice(1) : name;
|
|
4787
|
-
const declared = registry !== void 0 && Object.hasOwn(registry, tag) ? registry[tag].props : void 0;
|
|
4788
|
-
const address = URL_PROPS.has(key) || declared !== void 0 && Object.hasOwn(declared, key) && declared[key].type === "image";
|
|
4789
|
-
if (bound && (address || typeof value === "string" && !isJson(value))) return "blocked";
|
|
4790
|
-
const rules = declared ? void 0 : Object.hasOwn(TAG_ATTRIBUTES, tag) ? TAG_ATTRIBUTES[tag] : void 0;
|
|
4791
|
-
const check = declared ? Object.hasOwn(declared, key) ? anyValue : void 0 : rules && Object.hasOwn(rules, key) ? rules[key] : void 0;
|
|
4792
|
-
if (!check) return isGlobalAttribute(key) ? void 0 : "blocked";
|
|
4793
|
-
if (address) return safeAddress(key, value) ? void 0 : "unsafe";
|
|
4794
|
-
return (bound ? check === anyValue : check(value)) ? void 0 : "blocked";
|
|
4795
|
-
}
|
|
4796
|
-
const UNSAFE_LINK = msg("markdown.unsafeLink").message;
|
|
4797
|
-
const MAX_NODES = 2e4;
|
|
4798
|
-
function describeProfile(profile, locale = "de") {
|
|
4799
|
-
return coreMessage(locale, `markdown.profile.${profile}`);
|
|
4800
|
-
}
|
|
4801
|
-
function profileCovers(wide, narrow) {
|
|
4802
|
-
return MARKDOWN_PROFILES.indexOf(wide) >= MARKDOWN_PROFILES.indexOf(narrow);
|
|
4803
|
-
}
|
|
4804
|
-
async function parseMarkdown(text, options = {}) {
|
|
4805
|
-
const problems = [];
|
|
4806
|
-
let body = text;
|
|
4807
|
-
let summary;
|
|
4808
|
-
const plugins = [
|
|
4809
|
-
...options.frontmatter ? [frontmatter(), defineComarkPlugin(() => ({ name: "ginko-body", pre(state) {
|
|
4810
|
-
body = state.markdown.replace(/^\r?\n/, "");
|
|
4811
|
-
} }))()] : [],
|
|
4812
|
-
alert(),
|
|
4813
|
-
taskList(),
|
|
4814
|
-
components(),
|
|
4815
|
-
attributes(),
|
|
4816
|
-
// Every profile parses these; profileCheck refuses the tags a profile does not allow, so `$a$` in a
|
|
4817
|
-
// `basic` field is reported, not silently kept. Footnotes must run before the check (`[^1]` is a `span` until then).
|
|
4818
|
-
emoji(),
|
|
4819
|
-
footnotes(),
|
|
4820
|
-
math(),
|
|
4821
|
-
mermaid(),
|
|
4822
|
-
moreMarker((nodes) => {
|
|
4823
|
-
summary = nodes;
|
|
4824
|
-
}),
|
|
4825
|
-
profileCheck(options.profile ?? "page", problems, options.components),
|
|
4826
|
-
...options.plugins ?? [],
|
|
4827
|
-
headingAnchors(),
|
|
4828
|
-
// depth 2 = h2 and h3 (comark's depth counts the tags from h2 on); searchDepth 3 also finds headings inside components.
|
|
4829
|
-
toc({ depth: 2, searchDepth: 3 })
|
|
4830
|
-
];
|
|
4831
|
-
const tree = await parseMarkdown$1(text, { registerDefaultPlugins: false, autoClose: false, plugins });
|
|
4832
|
-
const value = JSON.parse(JSON.stringify({ nodes: tree.nodes, toc: tree.meta.toc, summary }));
|
|
4833
|
-
return { frontmatter: tree.frontmatter, value, body, problems: problems.map((p) => p.message), problemMessages: problems };
|
|
4834
|
-
}
|
|
4835
|
-
function textBlocks(tree) {
|
|
4836
|
-
const nodes = Array.isArray(tree) ? tree : tree.nodes;
|
|
4837
|
-
const blocks = [];
|
|
4838
|
-
for (const node of nodes) {
|
|
4839
|
-
if (typeof node !== "string" && node[0] === "pre") continue;
|
|
4840
|
-
const text = textOf(node, true);
|
|
4841
|
-
const tag = typeof node === "string" ? void 0 : node[0];
|
|
4842
|
-
if (tag === "h2" || tag === "h3") {
|
|
4843
|
-
const id = node[1]?.id;
|
|
4844
|
-
blocks.push({ text, heading: { level: tag === "h2" ? 2 : 3, ...typeof id === "string" && id ? { id } : {} } });
|
|
4845
|
-
} else blocks.push({ text });
|
|
4846
|
-
}
|
|
4847
|
-
return blocks;
|
|
4848
|
-
}
|
|
4849
|
-
function plainText(tree) {
|
|
4850
|
-
return textBlocks(tree).map((b) => b.text).join("\n").trim();
|
|
4851
|
-
}
|
|
4852
|
-
const MORE_MARKER = "<!-- more -->";
|
|
4853
|
-
function moreMarker(set) {
|
|
4854
|
-
return defineComarkPlugin(() => ({
|
|
4855
|
-
name: "ginko-more",
|
|
4856
|
-
post(state) {
|
|
4857
|
-
const at = state.tree.nodes.findIndex((n) => typeof n !== "string" && n[0] === "p" && n.length === 3 && n[2] === MORE_MARKER);
|
|
4858
|
-
if (at === -1) return;
|
|
4859
|
-
set(state.tree.nodes.slice(0, at));
|
|
4860
|
-
state.tree.nodes.splice(at, 1);
|
|
4861
|
-
}
|
|
4862
|
-
}))();
|
|
4863
|
-
}
|
|
4864
|
-
function profileCheck(profile, problems, registry) {
|
|
4865
|
-
return defineComarkPlugin(() => ({
|
|
4866
|
-
name: "ginko-profile",
|
|
4867
|
-
post(state) {
|
|
4868
|
-
const allowed = profile === "page" ? void 0 : TAGS[profile];
|
|
4869
|
-
const found = /* @__PURE__ */ new Set();
|
|
4870
|
-
let count = 0;
|
|
4871
|
-
const fail = (problem) => {
|
|
4872
|
-
if (!found.has(problem.message)) {
|
|
4873
|
-
found.add(problem.message);
|
|
4874
|
-
problems.push(problem);
|
|
4875
|
-
}
|
|
4876
|
-
};
|
|
4877
|
-
const slots = profile === "page" && registry ? componentSlotNodes(state.tree.nodes, registry) : /* @__PURE__ */ new Set();
|
|
4878
|
-
const visit = (node) => {
|
|
4879
|
-
count++;
|
|
4880
|
-
if (typeof node === "string" || node[0] === null) return;
|
|
4881
|
-
const [tag, props, ...children] = node;
|
|
4882
|
-
const component = registry && Object.hasOwn(registry, tag) ? registry[tag] : void 0;
|
|
4883
|
-
if (isBlockedTag(tag, profile === "page" ? registry : void 0) && !slots.has(node)) fail(msg("markdown.tagBlocked", { tag }));
|
|
4884
|
-
else if (allowed && !allowed.has(tag)) fail(msg("markdown.tagNotInProfile", { tag, allowed: { key: `markdown.profile.${profile}` } }));
|
|
4885
|
-
else for (const [name, raw] of Object.entries(props)) {
|
|
4886
|
-
const problem = attributeProblem(tag, name, raw, registry);
|
|
4887
|
-
const key = name.replace(/^:/, "");
|
|
4888
|
-
if (problem === "unsafe") fail(msg("markdown.unsafeLink"));
|
|
4889
|
-
else if (problem && component && !Object.hasOwn(component.props, key)) fail(msg("component.propUnknown", { tag, prop: key }));
|
|
4890
|
-
else if (problem) fail(msg("markdown.propBlocked", { prop: key }));
|
|
4891
|
-
}
|
|
4892
|
-
children.forEach(visit);
|
|
4893
|
-
};
|
|
4894
|
-
state.tree.nodes.forEach(visit);
|
|
4895
|
-
if (profile === "page" && registry) checkComponentTree(state.tree.nodes, registry, fail);
|
|
4896
|
-
if (profile === "inline" && state.tree.nodes.filter((n) => typeof n !== "string").length > 1) fail(msg("markdown.oneParagraph"));
|
|
4897
|
-
if (count > MAX_NODES) fail(msg("markdown.tooComplex", { max: MAX_NODES }));
|
|
4898
|
-
}
|
|
4899
|
-
}))();
|
|
4900
|
-
}
|
|
4901
|
-
function comarkSlug(text) {
|
|
4902
|
-
const slug = text.toLowerCase().trim().replace(/\s+/g, "-").replace(/[^\w-]+/g, "").replace(/-{2,}/g, "-").replace(/^-+|-+$/g, "");
|
|
4903
|
-
return /^\d/.test(slug) ? `_${slug}` : slug;
|
|
4904
|
-
}
|
|
4905
|
-
function letterSlug(text) {
|
|
4906
|
-
const spelled = text.replace(/[äöüÄÖÜß]/g, (c) => ({ \u00E4: "ae", \u00F6: "oe", \u00FC: "ue", \u00C4: "Ae", \u00D6: "Oe", \u00DC: "Ue", \u00DF: "ss" })[c] ?? c);
|
|
4907
|
-
return comarkSlug(spelled.normalize("NFD").replace(/\p{M}/gu, ""));
|
|
4908
|
-
}
|
|
4909
|
-
function textOf(node, blocks = false) {
|
|
4910
|
-
if (typeof node === "string") return node;
|
|
4911
|
-
const [tag, , ...children] = node;
|
|
4912
|
-
if (tag === null || tag === "br" || tag === "html_inline" || tag === "pre") return "";
|
|
4913
|
-
return children.map((child) => textOf(child, blocks)).join(blocks && /^(ul|ol|table|thead|tbody|blockquote)$/.test(tag) ? "\n" : "");
|
|
4914
|
-
}
|
|
4915
|
-
const headingAnchors = defineComarkPlugin(() => ({
|
|
4916
|
-
name: "heading-anchors",
|
|
4917
|
-
post(state) {
|
|
4918
|
-
const runs = [comarkSlug, letterSlug].map((slug) => ({ slug, stack: [], counts: /* @__PURE__ */ new Map() }));
|
|
4919
|
-
const idsOf = (text, level) => runs.map(({ slug, stack, counts }) => {
|
|
4920
|
-
let id = slug(text);
|
|
4921
|
-
while (stack.length > 0 && stack[stack.length - 1].level >= level) stack.pop();
|
|
4922
|
-
const parent = stack[stack.length - 1];
|
|
4923
|
-
if (parent && parent.level >= 2) id = `${parent.id}-${id}`;
|
|
4924
|
-
stack.push({ level, id });
|
|
4925
|
-
const count = counts.get(id) ?? 0;
|
|
4926
|
-
counts.set(id, count + 1);
|
|
4927
|
-
return count === 0 ? id : `${id}-${count}`;
|
|
4928
|
-
});
|
|
4929
|
-
const visit = (node) => {
|
|
4930
|
-
if (typeof node === "string" || node[0] === null) return;
|
|
4931
|
-
const [tag, props, ...children] = node;
|
|
4932
|
-
const level = /^h([1-6])$/.exec(tag)?.[1];
|
|
4933
|
-
if (level) {
|
|
4934
|
-
const [comarkId, letterId] = idsOf(textOf(node), Number(level));
|
|
4935
|
-
if (props.id === comarkId) props.id = letterId;
|
|
4936
|
-
return;
|
|
4937
|
-
}
|
|
4938
|
-
children.forEach(visit);
|
|
4939
|
-
};
|
|
4940
|
-
state.tree.nodes.forEach(visit);
|
|
4941
|
-
}
|
|
4942
|
-
}));
|
|
4943
|
-
|
|
4944
|
-
export { ALT_MAX as A, BLOCKED_TAGS as B, coreCatalogs as C, isCurrency as D, isLocale as E, isSafeHref as F, GINKO_COMPONENTS_KEY as G, isShown as H, profileCovers as I, DEFAULT_LOCALE as J, labelProblem as K, MAX_CENTS as L, MARKDOWN_PROFILES as M, UNSAFE_LINK as U, attributeProblem as a, stableJson as b, bare as c, defineComponents as d, sameLabel as e, f, effectiveMax as g, effectiveMin as h, isTranslatable as i, parseMarkdown as j, sha256 as k, effectiveAlt as l, msg as m, coreMessage as n, labelOf as o, plainText as p, describeProfile as q, effectiveProfile as r, safeHref as s, textBlocks as t, GINKO_TOC_KEY as u, MAX_LOCALES as v, URL_PROPS as w, componentProblems as x, componentPropMessage as y, componentPropProblem as z };
|