@datenlotse/jsonjoy-builder 0.4.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/LICENSE +21 -0
- package/README.md +203 -0
- package/dist/components/SchemaEditor/AddFieldButton.js +312 -0
- package/dist/components/SchemaEditor/JsonSchemaEditor.js +166 -0
- package/dist/components/SchemaEditor/JsonSchemaVisualizer.js +96 -0
- package/dist/components/SchemaEditor/SchemaField.js +104 -0
- package/dist/components/SchemaEditor/SchemaFieldList.js +84 -0
- package/dist/components/SchemaEditor/SchemaPropertyEditor.js +249 -0
- package/dist/components/SchemaEditor/SchemaTypeSelector.js +55 -0
- package/dist/components/SchemaEditor/SchemaVisualEditor.js +77 -0
- package/dist/components/SchemaEditor/TypeDropdown.js +72 -0
- package/dist/components/SchemaEditor/TypeEditor.js +71 -0
- package/dist/components/SchemaEditor/types/ArrayEditor.js +173 -0
- package/dist/components/SchemaEditor/types/BooleanEditor.js +107 -0
- package/dist/components/SchemaEditor/types/NumberEditor.js +583 -0
- package/dist/components/SchemaEditor/types/ObjectEditor.js +90 -0
- package/dist/components/SchemaEditor/types/StringEditor.js +542 -0
- package/dist/components/features/JsonValidator.js +239 -0
- package/dist/components/features/SchemaInferencer.js +107 -0
- package/dist/components/ui/badge.js +25 -0
- package/dist/components/ui/button.js +41 -0
- package/dist/components/ui/dialog.js +73 -0
- package/dist/components/ui/input.js +11 -0
- package/dist/components/ui/label.js +13 -0
- package/dist/components/ui/select.js +90 -0
- package/dist/components/ui/switch.js +14 -0
- package/dist/components/ui/tabs.js +24 -0
- package/dist/components/ui/tooltip.js +15 -0
- package/dist/hooks/use-monaco-theme.js +197 -0
- package/dist/hooks/use-translation.js +14 -0
- package/dist/i18n/locales/de.js +143 -0
- package/dist/i18n/locales/en.js +143 -0
- package/dist/i18n/locales/es.js +143 -0
- package/dist/i18n/locales/fr.js +143 -0
- package/dist/i18n/locales/ru.js +143 -0
- package/dist/i18n/locales/uk.js +143 -0
- package/dist/i18n/locales/zh.js +143 -0
- package/dist/i18n/translation-context.js +4 -0
- package/dist/i18n/translation-keys.js +0 -0
- package/dist/index.css +3830 -0
- package/dist/index.d.ts +995 -0
- package/dist/index.js +10 -0
- package/dist/lib/schema-inference.js +266 -0
- package/dist/lib/schemaCompile.js +113 -0
- package/dist/lib/schemaEditor.js +167 -0
- package/dist/lib/utils.js +40 -0
- package/dist/types/jsonSchema.js +98 -0
- package/dist/types/validation.js +215 -0
- package/dist/utils/jsonValidator.js +162 -0
- package/package.json +112 -0
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { jsx } from "react/jsx-runtime";
|
|
2
|
+
import { Content, Provider, Root, Trigger } from "@radix-ui/react-tooltip";
|
|
3
|
+
import { forwardRef } from "react";
|
|
4
|
+
import { cn } from "../../lib/utils.js";
|
|
5
|
+
const TooltipProvider = Provider;
|
|
6
|
+
const Tooltip = Root;
|
|
7
|
+
const TooltipTrigger = Trigger;
|
|
8
|
+
const TooltipContent = /*#__PURE__*/ forwardRef(({ className, sideOffset = 4, ...props }, ref)=>/*#__PURE__*/ jsx(Content, {
|
|
9
|
+
ref: ref,
|
|
10
|
+
sideOffset: sideOffset,
|
|
11
|
+
className: cn("z-50 overflow-hidden rounded-md border bg-popover px-3 py-1.5 text-sm text-popover-foreground shadow-md animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2", className),
|
|
12
|
+
...props
|
|
13
|
+
}));
|
|
14
|
+
TooltipContent.displayName = Content.displayName;
|
|
15
|
+
export { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger };
|
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
import { json } from "monaco-editor";
|
|
2
|
+
import { useEffect, useState } from "react";
|
|
3
|
+
const defaultEditorOptions = {
|
|
4
|
+
minimap: {
|
|
5
|
+
enabled: false
|
|
6
|
+
},
|
|
7
|
+
fontSize: 14,
|
|
8
|
+
fontFamily: "var(--font-sans), 'SF Mono', Monaco, Menlo, Consolas, monospace",
|
|
9
|
+
lineNumbers: "on",
|
|
10
|
+
roundedSelection: false,
|
|
11
|
+
scrollBeyondLastLine: false,
|
|
12
|
+
readOnly: false,
|
|
13
|
+
automaticLayout: true,
|
|
14
|
+
formatOnPaste: true,
|
|
15
|
+
formatOnType: true,
|
|
16
|
+
tabSize: 2,
|
|
17
|
+
insertSpaces: true,
|
|
18
|
+
detectIndentation: true,
|
|
19
|
+
folding: true,
|
|
20
|
+
foldingStrategy: "indentation",
|
|
21
|
+
renderLineHighlight: "all",
|
|
22
|
+
matchBrackets: "always",
|
|
23
|
+
autoClosingBrackets: "always",
|
|
24
|
+
autoClosingQuotes: "always",
|
|
25
|
+
guides: {
|
|
26
|
+
bracketPairs: true,
|
|
27
|
+
indentation: true
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
function useMonacoTheme() {
|
|
31
|
+
const [isDarkMode, setIsDarkMode] = useState(false);
|
|
32
|
+
useEffect(()=>{
|
|
33
|
+
const checkDarkMode = ()=>{
|
|
34
|
+
const backgroundColor = getComputedStyle(document.documentElement).getPropertyValue("--background").trim();
|
|
35
|
+
const isDark = backgroundColor.includes("222.2") || backgroundColor.includes("84% 4.9%");
|
|
36
|
+
setIsDarkMode(isDark);
|
|
37
|
+
};
|
|
38
|
+
checkDarkMode();
|
|
39
|
+
const observer = new MutationObserver(checkDarkMode);
|
|
40
|
+
observer.observe(document.documentElement, {
|
|
41
|
+
attributes: true,
|
|
42
|
+
attributeFilter: [
|
|
43
|
+
"class",
|
|
44
|
+
"style"
|
|
45
|
+
]
|
|
46
|
+
});
|
|
47
|
+
return ()=>observer.disconnect();
|
|
48
|
+
}, []);
|
|
49
|
+
const defineMonacoThemes = (monaco)=>{
|
|
50
|
+
monaco.editor.defineTheme("appLightTheme", {
|
|
51
|
+
base: "vs",
|
|
52
|
+
inherit: true,
|
|
53
|
+
rules: [
|
|
54
|
+
{
|
|
55
|
+
token: "string",
|
|
56
|
+
foreground: "3B82F6"
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
token: "number",
|
|
60
|
+
foreground: "A855F7"
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
token: "keyword",
|
|
64
|
+
foreground: "3B82F6"
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
token: "delimiter",
|
|
68
|
+
foreground: "0F172A"
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
token: "keyword.json",
|
|
72
|
+
foreground: "A855F7"
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
token: "string.key.json",
|
|
76
|
+
foreground: "2563EB"
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
token: "string.value.json",
|
|
80
|
+
foreground: "3B82F6"
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
token: "boolean",
|
|
84
|
+
foreground: "22C55E"
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
token: "null",
|
|
88
|
+
foreground: "64748B"
|
|
89
|
+
}
|
|
90
|
+
],
|
|
91
|
+
colors: {
|
|
92
|
+
"editor.background": "#f8fafc",
|
|
93
|
+
"editor.foreground": "#0f172a",
|
|
94
|
+
"editorCursor.foreground": "#0f172a",
|
|
95
|
+
"editor.lineHighlightBackground": "#f1f5f9",
|
|
96
|
+
"editorLineNumber.foreground": "#64748b",
|
|
97
|
+
"editor.selectionBackground": "#e2e8f0",
|
|
98
|
+
"editor.inactiveSelectionBackground": "#e2e8f0",
|
|
99
|
+
"editorIndentGuide.background": "#e2e8f0",
|
|
100
|
+
"editor.findMatchBackground": "#cbd5e1",
|
|
101
|
+
"editor.findMatchHighlightBackground": "#cbd5e133"
|
|
102
|
+
}
|
|
103
|
+
});
|
|
104
|
+
monaco.editor.defineTheme("appDarkTheme", {
|
|
105
|
+
base: "vs-dark",
|
|
106
|
+
inherit: true,
|
|
107
|
+
rules: [
|
|
108
|
+
{
|
|
109
|
+
token: "string",
|
|
110
|
+
foreground: "3B82F6"
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
token: "number",
|
|
114
|
+
foreground: "A855F7"
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
token: "keyword",
|
|
118
|
+
foreground: "3B82F6"
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
token: "delimiter",
|
|
122
|
+
foreground: "F8FAFC"
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
token: "keyword.json",
|
|
126
|
+
foreground: "A855F7"
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
token: "string.key.json",
|
|
130
|
+
foreground: "60A5FA"
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
token: "string.value.json",
|
|
134
|
+
foreground: "3B82F6"
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
token: "boolean",
|
|
138
|
+
foreground: "22C55E"
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
token: "null",
|
|
142
|
+
foreground: "94A3B8"
|
|
143
|
+
}
|
|
144
|
+
],
|
|
145
|
+
colors: {
|
|
146
|
+
"editor.background": "#0f172a",
|
|
147
|
+
"editor.foreground": "#f8fafc",
|
|
148
|
+
"editorCursor.foreground": "#f8fafc",
|
|
149
|
+
"editor.lineHighlightBackground": "#1e293b",
|
|
150
|
+
"editorLineNumber.foreground": "#64748b",
|
|
151
|
+
"editor.selectionBackground": "#334155",
|
|
152
|
+
"editor.inactiveSelectionBackground": "#334155",
|
|
153
|
+
"editorIndentGuide.background": "#1e293b",
|
|
154
|
+
"editor.findMatchBackground": "#475569",
|
|
155
|
+
"editor.findMatchHighlightBackground": "#47556933"
|
|
156
|
+
}
|
|
157
|
+
});
|
|
158
|
+
};
|
|
159
|
+
const configureJsonDefaults = (_monaco, schema)=>{
|
|
160
|
+
const diagnosticsOptions = {
|
|
161
|
+
validate: true,
|
|
162
|
+
allowComments: false,
|
|
163
|
+
schemaValidation: "error",
|
|
164
|
+
enableSchemaRequest: true,
|
|
165
|
+
schemas: schema ? [
|
|
166
|
+
{
|
|
167
|
+
uri: "object" == typeof schema && schema.$id ? schema.$id : "https://jsonjoy-builder/schema",
|
|
168
|
+
fileMatch: [
|
|
169
|
+
"*"
|
|
170
|
+
],
|
|
171
|
+
schema
|
|
172
|
+
}
|
|
173
|
+
] : [
|
|
174
|
+
{
|
|
175
|
+
uri: "http://json-schema.org/draft-07/schema",
|
|
176
|
+
fileMatch: [
|
|
177
|
+
"*"
|
|
178
|
+
],
|
|
179
|
+
schema: {
|
|
180
|
+
$schema: "http://json-schema.org/draft-07/schema",
|
|
181
|
+
type: "object",
|
|
182
|
+
additionalProperties: true
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
]
|
|
186
|
+
};
|
|
187
|
+
json.jsonDefaults.setDiagnosticsOptions(diagnosticsOptions);
|
|
188
|
+
};
|
|
189
|
+
return {
|
|
190
|
+
isDarkMode,
|
|
191
|
+
currentTheme: isDarkMode ? "appDarkTheme" : "appLightTheme",
|
|
192
|
+
defineMonacoThemes,
|
|
193
|
+
configureJsonDefaults,
|
|
194
|
+
defaultEditorOptions
|
|
195
|
+
};
|
|
196
|
+
}
|
|
197
|
+
export { defaultEditorOptions, useMonacoTheme };
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { useContext } from "react";
|
|
2
|
+
import { en } from "../i18n/locales/en.js";
|
|
3
|
+
import { TranslationContext } from "../i18n/translation-context.js";
|
|
4
|
+
function useTranslation() {
|
|
5
|
+
const translation = useContext(TranslationContext);
|
|
6
|
+
return translation ?? en;
|
|
7
|
+
}
|
|
8
|
+
function formatTranslation(template, values) {
|
|
9
|
+
return template.replace(/\{(\w+)\}/g, (_, key)=>{
|
|
10
|
+
const value = values[key];
|
|
11
|
+
return void 0 !== value ? String(value) : `{${key}}`;
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
export { formatTranslation, useTranslation };
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
const de = {
|
|
2
|
+
collapse: "Einklappen",
|
|
3
|
+
expand: "Ausklappen",
|
|
4
|
+
fieldDescriptionPlaceholder: "Zweck dieses Felds beschreiben",
|
|
5
|
+
fieldDelete: "Feld löschen",
|
|
6
|
+
fieldDescription: "Beschreibung",
|
|
7
|
+
fieldDescriptionTooltip: "Kontext zur Bedeutung dieses Felds hinzufügen",
|
|
8
|
+
fieldNameLabel: "Feldname",
|
|
9
|
+
fieldNamePlaceholder: "z.B. firstName, age, isActive",
|
|
10
|
+
fieldNameTooltip: "CamelCase für bessere Lesbarkeit verwenden (z.B. firstName)",
|
|
11
|
+
fieldRequiredLabel: "Pflichtfeld",
|
|
12
|
+
fieldType: "Feldart",
|
|
13
|
+
fieldTypeExample: "Beispiel:",
|
|
14
|
+
fieldTypeTooltipString: "string: Text",
|
|
15
|
+
fieldTypeTooltipNumber: "number: Zahl",
|
|
16
|
+
fieldTypeTooltipBoolean: "boolean: Wahr/Falsch",
|
|
17
|
+
fieldTypeTooltipObject: "object: Verschachteltes JSON",
|
|
18
|
+
fieldTypeTooltipArray: "array: Liste von Werten",
|
|
19
|
+
fieldAddNewButton: "Feld hinzufügen",
|
|
20
|
+
fieldAddNewBadge: "Schema-Builder",
|
|
21
|
+
fieldAddNewCancel: "Abbrechen",
|
|
22
|
+
fieldAddNewConfirm: "Feld hinzufügen",
|
|
23
|
+
fieldAddNewDescription: "Neues Feld für das JSON-Schema erstellen",
|
|
24
|
+
fieldAddNewLabel: "Neues Feld hinzufügen",
|
|
25
|
+
fieldTypeTextLabel: "Text",
|
|
26
|
+
fieldTypeTextDescription: "Für Textwerte wie Namen, Beschreibungen usw.",
|
|
27
|
+
fieldTypeNumberLabel: "Zahl",
|
|
28
|
+
fieldTypeNumberDescription: "Für Dezimal- oder Ganzzahlen",
|
|
29
|
+
fieldTypeBooleanLabel: "Ja/Nein",
|
|
30
|
+
fieldTypeBooleanDescription: "Für Wahr/Falsch-Werte",
|
|
31
|
+
fieldTypeObjectLabel: "Gruppe",
|
|
32
|
+
fieldTypeObjectDescription: "Zum Gruppieren verwandter Felder",
|
|
33
|
+
fieldTypeArrayLabel: "Liste",
|
|
34
|
+
fieldTypeArrayDescription: "Für Sammlungen von Elementen",
|
|
35
|
+
propertyDescriptionPlaceholder: "Beschreibung hinzufügen...",
|
|
36
|
+
propertyDescriptionButton: "Beschreibung hinzufügen...",
|
|
37
|
+
propertyRequired: "Erforderlich",
|
|
38
|
+
propertyOptional: "Optional",
|
|
39
|
+
propertyDelete: "Feld löschen",
|
|
40
|
+
propertyMoveUp: "Feld nach oben verschieben",
|
|
41
|
+
propertyMoveDown: "Feld nach unten verschieben",
|
|
42
|
+
propertyDefaultLabel: "Standardwert",
|
|
43
|
+
propertyDefaultPlaceholder: "Standardwert eingeben...",
|
|
44
|
+
schemaEditorTitle: "JSON-Schema-Editor",
|
|
45
|
+
schemaEditorToggleFullscreen: "Vollbild umschalten",
|
|
46
|
+
schemaEditorEditModeVisual: "Visuell",
|
|
47
|
+
schemaEditorEditModeJson: "JSON",
|
|
48
|
+
schemaEditorLoading: "Editor wird geladen...",
|
|
49
|
+
arrayNoConstraint: "Keine Einschränkung",
|
|
50
|
+
arrayMinimumLabel: "Mindestanzahl an Elementen",
|
|
51
|
+
arrayMinimumPlaceholder: "Kein Minimum",
|
|
52
|
+
arrayMaximumLabel: "Maximale Anzahl an Elemente",
|
|
53
|
+
arrayMaximumPlaceholder: "Kein Maximum",
|
|
54
|
+
arrayForceUniqueItemsLabel: "Nur eindeutige Elemente erlauben",
|
|
55
|
+
arrayItemTypeLabel: "Elementtyp",
|
|
56
|
+
arrayValidationErrorMinMax: "'minItems' darf nicht größer als 'maxItems' sein.",
|
|
57
|
+
arrayValidationErrorContainsMinMax: "'minContains' darf nicht größer als 'maxContains' sein.",
|
|
58
|
+
booleanNoConstraint: "Keine Einschränkung",
|
|
59
|
+
booleanAllowedValuesLabel: "Erlaubte Werte",
|
|
60
|
+
booleanAllowFalseLabel: "Falsch-Werte erlauben",
|
|
61
|
+
booleanAllowTrueLabel: "Wahr-Werte erlauben",
|
|
62
|
+
booleanNeitherWarning: "Achtung: Mindestens einer von beiden Werten muss erlaubt sein.",
|
|
63
|
+
numberNoConstraint: "Keine Einschränkung",
|
|
64
|
+
numberMinimumLabel: "Minimalwert",
|
|
65
|
+
numberMinimumPlaceholder: "Kein Minimum",
|
|
66
|
+
numberMaximumLabel: "Maximalwert",
|
|
67
|
+
numberMaximumPlaceholder: "Kein Maximum",
|
|
68
|
+
numberExclusiveMinimumLabel: "Exklusives Minimum",
|
|
69
|
+
numberExclusiveMinimumPlaceholder: "Kein exklusives Minimum",
|
|
70
|
+
numberExclusiveMaximumLabel: "Exklusives Maximum",
|
|
71
|
+
numberExclusiveMaximumPlaceholder: "Kein exklusives Maximum",
|
|
72
|
+
numberMultipleOfLabel: "Vielfaches von",
|
|
73
|
+
numberMultipleOfPlaceholder: "Beliebig",
|
|
74
|
+
numberAllowedValuesEnumLabel: "Erlaubte Werte (Enum)",
|
|
75
|
+
numberAllowedValuesEnumNone: "Keine Einschränkung für Werte festgelegt",
|
|
76
|
+
numberAllowedValuesEnumAddLabel: "Hinzufügen",
|
|
77
|
+
numberAllowedValuesEnumAddPlaceholder: "Erlaubten Wert hinzufügen...",
|
|
78
|
+
numberValidationErrorMinMax: "Minimum und Maximum müssen konsistent sein.",
|
|
79
|
+
numberValidationErrorBothExclusiveAndInclusiveMin: "Sowohl 'exclusiveMinimum' als auch 'minimum' dürfen nicht gleichzeitig festgelegt werden.",
|
|
80
|
+
numberValidationErrorBothExclusiveAndInclusiveMax: "Sowohl 'exclusiveMaximum' als auch 'maximum' dürfen nicht gleichzeitig festgelegt werden.",
|
|
81
|
+
numberValidationErrorEnumOutOfRange: "Enum-Werte müssen innerhalb des definierten Bereichs liegen.",
|
|
82
|
+
objectPropertiesNone: "Keine Eigenschaften definiert",
|
|
83
|
+
objectValidationErrorMinMax: "'minProperties' darf nicht größer als 'maxProperties' sein.",
|
|
84
|
+
stringNoConstraint: "Keine Einschränkung",
|
|
85
|
+
stringMinimumLengthLabel: "Minimale Länge",
|
|
86
|
+
stringMinimumLengthPlaceholder: "Kein Minimum",
|
|
87
|
+
stringMaximumLengthLabel: "Maximale Länge",
|
|
88
|
+
stringMaximumLengthPlaceholder: "Kein Maximum",
|
|
89
|
+
stringPatternLabel: "Muster (Regex)",
|
|
90
|
+
stringPatternPlaceholder: "^[a-zA-Z]+$",
|
|
91
|
+
stringFormatLabel: "Format",
|
|
92
|
+
stringFormatNone: "Keins",
|
|
93
|
+
stringFormatDateTime: "Datum und Uhrzeit",
|
|
94
|
+
stringFormatDate: "Datum",
|
|
95
|
+
stringFormatTime: "Uhrzeit",
|
|
96
|
+
stringFormatEmail: "E-Mail",
|
|
97
|
+
stringFormatUri: "URI",
|
|
98
|
+
stringFormatUuid: "UUID",
|
|
99
|
+
stringFormatHostname: "Hostname",
|
|
100
|
+
stringFormatIpv4: "IPv4-Adresse",
|
|
101
|
+
stringFormatIpv6: "IPv6-Adresse",
|
|
102
|
+
stringAllowedValuesEnumLabel: "Erlaubte Werte (Enum)",
|
|
103
|
+
stringAllowedValuesEnumNone: "Keine Einschränkung für Werte festgelegt",
|
|
104
|
+
stringAllowedValuesEnumAddPlaceholder: "Erlaubten Wert hinzufügen...",
|
|
105
|
+
stringAllowedValuesEnumAddLabel: "Hinzufügen",
|
|
106
|
+
enumModeStatic: "Feste Liste",
|
|
107
|
+
enumModeDependsOn: "Abhängig von Eigenschaft",
|
|
108
|
+
enumDependsOnPlaceholder: "Eigenschaft wählen...",
|
|
109
|
+
whenPropertyEquals: "Wenn {property} = {value}",
|
|
110
|
+
stringFormatSelectPlaceholder: "Format auswählen",
|
|
111
|
+
stringValidationErrorLengthRange: "'Minimale Länge' darf nicht größer als 'Maximale Länge' sein.",
|
|
112
|
+
schemaTypeArray: "Liste",
|
|
113
|
+
schemaTypeBoolean: "Ja/Nein",
|
|
114
|
+
schemaTypeNumber: "Zahl",
|
|
115
|
+
schemaTypeObject: "Objekt",
|
|
116
|
+
schemaTypeString: "Text",
|
|
117
|
+
schemaTypeNull: "Leer",
|
|
118
|
+
inferrerTitle: "JSON-Schema ableiten",
|
|
119
|
+
inferrerDescription: "JSON-Dokument unten einfügen, um ein Schema daraus zu erstellen.",
|
|
120
|
+
inferrerCancel: "Abbrechen",
|
|
121
|
+
inferrerGenerate: "Schema erstellen",
|
|
122
|
+
inferrerErrorInvalidJson: "Ungültiges JSON-Format. Bitte Eingabe prüfen.",
|
|
123
|
+
validatorTitle: "JSON validieren",
|
|
124
|
+
validatorDescription: "JSON-Dokument einfügen, um es gegen das aktuelle Schema zu prüfen. Die Validierung erfolgt automatisch beim Tippen.",
|
|
125
|
+
validatorCurrentSchema: "Aktuelles Schema:",
|
|
126
|
+
validatorContent: "Zu prüfendes JSON:",
|
|
127
|
+
validatorValid: "JSON ist gültig zum Schema!",
|
|
128
|
+
validatorErrorInvalidSyntax: "Ungültige JSON-Syntax",
|
|
129
|
+
validatorErrorSchemaValidation: "Schema-Validierungsfehler",
|
|
130
|
+
validatorErrorCount: "{count} Validierungsfehler gefunden",
|
|
131
|
+
validatorErrorPathRoot: "Wurzel",
|
|
132
|
+
validatorErrorLocationLineAndColumn: "Zeile {line}, Spalte {column}",
|
|
133
|
+
validatorErrorLocationLineOnly: "Zeile {line}",
|
|
134
|
+
visualizerDownloadTitle: "Schema herunterladen",
|
|
135
|
+
visualizerDownloadFileName: "schema.json",
|
|
136
|
+
visualizerSource: "JSON-Schema-Quelle",
|
|
137
|
+
visualEditorNoFieldsHint1: "Noch keine Felder definiert",
|
|
138
|
+
visualEditorNoFieldsHint2: "Erstes Feld hinzufügen, um zu starten",
|
|
139
|
+
typeValidationErrorNegativeLength: "Längenwerte dürfen nicht negativ sein.",
|
|
140
|
+
typeValidationErrorIntValue: "Der Wert muss eine ganze Zahl sein.",
|
|
141
|
+
typeValidationErrorPositive: "Der Wert muss positiv sein."
|
|
142
|
+
};
|
|
143
|
+
export { de };
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
const en = {
|
|
2
|
+
collapse: "Collapse",
|
|
3
|
+
expand: "Expand",
|
|
4
|
+
fieldDescriptionPlaceholder: "Describe the purpose of this field",
|
|
5
|
+
fieldDelete: "Delete field",
|
|
6
|
+
fieldDescription: "Description",
|
|
7
|
+
fieldDescriptionTooltip: "Add context about what this field represents",
|
|
8
|
+
fieldNameLabel: "Field Name",
|
|
9
|
+
fieldNamePlaceholder: "e.g. firstName, age, isActive",
|
|
10
|
+
fieldNameTooltip: "Use camelCase for better readability (e.g., firstName)",
|
|
11
|
+
fieldRequiredLabel: "Required Field",
|
|
12
|
+
fieldType: "Field Type",
|
|
13
|
+
fieldTypeExample: "Example:",
|
|
14
|
+
fieldTypeTooltipString: "string: Text",
|
|
15
|
+
fieldTypeTooltipNumber: "number: Numeric",
|
|
16
|
+
fieldTypeTooltipBoolean: "boolean: True/false",
|
|
17
|
+
fieldTypeTooltipObject: "object: Nested JSON",
|
|
18
|
+
fieldTypeTooltipArray: "array: Lists of values",
|
|
19
|
+
fieldAddNewButton: "Add Field",
|
|
20
|
+
fieldAddNewBadge: "Schema Builder",
|
|
21
|
+
fieldAddNewCancel: "Cancel",
|
|
22
|
+
fieldAddNewConfirm: "Add Field",
|
|
23
|
+
fieldAddNewDescription: "Create a new field for your JSON schema",
|
|
24
|
+
fieldAddNewLabel: "Add New Field",
|
|
25
|
+
fieldTypeTextLabel: "Text",
|
|
26
|
+
fieldTypeTextDescription: "For text values like names, descriptions, etc.",
|
|
27
|
+
fieldTypeNumberLabel: "Number",
|
|
28
|
+
fieldTypeNumberDescription: "For decimal or whole numbers",
|
|
29
|
+
fieldTypeBooleanLabel: "Yes/No",
|
|
30
|
+
fieldTypeBooleanDescription: "For true/false values",
|
|
31
|
+
fieldTypeObjectLabel: "Group",
|
|
32
|
+
fieldTypeObjectDescription: "For grouping related fields together",
|
|
33
|
+
fieldTypeArrayLabel: "List",
|
|
34
|
+
fieldTypeArrayDescription: "For collections of items",
|
|
35
|
+
propertyDescriptionPlaceholder: "Add description...",
|
|
36
|
+
propertyDescriptionButton: "Add description...",
|
|
37
|
+
propertyRequired: "Required",
|
|
38
|
+
propertyOptional: "Optional",
|
|
39
|
+
propertyDelete: "Delete field",
|
|
40
|
+
propertyMoveUp: "Move field up",
|
|
41
|
+
propertyMoveDown: "Move field down",
|
|
42
|
+
propertyDefaultLabel: "Default Value",
|
|
43
|
+
propertyDefaultPlaceholder: "Enter default value...",
|
|
44
|
+
schemaEditorTitle: "JSON Schema Editor",
|
|
45
|
+
schemaEditorToggleFullscreen: "Toggle fullscreen",
|
|
46
|
+
schemaEditorEditModeVisual: "Visual",
|
|
47
|
+
schemaEditorEditModeJson: "JSON",
|
|
48
|
+
schemaEditorLoading: "Loading editor...",
|
|
49
|
+
arrayNoConstraint: "No constraint",
|
|
50
|
+
arrayMinimumLabel: "Minimum Items",
|
|
51
|
+
arrayMinimumPlaceholder: "No minimum",
|
|
52
|
+
arrayMaximumLabel: "Maximum Items",
|
|
53
|
+
arrayMaximumPlaceholder: "No maximum",
|
|
54
|
+
arrayForceUniqueItemsLabel: "Force unique items",
|
|
55
|
+
arrayItemTypeLabel: "Item Type",
|
|
56
|
+
arrayValidationErrorMinMax: "'minItems' cannot be greater than 'maxItems'.",
|
|
57
|
+
arrayValidationErrorContainsMinMax: "'minContains' cannot be greater than 'maxContains'.",
|
|
58
|
+
booleanNoConstraint: "No constraint",
|
|
59
|
+
booleanAllowedValuesLabel: "Allowed Values",
|
|
60
|
+
booleanAllowFalseLabel: "Allow false value",
|
|
61
|
+
booleanAllowTrueLabel: "Allow true value",
|
|
62
|
+
booleanNeitherWarning: "Warning: You must allow at least one value.",
|
|
63
|
+
numberNoConstraint: "No constraint",
|
|
64
|
+
numberMinimumLabel: "Minimum Value",
|
|
65
|
+
numberMinimumPlaceholder: "No minimum",
|
|
66
|
+
numberMaximumLabel: "Maximum Value",
|
|
67
|
+
numberMaximumPlaceholder: "No maximum",
|
|
68
|
+
numberExclusiveMinimumLabel: "Exclusive Minimum",
|
|
69
|
+
numberExclusiveMinimumPlaceholder: "No exclusive min",
|
|
70
|
+
numberExclusiveMaximumLabel: "Exclusive Maximum",
|
|
71
|
+
numberExclusiveMaximumPlaceholder: "No exclusive max",
|
|
72
|
+
numberMultipleOfLabel: "Multiple Of",
|
|
73
|
+
numberMultipleOfPlaceholder: "Any",
|
|
74
|
+
numberAllowedValuesEnumLabel: "Allowed Values (enum)",
|
|
75
|
+
numberAllowedValuesEnumNone: "No restricted values set",
|
|
76
|
+
numberAllowedValuesEnumAddLabel: "Add",
|
|
77
|
+
numberAllowedValuesEnumAddPlaceholder: "Add allowed value...",
|
|
78
|
+
numberValidationErrorMinMax: "Minimum and maximum values must be consistent.",
|
|
79
|
+
numberValidationErrorBothExclusiveAndInclusiveMin: "Both 'exclusiveMinimum' and 'minimum' cannot be set at the same time.",
|
|
80
|
+
numberValidationErrorBothExclusiveAndInclusiveMax: "Both 'exclusiveMaximum' and 'maximum' cannot be set at the same time.",
|
|
81
|
+
numberValidationErrorEnumOutOfRange: "Enum values must be within the defined range.",
|
|
82
|
+
objectPropertiesNone: "No properties defined",
|
|
83
|
+
objectValidationErrorMinMax: "'minProperties' cannot be greater than 'maxProperties'.",
|
|
84
|
+
stringNoConstraint: "No constraint",
|
|
85
|
+
stringMinimumLengthLabel: "Minimum Length",
|
|
86
|
+
stringMinimumLengthPlaceholder: "No minimum",
|
|
87
|
+
stringMaximumLengthLabel: "Maximum Length",
|
|
88
|
+
stringMaximumLengthPlaceholder: "No maximum",
|
|
89
|
+
stringPatternLabel: "Pattern (regex)",
|
|
90
|
+
stringPatternPlaceholder: "^[a-zA-Z]+$",
|
|
91
|
+
stringFormatLabel: "Format",
|
|
92
|
+
stringFormatNone: "None",
|
|
93
|
+
stringFormatDateTime: "Date-Time",
|
|
94
|
+
stringFormatDate: "Date",
|
|
95
|
+
stringFormatTime: "Time",
|
|
96
|
+
stringFormatEmail: "Email",
|
|
97
|
+
stringFormatUri: "URI",
|
|
98
|
+
stringFormatUuid: "UUID",
|
|
99
|
+
stringFormatHostname: "Hostname",
|
|
100
|
+
stringFormatIpv4: "IPv4 Address",
|
|
101
|
+
stringFormatIpv6: "IPv6 Address",
|
|
102
|
+
stringAllowedValuesEnumLabel: "Allowed Values (enum)",
|
|
103
|
+
stringAllowedValuesEnumNone: "No restricted values set",
|
|
104
|
+
stringAllowedValuesEnumAddPlaceholder: "Add allowed value...",
|
|
105
|
+
stringAllowedValuesEnumAddLabel: "Add",
|
|
106
|
+
enumModeStatic: "Fixed list",
|
|
107
|
+
enumModeDependsOn: "Depends on property",
|
|
108
|
+
enumDependsOnPlaceholder: "Select property...",
|
|
109
|
+
whenPropertyEquals: "When {property} = {value}",
|
|
110
|
+
stringFormatSelectPlaceholder: "Select format",
|
|
111
|
+
stringValidationErrorLengthRange: "'Minimum Length' cannot be greater than 'Maximum Length'.",
|
|
112
|
+
schemaTypeArray: "List",
|
|
113
|
+
schemaTypeBoolean: "Yes/No",
|
|
114
|
+
schemaTypeNumber: "Number",
|
|
115
|
+
schemaTypeObject: "Object",
|
|
116
|
+
schemaTypeString: "Text",
|
|
117
|
+
schemaTypeNull: "Empty",
|
|
118
|
+
inferrerTitle: "Infer JSON Schema",
|
|
119
|
+
inferrerDescription: "Paste your JSON document below to generate a schema from it.",
|
|
120
|
+
inferrerCancel: "Cancel",
|
|
121
|
+
inferrerGenerate: "Generate Schema",
|
|
122
|
+
inferrerErrorInvalidJson: "Invalid JSON format. Please check your input.",
|
|
123
|
+
validatorTitle: "Validate JSON",
|
|
124
|
+
validatorDescription: "Paste your JSON document to validate against the current schema. Validation occurs automatically as you type.",
|
|
125
|
+
validatorCurrentSchema: "Current Schema:",
|
|
126
|
+
validatorContent: "Your JSON:",
|
|
127
|
+
validatorValid: "JSON is valid according to the schema!",
|
|
128
|
+
validatorErrorInvalidSyntax: "Invalid JSON syntax",
|
|
129
|
+
validatorErrorSchemaValidation: "Schema validation error",
|
|
130
|
+
validatorErrorCount: "{count} validation errors detected",
|
|
131
|
+
validatorErrorPathRoot: "Root",
|
|
132
|
+
validatorErrorLocationLineAndColumn: "Line {line}, Col {column}",
|
|
133
|
+
validatorErrorLocationLineOnly: "Line {line}",
|
|
134
|
+
visualizerDownloadTitle: "Download Schema",
|
|
135
|
+
visualizerDownloadFileName: "schema.json",
|
|
136
|
+
visualizerSource: "JSON Schema Source",
|
|
137
|
+
visualEditorNoFieldsHint1: "No fields defined yet",
|
|
138
|
+
visualEditorNoFieldsHint2: "Add your first field to get started",
|
|
139
|
+
typeValidationErrorNegativeLength: "Length values cannot be negative.",
|
|
140
|
+
typeValidationErrorIntValue: "Value must be an integer.",
|
|
141
|
+
typeValidationErrorPositive: "Value must be positive."
|
|
142
|
+
};
|
|
143
|
+
export { en };
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
const es = {
|
|
2
|
+
collapse: "Colapsar",
|
|
3
|
+
expand: "Expandir",
|
|
4
|
+
fieldDescriptionPlaceholder: "Describe el propósito de este campo",
|
|
5
|
+
fieldDelete: "Eliminar campo",
|
|
6
|
+
fieldDescription: "Descripción",
|
|
7
|
+
fieldDescriptionTooltip: "Añade contexto sobre lo que representa este campo",
|
|
8
|
+
fieldNameLabel: "Nombre del Campo",
|
|
9
|
+
fieldNamePlaceholder: "ej. firstName, age, isActive",
|
|
10
|
+
fieldNameTooltip: "Usa camelCase para mejor legibilidad (ej., firstName)",
|
|
11
|
+
fieldRequiredLabel: "Campo Requerido",
|
|
12
|
+
fieldType: "Tipo de Campo",
|
|
13
|
+
fieldTypeExample: "Ejemplo:",
|
|
14
|
+
fieldTypeTooltipString: "string: Texto",
|
|
15
|
+
fieldTypeTooltipNumber: "number: Numérico",
|
|
16
|
+
fieldTypeTooltipBoolean: "boolean: Verdadero/falso",
|
|
17
|
+
fieldTypeTooltipObject: "object: JSON anidado",
|
|
18
|
+
fieldTypeTooltipArray: "array: Listas de valores",
|
|
19
|
+
fieldAddNewButton: "Agregar Campo",
|
|
20
|
+
fieldAddNewBadge: "Constructor de Schema",
|
|
21
|
+
fieldAddNewCancel: "Cancelar",
|
|
22
|
+
fieldAddNewConfirm: "Agregar Campo",
|
|
23
|
+
fieldAddNewDescription: "Crea un nuevo campo para tu JSON schema",
|
|
24
|
+
fieldAddNewLabel: "Agregar Nuevo Campo",
|
|
25
|
+
fieldTypeTextLabel: "Texto",
|
|
26
|
+
fieldTypeTextDescription: "Para valores de texto como nombres, descripciones, etc.",
|
|
27
|
+
fieldTypeNumberLabel: "Número",
|
|
28
|
+
fieldTypeNumberDescription: "Para números decimales o enteros",
|
|
29
|
+
fieldTypeBooleanLabel: "Sí/No",
|
|
30
|
+
fieldTypeBooleanDescription: "Para valores verdadero/falso",
|
|
31
|
+
fieldTypeObjectLabel: "Grupo",
|
|
32
|
+
fieldTypeObjectDescription: "Para agrupar campos relacionados",
|
|
33
|
+
fieldTypeArrayLabel: "Lista",
|
|
34
|
+
fieldTypeArrayDescription: "Para colecciones de elementos",
|
|
35
|
+
propertyDescriptionPlaceholder: "Agregar descripción...",
|
|
36
|
+
propertyDescriptionButton: "Agregar descripción...",
|
|
37
|
+
propertyRequired: "Requerido",
|
|
38
|
+
propertyOptional: "Opcional",
|
|
39
|
+
propertyDelete: "Eliminar campo",
|
|
40
|
+
propertyMoveUp: "Mover campo hacia arriba",
|
|
41
|
+
propertyMoveDown: "Mover campo hacia abajo",
|
|
42
|
+
propertyDefaultLabel: "Valor por defecto",
|
|
43
|
+
propertyDefaultPlaceholder: "Ingresar valor por defecto...",
|
|
44
|
+
schemaEditorTitle: "Editor de JSON Schema",
|
|
45
|
+
schemaEditorToggleFullscreen: "Cambiar a pantalla completa",
|
|
46
|
+
schemaEditorEditModeVisual: "Visual",
|
|
47
|
+
schemaEditorEditModeJson: "JSON",
|
|
48
|
+
schemaEditorLoading: "Cargando editor...",
|
|
49
|
+
arrayNoConstraint: "Sin restricción",
|
|
50
|
+
arrayMinimumLabel: "Mínimo de Elementos",
|
|
51
|
+
arrayMinimumPlaceholder: "Sin mínimo",
|
|
52
|
+
arrayMaximumLabel: "Máximo de Elementos",
|
|
53
|
+
arrayMaximumPlaceholder: "Sin máximo",
|
|
54
|
+
arrayForceUniqueItemsLabel: "Forzar elementos únicos",
|
|
55
|
+
arrayItemTypeLabel: "Tipo de Elemento",
|
|
56
|
+
arrayValidationErrorMinMax: "'minItems' no puede ser mayor que 'maxItems'.",
|
|
57
|
+
arrayValidationErrorContainsMinMax: "'minContains' no puede ser mayor que 'maxContains'.",
|
|
58
|
+
booleanNoConstraint: "Sin restricción",
|
|
59
|
+
booleanAllowedValuesLabel: "Valores Permitidos",
|
|
60
|
+
booleanAllowFalseLabel: "Permitir valor falso",
|
|
61
|
+
booleanAllowTrueLabel: "Permitir valor verdadero",
|
|
62
|
+
booleanNeitherWarning: "Advertencia: Debes permitir al menos un valor.",
|
|
63
|
+
numberNoConstraint: "Sin restricción",
|
|
64
|
+
numberMinimumLabel: "Valor Mínimo",
|
|
65
|
+
numberMinimumPlaceholder: "Sin mínimo",
|
|
66
|
+
numberMaximumLabel: "Valor Máximo",
|
|
67
|
+
numberMaximumPlaceholder: "Sin máximo",
|
|
68
|
+
numberExclusiveMinimumLabel: "Mínimo Exclusivo",
|
|
69
|
+
numberExclusiveMinimumPlaceholder: "Sin mínimo exclusivo",
|
|
70
|
+
numberExclusiveMaximumLabel: "Máximo Exclusivo",
|
|
71
|
+
numberExclusiveMaximumPlaceholder: "Sin máximo exclusivo",
|
|
72
|
+
numberMultipleOfLabel: "Múltiplo De",
|
|
73
|
+
numberMultipleOfPlaceholder: "Cualquiera",
|
|
74
|
+
numberAllowedValuesEnumLabel: "Valores Permitidos (enum)",
|
|
75
|
+
numberAllowedValuesEnumNone: "No hay valores restringidos",
|
|
76
|
+
numberAllowedValuesEnumAddLabel: "Agregar",
|
|
77
|
+
numberAllowedValuesEnumAddPlaceholder: "Agregar valor permitido...",
|
|
78
|
+
numberValidationErrorMinMax: "Los valores mínimo y máximo deben ser consistentes.",
|
|
79
|
+
numberValidationErrorBothExclusiveAndInclusiveMin: "No puedes definir a la vez 'exclusiveMinimum' y 'minimum'.",
|
|
80
|
+
numberValidationErrorBothExclusiveAndInclusiveMax: "No puedes definir a la vez 'exclusiveMaximum' y 'maximum'.",
|
|
81
|
+
numberValidationErrorEnumOutOfRange: "Los valores del enum deben estar dentro del rango definido.",
|
|
82
|
+
objectPropertiesNone: "No hay propiedades definidas",
|
|
83
|
+
objectValidationErrorMinMax: "'minProperties' no puede ser mayor que 'maxProperties'.",
|
|
84
|
+
stringNoConstraint: "Sin restricción",
|
|
85
|
+
stringMinimumLengthLabel: "Longitud Mínima",
|
|
86
|
+
stringMinimumLengthPlaceholder: "Sin mínimo",
|
|
87
|
+
stringMaximumLengthLabel: "Longitud Máxima",
|
|
88
|
+
stringMaximumLengthPlaceholder: "Sin máximo",
|
|
89
|
+
stringPatternLabel: "Patrón (regex)",
|
|
90
|
+
stringPatternPlaceholder: "^[a-zA-Z]+$",
|
|
91
|
+
stringFormatLabel: "Formato",
|
|
92
|
+
stringFormatNone: "Ninguno",
|
|
93
|
+
stringFormatDateTime: "Fecha-Hora",
|
|
94
|
+
stringFormatDate: "Fecha",
|
|
95
|
+
stringFormatTime: "Hora",
|
|
96
|
+
stringFormatEmail: "Correo",
|
|
97
|
+
stringFormatUri: "URI",
|
|
98
|
+
stringFormatUuid: "UUID",
|
|
99
|
+
stringFormatHostname: "Hostname",
|
|
100
|
+
stringFormatIpv4: "Dirección IPv4",
|
|
101
|
+
stringFormatIpv6: "Dirección IPv6",
|
|
102
|
+
stringAllowedValuesEnumLabel: "Valores Permitidos (enum)",
|
|
103
|
+
stringAllowedValuesEnumNone: "No hay valores restringidos",
|
|
104
|
+
stringAllowedValuesEnumAddPlaceholder: "Agregar valor permitido...",
|
|
105
|
+
stringAllowedValuesEnumAddLabel: "Agregar",
|
|
106
|
+
enumModeStatic: "Lista fija",
|
|
107
|
+
enumModeDependsOn: "Depende de propiedad",
|
|
108
|
+
enumDependsOnPlaceholder: "Seleccionar propiedad...",
|
|
109
|
+
whenPropertyEquals: "Cuando {property} = {value}",
|
|
110
|
+
stringFormatSelectPlaceholder: "Seleccionar formato",
|
|
111
|
+
stringValidationErrorLengthRange: "'Longitud Mínima' no puede ser mayor que 'Longitud Máxima'.",
|
|
112
|
+
schemaTypeArray: "Lista",
|
|
113
|
+
schemaTypeBoolean: "Sí/No",
|
|
114
|
+
schemaTypeNumber: "Número",
|
|
115
|
+
schemaTypeObject: "Objeto",
|
|
116
|
+
schemaTypeString: "Texto",
|
|
117
|
+
schemaTypeNull: "Vacío",
|
|
118
|
+
inferrerTitle: "Inferir JSON Schema",
|
|
119
|
+
inferrerDescription: "Pega tu documento JSON abajo para generar un schema a partir de él.",
|
|
120
|
+
inferrerCancel: "Cancelar",
|
|
121
|
+
inferrerGenerate: "Generar Schema",
|
|
122
|
+
inferrerErrorInvalidJson: "Formato JSON inválido. Revisa tu entrada.",
|
|
123
|
+
validatorTitle: "Validar JSON",
|
|
124
|
+
validatorDescription: "Pega tu documento JSON para validarlo contra el schema actual. La validación se hace automáticamente mientras escribes.",
|
|
125
|
+
validatorCurrentSchema: "Schema Actual:",
|
|
126
|
+
validatorContent: "Tu JSON:",
|
|
127
|
+
validatorValid: "¡El JSON es válido según el schema!",
|
|
128
|
+
validatorErrorInvalidSyntax: "Sintaxis JSON inválida",
|
|
129
|
+
validatorErrorSchemaValidation: "Error de validación del schema",
|
|
130
|
+
validatorErrorCount: "{count} errores de validación detectados",
|
|
131
|
+
validatorErrorPathRoot: "Raíz",
|
|
132
|
+
validatorErrorLocationLineAndColumn: "Línea {line}, Col {column}",
|
|
133
|
+
validatorErrorLocationLineOnly: "Línea {line}",
|
|
134
|
+
visualizerDownloadTitle: "Descargar Schema",
|
|
135
|
+
visualizerDownloadFileName: "schema.json",
|
|
136
|
+
visualizerSource: "Fuente del JSON Schema",
|
|
137
|
+
visualEditorNoFieldsHint1: "Aún no hay campos definidos",
|
|
138
|
+
visualEditorNoFieldsHint2: "Agrega tu primer campo para comenzar",
|
|
139
|
+
typeValidationErrorNegativeLength: "Los valores de longitud no pueden ser negativos.",
|
|
140
|
+
typeValidationErrorIntValue: "El valor debe ser un entero.",
|
|
141
|
+
typeValidationErrorPositive: "El valor debe ser positivo."
|
|
142
|
+
};
|
|
143
|
+
export { es };
|