Files
Idle-Fantasy-Save-Viewer/static/locales/en.json
T
elpatron 562a229fa0 Add PWA manifest, service worker, and install hint.
Enables home-screen installation with per-viewer scope and platform-specific guidance in EN/DE.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-20 11:08:32 +02:00

301 lines
11 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"app": {
"title": "Idle Fantasy",
"subtitle": "Save Viewer",
"loading": "Loading save…"
},
"nav": {
"overview": "Overview",
"skills": "Skills",
"inventory": "Inventory",
"goals": "Goals",
"equipment": "Equipment",
"quests": "Quests",
"combat": "Combat",
"history": "History",
"backup": "Backup"
},
"settings": {
"language": "Language",
"langAuto": "Auto (browser)",
"langEn": "English",
"langDe": "Deutsch"
},
"actions": {
"importBackup": "Import game backup",
"exportViewer": "Export viewer",
"importViewer": "Import viewer",
"compare": "Compare",
"dismiss": "Dismiss"
},
"empty": {
"noSave": "No save imported. Start with: python app.py fantasyidler_save.json",
"noSaveWeb": "No save imported yet. Import a backup using the sidebar button.",
"loadError": "Failed to load: {message}",
"unknown": "Unknown",
"none": "None",
"empty": "Empty",
"noItems": "No items found",
"noSnapshots": "No snapshots yet. Import a backup.",
"noChanges": "No changes",
"pickTwoSnapshots": "Select two different snapshots."
},
"import": {
"failed": "Import failed",
"duplicate": "Backup already exists (duplicate).",
"success": "Imported: Snapshot #{id}",
"successWithNotes": "Imported: Snapshot #{id}\n\n{warnings} warning(s), {infos} note(s) see dashboard banner for details.",
"changesTitle": "Changes since last import",
"changesSummary": "Coins {coins} · Level {level} · {inv} inventory changes · {skills} skill changes",
"questsCompleted": "Story quests completed",
"slayerKills": "Slayer kills",
"dungeonRuns": "Dungeon runs",
"topInventory": "Largest inventory changes",
"topSkills": "Largest skill changes",
"titleError": "Import errors",
"titleWarning": "Import warnings",
"titleInfo": "Import notes",
"countErrors": "{count} error(s)",
"countWarnings": "{count} warning(s)",
"countInfos": "{count} info(s)",
"newFieldsSummary": "{count} new/unknown field(s) from the game",
"invalid_root": "The file is not a JSON object not a valid Idle Fantasy backup.",
"empty_save": "The save file is empty.",
"unknown_top_level": "Unknown field in backup: \"{field}\" (added by a game update?).",
"missing_field": "Expected field missing: \"{field}\" related data will be shown empty.",
"nested_json_invalid": "Field \"{field}\" could not be read as JSON raw value ignored.",
"invalid_coins": "Field \"coins\" is not numeric.",
"invalid_exported_at": "Field \"exported_at\" is not a valid timestamp.",
"missing_exported_at": "No export timestamp history comparisons may be inaccurate.",
"skill_xp_mismatch": "{count} skill(s) without XP entry (e.g. {examples}).",
"skill_level_mismatch": "{count} XP entries without skill level.",
"unparsed_nested_json": "Field \"{field}\" is still a text string JSON content could not be read.",
"invalid_type": "Field \"{field}\" has unexpected type ({type}).",
"coerced_empty_dict": "Field \"{field}\" is not an object treated as empty.",
"coerced_empty_list": "Field \"{field}\" is not a list skipped.",
"invalid_number": "Invalid number in \"{field}\"{detail}.",
"invalid_quest_entry": "Quest entry #{index} is not an object and was skipped.",
"invalid_session_entry": "Session entry #{index} is not an object and was skipped.",
"unparsed_session_frames": "Session #{index}: activity frames could not be read.",
"invalid_pets": "Field \"pets\" is not a list.",
"invalid_farming_patch": "Farming patch #{index} was skipped.",
"missing_character_name": "No character name found in save.",
"invalid_quest_ids": "Quest IDs ({label}) are not a list.",
"invalid_quest_progress": "Quest progress ({label}) is not an object."
},
"meta": {
"export": "Export",
"points": "points"
},
"kpi": {
"coins": "Coins",
"totalLevel": "Total level",
"items": "Items",
"totalQty": "Total quantity",
"goalsOpen": "Open goals"
},
"overview": {
"character": "Character",
"hp": "HP",
"activePotion": "Active potion",
"activeSpell": "Active spell",
"weaponSlot": "Weapon slot",
"blessing": "Blessing",
"sessionQueue": "Session queue",
"slayer": "Slayer",
"noSlayerTask": "No active slayer task",
"pets": "Pets",
"farming": "Farming",
"patch": "Patch {n}",
"guildRep": "Guild reputation"
},
"skills": {
"search": "Search skills…",
"sortLevel": "By level",
"sortXp": "By XP",
"sortName": "By name",
"skill": "Skill",
"level": "Level",
"progress": "Progress",
"addGoal": "Add goal",
"addGoalFor": "Add goal for {name}"
},
"inventory": {
"search": "Search items…",
"sortCategory": "By category",
"sortName": "By name",
"sortQty": "By quantity",
"highlightEquipped": "Highlight equipped",
"item": "Item",
"qty": "Qty",
"id": "ID",
"equipped": "Equipped",
"groupMeta": "{count} items · {qty} pcs",
"trend": "Trend",
"trendExpand": "Click to enlarge chart",
"trendExpandFor": "Quantity history for {name}",
"addGoal": "Add goal",
"addGoalFor": "Add goal for {name}"
},
"equipment": {
"title": "Equipment"
},
"quests": {
"story": "Story",
"daily": "Daily",
"weekly": "Weekly",
"guild": "Guild",
"filterAll": "All",
"filterOpen": "Open",
"filterDone": "Completed",
"quest": "Quest",
"progress": "Progress",
"status": "Status",
"done": "Done",
"open": "Open"
},
"combat": {
"enemyKills": "Enemy kills",
"dungeonRuns": "Dungeon runs",
"runs": "{count} runs",
"recentActivity": "Recent activity",
"activeSessions": "Active sessions",
"sessionDone": "done",
"sessionRunning": "running"
},
"history": {
"loading": "Loading history…",
"coinsChart": "Coins over time",
"levelChart": "Total level over time",
"snapshotCompare": "Snapshot comparison",
"allSnapshots": "All snapshots",
"character": "Character",
"file": "File",
"inventoryChanges": "Inventory changes ({count})",
"skillChanges": "Skill changes ({count})",
"delta": "Delta",
"xpDelta": "XP delta",
"skillLevelChart": "Top skills over time",
"delete": "Delete",
"deleteSnapshot": "Delete snapshot",
"deleteSnapshotConfirm": "Really delete this snapshot?",
"deleteSnapshotFailed": "Could not delete snapshot",
"coinsSummary": "Coins: {delta} · Total level: {levelDelta}"
},
"search": {
"global": "Search items, skills and goals…",
"noResults": "No results",
"type": {
"item": "Item",
"skill": "Skill",
"goal": "Goal"
}
},
"category": {
"currency": "Currency",
"ores_mining": "Ores & Mining",
"bars_smithing": "Bars & Smithing",
"wood_planks": "Wood & Planks",
"runes": "Runes",
"raw_food": "Raw Food",
"cooked_food": "Cooked Food",
"seeds_farming": "Seeds & Farming",
"melee_weapons": "Melee Weapons",
"ranged": "Ranged",
"magic": "Magic",
"armor": "Armor",
"bones_hides": "Bones & Hides",
"gems_jewelry": "Gems & Jewelry",
"potions_brews": "Potions & Brews",
"misc": "Misc"
},
"viewer": {
"landingLead": "Create your personal save viewer. No account just a private link to your data.",
"gameLink": "Idle Fantasy on GitHub",
"featureDashboard": "Skills, inventory, quests and history",
"featureUpload": "Import backups in the browser",
"featurePrivate": "Your data stays in your viewer only",
"create": "Create my viewer",
"creating": "Creating viewer…",
"createFailed": "Could not create viewer",
"warningTitle": "Important",
"warningBody": "There is no login. Your viewer is only accessible via its unique link. Bookmark or save the link without it, your data cannot be recovered.",
"linkTitle": "Your personal link",
"linkWarning": "Save this link there is no login. Without it, your data is lost.",
"copyLink": "Copy link",
"copied": "Copied!",
"copyPrompt": "Copy your viewer link:"
},
"pwa": {
"hintTitle": "Install as app",
"hintBody": "Install this viewer for quick access from your home screen or app list.",
"hintIos": "Tap Share, then \"Add to Home Screen\".",
"hintAndroid": "Open the browser menu and tap \"Install app\" or \"Add to Home screen\".",
"hintDesktop": "Use the install icon in the address bar or the browser menu → Install app.",
"install": "Install",
"installed": "App installed open it from your home screen or app list."
},
"viewerDb": {
"title": "Viewer backup",
"helpTitle": "What is this?",
"helpBody": "The viewer stores imported game backups, history charts, and goals in a SQLite database on the server. Export downloads that database as a backup. Import restores it and replaces all current viewer data. This is not the same as importing a game save (.json).",
"gameBackupNote": "To add a new game save snapshot, use Import game backup in the sidebar.",
"exportHint": "Download the SQLite database with all snapshots, history, and goals",
"importConfirm": "All current viewer data (snapshots, history, goals) will be replaced by the imported .db file. Continue?",
"importSuccess": "Viewer restored: {snapshots} snapshot(s), {goals} goal(s).",
"importFailed": "Could not import viewer database",
"invalidFile": "Please select a .db file (viewer export)."
},
"goals": {
"filterAll": "All",
"filterOpen": "Open",
"filterDone": "Completed",
"createGroup": "Create group",
"createGroupPrompt": "Group name:",
"groupProgress": "{completed} / {total} done",
"ungrouped": "Ungrouped",
"item": "Item",
"progress": "Progress",
"status": "Status",
"actions": "Actions",
"open": "Open",
"done": "Done",
"delete": "Delete",
"deleteGroup": "Delete group",
"deleteGroupConfirm": "Delete group \"{name}\"? Goals will be kept as ungrouped.",
"deleteConfirm": "Delete this goal?",
"clearCompleted": "Remove completed",
"empty": "No goals yet. Add goals from the Inventory or Skills tab.",
"loadError": "Failed to load goals",
"createFailed": "Could not create goal",
"groupCreateFailed": "Could not create group",
"modalTitle": "Add item goal",
"modalTitleSkill": "Add skill goal",
"cancel": "Cancel",
"targetQty": "Target quantity",
"targetLevel": "Target level",
"mode": "Mode",
"modeAbsolute": "Absolute (total qty/level)",
"modeRelative": "Relative (since creation)",
"modeRelativeHint": "Relative goal progress since creation",
"typeSkill": "Skill",
"currentLevel": "Current: level {level}",
"missing": "{qty} still needed",
"missingShort": "{qty}",
"etaSnapshots": "~{n} import(s)",
"hasGoal": "Open goal",
"total": "total",
"renameGroup": "Rename",
"renameGroupPrompt": "New group name:",
"selectGroup": "Group",
"noGroup": "No group",
"newGroup": "New group…",
"newGroupName": "New group name",
"currentQty": "Current: {qty}",
"completedBannerTitle": "Goals reached",
"completedItem": "{group}{name}: {current} / {target}",
"completedItemGroup": "{name}: ",
"groupCompleted": "Group completed: {name}"
}
}