RustyCMS: file-based headless CMS — API, Admin UI (content, types, assets), Docker/Caddy, image transform; only demo type and demo content in version control
Made-with: Cursor
This commit is contained in:
263
admin-ui/messages/en.json
Normal file
263
admin-ui/messages/en.json
Normal file
@@ -0,0 +1,263 @@
|
||||
{
|
||||
"Sidebar": {
|
||||
"dashboard": "Dashboard",
|
||||
"types": "Types",
|
||||
"assets": "Assets",
|
||||
"searchPlaceholder": "Search collections…",
|
||||
"searchAriaLabel": "Search collections",
|
||||
"closeMenu": "Close menu",
|
||||
"loading": "Loading…",
|
||||
"errorLoading": "Error loading collections",
|
||||
"noResults": "No results for \"{query}\""
|
||||
},
|
||||
"ContentForm": {
|
||||
"slugRequired": "Slug is required.",
|
||||
"slugInUse": "Slug already in use.",
|
||||
"slugMustStartWith": "Slug must start with \"{prefix}\".",
|
||||
"slugPrefix": "prefix",
|
||||
"slugSuffixPlaceholder": "e.g. my-campaign",
|
||||
"slugSuffixAriaLabel": "Slug suffix (prefix is fixed)",
|
||||
"slugPlaceholder": "e.g. my-post",
|
||||
"slugHint": "Lowercase letters (a-z), digits (0-9), hyphens. Spaces become hyphens.",
|
||||
"savedSuccessfully": "Saved successfully.",
|
||||
"errorSaving": "Error saving",
|
||||
"saving": "Saving…",
|
||||
"save": "Save",
|
||||
"backToList": "Back to list",
|
||||
"pleaseSelect": "— Please select —",
|
||||
"removeEntry": "Remove",
|
||||
"addEntry": "+ Add entry",
|
||||
"keyPlaceholder": "Key",
|
||||
"valuePlaceholder": "Value"
|
||||
},
|
||||
"SearchableSelect": {
|
||||
"placeholder": "— Please select —",
|
||||
"clearLabel": "— Clear selection —",
|
||||
"filterPlaceholder": "Filter…",
|
||||
"emptyLabel": "No matches"
|
||||
},
|
||||
"ReferenceField": {
|
||||
"typeLabel": "Type: {collection}",
|
||||
"typesLabel": "Types: {collections}",
|
||||
"selectType": "— Select type —",
|
||||
"newEntry": "New entry",
|
||||
"noCollection": "No reference collection in schema. Set {collectionCode} or {collectionsCode} in the type, or start the API and reload the page."
|
||||
},
|
||||
"ReferenceArrayField": {
|
||||
"typeLabel": "Type: {collection}",
|
||||
"typesLabel": "Types: {collections}",
|
||||
"componentType": "Component type",
|
||||
"selectType": "— Select type —",
|
||||
"selectFromExisting": "— Select from existing —",
|
||||
"filterPlaceholder": "Filter…",
|
||||
"emptyLabel": "No matches",
|
||||
"selectExistingAriaLabel": "Select existing entry to add",
|
||||
"moveUp": "Move up",
|
||||
"moveDown": "Move down",
|
||||
"remove": "Remove",
|
||||
"newComponent": "+ New {collection} component",
|
||||
"createNewComponent": "+ Create new component…",
|
||||
"openInNewTab": "Open in new tab; then reload this page.",
|
||||
"noCollection": "No reference collection in schema. Set {collectionCode} or {collectionsCode} in the type, or start the API and reload the page."
|
||||
},
|
||||
"MarkdownEditor": {
|
||||
"bold": "Bold",
|
||||
"italic": "Italic",
|
||||
"code": "Code",
|
||||
"link": "Link",
|
||||
"bulletList": "Bullet list",
|
||||
"bulletListButton": "• List",
|
||||
"placeholder": "Enter markdown… **bold**, *italic*, [link](url), - list",
|
||||
"preview": "Preview",
|
||||
"emptyPreview": "Empty — preview appears as you type."
|
||||
},
|
||||
"PaginationLinks": {
|
||||
"back": "Back",
|
||||
"next": "Next",
|
||||
"pageInfo": "Page {page} of {totalPages} ({total} entries)"
|
||||
},
|
||||
"DataPreviewPanel": {
|
||||
"hide": "Hide data preview",
|
||||
"show": "Data preview",
|
||||
"loading": "Loading…",
|
||||
"errorLoading": "Error loading"
|
||||
},
|
||||
"SchemaPanel": {
|
||||
"hide": "Hide schema",
|
||||
"show": "Show schema"
|
||||
},
|
||||
"SchemaAndEditBar": {
|
||||
"editSchema": "Edit schema"
|
||||
},
|
||||
"SchemaAndPreviewBar": {
|
||||
"hideSchema": "Hide schema",
|
||||
"showSchema": "Show schema",
|
||||
"editSchema": "Edit schema",
|
||||
"hidePreview": "Hide data preview",
|
||||
"showPreview": "Data preview",
|
||||
"loading": "Loading…",
|
||||
"errorLoading": "Error loading"
|
||||
},
|
||||
"ReferenceOrInlineField": {
|
||||
"reference": "Reference",
|
||||
"inline": "Inline",
|
||||
"inlineObject": "Inline object (no reference)",
|
||||
"noInlineSchema": "No inline schema. Reload or check API (useFields / collection)."
|
||||
},
|
||||
"LocaleSwitcher": {
|
||||
"label": "Language"
|
||||
},
|
||||
"ContentLocaleSwitcher": {
|
||||
"label": "Content language"
|
||||
},
|
||||
"Dashboard": {
|
||||
"title": "Dashboard",
|
||||
"subtitle": "Choose a collection to manage content.",
|
||||
"noCollections": "No collections loaded. Check that the RustyCMS API is running at {url}."
|
||||
},
|
||||
"TypesPage": {
|
||||
"title": "Types",
|
||||
"newType": "New type",
|
||||
"description": "Content types (collections). Edit the schema or delete a type. Deleting removes the type definition file; existing content entries are not removed.",
|
||||
"loading": "Loading…",
|
||||
"errorLoading": "Error loading types: {error}",
|
||||
"noTypes": "No types yet. Create one with \"New type\".",
|
||||
"colName": "Name",
|
||||
"colDescription": "Description",
|
||||
"colCategory": "Category",
|
||||
"colActions": "Actions",
|
||||
"confirmDelete": "Delete \"{name}\"?",
|
||||
"confirmDeleteFinal": "Really delete \"{name}\"? This cannot be undone.",
|
||||
"delete": "Delete",
|
||||
"yesDelete": "Yes, delete",
|
||||
"deleting": "…",
|
||||
"cancel": "Cancel",
|
||||
"edit": "Edit"
|
||||
},
|
||||
"NewTypePage": {
|
||||
"title": "Add new type",
|
||||
"description": "Creates a new content type (collection). The schema file is saved on the server at {path} and loaded via hot-reload.",
|
||||
"nameRequired": "Name is required.",
|
||||
"nameInvalid": "Name: only lowercase letters, digits and underscores.",
|
||||
"fieldRequired": "At least one field required.",
|
||||
"fieldNamesUnique": "Field names must be unique.",
|
||||
"errorCreating": "Error creating type.",
|
||||
"nameLabel": "Name",
|
||||
"namePlaceholder": "e.g. product, blog_post",
|
||||
"nameHint": "Lowercase letters, digits and underscores only.",
|
||||
"descriptionLabel": "Description",
|
||||
"categoryLabel": "Category",
|
||||
"categoryPlaceholder": "e.g. content",
|
||||
"tagsLabel": "Tags (comma-separated)",
|
||||
"tagsPlaceholder": "e.g. content, blog",
|
||||
"strictLabel": "Strict (reject unknown fields)",
|
||||
"fieldsLabel": "Fields",
|
||||
"addField": "Add field",
|
||||
"fieldNamePlaceholder": "Field name",
|
||||
"required": "Required",
|
||||
"removeField": "Remove field",
|
||||
"collectionPlaceholder": "Collection (e.g. page)",
|
||||
"fieldDescriptionPlaceholder": "Field description (optional)",
|
||||
"creating": "Creating…",
|
||||
"createType": "Create type",
|
||||
"cancel": "Cancel"
|
||||
},
|
||||
"EditTypePage": {
|
||||
"fieldRequired": "At least one field required.",
|
||||
"fieldNamesUnique": "Field names must be unique.",
|
||||
"errorSaving": "Error saving type.",
|
||||
"missingName": "Missing type name.",
|
||||
"backToTypes": "Back to Types",
|
||||
"loading": "Loading…",
|
||||
"errorLoading": "Error loading type: {error}",
|
||||
"title": "Edit type: {name}",
|
||||
"description": "Change description, category, tags, and fields. The schema file is updated on the server.",
|
||||
"nameLabel": "Name",
|
||||
"descriptionLabel": "Description",
|
||||
"categoryLabel": "Category",
|
||||
"categoryPlaceholder": "e.g. content",
|
||||
"tagsLabel": "Tags (comma-separated)",
|
||||
"tagsPlaceholder": "e.g. content, blog",
|
||||
"strictLabel": "Strict (reject unknown fields)",
|
||||
"fieldsLabel": "Fields",
|
||||
"addField": "Add field",
|
||||
"fieldNamePlaceholder": "Field name",
|
||||
"required": "Required",
|
||||
"removeField": "Remove field",
|
||||
"collectionPlaceholder": "Collection (e.g. page)",
|
||||
"fieldDescriptionPlaceholder": "Field description (optional)",
|
||||
"saving": "Saving…",
|
||||
"save": "Save",
|
||||
"cancel": "Cancel"
|
||||
},
|
||||
"ErrorBoundary": {
|
||||
"title": "Something went wrong",
|
||||
"reload": "Reload page"
|
||||
},
|
||||
"Breadcrumbs": {
|
||||
"ariaLabel": "Breadcrumb",
|
||||
"content": "Content"
|
||||
},
|
||||
"ContentListPage": {
|
||||
"title": "Entries",
|
||||
"newEntry": "New entry",
|
||||
"colActions": "Actions",
|
||||
"noEntries": "No entries.",
|
||||
"noEntriesCreate": "No entries yet. Create the first one.",
|
||||
"edit": "Edit",
|
||||
"searchPlaceholder": "Search…",
|
||||
"loading": "Loading…",
|
||||
"sortBy": "Sort by {field}",
|
||||
"sortAsc": "Ascending",
|
||||
"sortDesc": "Descending"
|
||||
},
|
||||
"ContentNewPage": {
|
||||
"breadcrumbNew": "New",
|
||||
"title": "Create new entry"
|
||||
},
|
||||
"ContentEditPage": {
|
||||
"title": "Edit entry",
|
||||
"apiLink": "API link (data preview):"
|
||||
},
|
||||
"AssetsPage": {
|
||||
"titleAll": "All assets",
|
||||
"titleRoot": "Root",
|
||||
"assetCount": "{count} image(s)",
|
||||
"upload": "Upload",
|
||||
"uploading": "Uploading…",
|
||||
"uploadedCount": "Uploaded {count} file(s).",
|
||||
"dropZoneHintRoot": "Click or drag & drop to upload to root",
|
||||
"dropZoneHintFolder": "Click or drag & drop to upload to \"{folder}\"",
|
||||
"loading": "Loading…",
|
||||
"errorLoading": "Error loading assets",
|
||||
"noAssets": "No assets here yet.",
|
||||
"urlCopied": "URL copied.",
|
||||
"copyUrl": "Copy URL",
|
||||
"confirmDelete": "Delete \"{filename}\"?",
|
||||
"confirmDeleteDesc": "This cannot be undone.",
|
||||
"yesDelete": "Yes, delete",
|
||||
"deleting": "…",
|
||||
"cancel": "Cancel",
|
||||
"deleted": "\"{filename}\" deleted.",
|
||||
"folders": "Folders",
|
||||
"all": "All",
|
||||
"root": "Root",
|
||||
"newFolder": "New folder",
|
||||
"folderNamePlaceholder": "e.g. blog",
|
||||
"folderCreated": "Folder \"{name}\" created.",
|
||||
"folderDeleted": "Folder \"{name}\" deleted.",
|
||||
"confirmDeleteFolder": "Delete folder \"{name}\"?",
|
||||
"confirmDeleteFolderDesc": "Only empty folders can be deleted.",
|
||||
"renameTitle": "Rename image",
|
||||
"renameFilenameLabel": "Filename",
|
||||
"rename": "Rename",
|
||||
"renaming": "Renaming…",
|
||||
"renamed": "\"{filename}\" renamed.",
|
||||
"copyWithTransformTitle": "Copy with transformation",
|
||||
"copyWithTransformDesc": "Create a new asset from this image with resize/crop/format. Same folder.",
|
||||
"copyWithTransformNewName": "New filename",
|
||||
"copyWithTransformCreate": "Create copy",
|
||||
"copyWithTransformDone": "Transformed copy created.",
|
||||
"creating": "Creating…"
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user