Persist lineage in PostgreSQL, seed documented edges, and keep timeline/tree consumers API-backed with a static fallback. Co-authored-by: Cursor <cursoragent@cursor.com>
72 lines
2.9 KiB
JSON
72 lines
2.9 KiB
JSON
{
|
|
"title": "Influence links",
|
|
"back": "← Back to gallery",
|
|
"openMovementLinks": "Movement links →",
|
|
"tabList": "List",
|
|
"tabImport": "Import",
|
|
"tabGraph": "Graph",
|
|
"loadFailed": "Failed to load influences",
|
|
"searchPlaceholder": "Search artist, painting, source…",
|
|
"refresh": "Refresh",
|
|
"loading": "Loading…",
|
|
"loadingParse": "Reading file…",
|
|
"loadingPreview": "Validating influence links…",
|
|
"loadingCommit": "Importing links into the database…",
|
|
"loadingSave": "Saving link…",
|
|
"addEdge": "Add link",
|
|
"cancelAdd": "Cancel",
|
|
"total": "{{count}} links",
|
|
"filtered": "filtered by artist",
|
|
"clearFilter": "Clear artist filter",
|
|
"subjectPainting": "Subject painting",
|
|
"searchPainting": "Search painting…",
|
|
"sourceType": "Source type",
|
|
"typeArtist": "Artist",
|
|
"typePainting": "Painting",
|
|
"typeMovement": "Movement",
|
|
"sourceEntity": "Source entity",
|
|
"searchSource": "Search source…",
|
|
"notes": "Notes",
|
|
"saveEdge": "Save link",
|
|
"addRequiresIds": "Pick a subject painting and a source entity",
|
|
"colSubject": "Subject",
|
|
"colSource": "Source",
|
|
"colType": "Type",
|
|
"colNotes": "Notes",
|
|
"colActions": "Actions",
|
|
"colAction": "Action",
|
|
"colDirection": "Direction",
|
|
"delete": "Delete",
|
|
"confirmDelete": "Delete this influence link?",
|
|
"noEdges": "No influence links match.",
|
|
"stepUpload": "1. Upload",
|
|
"stepMapping": "2. Map columns",
|
|
"stepPreview": "3. Validate",
|
|
"stepDone": "4. Done",
|
|
"uploadHelp": "Choose a CSV, JSON, or XLSX file with influence rows (e.g. Inputs/artist_influences_web_sources.xlsx).",
|
|
"parseFailed": "Failed to parse file",
|
|
"previewFailed": "Failed to build preview",
|
|
"commitFailed": "Failed to commit import",
|
|
"rowsMissing": "File rows were not returned (too large). Use a smaller file (≤2000 rows).",
|
|
"fileInfo": "{{name}} · {{rows}} rows · {{format}}",
|
|
"sheet": "Sheet",
|
|
"preset": "Mapping preset",
|
|
"column": "Column",
|
|
"role": "Role",
|
|
"sample": "Sample",
|
|
"backStep": "Back",
|
|
"runPreview": "Validate & preview",
|
|
"previewCounts": "Will create {{create}} · skip {{skip}} · row errors {{errors}} · proposals {{proposals}}",
|
|
"warnings": "{{count}} warnings",
|
|
"commitImport": "Import {{count}} links",
|
|
"commitSummary": "Imported {{inserted}} links ({{skipped}} already present or skipped).",
|
|
"alreadyImportedWarn": "Already imported {{when}} by {{who}} ({{match}}: {{file}}). Commit is blocked unless you force re-import.",
|
|
"alreadyImportedBlock": "This file or identical data was already imported. Enable “Import anyway” to force, or cancel.",
|
|
"forceImport": "Import anyway (force — may recreate skipped edges only; existing edges stay unique)",
|
|
"matchFile": "same file bytes",
|
|
"matchData": "same mapped data",
|
|
"searchArtist": "Search artist for neighborhood graph…",
|
|
"graphEmpty": "Select an artist to visualize influence neighbors.",
|
|
"graphStats": "{{nodes}} nodes · {{edges}} edges"
|
|
}
|