{
    "admin.home.access.everyList": "Every tier list and note",
    "admin.home.access.everything": "Everything",
    "admin.home.access.note.superAdmin": "Change anyone’s role and grants from People.",
    "admin.home.access.note.tierListAdmin": "Roles and language grants are set by a super-admin.",
    "admin.home.access.note.tierListEditor": "Publishing needs Publish access on that list.",
    "admin.home.access.note.translator": "Need another language, or Edit instead of View? Ask a super-admin.",
    "admin.home.access.notes": "Operator notes",
    "admin.home.access.siteRole": "Site role",
    "admin.home.access.title": "What you can do",
    "admin.home.cleanup.cancel": "Cancel",
    "admin.home.cleanup.confirm": "{count, plural, one {Remove grant} other {Remove grants}}",
    "admin.home.cleanup.desc": "{count, plural, one {This language grant belongs to an account that no longer exists, so no one loses access.} other {These language grants belong to accounts that no longer exist, so no one loses access.}}",
    "admin.home.cleanup.title": "{count, plural, one {Remove # leftover grant?} other {Remove # leftover grants?}}",
    "admin.home.cleanup.toast.done": "{count, plural, one {Removed # leftover grant} other {Removed # leftover grants}}",
    "admin.home.cleanup.toast.partial": "{count, plural, one {Couldn't remove # grant} other {Couldn't remove # grants}}",
    "admin.home.cleanup.toast.partial.desc": "The rest were removed. Try again from Home.",
    "admin.home.field.cons": "Cons",
    "admin.home.field.notes": "Notes",
    "admin.home.field.pros": "Pros",
    "admin.home.field.summary": "Summary",
    "admin.home.field.tags": "Tags",
    "admin.home.field.trivia": "Trivia",
    "admin.home.focus.empty": "Nothing is waiting on you right now.",
    "admin.home.focus.loading": "Loading your work…",
    "admin.home.focus.locale.area": "Translations · {level}",
    "admin.home.focus.locale.areaViewOnly": "Translations · View only",
    "admin.home.focus.locale.browse": "Browse",
    "admin.home.focus.locale.complete": "Complete",
    "admin.home.focus.locale.continue": "Continue translating",
    "admin.home.focus.locale.review": "Review",
    "admin.home.focus.locale.sub": "{stale} out of date · {missing} missing",
    "admin.home.focus.notes.area": "Operator notes",
    "admin.home.focus.notes.cta": "Start writing",
    "admin.home.focus.notes.progress": "{filled} / {total}",
    "admin.home.focus.tierList.area": "Tier list · {level}",
    "admin.home.focus.tierList.edit": "Edit",
    "admin.home.focus.tierList.publish": "Edit or publish",
    "admin.home.focus.tierList.sub": "{tiers, plural, one {# tier} other {# tiers}} · {placements, plural, one {# placement} other {# placements}} · updated {when}",
    "admin.home.head.kicker": "Welcome back, {nickname}",
    "admin.home.head.sub.tierListEditor": "Operator notes and the tier lists you have access to.",
    "admin.home.head.sub.translator": "Only your languages are shown. Pick up where you left off.",
    "admin.home.head.titleOwn": "My work",
    "admin.home.head.titleStaff": "Inbox",
    "admin.home.notes.sub.names": "Includes {names}.",
    "admin.home.notes.sub.namesMore": "Includes {names} and {rest} more.",
    "admin.home.notes.sub.none": "Their pages show no guidance yet.",
    "admin.home.notes.sub.sixStars": "Includes {count, plural, one {# six-star} other {# six-stars}}: {names}.",
    "admin.home.notes.sub.sixStarsMore": "Includes {count, plural, one {# six-star} other {# six-stars}}: {names} and {rest} more.",
    "admin.home.notes.title": "{count, plural, one {# operator} other {# operators}} with no notes",
    "admin.home.queue.area.notes": "Operator notes",
    "admin.home.queue.area.people": "People",
    "admin.home.queue.area.system": "System",
    "admin.home.queue.area.translations": "Translations",
    "admin.home.queue.desc": "{count, plural, one {# item} other {# items}}, most urgent first",
    "admin.home.queue.descEmpty": "Nothing waiting",
    "admin.home.queue.empty": "All clear. Nothing is waiting on an admin.",
    "admin.home.queue.loading": "Checking what needs attention…",
    "admin.home.queue.missing.cta": "Translate",
    "admin.home.queue.missing.sub": "{language} is public, so visitors see English here.",
    "admin.home.queue.missing.title": "{count, plural, one {# {language} string} other {# {language} strings}} not translated",
    "admin.home.queue.notes.cta": "Write",
    "admin.home.queue.orphans.cta": "Clean up",
    "admin.home.queue.orphans.sub": "The accounts are gone, so nobody can use these grants. Cleaning up removes them.",
    "admin.home.queue.orphans.title": "{count, plural, one {# language grant belongs to a deleted account} other {# language grants belong to deleted accounts}}",
    "admin.home.queue.stale.cta": "Review",
    "admin.home.queue.stale.sub": "The English changed after these were translated.",
    "admin.home.queue.stale.title": "{count, plural, one {# {language} string} other {# {language} strings}} out of date",
    "admin.home.queue.system.cta": "Open",
    "admin.home.queue.system.sub": "Check database and cache.",
    "admin.home.queue.system.title": "A service is degraded",
    "admin.home.queue.title": "Needs attention",
    "admin.home.recent.deletedAccount": "Deleted account",
    "admin.home.recent.empty": "No saved changes yet.",
    "admin.home.recent.note": "{actor} · {operator} · {field}",
    "admin.home.recent.noteOwn": "{operator} · {field}",
    "admin.home.recent.titleOwn": "Your recent changes",
    "admin.home.recent.titleStaff": "Recent changes",
    "admin.home.recent.translation": "{actor} · {language} · {key}",
    "admin.home.recent.translationOwn": "{language} · {key}",
    "admin.home.tile.placements": "Placements",
    "admin.home.tile.placements.unit": "across all lists",
    "admin.home.tile.players": "Players",
    "admin.home.tile.players.unit": "{count} staff",
    "admin.home.tile.rosters": "Rosters synced",
    "admin.home.tile.rosters.unit": "{percent} of players",
    "admin.home.tile.tierLists": "Tier lists · active",
    "admin.home.tile.tierLists.unit": "of {total}",
    "admin.notes.chips.query": "“{q}”",
    "admin.notes.chips.sortedRarity": "Sorted by rarity",
    "admin.notes.detail.back": "← All operators",
    "admin.notes.detail.meta": "{rarity}★ · {id}",
    "admin.notes.detail.metaUpdated": "{rarity}★ · {id} · last updated {when}",
    "admin.notes.detail.missing": "Missing: {fields}",
    "admin.notes.detail.none": "Pick an operator to edit their notes.",
    "admin.notes.detail.reset": "Reset",
    "admin.notes.detail.save": "Save",
    "admin.notes.detail.saveNext": "Save & next",
    "admin.notes.detail.unsaved": "Unsaved changes",
    "admin.notes.fieldName.cons": "Cons",
    "admin.notes.fieldName.notes": "Notes",
    "admin.notes.fieldName.pros": "Pros",
    "admin.notes.fieldName.summary": "Summary",
    "admin.notes.fieldName.tags": "Tags",
    "admin.notes.fieldName.trivia": "Trivia",
    "admin.notes.filters.noTags": "No tags in use yet.",
    "admin.notes.filters.rarity": "Rarity",
    "admin.notes.filters.rarityChip": "{rarity}★",
    "admin.notes.filters.sort": "Sort by",
    "admin.notes.filters.tags": "Tags",
    "admin.notes.form.cons": "Cons",
    "admin.notes.form.consPlaceholder": "Where do they fall short?",
    "admin.notes.form.notes": "Notes",
    "admin.notes.form.notesPlaceholder": "Deeper guidance, usage tips, synergies.",
    "admin.notes.form.pros": "Pros",
    "admin.notes.form.prosPlaceholder": "What's strong about this operator?",
    "admin.notes.form.removeTag": "Remove tag",
    "admin.notes.form.removeTagNamed": "Remove tag {tag}",
    "admin.notes.form.summary": "Summary · shown on the operator card",
    "admin.notes.form.summaryCount": "{count} / {limit}",
    "admin.notes.form.summaryPlaceholder": "One line on what this operator is for",
    "admin.notes.form.tagPlaceholder": "Add tag, press Enter",
    "admin.notes.form.tags": "Tags",
    "admin.notes.form.trivia": "Trivia",
    "admin.notes.form.triviaPlaceholder": "Lore, fun facts.",
    "admin.notes.head.kicker": "Manage",
    "admin.notes.head.sub": "Guidance shown on each operator's page. Use Save & next to work through the ones not done yet.",
    "admin.notes.head.title": "Operator notes",
    "admin.notes.list.loadFailed": "Couldn't load the operators.",
    "admin.notes.list.meta": "{rarity}★",
    "admin.notes.list.metaTags": "{rarity}★ · {tags}",
    "admin.notes.list.noMatch": "No operators match.",
    "admin.notes.list.retry": "Try again",
    "admin.notes.list.search": "Search operators",
    "admin.notes.mode.label": "Editor view",
    "admin.notes.mode.preview": "Preview",
    "admin.notes.mode.write": "Write",
    "admin.notes.previewPane.nothing": "Nothing written yet.",
    "admin.notes.revisions.added": "added",
    "admin.notes.revisions.changed": "changed",
    "admin.notes.revisions.cleared": "cleared",
    "admin.notes.revisions.empty": "Nothing saved for this operator yet.",
    "admin.notes.revisions.loadFailed": "Couldn't load the revision history.",
    "admin.notes.revisions.title": "Revision history",
    "admin.notes.revisions.titleCount": "Revision history · {count, plural, one {# change} other {# changes}}",
    "admin.notes.revisions.unknownActor": "Deleted account",
    "admin.notes.sortBy.name": "Name",
    "admin.notes.sortBy.rarity": "Rarity",
    "admin.notes.sortBy.recent": "Recently updated",
    "admin.notes.status.all": "All",
    "admin.notes.status.empty": "Empty",
    "admin.notes.status.filled": "Done",
    "admin.notes.status.incomplete": "Incomplete",
    "admin.notes.toasts.failed": "Couldn't save the note",
    "admin.notes.toasts.saved": "Note saved",
    "admin.notes.toasts.savedDesc": "Updated operator notes for {name}.",
    "admin.notes.toasts.savedNext": "{name}. Next up: {next}.",
    "admin.shell.compact.sections": "{count, plural, one {# section} other {# sections}}",
    "admin.shell.kicker": "Admin",
    "admin.shell.nav.inbox": "Inbox",
    "admin.shell.nav.label": "Admin sections",
    "admin.shell.nav.myTierLists": "My tier lists",
    "admin.shell.nav.myWork": "My work",
    "admin.shell.nav.notes": "Operator notes",
    "admin.shell.nav.people": "People",
    "admin.shell.nav.system": "System",
    "admin.shell.nav.tierLists": "Tier lists",
    "admin.shell.nav.translations": "Translations",
    "admin.shell.role.superAdmin": "Super-admin",
    "admin.shell.role.tierListAdmin": "Tier list admin",
    "admin.shell.role.tierListEditor": "Tier list editor",
    "admin.shell.role.translator": "Translator",
    "admin.shell.role.user": "Player",
    "admin.shell.sheet.description": "{nickname} · {role}",
    "admin.shell.sheet.title": "Admin",
    "admin.system.audit.actor.deleted": "Deleted account",
    "admin.system.audit.count": "{count, plural, one {Showing {shown} of {total} edit} other {Showing {shown} of {total} edits}}",
    "admin.system.audit.empty.desc": "Operator note and translation edits show up here as soon as someone saves one.",
    "admin.system.audit.empty.title": "No edits yet",
    "admin.system.audit.error.notes": "Couldn't load the operator note history: {message}",
    "admin.system.audit.error.translations": "Couldn't load the translation history: {message}",
    "admin.system.audit.field.all": "All fields",
    "admin.system.audit.field.cons": "Cons",
    "admin.system.audit.field.label": "Filter by field",
    "admin.system.audit.field.notes": "Notes",
    "admin.system.audit.field.pros": "Pros",
    "admin.system.audit.field.summary": "Summary",
    "admin.system.audit.field.text": "Text",
    "admin.system.audit.field.trivia": "Trivia",
    "admin.system.audit.kind.added": "added",
    "admin.system.audit.kind.changed": "changed",
    "admin.system.audit.kind.cleared": "cleared",
    "admin.system.audit.loadMore": "Load more",
    "admin.system.audit.noMatch.desc": "Try another search or field, or load older edits.",
    "admin.system.audit.noMatch.title": "No edits match",
    "admin.system.audit.retry": "Try again",
    "admin.system.audit.search.label": "Search the edit history",
    "admin.system.audit.search.placeholder": "Search edits",
    "admin.system.audit.source.all": "All",
    "admin.system.audit.source.notes": "Operator notes",
    "admin.system.audit.source.translations": "Translations",
    "admin.system.audit.target.translation": "{language} · {key}",
    "admin.system.audit.th.change": "Change",
    "admin.system.audit.th.field": "Field",
    "admin.system.audit.th.what": "What",
    "admin.system.audit.th.when": "When",
    "admin.system.audit.th.who": "Who",
    "admin.system.audit.untracked": "Role, grant and publish changes aren't logged yet.",
    "admin.system.head.checkNow": "Check now",
    "admin.system.head.kicker": "Operate",
    "admin.system.head.sub": "Service health, the edit history and site languages, in one place.",
    "admin.system.head.title": "System",
    "admin.system.health.cacheBackend.memory": "in memory",
    "admin.system.health.cacheBackend.redis": "Redis",
    "admin.system.health.checked": "Checked {when} · refreshes every 30s",
    "admin.system.health.detail.bothDown": "Most pages will fail until the database is back.",
    "admin.system.health.detail.cacheDown": "Reads fall through to the database, so the site is slower but still works.",
    "admin.system.health.detail.databaseDown": "Anything that reads or saves accounts, notes or tier lists will fail until it's back.",
    "admin.system.health.detail.degraded": "Both services answered, but the backend still marks itself degraded. Check its logs.",
    "admin.system.health.detail.unreachable": "The health check itself failed, so the numbers below may be out of date.",
    "admin.system.health.game.desc": "What the backend currently has in memory. Drift here means the asset import is out of date.",
    "admin.system.health.game.enemies": "Enemies",
    "admin.system.health.game.modules": "Modules",
    "admin.system.health.game.operators": "Operators",
    "admin.system.health.game.skills": "Skills",
    "admin.system.health.game.skins": "Skins",
    "admin.system.health.game.stages": "Stages",
    "admin.system.health.game.title": "Game data loaded",
    "admin.system.health.game.zones": "Zones",
    "admin.system.health.site.placements": "Placements",
    "admin.system.health.site.rosters": "Rosters synced",
    "admin.system.health.site.tierListsActive": "Tier lists · active",
    "admin.system.health.site.tierListsTotal": "Tier lists · total",
    "admin.system.health.site.title": "Site data",
    "admin.system.health.site.versions": "Published versions",
    "admin.system.health.statsError": "Couldn't load these counts.",
    "admin.system.health.status.bothDown": "Database and cache aren't responding",
    "admin.system.health.status.cacheDown": "Cache isn't responding",
    "admin.system.health.status.checking": "Checking services…",
    "admin.system.health.status.databaseDown": "Database isn't responding",
    "admin.system.health.status.degraded": "The backend reports a problem",
    "admin.system.health.status.healthy": "All services healthy",
    "admin.system.health.status.unreachable": "Couldn't reach the backend",
    "admin.system.health.tile.cache": "Cache · {backend}",
    "admin.system.health.tile.database": "Database",
    "admin.system.health.tile.roundTrip": "Round-trip",
    "admin.system.health.unit.ms": "ms",
    "admin.system.languages.add": "Add language",
    "admin.system.languages.desc": "Hidden languages can be translated but don't appear in the language switcher. Only super-admins can change this.",
    "admin.system.languages.empty": "No languages configured yet.",
    "admin.system.languages.err.codeExists": "{code} already exists. Edit that row instead.",
    "admin.system.languages.err.codeRequired": "Enter a code. It becomes the URL prefix.",
    "admin.system.languages.err.codeShape": "Use two lowercase letters, optionally a region, like ja or pt-BR. Other shapes never route.",
    "admin.system.languages.err.englishNameRequired": "Enter the English name.",
    "admin.system.languages.err.fallbackCycle": "That choice makes the fallbacks loop back to this language. Pick another.",
    "admin.system.languages.err.fallbackSelf": "A language can't fall back to itself.",
    "admin.system.languages.err.fallbackSource": "The source language can't fall back to anything.",
    "admin.system.languages.err.gamedataServer": "Pick one of the listed game regions.",
    "admin.system.languages.err.nativeNameRequired": "Enter the native name. Visitors see it in the switcher.",
    "admin.system.languages.err.sortOrder": "Use a whole number, 0 or more.",
    "admin.system.languages.fallback.chain": "{code}, then English",
    "admin.system.languages.fallback.english": "English",
    "admin.system.languages.form.cancel": "Cancel",
    "admin.system.languages.form.code": "Code",
    "admin.system.languages.form.codeHint": "The language tag, which is also the URL prefix: two lowercase letters, optionally a region, like ja or pt-BR.",
    "admin.system.languages.form.codeLocked": "The code can't change once the language exists. Add a new language instead.",
    "admin.system.languages.form.englishName": "English name",
    "admin.system.languages.form.englishNameHint": "How the language is listed in the admin panel.",
    "admin.system.languages.form.englishNamePlaceholder": "Japanese",
    "admin.system.languages.form.fallback": "Falls back to",
    "admin.system.languages.form.fallbackHint": "Where an untranslated string looks next, before English.",
    "admin.system.languages.form.fallbackHintSource": "The source language is the end of every fallback chain, so it has none.",
    "admin.system.languages.form.fallbackNone": "Straight to English",
    "admin.system.languages.form.fixFields": "Fix the highlighted fields first.",
    "admin.system.languages.form.nativeName": "Native name",
    "admin.system.languages.form.nativeNameHint": "The label visitors see in the language switcher.",
    "admin.system.languages.form.nativeNamePlaceholder": "日本語",
    "admin.system.languages.form.save": "Save changes",
    "admin.system.languages.form.server": "Game data from",
    "admin.system.languages.form.serverHint": "Which Arknights client supplies operator, skill and stage text under this language. Translating the site doesn't translate game data; this does.",
    "admin.system.languages.form.sortOrder": "Sort order",
    "admin.system.languages.form.sortOrderHint": "Lower numbers come first in the language switcher.",
    "admin.system.languages.loadError": "Couldn't load the languages: {message}",
    "admin.system.languages.menu.edit": "Edit language",
    "admin.system.languages.menu.label": "More actions for {name}",
    "admin.system.languages.noFallback": "—",
    "admin.system.languages.public.label": "Show {name} in the language switcher",
    "admin.system.languages.server.bili": "Bilibili (CN)",
    "admin.system.languages.server.cn": "Mainland China (CN)",
    "admin.system.languages.server.en": "Global (EN)",
    "admin.system.languages.server.jp": "Japan (JP)",
    "admin.system.languages.server.kr": "Korea (KR)",
    "admin.system.languages.server.tw": "Taiwan (TW)",
    "admin.system.languages.sheet.addDesc": "New languages start hidden. Turn on Public in the table once enough of the site is translated.",
    "admin.system.languages.sheet.addTitle": "Add a language",
    "admin.system.languages.sheet.editDesc": "Changes reach the site as soon as you save.",
    "admin.system.languages.sheet.editTitle": "Edit {name}",
    "admin.system.languages.source": "Source",
    "admin.system.languages.sourceLanguage": "Source language",
    "admin.system.languages.th.actions": "Actions",
    "admin.system.languages.th.code": "Code",
    "admin.system.languages.th.fallback": "Falls back to",
    "admin.system.languages.th.language": "Language",
    "admin.system.languages.th.public": "Public",
    "admin.system.languages.th.server": "Game data from",
    "admin.system.languages.th.translated": "Translated",
    "admin.system.languages.title": "Site languages",
    "admin.system.languages.toast.created": "Language added",
    "admin.system.languages.toast.enabled.desc": "{name} now appears in the language switcher.",
    "admin.system.languages.toast.enabled.title": "Language enabled",
    "admin.system.languages.toast.hidden.desc": "{name} is hidden from visitors.",
    "admin.system.languages.toast.hidden.title": "Language hidden",
    "admin.system.languages.toast.saveFailed": "Couldn't save the language",
    "admin.system.languages.toast.saved": "Language saved",
    "admin.system.languages.toast.savedDesc": "{name} ({code}) is up to date.",
    "admin.system.languages.toast.toggleFailed": "Couldn't change {name}",
    "admin.system.languages.translated.unknown": "No data",
    "admin.system.tabs.audit": "Edit history",
    "admin.system.tabs.health": "Health",
    "admin.system.tabs.languages": "Languages",
    "admin.system.toast.failed.title": "Health check failed",
    "admin.system.toast.healthy.desc": "Database and cache responded.",
    "admin.system.toast.healthy.title": "Health check passed",
    "admin.system.toast.unhealthy.title": "Health check found a problem",
    "admin.tierLists.access.changeLevel": "Change {name}’s level on {title}",
    "admin.tierLists.access.desc": "View → Edit → Publish → Admin. Tier list admins and super-admins already have access to every list.",
    "admin.tierLists.access.empty": "No one holds a per-list grant yet.",
    "admin.tierLists.access.grant": "Grant access",
    "admin.tierLists.access.grantedBy": "{name} · {when}",
    "admin.tierLists.access.loadError": "Couldn’t load the grants. Try again in a moment.",
    "admin.tierLists.access.profile": "Profile",
    "admin.tierLists.access.revoke": "Revoke",
    "admin.tierLists.access.th.actions": "Actions",
    "admin.tierLists.access.th.granted": "Granted",
    "admin.tierLists.access.th.level": "Level",
    "admin.tierLists.access.th.list": "Tier list",
    "admin.tierLists.access.th.player": "Player",
    "admin.tierLists.access.title": "Per-list grants",
    "admin.tierLists.access.toast.grantFailed": "Couldn’t create the grant",
    "admin.tierLists.access.toast.granted": "Grant created",
    "admin.tierLists.access.toast.levelChanged": "Level changed",
    "admin.tierLists.access.toast.levelDesc": "{name} now has {level} on {title}.",
    "admin.tierLists.access.toast.levelFailed": "Couldn’t change the level",
    "admin.tierLists.access.toast.revokeFailed": "Couldn’t revoke access",
    "admin.tierLists.access.toast.revoked": "Access revoked",
    "admin.tierLists.access.toast.revokedDesc": "{name} on {title}",
    "admin.tierLists.access.uid": "UID {uid}",
    "admin.tierLists.access.unknownGranter": "Unknown",
    "admin.tierLists.access.unnamed": "Unnamed player",
    "admin.tierLists.cancel": "Cancel",
    "admin.tierLists.delete.body": "The list, its tiers and every published version are removed for everyone. This can’t be undone.",
    "admin.tierLists.delete.failed": "Couldn’t delete the list",
    "admin.tierLists.delete.submit": "Delete list",
    "admin.tierLists.delete.title": "Delete {title}?",
    "admin.tierLists.delete.toast": "List deleted",
    "admin.tierLists.flair.desc": "The flair shows as a coloured tag on {title} across the site.",
    "admin.tierLists.flair.failed": "Couldn’t change the flair",
    "admin.tierLists.flair.none": "No flair",
    "admin.tierLists.flair.title": "Change flair",
    "admin.tierLists.flair.toast": "Flair updated",
    "admin.tierLists.grant.desc": "The grant only takes effect while the player has a staff role.",
    "admin.tierLists.grant.level": "Level",
    "admin.tierLists.grant.list": "Tier list",
    "admin.tierLists.grant.listPlaceholder": "Choose a list",
    "admin.tierLists.grant.noMatches": "No players match.",
    "admin.tierLists.grant.player": "Player",
    "admin.tierLists.grant.playerPlaceholder": "Nickname or UID",
    "admin.tierLists.grant.submit": "Grant {level}",
    "admin.tierLists.grant.title": "Grant access to a tier list",
    "admin.tierLists.head.kicker": "Manage",
    "admin.tierLists.head.newList": "New official list",
    "admin.tierLists.head.subOwn": "The tier lists you’ve been granted. Your level on each list decides whether you can publish.",
    "admin.tierLists.head.subStaff": "Lists marked official appear in the site’s Official rail. Publishing saves a new version that visitors see.",
    "admin.tierLists.head.titleOwn": "My tier lists",
    "admin.tierLists.head.titleStaff": "Official tier lists",
    "admin.tierLists.level.admin": "Admin",
    "admin.tierLists.level.edit": "Edit",
    "admin.tierLists.level.publish": "Publish",
    "admin.tierLists.level.view": "View",
    "admin.tierLists.lists.community": "Community",
    "admin.tierLists.lists.edit": "Edit",
    "admin.tierLists.lists.empty.noAccess": "You don’t have access to any tier lists yet.",
    "admin.tierLists.lists.empty.noLists": "No lists of this type yet.",
    "admin.tierLists.lists.empty.noMatch": "Nothing matches.",
    "admin.tierLists.lists.filter.all": "All · {count}",
    "admin.tierLists.lists.filter.hot": "Trending · {count}",
    "admin.tierLists.lists.loadError": "Couldn’t load the tier lists. Try again in a moment.",
    "admin.tierLists.lists.more": "More actions for {title}",
    "admin.tierLists.lists.publish": "Publish",
    "admin.tierLists.lists.searchLabel": "Search tier lists",
    "admin.tierLists.lists.searchPlaceholder": "Title, slug or flair",
    "admin.tierLists.lists.th.actions": "Actions",
    "admin.tierLists.lists.th.flair": "Flair",
    "admin.tierLists.lists.th.placements": "Placements",
    "admin.tierLists.lists.th.tiers": "Tiers",
    "admin.tierLists.lists.th.title": "Title",
    "admin.tierLists.lists.th.trending": "Trending",
    "admin.tierLists.lists.th.updated": "Updated",
    "admin.tierLists.lists.th.views": "Views 24h",
    "admin.tierLists.lists.trending": "Trending",
    "admin.tierLists.lists.type.all": "All lists",
    "admin.tierLists.lists.type.community": "Community lists",
    "admin.tierLists.lists.type.label": "List type",
    "admin.tierLists.lists.type.official": "Official lists",
    "admin.tierLists.lists.unlisted": "Not in the public listing",
    "admin.tierLists.lists.view": "View",
    "admin.tierLists.menu.changeFlair": "Change flair",
    "admin.tierLists.menu.delete": "Delete list",
    "admin.tierLists.menu.viewPublic": "View public page",
    "admin.tierLists.new.desc": "Creates an empty draft. Add tiers and flair in the editor.",
    "admin.tierLists.new.descLabel": "Description",
    "admin.tierLists.new.descPlaceholder": "Optional. Shown under the title on the list’s page.",
    "admin.tierLists.new.failed": "Couldn’t create the list",
    "admin.tierLists.new.nameLabel": "Title",
    "admin.tierLists.new.namePlaceholder": "Endgame DPS rankings",
    "admin.tierLists.new.submit": "Create and open editor",
    "admin.tierLists.new.title": "New official list",
    "admin.tierLists.new.toast": "Draft created",
    "admin.tierLists.new.toastDesc": "Add tiers and flair in the editor.",
    "admin.tierLists.publish.changelogLabel": "What changed",
    "admin.tierLists.publish.changelogPlaceholder": "Optional. Shown in version history.",
    "admin.tierLists.publish.confirm": "Publish now",
    "admin.tierLists.publish.failed": "Couldn’t publish",
    "admin.tierLists.publish.prompt": "Publish v{version} of {title}. What changed?",
    "admin.tierLists.publish.promptPending": "Publish a new version of {title}. What changed?",
    "admin.tierLists.publish.toast": "Version published",
    "admin.tierLists.publish.toastDesc": "{title} v{version}",
    "admin.tierLists.save": "Save",
    "admin.tierLists.tabs.access": "Access",
    "admin.tierLists.tabs.lists": "Lists",
    "admin.translations.area.all": "All areas",
    "admin.translations.area.label": "Area",
    "admin.translations.args.anythingElse": "anything else",
    "admin.translations.args.colApplies": "Applies to",
    "admin.translations.args.colEnglish": "English",
    "admin.translations.args.colForm": "Form",
    "admin.translations.args.exact": "exactly {value}",
    "admin.translations.args.formMissing": "Missing",
    "admin.translations.args.kind.date": "date",
    "admin.translations.args.kind.number": "number",
    "admin.translations.args.kind.plain": "text",
    "admin.translations.args.kind.plural": "plural",
    "admin.translations.args.kind.select": "choice",
    "admin.translations.args.kind.selectordinal": "ordinal",
    "admin.translations.args.kind.time": "time",
    "admin.translations.args.pluralCount": "{count, plural, one {# form} other {# forms}}",
    "admin.translations.args.pluralIntro": "The site picks one of these wordings by the number. {language} uses {count}.",
    "admin.translations.args.selectIntro": "The site picks one of these wordings by which case applies. Keep every case the English has.",
    "admin.translations.done.desc": "Switch language above, or look at every string.",
    "admin.translations.done.showAll": "Show all strings",
    "admin.translations.done.title": "All caught up in {language}",
    "admin.translations.editor.back": "All strings",
    "admin.translations.editor.clear": "Clear translation",
    "admin.translations.editor.context": "Context:",
    "admin.translations.editor.diffNote": "Struck-through words were removed from the English; underlined words were added.",
    "admin.translations.editor.discard": "Discard edits",
    "admin.translations.editor.english": "English",
    "admin.translations.editor.forms": "Wordings",
    "admin.translations.editor.history": "History",
    "admin.translations.editor.insertArg": "Insert {placeholder} at the cursor",
    "admin.translations.editor.keep": "Keep these exactly as written. Click one to insert it:",
    "admin.translations.editor.lastSaved": "last saved {when}",
    "admin.translations.editor.markCurrent": "Mark as current",
    "admin.translations.editor.missing": "{count, plural, one {Add {names}, including both braces, before saving. The site fills it in with a real value.} other {Add {names}, including the braces, before saving. The site fills them in with real values.}}",
    "admin.translations.editor.more": "More actions",
    "admin.translations.editor.never": "never translated",
    "admin.translations.editor.placeholder": "Write the translation",
    "admin.translations.editor.placeholderReadOnly": "You have View access on this language, so this is read-only.",
    "admin.translations.editor.position": "{index} of {total}",
    "admin.translations.editor.revisions": "{count, plural, one {# revision} other {# revisions}}",
    "admin.translations.editor.saveNext": "Save & next",
    "admin.translations.editor.skip": "Skip",
    "admin.translations.editor.title": "{english} · {native}",
    "admin.translations.editor.translation": "Translation",
    "admin.translations.editor.writtenAgainst": "Your translation was written against:",
    "admin.translations.editor.writtenAgainstUnknown": "The English changed after this was translated, but the earlier version wasn't recorded. Re-read it and save to confirm.",
    "admin.translations.filter.all": "All",
    "admin.translations.filter.label": "Status",
    "admin.translations.filter.stale": "Out of date",
    "admin.translations.filter.todo": "To do",
    "admin.translations.filter.translated": "Done",
    "admin.translations.filter.untranslated": "Missing",
    "admin.translations.head.kicker": "Manage",
    "admin.translations.head.sub": "Pick a language, then work through what's out of date or missing. {shortcut} saves and moves to the next string.",
    "admin.translations.head.title": "Translations",
    "admin.translations.history.by": "by {actor}",
    "admin.translations.history.cleared": "(cleared)",
    "admin.translations.history.deletedAccount": "Deleted account",
    "admin.translations.history.desc": "{key} · {language}",
    "admin.translations.history.empty": "Nobody has changed this translation yet.",
    "admin.translations.history.error": "Couldn't load the history.",
    "admin.translations.history.revert": "Revert to this",
    "admin.translations.history.title": "History",
    "admin.translations.history.wasEmpty": "(was untranslated)",
    "admin.translations.list.emptyAll": "No strings match.",
    "admin.translations.list.emptyFiltered": "Nothing left here for {language}.",
    "admin.translations.list.error": "Couldn't load these strings.",
    "admin.translations.list.more": "Load more",
    "admin.translations.list.retry": "Try again",
    "admin.translations.list.search": "Search…",
    "admin.translations.list.searchLabel": "Search strings",
    "admin.translations.list.shown": "{shown} of {total} shown",
    "admin.translations.locale.complete": "Complete",
    "admin.translations.locale.hidden": "Hidden",
    "admin.translations.locale.line": "{done} done · {stale} out of date · {missing} missing",
    "admin.translations.locale.none": "There are no languages to translate yet.",
    "admin.translations.locale.pct": "{pct}%",
    "admin.translations.locale.viewOnly": "View only",
    "admin.translations.noMatch.desc": "Try another search, or look in every area.",
    "admin.translations.noMatch.reset": "Clear search",
    "admin.translations.noMatch.title": "No strings match",
    "admin.translations.status.stale": "Out of date",
    "admin.translations.status.translated": "Done",
    "admin.translations.status.untranslated": "Missing",
    "admin.translations.toast.clearFailed": "Couldn't clear the translation",
    "admin.translations.toast.cleared": "Translation cleared",
    "admin.translations.toast.cleared.desc": "{key} shows English in {language} again.",
    "admin.translations.toast.revertFailed": "Couldn't revert the translation",
    "admin.translations.toast.reverted": "Translation reverted",
    "admin.translations.toast.reverted.desc": "{key} is back to an earlier version.",
    "admin.translations.toast.saveFailed": "Couldn't save the translation",
    "admin.translations.toast.saved": "Translation saved",
    "admin.translations.toast.saved.desc": "{key} · {language}",
    "admin.users.access.allLists": "All tier lists, notes",
    "admin.users.access.editor": "Operator notes, {lists}",
    "admin.users.access.editorNoLists": "Operator notes",
    "admin.users.access.everything": "Everything",
    "admin.users.access.translatorNone": "Nothing yet",
    "admin.users.access.warned": "⚠ {access}",
    "admin.users.access.withLanguages": "{access}, {languages}",
    "admin.users.col.canEdit": "Can edit",
    "admin.users.col.grade": "Grade",
    "admin.users.col.level": "Lv",
    "admin.users.col.player": "Player",
    "admin.users.col.role": "Role",
    "admin.users.col.score": "Score",
    "admin.users.col.server": "Server",
    "admin.users.count": "{shown} of {total} shown",
    "admin.users.deletedAccount": "Deleted account",
    "admin.users.empty": "No one matches that search.",
    "admin.users.error": "Couldn't load people. {reason}",
    "admin.users.filter.all": "Everyone",
    "admin.users.filter.label": "Filter by role",
    "admin.users.filter.players": "Players",
    "admin.users.filter.staff": "Staff",
    "admin.users.filter.translators": "Translators",
    "admin.users.head.kicker": "Manage",
    "admin.users.head.sub": "Players with synced profiles. Search by nickname or UID, then open someone to see and change everything they can access.",
    "admin.users.head.title": "People",
    "admin.users.level.admin": "Admin",
    "admin.users.level.edit": "Edit",
    "admin.users.level.publish": "Publish",
    "admin.users.level.view": "View",
    "admin.users.loading": "Loading people…",
    "admin.users.more": "Show more",
    "admin.users.role.desc.superAdmin": "Full access, including roles, grants and site languages.",
    "admin.users.role.desc.tierListAdmin": "Edits and publishes every tier list and operator note. No per-list grants needed.",
    "admin.users.role.desc.tierListEditor": "Edits operator notes and the tier lists granted below.",
    "admin.users.role.desc.translator": "Can open Translations, but only edits the languages granted below.",
    "admin.users.role.desc.user": "Public site, plus any language granted below.",
    "admin.users.search.label": "Search people",
    "admin.users.search.placeholder": "Nickname or UID",
    "admin.users.server.all": "All",
    "admin.users.server.label": "Filter by server",
    "admin.users.sheet.deleted.body": "This account was deleted. Its leftover language grants can be removed from Home.",
    "admin.users.sheet.footer": "Demotions apply on their next request. Promotions wait until they sign in again.",
    "admin.users.sheet.grade": "Grade {grade}",
    "admin.users.sheet.grant": "+ Grant",
    "admin.users.sheet.grantedAt": "Granted {when}",
    "admin.users.sheet.grantedBy": "Granted by {name} · {when}",
    "admin.users.sheet.loadingGrants": "Loading grants…",
    "admin.users.sheet.loc.empty": "No language grants.",
    "admin.users.sheet.loc.viaRole": "Can edit every language as a super-admin.",
    "admin.users.sheet.meta": "UID {uid} · {server} · Lv {level}",
    "admin.users.sheet.metaNoLevel": "UID {uid} · {server}",
    "admin.users.sheet.notFound.body": "This account isn't in the list. Search for them by nickname or UID to open their details.",
    "admin.users.sheet.notFound.title": "Person not found",
    "admin.users.sheet.picker.level": "Level",
    "admin.users.sheet.picker.loading": "Loading tier lists…",
    "admin.users.sheet.picker.noLists": "Every official tier list is already granted.",
    "admin.users.sheet.picker.noLocales": "Every language is already granted.",
    "admin.users.sheet.picker.on": "Grant {level} on:",
    "admin.users.sheet.privateProfile": "Private profile",
    "admin.users.sheet.profile": "Public profile",
    "admin.users.sheet.publicProfile": "Public profile",
    "admin.users.sheet.revoke": "Revoke",
    "admin.users.sheet.roleSelf": "You can't change your own role.",
    "admin.users.sheet.score.items": "Items",
    "admin.users.sheet.score.operators": "Operators",
    "admin.users.sheet.score.skins": "Skins",
    "admin.users.sheet.score.total": "Total score",
    "admin.users.sheet.section.locales": "Translation languages",
    "admin.users.sheet.section.role": "Site-wide role",
    "admin.users.sheet.section.tierLists": "Tier lists",
    "admin.users.sheet.tl.empty": "No per-list grants.",
    "admin.users.sheet.tl.viaRole": "Edits and publishes every tier list through their role. No grants needed.",
    "admin.users.toast.grantCreated": "Grant created",
    "admin.users.toast.grantFailed": "Couldn't create the grant",
    "admin.users.toast.locGranted.desc": "{name} can now {level, select, view {view} edit {edit} publish {publish} other {administer}} {language}.",
    "admin.users.toast.locRevoked": "Grant revoked",
    "admin.users.toast.revokeFailed": "Couldn't revoke the grant",
    "admin.users.toast.revoked.desc": "{name} on {target}",
    "admin.users.toast.roleFailed": "Couldn't change the role",
    "admin.users.toast.roleUpdated": "Role updated",
    "admin.users.toast.roleUpdated.desc": "{name} is now {role}.",
    "admin.users.toast.tlGranted.desc": "{name} can now {level, select, view {view} edit {edit} publish {publish} other {administer}} {title}.",
    "admin.users.toast.tlRevoked": "Access revoked",
    "admin.users.uid": "UID {uid}",
    "admin.users.warn.translatorNoEdit": "{name} has the Translator role but no Edit grant on any language, so they can't change anything yet.",
    "announcements.detail.back": "All news",
    "announcements.detail.bannerAlt": "Banner for {title}",
    "announcements.detail.gone.body": "It was taken off the board. The rest of the news is still here.",
    "announcements.detail.gone.title": "This notice is gone",
    "announcements.detail.imageOnly": "This notice is just the banner above.",
    "announcements.detail.official": "Open the official notice",
    "announcements.detail.pick": "Pick a notice to read it here.",
    "announcements.empty.body": "The board is empty right now, or we haven't read it yet. Check back in a few minutes.",
    "announcements.empty.filtered.body": "Nothing matches that. Try another word or category.",
    "announcements.empty.filtered.clear": "Clear filters",
    "announcements.empty.filtered.title": "No matches",
    "announcements.empty.title": "Nothing on the board",
    "announcements.error.body": "Something went wrong reaching the server. Give it another try.",
    "announcements.error.retry": "Try again",
    "announcements.error.title": "Couldn't load the news",
    "announcements.filter.all": "All",
    "announcements.filter.label": "Category",
    "announcements.group.activity": "Events",
    "announcements.group.system": "Notices",
    "announcements.list.checked": "Checked {time}",
    "announcements.list.count": "{count, plural, one {# notice} other {# notices}}",
    "announcements.list.label": "News on this server",
    "announcements.list.markAllRead": "Mark all read",
    "announcements.list.unread": "Unread",
    "announcements.page.description": "The in-game notice board, straight from the official servers. Checked every few minutes.",
    "announcements.page.title": "Game news",
    "announcements.search.label": "Search game news by title",
    "announcements.search.placeholder": "Search news",
    "announcements.server.label": "Server",
    "archives.dossiers.chip.experience": "Experience {min} to {max} yrs",
    "archives.dossiers.chip.height": "Height {min} to {max} cm",
    "archives.dossiers.col.assimilation": "Assimilation",
    "archives.dossiers.col.birthplace": "Birthplace",
    "archives.dossiers.col.experience": "Experience",
    "archives.dossiers.col.height": "Height",
    "archives.dossiers.col.infection": "Infection",
    "archives.dossiers.col.links": "Links",
    "archives.dossiers.col.operator": "Operator",
    "archives.dossiers.col.race": "Race",
    "archives.dossiers.col.records": "Records",
    "archives.dossiers.col.stories": "Stories",
    "archives.dossiers.count": "{shown} of {total} dossiers",
    "archives.dossiers.empty": "No dossiers match.",
    "archives.dossiers.filter.aria": "Dossier filters",
    "archives.dossiers.filter.experience": "Combat experience",
    "archives.dossiers.filter.height": "Height",
    "archives.dossiers.filter.infection": "Infection status",
    "archives.dossiers.filter.profile": "Profile",
    "archives.dossiers.filter.rangeCm": "{min} to {max} cm",
    "archives.dossiers.filter.rangeYears": "{min} to {max} yrs",
    "archives.dossiers.search": "Search operators…",
    "archives.dossiers.sortBy": "Sort by {column}",
    "archives.exam.arts": "Arts",
    "archives.exam.combat": "Combat",
    "archives.exam.mobility": "Mobility",
    "archives.exam.resilience": "Resilience",
    "archives.exam.step.excellent": "Excellent",
    "archives.exam.step.flawed": "Flawed",
    "archives.exam.step.normal": "Normal",
    "archives.exam.step.outstanding": "Outstanding",
    "archives.exam.step.standard": "Standard",
    "archives.exam.strength": "Strength",
    "archives.exam.tactics": "Tactics",
    "archives.file.alsoOn": "Also on",
    "archives.file.assimilation": "Cell assimilation",
    "archives.file.birthday": "Date of birth",
    "archives.file.birthplace": "Place of birth",
    "archives.file.blood": "Blood crystal density",
    "archives.file.close": "Close the file",
    "archives.file.codeName": "Code name",
    "archives.file.combat": "Combat experience",
    "archives.file.exam": "Physical exam",
    "archives.file.examMissing": "{count, plural, one {# of the six ratings isn't on file, so that corner sits at the centre.} other {# of the six ratings aren't on file, so those corners sit at the centre.}}",
    "archives.file.examNote": "Rhodes Island's own assessment scale, not a combat stat.",
    "archives.file.extra": "Also on file",
    "archives.file.faction": "Faction",
    "archives.file.gender": "Gender",
    "archives.file.height": "Height",
    "archives.file.hiddenFaction": "Secretly also",
    "archives.file.kicker": "Personnel file",
    "archives.file.linked": "Linked in the Archives",
    "archives.file.manufacturer": "Manufacturer",
    "archives.file.missing": "There's no personnel file for this one.",
    "archives.file.numberNote": "{shared} of the {holders} characters numbered {prefix} are {faction}. The game prints the number but never says what the letters stand for, so this is counted from its own records, not looked up.",
    "archives.file.numberNoteNoFaction": "{holders, plural, one {# character carries} other {# characters carry}} the letters {prefix}, and no one faction holds most of them.",
    "archives.file.operatorPage": "Operator page",
    "archives.file.race": "Race",
    "archives.file.records": "Operator Records",
    "archives.file.redacted": "Redacted",
    "archives.file.scenes": "Shares the most scenes with",
    "archives.file.scenesNote": "Counted from the story scripts: a story counts when both have a line in it. It undercounts, since someone who's there without speaking doesn't show up.",
    "archives.file.showOnNetwork": "Show on the network",
    "archives.file.speaks": "{count, plural, one {Speaks in # story} other {Speaks in # stories}}",
    "archives.file.speaksLess": "Show fewer",
    "archives.file.speaksMore": "Show all {count}",
    "archives.file.speaksNone": "No lines in any story script.",
    "archives.file.subtitle": "{profession} · {branch}",
    "archives.hidden.bandHeading": "{shown} to {hidden}",
    "archives.hidden.bandLabel": "{count, plural, one {# operator} other {# operators}} with a {shown} card {count, plural, one {is} other {are}} secretly {hidden}",
    "archives.hidden.cardShows": "Card shows",
    "archives.hidden.cardShowsGroup": "Card shows {name}",
    "archives.hidden.chartHint": "Tab to a faction or a band, Enter to pick it, Escape to clear.",
    "archives.hidden.chartLabel": "Secret factions flow chart",
    "archives.hidden.clear": "Clear",
    "archives.hidden.found": "Found {count}",
    "archives.hidden.kicker": "Personnel records, restricted",
    "archives.hidden.lede": "The game counts these operators in a faction their card never names. It never says so in game, but talents and modules that reach a faction reach them too. Some of these are story spoilers.",
    "archives.hidden.noMatch": "Nobody by that name has a secret faction.",
    "archives.hidden.nodeLabel": "{name}, {count, plural, one {# operator} other {# operators}}",
    "archives.hidden.pick": "Pick a faction on either side, or a band, to list who's on it.",
    "archives.hidden.s1.blurb": "Left, the faction the card shows. Right, the one the game also counts. Each band is as thick as the people on it.",
    "archives.hidden.s1.title": "Secret factions",
    "archives.hidden.s2.blurb": "Not secrets. The card shows a smaller group inside the nation, like Pinus Sylvestris inside Kazimierz.",
    "archives.hidden.s2.title": "Nations behind the card",
    "archives.hidden.search": "Find an operator…",
    "archives.hidden.searchCount": "{shown} of {total} memberships",
    "archives.hidden.secretlyAlso": "Secretly also",
    "archives.hidden.secretlyGroup": "Secretly {name}",
    "archives.hidden.stat.factions": "Secret factions",
    "archives.hidden.stat.links": "Secret memberships",
    "archives.hidden.stat.nations": "Nations behind a card",
    "archives.hidden.stat.operators": "Operators",
    "archives.infection.clear": "Not infected",
    "archives.infection.infected": "Infected",
    "archives.infection.unclear": "Stated, but unclear",
    "archives.infection.unstated": "Not recorded",
    "archives.network.breadcrumb": "Network location",
    "archives.network.emptyChart": "The game doesn't place anyone on this chart.",
    "archives.network.exitFullscreen": "Leave full screen",
    "archives.network.fit": "Reset view",
    "archives.network.forceCounts": "{people, plural, one {# person} other {# people}} · {hexes, plural, one {# hex} other {# hexes}}",
    "archives.network.forceLabel": "{name}: {people, plural, one {# person} other {# people}}, {hexes, plural, one {# hex} other {# hexes}}",
    "archives.network.fullscreen": "Fill the screen",
    "archives.network.hintChart": "Drag to move, scroll to zoom, pick someone to open their file",
    "archives.network.hintMap": "Drag to move, scroll to zoom, pick a faction to open its chart",
    "archives.network.noMatch": "Nobody on the network by that name",
    "archives.network.notImported": "The network isn't in this server's data yet. It shows up with the next content update.",
    "archives.network.rosterCount": "{count, plural, one {# member} other {# members}}",
    "archives.network.rosters": "Rosters",
    "archives.network.rostersHint": "Show everyone on this chart, faction by faction",
    "archives.network.search": "Find an operator…",
    "archives.network.searchLabel": "Find an operator on the network",
    "archives.network.territories": "Territories",
    "archives.network.visiting": "Visiting",
    "archives.network.zoomIn": "Zoom in",
    "archives.network.zoomOut": "Zoom out",
    "archives.numbers.andOthers": "{names} and {count, plural, one {# other} other {# others}}",
    "archives.numbers.assimilation": "Cell assimilation",
    "archives.numbers.average": "Average",
    "archives.numbers.birthplace": "Place of birth",
    "archives.numbers.blood": "Blood crystal density",
    "archives.numbers.combat": "Combat experience",
    "archives.numbers.days": "The most shared birthdays",
    "archives.numbers.daysNote": "The same birthdays as the month card, counted by exact day. Out of the {dated} files that give a date: the ones that answer with a word aren't ranked.",
    "archives.numbers.exam": "The physical exam",
    "archives.numbers.examNote": "Rhodes Island's own assessment, not a combat stat. A file that prints blocks or two ratings where one should be is counted as unrecorded instead of read as one.",
    "archives.numbers.gender": "Gender",
    "archives.numbers.height": "Height",
    "archives.numbers.heightByRace": "Average height by race",
    "archives.numbers.heightByRaceNote": "Every dot sits on the same scale, {min} at the left to {max} at the right. The number after it is how many files the average covers. Races with fewer than {threshold} files are left out, since one operator isn't a range.",
    "archives.numbers.highest": "Highest",
    "archives.numbers.histogramLabel": "{from} to {to}: {count}",
    "archives.numbers.infection": "Infection status",
    "archives.numbers.infectionByBirthplace": "Infection by place of birth",
    "archives.numbers.infectionByNote": "The gap between the two colours is files that say something neither reading can settle. Groups of fewer than {threshold} are left out.",
    "archives.numbers.infectionByRace": "Infection by race",
    "archives.numbers.infectionNote": "The game writes this as a sentence, not a flag. Anything worded so no keyword can safely read it is counted as unclear instead of guessed.",
    "archives.numbers.jump": "Jump to a section",
    "archives.numbers.kicker": "Personnel records, counted up",
    "archives.numbers.lede": "Counted across {total} operator files, straight from each one. Nothing here is estimated, and a file that leaves a field blank is counted as blank.",
    "archives.numbers.lowest": "Lowest",
    "archives.numbers.manufactured": "Built, not born",
    "archives.numbers.manufacturedTotal": "of {total} files name a manufacturer",
    "archives.numbers.months": "Birthdays by month",
    "archives.numbers.notRecorded": "Not recorded",
    "archives.numbers.prefixNoFaction": "No one faction holds most of the {prefix} numbers.",
    "archives.numbers.prefixNote": "Open a row to see who carries it. A prefix is matched with a faction only where most of its holders show that faction, which is why several read Rhodes Island. What the letters stand for isn't recorded anywhere, so it isn't guessed here.",
    "archives.numbers.prefixShare": "{shared} of the {holders} characters numbered {prefix} show {faction}.",
    "archives.numbers.prefixes": "Personnel number prefixes",
    "archives.numbers.race": "Race",
    "archives.numbers.ratings": "How often each rating is given",
    "archives.numbers.ratingsNote": "The scale has {steps} steps and {top} of them cover {share} of every rating given. {topWord} is given {topCount, plural, one {# time} other {# times}} in all.",
    "archives.numbers.ratingsTotal": "ratings handed out across the six columns of {files} files",
    "archives.numbers.recordedFor": "Recorded for {count, plural, one {# operator} other {# operators}}",
    "archives.numbers.s1.blurb": "Height and service, as each file puts it.",
    "archives.numbers.s1.title": "Physical record",
    "archives.numbers.s2.blurb": "Who they are and where they're from.",
    "archives.numbers.s2.title": "Origin",
    "archives.numbers.s3.blurb": "Infection, blood crystal density and cell assimilation.",
    "archives.numbers.s3.title": "Originium",
    "archives.numbers.s4.blurb": "Rhodes Island's own six-part exam.",
    "archives.numbers.s4.title": "Assessment",
    "archives.numbers.s5.blurb": "Everything else the files record.",
    "archives.numbers.s5.title": "The paperwork",
    "archives.numbers.showAll": "Show all {count}",
    "archives.numbers.showFewer": "Show fewer",
    "archives.numbers.stat.birthplaces": "Places of birth",
    "archives.numbers.stat.files": "Files counted",
    "archives.numbers.stat.prefixes": "Number prefixes",
    "archives.numbers.stat.races": "Races named",
    "archives.numbers.unrecorded": "Unrecorded",
    "archives.page.description": "Personnel files, the network the game draws between operators, and the whole roster counted up.",
    "archives.page.error": "Couldn't load this part of the Archives.",
    "archives.page.loading": "Loading…",
    "archives.page.title": "Archives",
    "archives.spoilers.off": "Hidden factions are spoilers, so they stay tucked away. Turn on {setting} in Settings to see them.",
    "archives.spoilers.setting": "Enable spoilers",
    "archives.tabs.dossiers": "Dossiers",
    "archives.tabs.hidden": "Hidden Factions",
    "archives.tabs.label": "Archives sections",
    "archives.tabs.network": "Network",
    "archives.tabs.numbers": "By the Numbers",
    "archives.unit.years": "{count, plural, one {# year} other {# years}}",
    "changelog.activity.aria": "Commits per day over the last {days} days. Busiest day {label} with {count} commits.",
    "changelog.activity.aria.noDay": "n/a",
    "changelog.activity.bar": "{label}: {count, plural, one {# commit} other {# commits}}",
    "changelog.activity.busiest": "Busiest",
    "changelog.activity.title": "Commit activity",
    "changelog.commit.breaking": "Breaking",
    "changelog.commit.details": "Details",
    "changelog.commit.viewOnGitHub": "View {sha} on GitHub",
    "changelog.commitType.chore": "Chore",
    "changelog.commitType.docs": "Docs",
    "changelog.commitType.feature": "Feature",
    "changelog.commitType.fix": "Fix",
    "changelog.commitType.other": "Update",
    "changelog.commitType.perf": "Perf",
    "changelog.commitType.refactor": "Refactor",
    "changelog.commitType.revert": "Revert",
    "changelog.commitType.style": "Style",
    "changelog.commitType.test": "Test",
    "changelog.dialog.allUpdates": "All updates",
    "changelog.dialog.allUpdates.missed": "All updates ({count} more you missed)",
    "changelog.dialog.alsoInUpdate": "Also in this update",
    "changelog.dialog.gotIt": "Got it",
    "changelog.error.body": "We couldn't reach GitHub to fetch the latest commits. This is usually a temporary network hiccup or an API rate limit - try again in a moment.",
    "changelog.error.home": "Return home",
    "changelog.error.retry": "Try again",
    "changelog.error.title": "Couldn't load the changelog",
    "changelog.error.unexpected": "An unexpected error occurred.",
    "changelog.list.empty": "No release notes written yet. The Commits tab has the raw history.",
    "changelog.note.2026-09-10.hrefLabel": "Browse operators",
    "changelog.note.2026-09-10.item.1": "Added changelog notifications.",
    "changelog.note.2026-09-10.item.2": "Added build statistics.",
    "changelog.note.2026-09-10.item.3": "Display breakpoints and percentages for mastery/module levels.",
    "changelog.note.2026-09-10.item.4": "Operator skills/modules default to what is most used.",
    "changelog.note.2026-09-10.item.5": "Operator grades were computed from the wrong baseline. Scores across the roster have shifted.",
    "changelog.note.2026-09-10.item.6": "Profile rosters no longer play E2 dynamic art over an operator who has not reached E2.",
    "changelog.note.2026-09-10.item.7": "Check-in dates and Reclamation Algorithm scoring.",
    "changelog.note.2026-09-10.lead": "Based on community statistics, operators now display what users build for masteries and modules. More bug fixes and grading have been improved.",
    "changelog.note.2026-09-10.title": "Build statistics",
    "changelog.note.2026-09-16.hrefLabel": "Open the planner",
    "changelog.note.2026-09-16.item.1": "Added release & event planner feature.",
    "changelog.note.2026-09-16.item.2": "Added translation support.",
    "changelog.note.2026-09-16.item.3": "Improved/fixed base optimizer (daily LMD, control center, perception).",
    "changelog.note.2026-09-16.item.4": "Improved dynamic illustration.",
    "changelog.note.2026-09-16.item.5": "Workflow and security fixes.",
    "changelog.note.2026-09-16.lead": "A new release and event planner forecasts when upcoming operators, events, and skins arrive on the global server, so you can plan your pulls ahead of time. Translations have also started rolling out.",
    "changelog.note.2026-09-16.title": "Release & event planner",
    "changelog.note.2026-09-17-2.hrefLabel": "See the leaderboard",
    "changelog.note.2026-09-17-2.item.1": "Integrated Strategies scoring counted some runs incorrectly; the scoring is now correct.",
    "changelog.note.2026-09-17-2.item.2": "All users have been regraded. Grades and leaderboard positions have been recomputed from the corrected scores.",
    "changelog.note.2026-09-17-2.lead": "A bug in how Integrated Strategies runs were scored has been found and fixed. Every account has been regraded with the corrected scoring, so your Roguelike subscore, composite score and grade may differ from what you saw before.",
    "changelog.note.2026-09-17-2.title": "Integrated Strategies regrade",
    "changelog.note.2026-09-17-3.hrefLabel": "Open appearance settings",
    "changelog.note.2026-09-17-3.item.1": "Appearance setting: show Latin names for CN-only operators. Applies to the operator list, operator pages, the planner and the search palette.",
    "changelog.note.2026-09-17-3.item.2": "The search palette now includes CN-only operators and matches their Latin name as strongly as any other name.",
    "changelog.note.2026-09-17-3.lead": "Operators that have not reached the global server yet now show under the Latin-script name the game gives them, so 予愿安洁莉娜 reads as Angelina the Mellow Wish. It is an appearance setting, on by default, and search finds these operators by either name.",
    "changelog.note.2026-09-17-3.title": "Latin names for CN-only operators",
    "changelog.note.2026-09-17.hrefLabel": "Open the pull planner",
    "changelog.note.2026-09-17.item.1": "Added a pull planner: budget one pool of rolls across upcoming banners and see which goals you can actually afford.",
    "changelog.note.2026-09-17.item.2": "Pull odds are computed exactly, and cover every guarantee the game ships: soft and hard pity, rate-up guarantees, and the Limited spark.",
    "changelog.note.2026-09-17.item.3": "Rosters can be sorted by investment, scoring each operator against its own ceiling rather than against the roster.",
    "changelog.note.2026-09-17.item.4": "Signing in now asks whether to keep your game credentials with a \"Keep me synced\" choice, and declining deletes anything an earlier sign-in stored.",
    "changelog.note.2026-09-17.item.5": "Settings now has a single Account section in place of separate Profile and Account & data panels.",
    "changelog.note.2026-09-17.item.6": "Planner events read as their in-game names instead of raw tags, a banner matched only by date says so, and the calendar keeps its month header and legend in view while you scroll.",
    "changelog.note.2026-09-17.item.7": "First sign-in no longer fails with \"Failed to fetch user data\", and signing in on mobile no longer signs you straight back out.",
    "changelog.note.2026-09-17.item.8": "The roster's view mode and your chosen profile tab stay where you left them.",
    "changelog.note.2026-09-17.item.9": "Removed the leaderboard's Skins sort, which ranked every player at 0.0%.",
    "changelog.note.2026-09-17.lead": "The planner's Pulls tab is live. It holds one ledger of your rolls across every upcoming banner, prices each goal against the pity you will actually be carrying when that banner lands, and shows what committing early to one banner costs you at the next. Login, roster and settings fixes from Discord feedback ship alongside it.",
    "changelog.note.2026-09-17.title": "Pull planner",
    "changelog.note.2026-09-18.hrefLabel": "Open the pull planner",
    "changelog.note.2026-09-18.item.1": "The roster fits more operators per row at every width, and three per row on any phone rather than two on some and three on others.",
    "changelog.note.2026-09-18.item.10": "When a message's English is edited, its translation now shows the old and new wording word by word, instead of only being marked out of date.",
    "changelog.note.2026-09-18.item.11": "The translation editor explains a message's placeholders: which plural forms your language needs, which numbers each one covers, and the English wording for each.",
    "changelog.note.2026-09-18.item.12": "Korean, Japanese and Chinese fell back to a mismatched typeface in small headings, and carried letter-spacing meant for the Latin alphabet that pushed the characters apart.",
    "changelog.note.2026-09-18.item.13": "The appearance switch's labels no longer break mid-word in a language whose word for 'Dark' is wider than the button.",
    "changelog.note.2026-09-18.item.14": "The leaderboard's Top movers heading no longer runs into the column label beside it when it is translated into something longer.",
    "changelog.note.2026-09-18.item.2": "Orundum, Originite Prime, permits and certificates carry their own icons in the pull planner, and its smallest labels have been enlarged.",
    "changelog.note.2026-09-18.item.3": "The pull planner's goals say what they measure: a specific rate-up, any rate-up, six copies of one. On a banner with more than two rate-ups the old wording claimed something the estimate never covered.",
    "changelog.note.2026-09-18.item.4": "The Spark and Guarantee buttons ask for what you actually have to spend, with the banner's own free pulls already subtracted.",
    "changelog.note.2026-09-18.item.5": "Margins, page headings and the wording for players are consistent across the site; the leaderboard, search and profiles all say 'players' now.",
    "changelog.note.2026-09-18.item.6": "Promotion ranks, potential ranks and mastery badges were nearly invisible on the light theme. They are legible again, and larger on phones.",
    "changelog.note.2026-09-18.item.7": "Stepping an operator's potential in the pull planner no longer stalls for about a second before the numbers move.",
    "changelog.note.2026-09-18.item.8": "A banner's Clear button now clears the operators picked on it as well as the pulls, and a banner with no art of its own no longer borrows an unrelated event's picture or hides half its rate-up operators.",
    "changelog.note.2026-09-18.item.9": "Profile, settings and tier-list pages no longer scroll sideways by a few pixels on a phone.",
    "changelog.note.2026-09-18.lead": "The roster fits more operators per row at every width, and its promotion, potential and mastery badges are legible on the light theme again. The pull planner's goals say what they measure, its currencies carry the game's own icons, and setting a potential no longer stalls before the numbers move. Margins and page headings are now shared across the site. Korean, Japanese and Chinese render in a matching typeface throughout, labels that used to break mid-word hold together, and the translation editor now explains a message's plural forms and shows what changed when its English moves.",
    "changelog.note.2026-09-18.title": "Improved: Readability and pull planner",
    "changelog.note.2026-09-19-2.item.1": "Every route of the API is documented at /docs, and the document itself is at /api/openapi.json: 166 paths and 183 operations. Both sit outside the rate limiter, so reading the docs costs you none of your request budget.",
    "changelog.note.2026-09-19-2.item.10": "A banner row in the pull planner printed its start date twice on the same line.",
    "changelog.note.2026-09-19-2.item.11": "In the release planner, the event list and the detail panel beside it scroll on their own instead of moving the whole page, and the list now runs to the bottom of the screen rather than stopping short.",
    "changelog.note.2026-09-19-2.item.2": "Pull targets in the release planner fold away, so a banner row can be read without its full list of goals.",
    "changelog.note.2026-09-19-2.item.3": "Skin previews in the release planner are sized to match the rest of the site, and the note explaining where auto-translated names come from moved into the toggle's tooltip.",
    "changelog.note.2026-09-19-2.item.4": "Two trading posts were crewed one after the other against a single gold supply, so the first took the strongest squad and the second was left selling bars nobody was making. They are crewed as a pair now, judged on what the pair actually earns. On one measured account that is 42.9k LMD a day against 39.5k.",
    "changelog.note.2026-09-19-2.item.5": "Waai Fu's Cooperative Will and Snowsant's Heavenly Reward read five times the room they sit in and so always hit their own cap. They now pay per full step of what their roommates' own skills provide. One room the game shows at 72 was being read as 77.",
    "changelog.note.2026-09-19-2.item.6": "A shift that rests an operator no longer claims the facility bonus that operator provides, so a rotation is priced against the operators actually seated in it.",
    "changelog.note.2026-09-19-2.item.7": "58 outfits the store sells at 15 Originium Prime were priced at 18, so a plan that picked several of them overstated its cost by 3 each. Outfit prices now match the wiki on 484 of 488.",
    "changelog.note.2026-09-19-2.item.8": "Angelina the Mellow Wish no longer renders her Elite 2 art with a flat sheet across the eyes and mouth.",
    "changelog.note.2026-09-19-2.item.9": "The release note panel no longer cuts a line of text in half on a phone, and it shows a shadow at its edge while there is more to scroll to.",
    "changelog.note.2026-09-19-2.lead": "Every route of the API is now documented at /docs. Three scoring bugs in the base are fixed, and unlike this morning's update these ones do move numbers: two trading posts were crewed one after the other against a single gold supply, two mirror skills read five times the room they sit in, and a shift that rested an operator still claimed his facility bonus. 58 outfits the store sells at 15 Originium Prime were priced at 18.",
    "changelog.note.2026-09-19-2.title": "New: API docs, and more accurate base scoring",
    "changelog.note.2026-09-19.item.1": "The Base Optimizer and the Score tab now solve the same base, so the plan you are shown is the plan you are graded on. It seats combinations the planner used to miss.",
    "changelog.note.2026-09-19.item.10": "Roster cards show an operator's alternate name in full instead of cutting off its top.",
    "changelog.note.2026-09-19.item.11": "In the translation editor, the message key no longer breaks into single characters on a phone, and turning a page returns you to the top of the list.",
    "changelog.note.2026-09-19.item.12": "The release note panel gets a real share of the screen on a phone rather than whatever was left over.",
    "changelog.note.2026-09-19.item.2": "Promotion, potential and mastery badges on the roster are readable on the light theme again, and no longer sit on top of the module icons beside them.",
    "changelog.note.2026-09-19.item.3": "The language picker is in two places instead of three, and the header now shows which language you are reading rather than a globe.",
    "changelog.note.2026-09-19.item.4": "In the Account Optimizer, EXP and LMD each read the same way: what is needed, what is short, and what you hold.",
    "changelog.note.2026-09-19.item.5": "A trading post is valued at its own level. A level 2 post standing next to a level 3 one made both of them count as level 2, which understated the order limit and order rarity of the better room.",
    "changelog.note.2026-09-19.item.6": "A trading post's crew is chosen by what the post actually earns beside the factories feeding it. A gold-starved base cannot sell bonus bars, so the squad that earns more per bar wins there, while the bonus-bar squad still wins when supply is spare.",
    "changelog.note.2026-09-19.item.7": "The Control Center no longer seats an operator for a clue, HR or training bonus that a stronger operator already sitting there covers.",
    "changelog.note.2026-09-19.item.8": "Operators below milestone listed operators you had never promoted or levelled, and priced them as though you had. One section advertised a gain of 25.2 where only 13.8 was available. Your score, its breakdown and every weight are unchanged.",
    "changelog.note.2026-09-19.item.9": "Page titles no longer collapse into a column of single letters on a phone, on the Stages page and anywhere else a heading shares a row with a counter.",
    "changelog.note.2026-09-19.lead": "The Base Optimizer now plans with the same economy the Score tab grades you on, so the staffing it shows is the staffing you are scored against. Trading posts are valued at their own level and crewed by what they actually earn. The Operators below milestone card lists only operators you have really invested in, so the gain it advertises is one you can reach. No score, breakdown or weight has moved.",
    "changelog.note.2026-09-19.title": "Fixed: Base planning and upgrade advice",
    "changelog.note.2026-09-20.hrefLabel": "Open the leaderboard",
    "changelog.note.2026-09-20.item.1": "Rank the leaderboard by any item you hold. The Rank by picker searches everything anyone is holding and shows each item's icon and how many players hold it; the page keeps its shape whichever ranking you choose.",
    "changelog.note.2026-09-20.item.10": "Tapping your nickname in the account menu left the menu sitting open over the page. It closes now, and the entry can be reached with the arrow keys.",
    "changelog.note.2026-09-20.item.11": "A row in your tier lists squeezed its own title down to a single letter on a phone and spilled its badge across the actions button. The row wraps below that width now.",
    "changelog.note.2026-09-20.item.2": "An item ranking is a link you can share, and a player you search for keeps their true rank rather than being renumbered inside your search.",
    "changelog.note.2026-09-20.item.3": "Optimizing a single base room no longer re-crews the rooms outside it or changes a factory's recipe behind your back. Rooms outside the scope are held as they are and scored that way.",
    "changelog.note.2026-09-20.item.4": "Reclamation Algorithm is named as such across the site, rather than Sandbox. Where a label has to be short it reads RA.",
    "changelog.note.2026-09-20.item.5": "A rotation's shifts were priced against the operators you have seated now rather than the ones the shift recommends, so any skill that depends on who else is deployed read as inactive in every shift while the stationed view counted it.",
    "changelog.note.2026-09-20.item.6": "On a gold-starved base Proviso takes the lower-level trading post, where her bonus on small orders pays on every order the post draws.",
    "changelog.note.2026-09-20.item.7": "An operator reserved for the Office or the Reception Room was held out of every rotation and then never actually seated there.",
    "changelog.note.2026-09-20.item.8": "A spare Control Center seat now goes to a base-wide morale bonus first, HR or training speed next, and clue speed last whatever its size. Clue speed was counted at triple weight and beat everything.",
    "changelog.note.2026-09-20.item.9": "Teams built around a capacity bonus were cut before they were ever compared, because the shortlist ranked on speed alone and a capacity skill scores nothing there.",
    "changelog.note.2026-09-20.lead": "The leaderboard ranks by any item in your inventory, not just by score: pick LMD, Orundum, a certificate or anything else you hold, and the table, your own standing and the cards beside them all follow it. Five more base scoring bugs are fixed, and like yesterday's these do move numbers. Reclamation Algorithm is called by its name across the site instead of Sandbox.",
    "changelog.note.2026-09-20.title": "New: Rank the leaderboard by anything you hold",
    "changelog.note.2026-09-21.hrefLabel": "Open the recruitment calculator",
    "changelog.note.2026-09-21.item.1": "Every operator on a recruitment result says whether you own them, at what potential, and what the next copy buys, read from the game's own data rather than from English wording, so it works on every server. A new sort puts the ones you do not own first.",
    "changelog.note.2026-09-21.item.10": "Copying a single shift of the rotation cost about nine points, because the score graded that one stationing against the sustained optimum. Saved presets are graded on their own shifts now, so those points come back.",
    "changelog.note.2026-09-21.item.11": "An automation room would only take a partner whose skill the automation leader cancels out, so it never paired Weedy with Purestream: that pairing reads 117 where Weedy and Eunectes read 77.",
    "changelog.note.2026-09-21.item.12": "A factory hand could be moved into a trading post, where it produces nothing, and the grade's 100% now includes the plan the Optimizer tab can actually reach rather than only the sustained one.",
    "changelog.note.2026-09-21.item.2": "The roster filters by how an operator is obtained: any, headhunting or welfare. Hiding welfare operators is what makes the headhunting pool's potentials readable, since all 79 obtainable welfare 5 and 6 stars come at maximum potential.",
    "changelog.note.2026-09-21.item.3": "The account card works out what your base and dailies earn in a day, and how many days the LMD you are short will take, with and without farming CE-6.",
    "changelog.note.2026-09-21.item.4": "Consumables and ticket counters are stored for the first time: operator and Elite II vouchers, headhunting data contracts, material selectors, item packs, outfit vouchers, Expedited Plans and Universal Certificates. They count on the leaderboard, and the Items tab now lists your currencies alongside them.",
    "changelog.note.2026-09-21.item.5": "Moving a tier up or down in a tier list keeps the colour ladder on the rows, so the tiers slide under it instead of carrying their colours along. A colour you chose yourself still travels with its tier.",
    "changelog.note.2026-09-21.item.6": "A placed operator comes off a tier in one click, or with Delete or Backspace while it has focus, rather than through a dialog.",
    "changelog.note.2026-09-21.item.7": "A tier list card shows as many operators as its row actually holds. The count was fixed at nine whatever the width, so a row could sit half empty behind a \"+28\".",
    "changelog.note.2026-09-21.item.8": "Voice lines, story text and module descriptions printed the game's own formatting tags as literal text instead of rendering them. It affected 187 voice lines across 89 operators and 308 passages of story.",
    "changelog.note.2026-09-21.item.9": "A Control Center seat held for a bonus that only reaches some operators now says what it pays, where, and how many operators in your plan qualify. Six morale skills that pay per operator of a given faction were priced as though they paid everyone, which seated operators next to nobody they applied to.",
    "changelog.note.2026-09-21.lead": "The recruitment calculator now knows what you own: every operator on a result card says whether you have them, at what potential, and what one more copy would buy. Your consumables are stored for the first time, so vouchers, selectors and packs count on the leaderboard alongside currencies. The account card works out what you earn a day and how long the LMD you are short will take. Four more base scoring bugs are fixed, and one of them gives points back.",
    "changelog.note.2026-09-21.title": "New: Recruitment reads your roster, and every item you hold is tracked",
    "changelog.note.2026-09-25-2.hrefLabel": "Open the stories",
    "changelog.note.2026-09-25-2.item.1": "A story link shared on Discord or elsewhere shows its own preview card, with the story's name, chapter, read time and art.",
    "changelog.note.2026-09-25-2.item.2": "The backlog keeps the lines you had already read ahead when you jump back, so you can jump forward to them again.",
    "changelog.note.2026-09-25-2.item.3": "Hovering the mute button opens the music and sound volume sliders.",
    "changelog.note.2026-09-25-2.item.4": "Stacked stickers no longer overlap, and the next speaker's name no longer flashes in the text box before a scene change.",
    "changelog.note.2026-09-25-2.lead": "**Skip** in the story reader now opens the game's own summary of the story, so you can catch up on what happened and either keep reading or skip to the end with the story marked read. The library's search and filters stay pinned while you scroll, the page fits on one screen, and browsing and searching no longer lag.",
    "changelog.note.2026-09-25-2.title": "Improved: Skip shows the story's summary, and the library keeps up",
    "changelog.note.2026-09-25.hrefLabel": "Open the stories",
    "changelog.note.2026-09-25.item.1": "Player search can rank by score, operator count, potentials, Mastery 3 skills, level 3 modules, outfits or a class, and filter to players who own given operators. Every ranking is a link you can share.",
    "changelog.note.2026-09-25.item.2": "The max-level cost on your account card can stop at the level where an operator's module unlocks, which skips the most expensive and least useful stretch of levelling.",
    "changelog.note.2026-09-25.item.3": "Grades have changed. Every operator you own now counts toward the Operators score, not only the ones you have raised, and rarity and modules are weighted by what they actually cost to build. Many accounts will see a lower grade, and it is expected.",
    "changelog.note.2026-09-25.item.4": "When choosing an item to rank the leaderboard by, each row shows how many players hold it, what share of players that is, and how much of it exists in total.",
    "changelog.note.2026-09-25.item.5": "The base optimizer places Proviso, Shamare and the other traders at the right trading post, assembles the Knights team in the Control Center, and a base copied exactly from the Optimizer tab now grades at 100%.",
    "changelog.note.2026-09-25.item.6": "A brief server hiccup no longer signs you out, and links opened from Discord or another app arrive signed in.",
    "changelog.note.2026-09-25.item.7": "The randomizer no longer draws nothing when you are signed out with filters saved from signing in, and \"Only stages I've cleared\" is a filter you can turn off again. If your stage list was already thinned by the old behaviour, press All once to restore it.",
    "changelog.note.2026-09-25.item.8": "The planner's operator picker opens quickly instead of waiting on the whole operator database, and in the release planner two stages sharing a code no longer toggle together, and an announced Fashion Review shows as confirmed.",
    "changelog.note.2026-09-25.lead": "**A story reader** now plays the game's own scripts: the text, portraits, backgrounds, music, sound, effects and cutscenes, with choices you can replay, a backlog you can jump through, Auto and Skip, and your own fonts, colours and text box. The library sorts every story by the game's own shelves and shows each event's art and theme music. Sign in and it already knows what you have read in game, and your progress follows you to any device.",
    "changelog.note.2026-09-25.title": "New: Read the Arknights story, and pick up where the game left you",
    "changelog.note.2026-09-30.hrefLabel": "Open the pull planner",
    "changelog.note.2026-09-30.item.1": "Recruitment results have a compact layout that fits each tag combination on one row, so a full set of results no longer needs a zoom-out. The detailed layout is still an option, and your choices are remembered.",
    "changelog.note.2026-09-30.item.2": "6★ and 5★ operators are easier to tell apart: 6★ is now orange and 5★ gold, everywhere on the site.",
    "changelog.note.2026-09-30.item.3": "\"Optimize this room only\" in the base optimizer changes only that room, and never hands back a slower crew than the one already there.",
    "changelog.note.2026-09-30.item.4": "An operator's first level 3 module no longer counts for more than the rest, so operators with several modules are graded evenly.",
    "changelog.note.2026-09-30.item.5": "In the story reader, a radio call's portrait strip sits on the empty side of the stage instead of over the character speaking, and shows the character at the right size.",
    "changelog.note.2026-09-30.item.6": "The pull planner shows Originite Prime with the gold hexagon from the game's top bar.",
    "changelog.note.2026-09-30.lead": "The pull planner's Skins tab is folded into **the Planner**, which already lists every outfit under its event. The planner now fits your window with each pane scrolling on its own, picked outfits show their own art, and the summary lists only what you picked, with prices. Outfit rerun dates are estimated from each outfit's own shop history, so they land far closer to the real date, and the event shop and farming stages have moved to the Events tab.",
    "changelog.note.2026-09-30.title": "Improved: One outfit planner, with rerun dates you can plan around",
    "changelog.note.2026-10-01.hrefLabel": "Open tier lists",
    "changelog.note.2026-10-01.item.1": "Story radio calls open as their own small windows, like in the game, instead of filling the screen, and characters' faces change expression without a box drawn over their heads.",
    "changelog.note.2026-10-01.item.2": "The story library shows more chapters per screen and scrolls more smoothly.",
    "changelog.note.2026-10-01.item.3": "Story lines that were never shown are back: parts of 1-3, 5-10 and one interlude were cut off after a choice, and sticker or subtitle lines no longer freeze the reader or print formatting tags.",
    "changelog.note.2026-10-01.item.4": "The pull planner no longer shows a passed estimate as a sale that already happened. An estimate whose day has gone by now reads \"Due now\", a CN sale EN skipped is no longer forecast, and an event EN has closed stops counting its Originite Prime.",
    "changelog.note.2026-10-01.item.5": "Il Siracusano's hub battle stages no longer show as missing or as needing a rerun, since they closed with the event.",
    "changelog.note.2026-10-01.item.6": "An outfit's art sits centred in its detail popup, and the randomizer shows its title once.",
    "changelog.note.2026-10-01.lead": "Tier lists can now rank **any kind of entry**, not only operators: enemies, outfits, modules, skills, events, factions, Integrated Strategies collectibles and more, mixed in one list if you like. And any story, chapter, arc or reading-order range in the story library can be exported as an EPUB, PDF, Markdown or plain text, with every choice and its lines kept on the page.",
    "changelog.note.2026-10-01.title": "New: Tier lists for anything, and stories you can take with you",
    "changelog.note.2026-10-02.hrefLabel": "Open operators",
    "changelog.note.2026-10-02.item.1": "Tier names save up to 40 characters. Longer names were cut off at 24 without a warning; a name that was already cut stays that way until you re-enter it.",
    "changelog.note.2026-10-02.item.2": "A long filter row in the tier list editor, such as outfit brands, scrolls inside the dialog and fades at the edge where more is hidden.",
    "changelog.note.2026-10-02.lead": "The operators list and a player profile's Stats and Roster tabs no longer download the game's full operator and voice tables before showing anything. They read a small index instead, so they open **much faster**, especially on phones and slow connections.",
    "changelog.note.2026-10-02.title": "Improved: The operators page and profiles load faster",
    "changelog.note.2026-10-04.item.1": "The language menu shows how much of the site each language has been translated.",
    "changelog.note.2026-10-04.item.2": "The base optimizer reads group bonuses the way the game defines them: Gravel counts as a Knight, Hoshiguma the Breacher's Control Center bonus applies, and skills that ask whether an operator is in the base count operators resting in dormitories.",
    "changelog.note.2026-10-04.item.3": "Stage map previews are no longer squashed, and the randomizer's stage thumbnail grows when you hover it.",
    "changelog.note.2026-10-04.item.4": "An expired game login now says so plainly when you resync, instead of showing a raw error.",
    "changelog.note.2026-10-04.item.5": "On phones, tapping the story reader's collapsed toolbar opens it, and the story library's chapter bar no longer flickers when you jump.",
    "changelog.note.2026-10-04.lead": "Many pages stopped downloading data they never show. The enemies list, birthdays, the DPS, HPS and recruitment tools, stage pages and a profile's Roster, Plans and Optimizer tabs are now **much lighter**, so they open sooner, especially on phones and slow connections.",
    "changelog.note.2026-10-04.title": "Improved: Pages across the site load faster",
    "changelog.note.2026-10-05.hrefLabel": "Open the pull planner",
    "changelog.note.2026-10-05.item.1": "The base optimizer can keep Lancet-2 parked at zero morale in a power plant, so Eunectes' bonus still counts it while Greyy the Lightningbearer's bonus no longer does. Shifts mark it as parked.",
    "changelog.note.2026-10-05.item.2": "The story reader picks the right art for characters with more than one full-body sprite. Nine no longer appears as a dark silhouette, and Mostima, Skadi, Nearl, Swire and about twenty others show their intended art.",
    "changelog.note.2026-10-05.lead": "Outfit sales that open on the same EN day now share one card in the pull planner, and a sale that opens with an event sits **inside that event's card**, with the event's own outfit sets first. With Latin names switched on, mainline episodes and new outfit sets now show their English names wherever the game data has one.",
    "changelog.note.2026-10-05.title": "Improved: The pull planner shows one card per release day",
    "changelog.note.2026-10-06-2.item.1": "Choose which game server's text the site shows, separately from the site's language, under Game text in the language menu. Japanese and Korean game text are now available.",
    "changelog.note.2026-10-06-2.item.2": "Grid cards show the whole board, a filled cell opens full screen with its art and full label, phones get a full-screen cell editor, and the picker has the same filters as tier lists.",
    "changelog.note.2026-10-06-2.item.3": "A browser without WebGL keeps the static art instead of crashing the page.",
    "changelog.note.2026-10-06-2.item.4": "Grani and the Knights' Treasure shows its cover art in tier lists instead of a letter.",
    "changelog.note.2026-10-06-2.lead": "Your profile is now **customizable**. Reorder its tabs and make any of them private, pin favourites, grids, tier lists and plans to a new Showcase tab, and set header art from any outfit, operator art (Elite 1 and Elite 2 included) or gallery picture, cropped in a full-screen editor with a life-size preview.",
    "changelog.note.2026-10-06-2.title": "New: Make your profile your own",
    "changelog.note.2026-10-06.hrefLabel": "Open grids",
    "changelog.note.2026-10-06.item.1": "Tier lists can rank all 17 main-story episodes.",
    "changelog.note.2026-10-06.item.2": "The planner offers to remove plans you have already completed after a sync, bulk add can save presets and show plans on your profile, and plan groups can be pinned.",
    "changelog.note.2026-10-06.item.3": "The planner now counts a locked module as not started, so planning its first stage costs materials instead of nothing.",
    "changelog.note.2026-10-06.item.4": "Story characters show their art in downloaded tier list images and link previews, and about 190 missing characters, Maria Nearl among them, can now be ranked.",
    "changelog.note.2026-10-06.lead": "**Grids** are here: make a board of labelled cells, fill each one with an operator, enemy, outfit, event or anything else a tier list can hold, choose which kinds are allowed, and share it, download it as an image, or let others fill it in as a template. The story library also has a new **Characters** tab with every story sprite, over 1,600 of them, named by who speaks as them, with every expression and links to the lines they say.",
    "changelog.note.2026-10-06.title": "New: Grids, and every story character in one place",
    "changelog.note.2026-10-07.hrefLabel": "Open pull history",
    "changelog.note.2026-10-07.item.1": "The planner never plans a downgrade: anything your operator already has is locked as reached, deleted plans disappear at once, and plan lists load much faster.",
    "changelog.note.2026-10-07.item.2": "About 130 skills that share another skill's icon, such as Jessica's, now show it instead of a broken image.",
    "changelog.note.2026-10-07.item.3": "Operator favourites in a profile's Showcase use the same card as the operators page, and blocks placed side by side line up at the bottom.",
    "changelog.note.2026-10-07.lead": "In your pull history's banner breakdown, the 6★ count now opens a list of **every 6★ that banner gave you**, newest first, with the date and whether it was the rate-up or an off-banner pull.",
    "changelog.note.2026-10-07.title": "New: See which 6★ operators each banner gave you",
    "changelog.note.2026-10-09.item.1": "The Myrtle Discord bot can show every page of an operator (skills, modules, costs, outfits, lore, voice lines and more), play voice lines and read voice-channel chat aloud, and lists Challenge Mode conditions on stages.",
    "changelog.note.2026-10-09.item.2": "The base optimizer no longer moves Proviso to the level-3 trading post when Shamare and Tequila there earn more.",
    "changelog.note.2026-10-09.item.3": "The pull planner no longer lists the same outfits on two cards and charges for them twice.",
    "changelog.note.2026-10-09.item.4": "Eight operators that showed no damage when first opened in the DPS calculator now open on a skill it can compute.",
    "changelog.note.2026-10-09.item.5": "The grid cell picker keeps its tabs and tiles on a phone held sideways.",
    "changelog.note.2026-10-09.lead": "Operators in a profile's Showcase now open **that player's build** when tapped, and a faction opens its operators. The operator picker in tier lists, grids and the Showcase can also filter by race, nation and faction.",
    "changelog.note.2026-10-09.title": "New: Tap a Showcase to see a player's build",
    "changelog.note.2026-10-11.item.1": "The pull planner takes your Standard and Kernel pity separately, and its odds now count the free limited operator at 300 rolls and the three picks of an Orienteering banner. Saved plans carry over unchanged.",
    "changelog.note.2026-10-11.item.2": "Pull history counts pity the way each banner does: Standard and Kernel keep separate counters, Orienteering counts toward Standard, Limited and Collab pity starts over on each new banner, and Starter Headhunting has its own tab.",
    "changelog.note.2026-10-11.item.3": "The banner for returning players is no longer shown as an active banner, and the release planner marks it as for returning players only.",
    "changelog.note.2026-10-11.item.4": "Voice lines for Passenger, Ling, Chongyue and Lappland the Decadenza no longer switch between their base and outfit voice sets.",
    "changelog.note.2026-10-11.item.5": "Players with Amiya's alternate art as their assistant see her avatar in the header again.",
    "changelog.note.2026-10-11.lead": "The homepage now opens on **what's happening now**: the current events and banners from your selected game server, ending soonest first, next to the top players and the latest site updates.",
    "changelog.note.2026-10-11.title": "New: A redesigned homepage",
    "changelog.note.2026-10-12.hrefLabel": "Open the music library",
    "changelog.note.2026-10-12.item.1": "A News page lists the official notices, and the header counts down to the end of maintenance.",
    "changelog.note.2026-10-12.item.2": "Enemy pages play the sounds each enemy makes in battle.",
    "changelog.note.2026-10-12.item.3": "The chibi viewer can pause and step one frame at a time.",
    "changelog.note.2026-10-12.item.4": "With Enable Spoilers on in Settings, operator pages show the factions an operator belongs to that their card leaves out.",
    "changelog.note.2026-10-12.item.5": "You can delete your account from Settings.",
    "changelog.note.2026-10-12.item.6": "Typing a UID into player search opens that player's profile.",
    "changelog.note.2026-10-12.item.7": "Links from the old site, such as /dps-calculator, open the right page instead of Not Found.",
    "changelog.note.2026-10-12.item.8": "Inventory items no longer get stuck showing initials instead of their icons.",
    "changelog.note.2026-10-12.lead": "Three new pages. **In-Game Music** puts every game track and Monster Siren song in one library, with lyrics, a queue and playlists. **Archives** maps the factions, their territories and their people. The **Squad Builder** plans a squad from your synced roster and checks its coverage, economy and synergy.",
    "changelog.note.2026-10-12.title": "New: Music, Archives and a Squad Builder",
    "changelog.note.2026-10-13-2.item.1": "Music keeps playing while you browse the rest of the site. The music page adds charts of the most played tracks and top listeners, and every track can be downloaded.",
    "changelog.note.2026-10-13-2.item.2": "The enemy list can filter by immunity, such as stun, silence, sleep or freeze, and enemy pages list what each enemy is immune to.",
    "changelog.note.2026-10-13-2.item.3": "The Stats page has Field notes: how many enemies are immune to each status, the most owned and rarest 6★ operators, and how many enemies the average player has met.",
    "changelog.note.2026-10-13-2.item.4": "On phones, language and theme moved into the menu, so the top bar has room to breathe.",
    "changelog.note.2026-10-13-2.lead": "You can now **hide your currencies, level, join date, sign-in days and roster counts** from visitors, and pick which stat cards your profile header shows. Anything you hide is also left out of leaderboards and player search.",
    "changelog.note.2026-10-13-2.title": "New: Choose what visitors see on your profile",
    "changelog.note.2026-10-13.item.1": "Hover hints across the site use the site's own tooltip, and they now show in the fullscreen story reader too.",
    "changelog.note.2026-10-13.item.2": "The music page's cover wheel glides smoothly when you scroll it.",
    "changelog.note.2026-10-13.item.3": "In the profile background picker, the Archive pictures from Near Light, Stultifera Navis and Lone Trail sit with their story's CGs.",
    "changelog.note.2026-10-13.item.4": "The pull planner's What you earn section can be collapsed.",
    "changelog.note.2026-10-13.item.5": "On phones, the homepage headline no longer leaves a gap above the text below it.",
    "changelog.note.2026-10-13.lead": "Links to **profiles, enemies, Archives, music albums, recruitment tags and squads** now show their own preview card when you paste them into Discord or another chat. A profile's card shows the background its owner picked.",
    "changelog.note.2026-10-13.title": "Improved: Link previews for more pages",
    "changelog.note.2026-10-15.hrefLabel": "Open pull history",
    "changelog.note.2026-10-15.item.1": "The randomizer can draw from 6★ operators only, and can keep or drop the tiers of an official tier list.",
    "changelog.note.2026-10-15.item.2": "Stages suggested in your profile's Score tab open their stage page.",
    "changelog.note.2026-10-15.item.3": "The base optimizer changes every room's crew at each 12-hour shift, the way the game's Rotate does, and compares its recommended rotation with your saved presets. Wang now counts the extra plants from Eunectes and Greyy the Lightningbearer.",
    "changelog.note.2026-10-15.item.4": "The pull planner opens and switches tabs much faster.",
    "changelog.note.2026-10-15.item.5": "The events that started on October 14 show on EN again, and the release planner no longer lists Critical Phase Transition as overdue.",
    "changelog.note.2026-10-15.item.6": "Base evaluations no longer fail while a rotation is being planned.",
    "changelog.note.2026-10-15.item.7": "The story library puts Lone Trail, When Elegies Are Ashes, Code of Brawl and Zwillingsturme im Herbst on the shelves the game files them under.",
    "changelog.note.2026-10-15.item.8": "On phones, the planner's Create button is reachable again and the character picker folds its filters away so the tiles have room.",
    "changelog.note.2026-10-15.lead": "In your pull history's banner breakdown, each 6★ now shows **how many pulls it took on its pity counter**. Tap it for the details: the banner, when you pulled it, the previous 6★ on that counter, and the 5★, 4★ and 3★ operators you got in between.",
    "changelog.note.2026-10-15.title": "New: See the pity behind every 6★",
    "changelog.note.2026-10-23.hrefLabel": "Open the Squad Builder",
    "changelog.note.2026-10-23.item.1": "The stage picker marks harder variants such as Adverse Environment, and says when a stage has no map data.",
    "changelog.note.2026-10-23.item.2": "Stages from three older mini-events are grouped under their event instead of a story chapter.",
    "changelog.note.2026-10-23.item.3": "The base optimizer reads your base's real drone cap, so Greyy the Lightningbearer's bonus is right on bases above 100 drones, and it no longer leaves strong operators such as Vermeil out of later shifts.",
    "changelog.note.2026-10-23.lead": "The Squad Builder's operator picker can now **filter by branch and sort by rarity, name, DP cost or level**, and shows each operator's promotion, potential, skill ranks and modules at a glance.",
    "changelog.note.2026-10-23.title": "Improved: A better operator picker in the Squad Builder",
    "changelog.note.2026-10-25.hrefLabel": "Open the DPS calculator",
    "changelog.note.2026-10-25.item.1": "Pull history has an All tab that lists every banner's pulls together, newest first.",
    "changelog.note.2026-10-25.item.10": "Shu's animated outfit art no longer shows a white square over the water.",
    "changelog.note.2026-10-25.item.2": "The operator list can filter by module type: X, Y, Δ, α and β.",
    "changelog.note.2026-10-25.item.3": "Stage zones show the Originite Prime their first clears give, and Challenge Mode and Adverse Environment stages are one click away.",
    "changelog.note.2026-10-25.item.4": "Tier lists can rank home-screen backgrounds.",
    "changelog.note.2026-10-25.item.5": "The base optimizer counts your daily drones in its LMD and EXP, shows drones per day, and now prices Viy's and GALLUS²'s base skills.",
    "changelog.note.2026-10-25.item.6": "With Store gacha history turned off in Settings, your pulls are no longer saved.",
    "changelog.note.2026-10-25.item.7": "Players who have not been graded yet no longer rank first on the leaderboard.",
    "changelog.note.2026-10-25.item.8": "Opening a DPS or HPS share link no longer replaces your own saved setup.",
    "changelog.note.2026-10-25.item.9": "The Score tab explains the Expeditioner's Jǫklumarkar ending that a regular run cannot reach.",
    "changelog.note.2026-10-25.lead": "**Eleven 6★ operators the DPS calculator could not compute now have numbers**, including Closure, SilverAsh the Reignfrost, Wang and Ch'en the Dawnstreak. Muelsyse works again, module level 1 is no longer read as level 3, and operators such as Tecno and Ebenholz read their skills correctly.",
    "changelog.note.2026-10-25.title": "New: The DPS calculator covers every 6★",
    "changelog.note.kind.fixed": "Fixed",
    "changelog.note.kind.improved": "Improved",
    "changelog.note.kind.new": "New",
    "changelog.note.takeALook": "Take a look",
    "changelog.page.blurb": "Every commit pushed to myrtle.moe, pulled live from GitHub and grouped by day.",
    "changelog.page.empty.body": "Nothing landed in this window yet. Try a wider range above to see recent work.",
    "changelog.page.empty.title": "No commits in {range}",
    "changelog.page.group.commits": "{count, plural, one {# commit} other {# commits}}",
    "changelog.page.group.today": "Today",
    "changelog.page.group.yesterday": "Yesterday",
    "changelog.page.kicker": "Changelog",
    "changelog.page.stat.branch": "branch",
    "changelog.page.stat.commits": "commits · {range}",
    "changelog.page.stat.contributors": "{count, plural, one {contributor} other {contributors}}",
    "changelog.page.stat.lastSynced": "last synced",
    "changelog.page.statsLink": "Looking for site stats instead? →",
    "changelog.page.tab.commits": "Commits",
    "changelog.page.tab.notes": "Release notes",
    "changelog.page.title": "What's shipped",
    "changelog.page.truncated": "Older history is capped - see the full log on GitHub.",
    "changelog.range.day.label": "Today",
    "changelog.range.day.lower": "today",
    "changelog.range.day.short": "24h",
    "changelog.range.month.label": "This Month",
    "changelog.range.month.lower": "this month",
    "changelog.range.month.short": "30d",
    "changelog.range.quarter.label": "3 Months",
    "changelog.range.quarter.lower": "3 months",
    "changelog.range.quarter.short": "90d",
    "changelog.range.week.label": "This Week",
    "changelog.range.week.lower": "this week",
    "changelog.range.week.short": "7d",
    "changelog.whatsNew.aria": "What's new",
    "changelog.whatsNew.aria.unread": "What's new (unread)",
    "common.breadcrumb.label": "breadcrumb",
    "common.breadcrumb.more": "More",
    "common.combobox.removeChip": "Remove",
    "common.dialog.close": "Close",
    "common.drawer.checked": "Checked",
    "common.drawer.close": "Close",
    "common.drawer.selected": "Selected",
    "common.errorMessage.gameLoginRequired": "Your Yostar login has expired. Sign out, then sign back in with a new email code.",
    "common.errorMessage.gameMaintenance": "Arknights is down for maintenance, so syncing is paused. Try again once it's back.",
    "common.errorMessage.gameMaintenanceUntil": "Arknights is down for maintenance until {time}, so syncing is paused. Try again after that.",
    "common.errorMessage.offline": "You're offline. Check your connection and try again.",
    "common.errorMessage.rateLimited": "Too many attempts. Wait a minute and try again.",
    "common.errorMessage.rejected": "The request was rejected ({status}).",
    "common.errorMessage.serverError": "The server ran into a problem ({status}). Try again in a minute.",
    "common.errorMessage.syncFailed": "Signed in, but the first roster sync failed ({status}). Reload the page: your account is connected, and you can sync again from your profile.",
    "common.errorMessage.timeout": "The server took too long to respond. Try again in a moment.",
    "common.errorMessage.unauthorized": "You're not allowed to do that ({status}). If you were signed in, your session may have expired.",
    "common.errorMessage.unavailable": "The server is temporarily unavailable ({status}). Try again in a minute.",
    "common.errorMessage.unknown": "Something went wrong.",
    "common.errorMessage.unreachable": "The server couldn't be reached. It may be down or restarting; try again in a minute.",
    "common.errorMessage.unreachableWithCode": "The server couldn't be reached ({code}). It may be down or restarting; try again in a minute.",
    "common.footer.builtOn": "built on TanStack Start · COSS UI",
    "common.footer.changelog": "Changelog",
    "common.footer.disclaimer": "Not affiliated with Hypergryph or Yostar. Game data and assets are property of their respective owners.",
    "common.footer.discord": "Discord",
    "common.footer.donate": "Donate",
    "common.footer.fontCredit": "Terra script fonts: Sarkaz by lhclbt ({endfield}, {ccLicence}, unmodified); Sami and Aegir from {samigirian} by Siphercase ({oflLicence}, modified). Reader typeface {openDyslexic} by Abbie Gonzalez ({odLicence}, unmodified).",
    "common.footer.privacy": "Privacy",
    "common.footer.siteLinks": "Site links",
    "common.footer.terms": "Terms",
    "common.frameStepper.back": "Back one frame (,)",
    "common.frameStepper.forward": "Forward one frame (.)",
    "common.frameStepper.pause": "Pause",
    "common.frameStepper.play": "Play",
    "common.frameStepper.readout": "Frame {frame}/{total} · {seconds}s",
    "common.gamedataServer.choose": "Choose which game client's text to show",
    "common.gamedataServer.followLanguage": "Match language ({server})",
    "common.gamedataServer.label": "Game text",
    "common.gamedataServer.name.cn": "China",
    "common.gamedataServer.name.en": "Global",
    "common.gamedataServer.name.jp": "Japan",
    "common.gamedataServer.name.kr": "Korea",
    "common.gamedataServer.name.tw": "Taiwan",
    "common.localeSwitcher.language": "Language",
    "common.maintenance.detail.extended": "Yostar pushed the end back. Should be back by {end}.",
    "common.maintenance.detail.ongoing": "Down since {start}. Should be back by {end}.",
    "common.maintenance.detail.openEnded": "Down since {start}. No end time yet.",
    "common.maintenance.detail.overrun": "It was planned to end {end}, but the game is still down. We'll keep checking.",
    "common.maintenance.detail.upcoming": "The game goes down {start} and should be back by {end}.",
    "common.maintenance.detail.upcomingNoEnd": "The game goes down {start}. No end time yet.",
    "common.maintenance.notice": "Official notice",
    "common.maintenance.pillLabel": "Open the official maintenance notice",
    "common.maintenance.short.extended": "Maintenance extended, back in {time}",
    "common.maintenance.short.ongoing": "Maintenance, back in {time}",
    "common.maintenance.short.openEnded": "Down for maintenance",
    "common.maintenance.short.overrun": "Maintenance running long",
    "common.maintenance.short.upcoming": "Maintenance in {time}",
    "common.markdownEditor.bold": "Bold (⌘B)",
    "common.markdownEditor.bulletList": "Bullet list",
    "common.markdownEditor.formatting": "Formatting",
    "common.markdownEditor.inlineCode": "Inline code",
    "common.markdownEditor.italic": "Italic (⌘I)",
    "common.markdownEditor.link": "Link (⌘K)",
    "common.markdownEditor.markdownHint": "Markdown",
    "common.markdownEditor.nothingToPreview": "Nothing to preview yet.",
    "common.markdownEditor.numberedList": "Numbered list",
    "common.markdownEditor.preview": "Preview",
    "common.markdownEditor.quote": "Quote",
    "common.markdownEditor.write": "Write",
    "common.notFound.description": "There's nothing here right now.",
    "common.notFound.imageAlt": "Myrtle, face-down after dropping her snacks",
    "common.notFound.returnHome": "Take me home",
    "common.notFound.title": "We're counting on you again today, little apple.",
    "common.pagination.label": "pagination",
    "common.pagination.morePages": "More pages",
    "common.pagination.next": "Next",
    "common.pagination.nextPage": "Go to next page",
    "common.pagination.previous": "Previous",
    "common.pagination.previousPage": "Go to previous page",
    "common.searchCommand.cnOnly": "CN only",
    "common.searchCommand.noOperatorMatch": "No operators match \"{query}\".",
    "common.searchCommand.noResults": "No results found.",
    "common.searchCommand.operators": "Operators",
    "common.searchCommand.operatorsFailed": "Failed to load operators. Try reopening the palette.",
    "common.searchCommand.pages": "Pages",
    "common.searchCommand.placeholder": "Search operators, pages, tools…",
    "common.searchCommand.poweredBy": "powered by COSS UI",
    "common.searchCommand.toNavigate": "to navigate",
    "common.searchCommand.toSelect": "to select",
    "common.searchCommand.tools": "Tools",
    "common.sheet.close": "Close",
    "common.sidebar.description": "Displays the mobile sidebar.",
    "common.sidebar.title": "Sidebar",
    "common.sidebar.toggle": "Toggle Sidebar",
    "common.spinner.loading": "Loading",
    "enemies.appears.category.events": "Events",
    "enemies.appears.category.modes": "Permanent Game Modes",
    "enemies.appears.category.stages": "Story Stages",
    "enemies.appears.chip.conditional": "summoned / conditional",
    "enemies.appears.chip.spawns": "{count, plural, one {# spawn} other {# spawns}}",
    "enemies.appears.empty.body": "This enemy isn't listed in any of the currently extracted level files. Coverage grows as more content is processed.",
    "enemies.appears.empty.title": "No appearances recorded",
    "enemies.appears.found": "Found in {locations} {locationCount, plural, one {location} other {locations}} across {zones} {zoneCount, plural, one {zone} other {zones}}.",
    "enemies.appears.sub.ex": "EX Stages",
    "enemies.appears.sub.story": "Story",
    "enemies.appears.zoneType.annihilation": "Annihilation",
    "enemies.appears.zoneType.branch": "Branch",
    "enemies.appears.zoneType.event": "Event",
    "enemies.appears.zoneType.guide": "Guide",
    "enemies.appears.zoneType.is": "I.S.",
    "enemies.appears.zoneType.main": "Main",
    "enemies.appears.zoneType.sideStory": "Side Story",
    "enemies.appears.zoneType.special": "Special",
    "enemies.appears.zoneType.sss": "S.S.S.",
    "enemies.appears.zoneType.weekly": "Weekly",
    "enemies.applyWay.MELEE": "Melee",
    "enemies.applyWay.NONE": "None",
    "enemies.applyWay.RANGED": "Ranged",
    "enemies.cardGrid.aria": "{name} ({index})",
    "enemies.cardGrid.atk": "ATK",
    "enemies.cardGrid.def": "DEF",
    "enemies.cardGrid.hp": "HP",
    "enemies.cardGrid.portraitAlt": "{name} portrait",
    "enemies.cardList.aria": "{name} ({index})",
    "enemies.cardList.portraitAlt": "{name} portrait",
    "enemies.chibi.error": "Failed to load chibi data.",
    "enemies.chibi.none": "No chibi available for this enemy.",
    "enemies.chips.damage": "Damage",
    "enemies.chips.immune": "Immune to",
    "enemies.chips.race": "Race",
    "enemies.chips.range": "Range",
    "enemies.chips.threat": "Threat",
    "enemies.damageType.HEAL": "Heal",
    "enemies.damageType.MAGIC": "Arts",
    "enemies.damageType.NO_DAMAGE": "No Damage",
    "enemies.damageType.PHYSIC": "Physical",
    "enemies.detail.breadcrumb": "Breadcrumb",
    "enemies.detail.breadcrumb.collection": "Collection",
    "enemies.detail.breadcrumb.enemies": "Enemies",
    "enemies.detail.notFound.back": "Back to Enemy Database",
    "enemies.detail.notFound.body": "No enemy with id {id} exists in the handbook.",
    "enemies.detail.notFound.title": "Enemy not found",
    "enemies.detail.tab.appears": "Appears In",
    "enemies.detail.tab.chibi": "Chibi",
    "enemies.detail.tab.overview": "Overview",
    "enemies.detail.tab.skills": "Skills",
    "enemies.detail.tab.sounds": "Sounds",
    "enemies.detail.tab.stats": "Stats",
    "enemies.immunity.fear": "Fear",
    "enemies.immunity.frozen": "Frozen",
    "enemies.immunity.levitate": "Levitate",
    "enemies.immunity.lure": "Lure",
    "enemies.immunity.paralysis": "Paralysis",
    "enemies.immunity.silence": "Silence",
    "enemies.immunity.sleep": "Sleep",
    "enemies.immunity.stun": "Stun",
    "enemies.immunity.tremble": "Frighten",
    "enemies.level.BOSS": "Boss",
    "enemies.level.ELITE": "Elite",
    "enemies.level.NORMAL": "Normal",
    "enemies.list.blurb": "View all {count} enemies catalogued in Arknights, sorted by Hypergryph's internal sort index by default.",
    "enemies.list.breadcrumb": "Breadcrumb",
    "enemies.list.breadcrumb.collection": "Collection",
    "enemies.list.breadcrumb.enemies": "Enemies",
    "enemies.list.clearFilters": "{count, plural, one {Clear # filter} other {Clear # filters}}",
    "enemies.list.col.damage": "Damage",
    "enemies.list.col.hp": "HP",
    "enemies.list.col.name": "Name",
    "enemies.list.col.threat": "Threat",
    "enemies.list.empty.body": "Adjust the chip rail or your search above, or clear everything and start fresh.",
    "enemies.list.empty.clear": "Clear all filters",
    "enemies.list.empty.title": "No enemies match your filters",
    "enemies.list.export": "Export",
    "enemies.list.export.aria": "Export enemies",
    "enemies.list.export.dialogTitle": "Enemies",
    "enemies.list.hint": "Click a card for details",
    "enemies.list.perPage.all": "All",
    "enemies.list.perPage.aria": "Items per page",
    "enemies.list.perPage.label": "Show",
    "enemies.list.results.aria": "Enemy results",
    "enemies.list.search.aria": "Search enemies",
    "enemies.list.search.placeholder": "Search by name, callsign, or race…",
    "enemies.list.showing": "Showing {from}-{to} of {total} enemies",
    "enemies.list.sort.aria": "Sort enemies",
    "enemies.list.sort.asc": "Ascending",
    "enemies.list.sort.desc": "Descending",
    "enemies.list.sort.label": "Sort",
    "enemies.list.sort.toggle": "Toggle sort direction",
    "enemies.list.title": "Enemy Database",
    "enemies.list.viewMode.aria": "View mode",
    "enemies.list.viewMode.grid": "Grid",
    "enemies.list.viewMode.list": "List",
    "enemies.location.clearAll": "Clear all",
    "enemies.location.deselectAll": "Deselect all {name}",
    "enemies.location.empty": "No matching locations.",
    "enemies.location.remove": "Remove {name}",
    "enemies.location.search.aria": "Search locations",
    "enemies.location.search.clear": "Clear search",
    "enemies.location.search.placeholder": "Search events, modes, or stages…",
    "enemies.location.selectAll": "Select all {name}",
    "enemies.location.selected": "{count} selected",
    "enemies.location.trigger": "Appears In",
    "enemies.location.trigger.aria": "Filter by where enemies appear",
    "enemies.overview.description": "Description",
    "enemies.overview.meta.enemyId": "Enemy ID",
    "enemies.overview.meta.handbook": "In Handbook",
    "enemies.overview.meta.hidden": "Hidden",
    "enemies.overview.meta.race": "Race",
    "enemies.overview.meta.sortId": "Sort ID",
    "enemies.overview.meta.visible": "Visible",
    "enemies.overview.metadata": "Metadata",
    "enemies.overview.tags": "Tags",
    "enemies.overview.traits": "Traits",
    "enemies.placeholder.title": "Enemy placeholder",
    "enemies.skills.cooldown": "Cooldown",
    "enemies.skills.empty.form": "No skills active in this form.",
    "enemies.skills.empty.level": "No skills active in this level.",
    "enemies.skills.identical.forms": "Skill kit is identical across all {phases} {count, plural, one {form} other {forms}}.",
    "enemies.skills.identical.levels": "Skill kit is identical across all {phases} {count, plural, one {level} other {levels}}.",
    "enemies.skills.initCd": "Init CD",
    "enemies.skills.none": "No skill data available for this enemy.",
    "enemies.skills.spCost": "SP Cost",
    "enemies.sort.atk": "ATK",
    "enemies.sort.def": "DEF",
    "enemies.sort.hp": "HP",
    "enemies.sort.index": "Index",
    "enemies.sort.level": "Threat",
    "enemies.sort.name": "Name",
    "enemies.sort.res": "RES",
    "enemies.sort.weight": "Weight",
    "enemies.sounds.category.attack": "Basic attack",
    "enemies.sounds.category.death": "Death",
    "enemies.sounds.category.other": "Other",
    "enemies.sounds.category.projectile": "Projectiles",
    "enemies.sounds.category.skill": "Skills",
    "enemies.sounds.category.spawn": "Spawn",
    "enemies.sounds.event.abilityAttackFinish": "Finish",
    "enemies.sounds.event.abilityEnd": "End",
    "enemies.sounds.event.abilityHit": "Impact",
    "enemies.sounds.event.abilityOn": "Release",
    "enemies.sounds.event.abilityStart": "Wind-up",
    "enemies.sounds.event.bossEnter": "Boss entrance",
    "enemies.sounds.event.buffStart": "Effect",
    "enemies.sounds.event.customTrigger": "Scripted",
    "enemies.sounds.event.projectileHit": "Hit",
    "enemies.sounds.event.projectileReach": "Lands",
    "enemies.sounds.event.spineEventTrigger": "Animation cue",
    "enemies.sounds.event.unitBorn": "Appears",
    "enemies.sounds.event.unitDead": "Defeated",
    "enemies.sounds.intro": "{count, plural, one {# sound} other {# sounds}} pulled from the game's battle audio.",
    "enemies.sounds.pause": "Pause",
    "enemies.sounds.play": "Play",
    "enemies.sounds.playVariant": "Play take {index}",
    "enemies.sounds.projectileNote": "Matched by name, so the same projectile can show up on related enemies.",
    "enemies.sounds.unavailable": "Unavailable",
    "enemies.stats.combat": "Combat",
    "enemies.stats.combat.forms": "Combat · {count, plural, one {# form} other {# forms}}",
    "enemies.stats.combat.levels": "Combat · {count, plural, one {# level} other {# levels}}",
    "enemies.stats.forms.note": "This enemy transforms across {forms} forms in-fight, but Hypergryph's data ships {count, plural, one {a single stat block} other {# stat blocks}}. Subsequent forms modify behavior through skill triggers rather than swapping the base HP/ATK/DEF - see {traits} for the form descriptions.",
    "enemies.stats.forms.note.traits": "Overview · Traits",
    "enemies.stats.immunities": "Immunities",
    "enemies.stats.immunity.aria.immune": "{status} immune in {phase}",
    "enemies.stats.immunity.aria.vulnerable": "{status} vulnerable in {phase}",
    "enemies.stats.immunity.fear": "Fear",
    "enemies.stats.immunity.frozen": "Frozen",
    "enemies.stats.immunity.levitate": "Levitate",
    "enemies.stats.immunity.lure": "Lure",
    "enemies.stats.immunity.paralysis": "Paralysis",
    "enemies.stats.immunity.silence": "Silence",
    "enemies.stats.immunity.sleep": "Sleep",
    "enemies.stats.immunity.status": "Status",
    "enemies.stats.immunity.stun": "Stun",
    "enemies.stats.immunity.tremble": "Frighten",
    "enemies.stats.immunity.value": "Value",
    "enemies.stats.none": "No stats available for this enemy.",
    "enemies.stats.phase.level": "Level {level}",
    "enemies.stats.phase.single": "Stats",
    "enemies.stats.row.aspd": "ASPD",
    "enemies.stats.row.atk": "ATK",
    "enemies.stats.row.baseAttackTime": "Base ATK Time",
    "enemies.stats.row.def": "DEF",
    "enemies.stats.row.maxHp": "Max HP",
    "enemies.stats.row.moveSpeed": "Move Speed",
    "enemies.stats.row.res": "RES %",
    "enemies.stats.row.weight": "Weight",
    "gacha.banner.group.boot": "Starter Headhunting",
    "gacha.banner.group.limited": "Limited",
    "gacha.banner.group.linkage": "Collab",
    "gacha.banner.group.regular": "Standard",
    "gacha.banner.group.special": "Kernel",
    "gacha.banner.rule.attain": "Attain rate-up",
    "gacha.banner.rule.backflow": "Returning Headhunting",
    "gacha.banner.rule.classic": "Kernel headhunting",
    "gacha.banner.rule.classicAttain": "Kernel · attain rate-up",
    "gacha.banner.rule.classicDouble": "Kernel · double rate-up",
    "gacha.banner.rule.double": "Double rate-up",
    "gacha.banner.rule.fesclassic": "Kernel · anniversary",
    "gacha.banner.rule.limited": "Limited",
    "gacha.banner.rule.linkage": "Collab / joint operation",
    "gacha.banner.rule.normal": "Standard headhunting",
    "gacha.banner.rule.single": "Debut rate-up",
    "gacha.banner.rule.special": "Special",
    "gacha.banner.status.active": "Active",
    "gacha.banner.status.ended": "Ended",
    "gacha.banner.status.returning": "Returning players only",
    "gacha.banner.status.upcoming": "Upcoming",
    "gacha.banner.window.returning": "No fixed dates, opens for each player on their return",
    "gacha.community.breadcrumb.current": "Community",
    "gacha.community.breadcrumb.gacha": "Gacha",
    "gacha.community.breadcrumb.label": "breadcrumb",
    "gacha.community.compare.deviation": "{direction, select, above {above by {percent}%} other {below by {percent}%}}",
    "gacha.community.compare.onTarget": "on target",
    "gacha.community.compare.ratioBaseline": "{ratio}× baseline",
    "gacha.community.compare.ratioOfExpected": "{percent}% of expected",
    "gacha.community.error.load": "Couldn’t load community stats.",
    "gacha.community.error.unknown": "Unknown error.",
    "gacha.community.header.blurb": "Aggregated across {players} who opted into anonymous sharing. Rates are observational, not official.",
    "gacha.community.header.blurbUsers": "{count} players",
    "gacha.community.header.cached": "cached",
    "gacha.community.header.title": "What everyone’s {emphasis}.",
    "gacha.community.header.titleEmphasis": "pulling",
    "gacha.community.header.updated": "updated {when}",
    "gacha.community.kpi.avgPullsFiveStar.meta": "avg pulls / 5★ · {value}",
    "gacha.community.kpi.avgPullsSixStar": "Avg pulls / 6★",
    "gacha.community.kpi.fiveStarRate": "5★ rate · all-time",
    "gacha.community.kpi.fiveStarRate.meta": "{count} pulls",
    "gacha.community.kpi.sixStarRate": "6★ rate · all-time",
    "gacha.community.kpi.sixStarRate.meta": "{six} of {total} pulls",
    "gacha.community.kpi.totalPulls": "Total pulls",
    "gacha.community.kpi.totalPulls.meta": "{count} contributing players",
    "gacha.community.leaderboard.col.operator": "Operator",
    "gacha.community.leaderboard.col.pulls": "Pulls",
    "gacha.community.leaderboard.col.share": "Share",
    "gacha.community.leaderboard.empty": "No data for this rarity yet.",
    "gacha.community.leaderboard.kicker": "Most pulled · per rarity",
    "gacha.community.leaderboard.title": "The top of the pile.",
    "gacha.community.rarity.bar.expected": "Expected {value}",
    "gacha.community.rarity.bar.you": "You {value}",
    "gacha.community.rarity.chip.vsExpected": "vs expected",
    "gacha.community.rarity.chip.youVsCommunity": "you vs community",
    "gacha.community.rarity.chip.youVsExpected": "you vs expected",
    "gacha.community.rarity.hint.fiveStar": "8% base · 10-pull guarantee",
    "gacha.community.rarity.hint.fourStar": "50% base",
    "gacha.community.rarity.hint.sixStar": "2% base · +2%/pull after 50",
    "gacha.community.rarity.hint.threeStar": "40% base",
    "gacha.community.rarity.kicker": "Outcome mix",
    "gacha.community.rarity.kicker.withTotal": "Outcome mix · {count} pulls",
    "gacha.community.rarity.legend.expected": "expected (with pity)",
    "gacha.community.rarity.legend.note": "expected rates fold 6★ soft pity into the advertised 2/8/50/40% base - long-run 6★ is ~2.89%, and lower rarities dip slightly because a pity 6★ takes their slot",
    "gacha.community.rarity.legend.scaleNote": "comparisons scale to baseline (e.g. 4% vs 2.89% expected = 138% of expected, not \"+1.1%\")",
    "gacha.community.rarity.legend.you": "you",
    "gacha.community.rarity.pulls": "{count} pulls",
    "gacha.community.rarity.title": "Where every pull lands.",
    "gacha.community.rarity.you": "you · {count} pulls",
    "gacha.community.relative.days": "{count}d ago",
    "gacha.community.relative.hours": "{count}h ago",
    "gacha.community.relative.minutes": "{count}m ago",
    "gacha.community.relative.moments": "moments ago",
    "gacha.community.runs.averagePulls": "{count} avg",
    "gacha.community.runs.averagePullsTitle": "Average pulls per contributing player",
    "gacha.community.runs.communityPulls": "community pulls",
    "gacha.community.runs.contributors": "{count} contributing players",
    "gacha.community.runs.dateRange": "{open} → {close}",
    "gacha.community.runs.empty": "No banners match this filter.",
    "gacha.community.runs.featuredSixStar": "Featured 6★",
    "gacha.community.runs.filter": "Filter",
    "gacha.community.runs.filter.active": "Active",
    "gacha.community.runs.filter.all": "All",
    "gacha.community.runs.guarantee": "{name} within {count} pulls",
    "gacha.community.runs.guaranteeDefault": "Guaranteed 5★",
    "gacha.community.runs.kicker": "Banner runs",
    "gacha.community.runs.metric.popularity": "contributing players",
    "gacha.community.runs.metric.pulls": "community pulls",
    "gacha.community.runs.moreOperators": "{count} more",
    "gacha.community.runs.noPulls": "No community pulls yet",
    "gacha.community.runs.people": "{count} ppl",
    "gacha.community.runs.rankTitle": "Ranked #{rank} by {metric}",
    "gacha.community.runs.showAll": "Show all {count}",
    "gacha.community.runs.showFewer": "Show fewer",
    "gacha.community.runs.sort": "Sort",
    "gacha.community.runs.sort.popularity": "Popularity",
    "gacha.community.runs.sort.pulls": "Pulls",
    "gacha.community.runs.sort.timeline": "Timeline",
    "gacha.community.runs.titleActive": "{count} active right now.",
    "gacha.community.runs.titleNone": "Recent and upcoming banners.",
    "gacha.community.timing.band": "{name} - {type}",
    "gacha.community.timing.byDate": "By date · last {count} days",
    "gacha.community.timing.byDayOfWeek": "By day of week",
    "gacha.community.timing.byHour": "By hour of day · UTC",
    "gacha.community.timing.hover.more": "+{count} more",
    "gacha.community.timing.hover.pulls": "pulls",
    "gacha.community.timing.kicker": "Pull timing",
    "gacha.community.timing.legend.totalPulls": "Total pulls",
    "gacha.community.timing.title": "When the community pulls.",
    "gacha.history.banners.col.banner": "Banner",
    "gacha.history.banners.col.date": "Date",
    "gacha.history.banners.col.operator": "Operator",
    "gacha.history.banners.empty": "No pulls recorded for this banner type.",
    "gacha.history.banners.emptyFiltered": "No {rarities} pulls in {tab}. Other rarities are hidden by the filter.",
    "gacha.history.banners.emptyFilteredAll": "No {rarities} pulls on any banner. Other rarities are hidden by the filter.",
    "gacha.history.banners.emptyNoRarity": "Select at least one rarity to display pulls.",
    "gacha.history.banners.kicker": "Pull history",
    "gacha.history.banners.next": "Next",
    "gacha.history.banners.prev": "Prev",
    "gacha.history.banners.range": "{from}-{to} of {total} pulls",
    "gacha.history.banners.rarity.none": "No rarities selected",
    "gacha.history.banners.rarity.only": "{rarity}★ only",
    "gacha.history.banners.rarityChip": "{rarity} star ({count} pulls)",
    "gacha.history.banners.rarityLabel": "Rarity",
    "gacha.history.banners.showAllRarities": "Show all rarities",
    "gacha.history.banners.status.all": "Showing all rarities.",
    "gacha.history.banners.status.filtered": "Filtered to {rarities}. Showing {shown} of {total} {tab} pulls.",
    "gacha.history.banners.status.filteredAll": "Filtered to {rarities}. Showing {shown} of {total} pulls across every banner.",
    "gacha.history.banners.tab.all": "All",
    "gacha.history.banners.title": "Every pull, sorted newest first.",
    "gacha.history.breakdown.col.banner": "Banner",
    "gacha.history.breakdown.col.distribution": "Distribution",
    "gacha.history.breakdown.col.lastPull": "Last pull",
    "gacha.history.breakdown.col.pulls": "Pulls",
    "gacha.history.breakdown.col.sixStars": "6★",
    "gacha.history.breakdown.dateRange": "{open} → {close}",
    "gacha.history.breakdown.empty": "No banner data yet.",
    "gacha.history.breakdown.featured": "Featured {rarity}★",
    "gacha.history.breakdown.guarantee": "{name} within {count} pulls",
    "gacha.history.breakdown.guaranteeDefault": "Guaranteed 5★",
    "gacha.history.breakdown.hideSixStars": "Hide the {count} 6★ operators from {banner}",
    "gacha.history.breakdown.kicker": "Banner breakdown",
    "gacha.history.breakdown.moreOperators": "{count} more",
    "gacha.history.breakdown.offBanner": "Off-banner",
    "gacha.history.breakdown.offBannerCount": "{count} off-banner",
    "gacha.history.breakdown.pityAt": "6★ at pull {count}",
    "gacha.history.breakdown.pityAtLeast": "6★ at pull {count} or later. Earlier pulls are not in this history.",
    "gacha.history.breakdown.pityCaption": "Pity",
    "gacha.history.breakdown.pityLowerBound": "{count}+",
    "gacha.history.breakdown.pull.banner": "Banner",
    "gacha.history.breakdown.pull.counter.isolated": "This banner only",
    "gacha.history.breakdown.pull.counter.kernel": "Kernel counter, carries across banners",
    "gacha.history.breakdown.pull.counter.standard": "Standard counter, carries across banners",
    "gacha.history.breakdown.pull.lowerBound": "Earlier pulls are not in this history, so the real count may be higher.",
    "gacha.history.breakdown.pull.pity": "Pity",
    "gacha.history.breakdown.pull.previous": "Previous 6★",
    "gacha.history.breakdown.pull.previousNone": "None in history",
    "gacha.history.breakdown.pull.pulled": "Pulled",
    "gacha.history.breakdown.pull.stretch": "In those {count, plural, one {# pull} other {# pulls}}",
    "gacha.history.breakdown.pull.stretchStar": "{count} × {rarity}★",
    "gacha.history.breakdown.rateUp": "Rate-up",
    "gacha.history.breakdown.rateUpCount": "{count} rate-up",
    "gacha.history.breakdown.showSixStars": "Show the {count} 6★ operators from {banner}",
    "gacha.history.breakdown.stat.fiveStars": "5★",
    "gacha.history.breakdown.stat.pulls": "Pulls",
    "gacha.history.breakdown.stat.sixStars": "6★",
    "gacha.history.breakdown.title": "Where your pulls went.",
    "gacha.history.error.load": "Couldn’t load pull records.",
    "gacha.history.error.unknown": "Unknown error.",
    "gacha.history.header.blurb": "Pull counts, current pity, your most-pulled operators, and a full history across every banner type.",
    "gacha.history.header.communityLink": "View community stats →",
    "gacha.history.header.kicker": "Personal · pull history",
    "gacha.history.header.title": "Your {emphasis} history.",
    "gacha.history.header.titleEmphasis": "gacha",
    "gacha.history.kpi.bannerTypes": "across {count, plural, one {# banner type} other {# banner types}}",
    "gacha.history.kpi.fiveStars": "5★ operators",
    "gacha.history.kpi.orundum": "≈ {count} Orundum",
    "gacha.history.kpi.orundum.title": "{pulls} pulls x {rate} Orundum; free and discounted pulls make this an upper estimate",
    "gacha.history.kpi.orundum.titleStarter": "{pulls} pulls x {rate} Orundum + {starterPulls} Starter Headhunting pulls x {starterRate} Orundum; free and discounted pulls make this an upper estimate",
    "gacha.history.kpi.other": "Other (4★ / 3★)",
    "gacha.history.kpi.pullsUnit": "pulls",
    "gacha.history.kpi.rate": "{value}% rate",
    "gacha.history.kpi.shareOfPulls": "{value}% of pulls",
    "gacha.history.kpi.sixStars": "6★ operators",
    "gacha.history.kpi.totalPulls": "Total pulls",
    "gacha.history.noData.action": "Go to settings",
    "gacha.history.noData.body": "Sync your gacha records from the settings page to see your history, pity, and statistics here.",
    "gacha.history.noData.title": "No pull records found",
    "gacha.history.pity.bannerEnded": "banner ended",
    "gacha.history.pity.cardLabel": "{type} banner",
    "gacha.history.pity.guaranteedAt": "guaranteed at {count}",
    "gacha.history.pity.kicker": "Current pity",
    "gacha.history.pity.nearGuaranteed": "near guaranteed",
    "gacha.history.pity.pullsUnit": "pulls",
    "gacha.history.pity.resetNote": "Pity does not carry between {type} banners. Your last pull was on “{banner},” which has ended.",
    "gacha.history.pity.softPity": "soft pity",
    "gacha.history.pity.softPityAt": "soft pity at {count}",
    "gacha.history.pity.softPityAt.title": "Soft pity at {count}",
    "gacha.history.pity.title": "Pulls since last 6★.",
    "gacha.history.pity.total": "{count} total",
    "gacha.history.refresh": "Refresh records",
    "gacha.history.refresh.errBody": "Try signing in again.",
    "gacha.history.refresh.errTitle": "Couldn't refresh",
    "gacha.history.refresh.okBody": "Synced {count} records from Yostar.",
    "gacha.history.refresh.okTitle": "Up to date",
    "gacha.history.refresh.storageOff": "“Store gacha history” is off, so new pulls aren’t synced. Pulls already saved stay here.",
    "gacha.history.refresh.storageOffAction": "Change in settings",
    "gacha.history.refreshing": "Refreshing…",
    "gacha.history.signIn.action": "Sign in",
    "gacha.history.signIn.body": "Your pull history, pity counters, and operator statistics are only available after linking your Yostar account.",
    "gacha.history.signIn.title": "Sign in to view your history",
    "gacha.history.top.col.copies": "Copies",
    "gacha.history.top.col.frequency": "Frequency",
    "gacha.history.top.col.operator": "Operator",
    "gacha.history.top.empty": "No {rarity}★ operators pulled yet.",
    "gacha.history.top.kicker": "Most pulled · per rarity",
    "gacha.history.top.title": "Your top operators.",
    "gallery.music.album.addAll": "Add all",
    "gallery.music.album.addAllTitle": "Queue and playlist options for the whole album",
    "gallery.music.album.artist": "Artist",
    "gallery.music.album.copied": "Link copied",
    "gallery.music.album.copyLink": "Copy album link",
    "gallery.music.album.failed": "This album could not be loaded. Close it and open it again to try again.",
    "gallery.music.album.instrumentals": "Instrumentals",
    "gallery.music.album.kicker": "Monster Siren Records",
    "gallery.music.album.less": "Less",
    "gallery.music.album.loading": "Loading album…",
    "gallery.music.album.lyricsMeta": "{count, plural, one {# with lyrics} other {# with lyrics}}",
    "gallery.music.album.more": "More",
    "gallery.music.album.pause": "Pause",
    "gallery.music.album.play": "Play",
    "gallery.music.album.shuffle": "Shuffle",
    "gallery.music.album.since": "On Monster Siren since",
    "gallery.music.album.sinceMeta": "On Monster Siren since {date}",
    "gallery.music.album.subline": "{artists} · {count, plural, one {# track} other {# tracks}}",
    "gallery.music.album.tracks": "Tracks",
    "gallery.music.album.withLyrics": "With lyrics",
    "gallery.music.breadcrumb": "Breadcrumb",
    "gallery.music.breadcrumb.gallery": "Gallery",
    "gallery.music.charts.failed": "Couldn't load the charts. Try again in a bit.",
    "gallery.music.charts.level": "Lv. {level}",
    "gallery.music.charts.listens": "{count, plural, one {# play} other {# plays}}",
    "gallery.music.charts.more": "Show more",
    "gallery.music.charts.noTracks": "Nothing has been played in this span yet.",
    "gallery.music.charts.nobody": "No signed-in listener in this span yet.",
    "gallery.music.charts.profile": "{rank}. {name}, {listens}, {time}. Open profile",
    "gallery.music.charts.publicNote": "Only signed-in listeners with a public profile are ranked.",
    "gallery.music.charts.ranked": "{count, plural, one {# listener ranked} other {# listeners ranked}}",
    "gallery.music.charts.rules": "A play counts after 30 seconds, or half of a shorter track, at most once per listener and track every 30 minutes. A download counts at most once a day.",
    "gallery.music.charts.sort.listens": "Plays",
    "gallery.music.charts.sort.time": "Time",
    "gallery.music.charts.sortAria": "Rank listeners by",
    "gallery.music.charts.topListeners": "Top listeners",
    "gallery.music.charts.topTracks": "Top tracks",
    "gallery.music.charts.trackAria": "{rank}. Play {name}, {listens}",
    "gallery.music.charts.trackKicker": "Top listeners",
    "gallery.music.charts.trackListeners": "Top listeners",
    "gallery.music.charts.trackListenersOf": "Top listeners of {name}",
    "gallery.music.charts.trackNobody": "No signed-in listener has played this in that span yet.",
    "gallery.music.charts.trackTotals": "{listens, plural, one {# play} other {# plays}} and {downloads, plural, one {# download} other {# downloads}} of all time",
    "gallery.music.charts.unavailable": "Charts aren't available yet.",
    "gallery.music.charts.window.all": "All time",
    "gallery.music.charts.window.month": "This month",
    "gallery.music.charts.window.week": "This week",
    "gallery.music.charts.windowAria": "Time span",
    "gallery.music.counts": "{albums, plural, one {# album or EP} other {# albums and EPs}} from Monster Siren Records, plus {tracks, plural, one {# track} other {# tracks}} from the game",
    "gallery.music.counts.exact": "{listens, plural, one {# play} other {# plays}} · {downloads, plural, one {# download} other {# downloads}}",
    "gallery.music.counts.loading": "Loading…",
    "gallery.music.counts.noSiren": "The server doesn't have the Monster Siren Records catalogue yet, so only the game's {tracks, plural, one {# track} other {# tracks}} are here.",
    "gallery.music.counts.sirenOnly": "{albums, plural, one {# album or EP} other {# albums and EPs}} from Monster Siren Records",
    "gallery.music.counts.syncing": "Syncing the label catalogue… This takes a minute the first time the server starts.",
    "gallery.music.discovery.aria": "Albums, newest first",
    "gallery.music.discovery.current": "{name}, album {position} of {total}",
    "gallery.music.discovery.hint.browse": "Drag or scroll to browse",
    "gallery.music.discovery.hint.open": "Enter or click to open",
    "gallery.music.discovery.hint.step": "← → to step",
    "gallery.music.discovery.jump": "Jump to album",
    "gallery.music.discovery.jump.empty": "No matches.",
    "gallery.music.discovery.jump.placeholder": "Jump to album…",
    "gallery.music.discovery.roledescription": "coverflow",
    "gallery.music.discovery.toGame": "Browse the game's soundtrack",
    "gallery.music.download.busy": "Downloading {name}",
    "gallery.music.download.failed": "Download failed",
    "gallery.music.download.failedTrack": "Couldn't download {name}. Try again in a bit.",
    "gallery.music.download.intro": "Intro",
    "gallery.music.download.introAria": "Download the intro of {name}",
    "gallery.music.download.label": "Download",
    "gallery.music.download.loop": "Loop",
    "gallery.music.download.loopAria": "Download the loop of {name}",
    "gallery.music.download.progress": "{percent} done",
    "gallery.music.download.received": "{size} MB so far",
    "gallery.music.download.saved": "Saved {name}",
    "gallery.music.download.starting": "Starting",
    "gallery.music.empty": "No tracks match that.",
    "gallery.music.failed": "Couldn't load the music list. Try again in a bit.",
    "gallery.music.filter.filters": "Filters",
    "gallery.music.filter.hideInstrumentals": "Hide instrumentals",
    "gallery.music.filter.reset": "Reset",
    "gallery.music.filter.reverse": "Reverse sort direction",
    "gallery.music.filter.searchPlaceholder": "Search tracks, albums, artists…",
    "gallery.music.filter.sort.album.newest": "Newest first",
    "gallery.music.filter.sort.album.title": "Title",
    "gallery.music.filter.sort.album.tracks": "Track count",
    "gallery.music.filter.sort.song.album": "Album",
    "gallery.music.filter.sort.song.artist": "Artist",
    "gallery.music.filter.sort.song.catalog": "Catalog order",
    "gallery.music.filter.sort.song.title": "Title",
    "gallery.music.filter.sortBy": "Sort by",
    "gallery.music.kind.all": "All",
    "gallery.music.kind.aria": "What the track is for",
    "gallery.music.kind.battle": "Battle",
    "gallery.music.kind.lobby": "Lobby",
    "gallery.music.kind.map": "Map",
    "gallery.music.kind.story": "Story",
    "gallery.music.list.actions": "Actions",
    "gallery.music.list.actionsTitle": "Queue and playlist options for the selection",
    "gallery.music.list.add": "Add",
    "gallery.music.list.addTitle": "Queue and playlist options",
    "gallery.music.list.addTrack": "Queue and playlist options for {name}",
    "gallery.music.list.album": "Album",
    "gallery.music.list.artist": "Artist",
    "gallery.music.list.clear": "Clear",
    "gallery.music.list.empty": "No tracks match.",
    "gallery.music.list.hasLyrics": "Has lyrics",
    "gallery.music.list.inst": "INST",
    "gallery.music.list.like": "Like",
    "gallery.music.list.likeTrack": "Like {name}",
    "gallery.music.list.listens": "Plays",
    "gallery.music.list.missing": "{count, plural, one {# track isn't} other {# tracks aren't}} in the catalogue right now.",
    "gallery.music.list.missingLiked": "{count, plural, one {# liked track isn't} other {# liked tracks aren't}} in the catalogue right now.",
    "gallery.music.list.noAlbums": "No albums match.",
    "gallery.music.list.noArtists": "No artists match.",
    "gallery.music.list.remove": "Remove from playlist",
    "gallery.music.list.removeTrack": "Remove {name} from this playlist",
    "gallery.music.list.reorder": "Drag to move {name}",
    "gallery.music.list.reorderHint": "Drag to reorder, or Alt+↑/↓ on a row",
    "gallery.music.list.select": "Select {name}",
    "gallery.music.list.selectAll": "Select all shown",
    "gallery.music.list.selected": "{count, plural, one {# selected} other {# selected}}",
    "gallery.music.list.title": "Title",
    "gallery.music.list.trackCount": "{count, plural, one {# track} other {# tracks}}",
    "gallery.music.list.unlike": "Unlike {name}",
    "gallery.music.loading": "Loading tracks",
    "gallery.music.loopNote": "Plays the intro once, then loops, like the game does.",
    "gallery.music.lyrics.empty": "Lyrics file was empty.",
    "gallery.music.lyrics.failed": "Couldn't load lyrics.",
    "gallery.music.lyrics.jump": "Jump to {time}: {line}",
    "gallery.music.lyrics.loading": "Loading lyrics…",
    "gallery.music.lyrics.none": "No lyrics for this track.",
    "gallery.music.lyrics.nothing": "Nothing playing.",
    "gallery.music.lyrics.title": "Lyrics",
    "gallery.music.menu.addTo": "Add to \"{name}\"",
    "gallery.music.menu.addToAdded": "Add to \"{name}\" (added)",
    "gallery.music.menu.addToQueue": "Add to queue",
    "gallery.music.menu.added": "{count, plural, one {Added # track} other {Added # tracks}} to \"{name}\"",
    "gallery.music.menu.all": "{label} (all {count})",
    "gallery.music.menu.alreadyIn": "Already in \"{name}\"",
    "gallery.music.menu.created": "Made \"{name}\" with {count, plural, one {# track} other {# tracks}}",
    "gallery.music.menu.download": "Download",
    "gallery.music.menu.downloading": "Downloading",
    "gallery.music.menu.downloadingPercent": "Downloading {percent}",
    "gallery.music.menu.listeners": "Top listeners",
    "gallery.music.menu.newPlaylist": "New playlist…",
    "gallery.music.menu.playNext": "Play next",
    "gallery.music.place.chapter": "Main story",
    "gallery.music.place.event": "Event",
    "gallery.music.place.lobby": "Lobby",
    "gallery.music.place.map": "Map",
    "gallery.music.place.season": "Contingency Contract",
    "gallery.music.place.stage": "Stages",
    "gallery.music.place.story": "Story",
    "gallery.music.player.close": "Stop and close",
    "gallery.music.player.cycleVolume": "Volume {percent}, click to change",
    "gallery.music.player.download": "Download this track",
    "gallery.music.player.downloading": "Downloading",
    "gallery.music.player.downloadingPercent": "Downloading, {percent}",
    "gallery.music.player.error.skip": "Couldn't play \"{title}\". Skipping.",
    "gallery.music.player.error.stopped": "Stopped after {count} tracks in a row could not be played. Check your connection, then press play to try again.",
    "gallery.music.player.kicker.album": "Playing from album {name}",
    "gallery.music.player.kicker.artist": "Playing from artist {name}",
    "gallery.music.player.kicker.game": "Playing from the game",
    "gallery.music.player.kicker.none": "Now playing",
    "gallery.music.player.kicker.other": "Playing from {name}",
    "gallery.music.player.kicker.playlist": "Playing from playlist {name}",
    "gallery.music.player.kicker.radio": "Radio from {name}",
    "gallery.music.player.kicker.search": "Playing from search {name}",
    "gallery.music.player.like": "Like",
    "gallery.music.player.loading": "Loading",
    "gallery.music.player.loopPoint": "The loop starts here",
    "gallery.music.player.lyrics": "Lyrics",
    "gallery.music.player.next": "Next",
    "gallery.music.player.nowPlaying": "Now playing: {title}",
    "gallery.music.player.openPage": "Open the music page",
    "gallery.music.player.openQueue": "Open the queue",
    "gallery.music.player.pause": "Pause",
    "gallery.music.player.play": "Play",
    "gallery.music.player.previous": "Previous",
    "gallery.music.player.queue": "Queue",
    "gallery.music.player.region": "Music player",
    "gallery.music.player.repeat.all": "Repeat: all (click again for one track)",
    "gallery.music.player.repeat.off": "Repeat: off",
    "gallery.music.player.repeat.one": "Repeat: one track",
    "gallery.music.player.seek": "Seek",
    "gallery.music.player.seekValue": "{elapsed} of {total}",
    "gallery.music.player.settings": "Music settings",
    "gallery.music.player.shuffle.off": "Shuffle: off",
    "gallery.music.player.shuffle.on": "Shuffle: on",
    "gallery.music.player.stop": "Stop",
    "gallery.music.player.unlike": "Unlike",
    "gallery.music.player.volume": "Volume",
    "gallery.music.playlist.cancel": "Cancel",
    "gallery.music.playlist.create": "Create",
    "gallery.music.playlist.createFailed": "Couldn't make the playlist. Try again in a bit.",
    "gallery.music.playlist.delete": "Delete playlist",
    "gallery.music.playlist.deleteAction": "Delete",
    "gallery.music.playlist.deleteConfirm": "Delete playlist \"{name}\"? This can't be undone.",
    "gallery.music.playlist.deleteTitle": "Delete playlist?",
    "gallery.music.playlist.gone": "This playlist doesn't exist anymore.",
    "gallery.music.playlist.nameLabel": "Playlist name",
    "gallery.music.playlist.namePlaceholder": "e.g. Late night farming",
    "gallery.music.playlist.new": "New playlist",
    "gallery.music.playlist.newTitle": "New playlist",
    "gallery.music.playlist.rename": "Click to rename",
    "gallery.music.playlist.renameTitle": "Rename playlist",
    "gallery.music.playlist.save": "Save",
    "gallery.music.queue.cancel": "Cancel",
    "gallery.music.queue.clear": "Clear queue",
    "gallery.music.queue.clearBody": "This stops playback and empties the queue.",
    "gallery.music.queue.clearConfirm": "Clear",
    "gallery.music.queue.clearTitle": "Clear the queue?",
    "gallery.music.queue.empty": "Queue is empty.",
    "gallery.music.queue.grip": "Drag to reorder",
    "gallery.music.queue.nameLabel": "Playlist name",
    "gallery.music.queue.namePlaceholder": "e.g. Late night set",
    "gallery.music.queue.remove": "Remove {title} from the queue",
    "gallery.music.queue.row": "{title}, {position} of {total}. Press Enter to play it, Alt and the up or down arrow to move it.",
    "gallery.music.queue.rowCurrent": "{title}, playing now, {position} of {total}. Alt and the up or down arrow to move it.",
    "gallery.music.queue.save": "Save queue as a playlist",
    "gallery.music.queue.saveConfirm": "Save",
    "gallery.music.queue.saveFailed": "Couldn't save the playlist.",
    "gallery.music.queue.saveTitle": "Save queue as a playlist",
    "gallery.music.queue.saved": "Saved \"{name}\"",
    "gallery.music.queue.title": "Queue",
    "gallery.music.rail.albums": "Albums",
    "gallery.music.rail.aria": "Library sections",
    "gallery.music.rail.artistView": "Artist: {name}",
    "gallery.music.rail.artists": "Artists",
    "gallery.music.rail.charts": "Charts",
    "gallery.music.rail.game": "From the game",
    "gallery.music.rail.history": "Recently Played",
    "gallery.music.rail.liked": "Liked Songs",
    "gallery.music.rail.noPlaylists": "No playlists yet",
    "gallery.music.rail.playlists": "Playlists",
    "gallery.music.rail.songs": "All Songs",
    "gallery.music.rail.stats": "Your Stats",
    "gallery.music.results": "{count, plural, one {# track} other {# tracks}}",
    "gallery.music.role.background": "home background",
    "gallery.music.role.battle": "permanent map",
    "gallery.music.role.boss": "boss floor",
    "gallery.music.role.challenge": "high risk",
    "gallery.music.role.encounter": "encounter",
    "gallery.music.role.furniture": "base furniture",
    "gallery.music.role.jukebox": "base jukebox",
    "gallery.music.role.map": "node map",
    "gallery.music.role.menu": "menu",
    "gallery.music.role.minigame": "minigame",
    "gallery.music.role.rerun": "rerun menu",
    "gallery.music.role.shop": "shop",
    "gallery.music.row.banks": "Audio banks",
    "gallery.music.row.details": "Where {name} plays",
    "gallery.music.row.more": "+{count} more",
    "gallery.music.row.noPlace": "Nothing we can trace plays this one. It's still named in these audio banks:",
    "gallery.music.row.otherServer": "Audio from the {server} client",
    "gallery.music.row.pause": "Pause {name}",
    "gallery.music.row.places": "Where it plays",
    "gallery.music.row.play": "Play {name}",
    "gallery.music.row.shared": "Shared",
    "gallery.music.row.unavailable": "Unavailable",
    "gallery.music.row.unavailableNote": "The game still names this track, but the audio isn't published anymore.",
    "gallery.music.search.aria": "Search tracks",
    "gallery.music.search.placeholder": "Search by title or event",
    "gallery.music.settings.crossfade": "Crossfade",
    "gallery.music.settings.crossfadeHint": "Fade between tracks instead of switching right away.",
    "gallery.music.settings.duration": "Crossfade length",
    "gallery.music.settings.durationHint": "How long the fade lasts, in seconds.",
    "gallery.music.settings.durationValue": "{seconds}s",
    "gallery.music.settings.keyboardHint": "Press ? to see the shortcuts",
    "gallery.music.settings.leveling": "Auto volume leveling",
    "gallery.music.settings.levelingHint": "Smooths out loud and quiet jumps with a compressor on what's playing. Label tracks only.",
    "gallery.music.settings.note": "With crossfade off, tracks still switch as smoothly as they can, using whatever is already loaded.",
    "gallery.music.settings.preload": "Preload next track",
    "gallery.music.settings.preloadHint": "Loads the next track in the background so it starts right away. Off on phones and with Data Saver until you switch it on here.",
    "gallery.music.settings.radio": "Radio",
    "gallery.music.settings.radioHint": "When your queue ends, keep playing the rest of the album, then the albums released around it.",
    "gallery.music.settings.resume": "Resume playback position",
    "gallery.music.settings.resumeHint": "Pick up where you left off after reloading the page.",
    "gallery.music.settings.section.extras": "Extras",
    "gallery.music.settings.section.keyboard": "Keyboard",
    "gallery.music.settings.section.playback": "Playback",
    "gallery.music.settings.section.transitions": "Track transitions",
    "gallery.music.settings.section.volume": "Volume",
    "gallery.music.settings.show": "Show",
    "gallery.music.settings.sleep": "Sleep timer",
    "gallery.music.settings.sleepChoice": "{minutes}m",
    "gallery.music.settings.sleepChoiceOff": "Off",
    "gallery.music.settings.sleepGroup": "Pause playback after",
    "gallery.music.settings.sleepIn": "Pauses in {time}",
    "gallery.music.settings.sleepOff": "Off",
    "gallery.music.settings.title": "Music settings",
    "gallery.music.shortcut.action": "Action",
    "gallery.music.shortcut.back": "Back 10 seconds",
    "gallery.music.shortcut.close": "Close a panel or dialog",
    "gallery.music.shortcut.forward": "Forward 10 seconds",
    "gallery.music.shortcut.help": "This list",
    "gallery.music.shortcut.keys": "Keys",
    "gallery.music.shortcut.like": "Like the track",
    "gallery.music.shortcut.lyrics": "Show or hide lyrics",
    "gallery.music.shortcut.mute": "Mute or unmute",
    "gallery.music.shortcut.next": "Next track",
    "gallery.music.shortcut.or": "or",
    "gallery.music.shortcut.playPause": "Play or pause",
    "gallery.music.shortcut.previous": "Previous track (restarts the track after 3 seconds)",
    "gallery.music.shortcut.queue": "Show or hide the queue",
    "gallery.music.shortcut.repeat": "Repeat (off, all, one)",
    "gallery.music.shortcut.shuffle": "Shuffle",
    "gallery.music.shortcut.title": "Keyboard shortcuts",
    "gallery.music.showMore": "Show {count} more ({remaining} left)",
    "gallery.music.siren.failed": "Couldn't load the Monster Siren Records catalogue. Try again in a bit.",
    "gallery.music.siren.missing": "The server doesn't have the Monster Siren Records catalogue yet.",
    "gallery.music.stats.empty": "No listening history yet. Play something first.",
    "gallery.music.stats.hours": "{hours}h {minutes}m",
    "gallery.music.stats.localNote": "You're not signed in, so likes, playlists and stats live in this browser only.",
    "gallery.music.stats.minutes": "{minutes}m",
    "gallery.music.stats.never": "N/A",
    "gallery.music.stats.noArtists": "No guest artists played yet.",
    "gallery.music.stats.nothing": "Nothing yet.",
    "gallery.music.stats.played": "Tracks played",
    "gallery.music.stats.seconds": "{seconds}s",
    "gallery.music.stats.since": "Listening since",
    "gallery.music.stats.time": "Listening time",
    "gallery.music.stats.times": "{count}×",
    "gallery.music.stats.topAlbums": "Top albums",
    "gallery.music.stats.topArtists": "Top artists",
    "gallery.music.stats.topTracks": "Top tracks",
    "gallery.music.tab.aria": "Music sections",
    "gallery.music.tab.discovery": "Discovery",
    "gallery.music.tab.library": "Library",
    "gallery.music.tab.lyrics": "Lyrics",
    "gallery.music.tab.lyricsTitle": "Show lyrics for the current track",
    "gallery.music.tab.queue": "Queue",
    "gallery.music.tab.queueTitle": "Show the queue",
    "gallery.music.title": "Music",
    "gallery.music.unavailableRoute": "The music list isn't available yet.",
    "grids.board.label": "{title}, a grid of {rows} by {cols}",
    "grids.board.untitled": "Untitled grid",
    "grids.browse.blurb": "Fill a board of prompts with your picks, share it, or use someone else's as a template.",
    "grids.browse.empty": "No grids yet.",
    "grids.browse.emptyHint": "Start one with New grid.",
    "grids.browse.emptySearch": "No grids match your search.",
    "grids.browse.error": "Grids could not be loaded.",
    "grids.browse.kicker": "Community",
    "grids.browse.mine": "My grids",
    "grids.browse.next": "Next",
    "grids.browse.pageOf": "Page {page} of {total}",
    "grids.browse.pagination": "Pages",
    "grids.browse.prev": "Previous",
    "grids.browse.retry": "Try again",
    "grids.browse.searchLabel": "Search grids",
    "grids.browse.searchPlaceholder": "Search by title",
    "grids.browse.sort.popular": "Popular",
    "grids.browse.sort.recent": "Recent",
    "grids.browse.sortLabel": "Sort grids",
    "grids.browse.title": "Grids",
    "grids.card.by": "by {name}",
    "grids.card.forks": "{count, plural, one {Used as a template {formatted} time} other {Used as a template {formatted} times}}",
    "grids.cell.addItem": "Add Item",
    "grids.cell.change": "{name} in row {row}, column {col}. Change it",
    "grids.cell.clear": "Remove {name} from row {row}, column {col}",
    "grids.cell.editLabel": "Label of row {row}, column {col}: {label}. Edit it",
    "grids.cell.labelInput": "Label of row {row}, column {col}",
    "grids.cell.labelPlaceholder": "Add label",
    "grids.cell.noLabel": "none",
    "grids.cell.open": "Edit row {row}, column {col}",
    "grids.cell.pick": "Pick something for row {row}, column {col}",
    "grids.cell.view.both": "{label}: {name}. Row {row}, column {col}. Open it full screen",
    "grids.cell.view.label": "{label}. Row {row}, column {col}. Open it full screen",
    "grids.cell.view.pick": "{name}. Row {row}, column {col}. Open it full screen",
    "grids.create.aboutMeTitle": "About Me",
    "grids.create.cancel": "Cancel",
    "grids.create.cols": "Columns",
    "grids.create.description": "Start blank or from a ready-made set of labels. You can change everything later.",
    "grids.create.name": "Title",
    "grids.create.namePlaceholder": "e.g. My Arknights favorites",
    "grids.create.open": "New grid",
    "grids.create.rows": "Rows",
    "grids.create.starter": "Start from",
    "grids.create.starter.aboutMe": "About Me (Arknights)",
    "grids.create.starter.aboutMeHint": "A {size} by {size} of favorites to fill in.",
    "grids.create.starter.blank": "Blank",
    "grids.create.starter.blankHint": "Empty cells, your own labels.",
    "grids.create.submit": "Create and edit",
    "grids.create.title": "New grid",
    "grids.delete.action": "Delete",
    "grids.edit.allSaved": "All saved",
    "grids.edit.breadcrumbEdit": "Edit",
    "grids.edit.breadcrumbMine": "My grids",
    "grids.edit.breadcrumbUntitled": "Untitled",
    "grids.edit.cols": "Columns",
    "grids.edit.descriptionLabel": "Description",
    "grids.edit.descriptionPlaceholder": "What is this grid about? (optional)",
    "grids.edit.discard": "Discard changes",
    "grids.edit.forbidden.action": "View the grid",
    "grids.edit.forbidden.body": "Only its owner can change it. You can still use it as a template.",
    "grids.edit.forbidden.title": "You can't edit this grid",
    "grids.edit.hint": "Click a picture to choose what goes in it, click a label to rename it, drag a cell onto another to swap them.",
    "grids.edit.kicker": "Editing grid",
    "grids.edit.leave.body": "Your unsaved changes to this grid will be lost.",
    "grids.edit.leave.cancel": "Stay",
    "grids.edit.leave.confirm": "Leave",
    "grids.edit.leave.title": "Leave without saving?",
    "grids.edit.listed": "Listed",
    "grids.edit.listedOff": "Only people with the link can see it",
    "grids.edit.listedOn": "Shown in Browse grids",
    "grids.edit.missing.action": "Back to my grids",
    "grids.edit.missing.body": "It may have been deleted, or the link is wrong.",
    "grids.edit.missing.title": "Grid not found",
    "grids.edit.openPublic": "Open public page",
    "grids.edit.rows": "Rows",
    "grids.edit.save": "Save",
    "grids.edit.shrink.body": "{count, plural, one {# cell with a label or pick falls outside} other {# cells with a label or pick fall outside}} a {rows} by {cols} grid and will be removed.",
    "grids.edit.shrink.cancel": "Keep size",
    "grids.edit.shrink.confirm": "Remove and resize",
    "grids.edit.shrink.title": "Remove filled cells?",
    "grids.edit.titleLabel": "Grid title",
    "grids.edit.titlePlaceholder": "Name your grid",
    "grids.edit.titleRequired": "A grid needs a title before it can be saved.",
    "grids.edit.toast.saveFailedTitle": "Could not save",
    "grids.edit.toast.savedBody": "Your changes are live.",
    "grids.edit.toast.savedTitle": "Grid saved",
    "grids.edit.unsaved": "Unsaved changes",
    "grids.edit.unsavedBody": "Save to publish your changes.",
    "grids.edit.upToDate": "Your grid is up to date.",
    "grids.kinds.atLeastOne": "A grid allows at least one type.",
    "grids.kinds.change": "Change",
    "grids.kinds.clear.body": "{count, plural, one {# pick is of a type you removed and will be cleared.} other {# picks are of types you removed and will be cleared.}} Labels stay.",
    "grids.kinds.clear.cancel": "Keep types",
    "grids.kinds.clear.confirm": "Clear picks",
    "grids.kinds.clear.title": "Clear picks?",
    "grids.kinds.dialog.apply": "Apply",
    "grids.kinds.dialog.cancel": "Cancel",
    "grids.kinds.dialog.description": "People filling in this grid can only pick these types. Changes save with your other edits.",
    "grids.kinds.dialog.title": "Allowed types",
    "grids.kinds.hint": "People filling in this grid can only pick these.",
    "grids.kinds.label": "Allowed types",
    "grids.kinds.locked": "Set by the template this grid was made from.",
    "grids.kinds.more": "+{count}",
    "grids.kinds.moreTitle": "Also allows: {kinds}",
    "grids.kinds.placed": "{count, plural, one {# pick} other {# picks}}",
    "grids.my.browse": "Browse grids",
    "grids.my.count": "{count, plural, one {# grid} other {# grids}} of {max}",
    "grids.my.delete": "Delete {title}",
    "grids.my.deleteDialog.body": "\"{title}\" will be deleted for good. Grids made from it keep their own copy.",
    "grids.my.deleteDialog.cancel": "Cancel",
    "grids.my.deleteDialog.confirm": "Delete",
    "grids.my.deleteDialog.title": "Delete this grid?",
    "grids.my.edit": "Edit",
    "grids.my.emptyBody": "Make one from scratch, or open any grid and use it as a template.",
    "grids.my.emptyTitle": "You have no grids yet.",
    "grids.my.error": "Your grids could not be loaded.",
    "grids.my.kicker": "Your grids",
    "grids.my.retry": "Try again",
    "grids.my.title": "My Grids",
    "grids.my.toast.deleted": "Deleted \"{title}\"",
    "grids.my.unlisted": "Unlisted",
    "grids.picker.cancel": "Cancel",
    "grids.picker.clear": "Clear",
    "grids.picker.clearFilters": "Clear filters",
    "grids.picker.description": "Choose an operator, skin, event or anything else for this cell.",
    "grids.picker.empty": "Nothing matches your search and filters.",
    "grids.picker.error": "This list could not be loaded.",
    "grids.picker.filters": "Filters",
    "grids.picker.kinds": "What to pick from",
    "grids.picker.loading": "Loading…",
    "grids.picker.previewBadge": "CN",
    "grids.picker.previewHint": "Operators marked {badge} are out on the Chinese server and not yet on yours.",
    "grids.picker.previewLabel": "{name}, not yet released on your server",
    "grids.picker.retry": "Retry",
    "grids.picker.searchPlaceholder": "Search {kind}",
    "grids.picker.showMore": "Show more ({shown} of {total})",
    "grids.picker.title": "Pick for row {row}, column {col}",
    "grids.picker.titleLabelled": "Pick: {label}",
    "grids.sheet.change": "Change",
    "grids.sheet.clear": "Clear",
    "grids.sheet.count": "Cell {n} of {total}",
    "grids.sheet.counter": "{count}/{max}",
    "grids.sheet.description": "Edit this cell's label and pick. Changes are kept until you save the grid.",
    "grids.sheet.done": "Done",
    "grids.sheet.empty": "Nothing picked yet",
    "grids.sheet.label": "Label",
    "grids.sheet.next": "Next cell",
    "grids.sheet.pick": "Pick",
    "grids.sheet.prev": "Previous cell",
    "grids.sheet.title": "Row {row}, column {col}",
    "grids.view.back": "All grids",
    "grids.view.by": "by {name}",
    "grids.view.cellHint": "Tap a cell to see it full screen.",
    "grids.view.copy": "Copy link",
    "grids.view.copy.errTitle": "Could not copy the link",
    "grids.view.copy.okTitle": "Link copied",
    "grids.view.download": "Download PNG",
    "grids.view.download.errBody": "The image could not be generated. Try again in a moment.",
    "grids.view.download.errTitle": "Download failed",
    "grids.view.downloading": "Preparing…",
    "grids.view.edit": "Edit",
    "grids.view.fork": "Use this template",
    "grids.view.fork.errTitle": "Could not copy this grid",
    "grids.view.forks": "{count, plural, one {{formatted} use} other {{formatted} uses}}",
    "grids.view.missing.action": "Browse grids",
    "grids.view.missing.body": "It may have been deleted, or the link is wrong.",
    "grids.view.missing.title": "Grid not found",
    "grids.view.templateOf": "Template:",
    "grids.view.unlisted": "Unlisted",
    "grids.viewer.close": "Close",
    "grids.viewer.count": "{n} of {total}",
    "grids.viewer.hint": "Use the arrow keys or swipe to move between cells.",
    "grids.viewer.next": "Next cell",
    "grids.viewer.noPick": "Nothing picked for this cell",
    "grids.viewer.openPage": "Open page",
    "grids.viewer.position": "Row {row}, column {col}",
    "grids.viewer.prev": "Previous cell",
    "grids.viewer.unknown": "Not in this server's game data",
    "grids.viewer.untitledCell": "Cell at row {row}, column {col}",
    "home.hero.cue.subtitle": "See what's happening now",
    "home.hero.cue.title": "Want to know some of Myrtle's functions?",
    "home.hero.hint": "Press {keys} to search.",
    "home.hero.lead": "Show off your roster, plan your pulls and skins, see what’s coming to EN, and check the tier lists and leaderboards.",
    "home.hero.myrtleAlt": "Myrtle, asleep under a blanket",
    "home.hero.title": "myrtle.moe",
    "home.leaders.empty": "No ranked players yet.",
    "home.leaders.error": "Couldn't load the leaderboard.",
    "home.leaders.meta": "{server} · Lv {level}",
    "home.leaders.seeAll": "Full leaderboard →",
    "home.leaders.title": "Top Players",
    "home.leaders.viewProfile": "View {nickname}'s profile",
    "home.live.bannerKind": "{kind} banner",
    "home.live.bannerMore": "{names} +{count} more",
    "home.live.bannerUnlisted": "Rate-up operators not listed",
    "home.live.countdown": "{days}d {clock}",
    "home.live.empty": "Nothing running on {server} right now.",
    "home.live.ended": "ended",
    "home.live.error": "Couldn't load what's running on {server}.",
    "home.live.eventDetail": "Event · ends {date}",
    "home.live.seeAll": "All current banners →",
    "home.live.title": "Ending soon",
    "home.live.upcoming": "See what's coming next →",
    "home.updates.seeAll": "Changelog →",
    "home.updates.title": "Latest updates",
    "legal.privacy.changes.heading": "Changes to This Policy",
    "legal.privacy.changes.p1": "We may update this Privacy Policy from time to time to reflect changes in our practices or legal requirements. We will notify you of any material changes by posting the new policy on this page and updating the \"Effective Date\" at the top.",
    "legal.privacy.changes.p2": "We encourage you to review this Privacy Policy periodically. Your continued use of the Service after changes are posted constitutes your acceptance of the updated policy.",
    "legal.privacy.children.body": "Our Service is not directed to individuals under the age of 13. We do not knowingly collect personal information from children under 13. If you become aware that a child has provided us with personal information, please contact us and we will take steps to delete such information.",
    "legal.privacy.children.heading": "Children's Privacy",
    "legal.privacy.collect.account.heading": "Account Information",
    "legal.privacy.collect.account.intro": "When you create an account via Yostar OAuth, we store:",
    "legal.privacy.collect.account.settings.body": "- your Myrtle preferences: theme, accent color, profile visibility, leaderboard opt-in, and notification settings",
    "legal.privacy.collect.account.settings.label": "Profile settings",
    "legal.privacy.collect.account.uid.body": "- your in-game identifier and display name",
    "legal.privacy.collect.account.uid.label": "Arknights UID and nickname",
    "legal.privacy.collect.emailNote": "We do not store your email address. It is only used during the Yostar authentication process to receive your verification code and is not saved to our database.",
    "legal.privacy.collect.game.base.body": "- RIIC building configuration and efficiency data",
    "legal.privacy.collect.game.base.label": "Base layout",
    "legal.privacy.collect.game.heading": "Game Data (Synced from Arknights)",
    "legal.privacy.collect.game.intro": "When you sync your account, we fetch and store:",
    "legal.privacy.collect.game.medals.body": "- your collection of in-game medals",
    "legal.privacy.collect.game.medals.label": "Medals and achievements",
    "legal.privacy.collect.game.roguelike.body": "- Integrated Strategies themes, endings, buffs, and Reclamation Algorithm data",
    "legal.privacy.collect.game.roguelike.label": "Roguelike & Reclamation Algorithm progress",
    "legal.privacy.collect.game.roster.body": "- all operators you own, including level, promotion, trust, potential, skill levels, masteries, and equipped modules",
    "legal.privacy.collect.game.roster.label": "Operator roster",
    "legal.privacy.collect.game.stages.body": "- mainline, sidestory, and activity stage completion status",
    "legal.privacy.collect.game.stages.label": "Stage progress",
    "legal.privacy.collect.heading": "Information We Collect",
    "legal.privacy.collect.ipNote": "Your IP address is not collected or stored. All API requests are routed through our server, which handles communication with our backend internally. Rate limiting is applied at the server level, not based on individual user IPs.",
    "legal.privacy.collect.note": "Note:",
    "legal.privacy.collect.saved.dps.body": "- saved operator setups and comparison configurations",
    "legal.privacy.collect.saved.dps.label": "DPS calculator configurations",
    "legal.privacy.collect.saved.heading": "Saved Configurations",
    "legal.privacy.collect.subheading": "Understanding what data flows through our system",
    "legal.privacy.collect.technical.heading": "Technical Data",
    "legal.privacy.collect.technical.logs.body": "- diagnostic data to help us fix bugs, stored temporarily",
    "legal.privacy.collect.technical.logs.label": "Error logs",
    "legal.privacy.contact.gdpr.label": "Privacy & GDPR requests",
    "legal.privacy.contact.gdpr.note": "For access, rectification, erasure, portability, or objection requests under the GDPR (or comparable data-protection laws).",
    "legal.privacy.contact.general.label": "General contact",
    "legal.privacy.contact.getInTouch": "Get in Touch",
    "legal.privacy.contact.heading": "Contact Us",
    "legal.privacy.contact.inApp.label": "In-app",
    "legal.privacy.contact.inApp.link": "Manage your privacy in settings",
    "legal.privacy.contact.intro": "If you have any questions, concerns, or requests regarding this Privacy Policy or your personal data, please contact us:",
    "legal.privacy.contact.source.label": "Source code",
    "legal.privacy.contact.subheading": "Questions about your privacy?",
    "legal.privacy.cta.body": "We're committed to transparency and giving you control over your data. If you have any questions or concerns, we're here to help.",
    "legal.privacy.cta.manageSettings": "Manage your privacy settings",
    "legal.privacy.cta.returnHome": "Return home",
    "legal.privacy.cta.title": "Your Privacy is Our Priority",
    "legal.privacy.deletePath": "Settings → Danger zone → Delete my data",
    "legal.privacy.hero.effective": "Effective: {date}",
    "legal.privacy.hero.subtitle": "Your privacy matters. Here's how we protect and handle your personal information.",
    "legal.privacy.hero.title": "Privacy Policy",
    "legal.privacy.hero.version": "Version {version}",
    "legal.privacy.principles.control.desc": "You decide what's visible and can delete your data at any time.",
    "legal.privacy.principles.control.title": "Your Control",
    "legal.privacy.principles.heading": "Our Privacy Principles",
    "legal.privacy.principles.minimal.desc": "We only collect what we absolutely need to provide our services.",
    "legal.privacy.principles.minimal.title": "Minimal Collection",
    "legal.privacy.principles.transparency.desc": "We're upfront about what data we collect and why we collect it.",
    "legal.privacy.principles.transparency.title": "Full Transparency",
    "legal.privacy.related.terms": "Terms of Service",
    "legal.privacy.rights.access.body": "Request a copy of all data we hold about you in a portable format. You can view most of your data directly on your profile page, including your synced game data, scores, and settings.",
    "legal.privacy.rights.access.summary": "Access & Export",
    "legal.privacy.rights.correction.body": "Update your preferences through your account settings. If your game data is out of date, you can re-sync at any time to fetch the latest information from Yostar's servers.",
    "legal.privacy.rights.correction.summary": "Correction & Re-sync",
    "legal.privacy.rights.deletion.body": "Delete your account and all its data yourself from {deletePath}. It removes your profile, synced game data, scores, gacha history, plans, grids, the tier lists you made, your settings, and the saved Yostar login, right away and for good. Official tier lists and translations you worked on stay up without your name. If you can't sign in, email {email} and we'll do it for you.",
    "legal.privacy.rights.deletion.summary": "Account Deletion",
    "legal.privacy.rights.heading": "Your Rights & Choices",
    "legal.privacy.rights.intro": "You have the following rights regarding your personal information:",
    "legal.privacy.rights.subheading": "Control over your personal data",
    "legal.privacy.rights.visibility.body": "Choose who can see your profile and roster (public, friends-only, or private). Control whether you appear on public leaderboards. All visibility settings can be changed at any time in your settings page.",
    "legal.privacy.rights.visibility.summary": "Visibility Control",
    "legal.privacy.security.database.body": "Your data is stored in PostgreSQL with proper constraints and transactions. Game data is fetched fresh from Yostar's servers when you sync - we store a copy so you can access your profile and leaderboard features without re-authenticating.",
    "legal.privacy.security.database.title": "Database",
    "legal.privacy.security.encryption.body": "All data transmitted over HTTPS with TLS encryption",
    "legal.privacy.security.encryption.title": "Encryption",
    "legal.privacy.security.githubLink": "GitHub",
    "legal.privacy.security.heading": "Data Security & Storage",
    "legal.privacy.security.intro": "We implement security measures to protect your personal information:",
    "legal.privacy.security.jwt.body": "Secure token-based sessions with automatic expiration",
    "legal.privacy.security.jwt.title": "JWT Authentication",
    "legal.privacy.security.openSource": "While we strive to protect your information, no method of transmission over the internet is 100% secure. Our code is open source on {link}, so you can review our security practices.",
    "legal.privacy.security.rateLimit.body": "Rate limits applied at server level without tracking user IPs",
    "legal.privacy.security.rateLimit.title": "Server-Side Rate Limiting",
    "legal.privacy.security.redis.body": "Game data cached with a 1-hour TTL for performance. Your Yostar token is not kept here - it is stored encrypted in the database.",
    "legal.privacy.security.redis.title": "Redis Caching",
    "legal.privacy.security.subheading": "How we protect your information",
    "legal.privacy.settings.heading": "User Settings & Profile Visibility",
    "legal.privacy.settings.intro": "Your settings page gives you full control over how your data is shared with others:",
    "legal.privacy.settings.leaderboard.body": "Opt in or out of appearing on public leaderboards. Your scores are still calculated but won't be displayed publicly if you opt out.",
    "legal.privacy.settings.leaderboard.title": "Leaderboard Participation",
    "legal.privacy.settings.private.dps": "Your saved DPS calculator configurations",
    "legal.privacy.settings.private.email": "Your email and authentication methods",
    "legal.privacy.settings.private.settings": "Your settings and preferences",
    "legal.privacy.settings.private.title": "What's Always Private",
    "legal.privacy.settings.private.tokens": "Your authentication tokens and session data",
    "legal.privacy.settings.public.avatar": "Your profile avatar and selected assistant",
    "legal.privacy.settings.public.nickname": "Your Arknights nickname and UID",
    "legal.privacy.settings.public.rankings": "Your leaderboard rankings (if opted in)",
    "legal.privacy.settings.public.roster": "Your operator roster and account scores",
    "legal.privacy.settings.public.title": "What's Publicly Visible (when profile is public)",
    "legal.privacy.settings.subheading": "Control how your information is displayed",
    "legal.privacy.settings.visibility.body": "Choose whether your profile is public (anyone can view), friends-only, or completely private.",
    "legal.privacy.settings.visibility.title": "Profile Visibility",
    "legal.privacy.thirdParty.heading": "Third-Party Services",
    "legal.privacy.thirdParty.hosting.body": "Our servers and databases are hosted on secure cloud infrastructure.",
    "legal.privacy.thirdParty.hosting.label": "Hosting infrastructure:",
    "legal.privacy.thirdParty.intro": "We interact with the following third-party services:",
    "legal.privacy.thirdParty.noSelling": "We do not sell, trade, or rent your personal information to third parties. We do not run ads or use your data for marketing.",
    "legal.privacy.thirdParty.servers.body": "We fetch game data from official servers (EN, JP, KR, CN, TW, Bilibili) to provide up-to-date operator information, assets, and your synced account data.",
    "legal.privacy.thirdParty.servers.label": "Arknights game servers:",
    "legal.privacy.thirdParty.yostar.body": "We use Yostar's OAuth system to authenticate you and fetch your game data. We are not affiliated with Yostar or Hypergryph - Myrtle is an independent fan project.",
    "legal.privacy.thirdParty.yostar.label": "Yostar / Hypergryph:",
    "legal.privacy.tldr.body": "We use Yostar OAuth to sync your game data - we never see your password and don't store your email address. We do keep your Yostar token, encrypted, so re-syncing doesn't need a new email code every time; you can delete it yourself any time from Settings. We collect only what's needed to provide our tools. We never sell your information. You control your profile visibility and leaderboard participation. You can delete your account and all data anytime.",
    "legal.privacy.tldr.title": "TL;DR - Quick Summary",
    "legal.privacy.use.heading": "How We Use Your Information",
    "legal.privacy.use.improvement.body": "To understand how users interact with features, identify bugs, optimize performance, and develop new functionality based on usage patterns. We use aggregated, anonymized data for these purposes.",
    "legal.privacy.use.improvement.summary": "Improvement & Development",
    "legal.privacy.use.leaderboards.body": "If you opt in to public visibility, your account scores and rankings may appear on our leaderboards. This allows the community to compare account progress across multiple dimensions (operators, stages, roguelike, Reclamation Algorithm, medals, base). You can opt out at any time in your settings.",
    "legal.privacy.use.leaderboards.summary": "Leaderboards & Community Features",
    "legal.privacy.use.security.body": "To protect against unauthorized access, detect suspicious activity, and maintain the integrity of our platform. Rate limiting is applied at the server level to prevent abuse - your individual IP address is not tracked or stored.",
    "legal.privacy.use.security.summary": "Security & Abuse Prevention",
    "legal.privacy.use.service.body": "To operate and maintain your account, sync your data across devices, and provide the core functionality of our tools and calculators. This includes displaying your operator roster, calculating account scores, and enabling profile features.",
    "legal.privacy.use.service.summary": "Service Provision",
    "legal.privacy.use.subheading": "The purposes behind our data collection",
    "legal.privacy.yostar.auth.body": "When you log in, you enter your email address in our app. Yostar sends a verification code directly to your email. You enter that code to authenticate. We never see or store your Yostar password - authentication is handled entirely by Yostar's servers. Your email address is only used during the authentication process and is not stored in our database.",
    "legal.privacy.yostar.auth.title": "How Authentication Works",
    "legal.privacy.yostar.heading": "Yostar Account Integration",
    "legal.privacy.yostar.intro": "Myrtle uses Yostar's official OAuth system to sync your Arknights account data. Here's how it works:",
    "legal.privacy.yostar.receive.p1": "Upon successful authentication, Yostar provides us with a session token that allows us to fetch your public game data: operator roster, levels, promotions, skill masteries, modules, stage progress, base layout, inventory, and account statistics. This is the same data visible in your in-game profile.",
    "legal.privacy.yostar.receive.p2": "We keep that token so re-syncing works without emailing you a new code every time. It is stored encrypted, never leaves our server, and is never shown to you or to anyone else. It stays until you disconnect your game account or delete your Myrtle account.",
    "legal.privacy.yostar.receive.title": "What We Receive from Yostar",
    "legal.privacy.yostar.revoke.body": "We are not affiliated with Hypergryph or Yostar. We access your data through the same APIs the official game client uses. You can revoke that access yourself at any time: {path} deletes the stored token, and your synced data stays on your profile. To remove the data too, {deletePath} deletes your account and everything in it. If you can't sign in anymore, email {email} instead.",
    "legal.privacy.yostar.revoke.path": "Settings → Account & data → Disconnect game account",
    "legal.privacy.yostar.subheading": "How we sync your Arknights game data",
    "legal.shell.relatedDocuments": "Related Documents",
    "legal.shell.returnHome": "Return Home",
    "legal.terms.hero.effective": "Effective: {date}",
    "legal.terms.hero.lastUpdated": "Last updated: {date}",
    "legal.terms.hero.subtitle": "Legal agreement governing your use of Myrtle",
    "legal.terms.hero.title": "Terms of Service",
    "legal.terms.hero.version": "Version {version}",
    "legal.terms.related.privacy": "Privacy Policy",
    "legal.terms.s1.heading": "1. Acceptance of Terms",
    "legal.terms.s1.p1": "By accessing, browsing, or using the Myrtle platform (\"Service\"), you acknowledge that you have read, understood, and agree to be bound by these Terms of Service and all applicable laws and regulations.",
    "legal.terms.s1.p2": "If you do not agree with any part of these terms, you must not use our Service.",
    "legal.terms.s1.p3": "These terms constitute a legally binding agreement between you (\"User,\" \"you,\" or \"your\") and Myrtle (\"we,\" \"us,\" or \"our\"). Your continued use of the Service signifies your acceptance of these terms and any modifications thereto.",
    "legal.terms.s2.eligibility.body": "You must be at least 13 years old to use this Service. By creating an account, you represent that you meet this age requirement and have the legal capacity to enter into these Terms. You must also have a valid Yostar account with Arknights.",
    "legal.terms.s2.eligibility.heading": "2.3 Account Eligibility",
    "legal.terms.s2.heading": "2. Account Registration and Security",
    "legal.terms.s2.oauth.body": "To access account features like profile sync, tier lists, and leaderboards, you must authenticate using your Yostar account (the same account you use for Arknights). We use Yostar's email verification system - you will receive a verification code from Yostar to confirm your identity. We never see or store your Yostar password.",
    "legal.terms.s2.oauth.heading": "2.1 Account Creation via Yostar OAuth",
    "legal.terms.s2.security.heading": "2.2 Account Security",
    "legal.terms.s2.security.intro": "You are responsible for:",
    "legal.terms.s2.security.item1": "Maintaining the security of your Yostar account and email",
    "legal.terms.s2.security.item2": "All activities that occur under your Myrtle account",
    "legal.terms.s2.security.item3": "Notifying us if you believe your account has been compromised",
    "legal.terms.s2.sync.body": "When you sync your account, we fetch your Arknights game data (operator roster, stage progress, etc.) from Yostar's servers. This data is stored on our servers to power features like your profile page, account scoring, and leaderboards. You can re-sync at any time to update your data, or delete your account to remove all stored data.",
    "legal.terms.s2.sync.heading": "2.4 Game Data Sync",
    "legal.terms.s3.heading": "3. Acceptable Use Policy",
    "legal.terms.s3.intro": "You agree not to engage in any of the following prohibited activities:",
    "legal.terms.s3.item1": "Using the Service for any illegal or unauthorized purpose",
    "legal.terms.s3.item2": "Attempting to gain unauthorized access to any portion of the Service or related systems",
    "legal.terms.s3.item3": "Interfering with or disrupting the Service or servers connected to the Service",
    "legal.terms.s3.item4": "Uploading or transmitting viruses, malware, or any other malicious code",
    "legal.terms.s3.item5": "Scraping, crawling, or using automated systems to extract data without permission",
    "legal.terms.s3.item6": "Impersonating any person or entity, or falsely stating your affiliation with any person or entity",
    "legal.terms.s3.item7": "Harassing, threatening, or intimidating other users",
    "legal.terms.s3.item8": "Violating any applicable local, state, national, or international law",
    "legal.terms.s3.outro": "We reserve the right to investigate and prosecute violations of any of the above to the fullest extent of the law.",
    "legal.terms.s4.guidelines.heading": "4.2 Content Guidelines",
    "legal.terms.s4.guidelines.intro": "You represent and warrant that your User Content:",
    "legal.terms.s4.guidelines.item1": "Is your original creation or you have the right to share it",
    "legal.terms.s4.guidelines.item2": "Does not contain offensive, harmful, or inappropriate material",
    "legal.terms.s4.guidelines.item3": "Does not impersonate other users or misrepresent your identity",
    "legal.terms.s4.heading": "4. User Content and Submissions",
    "legal.terms.s4.outro": "We reserve the right to remove any User Content that violates these Terms or is otherwise objectionable at our sole discretion.",
    "legal.terms.s4.p1": "Our Service allows you to create and share content such as tier lists (\"User Content\"). By creating User Content, you grant us a worldwide, non-exclusive, royalty-free license to display and distribute such content in connection with the Service.",
    "legal.terms.s4.tierLists.body": "You can create tier lists with full version control - every edit is logged and previous versions are preserved. You control the visibility (public, private, or shared with specific users) and can set permissions for who can edit your tier lists.",
    "legal.terms.s4.tierLists.heading": "4.1 Tier Lists",
    "legal.terms.s5.assets.heading": "5.2 Arknights Assets and Content",
    "legal.terms.s5.assets.p1": "Arknights and all related assets, characters, operator data, artwork, voice lines, and imagery are the property of Hypergryph Network Technology Co., Ltd. and Yostar Limited. This Service is a fan-made project and is not officially affiliated with, endorsed by, or sponsored by Hypergryph or Yostar.",
    "legal.terms.s5.assets.p2": "We use game assets under fair use for the purpose of providing game companion tools to the community. All operator data, images, Spine animations, and other game content displayed on Myrtle are sourced from the official Arknights game files.",
    "legal.terms.s5.code.body": "The Myrtle platform code is open source and available on GitHub. Original features, designs, and documentation created for Myrtle are provided under applicable open source licenses. See our {link} for specific license terms.",
    "legal.terms.s5.code.heading": "5.1 Myrtle Code and Content",
    "legal.terms.s5.code.link": "GitHub repository",
    "legal.terms.s5.heading": "5. Intellectual Property Rights",
    "legal.terms.s5.thirdParty.body": "Our asset processing uses FlatBuffers schemas from the {link} project (MooncellWiki). DPS calculator implementations are based on community research and reference calculations.",
    "legal.terms.s5.thirdParty.heading": "5.3 Third-Party Content",
    "legal.terms.s5.thirdParty.link": "OpenArknightsFBS",
    "legal.terms.s6.heading": "6. Termination and Suspension",
    "legal.terms.s6.p1": "We may terminate or suspend your account and access to the Service immediately, without prior notice or liability, for any reason, including but not limited to breach of these Terms.",
    "legal.terms.s6.p2": "Upon termination, your right to use the Service will immediately cease. If you wish to terminate your account, you can delete it and all its data yourself from Settings → Danger zone → Delete my data, or contact us if you can't sign in.",
    "legal.terms.s6.p3": "All provisions of these Terms which by their nature should survive termination shall survive, including ownership provisions, warranty disclaimers, and limitations of liability.",
    "legal.terms.s7.heading": "7. Limitation of Liability",
    "legal.terms.s7.item1": "Your access to or use of (or inability to access or use) the Service",
    "legal.terms.s7.item2": "Any unauthorized access to or use of our servers and/or any personal information stored therein",
    "legal.terms.s7.item3": "Any interruption or cessation of transmission to or from the Service",
    "legal.terms.s7.item4": "Any bugs, viruses, or other harmful code that may be transmitted through the Service",
    "legal.terms.s7.p1": "The Service is provided on an \"AS IS\" and \"AS AVAILABLE\" basis without warranties of any kind, either express or implied. We do not warrant that the Service will be uninterrupted, secure, or error-free.",
    "legal.terms.s7.p2": "To the maximum extent permitted by law, Myrtle shall not be liable for any indirect, incidental, special, consequential, or punitive damages, including but not limited to loss of profits, data, or other intangible losses, resulting from:",
    "legal.terms.s8.heading": "8. Changes to Terms",
    "legal.terms.s8.p1": "We reserve the right to modify or replace these Terms at any time at our sole discretion. If a revision is material, we will provide at least 30 days' notice prior to any new terms taking effect.",
    "legal.terms.s8.p2": "What constitutes a material change will be determined at our sole discretion. By continuing to access or use our Service after revisions become effective, you agree to be bound by the revised terms.",
    "legal.terms.s9.gdpr.label": "Privacy & GDPR requests",
    "legal.terms.s9.gdpr.note": "For access, rectification, erasure, portability, or objection requests under the GDPR (or comparable data-protection laws).",
    "legal.terms.s9.general.label": "General contact",
    "legal.terms.s9.heading": "9. Contact Information",
    "legal.terms.s9.inApp.label": "In-app",
    "legal.terms.s9.inApp.link": "Manage your account in settings",
    "legal.terms.s9.intro": "If you have any questions about these Terms, please contact us:",
    "legal.terms.s9.source.label": "Source code",
    "legal.terms.tldr": "By accessing or using Myrtle, you agree to be bound by these Terms of Service. Please read them carefully before continuing.",
    "legal.terms.toc.acceptance": "Acceptance of Terms",
    "legal.terms.toc.account": "Account Registration and Security",
    "legal.terms.toc.changes": "Changes to Terms",
    "legal.terms.toc.contact": "Contact Information",
    "legal.terms.toc.content": "User Content and Submissions",
    "legal.terms.toc.heading": "Table of Contents",
    "legal.terms.toc.intellectual": "Intellectual Property Rights",
    "legal.terms.toc.liability": "Limitation of Liability",
    "legal.terms.toc.nav": "Table of contents",
    "legal.terms.toc.termination": "Termination and Suspension",
    "legal.terms.toc.usage": "Acceptable Use Policy",
    "meta.admin.description": "Operations console for myrtle.moe.",
    "meta.admin.title": "myrtle.moe · admin",
    "meta.announcements.description": "The Arknights in-game notice board, straight from the official servers: events, banners and maintenance, checked every few minutes.",
    "meta.announcements.title": "Game news",
    "meta.archives.description": "Arknights personnel files, the faction network the game draws, and the whole roster counted up: races, birthplaces, heights, infection and more.",
    "meta.archives.title": "Archives",
    "meta.changelog.description": "Every commit shipped to myrtle.moe, pulled live from GitHub and grouped by day, week, and month.",
    "meta.changelog.title": "Changelog",
    "meta.editGrid.description": "Edit your grid.",
    "meta.editGrid.title": "Edit Grid",
    "meta.editTierList.description": "Edit your tier list.",
    "meta.editTierList.title": "Edit Tier List",
    "meta.enemies.description": "View every enemy catalogued in Arknights.",
    "meta.enemies.title": "Enemies",
    "meta.enemy.descriptionFallback": "Enemy {index}",
    "meta.enemy.fallbackTitle": "Enemy",
    "meta.gachaCommunity.description": "Community-wide gacha statistics - pull rates, most-pulled operators, and pull timing across opted-in players.",
    "meta.gachaCommunity.title": "Gacha · Community",
    "meta.gachaHistory.description": "Your personal gacha pull history, pity counters, and operator statistics.",
    "meta.gachaHistory.title": "Gacha · My History",
    "meta.grid.descriptionFallback": "A {rows} by {cols} Arknights grid by {owner} on myrtle.moe.",
    "meta.grid.fallbackTitle": "Grid",
    "meta.grids.description": "Fill a grid of Arknights prompts with your picks, share it, or use one as a template.",
    "meta.grids.title": "Grids",
    "meta.home.description": "Track your roster, scout community pulls, and explore every operator.",
    "meta.home.title": "Myrtle",
    "meta.music.description": "Every Arknights track: battle themes, lobby music, story scenes and map music, with where each one plays and a player that loops it like the game.",
    "meta.music.title": "In-Game Music",
    "meta.myGrids.description": "Create, edit, and share your grids.",
    "meta.myGrids.title": "My Grids",
    "meta.myTierLists.description": "Manage, edit, and share the tier lists you've created.",
    "meta.myTierLists.title": "My Tier Lists",
    "meta.og.archives.subtitle": "Operator files, records and voice lines from the Rhodes Island archives.",
    "meta.og.archives.title": "Archives",
    "meta.og.changelog.subtitle": "Every commit and change shipped to myrtle.moe.",
    "meta.og.changelog.title": "Changelog",
    "meta.og.enemies.subtitle": "Every enemy catalogued in Arknights.",
    "meta.og.enemies.title": "Enemy Database",
    "meta.og.gachaCommunity.subtitle": "Community-wide pull rates, top operators, and pull timing.",
    "meta.og.gachaCommunity.title": "Gacha · Community",
    "meta.og.gachaHistory.subtitle": "Your synced pulls, rarity splits, and pity counters.",
    "meta.og.gachaHistory.title": "Gacha · My History",
    "meta.og.grids.subtitle": "Fill a grid with your picks, share it, or start from a template.",
    "meta.og.grids.title": "Grids",
    "meta.og.home.subtitle": "Track your roster, scout community pulls, and explore every operator.",
    "meta.og.home.title": "Operator data, rosters, and tier lists.",
    "meta.og.login.subtitle": "Sign in to track your roster, gacha history, and tier lists.",
    "meta.og.login.title": "Log in to Myrtle",
    "meta.og.music.subtitle": "Every Monster Siren album, with covers, artists and a player.",
    "meta.og.music.title": "Music",
    "meta.og.operators.subtitle": "Every operator released in Arknights.",
    "meta.og.operators.title": "Operators",
    "meta.og.privacy.subtitle": "How we protect and handle your personal information.",
    "meta.og.privacy.title": "Privacy Policy",
    "meta.og.root.title": "Operator data, rosters, and tier lists.",
    "meta.og.settings.subtitle": "Manage your account, profile, and preferences.",
    "meta.og.settings.title": "Settings",
    "meta.og.stages.subtitle": "Every Arknights stage, mapped with an enemy-pathing simulator.",
    "meta.og.stages.title": "Stage Index",
    "meta.og.stats.subtitle": "A live count of every operator, tier list, and roster indexed on myrtle.moe.",
    "meta.og.stats.title": "Stats",
    "meta.og.stories.subtitle": "Read every main story, event and operator record as the game stages it.",
    "meta.og.stories.title": "Story Reader",
    "meta.og.story.cutscene": "Cutscene",
    "meta.og.story.noScript": "No script yet",
    "meta.og.story.position": "Story",
    "meta.og.story.reading": "Read time",
    "meta.og.story.words": "Words",
    "meta.og.tag.account": "Account",
    "meta.og.tag.collection": "Collection",
    "meta.og.tag.community": "Community",
    "meta.og.tag.gacha": "Gacha",
    "meta.og.tag.home": "Home",
    "meta.og.tag.legal": "Legal",
    "meta.og.tag.players": "Players",
    "meta.og.tag.stats": "Stats",
    "meta.og.tag.tools": "Tools",
    "meta.og.terms.subtitle": "Legal agreement governing your use of Myrtle.",
    "meta.og.terms.title": "Terms of Service",
    "meta.og.tierLists.subtitle": "Browse official and community tier lists.",
    "meta.og.tierLists.title": "Tier Lists",
    "meta.og.toolsBirthdays.subtitle": "View and track Arknights operator birthdays.",
    "meta.og.toolsBirthdays.title": "Birthdays",
    "meta.og.toolsDps.subtitle": "Compare Arknights operator DPS.",
    "meta.og.toolsDps.title": "DPS Calculator",
    "meta.og.toolsHps.subtitle": "Compare Arknights healer HPS.",
    "meta.og.toolsHps.title": "HPS Calculator",
    "meta.og.toolsPlanner.subtitle": "Plan your operator promotions, skills, and module targets.",
    "meta.og.toolsPlanner.title": "Operator Planner",
    "meta.og.toolsRandomizer.subtitle": "Roll a random stage, squad, and modifier for your next run.",
    "meta.og.toolsRandomizer.title": "Randomizer",
    "meta.og.toolsRecruitment.subtitle": "Calculate recruitment combos.",
    "meta.og.toolsRecruitment.title": "Recruitment Calculator",
    "meta.og.toolsRelease.subtitle": "When CN events, skins, and banners land on EN.",
    "meta.og.toolsRelease.title": "Release Planner",
    "meta.og.toolsSquadBuilder.subtitle": "Build an Arknights squad and see what it covers.",
    "meta.og.toolsSquadBuilder.title": "Squad Builder",
    "meta.og.userLeaderboard.subtitle": "Top players ranked by score across servers.",
    "meta.og.userLeaderboard.title": "Player Leaderboard",
    "meta.og.userSearch.subtitle": "Find and browse user profiles.",
    "meta.og.userSearch.title": "Search Players",
    "meta.operator.fallbackTitle": "Operator",
    "meta.operators.description": "View all operators released in Arknights.",
    "meta.operators.title": "Operators",
    "meta.privacy.description": "Your privacy matters. Here's how Myrtle protects and handles your personal information.",
    "meta.privacy.title": "Privacy Policy",
    "meta.root.description": "Arknights companion - operators, rosters, tier lists.",
    "meta.root.title": "Myrtle",
    "meta.settings.description": "Manage your account, profile, and preferences.",
    "meta.settings.title": "Settings",
    "meta.stage.description": "Tile layout and enemy pathing for {name} in Arknights.",
    "meta.stage.title": "{name} - Stage",
    "meta.stages.description": "Browse every Arknights stage with an enemy pathing simulator.",
    "meta.stages.title": "Stages",
    "meta.stats.description": "A live count of every operator, skill, module, tier list, and roster indexed on myrtle.moe.",
    "meta.stats.title": "Stats",
    "meta.stories.description": "Read every Arknights story: main chapters, events and operator records.",
    "meta.stories.title": "Stories",
    "meta.story.description": "Read {name} in the Arknights story reader.",
    "meta.story.title": "{name} - Story",
    "meta.terms.description": "Legal agreement governing your use of Myrtle.",
    "meta.terms.title": "Terms of Service",
    "meta.tierList.descriptionFallback": "{type, select, official {Official tier list with {count} tiers on myrtle.moe.} other {Community tier list with {count} tiers on myrtle.moe.}}",
    "meta.tierList.fallbackTitle": "Tier List",
    "meta.tierLists.description": "Browse official and community tier lists for Arknights operators.",
    "meta.tierLists.title": "Tier Lists",
    "meta.toolsBirthdays.description": "View and track Arknights operator birthdays.",
    "meta.toolsBirthdays.title": "Birthdays",
    "meta.toolsDps.description": "Compare Arknights operator DPS across varying enemy DEF, RES, or target count. Configure skills, modules, buffs, and conditionals.",
    "meta.toolsDps.title": "DPS Calculator",
    "meta.toolsHps.description": "Compare Arknights healer HPS across target counts and team buffs. Configure skills, modules, buffs, and conditionals.",
    "meta.toolsHps.title": "HPS Calculator",
    "meta.toolsPlanner.description": "Plan your operator promotion, level, skill, and module targets.",
    "meta.toolsPlanner.title": "Operator Planner",
    "meta.toolsRandomizer.description": "Roll a random Arknights stage, squad, and challenge modifier. Logged-in users can constrain rolls to stages they've cleared and operators they own.",
    "meta.toolsRandomizer.title": "Randomizer",
    "meta.toolsRecruitment.description": "Calculate optimal tag combinations for Arknights recruitment. Find guaranteed 5-star and 6-star operators with the best tag combos.",
    "meta.toolsRecruitment.title": "Recruitment Calculator",
    "meta.toolsRelease.description": "When CN events, skins, and banners land on EN: confirmed, announced, or estimated with a band.",
    "meta.toolsRelease.title": "Release Planner",
    "meta.toolsSquadBuilder.description": "Build an Arknights squad of 12 plus a support, check its coverage, DP and synergies, save up to four squads and share a link.",
    "meta.toolsSquadBuilder.title": "Squad Builder",
    "meta.user.description": "{hasLevel, select, yes {{hasGrade, select, yes {Player profile • Lv {level} • {grade}} other {Player profile • Lv {level}}}} other {{hasGrade, select, yes {Player profile • {grade}} other {Player profile}}}}",
    "meta.user.fallbackTitle": "Player",
    "meta.userLeaderboard.description": "Top players ranked by score across servers.",
    "meta.userLeaderboard.title": "Leaderboard",
    "meta.userSearch.description": "Find and browse user profiles.",
    "meta.userSearch.title": "Search Players",
    "nav.authDialog.biliPhonePlaceholder": "Bilibili account phone number",
    "nav.authDialog.biliSmsExperimental": "Experimental: this endpoint hasn't been confirmed against a real response, so it may fail even with a correct code.",
    "nav.authDialog.cancel": "Cancel",
    "nav.authDialog.changeEmail": "Change email",
    "nav.authDialog.changePhone": "Change phone",
    "nav.authDialog.cnPhonePlaceholder": "Hypergryph account phone number",
    "nav.authDialog.code": "Code",
    "nav.authDialog.description.bili": "Log in with your Bilibili account. No login information is stored on the server.",
    "nav.authDialog.description.cn": "Experimental: logs in with your Hypergryph (CN) account through the same passport flow the Skland app uses. Untested against a real account, so it may fail even with correct credentials. No login information is stored on the server.",
    "nav.authDialog.description.yostar": "Use your YoStar email to send an OTP code. No login information is stored on the server.",
    "nav.authDialog.email": "Email",
    "nav.authDialog.loggingIn": "Logging in...",
    "nav.authDialog.login": "Login",
    "nav.authDialog.oneTimePassword": "One-time password",
    "nav.authDialog.otpCharacter": "Character {index} of {total}",
    "nav.authDialog.password": "Password",
    "nav.authDialog.phone": "Phone",
    "nav.authDialog.resendCode": "Resend code",
    "nav.authDialog.resendIn": "Resend available in {seconds}s",
    "nav.authDialog.saveCredentials": "Keep me synced",
    "nav.authDialog.saveCredentials.hint": "Re-syncing keeps working without a new email code. Revoke any time in Settings.",
    "nav.authDialog.selectServer": "Select server",
    "nav.authDialog.sendCode": "Send Code",
    "nav.authDialog.sending": "Sending...",
    "nav.authDialog.smsCode": "SMS code",
    "nav.authDialog.title": "Login",
    "nav.authDialog.toast.codeError": "There was an error sending a code:\n{error}",
    "nav.authDialog.toast.error": "Error",
    "nav.authDialog.toast.loggedIn": "Logged in successfully.",
    "nav.authDialog.toast.loginFailed": "Login failed",
    "nav.authDialog.toast.loginRejected": "Check the code and try again, or request a new one.\n{detail}",
    "nav.authDialog.toast.otpError": "There was an error sending an OTP:\n{error}",
    "nav.authDialog.toast.sentCode": "Sent code",
    "nav.authDialog.toast.sentOtpEmail": "Sent OTP code to your email.",
    "nav.authDialog.toast.sentSms": "Sent SMS code to your phone.",
    "nav.authDialog.username": "Username",
    "nav.authDialog.usernamePlaceholder": "Bilibili username, phone, or email",
    "nav.header.collection": "Collection",
    "nav.header.collection.archives.desc": "Personnel files, the faction network and the roster counted up.",
    "nav.header.collection.archives.label": "Archives",
    "nav.header.collection.enemies.desc": "Every enemy catalogued, with stats and traits.",
    "nav.header.collection.enemies.label": "Enemies",
    "nav.header.collection.music.desc": "Every track in the game, where it plays, and a player that loops it like the game does.",
    "nav.header.collection.music.label": "In-Game Music",
    "nav.header.collection.news.desc": "The in-game notice board",
    "nav.header.collection.news.label": "News",
    "nav.header.collection.operators.desc": "Every operator released in Arknights.",
    "nav.header.collection.operators.label": "Operators",
    "nav.header.collection.section.data": "Game Data",
    "nav.header.collection.section.lore": "Story & Lore",
    "nav.header.collection.section.media": "Media & News",
    "nav.header.collection.stages.desc": "Every stage, mapped with an enemy-pathing simulator.",
    "nav.header.collection.stages.label": "Stages",
    "nav.header.collection.stories.desc": "Read every story in the game, with your progress synced.",
    "nav.header.collection.stories.label": "Stories",
    "nav.header.gacha": "Gacha",
    "nav.header.gacha.community.desc": "Pull rates, top operators, and timing across opted-in players",
    "nav.header.gacha.community.label": "Community",
    "nav.header.gacha.history.desc": "Your synced pulls, rarity splits, and pity counters",
    "nav.header.gacha.history.label": "History",
    "nav.header.home": "Home",
    "nav.header.players": "Players",
    "nav.header.players.leaderboard.desc": "Top players ranked by score",
    "nav.header.players.leaderboard.label": "Leaderboard",
    "nav.header.players.myProfile.desc": "Open your profile",
    "nav.header.players.myProfile.label": "My Profile",
    "nav.header.players.search.desc": "Find profiles by nickname or UID",
    "nav.header.players.search.label": "Search",
    "nav.header.search": "Search",
    "nav.header.searchOperators": "Search operators",
    "nav.header.searchOperatorsPlaceholder": "Search operators…",
    "nav.header.settings": "Settings",
    "nav.header.support": "Support",
    "nav.header.tierLists": "Tier Lists",
    "nav.header.tools": "Tools",
    "nav.languageToggle.trigger": "Language: {language}",
    "nav.languageToggle.triggerAria": "{label}. Choose a language.",
    "nav.mainNav.forAllCommands": "for all commands",
    "nav.mainNav.openPalette": "Open palette →",
    "nav.mainNav.press": "Press",
    "nav.mobileNav.account": "Account",
    "nav.mobileNav.donate": "Donate",
    "nav.mobileNav.external": "External",
    "nav.mobileNav.github": "GitHub",
    "nav.mobileNav.level": "Level {level}",
    "nav.mobileNav.login": "Login",
    "nav.mobileNav.logout": "Logout",
    "nav.mobileNav.myTierLists": "My Tier Lists",
    "nav.mobileNav.navigation": "Navigation",
    "nav.mobileNav.openMenu": "Open navigation menu",
    "nav.mobileNav.settings": "Settings",
    "nav.mobileNav.userAvatar": "User avatar",
    "nav.page.announcements.desc": "The in-game notice board: events, banners and maintenance",
    "nav.page.announcements.label": "Game News",
    "nav.page.archives.desc": "Personnel files, the faction network and the roster counted up",
    "nav.page.archives.label": "Archives",
    "nav.page.gachaCommunity.desc": "Pull rates, top operators, and timing across opted-in players",
    "nav.page.gachaCommunity.label": "Gacha Community",
    "nav.page.gachaHistory.desc": "Your synced pulls, rarity splits, and pity counters",
    "nav.page.gachaHistory.label": "Gacha History",
    "nav.page.grids.desc": "Community favorites grids and templates",
    "nav.page.grids.label": "Grids",
    "nav.page.music.desc": "Battle themes, lobby music and story tracks, with where each one plays",
    "nav.page.music.label": "In-Game Music",
    "nav.page.operators.desc": "Browse every operator · stats, skills, modules",
    "nav.page.operators.label": "Operators",
    "nav.page.playersLeaderboard.desc": "Top players ranked by score",
    "nav.page.playersLeaderboard.label": "Leaderboard",
    "nav.page.playersSearch.desc": "Find player profiles by nickname or UID",
    "nav.page.playersSearch.label": "Search Players",
    "nav.page.stages.desc": "Every stage, mapped with an enemy-pathing simulator",
    "nav.page.stages.label": "Stages",
    "nav.page.stories.desc": "Read main chapters, events and operator records",
    "nav.page.stories.label": "Stories",
    "nav.page.tierLists.desc": "Official and community tier lists for every operator",
    "nav.page.tierLists.label": "Tier Lists",
    "nav.stageGroup.annihilation.desc": "Endless-wave defense operations scored by total kills - the weekly source of Orundum.",
    "nav.stageGroup.annihilation.label": "Annihilation",
    "nav.stageGroup.cc.desc": "Score-attack contracts - stack risk modifiers on a fixed map for higher rewards.",
    "nav.stageGroup.cc.label": "Contingency Contract",
    "nav.stageGroup.events.desc": "Limited-time side stories, intermezzi and reruns, each with its own maps, mechanics and rewards.",
    "nav.stageGroup.events.label": "Events",
    "nav.stageGroup.is.desc": "Roguelike expeditions: assemble a squad node by node across randomized floors, one run at a time.",
    "nav.stageGroup.is.label": "Integrated Strategies",
    "nav.stageGroup.other.desc": "Special and uncategorized operations that sit outside the regular rotation.",
    "nav.stageGroup.other.label": "Other Modes",
    "nav.stageGroup.paradox.desc": "Operator-specific challenge simulations that stress-test a single unit's kit.",
    "nav.stageGroup.paradox.label": "Paradox Simulation",
    "nav.stageGroup.ra.desc": "A survival sandbox - scout the wilds, gather resources, build defenses and endure each cycle.",
    "nav.stageGroup.ra.label": "Reclamation Algorithm",
    "nav.stageGroup.sss.desc": "Deck-building defense runs against escalating security directives at fixed installations.",
    "nav.stageGroup.sss.label": "Stationary Security Service",
    "nav.stageGroup.story.desc": "The mainline campaign - Rhodes Island's canonical operations, told episode by episode across Terra.",
    "nav.stageGroup.story.label": "Main Story",
    "nav.stageGroup.supplies.desc": "Daily and weekly resource runs for LMD, battle records, skill summaries and chips.",
    "nav.stageGroup.supplies.label": "Supplies",
    "nav.themeToggle.accent": "Accent",
    "nav.themeToggle.appearance": "Appearance",
    "nav.themeToggle.auto": "Auto",
    "nav.themeToggle.chooseCustomColor": "Choose custom accent color",
    "nav.themeToggle.customColor": "Custom color",
    "nav.themeToggle.dark": "Dark",
    "nav.themeToggle.dynamicArt": "Dynamic art",
    "nav.themeToggle.dynamicArtAria": "Animate dynamic (L2D) operator art",
    "nav.themeToggle.dynamicArtNote": "Animate L2D art on operator and profile pages. Heavier to load.",
    "nav.themeToggle.light": "Light",
    "nav.themeToggle.reset": "Reset",
    "nav.themeToggle.resetAccentAria": "Reset accent color to default",
    "nav.themeToggle.setAccent": "Set accent color to {name}",
    "nav.themeToggle.trigger": "Theme: {mode, select, dark {Dark} light {Light} other {System}}",
    "nav.themeToggle.triggerAria": "{label}. Open appearance settings.",
    "nav.tool.birthdays.desc": "View and track operator birthdays",
    "nav.tool.birthdays.label": "Birthdays",
    "nav.tool.dps.desc": "Interactive damage curves per skill",
    "nav.tool.dps.label": "DPS Charts",
    "nav.tool.grids.desc": "Fill a favorites grid and share it",
    "nav.tool.grids.label": "Grids",
    "nav.tool.hps.desc": "Interactive healing curves per skill",
    "nav.tool.hps.label": "HPS Charts",
    "nav.tool.planner.desc": "Plan promotions, skills, and modules",
    "nav.tool.planner.label": "Operator Planner",
    "nav.tool.randomizer.desc": "Pick a squad, break the meta",
    "nav.tool.randomizer.label": "Randomizer",
    "nav.tool.recruitment.desc": "Guaranteed tag combos · 1h parity",
    "nav.tool.recruitment.label": "Recruitment Calculator",
    "nav.tool.release.desc": "When CN events, skins, and banners land on EN",
    "nav.tool.release.label": "Release Planner",
    "nav.tool.squadBuilder.desc": "Build a squad, see what it covers",
    "nav.tool.squadBuilder.label": "Squad Builder",
    "nav.toolCategory.calculator": "Calculators",
    "nav.toolCategory.fun": "For Fun",
    "nav.userMenu.adminPanel": "Admin Panel",
    "nav.userMenu.github": "GitHub",
    "nav.userMenu.level": "Level {level}",
    "nav.userMenu.login": "Login",
    "nav.userMenu.logout": "Logout",
    "nav.userMenu.myTierLists": "My Tier Lists",
    "nav.userMenu.openMenu": "Open user menu",
    "nav.userMenu.settings": "Settings",
    "nav.userMenu.support": "Support",
    "nav.userMenu.userAvatar": "User avatar",
    "operators.attr.atk": "ATK",
    "operators.attr.attackSpeed": "ASPD",
    "operators.attr.baseAttackTime": "Attack Interval",
    "operators.attr.blockCnt": "Block",
    "operators.attr.cost": "DP Cost",
    "operators.attr.def": "DEF",
    "operators.attr.hpRecovery": "HP Regen",
    "operators.attr.magicResistance": "RES",
    "operators.attr.maxHp": "HP",
    "operators.attr.respawnTime": "Redeploy",
    "operators.attr.spRecovery": "SP Regen",
    "operators.audio.altSkin": "Alt. skin",
    "operators.audio.category.all": "All",
    "operators.audio.cv": "CV:",
    "operators.audio.download": "Download",
    "operators.audio.download.sfx": "Download sound effect",
    "operators.audio.download.voice": "Download voice line",
    "operators.audio.empty.sfx": "No battle audio available for this operator.",
    "operators.audio.empty.sfxSearch": "No sound effects match “{query}”.",
    "operators.audio.empty.voice": "No voice data available for this operator.",
    "operators.audio.empty.voiceSearch": "No voice lines match “{query}”.",
    "operators.audio.language": "Language",
    "operators.audio.mute": "Mute",
    "operators.audio.pause": "Pause",
    "operators.audio.play": "Play",
    "operators.audio.playVariant": "Play variant {index}",
    "operators.audio.search.clear": "Clear search",
    "operators.audio.search.sfx.label": "Search sound effects",
    "operators.audio.search.sfx.placeholder": "Search sound effects...",
    "operators.audio.search.voice.label": "Search voice lines",
    "operators.audio.search.voice.placeholder": "Search voice lines...",
    "operators.audio.sfx.battleVoice": "Battle Voice",
    "operators.audio.sfx.deployment": "Deployment",
    "operators.audio.sfx.skill": "Skill",
    "operators.audio.sfx.skillSlot": "Skill {slot}",
    "operators.audio.sfx.skillSlotVoice": "Skill {slot} Voice",
    "operators.audio.showLess": "Show less",
    "operators.audio.showMore": "Show more",
    "operators.audio.subtitle": "Operator voice lines and battle sound effects.",
    "operators.audio.tab.sfx": "Battle SFX",
    "operators.audio.tab.voice": "Voice Lines",
    "operators.audio.title": "Audio / SFX",
    "operators.audio.unavailable": "Unavailable",
    "operators.audio.unmute": "Unmute",
    "operators.audio.variants": "{count, plural, one {# variant} other {# variants}}",
    "operators.audio.volume": "Volume",
    "operators.baseSkills.eliteAlt": "Elite {elite}",
    "operators.baseSkills.room.control": "Control Center",
    "operators.baseSkills.room.dormitory": "Dormitory",
    "operators.baseSkills.room.hire": "Office",
    "operators.baseSkills.room.manufacture": "Factory",
    "operators.baseSkills.room.meeting": "Reception Room",
    "operators.baseSkills.room.other": "Base",
    "operators.baseSkills.room.power": "Power Plant",
    "operators.baseSkills.room.trading": "Trading Post",
    "operators.baseSkills.room.training": "Training Room",
    "operators.baseSkills.room.workshop": "Workshop",
    "operators.baseSkills.title": "Base Skills",
    "operators.baseSkills.unlockLine": "Elite {elite} · Lv {level}{hasTargets, select, yes { · {targets}} other {}}",
    "operators.baseSkills.unlockTooltip": "Unlocks at Elite {elite}, Lv {level}",
    "operators.breakdown.cohortCount": "{total} {cohort}",
    "operators.breakdown.headline": "{pct} have {summary}",
    "operators.breakdown.levelFallback": "L{level}",
    "operators.breakdown.rowTooltip": "{users} of {total} {cohort} ({pct}%){own, select, yes { - where you are} other {}}",
    "operators.breakdown.you": "you",
    "operators.card.portraitAlt": "{name} portrait",
    "operators.card.rarityStars": "{rarity} star",
    "operators.card.unknownOperator": "Unknown",
    "operators.card.upcoming.portraitAlt": "{name} portrait",
    "operators.chibi.animation": "Animation",
    "operators.chibi.error.failed": "Failed to load chibi",
    "operators.chibi.error.noData": "No spine data available",
    "operators.chibi.error.webgl": "This browser has WebGL turned off, so the animation can't play",
    "operators.chibi.title": "Chibi Preview",
    "operators.chibi.view": "View",
    "operators.chibi.view.back": "Back",
    "operators.chibi.view.dorm": "Dorm",
    "operators.chibi.view.down": "Down",
    "operators.chibi.view.front": "Front",
    "operators.chibiExport.button": "Export",
    "operators.chibiExport.downloadGif": "Download GIF",
    "operators.chibiExport.downloadMp4": "Download MP4",
    "operators.chibiExport.fps": "{fps} FPS",
    "operators.chibiExport.frameRate": "Frame Rate",
    "operators.chibiExport.gifFpsNote": "GIFs play at {gifFps} FPS (format limit); MP4 uses the full {fps} FPS.",
    "operators.chibiExport.gifOptions": "GIF Options",
    "operators.chibiExport.loopCount": "Loop Count",
    "operators.chibiExport.loops": "{count, plural, one {# loop} other {# loops}}",
    "operators.chibiExport.mp4Options": "MP4 Options",
    "operators.chibiExport.resolution": "Resolution",
    "operators.chibiExport.title": "Export Settings",
    "operators.chibiExport.transparentBg": "Transparent Background",
    "operators.chips.active": "Active:",
    "operators.chips.clearAll": "Clear all",
    "operators.chips.remove": "Remove {label}",
    "operators.facts.birthPlace.Aegir": "Ægir",
    "operators.facts.birthPlace.AegirRegion": "Ægir Region",
    "operators.facts.birthPlace.Bolvar": "Bolívar",
    "operators.facts.birthPlace.Columbia": "Columbia",
    "operators.facts.birthPlace.Durin": "Durin",
    "operators.facts.birthPlace.FarEast": "Far East",
    "operators.facts.birthPlace.Higashi": "Higashi",
    "operators.facts.birthPlace.Iberia": "Iberia",
    "operators.facts.birthPlace.Kazdel": "Kazdel",
    "operators.facts.birthPlace.Kazimierz": "Kazimierz",
    "operators.facts.birthPlace.Kjerag": "Kjerag",
    "operators.facts.birthPlace.Laterano": "Laterano",
    "operators.facts.birthPlace.Leithanien": "Leithanien",
    "operators.facts.birthPlace.Lungmen": "Lungmen",
    "operators.facts.birthPlace.Minos": "Minos",
    "operators.facts.birthPlace.RIMBilliton": "RIM Billiton",
    "operators.facts.birthPlace.RhodesIsland": "Rhodes Island",
    "operators.facts.birthPlace.RimBilliton": "Rim Billiton",
    "operators.facts.birthPlace.Sami": "Sami",
    "operators.facts.birthPlace.Sargon": "Sargon",
    "operators.facts.birthPlace.Siesta": "Siesta",
    "operators.facts.birthPlace.SiestaIndependentCity": "Siesta (Independent City)",
    "operators.facts.birthPlace.Siracusa": "Siracusa",
    "operators.facts.birthPlace.Undisclosed": "Undisclosed",
    "operators.facts.birthPlace.Unknown": "Unknown",
    "operators.facts.birthPlace.Unknownasrequestedbymanagementagency": "Unknown as requested by management agency",
    "operators.facts.birthPlace.Ursus": "Ursus",
    "operators.facts.birthPlace.Victoria": "Victoria",
    "operators.facts.birthPlace.Vouivre": "Vouivre",
    "operators.facts.birthPlace.Yan": "Yan",
    "operators.facts.gender.Conviction": "Conviction",
    "operators.facts.gender.Female": "Female",
    "operators.facts.gender.Male": "Male",
    "operators.facts.gender.MaleBugged": "Male",
    "operators.facts.gender.Unknown": "Unknown",
    "operators.facts.race.Aegir": "Ægir",
    "operators.facts.race.Anasa": "Anasa",
    "operators.facts.race.Anaty": "Anaty",
    "operators.facts.race.Anura": "Anura",
    "operators.facts.race.Archosauria": "Archosauria",
    "operators.facts.race.Aslan": "Aslan",
    "operators.facts.race.Caprinae": "Caprinae",
    "operators.facts.race.Cautus": "Cautus",
    "operators.facts.race.CautusChimera": "Cautus/Chimera",
    "operators.facts.race.Cerato": "Cerato",
    "operators.facts.race.Draco": "Draco",
    "operators.facts.race.Durin": "Durin",
    "operators.facts.race.Elafia": "Elafia",
    "operators.facts.race.Elf": "Elf",
    "operators.facts.race.Feline": "Feline",
    "operators.facts.race.Forte": "Forte",
    "operators.facts.race.Itra": "Itra",
    "operators.facts.race.Kuranta": "Kuranta",
    "operators.facts.race.Kylin": "Kylin",
    "operators.facts.race.Liberi": "Liberi",
    "operators.facts.race.Lung": "Lung",
    "operators.facts.race.Lupo": "Lupo",
    "operators.facts.race.Manticore": "Manticore",
    "operators.facts.race.Oni": "Oni",
    "operators.facts.race.Perro": "Perro",
    "operators.facts.race.Petram": "Petram",
    "operators.facts.race.Phidia": "Phidia",
    "operators.facts.race.Pilosa": "Pilosa",
    "operators.facts.race.Reproba": "Reproba",
    "operators.facts.race.Sankta": "Sankta",
    "operators.facts.race.Sarkaz": "Sarkaz",
    "operators.facts.race.Savra": "Savra",
    "operators.facts.race.Undisclosed": "Undisclosed",
    "operators.facts.race.Unknown": "Unknown",
    "operators.facts.race.UnknownSuspectedLiberi": "Unknown (Suspected Liberi)",
    "operators.facts.race.Unknownasrequestedbymanagementagency": "Unknown as requested by management agency",
    "operators.facts.race.Ursus": "Ursus",
    "operators.facts.race.Vouivre": "Vouivre",
    "operators.facts.race.Vulpo": "Vulpo",
    "operators.facts.race.Zalak": "Zalak",
    "operators.filters.archetype": "Archetype",
    "operators.filters.archetype.placeholder": "Select archetype",
    "operators.filters.aria": "Operator filters",
    "operators.filters.artist": "Artist",
    "operators.filters.artist.placeholder": "Select artist",
    "operators.filters.availability": "Availability",
    "operators.filters.availability.global": "Global",
    "operators.filters.availability.upcoming": "Upcoming (CN)",
    "operators.filters.birthPlace": "Place of Birth",
    "operators.filters.birthPlace.placeholder": "Select birth place",
    "operators.filters.class": "Class",
    "operators.filters.dropdown.noMatches": "No matches",
    "operators.filters.dropdown.selected": "{count, plural, one {# selected} other {# selected}}",
    "operators.filters.faction": "Faction",
    "operators.filters.faction.placeholder": "Select faction",
    "operators.filters.gender": "Gender",
    "operators.filters.module": "Module",
    "operators.filters.nation": "Nation",
    "operators.filters.nation.placeholder": "Select nation",
    "operators.filters.notes": "Notes",
    "operators.filters.notes.any": "Any",
    "operators.filters.notes.no": "No notes",
    "operators.filters.notes.yes": "Has notes",
    "operators.filters.panel.clearAll": "Clear all",
    "operators.filters.panel.title": "Filters",
    "operators.filters.race": "Race",
    "operators.filters.race.placeholder": "Select race",
    "operators.filters.rarity": "Rarity",
    "operators.filters.section.advanced": "Advanced",
    "operators.filters.section.basic": "Basic",
    "operators.filters.toggle.hide": "Hide filters",
    "operators.filters.toggle.label": "Filter",
    "operators.filters.toggle.show": "Show filters",
    "operators.filters.voiceActor": "Voice Actor",
    "operators.filters.voiceActor.placeholder": "Select voice actor",
    "operators.forms.aria": "Operator form",
    "operators.hero.breadcrumb.operators": "Operators",
    "operators.hero.hiddenFaction.srLabel": "Hidden faction (spoiler):",
    "operators.hero.hiddenFaction.tooltip": "Hidden faction: the game never shows this one on the operator's card. You're seeing it because spoilers are on in Settings.",
    "operators.hero.position.melee": "Melee",
    "operators.hero.position.ranged": "Ranged",
    "operators.info.attackRange": "Attack Range",
    "operators.info.attackRange.empty": "No range data available.",
    "operators.info.baseTalent": "Base Talent",
    "operators.info.baseTrait": "Base Trait",
    "operators.info.changes": "Changes",
    "operators.info.cohort.e2Owners": "E2 owners",
    "operators.info.combatStats": "Combat Stats",
    "operators.info.controls": "Operator Controls",
    "operators.info.controls.desc": "Adjust to see how stats change at different levels, promotions, potentials, modules, and trust.",
    "operators.info.eliteAlt": "Elite {elite}",
    "operators.info.level": "Level",
    "operators.info.module": "Module",
    "operators.info.module.breakdown.lv1": "Lv1",
    "operators.info.module.breakdown.lv2": "Lv2",
    "operators.info.module.breakdown.lv3": "Lv3",
    "operators.info.module.breakdown.notUnlocked": "Not unlocked",
    "operators.info.module.breakdown.summary": "unlocked this module",
    "operators.info.module.breakdown.title": "Community module level",
    "operators.info.module.cohort": "owners with a module equipped use this",
    "operators.info.module.level": "Module Level",
    "operators.info.module.levelOption": "Level {level}",
    "operators.info.module.levelPlaceholder": "Select level",
    "operators.info.module.none": "No Module",
    "operators.info.module.placeholder": "Select module",
    "operators.info.module.shareLine": "{pct}% of the {total} owners with a module equipped use this one",
    "operators.info.moduleDetails": "Module Details",
    "operators.info.moduleDetails.levelStats": "Level {level} Stats",
    "operators.info.moduleDetails.noBonuses": "No stat bonuses at this level.",
    "operators.info.moduleDetails.pickLevel": "Select a module level to see its effects.",
    "operators.info.potential": "Potential",
    "operators.info.potential.alt": "Pot {rank}",
    "operators.info.potential.baseTip": "Pot {rank}: Base potential",
    "operators.info.potential.rankTip": "Pot {rank}: {description}",
    "operators.info.potential.tip": "Select a potential rank to see stat bonuses.",
    "operators.info.profile": "Profile",
    "operators.info.profile.artist": "Artist",
    "operators.info.profile.gender": "Gender",
    "operators.info.profile.height": "Height",
    "operators.info.profile.placeOfBirth": "Place of Birth",
    "operators.info.profile.race": "Race",
    "operators.info.profile.unknown": "Unknown",
    "operators.info.promotion": "Promotion:",
    "operators.info.showDiff.tip": "Show diff vs. base",
    "operators.info.tags": "Tags",
    "operators.info.talentChanges": "Talent Changes",
    "operators.info.talents": "Talents",
    "operators.info.talents.empty": "No talents unlocked at this configuration.",
    "operators.info.talents.moduleBadge": "Module",
    "operators.info.talents.requiresPotential": "Requires Potential {rank}",
    "operators.info.talents.unnamed": "Unnamed Talent",
    "operators.info.title": "Operator Information",
    "operators.info.traitChanges": "Trait Changes",
    "operators.info.trust": "Trust",
    "operators.levelup.countThousands": "{value}k",
    "operators.levelup.empty.body": "{name} doesn''t require materials to level up.",
    "operators.levelup.empty.title": "No upgrade costs",
    "operators.levelup.itemCount": "×{count}",
    "operators.levelup.phase.e0": "E0",
    "operators.levelup.phase.e1": "E1",
    "operators.levelup.phase.e2": "E2",
    "operators.levelup.row.elite": "Elite {phase}",
    "operators.levelup.row.levelRange": "Level 1 to {max}",
    "operators.levelup.row.mastery": "Mastery {index}",
    "operators.levelup.row.promoteTo": "Promote to E{to}",
    "operators.levelup.row.skillStep": "Lv. {from} → {to}",
    "operators.levelup.row.stage": "Stage {stage}",
    "operators.levelup.row.unlockAt": "{phase} · Lv. {level}",
    "operators.levelup.section.elite": "Elite Promotion",
    "operators.levelup.section.elite.desc": "Materials required to advance promotion stages",
    "operators.levelup.section.mastery": "Skill Mastery",
    "operators.levelup.section.mastery.desc": "Materials needed for Mastery 1, 2, and 3",
    "operators.levelup.section.modules": "Modules",
    "operators.levelup.section.modules.desc": "Upgrade materials for each equipment module",
    "operators.levelup.section.operatorLevel": "Operator Level",
    "operators.levelup.section.operatorLevel.desc": "Cost of leveling the operator to max level",
    "operators.levelup.section.skillLevels": "Skill Levels",
    "operators.levelup.section.skillLevels.desc": "Cost to raise all skill levels (Rank 1 → 7)",
    "operators.levelup.section.total": "Grand Total",
    "operators.levelup.section.total.desc": "Every material needed to fully max this operator",
    "operators.levelup.skillFallback": "Skill {index}",
    "operators.levelup.subtitle": "Materials needed to fully promote, master skills, and upgrade modules.",
    "operators.levelup.title": "Level Up",
    "operators.list.breadcrumb.aria": "Breadcrumb",
    "operators.list.breadcrumb.collection": "Collection",
    "operators.list.breadcrumb.operators": "Operators",
    "operators.list.clearFilters": "Clear all filters",
    "operators.list.column.archetype": "Archetype",
    "operators.list.column.class": "Class",
    "operators.list.column.name": "Name",
    "operators.list.column.owned": "Owned",
    "operators.list.column.rarity": "Rarity",
    "operators.list.empty": "No operators match your filters.",
    "operators.list.empty.upcoming": "No upcoming operators match your filters.",
    "operators.list.export": "Export",
    "operators.list.export.dialogTitle": "Operators",
    "operators.list.export.tip": "Export operators",
    "operators.list.hint": "Hover for preview · Click to open",
    "operators.list.perPage.all": "All",
    "operators.list.perPage.aria": "Items per page",
    "operators.list.perPage.caption": "Show",
    "operators.list.results.aria": "Operator results",
    "operators.list.search.aria": "Search operators",
    "operators.list.search.placeholder": "Search operators...",
    "operators.list.showing": "Showing {from} to {to} of {total} operators",
    "operators.list.sort.aria": "Sort operators",
    "operators.list.sort.asc": "Ascending",
    "operators.list.sort.caption": "Sort",
    "operators.list.sort.desc": "Descending",
    "operators.list.sort.toggleAria": "Toggle sort direction",
    "operators.list.stat.aria": "Card statistic",
    "operators.list.stat.e2": "E2",
    "operators.list.stat.e2.tip": "Share of owners who promoted each operator to E2",
    "operators.list.stat.owned": "Owned",
    "operators.list.stat.owned.tip": "Share of players who own each operator",
    "operators.list.title": "Operators",
    "operators.list.viewAll": "View all {count} operators.",
    "operators.list.viewMode.aria": "View mode",
    "operators.list.viewMode.compact": "Compact",
    "operators.list.viewMode.grid": "Grid",
    "operators.list.viewMode.list": "List",
    "operators.lore.archives": "Archive Files",
    "operators.lore.empty.body": "This operator''s files are classified or not yet documented.",
    "operators.lore.empty.title": "No Records Available",
    "operators.lore.subtitle": "Personal records, archives, and classified documents.",
    "operators.lore.title": "Operator Files",
    "operators.notes.cons": "Cons",
    "operators.notes.notes": "Notes",
    "operators.notes.pros": "Pros",
    "operators.notes.showLess": "Show less",
    "operators.notes.showMore": "Show more",
    "operators.notes.title": "Operator Notes",
    "operators.notes.trivia": "Trivia",
    "operators.outfits.download": "Download",
    "operators.outfits.field.colors": "Colors",
    "operators.outfits.field.description": "Description",
    "operators.outfits.field.dialog": "Dialog",
    "operators.outfits.field.obtained": "Obtained",
    "operators.outfits.field.usage": "Usage",
    "operators.outfits.fullscreen": "Fullscreen",
    "operators.outfits.interact": "Play the interact animation",
    "operators.outfits.record": "Record {seconds} s of the animation",
    "operators.outfits.recordStop": "Stop recording ({seconds} s left)",
    "operators.outfits.resetView": "Reset view",
    "operators.outfits.subtitle": "Alternate skins, E2 art variants, and collaboration outfits",
    "operators.outfits.title": "Outfits",
    "operators.outfits.zoomIn": "Zoom in",
    "operators.outfits.zoomOut": "Zoom out",
    "operators.outfits.zoomTitle": "100% frames the composition: camera {camera}, {width} by {height} px",
    "operators.ownership.e2.aria": "E2''d by {pct} of owners",
    "operators.ownership.e2.title": "{e2Owners} of {owners} owners at E2 ({exact}%)",
    "operators.ownership.owned.aria": "Owned by {pct} of players",
    "operators.ownership.owned.title": "{owners} owners ({exact}% of imported players)",
    "operators.pager.first": "Go to first page",
    "operators.pager.goToPage": "Go to page",
    "operators.pager.jump.aria": "Jump to a page between {from} and {to}",
    "operators.pager.jump.hint": "Enter a number from 1 to {total}.",
    "operators.pager.jump.input": "Page number",
    "operators.pager.jump.range": "Hidden range: {from}-{to} · Total {total}",
    "operators.pager.jump.title": "Jump to page",
    "operators.pager.last": "Go to last page",
    "operators.pager.next": "Go to next page",
    "operators.pager.page": "Go to page {page}",
    "operators.pager.pageOf": "Page {current} of {total}",
    "operators.pager.previous": "Go to previous page",
    "operators.preview.gender": "Gender",
    "operators.preview.position": "Position",
    "operators.preview.race": "Race",
    "operators.scene.error": "Failed to load animation",
    "operators.scene.interact": "Play the interact animation",
    "operators.scene.loading": "Loading animation",
    "operators.sfx.category.attack": "Attack",
    "operators.sfx.category.deploy": "Deploy",
    "operators.sfx.category.other": "Other",
    "operators.sfx.category.skill": "Skill",
    "operators.sfx.category.voice": "Voice",
    "operators.sfx.event.abilityAttackFinish": "Attack Finish",
    "operators.sfx.event.abilityCheckPoint": "Attack Checkpoint",
    "operators.sfx.event.abilityEnd": "Attack End",
    "operators.sfx.event.abilityHit": "Attack Impact",
    "operators.sfx.event.abilityOn": "Attack (Active)",
    "operators.sfx.event.abilityStart": "Attack",
    "operators.sfx.event.customTrigger": "Custom Trigger",
    "operators.sfx.event.skillChantStart": "Skill Charge",
    "operators.sfx.event.skillFailed": "Skill Failed",
    "operators.sfx.event.skillFinish": "Skill End",
    "operators.sfx.event.skillOn": "Skill Ready",
    "operators.sfx.event.skillSpecialPoint": "Skill Trigger",
    "operators.sfx.event.skillStart": "Skill Activation",
    "operators.sfx.event.spineEventTrigger": "Animation Cue",
    "operators.sfx.event.unitBorn": "Deployment",
    "operators.sfx.event.unitDead": "Defeated",
    "operators.share.tooltip": "{users} of {total} {cohort}{top, select, yes { - the most common choice} other {}}",
    "operators.skill.level.lv": "Lv.{level}",
    "operators.skill.level.mastery": "M{level}",
    "operators.skill.spType.autoRecovery": "Auto Recovery",
    "operators.skill.spType.defensiveRecovery": "Defensive Recovery",
    "operators.skill.spType.offensiveRecovery": "Offensive Recovery",
    "operators.skill.spType.onDeployment": "On Deployment",
    "operators.skill.type.auto": "Auto Trigger",
    "operators.skill.type.manual": "Manual Trigger",
    "operators.skill.type.passive": "Passive",
    "operators.skills.cohort": "E2 owners use this skill",
    "operators.skills.column.description": "Description / Changes",
    "operators.skills.column.dur": "Dur",
    "operators.skills.column.init": "Init",
    "operators.skills.column.level": "Level",
    "operators.skills.column.sp": "SP",
    "operators.skills.compare.selectLevels": "Select Levels",
    "operators.skills.compare.selectedCount": "({count} selected)",
    "operators.skills.compare.showDiff": "Show Diff",
    "operators.skills.compare.showFull": "Show Full",
    "operators.skills.compare.toggle": "Compare Skill Levels",
    "operators.skills.duration": "Duration",
    "operators.skills.durationSeconds": "{value}s",
    "operators.skills.empty.body": "This operator has no active skills. They may rely solely on their talent or passive abilities.",
    "operators.skills.empty.icon": "No skills",
    "operators.skills.empty.title": "No Skills",
    "operators.skills.fallbackName": "Skill {index}",
    "operators.skills.imageAlt": "Skill",
    "operators.skills.initialSp": "Initial SP",
    "operators.skills.level": "Skill Level",
    "operators.skills.mastery.cohort": "E2 owners",
    "operators.skills.mastery.m1": "M1",
    "operators.skills.mastery.m2": "M2",
    "operators.skills.mastery.m3": "M3",
    "operators.skills.mastery.none": "No mastery",
    "operators.skills.mastery.summary": "mastered this skill",
    "operators.skills.mastery.title": "Community mastery",
    "operators.skills.range": "Range",
    "operators.skills.range.hideDiff": "Hide Diff",
    "operators.skills.range.onSkill": "On Skill",
    "operators.skills.range.original": "Original",
    "operators.skills.spCost": "SP Cost",
    "operators.skills.subtitle": "Skill details, mastery information, and skill comparisons.",
    "operators.skills.title": "Skills",
    "operators.skins.artist": "Artist · {artist}",
    "operators.skins.default.name": "Default",
    "operators.skins.defaultDescription": "Standard operator outfit.",
    "operators.skins.elite2Promotion": "Elite 2 Promotion",
    "operators.skins.evolvedArt.name": "Evolved Art",
    "operators.skins.fallback.kicker": "Skin",
    "operators.skins.fallback.name": "Outfit",
    "operators.skins.fallback.sub": "Special Outfit",
    "operators.skins.kicker.elite0": "Elite 0",
    "operators.skins.kicker.elite0or1": "Elite 0 / Elite 1",
    "operators.skins.kicker.elite2": "Elite 2",
    "operators.skins.unlockedByDefault": "Unlocked by default",
    "operators.sort.atk": "ATK",
    "operators.sort.block": "Block",
    "operators.sort.class": "Class",
    "operators.sort.cost": "Cost",
    "operators.sort.def": "DEF",
    "operators.sort.e2": "Most E2''d",
    "operators.sort.hp": "HP",
    "operators.sort.name": "Name",
    "operators.sort.ownership": "Most owned",
    "operators.sort.rarity": "Rarity",
    "operators.sort.res": "RES",
    "operators.stat.artsResistance": "Arts Resistance",
    "operators.stat.attackInterval": "Attack Interval",
    "operators.stat.attackPower": "Attack Power",
    "operators.stat.block": "Block",
    "operators.stat.defense": "Defense",
    "operators.stat.dpCost": "DP Cost",
    "operators.stat.health": "Health",
    "operators.stat.redeployTime": "Redeploy Time",
    "operators.stat.seconds": "{value} sec",
    "operators.summons.attackRange": "Attack Range",
    "operators.summons.position.all": "Melee/Ranged",
    "operators.summons.position.melee": "Melee",
    "operators.summons.position.ranged": "Ranged",
    "operators.summons.talents": "Talents",
    "operators.summons.title": "Summons",
    "operators.tab.audio": "Audio/SFX",
    "operators.tab.info": "Information",
    "operators.tab.levelup": "Level-Up Cost",
    "operators.tab.lore": "Lore",
    "operators.tab.skills": "Skills",
    "operators.tab.skins": "Skins",
    "operators.tabs.aria": "Operator sections",
    "operators.tabs.fallbackName": "Operator",
    "operators.voice.category.battle": "Battle",
    "operators.voice.category.conversations": "Conversations",
    "operators.voice.category.dorm": "Dorm",
    "operators.voice.category.greetings": "Greetings",
    "operators.voice.category.idle": "Idle",
    "operators.voice.category.other": "Other",
    "operators.voice.category.promotions": "Promotions",
    "operators.voice.category.special": "Special",
    "operators.voice.category.trust": "Trust",
    "operators.voice.lang.cnMandarin": "Mandarin",
    "operators.voice.lang.cnTopolect": "Cantonese",
    "operators.voice.lang.en": "English",
    "operators.voice.lang.fre": "French",
    "operators.voice.lang.ger": "German",
    "operators.voice.lang.ita": "Italian",
    "operators.voice.lang.jp": "Japanese",
    "operators.voice.lang.kr": "Korean",
    "operators.voice.lang.linkage": "Linkage",
    "operators.voice.lang.rus": "Russian",
    "operators.voice.lang.short.cnMandarin": "CN",
    "operators.voice.lang.short.cnTopolect": "粤",
    "operators.voice.lang.short.en": "EN",
    "operators.voice.lang.short.fre": "FR",
    "operators.voice.lang.short.ger": "DE",
    "operators.voice.lang.short.ita": "IT",
    "operators.voice.lang.short.jp": "JP",
    "operators.voice.lang.short.kr": "KR",
    "operators.voice.lang.short.linkage": "LINK",
    "operators.voice.lang.short.rus": "RU",
    "operators.voice.lang.short.spa": "ES",
    "operators.voice.lang.spa": "Spanish",
    "settings.appearance.accent.chooseCustom": "Choose custom accent color",
    "settings.appearance.accent.customColor": "Custom color",
    "settings.appearance.accent.desc": "Tints buttons, links, focus rings, and the active state across the whole app.",
    "settings.appearance.accent.pickCustomHex": "Pick custom hex",
    "settings.appearance.accent.presetHue": "Preset hue",
    "settings.appearance.accent.reset": "Reset to default",
    "settings.appearance.accent.setTo": "Set accent color to {name}",
    "settings.appearance.accent.title": "Accent color",
    "settings.appearance.dynamicArt.desc": "Animate L2D (dynamic) operator illustrations across operator and profile pages.",
    "settings.appearance.dynamicArt.rowDesc": "Plays multi-megabyte Spine animations in place of static art. On by default; turn it off to save bandwidth.",
    "settings.appearance.dynamicArt.rowTitle": "Animate dynamic art",
    "settings.appearance.dynamicArt.title": "Dynamic art",
    "settings.appearance.language.choose": "Choose a language",
    "settings.appearance.language.desc": "Sets the language of the site's own text. Choosing one reloads the page so the new language is there from the first paint.",
    "settings.appearance.language.displayLanguage": "Display language",
    "settings.appearance.language.gameTextDesc": "Operator names, skills and story come from one game client. By default it is the one your display language reads; pick another to read, say, Japanese names under English menus.",
    "settings.appearance.language.onlyOne": "{language} is the only language this site is available in right now.",
    "settings.appearance.latinNames.desc": "Operators, outfits and events that have not reached the global server yet only have a Chinese name. Most of them also have a Latin-script name, from the game itself or from an earlier global release, and it is usually the name they release under.",
    "settings.appearance.latinNames.rowDesc": "予愿安洁莉娜 becomes Angelina the Mellow Wish, and 斗争血脉/XI becomes Bloodline of Combat/XI. Search matches either name whichever one is shown. A name with no Latin form yet stays in Chinese. On by default.",
    "settings.appearance.latinNames.rowTitle": "Show Latin names for CN-only content",
    "settings.appearance.latinNames.title": "CN-only names",
    "settings.appearance.mode.auto": "Auto",
    "settings.appearance.mode.dark": "Dark",
    "settings.appearance.mode.light": "Light",
    "settings.appearance.spoilers.desc": "Some operators belong to more factions than their card lets on, and a few of those give away story twists.",
    "settings.appearance.spoilers.rowDesc": "Shows the hidden factions the game never puts on an operator's card. Off by default.",
    "settings.appearance.spoilers.rowTitle": "Enable spoilers",
    "settings.appearance.spoilers.title": "Spoilers",
    "settings.appearance.theme.desc": "Pick light, dark, or follow your system. The mobile picker in the header controls the same setting.",
    "settings.appearance.theme.title": "Theme",
    "settings.appearance.topBar.desc": "What shows up in the bar at the top of every page.",
    "settings.appearance.topBar.maintenance.rowDesc": "Shows when the game is about to go down for maintenance, or is down right now, straight from Yostar's notices. Home still shows it either way. On by default.",
    "settings.appearance.topBar.maintenance.rowTitle": "Maintenance countdown",
    "settings.appearance.topBar.title": "Top Bar",
    "settings.danger.delete.action": "Delete my data",
    "settings.danger.delete.desc": "Wipe your Myrtle account and everything we've stored for it. It happens right away and can't be undone.",
    "settings.danger.delete.note": "Can't sign in anymore? Email {email} from the address on your Yostar account and we'll delete it for you.",
    "settings.danger.delete.noteEmail": "privacy@myrtle.moe",
    "settings.danger.delete.title": "Delete your data",
    "settings.danger.dialog.body": "This deletes your profile, synced game data, scores, gacha history, planner plans, grids, the tier lists you made, your settings, and the saved Yostar login. There's no undo.",
    "settings.danger.dialog.cancel": "Cancel",
    "settings.danger.dialog.confirmLabel": "Type {word} to confirm",
    "settings.danger.dialog.confirmWord": "delete",
    "settings.danger.dialog.kept": "Official tier lists and translations you worked on stay up, just without your name. You can sign in again later, but you'll start from scratch.",
    "settings.danger.dialog.submit": "Delete my data",
    "settings.danger.dialog.title": "Delete everything?",
    "settings.data.disconnect.action": "Disconnect",
    "settings.data.disconnect.desc": "Deletes the stored Yostar token, so we can no longer reach your account. Your synced data stays on your profile; the next re-sync will ask for a new email code.",
    "settings.data.disconnect.title": "Disconnect game account",
    "settings.data.export.action": "Email privacy@myrtle.moe",
    "settings.data.export.desc": "Email privacy@myrtle.moe to receive a portable copy of your data.",
    "settings.data.export.title": "Request data export",
    "settings.data.linked.desc": "We never see your password. We do keep the token that lets us re-sync on your behalf - disconnect below to delete it.",
    "settings.data.linked.title": "Linked Yostar account",
    "settings.data.oauth.active": "Active",
    "settings.data.oauth.desc": "Authenticated via your in-game email verification code.",
    "settings.data.oauth.title": "Yostar OAuth",
    "settings.data.signOut.action": "Sign out",
    "settings.data.signOut.desc": "Ends the current session. Your data stays - just sign back in to re-access it.",
    "settings.data.signOut.title": "Sign out of this browser",
    "settings.data.sync.desc": "Pull the latest from Yostar. Re-sync any time - we replace your stored snapshot.",
    "settings.data.sync.paused": "Syncing is paused while the game is down for maintenance. Back in {time}.",
    "settings.data.sync.pausedNoEnd": "Syncing is paused while the game is down for maintenance.",
    "settings.data.sync.rowDesc": "Operators, stage progress, IS/RA, base, medals, inventory.",
    "settings.data.sync.rowTitle": "Re-sync game data",
    "settings.data.sync.title": "Sync & refresh",
    "settings.data.viewProfile.action": "Open my profile",
    "settings.data.viewProfile.desc": "Roster, scores, stage progress, gacha history (if stored), and medals - the data we have on you is what shows up here.",
    "settings.data.viewProfile.title": "View on your profile",
    "settings.data.yourData.desc": "Everything we store is visible on your profile page. For a portable copy or a GDPR request, email privacy directly.",
    "settings.data.yourData.title": "Your data on Myrtle",
    "settings.nav.account": "Account",
    "settings.nav.appearance": "Appearance",
    "settings.nav.danger": "Danger zone",
    "settings.nav.privacy": "Privacy",
    "settings.privacy.alert.body": "Public profiles show your nickname, UID, roster, account scores, and leaderboard rankings. Authentication tokens, settings, saved DPS configs, and email are always private.",
    "settings.privacy.alert.title": "What's public, and what isn't",
    "settings.privacy.gacha.column": "store_gacha",
    "settings.privacy.gacha.desc": "Saves your synced pulls so you can browse them in Gacha → History and contribute aggregate stats. Backed by {column}.",
    "settings.privacy.gacha.title": "Store gacha history",
    "settings.privacy.leaderboards.column": "share_stats",
    "settings.privacy.leaderboards.desc": "Opt in to ranked appearance on {path}. Scores are still calculated either way. Backed by {column}.",
    "settings.privacy.leaderboards.path": "/user/leaderboard",
    "settings.privacy.leaderboards.title": "Show on leaderboards",
    "settings.privacy.publicProfile.desc": "Lets anyone with your UID open your profile, see your roster, and look up your scores.",
    "settings.privacy.publicProfile.title": "Public profile",
    "settings.privacy.visibility.column": "user_settings.public_profile",
    "settings.privacy.visibility.desc": "Who can see your roster and account stats. Backed by {column}.",
    "settings.privacy.visibility.title": "Profile visibility",
    "settings.profile.assistant.desc": "The operator displayed on your in-game and Myrtle profile.",
    "settings.profile.assistant.title": "Assistant operator",
    "settings.profile.gameSynced.desc": "Read-only. Pulled from Yostar when you sync - change it in-game.",
    "settings.profile.gameSynced.title": "Game-synced info",
    "settings.profile.level.desc": "Player level from the in-game profile.",
    "settings.profile.level.title": "Account level",
    "settings.profile.level.value": "Lv. {level}",
    "settings.profile.nickname.desc": "Shown on your profile, leaderboard, and tier lists you publish.",
    "settings.profile.nickname.title": "Arknights nickname",
    "settings.profile.server.desc": "Which Arknights server you're synced from. Re-link your account to change this.",
    "settings.profile.server.title": "Game server",
    "settings.profile.synced": "Synced {when}",
    "settings.profile.uid": "UID {uid}",
    "settings.resync.now": "Re-sync now",
    "settings.resync.pending": "Re-syncing…",
    "settings.shell.kicker": "Account",
    "settings.shell.sectionsNav": "Settings sections",
    "settings.shell.subtitle": "Manage your account, profile visibility, and app appearance. Changes save automatically.",
    "settings.shell.title": "Settings",
    "settings.toast.deleted.body": "We deleted your account and signed you out.",
    "settings.toast.deleted.title": "Your data is gone",
    "settings.toast.disconnectFailed.title": "Couldn't disconnect",
    "settings.toast.disconnected.body": "We deleted the stored Yostar token. Your synced data is untouched; re-syncing will ask for a new email code.",
    "settings.toast.disconnected.title": "Game account disconnected",
    "settings.toast.nothingToDisconnect.body": "We were not holding a Yostar token for your account.",
    "settings.toast.nothingToDisconnect.title": "Nothing stored to disconnect",
    "settings.toast.resyncFailed.title": "Couldn't re-sync",
    "settings.toast.resynced.body": "Pulled the latest snapshot from Yostar.",
    "settings.toast.resynced.title": "Roster re-synced",
    "settings.toast.saveFailed.title": "Couldn't save settings",
    "settings.toast.saved.body": "Your privacy preferences are up to date.",
    "settings.toast.saved.title": "Settings saved",
    "settings.toast.signOutFailed.title": "Couldn't sign out",
    "skins.detail.back": "Back",
    "skins.detail.credits.art": "Art: {names}",
    "skins.detail.credits.design": "Design: {names}",
    "skins.detail.heroAlt": "{op} {skin}",
    "skins.detail.row.credits": "Credits",
    "skins.detail.row.description": "Description",
    "skins.detail.row.dialog": "Dialog",
    "skins.detail.row.obtain": "Obtain",
    "skins.detail.row.price": "Price",
    "skins.detail.row.released": "Released",
    "skins.detail.row.usage": "Usage",
    "skins.detail.srTitle": "{op} - {skin}",
    "skins.export.cancel": "Cancel",
    "skins.export.copied": "Copied",
    "skins.export.copy": "Copy",
    "skins.export.description": "Choose a format, pick the fields you need, and download the file.",
    "skins.export.download": "Download",
    "skins.export.fields.all": "All",
    "skins.export.fields.default": "Default",
    "skins.export.fields.general": "General",
    "skins.export.fields.none": "None",
    "skins.export.fields.toggleGroup": "Toggle {group}",
    "skins.export.filename.hint": "A timestamp is appended automatically.",
    "skins.export.format.csv.desc": "Comma-separated, opens in Excel / Sheets",
    "skins.export.format.csv.label": "CSV",
    "skins.export.format.json.desc": "Structured, machine-readable; arrays/objects preserved",
    "skins.export.format.json.label": "JSON",
    "skins.export.format.markdown.desc": "Renders as a table in any Markdown viewer",
    "skins.export.format.markdown.label": "Markdown table",
    "skins.export.format.tsv.desc": "Tab-separated, safest for fields containing commas",
    "skins.export.format.tsv.label": "TSV",
    "skins.export.format.xml.desc": "Hierarchical, schema-friendly",
    "skins.export.format.xml.label": "XML",
    "skins.export.format.yaml.desc": "Human-readable, compact",
    "skins.export.format.yaml.label": "YAML",
    "skins.export.option.arraySep.desc": "Used for \"Joined string\" mode",
    "skins.export.option.arraySep.label": "Array separator",
    "skins.export.option.arrays.desc": "How list-valued fields are encoded",
    "skins.export.option.arrays.join": "Joined string",
    "skins.export.option.arrays.json": "JSON literal",
    "skins.export.option.arrays.label": "Arrays as",
    "skins.export.option.bom.desc": "Helps Excel detect Unicode",
    "skins.export.option.bom.label": "UTF-8 BOM",
    "skins.export.option.delimiter.desc": "Character separating cells",
    "skins.export.option.delimiter.label": "Delimiter",
    "skins.export.option.header.desc": "First line is field names",
    "skins.export.option.header.label": "Include header row",
    "skins.export.option.indent.desc": "Used by JSON and YAML",
    "skins.export.option.indent.four": "4 spaces",
    "skins.export.option.indent.label": "Indent",
    "skins.export.option.indent.none": "None",
    "skins.export.option.indent.tab": "Tab",
    "skins.export.option.indent.two": "2 spaces",
    "skins.export.option.lineEnding.crlf": "CRLF (Windows)",
    "skins.export.option.lineEnding.desc": "Use CRLF for Windows compatibility",
    "skins.export.option.lineEnding.label": "Line endings",
    "skins.export.option.lineEnding.lf": "LF (Unix)",
    "skins.export.option.pretty.desc": "Indent JSON / XML for readability",
    "skins.export.option.pretty.label": "Pretty print",
    "skins.export.option.rowIndex.desc": "Adds a # column before fields",
    "skins.export.option.rowIndex.label": "Row index column",
    "skins.export.option.xmlAttrs.desc": "Encode strings/numbers as XML attributes",
    "skins.export.option.xmlAttrs.label": "Primitives as attributes",
    "skins.export.option.xmlItem.desc": "Tag for each row",
    "skins.export.option.xmlItem.label": "Row element",
    "skins.export.option.xmlRoot.desc": "Wraps all rows",
    "skins.export.option.xmlRoot.label": "Root element",
    "skins.export.preview.empty": "Select at least one field to preview the export.",
    "skins.export.preview.fields": "{count, plural, one {# field} other {# fields}}",
    "skins.export.preview.title": "Preview",
    "skins.export.preview.truncated": "Preview shows first {limit} rows. Full file contains {total} rows.",
    "skins.export.scope.all": "Entire collection",
    "skins.export.scope.filtered": "Current filtered results",
    "skins.export.scope.page": "Visible page only",
    "skins.export.section.fields": "Fields",
    "skins.export.section.filename": "Filename",
    "skins.export.section.format": "Format",
    "skins.export.section.options": "Options",
    "skins.export.section.scope": "Scope",
    "skins.export.title": "Export {name}",
    "stages.detail.breadcrumb": "Breadcrumb",
    "stages.detail.breadcrumb.stages": "Stages",
    "stages.detail.noMap": "No map data available for this stage.",
    "stages.detail.notFound.back": "Back to Stages",
    "stages.detail.notFound.body": "No stage with id {id} exists.",
    "stages.detail.notFound.title": "Stage not found",
    "stages.difficulty.FOUR_STAR": "Challenge Mode",
    "stages.difficulty.NORMAL": "Normal",
    "stages.difficulty.SIX_STAR": "Extreme",
    "stages.difficulty.UNKNOWN": "Unknown",
    "stages.dropType.ADDITIONAL": "Bonus Drops",
    "stages.dropType.COMPLETE": "On Completion",
    "stages.dropType.CONDITION_DROP": "Conditional Drops",
    "stages.dropType.NORMAL": "Regular Drops",
    "stages.dropType.ONCE": "First Clear",
    "stages.dropType.SPECIAL": "Special Drops",
    "stages.drops.rateTitle": "Drop rate: {rate}",
    "stages.drops.title": "Drops",
    "stages.enemies.showOnMap": "Show {name} on map",
    "stages.enemies.title": "Enemies · {count}",
    "stages.enemyStats.atk": "ATK",
    "stages.enemyStats.atkTime": "ATK Time",
    "stages.enemyStats.def": "DEF",
    "stages.enemyStats.hp": "HP",
    "stages.enemyStats.none": "No stat data available.",
    "stages.enemyStats.res": "RES",
    "stages.enemyStats.spd": "Spd",
    "stages.event.bossInside": "{count, plural, one {Boss operation inside} other {Boss operations inside}}",
    "stages.event.browse": "Browse stages",
    "stages.event.previews": "Field previews",
    "stages.event.stat.bosses": "Bosses",
    "stages.event.stat.codes": "Codes",
    "stages.event.stat.operations": "Operations",
    "stages.event.stat.sanity": "Sanity total",
    "stages.event.stat.sanity.free": "Free",
    "stages.header.boss": "Boss",
    "stages.header.variant.adverse": "Adverse",
    "stages.header.variant.cm": "Challenge Mode",
    "stages.header.variant.standard": "Standard",
    "stages.header.variants": "Stage versions",
    "stages.legend.end": "End",
    "stages.legend.forbidden": "Forbidden",
    "stages.legend.ground": "Ground",
    "stages.legend.highGround": "High Ground",
    "stages.legend.start": "Start",
    "stages.legend.title": "Legend",
    "stages.list.blurb": "Browse by story arc and code - each stage opens to a faux-3D board and enemy-pathing simulator. Ordered by episode and code.",
    "stages.list.breadcrumb": "Breadcrumb",
    "stages.list.breadcrumb.collection": "Collection",
    "stages.list.breadcrumb.stages": "Stages",
    "stages.list.card.adverse": "Adverse",
    "stages.list.card.adverse.label": "{title}, Adverse",
    "stages.list.card.boss": "Boss",
    "stages.list.card.cm": "CM",
    "stages.list.card.cm.label": "{title}, Challenge Mode",
    "stages.list.card.free": "Free entry",
    "stages.list.card.sanity": "{cost} ◆ Sanity",
    "stages.list.collapse": "Collapse",
    "stages.list.count.matches": "{count, plural, one {{count} match} other {{count} matches}}",
    "stages.list.count.zones": "{count, plural, one {{count} zone} other {{count} zones}}",
    "stages.list.counts": "STAGES · {zones} ZONES · {categories} CATEGORIES",
    "stages.list.empty": "No stages match your search.",
    "stages.list.expandAll": "Expand all",
    "stages.list.filter.all": "All",
    "stages.list.group.counts": "{zones} zones · {stages} stages",
    "stages.list.hero.bosses": "{count, plural, one {boss} other {bosses}}",
    "stages.list.hero.browse": "Browse stages",
    "stages.list.hero.details": "Details",
    "stages.list.hero.operations": "{count, plural, one {operation} other {operations}}",
    "stages.list.search.aria": "Search stages",
    "stages.list.search.placeholder": "Search event, code or stage…",
    "stages.list.title": "Every operation, catalogued.",
    "stages.list.zone.about": "About {title}",
    "stages.list.zone.boss": "{count} boss",
    "stages.list.zone.collapse": "Collapse {title}",
    "stages.list.zone.expand": "Expand {title}",
    "stages.list.zone.ops": "{count, plural, one {{count} stage} other {{count} stages}}",
    "stages.list.zone.originitePrime": "{count} OP",
    "stages.map.nextEnemy": "Next enemy",
    "stages.map.prevEnemy": "Previous enemy",
    "stages.map.toggle3d": "Toggle 3D view",
    "stages.map.watermark": "Map",
    "stages.mapSettings.showEnemyIcons": "Enemy Icons",
    "stages.mapSettings.showEnemyIcons.desc": "Show each spawning enemy's icon on its route.",
    "stages.mapSettings.showMovement": "Enemy Movement",
    "stages.mapSettings.showMovement.desc": "Animate the icon along its route instead of parking it at the spawn.",
    "stages.mapSettings.showRoutes": "Route Lines",
    "stages.mapSettings.showRoutes.desc": "Draw the paths enemies follow across the map.",
    "stages.mapSettings.showTimers": "Wait Timers",
    "stages.mapSettings.showTimers.desc": "Show how long enemies pause at points on their route.",
    "stages.mapSettings.title": "Settings",
    "stages.mapSettings.walkingChibis": "Walking Chibis",
    "stages.mapSettings.walkingChibis.desc": "In 3D view, replace the icon with the enemy's animated chibi walking the route.",
    "stages.occ.ALMOST": "Common",
    "stages.occ.ALWAYS": "Guaranteed",
    "stages.occ.FALLBACK": "Drops",
    "stages.occ.OFTEN": "Rare",
    "stages.occ.RARELY": "Very Rare",
    "stages.occ.SOMETIMES": "Very Rare",
    "stages.occ.USUAL": "Uncommon",
    "stages.overview.dpTick": "DP / Tick",
    "stages.overview.dpTick.alt": "DP per tick",
    "stages.overview.dpTick.info": "How often you passively gain 1 DP - a lower number means DP regenerates faster.",
    "stages.overview.initialCost": "Initial DP",
    "stages.overview.initialCost.info": "The amount of Deployment Points (DP) you start the battle with.",
    "stages.overview.moveSpeed": "Move Speed",
    "stages.overview.moveSpeed.info": "A global multiplier applied to every enemy's movement speed on this stage. ×0.5 means enemies move at half their normal speed.",
    "stages.overview.title": "Overview",
    "stages.overview.unitLimit": "Unit Limit",
    "stages.overview.unitLimit.info": "The maximum number of operators you can have deployed on the field at once.",
    "stages.primitives.flag.no": "No",
    "stages.primitives.flag.yes": "Yes",
    "stages.primitives.moreInfo": "More information",
    "stages.props.autoDeploy": "Auto-Deploy (Multi)",
    "stages.props.battleReplay": "Battle Replay",
    "stages.props.canPractice": "Can Practice",
    "stages.props.cardsSelectable": "Cards Selectable",
    "stages.props.cardsSelectable.hint": "In a predefined-squad stage, whether you may pick which of the provided operators to deploy. When off, the loadout is locked.",
    "stages.props.ids.challenge": "Challenge ID",
    "stages.props.ids.level": "Level ID",
    "stages.props.ids.stage": "Stage ID",
    "stages.props.ids.title": "Identifiers",
    "stages.props.ids.zone": "Zone ID",
    "stages.props.predefinedSquad": "Predefined Squad",
    "stages.props.predefinedSquad.hint": "The stage hands you a fixed roster of operators to clear it with, instead of letting you bring your own.",
    "stages.props.steeringEnabled": "Steering Enabled",
    "stages.props.steeringEnabled.hint": "A pathfinding flag: when on, enemies steer smoothly around each other and corners rather than snapping tile-to-tile. It rarely affects strategy.",
    "stages.props.storyOnly": "Story Only",
    "stages.props.title": "Properties",
    "stages.props.trainingLevel": "Training Level",
    "stages.props.trainingLevel.hint": "A tutorial / practice stage that teaches a mechanic and does not count toward normal progression.",
    "stages.routes.svgTitle": "enemy route",
    "stages.routes.svgTitle.shadow": "enemy route shadow",
    "stages.spawns.col.count": "Count",
    "stages.spawns.col.enemy": "Enemy",
    "stages.spawns.col.interval": "Interval",
    "stages.spawns.col.preDelay": "Pre-Delay",
    "stages.spawns.col.start": "Start ~",
    "stages.spawns.col.wave": "Wave",
    "stages.spawns.groups": "{count, plural, one {# group} other {# groups}}",
    "stages.spawns.hiddenRoutes": "Hidden Routes",
    "stages.spawns.title": "Spawn Schedule",
    "stages.stageType.ACTIVITY": "Event",
    "stages.stageType.CAMPAIGN": "Campaign",
    "stages.stageType.CLIMB_TOWER": "Stationary Security",
    "stages.stageType.DAILY": "Daily / Resource",
    "stages.stageType.GUIDE": "Tutorial",
    "stages.stageType.MAIN": "Main Theme",
    "stages.stageType.SPECIAL_STORY": "Special Story",
    "stages.stageType.SUB": "Sub Stage",
    "stages.stageType.UNKNOWN": "Unknown",
    "stages.tile.bigForce": "F+",
    "stages.tile.defUp": "def+",
    "stages.tile.flyStart": "air",
    "stages.tile.gazebo": "air+",
    "stages.tile.hole": "hole",
    "stages.tile.stairs": "↕",
    "stages.tile.teleportIn": "in",
    "stages.tile.teleportOut": "out",
    "stages.tile.woodenWall": "WW",
    "stages.waves.fragments": "Fragments",
    "stages.waves.postDelay": "Post-Delay",
    "stages.waves.preDelay": "Pre-Delay",
    "stages.waves.spawns": "{count, plural, one {# spawn} other {# spawns}}",
    "stages.waves.title": "Waves · {count}",
    "stages.waves.wave": "Wave {index}",
    "stats.catalog.enemies": "Enemies",
    "stats.catalog.enemies.meta": "indexed",
    "stats.catalog.modules": "Modules",
    "stats.catalog.modules.meta": "stage-3 unlocked",
    "stats.catalog.operators": "Operators",
    "stats.catalog.operators.meta": "playable + alters",
    "stats.catalog.rosters": "Rosters",
    "stats.catalog.rosters.meta": "Yostar-linked players",
    "stats.catalog.skills": "Skills",
    "stats.catalog.skills.meta": "across all archetypes",
    "stats.catalog.skins": "Skins",
    "stats.catalog.skins.meta": "elite & seasonal",
    "stats.catalog.stages": "Stages",
    "stats.catalog.stages.meta": "across {count} zones",
    "stats.catalog.tierLists": "Tier lists",
    "stats.catalog.tierLists.meta": "{count} placements",
    "stats.fieldNotes.immune.label": "Enemy immunity",
    "stats.fieldNotes.immune.levels": "Boss {boss} · Elite {elite} · Normal {normal}",
    "stats.fieldNotes.immune.sentence": "of enemies are immune to {status, select, stun {stun} silence {silence} sleep {sleep} frozen {freeze} levitate {levitation} other {{status}}}",
    "stats.fieldNotes.inflict.label": "Inflicted by",
    "stats.fieldNotes.inflict.sentence": "of operators have a skill that inflicts {status, select, stun {stun} silence {silence} sleep {sleep} frozen {freeze} levitate {levitation} other {{status}}}",
    "stats.fieldNotes.kicker": "Field notes",
    "stats.fieldNotes.mostOwned.label": "Most owned 6★",
    "stats.fieldNotes.mostOwned.sentence": "of synced players own {name}",
    "stats.fieldNotes.picker": "Status",
    "stats.fieldNotes.progress.label": "Handbook progress",
    "stats.fieldNotes.progress.meta": "across {count} players",
    "stats.fieldNotes.progress.sentence": "The average player has met {met} of {total} enemies",
    "stats.fieldNotes.rarest.label": "Rarest 6★",
    "stats.fieldNotes.rarest.sentence": "of synced players own {name}, the rarest 6★",
    "stats.fieldNotes.ratio": "{n} of {total}",
    "stats.fieldNotes.status": "{status, select, stun {Stun} silence {Silence} sleep {Sleep} frozen {Freeze} levitate {Levitate} other {{status}}}",
    "stats.header.blurb": "Live snapshot of the game catalog we index, the tier lists the community maintains, and the rosters players have synced with their Yostar accounts.",
    "stats.header.kicker": "Site · overview",
    "stats.header.title": "A count of {em} on myrtle.moe.",
    "stats.header.title.em": "everything",
    "stats.header.updated": "updated {when}",
    "stats.page.catalog.blurb": "A faithful mirror of Hypergryph’s gamedata, recomputed on every build.",
    "stats.page.catalog.kicker": "Game catalog",
    "stats.page.catalog.title": "What we know about Terra.",
    "stats.page.cell.active": "Active",
    "stats.page.cell.active.meta": "{percent}% of total",
    "stats.page.cell.avgPerList": "avg {avg} per list",
    "stats.page.cell.placements": "Placements",
    "stats.page.cell.totalLists": "Total lists",
    "stats.page.cell.totalLists.meta": "{count} archived",
    "stats.page.cell.versions": "Versions saved",
    "stats.page.community.blurb": "Counted across every public list. {versions} are saved revisions; {placements} are individual operator-on-tier rows.",
    "stats.page.community.blurb.placements": "placements",
    "stats.page.community.blurb.versions": "Versions",
    "stats.page.community.kicker": "Tier lists · community",
    "stats.page.community.title": "The community’s working notes.",
    "stats.page.error.load": "Couldn’t load site stats.",
    "stats.page.error.unknown": "Unknown error.",
    "stats.page.footer": "Looking for gacha rates, most-pulled operators, or pull timing? Those live on {link}. This page is the meta-count - just the shape of what we host.",
    "stats.page.kpi.operators": "Operators indexed",
    "stats.page.kpi.operators.meta": "{skills} skills · {modules} modules",
    "stats.page.kpi.rosters": "Rosters synced",
    "stats.page.kpi.rosters.meta": "Yostar-linked players",
    "stats.page.kpi.tierLists": "Active tier lists",
    "stats.page.kpi.tierLists.meta": "{total} total · {versions} versions",
    "story.archive.clip.language": "Language",
    "story.archive.clip.pause": "Stop {name}",
    "story.archive.clip.play": "Play {name}",
    "story.archive.logs.icon.normal": "Normal",
    "story.archive.logs.icon.special": "Special",
    "story.archive.music.untitled": "Untitled track",
    "story.archive.news.author": "By {author}",
    "story.archive.recordings.hidden": "Not on the shelf",
    "story.archive.recordings.hiddenNote": "The game keeps these back until they are unlocked, so its own shelf does not list them.",
    "story.archive.section.files": "Files",
    "story.archive.section.gallery": "Gallery",
    "story.archive.section.landmarks": "Landmarks",
    "story.archive.section.logs": "Logs",
    "story.archive.section.music": "Music",
    "story.archive.section.news": "News",
    "story.archive.section.recordings": "Recordings",
    "story.archive.theme.label": "Chapter theme",
    "story.archive.theme.pause": "Pause {name}",
    "story.archive.theme.play": "Play {name}",
    "story.archive.total": "{count} entries in this archive",
    "story.archive.view.archive": "From the archive",
    "story.archive.view.aria": "What the chapter sheet shows",
    "story.archive.view.entries": "Entries",
    "story.backlog.ahead": "Read ahead",
    "story.backlog.choice": "Choice: {text}",
    "story.backlog.copied": "Copied",
    "story.backlog.copy": "Copy",
    "story.backlog.empty": "Nothing read yet.",
    "story.backlog.jump": "Jump to line {line}",
    "story.backlog.title": "Backlog",
    "story.book.choice": "Choose",
    "story.book.colophon": "Colophon",
    "story.book.contents": "Contents",
    "story.book.cover": "Cover",
    "story.book.credit": "Story text and art by Hypergryph and Yostar, from Arknights.",
    "story.book.cutscene": "Cutscene",
    "story.book.earlier": "If you had chosen {options}",
    "story.book.figureAlt": "Illustration",
    "story.book.ifChose": "If you chose {options}",
    "story.book.madeWith": "Made with myrtle.moe.",
    "story.book.rights": "Arknights and all of its story text and art belong to Hypergryph and Yostar. This book is a personal reading copy.",
    "story.book.synopsis": "Synopsis",
    "story.browse.badge.event": "EVENT",
    "story.browse.badge.intermezzo": "INTERMEZZO",
    "story.browse.badge.main": "MAIN STORY",
    "story.browse.badge.record": "OPERATOR RECORD",
    "story.browse.badge.vignette": "VIGNETTE",
    "story.browse.card.chapter": "Chapter {n}",
    "story.browse.card.chapterShort": "EP.{n}",
    "story.browse.card.entries": "{count, plural, one {# entry} other {# entries}}",
    "story.browse.card.open": "Open {name}",
    "story.browse.card.openWithProgress": "Open {name}, {read} of {total} read",
    "story.browse.chip.act": "Act {ordinal} · {range}",
    "story.browse.chip.compact": "Ch. {from}-{to}",
    "story.browse.chip.compactOne": "Ch. {n}",
    "story.browse.chip.includes": "Includes chapters {from} to {to}",
    "story.browse.chip.includesOne": "Includes chapter {n}",
    "story.browse.chip.otherAbbr": "MISC",
    "story.browse.chip.range": "Chapters {from} to {to}",
    "story.browse.chip.rangeOne": "Chapter {n}",
    "story.browse.chip.recordsAbbr": "REC",
    "story.browse.continue.kicker": "Continue reading",
    "story.browse.continue.kickerFresh": "Start here",
    "story.browse.continue.more": "More reading options",
    "story.browse.empty": "Nothing matches that search.",
    "story.browse.fallback": "The running backend sends no storyline shelves yet, so the page is grouped by chapter order and release year instead of by the game's own themes. A backend restart fills them in.",
    "story.browse.filter.all": "All",
    "story.browse.filter.events": "Events",
    "story.browse.filter.main": "Main story",
    "story.browse.filter.records": "Operator records",
    "story.browse.filter.side": "Side stories",
    "story.browse.jump.aria": "Jump to a section",
    "story.browse.jump.picker": "Section picker, current section: {name}",
    "story.browse.jump.sheetTitle": "Jump to a section",
    "story.browse.read.any": "Any",
    "story.browse.read.aria": "Read state",
    "story.browse.read.done": "Finished",
    "story.browse.read.progress": "In progress",
    "story.browse.read.unread": "Unread",
    "story.browse.row.fraction": "{read} / {total}",
    "story.browse.search.aria": "Search stories by chapter, story or operation code",
    "story.browse.search.placeholder": "Search stories",
    "story.browse.section.count": "{count, plural, one {# chapter} other {# chapters}}",
    "story.browse.section.hide": "Hide",
    "story.browse.section.main": "Main story",
    "story.browse.section.other": "Other events",
    "story.browse.section.recordCount": "{count, plural, one {# operator} other {# operators}}",
    "story.browse.section.records": "Operator records",
    "story.browse.section.show": "Show",
    "story.browse.section.sorted": "All chapters",
    "story.browse.section.undated": "Undated",
    "story.browse.sort.default": "Default",
    "story.browse.sort.label": "Sort",
    "story.browse.sort.leastRead": "Least read first",
    "story.browse.sort.mostRead": "Most read first",
    "story.browse.sort.newest": "Newest release",
    "story.browse.sort.oldest": "Oldest release",
    "story.browse.sort.title": "Title A to Z",
    "story.browse.toolbar.category": "Category",
    "story.browse.toolbar.done": "Done",
    "story.browse.toolbar.filters": "Filters",
    "story.browse.toolbar.filtersAria": "Filters, {count, plural, one {# active} other {# active}}",
    "story.browse.toolbar.open": "Search and filters",
    "story.browse.toolbar.openActive": "Search and filters, {count, plural, one {# filter active} other {# filters active}}",
    "story.browse.view.aria": "Layout",
    "story.browse.view.grid": "Grid",
    "story.browse.view.list": "List",
    "story.category.is": "Integrated Strategies",
    "story.category.main": "Main story",
    "story.category.reclamation": "Reclamation Algorithm",
    "story.category.record": "Operator records",
    "story.category.side": "Side stories",
    "story.category.sideContent": "Other",
    "story.category.vignette": "Vignettes",
    "story.chapter.about": "about {time}",
    "story.chapter.close": "Close",
    "story.chapter.continue": "Continue",
    "story.chapter.nav.next": "Next chapter",
    "story.chapter.nav.nextTitle": "Next: {name}",
    "story.chapter.nav.prev": "Previous chapter",
    "story.chapter.nav.prevTitle": "Previous: {name}",
    "story.chapter.phase.after": "After",
    "story.chapter.phase.before": "Before",
    "story.chapter.phase.interlude": "Interlude",
    "story.chapter.readFraction": "{read} of {total} read",
    "story.chapter.restart": "Start from the beginning",
    "story.chapter.segment.aria": "{title}, {phase}",
    "story.chapter.timeLeft": "{time} left",
    "story.chapter.video": "Video",
    "story.chapter.words": "{words} words",
    "story.chapter.wordsUnknown": "Not counted yet",
    "story.community.depth.bar": "{name}: {readers} readers, {share} of players",
    "story.community.depth.drop": "{first} start, {last} finish",
    "story.community.depth.none": "No chapter carries a reading-depth curve.",
    "story.community.depth.picker": "Chapter",
    "story.community.empty.body": "This server has not computed what the community has read. It appears here once it does.",
    "story.community.empty.rows": "No chapter has a reader yet.",
    "story.community.empty.title": "Community reading is not available yet",
    "story.community.finished": "FINISHED",
    "story.community.header": "{players} synced players · computed {when}",
    "story.community.notMeasurable": "Not measurable",
    "story.community.notMeasurable.why": "Most synced accounts are known only through their stage records, and no story in this chapter is gated behind a stage, so nobody can be counted as having finished it.",
    "story.community.ofPlayers": "{share} of players",
    "story.community.open": "Open {name}",
    "story.community.readers": "READERS",
    "story.community.section.bottom": "Least read",
    "story.community.section.bottom.blurb": "The chapters and events with the fewest readers, counting only those with at least one.",
    "story.community.section.depth": "How far people read",
    "story.community.section.depth.blurb": "Readers of each story of one chapter, in the order the library lists them. It is not a funnel: a special stage or an interlude can be entered by its own door, so a later story can carry more readers than an earlier one.",
    "story.community.section.stories": "Most read stories",
    "story.community.section.stories.blurb": "Single stories by the number of synced players who have read them.",
    "story.community.section.top": "Most read chapters and events",
    "story.community.section.top.blurb": "Chapters and events by the number of synced players who have read at least one of their stories. Operator records are not ranked here.",
    "story.community.skipped": "{count, plural, one {# chapter has no reader and is not listed.} other {# chapters have no reader and are not listed.}}",
    "story.community.tab": "Community",
    "story.export.blobWarning": "This file will be about {size}. This browser builds it in memory before saving, which may fail on a phone; a smaller scope is safer.",
    "story.export.book.back": "Back to the reader",
    "story.export.book.open": "Print this story",
    "story.export.book.print": "Print or save as PDF",
    "story.export.branches": "Choices",
    "story.export.branches.all": "Every branch",
    "story.export.branches.path": "My choices",
    "story.export.cancel": "Cancel",
    "story.export.cancelled": "Export cancelled.",
    "story.export.close": "Close",
    "story.export.done": "Saved {file}.",
    "story.export.doneDisk": "Written to {file}.",
    "story.export.doneMissing": "{count, plural, one {# picture} other {# pictures}} could not be loaded and were left out.",
    "story.export.download": "Download",
    "story.export.empty": "Choose at least one story.",
    "story.export.error": "The export failed: {message}",
    "story.export.estimate": "{stories, plural, one {# story} other {# stories}} · {words, plural, one {# word} other {# words}} · about {time} · {images, plural, one {# picture} other {# pictures}} · about {size}",
    "story.export.estimate.rough": "The picture count is an estimate until the chapter's illustration list loads.",
    "story.export.format": "Format",
    "story.export.format.epub": "EPUB",
    "story.export.format.markdown": "Markdown",
    "story.export.format.pdf": "PDF",
    "story.export.format.text": "Text",
    "story.export.images": "Pictures",
    "story.export.images.cg": "Illustrations",
    "story.export.images.cgbg": "Illustrations and scenes",
    "story.export.images.count": "This chapter has {cgs, plural, one {# illustration} other {# illustrations}} and {scenes, plural, one {# scene} other {# scenes}}.",
    "story.export.images.linked": "Markdown and text link to pictures online instead of carrying them.",
    "story.export.images.none": "None",
    "story.export.name": "Doctor's name",
    "story.export.open": "Export",
    "story.export.openStory": "Export this story",
    "story.export.paper": "Paper",
    "story.export.paper.a4": "A4",
    "story.export.paper.a5": "A5",
    "story.export.paper.letter": "Letter",
    "story.export.partial.kept": "The unfinished file may still be on disk; this browser could not remove it.",
    "story.export.partial.removed": "The unfinished file was removed.",
    "story.export.progress.book": "Writing {done} of {total} · {story}",
    "story.export.progress.finishing": "Finishing the file…",
    "story.export.progress.layout": "Laying out pages…",
    "story.export.progress.layoutStory": "Laying out story {done} of {total} · {story}",
    "story.export.progress.scripts": "Loading {done} of {total} · {story}",
    "story.export.range.from": "From",
    "story.export.range.release": "Release order",
    "story.export.range.storyline": "Storyline order",
    "story.export.range.to": "To",
    "story.export.scope": "Stories",
    "story.export.scope.arc": "This arc",
    "story.export.scope.chapter": "Whole chapter",
    "story.export.scope.groups": "{title}: {count, plural, one {# chapter or event} other {# chapters and events}}",
    "story.export.scope.range": "Reading order…",
    "story.export.scope.selection": "Choose…",
    "story.export.scope.story": "This story",
    "story.export.scope.storyline": "This storyline",
    "story.export.selection.all": "All",
    "story.export.selection.count": "{count, plural, one {# story} other {# stories}} chosen",
    "story.export.selection.none": "None",
    "story.export.settingsHint": "Save this story or its chapter as an e-book or a text file.",
    "story.export.stalled": "The export stopped making progress for {seconds} s at {story} and was stopped. Try a smaller scope.",
    "story.export.storyFailed": "The export failed at {story}: {message}",
    "story.export.subtitle": "Save {group} to read offline, as an e-book or a text file.",
    "story.export.title": "Export",
    "story.export.typeface": "Typeface",
    "story.export.typeface.device": "Reader's own",
    "story.export.typeface.inter": "Inter",
    "story.export.typeface.opendyslexic": "OpenDyslexic",
    "story.export.typeface.packagedOnly": "Only an EPUB or a PDF carries a typeface.",
    "story.hero.continue": "Continue",
    "story.hero.fromStart": "From the start",
    "story.hero.groupRead": "{read} of {total} read",
    "story.hero.kicker": "Continue reading",
    "story.hero.kickerFresh": "Start here",
    "story.hero.neverOpened": "Not opened yet",
    "story.hero.resumeAt": "Stopped at line {line} of {total}",
    "story.hero.startReading": "Start reading",
    "story.hero.viewChapter": "View chapter",
    "story.illustrations.card.illustrations": "{count} pieces",
    "story.illustrations.card.open": "Show the artwork in {name}",
    "story.illustrations.card.sprites": "{count} sprites",
    "story.illustrations.card.unknown": "?",
    "story.illustrations.category.aria": "Filter by category",
    "story.illustrations.category.record": "Operator records",
    "story.illustrations.empty": "No chapter in this category.",
    "story.illustrations.item.faces": "{count, plural, one {# face} other {# faces}}",
    "story.illustrations.item.notExtracted": "Not extracted",
    "story.illustrations.item.usedIn": "Used in {count, plural, one {# story} other {# stories}}",
    "story.illustrations.item.view": "View {name} full size",
    "story.illustrations.kind.illustrations": "Illustrations",
    "story.illustrations.kind.sprites": "Sprites",
    "story.illustrations.pane.aria": "Artwork kind",
    "story.illustrations.pane.backgrounds": "Backgrounds",
    "story.illustrations.pane.cgs": "CGs",
    "story.illustrations.pane.sprites": "Sprites",
    "story.illustrations.panel.close": "Close",
    "story.illustrations.panel.empty": "No artwork in this chapter.",
    "story.illustrations.panel.failed": "The artwork could not be loaded.",
    "story.illustrations.panel.loading": "Loading artwork",
    "story.illustrations.panel.missing": "{count} not extracted",
    "story.illustrations.panel.split": "The card counts {total} pieces, which is {backgrounds} backgrounds plus {cgs} CGs. The index carries only the sum, so the split is shown here.",
    "story.illustrations.panel.summary": "{rows} over {stories, plural, one {# story} other {# stories}}",
    "story.illustrations.panel.unavailable": "This backend does not serve artwork yet.",
    "story.illustrations.panel.unavailableNote": "The endpoint is GET /story/group/<id>/illustrations. Everything else on this page keeps working.",
    "story.illustrations.total": "{count} in this category",
    "story.illustrations.totalUnknown": "Counts not on the wire yet",
    "story.illustrations.viewer.close": "Close the viewer",
    "story.library.breadcrumb": "Breadcrumb",
    "story.library.breadcrumb.archive": "Archive",
    "story.library.breadcrumb.stories": "Stories",
    "story.library.counts": "{groups} chapters · {records} operators",
    "story.library.countsAll": "{groups} chapters · {records} operators · {stories} stories",
    "story.library.description": "Read every Arknights story: main chapters, events and operator records.",
    "story.library.storiesLabel": "Stories",
    "story.library.tab.browse": "Browse",
    "story.library.tab.illustrations": "Illustrations",
    "story.library.tab.progress": "Progress",
    "story.library.tab.reading": "Reading Order",
    "story.library.title": "Stories",
    "story.marks.clearAll": "Clear all",
    "story.marks.clearAll.confirm": "Clear {count} marks? Cleared stories stay unread even if the game says you read them.",
    "story.marks.clearAll.no": "Cancel",
    "story.marks.clearAll.yes": "Confirm",
    "story.marks.markAll": "Mark all read",
    "story.marks.markRead": "Mark {story} read",
    "story.marks.markUnread": "Mark {story} unread",
    "story.marks.source.cleared": "Cleared by you",
    "story.marks.source.game": "Read in game",
    "story.marks.source.own": "You marked this read",
    "story.nowPlaying.loopPoint": "Loop starts here",
    "story.nowPlaying.pause": "Pause {name}",
    "story.nowPlaying.paused": "Paused",
    "story.nowPlaying.playing": "{title} from {chapter}",
    "story.nowPlaying.region": "Now playing",
    "story.nowPlaying.resume": "Resume {name}",
    "story.nowPlaying.seek": "Position in track",
    "story.nowPlaying.seekValue": "{elapsed} of {total}",
    "story.nowPlaying.stop": "Stop {name}",
    "story.nowPlaying.volume": "Music volume",
    "story.operators.card.open": "Show {name}'s records",
    "story.operators.card.read": "{read}/{total}",
    "story.operators.dialog.close": "Close",
    "story.operators.dialog.failed": "This shelf did not load. Close the dialog and open it again.",
    "story.operators.dialog.files.empty": "No archive files for this operator.",
    "story.operators.dialog.lazyNote": "Files, Modules and Voice Lines each load when you open them, so their counts are in here rather than on the card.",
    "story.operators.dialog.loading": "Loading…",
    "story.operators.dialog.modules.empty": "Not available yet.",
    "story.operators.dialog.modules.emptyNote": "This operator's modules carry no story text on the wire, or they have none yet.",
    "story.operators.dialog.original": "Original",
    "story.operators.dialog.section.collapse": "Hide {name}",
    "story.operators.dialog.section.expand": "Show {name}",
    "story.operators.dialog.shelfWords": "{count} rows · {words} words",
    "story.operators.dialog.tab.files": "Files",
    "story.operators.dialog.tab.modules": "Modules",
    "story.operators.dialog.tab.records": "Records",
    "story.operators.dialog.tab.voices": "Voice Lines",
    "story.operators.dialog.voices.empty": "No voice lines for this operator.",
    "story.operators.dialog.voices.language": "Language",
    "story.operators.dialog.voices.noClip": "No clip in this language",
    "story.operators.dialog.voices.pause": "Pause {name}",
    "story.operators.dialog.voices.play": "Play {name}",
    "story.operators.dialog.words": "{count} words",
    "story.operators.empty": "No operator matches.",
    "story.operators.hideFinished": "Hide finished",
    "story.operators.rarity": "{count, plural, one {# star} other {# stars}}",
    "story.operators.readCount": "{done} of {total} operators read through",
    "story.operators.search.aria": "Search operators",
    "story.operators.search.placeholder": "Search operators",
    "story.operators.showMore": "Show {count} more ({remaining} left)",
    "story.progress.backup": "Back up",
    "story.progress.chapters": "Chapters finished",
    "story.progress.chaptersValue": "{done} of {total}",
    "story.progress.finished": "Finished",
    "story.progress.finishedValue": "{read} of {total} stories",
    "story.progress.manage": "Your progress",
    "story.progress.manageBlurb": "Reading progress lives in this browser only. Back it up before clearing site data, and restore it on another device.",
    "story.progress.manageBlurbSynced": "Reading progress lives in this browser and on your account, so it follows you to another device. Back it up before clearing site data.",
    "story.progress.overrides": "{count} stories you cleared that the game says you read",
    "story.progress.overrides.blurb": "A story you clear stays unread even when your game data says you read it, and the clear syncs to your account like any mark, so Account wins keeps it. Trust the game to show those as read again.",
    "story.progress.overrides.trust": "Trust the game",
    "story.progress.reset": "Reset",
    "story.progress.reset.body": "Every finished story and saved position is removed from this browser. This cannot be undone.",
    "story.progress.reset.bodySynced": "Every finished story and saved position is removed from this browser and from your account, on every device. This cannot be undone.",
    "story.progress.reset.cancel": "Cancel",
    "story.progress.reset.confirm": "Clear progress",
    "story.progress.reset.title": "Clear all reading progress?",
    "story.progress.restore": "Restore",
    "story.progress.restoreFailed": "That file holds no reading progress.",
    "story.progress.restored": "Restored {stories} finished stories and {positions} saved positions.",
    "story.progress.share": "Share read",
    "story.progress.sync": "Sync with account",
    "story.progress.sync.conflict.account": "Your account",
    "story.progress.sync.conflict.blurb": "Nothing has been changed yet. Choose which reading progress to keep.",
    "story.progress.sync.conflict.browser": "This browser",
    "story.progress.sync.conflict.keepBrowser": "Keep browser",
    "story.progress.sync.conflict.keepBrowserHint": "Replaces your account: {marks} finished stories and {positions} saved positions are dropped.",
    "story.progress.sync.conflict.last": "Last read",
    "story.progress.sync.conflict.lastNone": "None",
    "story.progress.sync.conflict.marks": "Finished stories",
    "story.progress.sync.conflict.merge": "Merge both",
    "story.progress.sync.conflict.mergeHint": "Keeps everything from both: {marks} finished stories and {positions} saved positions.",
    "story.progress.sync.conflict.newer": "newer",
    "story.progress.sync.conflict.positions": "Saved positions",
    "story.progress.sync.conflict.title": "This browser and your account disagree",
    "story.progress.sync.conflict.useAccount": "Use account",
    "story.progress.sync.conflict.useAccountHint": "Replaces this browser: {marks} finished stories and {positions} saved positions are dropped.",
    "story.progress.sync.failed": "Sync failed. Your progress is safe in this browser.",
    "story.progress.sync.gameImported": "{count} stories read in-game ({archived} in the Archive), imported. Game data synced {when}.",
    "story.progress.sync.gameNever": "Nothing imported from the game yet. Refresh your profile to bring in what you have read in-game.",
    "story.progress.sync.gameNone": "No stories read in-game yet, as of your last game data refresh {when}.",
    "story.progress.sync.now": "Sync now",
    "story.progress.sync.offline": "Offline. Your progress is safe in this browser and syncs when you are back.",
    "story.progress.sync.pending": "Not synced yet",
    "story.progress.sync.policy": "When they differ next time",
    "story.progress.sync.policy.account": "Account wins",
    "story.progress.sync.policy.ask": "Ask me",
    "story.progress.sync.policy.browser": "Browser wins",
    "story.progress.sync.policy.merge": "Merge",
    "story.progress.sync.retry": "Retry",
    "story.progress.sync.signIn": "Sign in",
    "story.progress.sync.signedOut": "Sign in to sync",
    "story.progress.sync.synced": "Synced {when}",
    "story.progress.sync.syncing": "Syncing",
    "story.progress.sync.unauthorized": "Your session has expired. Sign in again to keep syncing.",
    "story.progress.wasReset": "Reading progress cleared.",
    "story.progress.words": "Words read",
    "story.progress.wordsPending": "Not counted yet",
    "story.reader.box.drag": "Move the text box",
    "story.reader.cutscene.label": "Cutscene",
    "story.reader.cutscene.play": "Play",
    "story.reader.cutscene.skip": "Skip video",
    "story.reader.end.again": "Read again",
    "story.reader.end.body": "Use the story arrows in the toolbar to move on, or press the left arrow key to look back.",
    "story.reader.end.library": "Back to library",
    "story.reader.end.next": "Next story",
    "story.reader.end.previous": "Previous story",
    "story.reader.end.title": "End of story",
    "story.reader.error.noScript": "This story has no script file in the served data.",
    "story.reader.error.notFound": "Story not found.",
    "story.reader.line.continue": "Continue",
    "story.reader.loading": "Loading story…",
    "story.reader.narrator": "Narration",
    "story.reader.progress": "Reading progress",
    "story.reader.scrub.line": "Line {line} of {total}",
    "story.reader.skip.cancel": "Keep reading",
    "story.reader.skip.confirm": "Skip story",
    "story.reader.skip.none": "This story has no summary.",
    "story.reader.skip.summaryLabel": "Story summary",
    "story.reader.stage.label": "Story stage. Click to advance.",
    "story.reader.title.begin": "Click or press Space to begin",
    "story.reader.title.resume": "You left off at line {line} of {total}.",
    "story.reader.title.resumeButton": "Resume from line {line}",
    "story.reader.title.startOver": "Start over",
    "story.reader.toolbar.auto": "Auto",
    "story.reader.toolbar.back": "Library",
    "story.reader.toolbar.exitFullscreen": "Exit fullscreen",
    "story.reader.toolbar.fullscreen": "Fullscreen",
    "story.reader.toolbar.hide": "Hide",
    "story.reader.toolbar.hideToolbar": "Hide toolbar",
    "story.reader.toolbar.log": "Log",
    "story.reader.toolbar.mute": "Mute music",
    "story.reader.toolbar.nextStory": "Next story",
    "story.reader.toolbar.off": "Off",
    "story.reader.toolbar.on": "On",
    "story.reader.toolbar.playbackLabel": "Playback controls",
    "story.reader.toolbar.previousStory": "Previous story",
    "story.reader.toolbar.sceneLabel": "Story controls",
    "story.reader.toolbar.settings": "Settings",
    "story.reader.toolbar.showToolbar": "Show toolbar",
    "story.reader.toolbar.skip": "Skip",
    "story.reader.toolbar.speed": "Playback speed",
    "story.reader.toolbar.unmute": "Unmute music",
    "story.reader.volume.label": "Volume",
    "story.reader.volume.music": "Music",
    "story.reader.volume.sound": "Sound",
    "story.reading.mode.aria": "Reading order",
    "story.reading.mode.release": "Release order",
    "story.reading.mode.storyline": "Storyline order",
    "story.reading.mode.timeline": "Timeline order",
    "story.reading.next": "Next",
    "story.reading.next.done": "Everything in this order is read.",
    "story.reading.release.cons": "A plot thread can go cold for months of real time between two chapters. Only five main story chapters carry a date, so the other twelve stand apart instead of woven in.",
    "story.reading.release.pros": "Reads the way the game shipped, so nothing refers back to a story you have not met yet. Events land where they interrupted the mainline, which is how most players first read them.",
    "story.reading.row.collapse": "Hide the stories in {name}",
    "story.reading.row.expand": "Show the stories in {name}",
    "story.reading.row.noDate": "No date",
    "story.reading.row.noneExtracted": "{count} not extracted",
    "story.reading.row.read": "{read}/{total}",
    "story.reading.section.dated": "Dated groups, oldest first",
    "story.reading.section.totals": "{words} words · {time} · {done} of {groups} read",
    "story.reading.section.totalsUncounted": "{done} of {groups} read",
    "story.reading.section.undated": "Main Theme, undated chapters",
    "story.reading.section.undated.note": "{undated} main story chapters sit in zones the game dates -1, so they stand here in chapter order rather than being placed among the events. The other {dated} carry a real zone open time and are interleaved below.",
    "story.reading.section.unlinked": "Side material, release order",
    "story.reading.section.unlinked.note": "No field links an event to the chapter it follows, so this block is in release order and says so rather than guessing a place for it.",
    "story.reading.storyline.cons": "Nothing in the data says which chapter a side story belongs beside, so the side material trails the mainline instead of sitting in it. An event that answers a chapter can therefore be read long after it stopped being a surprise.",
    "story.reading.storyline.pros": "The Main Theme runs end to end, with no six-month gap in the middle of a plot. The four arcs are the game's own, so each stretch ends where the writers meant it to.",
    "story.reading.timeline.body": "A timeline order says when each story happens in Terra, and no field in the game's data says that. The reference site's timeline is written by hand, story by story, so this site would be copying a judgement rather than deriving one, and a wrong guess reads as a spoiler. Release order and storyline order below are both derived from the data and are shown instead.",
    "story.reading.timeline.title": "Not offered here",
    "story.reading.total": "{count} chapters",
    "story.settings.animateRatio": "Playback speed",
    "story.settings.animateRatioHint": "Multiplies every fade, tween and hold the script asks for. 0 plays each step instantly.",
    "story.settings.autoHideToolbar": "Auto-hide toolbar after 2.5 s",
    "story.settings.autoHideToolbarHint": "Off by default: the controls stay on screen, the way the game keeps its own. With it on, moving the pointer brings them back; reading does not, so Space keeps turning the page.",
    "story.settings.autoPace": "Auto-play pace",
    "story.settings.bottomMargin": "Bottom margin",
    "story.settings.boxPosition": "Box position",
    "story.settings.boxPosition.pad": "Text box position on the stage",
    "story.settings.boxPosition.value": "{x}, {y}",
    "story.settings.boxPositionHint": "Drag the box on the stage, or drag the thumbnail here. Arrow keys nudge it.",
    "story.settings.boxPreset.bottomCentre": "Bottom centre",
    "story.settings.boxPreset.bottomLeft": "Bottom left",
    "story.settings.boxPreset.bottomRight": "Bottom right",
    "story.settings.boxPreset.centre": "Centre",
    "story.settings.boxPreset.reset": "Reset",
    "story.settings.boxPreset.topCentre": "Top centre",
    "story.settings.cps": "Text speed",
    "story.settings.cpsValue": "{value} chars/s",
    "story.settings.cutscenePlayer": "Cutscene player",
    "story.settings.cutscenePlayer.native": "Browser controls",
    "story.settings.cutscenePlayer.simple": "Simple (skip only)",
    "story.settings.cutscenePlayer.vidstack": "Full player",
    "story.settings.cutscenePlayerHint": "Full player loads on the first cutscene; its volume follows the Music slider both ways.",
    "story.settings.font": "Font",
    "story.settings.font.cjk": "Pretendard (CJK)",
    "story.settings.font.custom": "Custom font file…",
    "story.settings.font.display": "Fraunces (serif)",
    "story.settings.font.dyslexic": "OpenDyslexic",
    "story.settings.font.heading": "Inter (headings)",
    "story.settings.font.mono": "Geist Mono (monospace)",
    "story.settings.font.none": "No font file yet",
    "story.settings.font.preset": "Reader default",
    "story.settings.font.previewText": "Doctor. The convoy reaches the checkpoint at dawn.",
    "story.settings.font.rejected": "That file is not a font the browser can load.",
    "story.settings.font.remove": "Remove",
    "story.settings.font.sans": "Inter (site default)",
    "story.settings.font.system": "System font",
    "story.settings.font.terraAegir": "Terra Aegir",
    "story.settings.font.terraCredit": "Fan reconstruction of the in-game script; credits in the footer.",
    "story.settings.font.terraSami": "Terra Sami",
    "story.settings.font.terraSarkaz": "Terra Sarkaz",
    "story.settings.font.tooBig": "That font file is larger than {mb} MB.",
    "story.settings.font.upload": "Choose font file",
    "story.settings.fontHint": "Replaces the reading style's typeface only; its size and spacing stay.",
    "story.settings.fontNote.cjk": "Covers Chinese, Japanese and Korean text as well as Latin.",
    "story.settings.fontNote.custom": "A font file from your machine, kept in this browser only.",
    "story.settings.fontNote.display": "A serif with real contrast. The easiest of these on a long read.",
    "story.settings.fontNote.dyslexic": "Weighted letter bottoms and distinct shapes, drawn to be harder to flip or confuse.",
    "story.settings.fontNote.heading": "The same family the site titles use.",
    "story.settings.fontNote.mono": "Fixed width: every character takes the same room. Good for terminal-flavoured scenes.",
    "story.settings.fontNote.preset": "The face the reader ships with. Even and quiet at any size.",
    "story.settings.fontNote.sans": "The face the rest of the site is set in. Even and quiet at any size.",
    "story.settings.fontNote.system": "Your device's own interface font. Nothing is downloaded.",
    "story.settings.fontNote.terraAegir": "One of Terra's own scripts, from the game. A display face: anything it does not carry falls back to the reading style.",
    "story.settings.fontNote.terraSami": "The other of Terra's own scripts. A display face: anything it does not carry falls back to the reading style.",
    "story.settings.fontNote.terraSarkaz": "The Sarkaz script. A display face: anything it does not carry falls back to the reading style.",
    "story.settings.hotkeys": "Space, Enter or → advance · ← back · [ and ] previous and next story · A auto · S skip · H or L log · Esc hide everything · T hide the toolbar only (remembered) · F fullscreen · M mute",
    "story.settings.hotkeys.heading": "Keyboard",
    "story.settings.letterbox": "Letterbox like the game",
    "story.settings.letterboxHint": "The game draws every scene into a 16:9 box and fills the rest of the screen with black. Off, the reader continues the background across it, blurred and dimmed.",
    "story.settings.lightBox": "Light text box",
    "story.settings.lightBoxHint": "Only the reading surface changes; the site theme stays as you set it.",
    "story.settings.lineHeight": "Line height",
    "story.settings.lineWidth": "Line width",
    "story.settings.lineWidthValue": "{value} ch",
    "story.settings.minLineSec": "Minimum line time",
    "story.settings.multiplier": "{value}x",
    "story.settings.musicVolume": "Music volume",
    "story.settings.nickname": "Doctor's name",
    "story.settings.nicknameHint": "Used wherever a story addresses you by name. Up to 24 characters; an empty field reads as Doctor.",
    "story.settings.percent": "{value}%",
    "story.settings.playVideos": "Play cutscene videos",
    "story.settings.progress.backup": "Backup",
    "story.settings.progress.heading": "Reading progress",
    "story.settings.progress.reset": "Reset",
    "story.settings.progress.restore": "Restore",
    "story.settings.progress.restoreFailed": "That file is not a progress backup.",
    "story.settings.progress.restored": "Progress restored: {stories} stories read, {positions} positions.",
    "story.settings.progress.wasReset": "Reading progress cleared.",
    "story.settings.progressBar": "Progress bar",
    "story.settings.reset.body": "Every read mark and saved position is removed. This cannot be undone.",
    "story.settings.reset.cancel": "Cancel",
    "story.settings.reset.confirm": "Reset",
    "story.settings.reset.title": "Reset reading progress?",
    "story.settings.seconds": "{value} s",
    "story.settings.sfxVolume": "Sound volume",
    "story.settings.sideMargin": "Side margin",
    "story.settings.speakerTint": "Speaker colour",
    "story.settings.speakerTint.name": "Name only",
    "story.settings.speakerTint.off": "Off (default)",
    "story.settings.speakerTint.text": "Text and name",
    "story.settings.speakerTintHint": "The colour is sampled from the speaker's sprite on stage, and a speaker with nobody on stage keeps a hue hashed from their name. Either way it is kept readable at 4.5:1 on the box, and narration keeps the text colour.",
    "story.settings.style": "Reading style",
    "story.settings.style.comfortable": "Comfortable",
    "story.settings.style.custom": "Custom",
    "story.settings.style.default": "Default",
    "story.settings.style.dyslexia": "Dyslexia friendly",
    "story.settings.style.large": "Large print",
    "story.settings.styleHint": "Sets the font, size, width and spacing below in one go. Changing any of them reads as Custom.",
    "story.settings.textColor": "Text colour",
    "story.settings.textColor.custom": "Custom colour",
    "story.settings.textColor.default": "Default",
    "story.settings.textColor.swatch": "Colour {number}",
    "story.settings.textColorHint": "Every swatch clears 4.5:1 on both the dark and the light box. The speaker's name keeps its own colour.",
    "story.settings.textSize": "Text size",
    "story.settings.title": "Reader settings",
    "story.settings.toolbarHidden": "Hide toolbar",
    "story.settings.toolbarHiddenHint": "The text box stays; only the controls and the progress bar go. A handle at the top edge brings them back, T does too, and the choice is remembered.",
    "story.settings.toolbarIdle": "Hide toolbar after",
    "story.settings.toolbarIdleHint": "How long the controls wait with no pointer movement.",
    "story.sprites.badge.npc": "NPC",
    "story.sprites.badge.operator": "Operator",
    "story.sprites.card.aliases": "{count, plural, one {+# name} other {+# names}}",
    "story.sprites.card.open": "Open {name}'s expressions",
    "story.sprites.card.stories": "{count, plural, one {# story} other {# stories}}",
    "story.sprites.empty": "No character matches that search.",
    "story.sprites.failed": "The character list could not be loaded.",
    "story.sprites.kind.all": "All",
    "story.sprites.kind.aria": "Show",
    "story.sprites.kind.npc": "NPCs",
    "story.sprites.kind.operator": "Operators",
    "story.sprites.loading": "Loading characters",
    "story.sprites.name.count": "{count, plural, one {# line} other {# lines}}",
    "story.sprites.name.examples": "Lines",
    "story.sprites.name.more": "+{count} more",
    "story.sprites.name.open": "Where {name} is spoken",
    "story.sprites.name.share": "{share} of {owner}'s lines",
    "story.sprites.name.stories": "Stories",
    "story.sprites.results": "{count, plural, one {# character} other {# characters}}",
    "story.sprites.search.aria": "Search characters",
    "story.sprites.search.placeholder": "Search a name, an operator or a sprite id",
    "story.sprites.sheet.body": "Body {body}",
    "story.sprites.sheet.close": "Close",
    "story.sprites.sheet.download": "Download sheet",
    "story.sprites.sheet.downloadFailed": "The sheet could not be drawn.",
    "story.sprites.sheet.downloading": "Composing…",
    "story.sprites.sheet.expressions": "{count, plural, one {# expression} other {# expressions}}",
    "story.sprites.sheet.firstSeen": "First seen {date}",
    "story.sprites.sheet.folder": "Sprite {base}",
    "story.sprites.sheet.gridAria": "Expressions. Arrow keys move between them.",
    "story.sprites.sheet.lineCount": "{count, plural, one {# line} other {# lines}}",
    "story.sprites.sheet.loading": "Loading expressions",
    "story.sprites.sheet.names": "Named in scripts",
    "story.sprites.sheet.noNames": "No named line is spoken while this sprite is lit.",
    "story.sprites.sheet.notFound": "There is no story sprite called {base}.",
    "story.sprites.sheet.onStage": "on stage",
    "story.sprites.sheet.operator": "Operator page",
    "story.sprites.sheet.scaled": "This character has too many expressions for a full-size image, so the sheet was saved smaller.",
    "story.sprites.sheet.stories": "Appears in",
    "story.sprites.sheet.uses": "{count, plural, =0 {unused} one {used once} other {used # times}}",
    "story.sprites.sheet.variant": "Set {variant}",
    "story.sprites.sheet.variantAria": "Expression {key}",
    "story.sprites.sheet.wholeBody": "whole body",
    "story.sprites.showMore": "Show {count} more ({remaining} left)",
    "story.sprites.sort.appearances": "Most stories",
    "story.sprites.sort.aria": "Sort by",
    "story.sprites.sort.firstSeen": "First seen",
    "story.sprites.sort.name": "Name",
    "story.sprites.stray.more": "+{count} more",
    "story.sprites.stray.toggle": "{lines, plural, one {# stray line} other {# stray lines}} under {names, plural, one {# other name} other {# other names}}",
    "story.sprites.subtitle": "{count} story sprites: {operators} operator sets and {npcs} other characters, named by who speaks while they are on stage.",
    "story.sprites.tab": "Characters",
    "story.sprites.unavailable": "The character gallery is not available yet.",
    "story.sprites.unavailableNote": "The server answering this page predates it; it appears after the next backend restart.",
    "story.stats.blurb": "Every figure here is a word count divided by your own reading speed. Nothing in the game's data says how fast you read, so change the two numbers below and the whole section follows.",
    "story.stats.bucket.events": "Events",
    "story.stats.bucket.main": "Main story",
    "story.stats.bucket.records": "Operator records",
    "story.stats.bucket.side": "Side stories",
    "story.stats.coverToCover": "Cover to cover",
    "story.stats.heading": "Reading statistics",
    "story.stats.longest": "Longest chapters and events",
    "story.stats.longest.note": "The {count} longest of the library, by word count, with how long each takes at your speed. Operator records are left out: a 400-word record beside a 90,000-word chapter is not the same kind of thing.",
    "story.stats.minutesPerDay": "Reading time",
    "story.stats.minutesPerDay.unit": "minutes a day",
    "story.stats.pace.days": "About {value} days left to go at {perDay} minutes a day.",
    "story.stats.pace.done": "Nothing left to read. The whole library is behind you.",
    "story.stats.pace.months": "About {value} months left to go at {perDay} minutes a day.",
    "story.stats.pending": "The library index carries no word counts yet, so there is nothing to time. Reading statistics appear once it does.",
    "story.stats.table.category": "Category",
    "story.stats.table.fraction": "{read} of {total}",
    "story.stats.table.stories": "Stories",
    "story.stats.table.time": "Time",
    "story.stats.table.words": "Words",
    "story.stats.timeLeft": "Time left",
    "story.stats.timeSpent": "Time spent",
    "story.stats.total": "Whole library",
    "story.stats.wordsRead": "Words read",
    "story.stats.wordsReadValue": "{read} of {total}",
    "story.stats.wpm": "Reading speed",
    "story.stats.wpm.unit": "words a minute",
    "story.stories.card.collapse": "Hide the stories in {name}",
    "story.stories.card.expand": "Show the stories in {name}",
    "story.stories.card.noneExtracted": "{count} not extracted",
    "story.stories.card.read": "{read}/{total}",
    "story.stories.card.words": "{count} words",
    "story.stories.empty": "No chapter matches.",
    "story.stories.finishedCount": "{done} of {total} chapters finished",
    "story.stories.hideFinished": "Hide finished",
    "story.stories.panel.close": "Close",
    "story.stories.panel.notExtracted": "Not extracted",
    "story.stories.panel.progressAt": "In progress at line {line}",
    "story.stories.search.aria": "Search chapters and stories",
    "story.stories.search.placeholder": "Search chapters and stories",
    "story.stories.sort.alpha": "A to Z",
    "story.stories.sort.aria": "Sort chapters",
    "story.stories.sort.release": "Release date",
    "story.stories.tab.intermezzi": "Intermezzi",
    "story.stories.tab.is": "Integrated Strategies",
    "story.stories.tab.main": "Main Theme",
    "story.stories.tab.reclamation": "Reclamation Algorithm",
    "story.stories.tab.side": "Side Stories",
    "story.stories.tab.sideContent": "Other",
    "story.stories.tab.vignette": "Vignettes",
    "tierLists.browse.card.emptyDraft": "Empty draft",
    "tierLists.browse.card.favorites": "{count} favorites",
    "tierLists.browse.card.hot": "Hot",
    "tierLists.browse.card.official": "Official",
    "tierLists.browse.card.tier": "Tier {name}",
    "tierLists.browse.card.views": "{count} views",
    "tierLists.browse.card.views24h": "{count} views in the last 24h",
    "tierLists.browse.error": "Failed to load tier lists.",
    "tierLists.browse.favorites.emptyAction": "Browse tier lists",
    "tierLists.browse.favorites.emptyBody": "Tap the heart on any tier list to save it here for quick access.",
    "tierLists.browse.favorites.emptyTitle": "No favorites yet",
    "tierLists.browse.filtered.clear": "Clear filters",
    "tierLists.browse.filtered.emptyBody": "Try clearing flairs or switching the type filter.",
    "tierLists.browse.filtered.emptyTitle": "No lists match these filters.",
    "tierLists.browse.flair.chip": "Flair {label}, {count, plural, one {# list} other {# lists}}",
    "tierLists.browse.flair.chipEmpty": "Flair {label}, no lists",
    "tierLists.browse.flair.clear": "Clear",
    "tierLists.browse.flairs": "Flairs",
    "tierLists.browse.hero.blurb": "{count, plural, one {list} other {lists}} from the team and the community. Sort, filter, or browse what's hot right now.",
    "tierLists.browse.hero.blurbEmpty": "Curated picks from the team alongside community-built rankings. Sort, filter, or browse what's hot right now.",
    "tierLists.browse.hero.create": "Create list",
    "tierLists.browse.hero.kicker": "Tier Lists",
    "tierLists.browse.hero.signIn": "Sign in to publish",
    "tierLists.browse.hero.title": "Find the meta. Build your own.",
    "tierLists.browse.loadMore": "Load {count} more",
    "tierLists.browse.official.title": "Official",
    "tierLists.browse.official.viewAll": "View all",
    "tierLists.browse.results.count": "{shown} of {total}",
    "tierLists.browse.results.matching": "· matching {query}",
    "tierLists.browse.retry": "Retry",
    "tierLists.browse.retrying": "Retrying…",
    "tierLists.browse.search.clear": "Clear search",
    "tierLists.browse.search.label": "Search tier lists",
    "tierLists.browse.search.placeholder": "Search lists...",
    "tierLists.browse.sort.favorites": "Most favorited",
    "tierLists.browse.sort.favorites.hint": "All-time favorites",
    "tierLists.browse.sort.newest": "Newest",
    "tierLists.browse.sort.newest.hint": "Most recently created",
    "tierLists.browse.sort.recent": "Recently updated",
    "tierLists.browse.sort.recent.hint": "Latest edits first",
    "tierLists.browse.sort.shares": "Most shared",
    "tierLists.browse.sort.shares.hint": "All-time shares",
    "tierLists.browse.sort.trending": "Trending",
    "tierLists.browse.sort.trending.hint": "Hot in the last 24h",
    "tierLists.browse.sort.views": "Most viewed",
    "tierLists.browse.sort.views.hint": "All-time view count",
    "tierLists.browse.sortTrigger": "Sort: {label}",
    "tierLists.browse.type.all": "All",
    "tierLists.browse.type.community": "Community",
    "tierLists.browse.type.favorites": "Favorites",
    "tierLists.browse.type.label": "Tier list type",
    "tierLists.browse.type.official": "Official",
    "tierLists.description.showLess": "Show less",
    "tierLists.description.showMore": "Show more",
    "tierLists.detail.actions.download": "Download",
    "tierLists.detail.actions.download.errBody": "Something went wrong while preparing the image. Try again in a moment.",
    "tierLists.detail.actions.download.errTitle": "Couldn't download image",
    "tierLists.detail.actions.download.label": "Download tier list as image",
    "tierLists.detail.actions.downloading": "Preparing…",
    "tierLists.detail.actions.favorite": "Favorite",
    "tierLists.detail.actions.favorite.add": "Add to favorites",
    "tierLists.detail.actions.favorite.authBody": "Connect your account to save lists for later.",
    "tierLists.detail.actions.favorite.authTitle": "Sign in to favorite",
    "tierLists.detail.actions.favorite.errBody": "Something went wrong. Try again in a moment.",
    "tierLists.detail.actions.favorite.errTitle": "Couldn't update favorite",
    "tierLists.detail.actions.favorite.remove": "Remove from favorites",
    "tierLists.detail.actions.favorited": "Favorited",
    "tierLists.detail.actions.share": "Share",
    "tierLists.detail.actions.share.errBody": "Clipboard access was denied.",
    "tierLists.detail.actions.share.errTitle": "Couldn't copy link",
    "tierLists.detail.actions.share.label": "Share this tier list",
    "tierLists.detail.actions.share.okBody": "Share it anywhere.",
    "tierLists.detail.actions.share.okTitle": "Link copied",
    "tierLists.detail.actions.share.text": "{title} - tier list on myrtle.moe",
    "tierLists.detail.board.emptyBody": "The author hasn't published any tiers for this list.",
    "tierLists.detail.board.emptyTitle": "This list has no tiers yet.",
    "tierLists.detail.board.label": "Tier list {title}",
    "tierLists.detail.board.operatorCount": "{count, plural, one {entry} other {entries}} placed",
    "tierLists.detail.board.tierCount": "{count, plural, one {tier} other {tiers}}",
    "tierLists.detail.hero.authorFallback": "Player",
    "tierLists.detail.hero.authorUnknown": "Unknown author",
    "tierLists.detail.hero.breadcrumb": "Tier Lists",
    "tierLists.detail.hero.community": "Community",
    "tierLists.detail.hero.favorites": "favorites",
    "tierLists.detail.hero.favorites.title": "{count} favorites",
    "tierLists.detail.hero.kicker": "Tier List",
    "tierLists.detail.hero.official": "Official",
    "tierLists.detail.hero.trending": "Trending",
    "tierLists.detail.hero.updated": "Updated {when}",
    "tierLists.detail.hero.views": "views",
    "tierLists.detail.hero.views.title": "{count} views",
    "tierLists.detail.notFound.action": "Browse all lists",
    "tierLists.detail.notFound.body": "It may have been removed or the link could be wrong.",
    "tierLists.detail.notFound.title": "Tier list not found",
    "tierLists.detail.operatorTile.label": "{name} ({rarity}★)",
    "tierLists.detail.preview.hint": "Click to view operator",
    "tierLists.detail.preview.nation": "Nation",
    "tierLists.detail.preview.position": "Position",
    "tierLists.detail.preview.position.melee": "Melee",
    "tierLists.detail.preview.position.ranged": "Ranged",
    "tierLists.detail.preview.rarityLabel": "{rarity}-star",
    "tierLists.detail.stats.created": "Created",
    "tierLists.detail.stats.empty": "No stats yet.",
    "tierLists.detail.stats.favorites": "Favorites",
    "tierLists.detail.stats.favorites.title": "{count} favorites",
    "tierLists.detail.stats.panelLabel": "Tier list stats",
    "tierLists.detail.stats.shares": "Shares",
    "tierLists.detail.stats.shares.title": "{count} shares",
    "tierLists.detail.stats.title": "Stats",
    "tierLists.detail.stats.trending": "Trending now",
    "tierLists.detail.stats.uniqueViews": "Unique viewers",
    "tierLists.detail.stats.uniqueViews.title": "{count} unique viewers",
    "tierLists.detail.stats.updated": "Updated",
    "tierLists.detail.stats.views": "All-time views",
    "tierLists.detail.stats.views.title": "{count} total views",
    "tierLists.detail.stats.views24h": "Views · 24h",
    "tierLists.detail.stats.views24h.title": "{count} views in the last 24h",
    "tierLists.detail.tier.classCount": "{count, plural, one {# {profession}} other {# {profession}s}}",
    "tierLists.detail.tier.empty": "Nothing in this tier yet.",
    "tierLists.detail.tier.kicker": "Tier",
    "tierLists.detail.tier.label": "Tier {name} - view details",
    "tierLists.detail.tier.labelWithDescription": "Tier {name} - {description} - view details",
    "tierLists.detail.tier.noDescription": "No description provided for this tier.",
    "tierLists.detail.tier.openDetails": "Open tier {name} details",
    "tierLists.detail.tier.viewDetails": "View tier details",
    "tierLists.detail.tierDialog.classHeading": "Classes",
    "tierLists.detail.tierDialog.classLabel": "Class breakdown",
    "tierLists.detail.tierDialog.kicker": "Tier",
    "tierLists.detail.tierDialog.noDescription": "The author hasn't written a description for this tier.",
    "tierLists.detail.tierDialog.opCount": "{count, plural, one {op} other {ops}}",
    "tierLists.detail.tierDialog.operatorsEmpty": "Nothing has been placed in this tier yet.",
    "tierLists.detail.tierDialog.operatorsHeading": "Entries",
    "tierLists.detail.tierDialog.operatorsLabel": "Entries in this tier",
    "tierLists.detail.tierDialog.overviewLabel": "Tier overview",
    "tierLists.detail.tierDialog.rarityHeading": "Rarity",
    "tierLists.detail.tierDialog.rarityLabel": "Rarity breakdown",
    "tierLists.detail.tierDialog.stat.avgRarity": "Avg ★",
    "tierLists.detail.tierDialog.stat.meleeRanged": "Melee / Ranged",
    "tierLists.detail.tierDialog.stat.operators": "Entries",
    "tierLists.detail.tierDialog.updated": "Updated {when}",
    "tierLists.detail.versions.backToLatest": "Back to latest",
    "tierLists.detail.versions.heading": "Version",
    "tierLists.detail.versions.latest": "Latest (live)",
    "tierLists.detail.versions.latestDescription": "Always reflects the most recent edits",
    "tierLists.detail.versions.latestHint": "live state",
    "tierLists.detail.versions.publishedCount": "published",
    "tierLists.detail.versions.sectionLabel": "Tier list versions",
    "tierLists.detail.versions.snapshot": "Snapshot",
    "tierLists.detail.versions.snapshotLine": "v{version} · published",
    "tierLists.detail.versions.trigger": "Select version, currently {version}",
    "tierLists.edit.board.addTier": "Add tier",
    "tierLists.edit.board.emptyBody": "Create your first tier to start ranking.",
    "tierLists.edit.board.emptyTitle": "No tiers yet.",
    "tierLists.edit.board.label": "Edit board for {title}",
    "tierLists.edit.change.described": "{count, plural, one {# description} other {# descriptions}} edited",
    "tierLists.edit.change.kinds": "Pool kinds",
    "tierLists.edit.change.listDetails": "List details",
    "tierLists.edit.change.moved": "{count, plural, one {# entry} other {# entries}} moved",
    "tierLists.edit.change.placed": "{count, plural, one {# entry} other {# entries}} placed",
    "tierLists.edit.change.reordered": "{count, plural, one {# entry} other {# entries}} reordered",
    "tierLists.edit.change.tierCreated": "New tier \"{name}\"",
    "tierLists.edit.change.tierDeleted": "Deleted \"{name}\"",
    "tierLists.edit.change.tierUpdated": "Updated \"{name}\"",
    "tierLists.edit.change.tiersReordered": "Reordered tiers",
    "tierLists.edit.change.unplaced": "{count, plural, one {# entry} other {# entries}} unplaced",
    "tierLists.edit.color.custom": "Custom",
    "tierLists.edit.color.nativePicker": "Open native color picker",
    "tierLists.edit.color.presets": "Presets",
    "tierLists.edit.color.useColor": "Use color {hex}",
    "tierLists.edit.forbidden.action": "View public page",
    "tierLists.edit.forbidden.body": "You don't have permission to edit this tier list.",
    "tierLists.edit.forbidden.title": "You can't edit this list",
    "tierLists.edit.hero.addTier": "Add tier",
    "tierLists.edit.hero.allSaved": "All saved",
    "tierLists.edit.hero.breadcrumbEdit": "Edit",
    "tierLists.edit.hero.breadcrumbMine": "My Lists",
    "tierLists.edit.hero.breadcrumbUntitled": "Untitled",
    "tierLists.edit.hero.descriptionCounter": "/ {max} description",
    "tierLists.edit.hero.descriptionLabel": "Description",
    "tierLists.edit.hero.descriptionPlaceholder": "Add a short description so viewers know what this list is about.",
    "tierLists.edit.hero.discard": "Discard unsaved changes",
    "tierLists.edit.hero.kicker": "Editing",
    "tierLists.edit.hero.moreChanges": "+{count} more",
    "tierLists.edit.hero.openPublic": "Open public view in new tab",
    "tierLists.edit.hero.save": "Save changes",
    "tierLists.edit.hero.titleCounter": "/ {max} title",
    "tierLists.edit.hero.titleLabel": "List title",
    "tierLists.edit.hero.titlePlaceholder": "Untitled tier list",
    "tierLists.edit.hero.unsaved": "Unsaved changes",
    "tierLists.edit.hero.upToDate": "Your list is up to date with the server.",
    "tierLists.edit.kinds.apply": "Apply",
    "tierLists.edit.kinds.atLeastOne": "A list offers at least one kind.",
    "tierLists.edit.kinds.cancel": "Cancel",
    "tierLists.edit.kinds.desc.archive_pic": "Archives gallery art from events and Integrated Strategies",
    "tierLists.edit.kinds.desc.background": "Home screen backgrounds, standard and dynamic",
    "tierLists.edit.kinds.desc.class": "The eight classes, Vanguard to Specialist",
    "tierLists.edit.kinds.desc.enemy": "Every enemy in the handbook",
    "tierLists.edit.kinds.desc.event": "Side stories, vignettes and other events",
    "tierLists.edit.kinds.desc.faction": "Nations, groups and teams",
    "tierLists.edit.kinds.desc.integrated_strategies": "Themes, collectibles, squads and more",
    "tierLists.edit.kinds.desc.main_story": "Every episode of the main story",
    "tierLists.edit.kinds.desc.module": "Every operator module",
    "tierLists.edit.kinds.desc.operator": "Playable characters",
    "tierLists.edit.kinds.desc.skill": "Each operator's skills, slot by slot",
    "tierLists.edit.kinds.desc.skin": "Outfits from the store and event rewards",
    "tierLists.edit.kinds.desc.story_cg": "Illustrations shown during story scenes",
    "tierLists.edit.kinds.desc.story_scene": "The locations story scenes are set against",
    "tierLists.edit.kinds.desc.story_sprite": "Operators and NPCs as the story draws them",
    "tierLists.edit.kinds.desc.stronghold_bond": "Faction and trait bonds from Stronghold Protocol",
    "tierLists.edit.kinds.desc.subclass": "Archetypes within a class",
    "tierLists.edit.kinds.description": "Pick what the pool offers. A list can mix kinds. Changes save with your other edits.",
    "tierLists.edit.kinds.groupLabel": "Kinds this list offers",
    "tierLists.edit.kinds.placed": "{count} placed",
    "tierLists.edit.kinds.title": "What this list ranks",
    "tierLists.edit.missing.action": "Back to my lists",
    "tierLists.edit.missing.body": "It may have been removed, or the link could be wrong.",
    "tierLists.edit.missing.title": "Tier list not found",
    "tierLists.edit.pick.current": "Current",
    "tierLists.edit.pick.description": "Choose a tier, then add an optional note. You can also drag tiles straight onto a tier.",
    "tierLists.edit.pick.descriptionNoTiers": "This list has no tiers yet, so there is nowhere to place this.",
    "tierLists.edit.pick.done": "Done",
    "tierLists.edit.pick.noTiers": "No tiers yet. Close this dialog and add a tier to the board first.",
    "tierLists.edit.pick.noteHintNoTiers": "A note is saved with a placement, so add a tier first.",
    "tierLists.edit.pick.noteHintPlaced": "Optional. Shown to viewers on this tile.",
    "tierLists.edit.pick.noteHintUnplaced": "Pick a tier above to save this note with the placement.",
    "tierLists.edit.pick.noteLabel": "Description",
    "tierLists.edit.pick.notePlaceholder": "Why does this land here?",
    "tierLists.edit.pick.owner": "Operator: {name}",
    "tierLists.edit.pick.placement": "Placement",
    "tierLists.edit.pick.unplace": "Unplace",
    "tierLists.edit.pool.act": "Act",
    "tierLists.edit.pool.act.group": "Filter by act",
    "tierLists.edit.pool.archive": "Archive",
    "tierLists.edit.pool.archive.group": "Filter by archive",
    "tierLists.edit.pool.archive.placeholder": "Any archive",
    "tierLists.edit.pool.brand": "Brand",
    "tierLists.edit.pool.brand.group": "Filter by brand",
    "tierLists.edit.pool.category": "Category",
    "tierLists.edit.pool.category.group": "Filter by story category",
    "tierLists.edit.pool.class": "Class",
    "tierLists.edit.pool.class.group": "Filter by class",
    "tierLists.edit.pool.clear": "Clear",
    "tierLists.edit.pool.clearFilters": "Clear filters",
    "tierLists.edit.pool.clearFilters.label": "Clear pool filters",
    "tierLists.edit.pool.dialogSub": "{matched} of {total} available. Tap a tile to place it on a tier.",
    "tierLists.edit.pool.dialogTitle": "Operator pool",
    "tierLists.edit.pool.done": "Done",
    "tierLists.edit.pool.dropArea": "Drag operators here to unplace them",
    "tierLists.edit.pool.dropArea.any": "Drag a tile here to unplace it",
    "tierLists.edit.pool.dropToUnplace": "Drop to unplace",
    "tierLists.edit.pool.edition": "Edition",
    "tierLists.edit.pool.edition.group": "Filter by edition",
    "tierLists.edit.pool.edition.original": "Original",
    "tierLists.edit.pool.emptyBody": "Try a different name or relax the filters.",
    "tierLists.edit.pool.emptyTitle": "No matches",
    "tierLists.edit.pool.expand": "Expand",
    "tierLists.edit.pool.expandHint": "Open a larger pool view with all filters",
    "tierLists.edit.pool.faction": "Faction",
    "tierLists.edit.pool.faction.group": "Filter by faction",
    "tierLists.edit.pool.faction.placeholder": "Any faction",
    "tierLists.edit.pool.grid.archive_pic": "Available archive pictures",
    "tierLists.edit.pool.grid.background": "Available backgrounds",
    "tierLists.edit.pool.grid.class": "Available classes",
    "tierLists.edit.pool.grid.enemy": "Available enemies",
    "tierLists.edit.pool.grid.event": "Available events",
    "tierLists.edit.pool.grid.faction": "Available factions",
    "tierLists.edit.pool.grid.integrated_strategies": "Available Integrated Strategies entries",
    "tierLists.edit.pool.grid.main_story": "Available main story episodes",
    "tierLists.edit.pool.grid.module": "Available modules",
    "tierLists.edit.pool.grid.skill": "Available skills",
    "tierLists.edit.pool.grid.skin": "Available skins",
    "tierLists.edit.pool.grid.story_cg": "Available story CGs",
    "tierLists.edit.pool.grid.story_scene": "Available story scenes",
    "tierLists.edit.pool.grid.story_sprite": "Available story characters",
    "tierLists.edit.pool.grid.stronghold_bond": "Available Stronghold bonds",
    "tierLists.edit.pool.grid.subclass": "Available subclasses",
    "tierLists.edit.pool.gridLabel": "Available operators",
    "tierLists.edit.pool.hideUsed": "Hide already placed",
    "tierLists.edit.pool.hintDragging": "Drop on a tier to place, or release here to unplace.",
    "tierLists.edit.pool.hintIdle": "Drag a tile onto a tier, or tap to pick one.",
    "tierLists.edit.pool.kicker": "Operator pool",
    "tierLists.edit.pool.kicker.archive_pic": "Archive picture pool",
    "tierLists.edit.pool.kicker.background": "Background pool",
    "tierLists.edit.pool.kicker.class": "Class pool",
    "tierLists.edit.pool.kicker.enemy": "Enemy pool",
    "tierLists.edit.pool.kicker.event": "Event pool",
    "tierLists.edit.pool.kicker.faction": "Faction pool",
    "tierLists.edit.pool.kicker.integrated_strategies": "Integrated Strategies pool",
    "tierLists.edit.pool.kicker.main_story": "Main story pool",
    "tierLists.edit.pool.kicker.module": "Module pool",
    "tierLists.edit.pool.kicker.skill": "Skill pool",
    "tierLists.edit.pool.kicker.skin": "Skin pool",
    "tierLists.edit.pool.kicker.story_cg": "Story CG pool",
    "tierLists.edit.pool.kicker.story_scene": "Story scene pool",
    "tierLists.edit.pool.kicker.story_sprite": "Story character pool",
    "tierLists.edit.pool.kicker.stronghold_bond": "Stronghold bond pool",
    "tierLists.edit.pool.kicker.subclass": "Subclass pool",
    "tierLists.edit.pool.kinds": "Kinds",
    "tierLists.edit.pool.kindsHint": "Choose what this list ranks",
    "tierLists.edit.pool.level": "Level",
    "tierLists.edit.pool.level.group": "Filter by level",
    "tierLists.edit.pool.loadFailed": "This list did not load.",
    "tierLists.edit.pool.loading": "Loading…",
    "tierLists.edit.pool.menu.noMatches": "No matches",
    "tierLists.edit.pool.more": "Showing {shown} of {total}. Scroll for more.",
    "tierLists.edit.pool.nation": "Nation",
    "tierLists.edit.pool.nation.group": "Filter by nation",
    "tierLists.edit.pool.nation.placeholder": "Any nation",
    "tierLists.edit.pool.nothingPlaced": "Nothing placed yet",
    "tierLists.edit.pool.obtain": "Obtained from",
    "tierLists.edit.pool.obtain.group": "Filter by how it is obtained",
    "tierLists.edit.pool.obtain.placeholder": "Any source",
    "tierLists.edit.pool.placed": "Placed",
    "tierLists.edit.pool.placedSoFar": "{count} placed so far",
    "tierLists.edit.pool.race": "Race",
    "tierLists.edit.pool.race.group": "Filter by race",
    "tierLists.edit.pool.race.placeholder": "Any race",
    "tierLists.edit.pool.rank": "Rank",
    "tierLists.edit.pool.rank.group": "Filter by rank",
    "tierLists.edit.pool.rarity": "Rarity",
    "tierLists.edit.pool.rarity.group": "Filter by rarity",
    "tierLists.edit.pool.rarity.option": "{rarity} star",
    "tierLists.edit.pool.retry": "Try again",
    "tierLists.edit.pool.search.archive_pic": "Search archive pictures",
    "tierLists.edit.pool.search.background": "Search backgrounds",
    "tierLists.edit.pool.search.class": "Search classes",
    "tierLists.edit.pool.search.enemy": "Search enemies",
    "tierLists.edit.pool.search.event": "Search events",
    "tierLists.edit.pool.search.faction": "Search factions",
    "tierLists.edit.pool.search.integrated_strategies": "Search Integrated Strategies",
    "tierLists.edit.pool.search.label": "Search operators",
    "tierLists.edit.pool.search.main_story": "Search main story episodes",
    "tierLists.edit.pool.search.module": "Search modules",
    "tierLists.edit.pool.search.placeholder": "Search by name…",
    "tierLists.edit.pool.search.skill": "Search skills",
    "tierLists.edit.pool.search.skin": "Search skins",
    "tierLists.edit.pool.search.story_cg": "Search story CGs",
    "tierLists.edit.pool.search.story_scene": "Search story scenes",
    "tierLists.edit.pool.search.story_sprite": "Search story characters",
    "tierLists.edit.pool.search.stronghold_bond": "Search Stronghold bonds",
    "tierLists.edit.pool.search.subclass": "Search subclasses",
    "tierLists.edit.pool.slot": "Slot",
    "tierLists.edit.pool.slot.group": "Filter by skill slot",
    "tierLists.edit.pool.source": "Source",
    "tierLists.edit.pool.source.group": "Filter by source",
    "tierLists.edit.pool.sp": "SP",
    "tierLists.edit.pool.sp.auto": "Auto",
    "tierLists.edit.pool.sp.defensive": "Defensive",
    "tierLists.edit.pool.sp.group": "Filter by SP recovery",
    "tierLists.edit.pool.sp.offensive": "Offensive",
    "tierLists.edit.pool.sp.passive": "Passive",
    "tierLists.edit.pool.story": "Story",
    "tierLists.edit.pool.story.group": "Filter by story",
    "tierLists.edit.pool.story.placeholder": "Any story",
    "tierLists.edit.pool.tabs": "What this pool lists",
    "tierLists.edit.pool.theme": "Theme",
    "tierLists.edit.pool.theme.group": "Filter by theme",
    "tierLists.edit.pool.type": "Type",
    "tierLists.edit.pool.type.group": "Filter by type",
    "tierLists.edit.publishBlocked": "Save your changes before publishing a version.",
    "tierLists.edit.publishDialog.cancel": "Cancel",
    "tierLists.edit.publishDialog.changelog": "Changelog",
    "tierLists.edit.publishDialog.changelogHint": "Optional but recommended. Viewers see this on the version history.",
    "tierLists.edit.publishDialog.changelogPlaceholder": "What changed in this version? e.g. Promoted Texas to S, added Wis'adel.",
    "tierLists.edit.publishDialog.description": "Snapshots the current tiers and placements as version v{version}. Older versions stay accessible to viewers.",
    "tierLists.edit.publishDialog.latest": "Latest published:",
    "tierLists.edit.publishDialog.next": "Next:",
    "tierLists.edit.publishDialog.submit": "Publish v{version}",
    "tierLists.edit.publishDialog.title": "Publish a version",
    "tierLists.edit.publishing.flair": "Flair",
    "tierLists.edit.publishing.flairHint": "Tags your list with a topic shown on the browse page.",
    "tierLists.edit.publishing.heading": "Publishing",
    "tierLists.edit.publishing.hidden": "Hidden from browse",
    "tierLists.edit.publishing.hiddenHint": "Only people with the direct link can open it.",
    "tierLists.edit.publishing.listed": "Listed publicly",
    "tierLists.edit.publishing.listedHint": "Anyone can find this list from /tier-lists.",
    "tierLists.edit.publishing.noFlair": "No flair",
    "tierLists.edit.publishing.publish": "Publish version",
    "tierLists.edit.publishing.visibility": "Visibility",
    "tierLists.edit.row.actions": "Tier {name} actions",
    "tierLists.edit.row.dropArea": "Entries in tier {name}",
    "tierLists.edit.row.editTier": "Edit tier \"{name}\"",
    "tierLists.edit.row.moveDown": "Move tier down",
    "tierLists.edit.row.moveUp": "Move tier up",
    "tierLists.edit.row.removeOperator": "Remove {name} from tier {tier}",
    "tierLists.edit.row.removeOperatorTitle": "Remove from tier",
    "tierLists.edit.row.settings": "Tier settings",
    "tierLists.edit.save.creatingTier": "Creating tier \"{name}\"",
    "tierLists.edit.save.deletingTier": "Deleting tier \"{name}\"",
    "tierLists.edit.save.listDetails": "Saving list details",
    "tierLists.edit.save.movingOperator": "Moving entry",
    "tierLists.edit.save.placingOperator": "Placing entry",
    "tierLists.edit.save.removingOperator": "Removing entry",
    "tierLists.edit.save.reordering": "Reordering \"{name}\"",
    "tierLists.edit.save.settling": "Settling \"{name}\"",
    "tierLists.edit.save.updatingDescription": "Updating description",
    "tierLists.edit.save.updatingTier": "Updating \"{name}\"",
    "tierLists.edit.tierSettings.cancel": "Cancel",
    "tierLists.edit.tierSettings.clear": "Clear tier",
    "tierLists.edit.tierSettings.clearConfirmPrompt": "Remove all?",
    "tierLists.edit.tierSettings.color": "Color",
    "tierLists.edit.tierSettings.confirm": "Confirm",
    "tierLists.edit.tierSettings.delete": "Delete tier",
    "tierLists.edit.tierSettings.deleteConfirmPrompt": "Delete this tier?",
    "tierLists.edit.tierSettings.description": "Customize the label, color, and description for this tier. Changes take effect when you save the list.",
    "tierLists.edit.tierSettings.descriptionHint": "Optional. Shown to viewers in the tier hover/detail.",
    "tierLists.edit.tierSettings.descriptionLabel": "Description",
    "tierLists.edit.tierSettings.descriptionPlaceholder": "What earns a place in this tier?",
    "tierLists.edit.tierSettings.label": "Label",
    "tierLists.edit.tierSettings.labelHint": "Short labels like \"S\" or \"A\" read clearest; up to {max} characters.",
    "tierLists.edit.tierSettings.labelPlaceholder": "S, A, Pick-One, etc.",
    "tierLists.edit.tierSettings.lastTier": "Lists must have at least one tier.",
    "tierLists.edit.tierSettings.operatorCount": "{count, plural, one {entry} other {entries}} in this tier",
    "tierLists.edit.tierSettings.save": "Save tier",
    "tierLists.edit.tierSettings.title": "Tier settings",
    "tierLists.edit.tile.entityLabel": "{name}, {kind}{placed, select, true { - already placed} other {}}{noted, select, true { - has a description} other {}}",
    "tierLists.edit.tile.entityLabelOwned": "{name} ({owner}), {kind}{placed, select, true { - already placed} other {}}{noted, select, true { - has a description} other {}}",
    "tierLists.edit.tile.entityTitle": "{name}{noted, select, true { · has a description} other {}}",
    "tierLists.edit.tile.entityTitleOwned": "{name} ({owner}){noted, select, true { · has a description} other {}}",
    "tierLists.edit.tile.label": "{name} ({rarity}★){placed, select, true { - already placed} other {}}{noted, select, true { - has a description} other {}}",
    "tierLists.edit.tile.title": "{name} ({rarity}★){noted, select, true { · has a description} other {}}",
    "tierLists.edit.toast.flairClearedBody": "No flair on this list.",
    "tierLists.edit.toast.flairClearedTitle": "Flair cleared",
    "tierLists.edit.toast.flairFailedTitle": "Flair failed",
    "tierLists.edit.toast.flairSetBody": "Tagged as \"{label}\".",
    "tierLists.edit.toast.flairSetTitle": "Flair updated",
    "tierLists.edit.toast.hiddenBody": "Only people with the direct link can find it.",
    "tierLists.edit.toast.hiddenTitle": "Hidden from browse",
    "tierLists.edit.toast.publicBody": "This list appears on /tier-lists.",
    "tierLists.edit.toast.publicTitle": "Now public",
    "tierLists.edit.toast.publishedNoChangelog": "Snapshot saved.",
    "tierLists.edit.toast.publishedTitle": "Published v{version}",
    "tierLists.edit.toast.publishedWithChangelog": "Your changelog is now live.",
    "tierLists.edit.toast.saveFailedTitle": "Save failed",
    "tierLists.edit.toast.savedBody": "Your changes are live.",
    "tierLists.edit.toast.savedTitle": "Saved",
    "tierLists.edit.toast.visibilityFailedTitle": "Visibility failed",
    "tierLists.entity.archiveType.ending": "Ending",
    "tierLists.entity.archiveType.illustration": "Illustration",
    "tierLists.entity.bgType.base": "Standard",
    "tierLists.entity.bgType.dynamic": "Dynamic",
    "tierLists.entity.bondType.regular": "Trait bond",
    "tierLists.entity.bondType.season": "Faction bond",
    "tierLists.entity.enemyLevel.boss": "Leader",
    "tierLists.entity.enemyLevel.elite": "Elite",
    "tierLists.entity.enemyLevel.normal": "Normal",
    "tierLists.entity.event.rerun": "Rerun",
    "tierLists.entity.eventType.BRANCHLINE": "Intermezzo",
    "tierLists.entity.eventType.MINISTORY": "Vignette",
    "tierLists.entity.eventType.NONE": "Other",
    "tierLists.entity.eventType.SIDESTORY": "Side Story",
    "tierLists.entity.factionLevel.group": "Group",
    "tierLists.entity.factionLevel.nation": "Nation",
    "tierLists.entity.factionLevel.team": "Team",
    "tierLists.entity.isItem.active_tool": "Tool",
    "tierLists.entity.isItem.band": "Squad",
    "tierLists.entity.isItem.capsule": "Play",
    "tierLists.entity.isItem.copper": "Tongbao",
    "tierLists.entity.isItem.explore_tool": "Exploration tool",
    "tierLists.entity.isItem.fragment": "Thought",
    "tierLists.entity.isItem.relic": "Collectible",
    "tierLists.entity.isItem.theme": "Theme",
    "tierLists.entity.isItem.totem": "Foldartal",
    "tierLists.entity.isItem.wrath": "Wrath",
    "tierLists.entity.isTheme": "IS{number}",
    "tierLists.entity.kind.archive_pic": "Archive picture",
    "tierLists.entity.kind.background": "Background",
    "tierLists.entity.kind.class": "Class",
    "tierLists.entity.kind.enemy": "Enemy",
    "tierLists.entity.kind.event": "Event",
    "tierLists.entity.kind.faction": "Faction",
    "tierLists.entity.kind.integrated_strategies": "Integrated Strategies",
    "tierLists.entity.kind.main_story": "Main story episode",
    "tierLists.entity.kind.module": "Module",
    "tierLists.entity.kind.operator": "Operator",
    "tierLists.entity.kind.skill": "Skill",
    "tierLists.entity.kind.skin": "Skin",
    "tierLists.entity.kind.story_cg": "Story CG",
    "tierLists.entity.kind.story_scene": "Story scene",
    "tierLists.entity.kind.story_sprite": "Story character",
    "tierLists.entity.kind.stronghold_bond": "Stronghold bond",
    "tierLists.entity.kind.subclass": "Subclass",
    "tierLists.entity.kinds.archive_pic": "Archive pictures",
    "tierLists.entity.kinds.background": "Backgrounds",
    "tierLists.entity.kinds.class": "Classes",
    "tierLists.entity.kinds.enemy": "Enemies",
    "tierLists.entity.kinds.event": "Events",
    "tierLists.entity.kinds.faction": "Factions",
    "tierLists.entity.kinds.integrated_strategies": "Integrated Strategies",
    "tierLists.entity.kinds.main_story": "Main story",
    "tierLists.entity.kinds.module": "Modules",
    "tierLists.entity.kinds.operator": "Operators",
    "tierLists.entity.kinds.skill": "Skills",
    "tierLists.entity.kinds.skin": "Skins",
    "tierLists.entity.kinds.story_cg": "Story CGs",
    "tierLists.entity.kinds.story_scene": "Story scenes",
    "tierLists.entity.kinds.story_sprite": "Story characters",
    "tierLists.entity.kinds.stronghold_bond": "Stronghold bonds",
    "tierLists.entity.kinds.subclass": "Subclasses",
    "tierLists.entity.mainStory.episode": "Episode {number}",
    "tierLists.entity.preview.open": "Open page",
    "tierLists.entity.skill.slot": "Skill {slot}",
    "tierLists.entity.spriteSource.npc": "NPC",
    "tierLists.entity.spriteSource.operator": "Operator",
    "tierLists.entity.storyCategory.is": "Integrated Strategies",
    "tierLists.entity.storyCategory.main": "Main Story",
    "tierLists.entity.storyCategory.reclamation": "Reclamation Algorithm",
    "tierLists.entity.storyCategory.record": "Operator Record",
    "tierLists.entity.storyCategory.side": "Side Story",
    "tierLists.entity.storyCategory.sideContent": "Other Story",
    "tierLists.entity.storyCategory.vignette": "Vignette",
    "tierLists.entity.tile.label": "{name}, {kind}",
    "tierLists.entity.tile.labelOwned": "{name} ({owner}), {kind}",
    "tierLists.my.card.actions": "List actions",
    "tierLists.my.card.copyLink": "Copy share link",
    "tierLists.my.card.delete": "Delete",
    "tierLists.my.card.editBoard": "Edit Tierlist",
    "tierLists.my.card.editDetails": "Edit details",
    "tierLists.my.card.emptyDraft": "Empty draft",
    "tierLists.my.card.emptyThumb": "Nothing placed yet",
    "tierLists.my.card.favorites": "{count} favorites",
    "tierLists.my.card.official": "Official",
    "tierLists.my.card.open": "Open",
    "tierLists.my.card.tier": "Tier {name}",
    "tierLists.my.card.untitled": "Untitled list",
    "tierLists.my.card.views": "{count} views",
    "tierLists.my.card.views24h": "{count} views in the last 24h",
    "tierLists.my.create.cancel": "Cancel",
    "tierLists.my.create.description": "Give your list a name and a short description. You can change these later, and your edits will be visible to everyone who has the share link.",
    "tierLists.my.create.descriptionHint": "Optional. A sentence or two helps readers know what to expect.",
    "tierLists.my.create.descriptionLabel": "Description",
    "tierLists.my.create.descriptionPlaceholder": "What's this list about? Who is it for?",
    "tierLists.my.create.name": "Name",
    "tierLists.my.create.nameHint": "Shown on browse cards and on the public detail page.",
    "tierLists.my.create.namePlaceholder": "e.g. Endgame DPS rankings",
    "tierLists.my.create.submit": "Create list",
    "tierLists.my.create.title": "New tier list",
    "tierLists.my.delete.body": "{name} and all of its tiers, placements, and stats will be permanently removed. Anyone with the link will see a 404 page. This cannot be undone.",
    "tierLists.my.delete.cancel": "Cancel",
    "tierLists.my.delete.fallbackName": "This list",
    "tierLists.my.delete.submit": "Delete list",
    "tierLists.my.delete.title": "Delete tier list?",
    "tierLists.my.edit.cancel": "Cancel",
    "tierLists.my.edit.description": "Rename the list and update its description. Changes go live immediately.",
    "tierLists.my.edit.descriptionLabel": "Description",
    "tierLists.my.edit.descriptionPlaceholder": "A sentence or two about this list.",
    "tierLists.my.edit.name": "Name",
    "tierLists.my.edit.nameHint": "The URL slug will not change when you rename the list.",
    "tierLists.my.edit.submit": "Save changes",
    "tierLists.my.edit.title": "Edit list details",
    "tierLists.my.empty.action": "Create your first list",
    "tierLists.my.empty.body": "Create your first tier list to start ranking operators, enemies, events and more. You can publish it instantly and share it with anyone.",
    "tierLists.my.empty.title": "Your workshop is empty",
    "tierLists.my.error": "Couldn't load your tier lists.",
    "tierLists.my.filtered.clear": "Clear filters",
    "tierLists.my.filtered.emptyBody": "Try clearing the search or switching the type filter.",
    "tierLists.my.filtered.emptyTitle": "No lists match these filters.",
    "tierLists.my.hero.blurb": "Manage, refine, and share {total} {count, plural, one {list} other {lists}} you've built. Edits sync to anyone who visits.",
    "tierLists.my.hero.blurbEmpty": "You haven't created any tier lists yet. Spin up your first one - drafts publish instantly to your share link.",
    "tierLists.my.hero.create": "New tier list",
    "tierLists.my.hero.kicker": "My Tier Lists",
    "tierLists.my.hero.officialIncluded": "{count, plural, one {# official list included} other {# official lists included}}",
    "tierLists.my.hero.quotaReached": "You've reached the community list cap ({max})",
    "tierLists.my.hero.stat.favorites": "Total favorites",
    "tierLists.my.hero.stat.quota": "Community quota",
    "tierLists.my.hero.stat.total": "Total lists",
    "tierLists.my.hero.stat.views": "Total views",
    "tierLists.my.hero.title": "Your workshop.",
    "tierLists.my.results.count": "{shown} of {total}",
    "tierLists.my.results.matching": "· matching {query}",
    "tierLists.my.retry": "Retry",
    "tierLists.my.row.actions": "List actions",
    "tierLists.my.row.copyLink": "Copy share link",
    "tierLists.my.row.delete": "Delete",
    "tierLists.my.row.draft": "Draft",
    "tierLists.my.row.editBoard": "Edit Tierlist",
    "tierLists.my.row.editDetails": "Edit details",
    "tierLists.my.row.emptyPreview": "empty",
    "tierLists.my.row.favorites": "{count} favorites",
    "tierLists.my.row.official": "Official",
    "tierLists.my.row.open": "Open",
    "tierLists.my.row.untitled": "Untitled list",
    "tierLists.my.row.views": "{count} views",
    "tierLists.my.search.clear": "Clear search",
    "tierLists.my.search.label": "Search your tier lists",
    "tierLists.my.search.placeholder": "Search your lists...",
    "tierLists.my.sort.alpha": "Alphabetical",
    "tierLists.my.sort.alpha.hint": "A → Z by title",
    "tierLists.my.sort.favorites": "Most favorited",
    "tierLists.my.sort.favorites.hint": "All-time favorites",
    "tierLists.my.sort.newest": "Newest",
    "tierLists.my.sort.newest.hint": "Most recently created",
    "tierLists.my.sort.recent": "Recently updated",
    "tierLists.my.sort.recent.hint": "Latest edits first",
    "tierLists.my.sort.views": "Most viewed",
    "tierLists.my.sort.views.hint": "All-time view count",
    "tierLists.my.sortLabel": "Sort",
    "tierLists.my.sortTrigger": "Sort: {label}",
    "tierLists.my.toast.copiedBody": "The share link is on your clipboard.",
    "tierLists.my.toast.copiedTitle": "Link copied",
    "tierLists.my.toast.copyFailedBody": "Clipboard access was denied.",
    "tierLists.my.toast.copyFailedTitle": "Couldn't copy",
    "tierLists.my.toast.createFailed": "Couldn't create list.",
    "tierLists.my.toast.createdBody": "\"{name}\" is ready to edit.",
    "tierLists.my.toast.createdTitle": "List created",
    "tierLists.my.toast.deleteFailed": "Couldn't delete list.",
    "tierLists.my.toast.deletedBody": "\"{name}\" has been removed.",
    "tierLists.my.toast.deletedFallbackName": "List",
    "tierLists.my.toast.deletedTitle": "List deleted",
    "tierLists.my.toast.updateFailed": "Couldn't save changes.",
    "tierLists.my.toast.updatedBody": "Your changes are live.",
    "tierLists.my.toast.updatedTitle": "List updated",
    "tierLists.my.type.all": "All",
    "tierLists.my.type.community": "Community",
    "tierLists.my.type.label": "Filter by list type",
    "tierLists.my.type.official": "Official",
    "tierLists.my.view.grid": "Grid view",
    "tierLists.my.view.label": "View mode",
    "tierLists.my.view.list": "List view",
    "tools.birthdays.agenda.empty.desc": "No operators in your current filter celebrate on this day.",
    "tools.birthdays.agenda.empty.title": "No birthdays",
    "tools.birthdays.agenda.overflow": "+{count} more",
    "tools.birthdays.breadcrumb.tools": "Tools",
    "tools.birthdays.day.empty.desc": "No operators in your current filter celebrate on this day.",
    "tools.birthdays.day.empty.title": "No birthdays",
    "tools.birthdays.day.meta": "{weekday} · {count, plural, one {# operator} other {# operators}}",
    "tools.birthdays.day.metaToday": "{weekday} · today · {count, plural, one {# operator} other {# operators}}",
    "tools.birthdays.day.title": "{month} {day}",
    "tools.birthdays.filters.class": "Class",
    "tools.birthdays.filters.clear": "clear",
    "tools.birthdays.filters.nation": "Nation",
    "tools.birthdays.filters.nation.placeholder": "All nations",
    "tools.birthdays.filters.rarity": "Rarity",
    "tools.birthdays.filters.rarityChip": "{rarity}★",
    "tools.birthdays.filters.search": "Search",
    "tools.birthdays.filters.search.placeholder": "Operator name…",
    "tools.birthdays.intro": "Every operator's birthday on one screen. Filter by rarity, class, or nation; jump to any month; or browse what's coming up. Tap any day to see who's celebrating.",
    "tools.birthdays.list.empty.desc": "No operators match your filters. Try clearing rarity or class chips, or reset everything.",
    "tools.birthdays.list.empty.title": "No results",
    "tools.birthdays.list.monthCount": "· {count}",
    "tools.birthdays.list.rarityClass": "{rarity}★ · {class}",
    "tools.birthdays.list.weekdayToday": "{weekday} · today",
    "tools.birthdays.month.overflow": "+{count}",
    "tools.birthdays.range.crossMonth": "{startMonth} {startDay} - {endMonth} {endDay}, {year}",
    "tools.birthdays.range.crossYear": "{startMonth} {startDay}, {startYear} - {endMonth} {endDay}, {endYear}",
    "tools.birthdays.range.day": "{month} {day}, {year}",
    "tools.birthdays.range.month": "{month} {year}",
    "tools.birthdays.range.sameMonth": "{month} {startDay} - {endDay}, {year}",
    "tools.birthdays.row.classNation": "{class} · {nation}",
    "tools.birthdays.scale.3day": "3 Day",
    "tools.birthdays.scale.day": "Day",
    "tools.birthdays.scale.month": "Month",
    "tools.birthdays.scale.week": "Week",
    "tools.birthdays.sheet.matchCount": "{matched} of {total} match",
    "tools.birthdays.sheet.reset": "Reset",
    "tools.birthdays.sheet.show": "{count, plural, one {Show # result} other {Show # results}}",
    "tools.birthdays.sheet.title": "Filters",
    "tools.birthdays.sheet.trigger": "Filters",
    "tools.birthdays.sidebar.count": "({matched}/{total})",
    "tools.birthdays.sidebar.matched": "matched",
    "tools.birthdays.sidebar.reset": "Reset filters",
    "tools.birthdays.sidebar.title": "Filters",
    "tools.birthdays.tab.calendar": "Calendar",
    "tools.birthdays.tab.list": "List",
    "tools.birthdays.tab.upcoming": "Upcoming",
    "tools.birthdays.title": "Birthday Calendar",
    "tools.birthdays.today.kicker": "Today",
    "tools.birthdays.today.rarityClass": "{rarity}★ · {class}",
    "tools.birthdays.toolbar.next": "{scale, select, day {Next day} 3day {Next period} week {Next week} other {Next month}}",
    "tools.birthdays.toolbar.prev": "{scale, select, day {Previous day} 3day {Previous period} week {Previous week} other {Previous month}}",
    "tools.birthdays.toolbar.today": "Today",
    "tools.birthdays.upcoming.date": "{month} {day}",
    "tools.birthdays.upcoming.empty.desc": "No operators match your filters. Try clearing rarity or class chips, or reset everything.",
    "tools.birthdays.upcoming.empty.title": "No results",
    "tools.birthdays.upcoming.inDays": "{count, plural, one {In # day} other {In # days}}",
    "tools.birthdays.upcoming.rarity": "{rarity}★",
    "tools.birthdays.upcoming.today": "Today",
    "tools.birthdays.upcoming.tomorrow": "Tomorrow",
    "tools.calc.axis.from": "From",
    "tools.calc.axis.metricHint": "{metric}:",
    "tools.calc.axis.metricPlaceholder": "Metric",
    "tools.calc.axis.pointSummary": "{count} points{mode, select, whole { · whole numbers} other { · ~{step}{unit} apart}}",
    "tools.calc.axis.points": "Points",
    "tools.calc.axis.pointsPlaceholder": "Points",
    "tools.calc.axis.to": "To",
    "tools.calc.axis.xAxis": "X axis",
    "tools.calc.axis.yMetric": "Y metric",
    "tools.calc.chart.allHidden.desc": "Toggle visibility on a card (or use the chart legend) to plot it again.",
    "tools.calc.chart.allHidden.title": "All curves hidden",
    "tools.calc.chart.ariaLabel": "{yLabel} by {xLabel} for {count, plural, one {# operator} other {# operators}}",
    "tools.calc.chart.calculating": "Calculating",
    "tools.calc.chart.marker.break": "floor from {x}",
    "tools.calc.chart.marker.breakKey": "Floor reached: damage stops falling",
    "tools.calc.chart.marker.half": "half at {x}",
    "tools.calc.chart.marker.halfKey": "Half of the value at the sweep start",
    "tools.calc.chart.marker.notInRange": "not in range",
    "tools.calc.chart.snapshot": "snapshot",
    "tools.calc.cond.20Stacks": "20 stacks",
    "tools.calc.cond.2plusRangedTilesNearby": "2+ ranged tiles nearby",
    "tools.calc.cond.3InRange": "3 in range",
    "tools.calc.cond.3Kills": "3 kills",
    "tools.calc.cond.3ShieldsBroken": "3 shields broken",
    "tools.calc.cond.3plusEnemiesNearby": "3+ enemies nearby",
    "tools.calc.cond.4Hits": "4 hits",
    "tools.calc.cond.5ModuleStacks": "5 module stacks",
    "tools.calc.cond.abyssalHunterInRange": "Abyssal Hunter in range",
    "tools.calc.cond.adjacentAllies": "Adjacent allies",
    "tools.calc.cond.adjacentAlly": "Adjacent ally",
    "tools.calc.cond.aerialTarget": "Aerial target",
    "tools.calc.cond.after10S": "After 10 s",
    "tools.calc.cond.after3BigHits": "After 3 big hits",
    "tools.calc.cond.after5S": "After 5 s",
    "tools.calc.cond.afterADodge": "After a dodge",
    "tools.calc.cond.afterRevive": "After revive",
    "tools.calc.cond.afterStealing": "After stealing",
    "tools.calc.cond.afterTheTalentSHits": "After the talent's hits",
    "tools.calc.cond.afterTheTalentSKills": "After the talent's kills",
    "tools.calc.cond.afterTheTalentTrigger": "After the talent trigger",
    "tools.calc.cond.allyInRange": "Ally in range",
    "tools.calc.cond.alone": "Alone",
    "tools.calc.cond.aspdBuffWithSkill": "ASPD buff with skill",
    "tools.calc.cond.atMaxRange": "At max range",
    "tools.calc.cond.atRange": "At range",
    "tools.calc.cond.averageBurn": "Average Burn",
    "tools.calc.cond.averageNecrosis": "Average Necrosis",
    "tools.calc.cond.averageNervousImpairment": "Average Nervous Impairment",
    "tools.calc.cond.beforeTheKill": "Before the kill",
    "tools.calc.cond.beforeTheTalentSTimeLimit": "Before the talent's time limit",
    "tools.calc.cond.blocked": "Blocked",
    "tools.calc.cond.blockedTarget": "Blocked target",
    "tools.calc.cond.blocking": "Blocking",
    "tools.calc.cond.blocking2Plus": "Blocking 2+",
    "tools.calc.cond.bottlesHitTwice": "Bottles hit twice",
    "tools.calc.cond.catOnly": "Cat only",
    "tools.calc.cond.centralHit": "Central hit",
    "tools.calc.cond.charged": "Charged",
    "tools.calc.cond.conditionMet": "Condition met",
    "tools.calc.cond.damageTaken": "Damage taken",
    "tools.calc.cond.directlyInFront": "Directly in front",
    "tools.calc.cond.distant": "Distant",
    "tools.calc.cond.enemyClose": "Enemy close",
    "tools.calc.cond.fever": "Fever",
    "tools.calc.cond.firstActivation": "First activation",
    "tools.calc.cond.fourthActivation": "Fourth activation",
    "tools.calc.cond.fullSquad": "Full squad",
    "tools.calc.cond.gotHit": "Got hit",
    "tools.calc.cond.groundEnemies": "Ground enemies",
    "tools.calc.cond.groundEnemy": "Ground enemy",
    "tools.calc.cond.groundTargets": "Ground targets",
    "tools.calc.cond.groundUnit": "Ground unit",
    "tools.calc.cond.halfStacks": "Half stacks",
    "tools.calc.cond.halfVigor": "Half Vigor",
    "tools.calc.cond.healingMelee": "Healing melee",
    "tools.calc.cond.healsRatherThanAttacks": "Heals rather than attacks",
    "tools.calc.cond.highGroundTarget": "High-ground target",
    "tools.calc.cond.highHPTarget": "High-HP target",
    "tools.calc.cond.iceOnly": "Ice only",
    "tools.calc.cond.idealCase": "Ideal case",
    "tools.calc.cond.idealTalentUsage": "Ideal talent usage",
    "tools.calc.cond.inIS3": "In IS3",
    "tools.calc.cond.inIntegratedStrategies": "In Integrated Strategies",
    "tools.calc.cond.initialHit": "Initial hit",
    "tools.calc.cond.killingHitsOnly": "Killing hits only",
    "tools.calc.cond.lastStand": "Last stand",
    "tools.calc.cond.liftoffSelfBuff": "Liftoff self-buff",
    "tools.calc.cond.lowHP": "Low HP",
    "tools.calc.cond.lowHPTarget": "Low-HP target",
    "tools.calc.cond.lowTalentBonus": "Low talent bonus",
    "tools.calc.cond.manyTargets": "Many targets",
    "tools.calc.cond.maxFirstTalent": "Max first talent",
    "tools.calc.cond.maxModuleBonus": "Max module bonus",
    "tools.calc.cond.maxModuleStacks": "Max module stacks",
    "tools.calc.cond.maxNotes": "Max notes",
    "tools.calc.cond.maxRange": "Max range",
    "tools.calc.cond.maxSecondTalent": "Max second talent",
    "tools.calc.cond.maxSkillDamage": "Max skill damage",
    "tools.calc.cond.maxStacks": "Max stacks",
    "tools.calc.cond.maxSteal": "Max steal",
    "tools.calc.cond.maxTenacity": "Max Tenacity",
    "tools.calc.cond.melee": "Melee",
    "tools.calc.cond.mineDebuff": "Mine debuff",
    "tools.calc.cond.mineInRange": "Mine in range",
    "tools.calc.cond.minimumASPDBonus": "Minimum ASPD bonus",
    "tools.calc.cond.minimumDEFShred": "Minimum DEF shred",
    "tools.calc.cond.minimumDroneDamage": "Minimum drone damage",
    "tools.calc.cond.minimumNotes": "Minimum notes",
    "tools.calc.cond.minimumRESShred": "Minimum RES shred",
    "tools.calc.cond.minimumTraitBonus": "Minimum trait bonus",
    "tools.calc.cond.moduleRevive": "Module revive",
    "tools.calc.cond.multipleTargets": "Multiple targets",
    "tools.calc.cond.nextToCannon": "Next to cannon",
    "tools.calc.cond.noBurn": "No Burn",
    "tools.calc.cond.noClones": "No clones",
    "tools.calc.cond.noCoinStacks": "No coin stacks",
    "tools.calc.cond.noConstruct": "No construct",
    "tools.calc.cond.noCrits": "No crits",
    "tools.calc.cond.noDP": "No DP",
    "tools.calc.cond.noDamageTaken": "No damage taken",
    "tools.calc.cond.noDragons": "No dragons",
    "tools.calc.cond.noDrones": "No drones",
    "tools.calc.cond.noEnemies": "No enemies",
    "tools.calc.cond.noGroundTiles": "No ground tiles",
    "tools.calc.cond.noMana": "No mana",
    "tools.calc.cond.noMines": "No mines",
    "tools.calc.cond.noModuleBonus": "No module bonus",
    "tools.calc.cond.noModuleStacks": "No module stacks",
    "tools.calc.cond.noNecrosis": "No Necrosis",
    "tools.calc.cond.noRangedTiles": "No ranged tiles",
    "tools.calc.cond.noSecondMedic": "No second Medic",
    "tools.calc.cond.noSecondTalentStacks": "No second-talent stacks",
    "tools.calc.cond.noSkillCrits": "No skill crits",
    "tools.calc.cond.noStacks": "No stacks",
    "tools.calc.cond.noSummon": "No summon",
    "tools.calc.cond.noSummons": "No summons",
    "tools.calc.cond.noTalentBuffs": "No talent buffs",
    "tools.calc.cond.noTalentStacks": "No talent stacks",
    "tools.calc.cond.notBlocking": "Not blocking",
    "tools.calc.cond.notCharged": "Not charged",
    "tools.calc.cond.notInHealRange": "Not in heal range",
    "tools.calc.cond.oneDragon": "One dragon",
    "tools.calc.cond.oneDrone": "One drone",
    "tools.calc.cond.oneMinePerSkillCycle": "One mine per skill cycle",
    "tools.calc.cond.oneStack": "One stack",
    "tools.calc.cond.oneSummon": "One summon",
    "tools.calc.cond.oneWolf": "One wolf",
    "tools.calc.cond.onethirdOfHitsVsFrozen": "1/3 of hits vs. frozen",
    "tools.calc.cond.openingSeconds": "Opening seconds",
    "tools.calc.cond.openingSecondsVsDrones": "Opening seconds vs. drones",
    "tools.calc.cond.organ": "Organ",
    "tools.calc.cond.outOfAmmo": "Out of ammo",
    "tools.calc.cond.overcharged": "Overcharged",
    "tools.calc.cond.overdrive": "Overdrive",
    "tools.calc.cond.overlappingHits": "Overlapping hits",
    "tools.calc.cond.rangedAttack": "Ranged attack",
    "tools.calc.cond.s3SelfBuff": "S3 self-buff",
    "tools.calc.cond.sandwiched": "Sandwiched",
    "tools.calc.cond.secondActivation": "Second activation",
    "tools.calc.cond.selfAppliedSleep": "Self-applied Sleep",
    "tools.calc.cond.selfBuff": "Self-buff",
    "tools.calc.cond.selfStun": "Self-stun",
    "tools.calc.cond.singleTargetOnly": "Single target only",
    "tools.calc.cond.skillSucceeds": "Skill succeeds",
    "tools.calc.cond.talentActive": "Talent active",
    "tools.calc.cond.talentInactive": "Talent inactive",
    "tools.calc.cond.talentOnOneShotPerMagazine": "Talent on one shot per magazine",
    "tools.calc.cond.talentSEnemyTypeBonus": "Talent's enemy-type bonus",
    "tools.calc.cond.talentStacks": "Talent stacks",
    "tools.calc.cond.talentSummons": "Talent summons",
    "tools.calc.cond.tripleHit": "Triple hit",
    "tools.calc.cond.turretOnly": "Turret only",
    "tools.calc.cond.typewriterAttacksSeparately": "Typewriter attacks separately",
    "tools.calc.cond.unitOnly": "Unit only",
    "tools.calc.cond.versusTheHPThreshold": "Versus the HP threshold",
    "tools.calc.cond.vs2PlusEnemies": "vs. 2+ enemies",
    "tools.calc.cond.vsAerial": "vs. aerial",
    "tools.calc.cond.vsBindAndSlow": "vs. Bind and Slow",
    "tools.calc.cond.vsBindOrSlow": "vs. Bind or Slow",
    "tools.calc.cond.vsBlocked": "vs. blocked",
    "tools.calc.cond.vsBoss": "vs. boss",
    "tools.calc.cond.vsBurn": "vs. Burn",
    "tools.calc.cond.vsDrones": "vs. drones",
    "tools.calc.cond.vsElite": "vs. elite",
    "tools.calc.cond.vsFallout": "vs. Fallout",
    "tools.calc.cond.vsFrighten": "vs. Frighten",
    "tools.calc.cond.vsFrozen": "vs. frozen",
    "tools.calc.cond.vsHeavy": "vs. heavy",
    "tools.calc.cond.vsHighHP": "vs. high HP",
    "tools.calc.cond.vsHigherHP": "vs. higher HP",
    "tools.calc.cond.vsInfected": "vs. Infected",
    "tools.calc.cond.vsInvisible": "vs. invisible",
    "tools.calc.cond.vsLevitateImmune": "vs. Levitate-immune",
    "tools.calc.cond.vsLight": "vs. light",
    "tools.calc.cond.vsLowHP": "vs. low HP",
    "tools.calc.cond.vsMachine": "vs. machine",
    "tools.calc.cond.vsMarked": "vs. marked",
    "tools.calc.cond.vsMoving": "vs. moving",
    "tools.calc.cond.vsNegativeStatus": "vs. negative status",
    "tools.calc.cond.vsNonSarkaz": "vs. non-Sarkaz",
    "tools.calc.cond.vsParalysed": "vs. paralysed",
    "tools.calc.cond.vsRanged": "vs. ranged",
    "tools.calc.cond.vsSeaborn": "vs. Seaborn",
    "tools.calc.cond.vsSelfAppliedStun": "vs. self-applied Stun",
    "tools.calc.cond.vsSleep": "vs. Sleep",
    "tools.calc.cond.vsSlow": "vs. Slow",
    "tools.calc.cond.vsSlowWithSelfAppliedBind": "vs. Slow with self-applied Bind",
    "tools.calc.cond.vsStun": "vs. Stun",
    "tools.calc.cond.vsStunOrBind": "vs. Stun or Bind",
    "tools.calc.cond.vsStunned": "vs. stunned",
    "tools.calc.cond.vsTargetAbove50HP": "vs. target above 50% HP",
    "tools.calc.cond.vsTargetBelow1HP": "vs. target below 1% HP",
    "tools.calc.cond.waterMap": "Water map",
    "tools.calc.cond.weightlessTarget": "Weightless target",
    "tools.calc.cond.whileBlocking": "While blocking",
    "tools.calc.cond.withAverageNecrosis": "With average Necrosis",
    "tools.calc.cond.withBonus": "With bonus",
    "tools.calc.cond.withClone": "With clone",
    "tools.calc.cond.withPet": "With pet",
    "tools.calc.cond.withPillarDEFShred": "With pillar DEF shred",
    "tools.calc.cond.withSPBoost": "With SP boost",
    "tools.calc.cond.withTheBonus": "With the bonus",
    "tools.calc.cond.withoutASecondSniper": "Without a second Sniper",
    "tools.calc.cond.withoutCinder": "Without Cinder",
    "tools.calc.cond.withoutDEFIgnore": "Without DEF ignore",
    "tools.calc.cond.withoutDoll": "Without doll",
    "tools.calc.cond.withoutFirstTalent": "Without first talent",
    "tools.calc.cond.withoutSecondTalent": "Without second talent",
    "tools.calc.cond.withoutTalent": "Without talent",
    "tools.calc.cond.withoutTheBonus": "Without the bonus",
    "tools.calc.cond.withoutTheEffect": "Without the effect",
    "tools.calc.cond.withoutTrait": "Without trait",
    "tools.calc.cond.withoutVigor": "Without Vigor",
    "tools.calc.detail.basicAttack": "Basic attack",
    "tools.calc.detail.designatorWithName": "{label} · {name}",
    "tools.calc.detail.moduleFallback": "Mod {index}",
    "tools.calc.detail.moduleFallbackShort": "Mod{index}",
    "tools.calc.detail.noModule": "No module",
    "tools.calc.detail.noModuleLower": "no module",
    "tools.calc.detail.potentialBase": "Base",
    "tools.calc.instance.buildSummary": "{skill} · {rank} · {module}",
    "tools.calc.instance.collapse": "Collapse",
    "tools.calc.instance.conditionals": "Conditionals",
    "tools.calc.instance.duplicate": "Duplicate",
    "tools.calc.instance.expand": "Expand",
    "tools.calc.instance.externalBuffs": "This card's own buffs",
    "tools.calc.instance.externalBuffs.count": "{count, plural, one {# set} other {# set}}",
    "tools.calc.instance.hideCurve": "Hide curve",
    "tools.calc.instance.level": "Level",
    "tools.calc.instance.module": "Module",
    "tools.calc.instance.moduleFallbackTooltip": "Module {index}",
    "tools.calc.instance.moduleLevel": "Module level",
    "tools.calc.instance.moveDown": "Move down",
    "tools.calc.instance.moveUp": "Move up",
    "tools.calc.instance.potential": "Potential",
    "tools.calc.instance.potentialAria": "Potential {rank}",
    "tools.calc.instance.promotion": "Promotion",
    "tools.calc.instance.rankHint.e1": "Promote to E1 for skill levels 5-7, E2 for masteries.",
    "tools.calc.instance.rankHint.e2": "Promote to E2 to unlock masteries.",
    "tools.calc.instance.remove": "Remove",
    "tools.calc.instance.showCurve": "Show curve",
    "tools.calc.instance.skill": "Skill",
    "tools.calc.instance.skillFallback": "Skill {index}",
    "tools.calc.instance.skillLevel": "Skill level",
    "tools.calc.instance.trust": "Trust",
    "tools.calc.instance.useSkill": "Use {skill}",
    "tools.calc.kpi.buildSummary": "{skill} · {rank} · {module}",
    "tools.calc.kpi.failed": "Calculation failed",
    "tools.calc.kpi.leader": "Leader",
    "tools.calc.kpi.leaderBy": "Leader by ",
    "tools.calc.kpi.moreInfo": "{label} - more info",
    "tools.calc.kpi.title": "Snapshot",
    "tools.calc.kpi.top": "top",
    "tools.calc.picker.addAnother": "{noun, select, healer {Add another healer} other {Add another operator}}",
    "tools.calc.picker.addFirst": "{noun, select, healer {Add a healer} other {Add an operator}}",
    "tools.calc.picker.empty": "{noun, select, healer {No matching healers.} other {No matching operators.}}",
    "tools.calc.picker.hint.first": "{noun, select, healer {Pick any healer to start. You can add the same one multiple times to compare different builds.} other {Pick any operator to start. You can add the same one multiple times to compare different builds.}}",
    "tools.calc.picker.hint.second": "{noun, select, healer {Tip: add the same healer again with the picker, then tweak skill/level/module to compare two setups.} other {Tip: add the same operator again with the picker, then tweak skill/level/module to compare two setups.}}",
    "tools.calc.picker.loadFailed": "{noun, select, healer {Couldn't load healer list.} other {Couldn't load operator list.}}",
    "tools.calc.picker.loading": "{noun, select, healer {Loading healers...} other {Loading operators...}}",
    "tools.calc.picker.rarityPrefix": "{rarity}★ · ",
    "tools.calc.picker.search": "{noun, select, healer {Search {count, plural, one {# healer} other {# healers}}...} other {Search {count, plural, one {# operator} other {# operators}}...}}",
    "tools.calc.share.copied": "Link copied",
    "tools.calc.share.copyFailed": "Couldn't copy the link",
    "tools.calc.share.copyLink": "Copy link",
    "tools.calc.share.invalid": "This link's setup couldn't be read, so your saved setup is shown instead",
    "tools.calc.share.skipped": "{count, plural, one {# card from the link was skipped: its operator isn't available} other {# cards from the link were skipped: their operators aren't available}}",
    "tools.calc.skillRank.level": "Lv {rank}",
    "tools.calc.skillRank.levelShort": "L{rank}",
    "tools.calc.skillRank.lock.level": "Skill levels above 4 require E1",
    "tools.calc.skillRank.lock.mastery": "Masteries require E2",
    "tools.calc.skillRank.mastery": "M{mastery}",
    "tools.calc.skillRank.masteryShort": "M{mastery}",
    "tools.dps.axis.defense": "Enemy DEF",
    "tools.dps.axis.defense.short": "DEF",
    "tools.dps.axis.res": "Enemy RES (%)",
    "tools.dps.axis.res.short": "RES %",
    "tools.dps.breadcrumb.tools": "Tools",
    "tools.dps.cancel": "Cancel",
    "tools.dps.category.burst": "Burst",
    "tools.dps.category.instant": "Instant",
    "tools.dps.category.sustained": "Sustained",
    "tools.dps.clearAll": "Clear all",
    "tools.dps.clearAll.desc": "This removes all {count, plural, one {# configured operator} other {# configured operators}} from the calculator. Enemy and chart settings stay.",
    "tools.dps.clearAll.title": "Remove all operators?",
    "tools.dps.collapseAll": "Collapse all",
    "tools.dps.collapseAll.aria": "Collapse all operator cards",
    "tools.dps.configured": "Configured operators",
    "tools.dps.detail.approxSplit": "Typed Fragile approximated",
    "tools.dps.detail.approxSplit.hint": "This operator's damage reacts to both DEF and RES (or to neither), so only the generic damage-taken group and the one matching its attack type were applied.",
    "tools.dps.detail.clamped": "Secondary share clamped",
    "tools.dps.detail.clamped.hint": "Hitting more targets lowered this operator's total, so the secondary share came out negative and is shown as 0. Main plus others no longer equals the multi-target total.",
    "tools.dps.detail.cycle": "Cycle {seconds}s",
    "tools.dps.detail.normalAttack": "Plain attack off-skill",
    "tools.dps.detail.normalAttack.hint": "This operator's formula cannot compute its attack without the skill, so the time between skills uses a generic basic attack.",
    "tools.dps.detail.spNotModelled": "SP on hit not modelled",
    "tools.dps.detail.spNotModelled.hint": "This skill charges when the operator takes hits. The SP-aware model cannot time that, so average DPS falls back to the classic one and no timings are shown.",
    "tools.dps.detail.split": "Main {primary} · others {secondary}",
    "tools.dps.detail.startup": "First cast {seconds}s",
    "tools.dps.download": "Download chart as PNG",
    "tools.dps.empty.desc": "Pick any operator from the picker to plot a DPS curve. The chart will show how DPS scales as you sweep across {axis}.",
    "tools.dps.empty.title": "No operators yet",
    "tools.dps.enemy.cycle": "Skill cycle model",
    "tools.dps.enemy.cycle.desc.legacy": "Average DPS uses a plain basic attack between skills and charges every skill by time.",
    "tools.dps.enemy.cycle.desc.v2": "Average DPS uses the operator's own attack between skills and charges SP by the skill's type (per second or per hit); it also reports start-up and cycle times.",
    "tools.dps.enemy.cycle.legacy": "Classic",
    "tools.dps.enemy.cycle.v2": "SP-aware",
    "tools.dps.enemy.desc": "DEF and RES set the KPI snapshot, and the axis you're not sweeping is held at this value.",
    "tools.dps.enemy.presets": "Quick presets",
    "tools.dps.enemy.secondary": "Secondary targets",
    "tools.dps.enemy.secondary.count": "How many",
    "tools.dps.enemy.secondary.def": "Their DEF",
    "tools.dps.enemy.secondary.desc": "Other enemies hit alongside the main one. Results split into main and secondary damage.",
    "tools.dps.enemy.secondary.res": "Their RES",
    "tools.dps.enemy.secondary.targetsNote": "With secondary targets on, the main target is one enemy and the count above sets the rest.",
    "tools.dps.enemy.snapshotDef": "Snapshot DEF",
    "tools.dps.enemy.snapshotRes": "Snapshot RES (%)",
    "tools.dps.enemy.targets": "Targets hit (AoE)",
    "tools.dps.enemy.title": "Enemy & target",
    "tools.dps.expandAll": "Expand all",
    "tools.dps.expandAll.aria": "Expand all operator cards",
    "tools.dps.export.axis.def": "Enemy DEF",
    "tools.dps.export.axis.res": "Enemy RES",
    "tools.dps.export.buildSummary": "S{skill} · {module}",
    "tools.dps.export.enemy": "DEF {defense} · RES {res}% · {targets, plural, one {# target} other {# targets}}",
    "tools.dps.export.failed": "Couldn't export chart: {error}",
    "tools.dps.export.moduleSummary": "{module} L{level}",
    "tools.dps.export.snapshotDef": "@ DEF {defense}",
    "tools.dps.export.snapshotRes": "@ RES {res}%",
    "tools.dps.export.title": "{metric} vs {axis} - {enemy}",
    "tools.dps.help.averageDps.desc": "averages skill uptime against SP recharge - the long-run sustainable rate.",
    "tools.dps.help.averageDps.term": "Average DPS",
    "tools.dps.help.open": "How does this work?",
    "tools.dps.help.skillDps.desc": "is damage per second while the skill is active.",
    "tools.dps.help.skillDps.term": "Skill DPS",
    "tools.dps.help.sweep": "The chart sweeps the chosen X axis (DEF or RES). Whichever axis isn't being swept is held at the value you set in the Enemy panel.",
    "tools.dps.help.title": "How this works",
    "tools.dps.help.totalDamage.desc": "is skill DPS × duration (or just skill DPS for passive skills).",
    "tools.dps.help.totalDamage.term": "Total Damage",
    "tools.dps.helper.aspd.note": "Attack speed points. They add together.",
    "tools.dps.helper.aspd.wording": "“ASPD +30”",
    "tools.dps.helper.atkFlat.note": "A flat bonus that percentage buffs then scale, like a module's base stat.",
    "tools.dps.helper.atkFlat.wording": "“ATK +60” (a fixed number)",
    "tools.dps.helper.atkMultiplier.note": "Rare. Scales the finished ATK, Inspiration included.",
    "tools.dps.helper.atkMultiplier.wording": "“ATK multiplied by 1.2” after everything else",
    "tools.dps.helper.atkPercent.note": "Most skill and talent ATK buffs. Several of them add together.",
    "tools.dps.helper.atkPercent.wording": "“ATK +40%”",
    "tools.dps.helper.def.note": "DEF down, percent or flat. The same goes for RES.",
    "tools.dps.helper.def.wording": "“DEF -25%” or “DEF -150”",
    "tools.dps.helper.fragile.note": "Fragile. Only the strongest counts; physical-only and arts-only versions are separate and multiply with it.",
    "tools.dps.helper.fragile.wording": "“takes 30% more damage”",
    "tools.dps.helper.ignore.note": "Ignore DEF. Applied after every DEF down.",
    "tools.dps.helper.ignore.wording": "“attacks ignore 40% of the target's DEF”",
    "tools.dps.helper.inspire.note": "Inspiration. Added after percentages, and only the strongest one counts.",
    "tools.dps.helper.inspire.wording": "“gains ATK equal to 30% of this unit's ATK”",
    "tools.dps.helper.intro": "Find the phrase in the skill or talent text, then type its number into the field it names.",
    "tools.dps.helper.open": "Which buff is this?",
    "tools.dps.helper.reduction.note": "The enemy's own resistance to all damage. Each source multiplies.",
    "tools.dps.helper.reduction.wording": "“the boss takes 50% less damage”",
    "tools.dps.helper.sp.note": "SP per second. An aura from another operator that does not stack goes in SP aura.",
    "tools.dps.helper.sp.wording": "“recovers 0.3 SP per second”",
    "tools.dps.helper.steal.note": "DEF steal. Like DEF down, but only the strongest steal counts.",
    "tools.dps.helper.steal.wording": "“steals 70 DEF”",
    "tools.dps.import.added": "{count, plural, one {Added # operator from your squad} other {Added # operators from your squad}}",
    "tools.dps.import.skipped": "{count, plural, one {# squadmate is not in the DPS calculator yet} other {# squadmates are not in the DPS calculator yet}}",
    "tools.dps.intro": "Compare operator output across enemy DEF or RES sweeps. Add multiple instances of the same operator to compare masteries, modules, and conditional setups side-by-side.",
    "tools.dps.markers.toggle": "Curve markers: where damage hits its floor and where it halves",
    "tools.dps.metric.averageDps": "Average DPS",
    "tools.dps.metric.averageDps.short": "Avg DPS",
    "tools.dps.metric.skillDps": "Skill DPS",
    "tools.dps.metric.skillDps.short": "Skill DPS",
    "tools.dps.metric.totalDamage": "Total Damage",
    "tools.dps.metric.totalDamage.short": "Total",
    "tools.dps.note.credit": "All calculations go to the credit of {link} GitHub repository.",
    "tools.dps.note.creditLink": "WhoAteMyCQQkie's",
    "tools.dps.note.label": "Note:",
    "tools.dps.operators": "Operators",
    "tools.dps.operators.count": "({count})",
    "tools.dps.operators.countVisible": "({visible}/{total} visible)",
    "tools.dps.preset.armored": "Armored",
    "tools.dps.preset.armored.summary": "DEF 1800 · RES 20",
    "tools.dps.preset.boss": "Boss",
    "tools.dps.preset.boss.summary": "DEF 2500 · RES 30",
    "tools.dps.preset.casterTrash": "Caster trash",
    "tools.dps.preset.casterTrash.summary": "DEF 0 · RES 60",
    "tools.dps.preset.droneWave": "Drone wave",
    "tools.dps.preset.droneWave.summary": "DEF 200 · 3 targets",
    "tools.dps.preset.elite": "Elite",
    "tools.dps.preset.elite.summary": "DEF 1000 · RES 0",
    "tools.dps.preset.trash": "Trash",
    "tools.dps.preset.trash.summary": "DEF 0 · RES 0",
    "tools.dps.rank.add": "Add {name} to the comparison",
    "tools.dps.rank.added": "Added {name} to the comparison",
    "tools.dps.rank.arts": "Arts",
    "tools.dps.rank.basicAttack": "Basic attack",
    "tools.dps.rank.class": "Class",
    "tools.dps.rank.clearFilters": "Clear filters",
    "tools.dps.rank.col.category": "Shape",
    "tools.dps.rank.col.cycle": "Cycle",
    "tools.dps.rank.col.duration": "Duration",
    "tools.dps.rank.col.module": "Module",
    "tools.dps.rank.col.operator": "Operator",
    "tools.dps.rank.col.rank": "#",
    "tools.dps.rank.col.ratio": "vs #1",
    "tools.dps.rank.col.retention": "Ref. retention",
    "tools.dps.rank.col.retention.hint": "Share of its no-armor damage this operator keeps across real enemies, weighted by how often each appears in stages. Computed at the reference setup, not the one on this page.",
    "tools.dps.rank.col.skill": "Skill",
    "tools.dps.rank.col.split": "Main / others",
    "tools.dps.rank.col.startup": "First cast",
    "tools.dps.rank.count": "{shown} of {total} rows",
    "tools.dps.rank.damageType": "Damage",
    "tools.dps.rank.desc": "Each skill and module of every supported operator against the enemy and team buffs on the left.",
    "tools.dps.rank.empty": "No row matches these filters.",
    "tools.dps.rank.failed": "The ranking could not be computed: {error}",
    "tools.dps.rank.full": "The comparison holds at most {count} cards",
    "tools.dps.rank.inComparison": "Already in the comparison",
    "tools.dps.rank.loading": "Ranking every operator…",
    "tools.dps.rank.noModule": "None",
    "tools.dps.rank.physical": "Physical",
    "tools.dps.rank.preset": "Investment",
    "tools.dps.rank.preset.default": "Calculator default",
    "tools.dps.rank.preset.hint": "Max: highest promotion and level, trust 100, highest skill rank, module level 3.",
    "tools.dps.rank.preset.p1Max": "Max, P1",
    "tools.dps.rank.preset.p6Max": "Max, P6",
    "tools.dps.rank.rarity": "Rarity",
    "tools.dps.rank.rarityValue": "{stars}★",
    "tools.dps.rank.retentionPending": "Retention scores are still being computed; the column appears when they are ready.",
    "tools.dps.rank.search": "Search operators, skills, modules",
    "tools.dps.rank.skipped": "{count, plural, one {# combination} other {# combinations}} skipped (missing game data)",
    "tools.dps.rank.sort": "Sort by",
    "tools.dps.rank.timingsHint": "Start-up and cycle times need the SP-aware cycle model (enemy panel).",
    "tools.dps.rank.title": "Every operator, one setup",
    "tools.dps.stacking.applied": "Applied: {value}",
    "tools.dps.stacking.ignored": "Ignored: only the highest applies",
    "tools.dps.stacking.outOfScope": "{classes} only: skipped for other classes",
    "tools.dps.stacking.title": "How the supporters combine",
    "tools.dps.stacking.typed": "Typed in",
    "tools.dps.supporter.target.allAllies": "All allies",
    "tools.dps.supporter.target.alliesInRange": "Allies in range",
    "tools.dps.supporter.target.enemies": "Enemies",
    "tools.dps.supporter.target.oneAlly": "One ally",
    "tools.dps.supporters.add": "Supporters",
    "tools.dps.supporters.blocked": "Results are paused: the supporter values could not be loaded ({error}). Switch the supporters off or try again.",
    "tools.dps.supporters.desc": "Switch a supporter on to add its buff. Values are read from game data at the investment you set here.",
    "tools.dps.supporters.duration": "{seconds}s",
    "tools.dps.supporters.durationHint": "The buff is applied for the whole calculation; in game it lasts {seconds}s.",
    "tools.dps.supporters.failed": "Supporters could not be loaded: {error}",
    "tools.dps.supporters.inspireFrom": "from {atk} ATK",
    "tools.dps.supporters.loading": "Loading supporters…",
    "tools.dps.supporters.moduleLevel": "Module",
    "tools.dps.supporters.moduleNone": "No module",
    "tools.dps.supporters.none": "No supporter matches that search.",
    "tools.dps.supporters.potential": "Potential",
    "tools.dps.supporters.potentialValue": "Potential {rank}",
    "tools.dps.supporters.promotion": "Promotion",
    "tools.dps.supporters.rankNote": "The ranking applies every supporter to every row, including class-limited ones.",
    "tools.dps.supporters.remove": "Switch off {name}",
    "tools.dps.supporters.search": "Search supporters",
    "tools.dps.supporters.skill": "Skill {index}",
    "tools.dps.supporters.skillLevel": "Skill rank",
    "tools.dps.supporters.talent": "Talent {index}",
    "tools.dps.supporters.title": "Supporter presets",
    "tools.dps.supporters.toggle": "Use {name}",
    "tools.dps.supporters.unresolved": "{count, plural, one {# preset is} other {# presets are}} missing from this game data and hidden.",
    "tools.dps.supporters.waiting": "Waiting for supporter values…",
    "tools.dps.team.clear": "Clear",
    "tools.dps.team.desc": "Buffs from teammates and debuffs on the enemy. Every card gets them, and the ranking uses them too.",
    "tools.dps.team.title": "Team buffs",
    "tools.dps.title": "DPS Calculator",
    "tools.dps.tooltip.def": "DEF {value}",
    "tools.dps.tooltip.res": "RES {value}%",
    "tools.dps.view.compare": "Compare",
    "tools.dps.view.label": "View",
    "tools.dps.view.rank": "Rank all operators",
    "tools.dps.zone.artsFragile": "Arts damage taken +%",
    "tools.dps.zone.aspd": "ASPD +",
    "tools.dps.zone.atkFlat": "Base ATK +",
    "tools.dps.zone.atkMultiplier": "Final ATK ×",
    "tools.dps.zone.atkPercent": "ATK +%",
    "tools.dps.zone.damageReduction": "Enemy damage reduction %",
    "tools.dps.zone.defFlat": "DEF down",
    "tools.dps.zone.defIgnoreFlat": "Ignore DEF",
    "tools.dps.zone.defIgnorePercent": "Ignore DEF %",
    "tools.dps.zone.defPercent": "DEF down %",
    "tools.dps.zone.defSteal": "DEF steal",
    "tools.dps.zone.fragile": "Damage taken +%",
    "tools.dps.zone.inspire": "Inspiration",
    "tools.dps.zone.physicalFragile": "Physical damage taken +%",
    "tools.dps.zone.resFlat": "RES down",
    "tools.dps.zone.resIgnoreFlat": "Ignore RES",
    "tools.dps.zone.resIgnorePercent": "Ignore RES %",
    "tools.dps.zone.resPercent": "RES down %",
    "tools.dps.zone.resSteal": "RES steal",
    "tools.dps.zone.spAura": "SP aura per second",
    "tools.dps.zone.spRecovery": "SP per second +",
    "tools.dps.zone.stacking.additive": "adds up",
    "tools.dps.zone.stacking.max": "highest only",
    "tools.dps.zone.stacking.multiply": "multiplies",
    "tools.dps.zones.less": "Fewer buffs",
    "tools.dps.zones.more": "More buffs",
    "tools.dps.zones.moreSet": "{count, plural, one {# set} other {# set}}",
    "tools.hps.axis.aspd": "ASPD buff",
    "tools.hps.axis.aspd.short": "ASPD",
    "tools.hps.axis.atk": "ATK buff (%)",
    "tools.hps.axis.atk.short": "ATK %",
    "tools.hps.axis.targets": "Targets healed",
    "tools.hps.axis.targets.short": "Targets",
    "tools.hps.baseHps.burstHint": "Burst healer - heals only on skill activation, so there's no off-skill (base) healing.",
    "tools.hps.breadcrumb.tools": "Tools",
    "tools.hps.buffs.aspd": "ASPD",
    "tools.hps.buffs.atkPct": "ATK %",
    "tools.hps.buffs.desc": "Healing ignores enemy DEF/RES, so these team-side buffs drive output. The axis you're sweeping is held at this value for the snapshot.",
    "tools.hps.buffs.flatAtk": "Flat ATK",
    "tools.hps.buffs.healAmp": "Heal amp %",
    "tools.hps.buffs.presets": "Quick presets",
    "tools.hps.buffs.spBoost": "Bonus SP/s",
    "tools.hps.buffs.targets": "Targets healed",
    "tools.hps.buffs.title": "Team buffs & targets",
    "tools.hps.cancel": "Cancel",
    "tools.hps.clearAll": "Clear all",
    "tools.hps.clearAll.desc": "This removes all {count, plural, one {# configured healer} other {# configured healers}} from the calculator. Buff and chart settings stay.",
    "tools.hps.clearAll.title": "Remove all healers?",
    "tools.hps.collapseAll": "Collapse all",
    "tools.hps.collapseAll.aria": "Collapse all healer cards",
    "tools.hps.configured": "Configured healers",
    "tools.hps.download": "Download chart as PNG",
    "tools.hps.empty.desc": "Pick any healer from the picker to plot an HPS curve. The chart will show how healing scales as you sweep across {axis}.",
    "tools.hps.empty.title": "No healers yet",
    "tools.hps.expandAll": "Expand all",
    "tools.hps.expandAll.aria": "Expand all healer cards",
    "tools.hps.export.buffs": "ATK +{atk}% · ASPD +{aspd} · {targets, plural, one {# target} other {# targets}}",
    "tools.hps.export.buildSummary": "S{skill} · {module}",
    "tools.hps.export.failed": "Couldn't export chart: {error}",
    "tools.hps.export.moduleSummary": "{module} L{level}",
    "tools.hps.export.snapshotAspd": "@ ASPD +{value}",
    "tools.hps.export.snapshotAtk": "@ ATK +{value}%",
    "tools.hps.export.snapshotTargets": "@ {count, plural, one {# target} other {# targets}}",
    "tools.hps.export.title": "{metric} vs {axis} - {buffs}",
    "tools.hps.healers": "Healers",
    "tools.hps.healers.count": "({count})",
    "tools.hps.healers.countVisible": "({visible}/{total} visible)",
    "tools.hps.help.averageHps.desc": "averages skill uptime against SP recharge - the long-run sustainable rate.",
    "tools.hps.help.averageHps.term": "Average HPS",
    "tools.hps.help.baseHps.desc": "is always-on healing during SP recharge - it's 0 for burst healers that only heal on activation.",
    "tools.hps.help.baseHps.term": "Base HPS",
    "tools.hps.help.open": "How does this work?",
    "tools.hps.help.skillHps.desc": "is healing per second while the skill is active.",
    "tools.hps.help.skillHps.term": "Skill HPS",
    "tools.hps.help.sweep": "Healing ignores enemy DEF/RES, so the chart sweeps a team variable instead: target count, ATK buff, or ASPD. Single-target vs. AoE healers diverge most along the Targets axis.",
    "tools.hps.help.title": "How this works",
    "tools.hps.intro": "Compare healer output across target counts and team buffs. Add multiple instances of the same operator to compare masteries, modules, and conditional setups side-by-side.",
    "tools.hps.metric.avgHps": "Average HPS",
    "tools.hps.metric.avgHps.hint": "Sustained HPS averaged over a full skill + recharge cycle.",
    "tools.hps.metric.avgHps.short": "Avg HPS",
    "tools.hps.metric.baseHps": "Base HPS",
    "tools.hps.metric.baseHps.hint": "Always-on healing per second during SP recharge (0 for burst healers).",
    "tools.hps.metric.baseHps.short": "Base HPS",
    "tools.hps.metric.skillHps": "Skill HPS",
    "tools.hps.metric.skillHps.hint": "Healing per second while the skill is active.",
    "tools.hps.metric.skillHps.short": "Skill HPS",
    "tools.hps.note.credit": "All calculations go to the credit of {link} GitHub repository.",
    "tools.hps.note.creditLink": "WhoAteMyCQQkie's",
    "tools.hps.note.label": "Note:",
    "tools.hps.preset.aoe": "AoE",
    "tools.hps.preset.aoe.summary": "No buffs · 3 targets",
    "tools.hps.preset.aspd": "ASPD push",
    "tools.hps.preset.aspd.summary": "ASPD +60 · 1 target",
    "tools.hps.preset.atkAura": "ATK aura",
    "tools.hps.preset.atkAura.summary": "ATK +40% · 1 target",
    "tools.hps.preset.buffedAoe": "Buffed AoE",
    "tools.hps.preset.buffedAoe.summary": "ATK +40% · 3 targets",
    "tools.hps.preset.solo": "Solo",
    "tools.hps.preset.solo.summary": "No buffs · 1 target",
    "tools.hps.title": "HPS Calculator",
    "tools.hps.tooltip.aspd": "ASPD +{value}",
    "tools.hps.tooltip.atk": "ATK +{value}%",
    "tools.hps.tooltip.targets": "{count, plural, one {# target} other {# targets}}",
    "tools.planner.breadcrumb.tools": "Tools",
    "tools.planner.bulk.addAllResults": "{count, plural, one {Add the # result} other {Add all # results}}",
    "tools.planner.bulk.clear": "Clear",
    "tools.planner.bulk.desc": "Give several operators the same target. Each one stops at what its rarity allows.",
    "tools.planner.bulk.displayOnProfile.desc": "Show these plans on your public profile. Plans already shown there stay shown.",
    "tools.planner.bulk.failed": "{count, plural, one {# plan was not saved.} other {# plans were not saved.}} The reason is on each row.",
    "tools.planner.bulk.level": "Level",
    "tools.planner.bulk.levelCapNote": "Up to {max} here. Lower rarities stop at their own cap.",
    "tools.planner.bulk.masteries": "Masteries",
    "tools.planner.bulk.moduleStage": "Module stage",
    "tools.planner.bulk.open": "Bulk add",
    "tools.planner.bulk.operators": "Operators",
    "tools.planner.bulk.overwrite": "Replace existing plans",
    "tools.planner.bulk.overwrite.desc": "When off, operators that already have a plan are hidden from the picker.",
    "tools.planner.bulk.preset": "Preset",
    "tools.planner.bulk.presetDelete": "Delete preset",
    "tools.planner.bulk.presetName": "Preset name",
    "tools.planner.bulk.presetNone": "No saved presets yet.",
    "tools.planner.bulk.presetPlaceholder": "Load a preset",
    "tools.planner.bulk.presetReplace": "Replace preset",
    "tools.planner.bulk.presetSave": "Save preset",
    "tools.planner.bulk.preview": "Preview",
    "tools.planner.bulk.previewEmpty": "Pick operators to see the target each one gets.",
    "tools.planner.bulk.remove": "Remove {operator}",
    "tools.planner.bulk.save": "{count, plural, =0 {Add plans} one {Add # plan} other {Add # plans}}",
    "tools.planner.bulk.selectedCount": "{count, plural, one {# selected} other {# selected}}",
    "tools.planner.bulk.skillLevel": "Skill level",
    "tools.planner.bulk.skillSlot": "S{index}",
    "tools.planner.bulk.status.loading": "Loading...",
    "tools.planner.bulk.status.planned": "Skipped: already planned",
    "tools.planner.bulk.status.reached": "Skipped: already there",
    "tools.planner.bulk.status.replaces": "Replaces plan",
    "tools.planner.bulk.status.unplannable": "Skipped: can't be planned",
    "tools.planner.bulk.summary.masteries": "M{masteries}",
    "tools.planner.bulk.summary.module": "Mod {stage}",
    "tools.planner.bulk.summary.promotion": "E{elite} Lv{level}",
    "tools.planner.bulk.summary.skill": "SL{level}",
    "tools.planner.bulk.target": "Target",
    "tools.planner.bulk.targetNote": "Missing skills and modules are skipped. Anything already past the target stays where it is.",
    "tools.planner.bulk.title": "Bulk add plans",
    "tools.planner.card.delete": "Delete",
    "tools.planner.card.edit": "Edit",
    "tools.planner.card.eliteAlt": "Elite {elite}",
    "tools.planner.card.level": "Level",
    "tools.planner.card.levelValue": "Lv.{level}",
    "tools.planner.card.mastery": "M{mastery}",
    "tools.planner.card.modules": "Modules",
    "tools.planner.card.rarityClass": "{rarity}★ {archetype}",
    "tools.planner.card.skillFallback": "Skill {index}",
    "tools.planner.card.skills": "Skills",
    "tools.planner.category.chips": "Chips",
    "tools.planner.category.expLmd": "EXP & LMD",
    "tools.planner.category.materials": "Materials",
    "tools.planner.category.modules": "Module Data",
    "tools.planner.category.skills": "Skill Summaries",
    "tools.planner.completed.check": "Completed plans",
    "tools.planner.completed.close": "Close",
    "tools.planner.completed.delete": "{count, plural, =0 {Delete} one {Delete # plan} other {Delete # plans}}",
    "tools.planner.completed.desc": "Your last sync shows these operators at their targets. Delete the plans you no longer need.",
    "tools.planner.completed.empty": "As of your last sync, no plan has reached its target yet.",
    "tools.planner.completed.keep": "Keep them",
    "tools.planner.completed.title": "{count, plural, =0 {No completed plans} one {Completed plan} other {Completed plans}}",
    "tools.planner.createFirstPlan": "Create new plan",
    "tools.planner.createPlan": "Create plan",
    "tools.planner.delete.cancel": "Cancel",
    "tools.planner.delete.confirm": "{count, plural, one {Delete plan} other {Delete # plans}}",
    "tools.planner.delete.desc": "{names} and {count, plural, one {its} other {their}} promotion, level, skill, and module goals will be permanently removed. This cannot be undone.",
    "tools.planner.delete.fallbackName": "This plan",
    "tools.planner.delete.names": "{names} and {count} more",
    "tools.planner.delete.title": "{count, plural, one {Delete plan?} other {Delete # plans?}}",
    "tools.planner.deleteFailed": "Failed to delete. Please try again.",
    "tools.planner.deleteSelected": "Delete selected ({count})",
    "tools.planner.dialog.alreadyReached": "Already reached",
    "tools.planner.dialog.cancel": "Cancel",
    "tools.planner.dialog.create": "Create plan",
    "tools.planner.dialog.createDesc": "Add a new operator target plan to your planner list.",
    "tools.planner.dialog.createTitle": "Create new plan",
    "tools.planner.dialog.displayOnProfile": "Display on profile",
    "tools.planner.dialog.displayOnProfile.desc": "Show this target plan on your public user profile.",
    "tools.planner.dialog.editDesc": "Customize and update your target goals for {operator}.",
    "tools.planner.dialog.editDesc.fallback": "this operator",
    "tools.planner.dialog.editTitle": "Edit plan",
    "tools.planner.dialog.elite": "Elite {elite}",
    "tools.planner.dialog.groups": "Groups",
    "tools.planner.dialog.groups.cancel": "Cancel",
    "tools.planner.dialog.groups.create": "Create",
    "tools.planner.dialog.groups.createNew": "Create new group",
    "tools.planner.dialog.groups.deleteConfirm": "Are you sure you want to delete group \"{name}\"?",
    "tools.planner.dialog.groups.newName": "New group name...",
    "tools.planner.dialog.groups.none": "No groups found.",
    "tools.planner.dialog.groups.placeholder": "Select plan groups...",
    "tools.planner.dialog.groups.renamePrompt": "Enter new group name:",
    "tools.planner.dialog.level": "Level (Max {max})",
    "tools.planner.dialog.loadingDetails": "Loading operator details...",
    "tools.planner.dialog.loadingOperators": "Loading operators...",
    "tools.planner.dialog.mastery": "Mastery {mastery}",
    "tools.planner.dialog.masteryLocked": "Skill Mastery {mastery} is available after Elite {elite} Level {level}",
    "tools.planner.dialog.moduleFallback": "Module",
    "tools.planner.dialog.moduleLocked": "Module unlocks at Elite {elite} Level {level}",
    "tools.planner.dialog.modules": "Modules",
    "tools.planner.dialog.noOperators": "No operators found.",
    "tools.planner.dialog.notPlanned": "Not planned",
    "tools.planner.dialog.pickOperator": "Please select an operator to customize targets.",
    "tools.planner.dialog.promotion": "Promotion",
    "tools.planner.dialog.radian": "Raidian's upgrades are dependent on Integrated Strategies 6 - Sui's Garden of Grotesqueries progression and cannot be planned.",
    "tools.planner.dialog.rarityArchetype": "{rarity}★ · {archetype}",
    "tools.planner.dialog.rarityClass": "{rarity}★ · {class}",
    "tools.planner.dialog.save": "Save changes",
    "tools.planner.dialog.saving": "Saving...",
    "tools.planner.dialog.searchOperators": "Search operators by name, class, or tag...",
    "tools.planner.dialog.selectOperator": "Select Operator",
    "tools.planner.dialog.skillFallback": "Skill {index}",
    "tools.planner.dialog.skillLevel": "Level {level}",
    "tools.planner.dialog.skillLevelLocked": "Skill Level {skillLevel} is available after Elite {elite} Level {level}",
    "tools.planner.dialog.skills": "Skills",
    "tools.planner.dialog.sp": "SP: {initial}/{total}",
    "tools.planner.dialog.stage": "Stage {stage}",
    "tools.planner.filter.all": "All",
    "tools.planner.filter.aria": "Filter plans by group",
    "tools.planner.filter.ungrouped": "Ungrouped",
    "tools.planner.group.deleteConfirm": "Are you sure you want to delete group \"{name}\"?",
    "tools.planner.group.empty": "No plans in this group.",
    "tools.planner.group.none": "No groups created yet.",
    "tools.planner.group.pin": "Pin {name}",
    "tools.planner.group.renamePrompt": "Enter new group name:",
    "tools.planner.group.unpin": "Unpin {name}",
    "tools.planner.intro": "Plan your operator promotion, level, skill, and module goals.",
    "tools.planner.req.col.craftable": "Craftable",
    "tools.planner.req.col.have": "Have",
    "tools.planner.req.col.item": "Item",
    "tools.planner.req.col.missing": "Missing",
    "tools.planner.req.col.required": "Required",
    "tools.planner.req.craft": "craft {count}",
    "tools.planner.req.craftGate.aria": "Why {name} cannot be crafted yet",
    "tools.planner.req.craftGate.stages": "Stages to clear:",
    "tools.planner.req.craftTitle": "You have {have} of {required} - the remaining {shortfall} must be crafted",
    "tools.planner.req.filter.all": "All",
    "tools.planner.req.filter.status": "Status",
    "tools.planner.req.filter.statusValue": "Status: {value}",
    "tools.planner.req.filter.tier": "Max tier",
    "tools.planner.req.filter.tierOption": "T{tier}",
    "tools.planner.req.filter.tierValue": "Max tier: {value}",
    "tools.planner.req.filter.type": "Type",
    "tools.planner.req.filter.typeValue": "Type: {value}",
    "tools.planner.req.lastSynced": "Last synced {time}",
    "tools.planner.req.noActivePlans": "No active plans selected.",
    "tools.planner.req.noneForPlans": "No requirements for the selected plans.",
    "tools.planner.req.noneMatching": "No matching requirements found.",
    "tools.planner.req.noneMatchingOperator": "No matching requirements.",
    "tools.planner.req.search": "Search requirements...",
    "tools.planner.req.tierNote": "Materials above T{tier} are broken into their ingredients. LMD includes the crafting cost.",
    "tools.planner.req.title": "Requirements",
    "tools.planner.req.view": "Requirements view",
    "tools.planner.req.view.byOperator": "By operator",
    "tools.planner.req.view.byOperator.aria": "By operator view",
    "tools.planner.req.view.flat": "Flat",
    "tools.planner.req.view.flat.aria": "Flat view",
    "tools.planner.req.view.grouped": "Grouped",
    "tools.planner.req.view.grouped.aria": "Grouped view",
    "tools.planner.selectAll": "Select all",
    "tools.planner.signIn.action": "Sign in",
    "tools.planner.signIn.desc": "Your operator promotion, level, skill, and module goals are saved to your account so you can access them anywhere.",
    "tools.planner.signIn.title": "Sign in to use the planner",
    "tools.planner.status.complete": "Complete",
    "tools.planner.status.craft": "Craft needed",
    "tools.planner.status.missing": "Missing",
    "tools.planner.subtotal.craft": "{count} to craft",
    "tools.planner.subtotal.items": "{count, plural, one {# item} other {# items}}",
    "tools.planner.subtotal.missing": "{count} missing",
    "tools.planner.subtotal.separator": " · ",
    "tools.planner.tab.groups": "Groups",
    "tools.planner.tab.plans": "Plans",
    "tools.planner.target.level": "E{elite} Lv{level}",
    "tools.planner.target.mastery": "S{skill} M{mastery}",
    "tools.planner.target.modules": "{count, plural, one {# module} other {# modules}}",
    "tools.planner.target.separator": " · ",
    "tools.planner.target.skillLevel": "SL{level}",
    "tools.planner.title": "Operator Planner",
    "tools.planner.unknownOperator": "Unknown operator",
    "tools.planner.unselectAll": "Unselect all",
    "tools.randomizer.breadcrumb.title": "Randomizer",
    "tools.randomizer.breadcrumb.tools": "Tools",
    "tools.randomizer.challenge.annihilationOneOperator.desc": "You must do a 1 operator relay (eg. only one operator deployed at a time).",
    "tools.randomizer.challenge.annihilationOneOperator.title": "Annihilation: 1P Relay",
    "tools.randomizer.challenge.bossSolo.desc": "Only one operator may be deployed during the boss phase.",
    "tools.randomizer.challenge.bossSolo.title": "Boss solo",
    "tools.randomizer.challenge.burnedOut.desc": "Operators must be retreated when their skill ends.",
    "tools.randomizer.challenge.burnedOut.title": "Burned Out",
    "tools.randomizer.challenge.comeToMySide.desc": "Operators may only be deployed within the arrow-rain range (eg. Texas skill2 range) of other operators (the first operator is exempt).",
    "tools.randomizer.challenge.comeToMySide.title": "Come to My Side",
    "tools.randomizer.challenge.crisisAwareness.desc": "Operators may not activate skills until their HP drops below 50%.",
    "tools.randomizer.challenge.crisisAwareness.title": "Crisis Awareness",
    "tools.randomizer.challenge.crowdedEra.desc": "Only 3 deployment slots may be used.",
    "tools.randomizer.challenge.crowdedEra.title": "Crowded Era",
    "tools.randomizer.challenge.defensiveRecovery.desc": "You may only use defensive recovery skills.",
    "tools.randomizer.challenge.defensiveRecovery.title": "Defensive Recovery only",
    "tools.randomizer.challenge.elfOperators.desc": "Operators must equip Skill 1.",
    "tools.randomizer.challenge.elfOperators.title": "Elf Operators",
    "tools.randomizer.challenge.fiveStarCeiling.desc": "No operators above 5★ rarity.",
    "tools.randomizer.challenge.fiveStarCeiling.title": "Five-star ceiling",
    "tools.randomizer.challenge.fiveStarRarity.desc": "Only 5★ operators allowed.",
    "tools.randomizer.challenge.fiveStarRarity.title": "5 stars only",
    "tools.randomizer.challenge.fourStarCeiling.desc": "No operators above 4★ rarity.",
    "tools.randomizer.challenge.fourStarCeiling.title": "Four-star ceiling",
    "tools.randomizer.challenge.fourStarRarity.desc": "Only 4★ operators allowed.",
    "tools.randomizer.challenge.fourStarRarity.title": "4 stars only",
    "tools.randomizer.challenge.ghostLeaderArmy.desc": "Friendly units are forbidden from blocking enemies.",
    "tools.randomizer.challenge.ghostLeaderArmy.title": "Ghost Leader Army",
    "tools.randomizer.challenge.hoshigumaMimiMeowMeow.desc": "Only “Feline” operators may be brought.",
    "tools.randomizer.challenge.hoshigumaMimiMeowMeow.title": "Hoshiguma Mimi Meow Meow",
    "tools.randomizer.challenge.littleLoneliness.desc": "No other operators may be deployed within the arrow-rain range (eg. Texas skill2 range) of an operator.",
    "tools.randomizer.challenge.littleLoneliness.title": "Little Loneliness",
    "tools.randomizer.challenge.lowRarity.desc": "Only 1★-3★ operators allowed.",
    "tools.randomizer.challenge.lowRarity.title": "Low rarity only",
    "tools.randomizer.challenge.meleeOnly.desc": "Only melee operators allowed.",
    "tools.randomizer.challenge.meleeOnly.title": "Melee only",
    "tools.randomizer.challenge.minimalDeployment.desc": "Use the fewest operators possible.",
    "tools.randomizer.challenge.minimalDeployment.title": "Minimal deployment",
    "tools.randomizer.challenge.noDamage.desc": "Friendly units must not lose HP from enemy attacks.",
    "tools.randomizer.challenge.noDamage.title": "No Damage",
    "tools.randomizer.challenge.noMedics.desc": "Cannot deploy any Medic operators.",
    "tools.randomizer.challenge.noMedics.title": "No Medics",
    "tools.randomizer.challenge.noRetreat.desc": "Once deployed, no operator may be retreated.",
    "tools.randomizer.challenge.noRetreat.title": "No retreating",
    "tools.randomizer.challenge.northSouthEastWest.desc": "All operators must face the same direction.",
    "tools.randomizer.challenge.northSouthEastWest.title": "North, South, East, West",
    "tools.randomizer.challenge.offensiveRecovery.desc": "You may only use offensive recovery skills.",
    "tools.randomizer.challenge.offensiveRecovery.title": "Offensive Recovery only",
    "tools.randomizer.challenge.rangedOnly.desc": "Only ranged operators allowed.",
    "tools.randomizer.challenge.rangedOnly.title": "Ranged only",
    "tools.randomizer.challenge.rosterOrder.desc": "Deploy operators left-to-right in the assigned order.",
    "tools.randomizer.challenge.rosterOrder.title": "Roster order",
    "tools.randomizer.challenge.speedRun.desc": "Complete the stage as quickly as you can.",
    "tools.randomizer.challenge.speedRun.title": "Speed run",
    "tools.randomizer.challenge.straightLine.desc": "Operators may only be deployed along a single straight line.",
    "tools.randomizer.challenge.straightLine.title": "Straight Line",
    "tools.randomizer.challenge.visionInvitation.desc": "Operators must be deployed within the current attack range of all deployed operators (the first operator is exempt).",
    "tools.randomizer.challenge.visionInvitation.title": "Vision Invitation",
    "tools.randomizer.challenge.withDamage.desc": "All deployed operators must take damage.",
    "tools.randomizer.challenge.withDamage.title": "With Damage",
    "tools.randomizer.empty.hint": "Hit {key} above to draw a random stage, a squad of operators, and a challenge modifier.",
    "tools.randomizer.empty.hintKey": "Roll Squad",
    "tools.randomizer.empty.kicker": "No squads rolled",
    "tools.randomizer.empty.title": "Awaiting randomizer.",
    "tools.randomizer.hero.drawableOps": "Drawable ops ",
    "tools.randomizer.hero.drawableStages": "Drawable stages ",
    "tools.randomizer.hero.intro": "Roll a random stage, squad, and challenge modifier. Logged-in users can restrict the draw to operators they own and stages they've completed.",
    "tools.randomizer.hero.reset": "Reset",
    "tools.randomizer.hero.roll": "Roll squad",
    "tools.randomizer.hero.roster": "Roster ",
    "tools.randomizer.hero.settings": "Settings",
    "tools.randomizer.hero.title": "Randomizer",
    "tools.randomizer.modifier.kicker": "RULE",
    "tools.randomizer.modifier.kind.modifier": "Modifier",
    "tools.randomizer.modifier.kind.objective": "Objective",
    "tools.randomizer.modifier.kind.restriction": "Restriction",
    "tools.randomizer.modifier.reroll": "Reroll",
    "tools.randomizer.modifier.rerollAria": "Reroll modifier",
    "tools.randomizer.ops.allowDuplicates": "Allow duplicates",
    "tools.randomizer.ops.allowDuplicates.desc": "Same operator can appear twice in a squad.",
    "tools.randomizer.ops.class": "Class",
    "tools.randomizer.ops.class.aria": "Allowed classes",
    "tools.randomizer.ops.e2SixStarOnly": "6★ only",
    "tools.randomizer.ops.e2SixStarOnly.desc": "Only require Elite 2 for 6★ operators.",
    "tools.randomizer.ops.hideUnplayable": "Hide unplayable operators",
    "tools.randomizer.ops.hideUnplayable.desc": "Exclude tokens, support-only, and reserve operators.",
    "tools.randomizer.ops.onlyE2": "E2 only",
    "tools.randomizer.ops.onlyE2.desc": "Restrict further to operators at elite 2 in your roster.",
    "tools.randomizer.ops.onlyOwned": "Only operators I own",
    "tools.randomizer.ops.onlyOwned.desc": "Restrict to your roster from the linked profile.",
    "tools.randomizer.ops.rarity": "Rarity",
    "tools.randomizer.ops.rarity.aria": "Allowed rarities",
    "tools.randomizer.ops.rarityChip": "{rarity}★",
    "tools.randomizer.ops.rarityChip.aria": "{rarity} star",
    "tools.randomizer.ops.rules": "Rules",
    "tools.randomizer.ops.squadSize": "Squad size · {size}",
    "tools.randomizer.ops.tierList": "Tier list",
    "tools.randomizer.ops.tierList.aria": "Allowed tiers",
    "tools.randomizer.ops.tierList.desc": "Draw only from the tiers you keep selected.",
    "tools.randomizer.ops.tierList.loading": "Loading tiers...",
    "tools.randomizer.ops.tierList.none": "None",
    "tools.randomizer.ops.tierList.title": "Official tier list",
    "tools.randomizer.ops.tierList.unranked": "Unranked",
    "tools.randomizer.preview.alt": "{stage} map preview",
    "tools.randomizer.preview.expand": "Expand {stage} map preview",
    "tools.randomizer.preview.none": "No preview available for {code}",
    "tools.randomizer.preview.stageLabel": "{code} - {name}",
    "tools.randomizer.roster.all": "All",
    "tools.randomizer.roster.clearSearch": "Clear search",
    "tools.randomizer.roster.empty.filters": "All operators are filtered out by your Operators tab settings.",
    "tools.randomizer.roster.empty.none": "There are no operators available.",
    "tools.randomizer.roster.empty.reset": "Reset roster",
    "tools.randomizer.roster.empty.search": "No operators match your search.",
    "tools.randomizer.roster.empty.title": "No operators to show",
    "tools.randomizer.roster.filter.e2": "E2 only",
    "tools.randomizer.roster.filter.e2SixStar": "E2 only (6★)",
    "tools.randomizer.roster.filter.owned": "Owned only",
    "tools.randomizer.roster.filter.tier": "{list} tiers",
    "tools.randomizer.roster.groupAll": "All",
    "tools.randomizer.roster.groupAll.aria": "Select all {rarity} operators",
    "tools.randomizer.roster.groupClear": "Clear",
    "tools.randomizer.roster.groupClear.aria": "Clear all {rarity} operators",
    "tools.randomizer.roster.groupCount": "{selected} / {total}",
    "tools.randomizer.roster.hint": "Showing operators that match your Operators filters. {count} hidden by {filters}.",
    "tools.randomizer.roster.hintFilters": "active filters",
    "tools.randomizer.roster.inView": "in view",
    "tools.randomizer.roster.none": "None",
    "tools.randomizer.roster.rarityChip": "{rarity}★",
    "tools.randomizer.roster.reset": "Reset",
    "tools.randomizer.roster.reset.title": "Restore the default state (every operator selected).",
    "tools.randomizer.roster.search": "Search operators…",
    "tools.randomizer.roster.selected": "selected",
    "tools.randomizer.roster.syncProfile": "Sync profile ({count})",
    "tools.randomizer.roster.totalInRoster": "{count} total in roster",
    "tools.randomizer.section.event": "Events",
    "tools.randomizer.section.main": "Main Story",
    "tools.randomizer.section.other": "Other",
    "tools.randomizer.settings.desc": "Constrain the randomizer - by class, rarity, owned operators, or stage availability.",
    "tools.randomizer.settings.tab.operators": "Operators",
    "tools.randomizer.settings.tab.roster": "Roster",
    "tools.randomizer.settings.tab.stages": "Stages",
    "tools.randomizer.settings.title": "Settings",
    "tools.randomizer.squad.count": "{filled}/{size}",
    "tools.randomizer.squad.deployment": "Deployment ·",
    "tools.randomizer.squad.empty": "No matching operators - relax your filters.",
    "tools.randomizer.squad.kicker": "SQUAD",
    "tools.randomizer.squad.reroll": "Reroll",
    "tools.randomizer.squad.rerollAria": "Reroll squad",
    "tools.randomizer.squad.viewOperator": "View {name}",
    "tools.randomizer.stage.ap": "AP {cost}",
    "tools.randomizer.stage.boss": "Boss",
    "tools.randomizer.stage.dangerLevel": "LV {level}",
    "tools.randomizer.stage.family": " · {family}",
    "tools.randomizer.stage.kicker": "STAGE",
    "tools.randomizer.stage.reroll": "Reroll",
    "tools.randomizer.stage.rerollAria": "Reroll stage",
    "tools.randomizer.stage.target": "Target",
    "tools.randomizer.stages.all": "All",
    "tools.randomizer.stages.badge.adverse": "ADV",
    "tools.randomizer.stages.badge.cm": "CM",
    "tools.randomizer.stages.badge.story": "STR",
    "tools.randomizer.stages.chapter": "Chapter {number} - {name}",
    "tools.randomizer.stages.clearSearch": "Clear search",
    "tools.randomizer.stages.count": "stages",
    "tools.randomizer.stages.eligibility": "Eligibility",
    "tools.randomizer.stages.groupCount": "{selected}/{total}",
    "tools.randomizer.stages.noMatch": "No events match.",
    "tools.randomizer.stages.none": "None",
    "tools.randomizer.stages.onlyAvailable": "Only currently available",
    "tools.randomizer.stages.onlyAvailable.desc": "Hide events that aren't open right now (permanent events stay).",
    "tools.randomizer.stages.onlyCleared": "Only stages I've cleared",
    "tools.randomizer.stages.onlyCleared.desc": "Deselects every stage you haven't cleared in your profile.",
    "tools.randomizer.stages.permanent": "Permanent",
    "tools.randomizer.stages.pool": "Stage pool",
    "tools.randomizer.stages.rerun": "Rerun",
    "tools.randomizer.stages.search": "Search events or stages…",
    "tools.randomizer.stages.sectionCount": "{selected}/{total}",
    "tools.randomizer.stages.stageLabel": "{code} - {name}",
    "tools.randomizer.stages.tag.event": "Event",
    "tools.randomizer.stages.tag.mainline": "Mainline",
    "tools.randomizer.stages.tag.mini": "Mini",
    "tools.randomizer.stages.toggleGroup": "Toggle {group}",
    "tools.randomizer.stages.toggleStage": "Toggle {stage}",
    "tools.recruit.breadcrumb.tools": "Tools",
    "tools.recruit.empty.noResults.desc": "No recruitable operators match the current tags and options. Try removing a tag or enabling more options.",
    "tools.recruit.empty.noResults.title": "No matching operators",
    "tools.recruit.empty.noSelection.desc": "Select the tags shown in your in-game recruitment screen. Combinations are ranked by guaranteed minimum rarity.",
    "tools.recruit.empty.noSelection.title": "Pick tags to see combinations",
    "tools.recruit.group.affix": "Affix",
    "tools.recruit.group.class": "Class",
    "tools.recruit.group.position": "Position",
    "tools.recruit.group.qualification": "Qualification",
    "tools.recruit.intro": "Pick the tags shown in your recruitment screen - up to {max}. Combinations are ranked by guaranteed minimum rarity - the best worst case first. Six-star operators only appear in combinations that include \"Top Operator\".",
    "tools.recruit.options": "Options",
    "tools.recruit.options.includeRobots": "Include robots",
    "tools.recruit.options.includeThreeStars": "Include 3★ operators",
    "tools.recruit.options.includeTwoStars": "Include 2★ operators",
    "tools.recruit.options.layout": "Layout",
    "tools.recruit.options.layout.compact": "Compact",
    "tools.recruit.options.layout.detailed": "Detailed",
    "tools.recruit.options.roster.signIn": "Sign in to sync your roster",
    "tools.recruit.options.showNextUpgrade": "Show next potential",
    "tools.recruit.options.showPotentials": "Show my potentials",
    "tools.recruit.options.sort": "Sort operators",
    "tools.recruit.options.sort.commonFirst": "Most common first",
    "tools.recruit.options.sort.placeholder": "Sort",
    "tools.recruit.options.sort.potentialAsc": "Lowest potential first",
    "tools.recruit.options.sort.rarityDesc": "Highest rarity first",
    "tools.recruit.result.guaranteed": "Guaranteed {rarity}★",
    "tools.recruit.result.min": "Min",
    "tools.recruit.result.minTitle": "Guaranteed minimum: {floor}",
    "tools.recruit.result.nextPotential": "Next potential:",
    "tools.recruit.result.noTags": "No tags",
    "tools.recruit.result.potentialAlt": "Potential {rank}",
    "tools.recruit.result.robotFloor": "Robot",
    "tools.recruit.result.starFloor": "{rarity}★",
    "tools.recruit.result.tags": "Tags",
    "tools.recruit.result.upgrade.maxed": "Maxed",
    "tools.recruit.result.upgrade.stat.ATK": "ATK {value}",
    "tools.recruit.result.upgrade.stat.ATTACK_SPEED": "ASPD {value}",
    "tools.recruit.result.upgrade.stat.COST": "DP cost {value}",
    "tools.recruit.result.upgrade.stat.DEF": "DEF {value}",
    "tools.recruit.result.upgrade.stat.MAGIC_RESISTANCE": "RES {value}",
    "tools.recruit.result.upgrade.stat.MAX_HP": "HP {value}",
    "tools.recruit.result.upgrade.stat.RESPAWN_TIME": "Redeploy {value}s",
    "tools.recruit.result.upgrade.talent": "Talent {n}",
    "tools.recruit.result.upgrade.talentOnly": "Talent",
    "tools.recruit.result.upgrade.unowned": "Not owned",
    "tools.recruit.selected": "Selected",
    "tools.recruit.selected.comboCount": "{count, plural, one {# combo} other {# combos}}",
    "tools.recruit.selected.remove": "Remove {tag}",
    "tools.recruit.selected.reset": "Reset",
    "tools.recruit.tags": "Tags",
    "tools.recruit.tags.count": "({selected}/{max})",
    "tools.recruit.title": "Recruitment Calculator",
    "tools.release.anchor.title": "Released on CN the day {event} started; 96% of such skins reach EN with their event",
    "tools.release.anchor.with": "with {event}",
    "tools.release.auto.appellation": "codename",
    "tools.release.auto.appellation.title": "The Latin name the game ships with it",
    "tools.release.auto.memory": "matched",
    "tools.release.auto.memory.title": "Same name under an id both servers share, the EN name of this event's original run, or the EN series name with this edition's numeral",
    "tools.release.auto.override": "entered",
    "tools.release.auto.override.title": "An English name entered on this row's override",
    "tools.release.badge.announced": "Announced",
    "tools.release.badge.confirmed": "Confirmed",
    "tools.release.badge.estimated": "Estimated",
    "tools.release.badge.independent": "EN schedules separately",
    "tools.release.badge.independent.title": "EN schedules this banner kind on its own calendar; the CN date says nothing about the EN date.",
    "tools.release.badge.noEstimate": "No estimate",
    "tools.release.badge.overdue": "Due now, not in EN yet",
    "tools.release.badge.overdue.title": "The estimate has passed and EN has not run it yet.",
    "tools.release.badge.overdue.was": "est. {date}",
    "tools.release.badge.overrideTitle": "{source}: {note}",
    "tools.release.badge.per": "per {source}",
    "tools.release.badge.range": "{lo} to {hi}",
    "tools.release.badge.returning": "Returning players only",
    "tools.release.badge.returning.title": "Offered only to players returning after a long absence. Each one gets their own window, so there is no calendar date.",
    "tools.release.badge.unlisted": "Not in EN's shop",
    "tools.release.badge.unlisted.title": "EN moved past this sale without listing it in the outfit shop.",
    "tools.release.banners.align.anchor": "matched by event window (heuristic)",
    "tools.release.banners.align.content": "matched by rate-ups",
    "tools.release.banners.cn": "CN",
    "tools.release.banners.count": "{shown} of {total}",
    "tools.release.banners.empty.filtered": "Every banner is filtered out. Turn on Show past.",
    "tools.release.banners.empty.none": "The backend returned no CN pools.",
    "tools.release.banners.empty.title": "No banners",
    "tools.release.banners.eventArt": "Event art: {event}",
    "tools.release.banners.faceStrip.title": "{banner}: rate-up operators",
    "tools.release.banners.independence": "EN schedules these itself: {list}. Their rows say so unless the rate-ups match a known EN pool.",
    "tools.release.banners.independence.item": "{type} ({rate}% of {count} events)",
    "tools.release.banners.independence.title": "Measured per rule type: how often CN and EN run a different number of pools of that type under the same event. At half or more, the type is EN-scheduled and gets no estimate.",
    "tools.release.banners.probablyWith": "probably with {event}",
    "tools.release.banners.roster.debut": "Debut, from the ledger",
    "tools.release.banners.roster.enRateUps": "EN rate-ups",
    "tools.release.banners.roster.entered": "Rate-ups (entered)",
    "tools.release.banners.roster.entered.title": "Rate-ups entered on this banner's override row; the CN client carries no roster for this banner kind",
    "tools.release.banners.roster.rateUps": "Rate-ups",
    "tools.release.banners.rosterNote": "Standard banners carry no roster in CN data; rows without operators are real banners with unknown rate-ups.",
    "tools.release.banners.showPast": "Show past",
    "tools.release.banners.with": "with {event}",
    "tools.release.breadcrumb.tools": "Tools",
    "tools.release.calendar.empty.desc": "The backend returned no rows with an EN date.",
    "tools.release.calendar.empty.title": "Nothing dated",
    "tools.release.calendar.more": "+{count} more",
    "tools.release.calendar.next": "Next month",
    "tools.release.calendar.pillTitle": "{name}\n{dates}",
    "tools.release.calendar.prev": "Previous month",
    "tools.release.calendar.today": "Today",
    "tools.release.card.add": "Add {operator}: {skin}",
    "tools.release.card.inspect": "Inspect {skin}",
    "tools.release.card.obtain.code": "Code",
    "tools.release.card.obtain.eventGift": "Gift",
    "tools.release.card.obtain.eventReward": "Event",
    "tools.release.card.obtain.is": "IS",
    "tools.release.card.obtain.pack": "Pack",
    "tools.release.card.obtain.quest": "Quest",
    "tools.release.card.obtain.ra": "RA",
    "tools.release.card.price.none": "{obtain}: no Originite Prime",
    "tools.release.card.price.notSold": "Not sold",
    "tools.release.card.price.store": "{price} Originite Prime in the Outfit Store",
    "tools.release.card.remove": "Remove {operator}: {skin}",
    "tools.release.card.selected": "Selected",
    "tools.release.card.title": "{operator}: {skin}",
    "tools.release.controls.dotLegend": "Filled dot: confirmed. Hollow dot: estimated.",
    "tools.release.controls.stageOnly": "Stage events only",
    "tools.release.dateRange": "{start} to {end}",
    "tools.release.detail.close": "Close",
    "tools.release.detail.cn": "CN",
    "tools.release.detail.cnRelisted": "CN re-listed",
    "tools.release.detail.reviewOutfits": "{count} outfits at least two years old, every brand",
    "tools.release.detail.skinCount": "{count, plural, one {# skin} other {# skins}}",
    "tools.release.events.cn": "CN",
    "tools.release.events.count": "{shown} of {total}",
    "tools.release.events.empty.filtered": "Every event is filtered out. Turn on Show past or turn off Stage events only.",
    "tools.release.events.empty.none": "The backend returned no CN activities.",
    "tools.release.events.empty.title": "No events",
    "tools.release.events.shop": "Event shop",
    "tools.release.events.shop.buyEverything": "Buy everything",
    "tools.release.events.shop.goodCount": " ×{count}",
    "tools.release.events.shop.groupCount": "· {count}",
    "tools.release.events.shop.limitedGoods": "· {count} limited goods",
    "tools.release.events.shop.meta": "{name} · {server} {dates}",
    "tools.release.events.shop.missions": "Points awarded by clearing missions",
    "tools.release.events.shop.missionsValue": "-{count}",
    "tools.release.events.shop.noShop": "Missions pay {count} tokens. The shop is fetched from the game server once it opens on a server this site has an account on.",
    "tools.release.events.shop.sanityNote": "Upper bound: first-clear token rewards are not in the data.",
    "tools.release.events.shop.stock": " × {count}",
    "tools.release.events.shop.toFarm": "To farm",
    "tools.release.events.shop.toFarmValue": "{sanity} sanity",
    "tools.release.events.shop.unlimited": "Unlimited",
    "tools.release.events.shop.unlimitedNote": "· not in the total, {token} left over goes here",
    "tools.release.events.showPast": "Show past",
    "tools.release.events.stageOnly": "Stage events only",
    "tools.release.farm.ap": "{ap} AP",
    "tools.release.farm.dropTitle": "{item}: {rate}",
    "tools.release.farm.stageTitle": "{code}: {ap} sanity",
    "tools.release.kind.banner": "Banners",
    "tools.release.kind.event": "Events",
    "tools.release.kind.rerun": "Skin reruns",
    "tools.release.kind.review": "Fashion Reviews",
    "tools.release.kind.skin": "New skins",
    "tools.release.loadFailed": "Failed to load.",
    "tools.release.model.aprilFools": "April Fools",
    "tools.release.model.backtest": ", backtest median abs error {days} over {count}, band hit rate {rate}",
    "tools.release.model.days": "{days} d",
    "tools.release.model.disclosure": "How are these estimates calculated?",
    "tools.release.model.empty": "Lag model: no EN releases in the window yet, so nothing is estimated.",
    "tools.release.model.median": "Lag model: recency-weighted median {days} over the last {count} EN releases (p25 {p25}, p75 {p75})",
    "tools.release.model.yearly": "{types}: {days} over {count}, a year rather than a season.",
    "tools.release.occ.almost": "almost always",
    "tools.release.occ.always": "guaranteed",
    "tools.release.occ.often": "often",
    "tools.release.occ.rarely": "rare",
    "tools.release.occ.sometimes": "sometimes",
    "tools.release.occ.usual": "usual",
    "tools.release.override.button.add": "Override release date for {name}",
    "tools.release.override.button.addTitle": "Override release date",
    "tools.release.override.button.edit": "Edit override for {name}",
    "tools.release.override.button.editTitle": "Edit override",
    "tools.release.override.cancel": "Cancel",
    "tools.release.override.current.confirmed": "Confirmed by EN gamedata for {date}.",
    "tools.release.override.current.confirmedNote": "EN gamedata already confirms this date; an override is ignored while the sighting exists.",
    "tools.release.override.current.estimated": "Currently estimated for {date} ({lo} to {hi}).",
    "tools.release.override.current.none": "No EN date is shown for this row yet.",
    "tools.release.override.current.override": "Currently announced for {date}, per {source}.",
    "tools.release.override.err.cnIdRequired": "Enter the CN id.",
    "tools.release.override.err.endBeforeStart": "The end must come after the start.",
    "tools.release.override.err.endInvalid": "Enter a full date and time, or leave it empty.",
    "tools.release.override.err.startInvalid": "Enter a full date and time.",
    "tools.release.override.err.startRequired": "Enter the EN start.",
    "tools.release.override.field.cnId": "CN id",
    "tools.release.override.field.cnIdHint.activity": "The activity id, e.g. act42sre.",
    "tools.release.override.field.cnIdHint.pool": "The gacha pool id.",
    "tools.release.override.field.cnIdHint.review": "When the CN edition started, in unix seconds.",
    "tools.release.override.field.cnIdHint.skin": "The skin id.",
    "tools.release.override.field.enEnd": "EN end (UTC, optional)",
    "tools.release.override.field.enEndHint": "Leave empty if the close date is not announced.",
    "tools.release.override.field.enId": "EN id (optional)",
    "tools.release.override.field.enIdHint": "The id EN uses, if known.",
    "tools.release.override.field.enName": "EN name (optional)",
    "tools.release.override.field.enNameHint": "The announced English name, if any.",
    "tools.release.override.field.enStart": "EN start (UTC)",
    "tools.release.override.field.enStartHint": "When it opens on EN, in UTC.",
    "tools.release.override.field.kind": "Kind",
    "tools.release.override.field.note": "Note (optional)",
    "tools.release.override.field.source": "Source (optional)",
    "tools.release.override.field.sourceHint": "Where the date comes from, e.g. an EN announcement.",
    "tools.release.override.kind.activity": "Event",
    "tools.release.override.kind.pool": "Banner",
    "tools.release.override.kind.review": "Fashion Review",
    "tools.release.override.kind.skin": "Outfit",
    "tools.release.override.remove": "Remove override",
    "tools.release.override.remove.body": "The row goes back to its estimate / gamedata date.",
    "tools.release.override.remove.title": "Remove this override?",
    "tools.release.override.replacesExisting": "An override already exists for this item. Saving replaces it.",
    "tools.release.override.reviewItem": "Fashion Review, CN {date}",
    "tools.release.override.save": "Save",
    "tools.release.override.subtitle": "{name} · {kind}",
    "tools.release.override.title.add": "Override release date",
    "tools.release.override.title.edit": "Edit override",
    "tools.release.override.toast.removeFailed": "Couldn't remove the override",
    "tools.release.override.toast.removed": "Override removed",
    "tools.release.override.toast.removedDesc": "{name} is back on its estimate / gamedata date.",
    "tools.release.override.toast.saveFailed": "Couldn't save the override",
    "tools.release.override.toast.saved": "Override saved",
    "tools.release.override.toast.savedDesc": "{name} now opens on EN {date}.",
    "tools.release.overrides.add": "Add override",
    "tools.release.overrides.col.actions": "Actions",
    "tools.release.overrides.col.end": "EN end",
    "tools.release.overrides.col.item": "Item",
    "tools.release.overrides.col.kind": "Kind",
    "tools.release.overrides.col.note": "Note",
    "tools.release.overrides.col.source": "Source",
    "tools.release.overrides.col.start": "EN start",
    "tools.release.overrides.col.updated": "Updated",
    "tools.release.overrides.description": "Hand-set EN dates. A date in the EN gamedata still wins over any of these.",
    "tools.release.overrides.edit": "Edit override for {name}",
    "tools.release.overrides.empty.description": "Every row shows its estimate or its EN gamedata date. Add one when EN announces a date early.",
    "tools.release.overrides.empty.title": "No overrides",
    "tools.release.overrides.none": "None",
    "tools.release.overrides.open": "Overrides",
    "tools.release.overrides.openLabel": "Overrides ({count})",
    "tools.release.overrides.remove": "Remove override for {name}",
    "tools.release.overrides.title": "Release date overrides",
    "tools.release.plan.storeSale": "Store sale",
    "tools.release.planner.autosave": "Saved to your account as you go.",
    "tools.release.planner.blurb": "First-clear Originite Prime included.",
    "tools.release.planner.card.estimated": " est.",
    "tools.release.planner.card.outfits": "{count, plural, one { · # outfit} other { · # outfits}}",
    "tools.release.planner.card.overdue": " · due now",
    "tools.release.planner.card.picked": ", {count} picked",
    "tools.release.planner.card.unlisted": "{date} on CN, not in EN's shop",
    "tools.release.planner.empty.desc": "No upcoming EN event or store sale has a date. Turn on Show past to see recent ones.",
    "tools.release.planner.empty.title": "Nothing ahead",
    "tools.release.planner.fromAccount": "from your account",
    "tools.release.planner.fromAccountSynced": ", synced {date}",
    "tools.release.planner.group.new": "New",
    "tools.release.planner.group.rerun": "Rerun",
    "tools.release.planner.hideOwned": "Hide owned",
    "tools.release.planner.initial": "Initial primes",
    "tools.release.planner.noOutfit": "No outfit arrives with this one.",
    "tools.release.planner.notSynced": "not synced yet: ",
    "tools.release.planner.ownedHidden": "{count, plural, one {# outfit you already own is hidden.} other {# outfits you already own are hidden.}}",
    "tools.release.planner.reset": "Reset the plan",
    "tools.release.planner.saved": "Last saved to your account: {date}",
    "tools.release.planner.saving": "Saving to your account…",
    "tools.release.planner.showEvents": "Show events",
    "tools.release.planner.showPast": "Show past",
    "tools.release.planner.showSelected": "Show the selected event",
    "tools.release.planner.showSummary": "Show summary",
    "tools.release.planner.signedOut": "Sign in to keep the plan on your account; until then it stays in this browser.",
    "tools.release.planner.stages": "Event stages",
    "tools.release.planner.stages.claimed": "{count} claimed",
    "tools.release.planner.stages.clearAll": "Clear all",
    "tools.release.planner.stages.cm": " CM",
    "tools.release.planner.stages.ended": "Event ended: its stages pay again only if it reruns",
    "tools.release.planner.stages.income": "{income} of {potential}",
    "tools.release.planner.stages.missed": "{count} missed",
    "tools.release.planner.stages.multiplier": " ×{count}",
    "tools.release.planner.stages.open": "{count} open",
    "tools.release.planner.stages.resetAccount": "Back to what your account shows",
    "tools.release.planner.stages.resetAll": "Reset all",
    "tools.release.planner.stages.resetDefaults": "Back to the defaults",
    "tools.release.planner.stages.selectAll": "Select all",
    "tools.release.planner.stages.tallyJoin": " · ",
    "tools.release.planner.stages.unknown": "{count} no record",
    "tools.release.planner.stages.unknownTitle": "{count, plural, one {# stage has} other {# stages have}} no record on your account; tick any you did not clear.",
    "tools.release.planner.stages.unrated": "{count} cleared, rating not on record",
    "tools.release.planner.status.claimed": "Three-starred on your account: its Originite Prime is already claimed",
    "tools.release.planner.status.ended": "The event has ended: this stage's Originite Prime is out of reach until a rerun",
    "tools.release.planner.status.open": "Your account shows this short of three stars: its Originite Prime is still available",
    "tools.release.planner.status.unrated": "Cleared on your account, star rating not on record",
    "tools.release.planner.summary.empty": "No outfits picked yet. Open an event on the left and pick the ones you want.",
    "tools.release.planner.summary.end": "end",
    "tools.release.planner.summary.remove": "Remove",
    "tools.release.planner.summary.short": "Short by {count} at {event} ({date}).",
    "tools.release.planner.summary.start": "start",
    "tools.release.planner.summary.title": "Selection summary",
    "tools.release.planner.summaryButton": "Selection summary",
    "tools.release.planner.syncFailed": " (failed)",
    "tools.release.planner.syncNow": "sync my account",
    "tools.release.planner.syncing": "syncing…",
    "tools.release.planner.tag.event": "Event",
    "tools.release.planner.tag.listing": "Store sale",
    "tools.release.planner.tag.rerun": "Rerun",
    "tools.release.planner.tag.review": "Fashion Review",
    "tools.release.planner.useAccount": "use my account's {count}",
    "tools.release.popup.close": "Back to the planner",
    "tools.release.popup.loading": "Loading the skin record",
    "tools.release.popup.missing": "This skin is not in either client's skin table.",
    "tools.release.popup.tileAlt": "{operator}, {skin}",
    "tools.release.primes.balance": "Balance",
    "tools.release.primes.expenses": "Expenses",
    "tools.release.primes.income": "Income",
    "tools.release.pulls.a11y.chartOdds": "Chance of the rate-up operator against the number of pulls, from 0 to {max} pulls.",
    "tools.release.pulls.a11y.chartSim": "How many pulls each simulated run needed. Median {median}, 90th percentile {p90}.",
    "tools.release.pulls.a11y.horizon": "Projection horizon",
    "tools.release.pulls.banner.ATTAIN": "Special Headhunting",
    "tools.release.pulls.banner.CLASSIC": "Kernel Locating",
    "tools.release.pulls.banner.DOUBLE": "Standard, two rate-ups",
    "tools.release.pulls.banner.LIMITED": "Limited",
    "tools.release.pulls.banner.LINKAGE": "Collaboration",
    "tools.release.pulls.banner.NORMAL": "Standard",
    "tools.release.pulls.banner.SINGLE": "Standard, one rate-up",
    "tools.release.pulls.banners.empty": "No upcoming banner has a resolved EN date yet.",
    "tools.release.pulls.banners.inferred": "Rate-up split inferred from the banner type; this pool has no published detail yet.",
    "tools.release.pulls.banners.sparkMet": "Reaches the {spark}-pull bonus copy",
    "tools.release.pulls.chart.aria": "Projected pulls from today through {date}.",
    "tools.release.pulls.chart.ariaPlanned": "Projected pulls from today through {date}, and the balance left after the {count, plural, one {# banner} other {# banners}} your plan commits to.",
    "tools.release.pulls.chart.net": "After your plan",
    "tools.release.pulls.chart.pulls": "Pulls",
    "tools.release.pulls.chart.title": "Pulls over time",
    "tools.release.pulls.chart.withOriginite": "With Originite Prime",
    "tools.release.pulls.income.annihilation": "Annihilation per week",
    "tools.release.pulls.income.extra": "Extra per day",
    "tools.release.pulls.income.extraHint": "Anything not already counted above: event rewards, mail, login bonuses. Events hand out Orundum, but this site has no data for how much, so nothing is assumed and you add it here yourself.",
    "tools.release.pulls.income.freePulls": "Include free pulls from banners",
    "tools.release.pulls.income.freePullsHint": "A Limited banner gives a free ten-roll plus one free pull a day, which is 24 over a 14-day run. A collab gives two ten-rolls. These expire with the banner, so they are counted on it rather than banked.",
    "tools.release.pulls.income.goldCertHint": "The monthly ladder is 38 permits for 258 certs, bought cheapest rung first. There is no official earn rate, so this is your own estimate; 1.5 a day suits a year-old account.",
    "tools.release.pulls.income.goldCertShop": "Buy permits with gold certs",
    "tools.release.pulls.income.goldCertShop.certs": "gold certs",
    "tools.release.pulls.income.goldCertShop.permits": "permits",
    "tools.release.pulls.income.goldCertShop.rich": "Buy {permits} with {certs}",
    "tools.release.pulls.income.goldCerts": "Gold certs per day",
    "tools.release.pulls.income.greenCertHint": "Phase 1 sells 2 permits at 240 certs each and 600 Orundum at 240 certs, which are worth exactly the same. Phase 2 adds 2 permits at 450 each, but only opens after phase 1 is bought out entirely at 1490 certs, so weekly missions alone will not reach it.",
    "tools.release.pulls.income.greenCertShop": "Green cert shop",
    "tools.release.pulls.income.greenCerts": "Green certs per week",
    "tools.release.pulls.income.greenShop.off": "Not buying",
    "tools.release.pulls.income.greenShop.phase1": "Phase 1 only",
    "tools.release.pulls.income.greenShop.phase2": "Phase 1 and 2",
    "tools.release.pulls.income.horizon": "Project ahead",
    "tools.release.pulls.income.horizonDays": "{count, plural, one {# day} other {# days}}",
    "tools.release.pulls.income.monthlyCard": "Monthly card",
    "tools.release.pulls.income.originiteShort": "Your outfit picks need {needed} Originite Prime and you will only have {available}.",
    "tools.release.pulls.income.skinOriginiteHint": "{count, plural, =0 {No outfits picked in the Planner tab.} one {# outfit picked in the Planner tab costs {op} Originite Prime, which is set aside before any is converted to pulls.} other {# outfits picked in the Planner tab cost {op} Originite Prime, which is set aside before any is converted to pulls.}}",
    "tools.release.pulls.income.skinUnpriced": "{count, plural, one {# pick has no price yet, so this is an underestimate.} other {# picks have no price yet, so this is an underestimate.}}",
    "tools.release.pulls.income.spendOriginite": "Convert Originite Prime",
    "tools.release.pulls.income.store": "Monthly store",
    "tools.release.pulls.income.store.hint": "The certificate shop restocks every month with Orundum and a Headhunting Permit bought with Distinction Certificates. Counted at full monthly value.",
    "tools.release.pulls.income.store.hint.aria": "About the monthly store",
    "tools.release.pulls.income.title": "What you earn",
    "tools.release.pulls.income.weekly": "{count, plural, one {# pull} other {# pulls}} per week",
    "tools.release.pulls.modelNote": "Rates come from the game's own banner data: a 2% base 6★ rate, +2% per roll after 50 without one, and the rate-up split declared for each banner type. Recurring income is modelled; one-off event Orundum is not, so add it under Extra per day.",
    "tools.release.pulls.odds.any": "Any rate-up",
    "tools.release.pulls.odds.atPulls": "{count, plural, one {# pull} other {# pulls}}",
    "tools.release.pulls.odds.banner": "Banner type",
    "tools.release.pulls.odds.both": "Both rate-ups",
    "tools.release.pulls.odds.copies": "Copies of one rate-up",
    "tools.release.pulls.odds.copiesRow": "{count, plural, =0 {None} one {# copy} other {# copies}}",
    "tools.release.pulls.odds.copiesTail": "{count, plural, other {# or more}}",
    "tools.release.pulls.odds.expectedSix": "Expected 6★",
    "tools.release.pulls.odds.fromBudget": "Use my projection",
    "tools.release.pulls.odds.method": "Exact, not simulated: the full distribution over pity states is carried forward one roll at a time.",
    "tools.release.pulls.odds.pulls": "Pulls",
    "tools.release.pulls.odds.specific": "A specific rate-up",
    "tools.release.pulls.odds.title": "Odds calculator",
    "tools.release.pulls.plan.allocate": "Pulls to spend",
    "tools.release.pulls.plan.availableHere": "available",
    "tools.release.pulls.plan.clear": "Clear",
    "tools.release.pulls.plan.clearTitle": "Clear this banner: the committed pulls and the potentials picked on it.",
    "tools.release.pulls.plan.committed": "Committed",
    "tools.release.pulls.plan.estimated": "Pull targets",
    "tools.release.pulls.plan.estimatedDetail": "{mean} on average, {p90} if unlucky",
    "tools.release.pulls.plan.estimatedDetailOpen": "{mean}+ on average, more than {horizon} if unlucky",
    "tools.release.pulls.plan.estimatedTail": "{percent} of runs need more than {horizon}",
    "tools.release.pulls.plan.export": "Export CSV",
    "tools.release.pulls.plan.freeOnBanner": "+{count} free",
    "tools.release.pulls.plan.goal.any": "Any rate-up",
    "tools.release.pulls.plan.goal.both": "Both rate-ups",
    "tools.release.pulls.plan.goal.bothMulti": "One specific, plus any other",
    "tools.release.pulls.plan.goal.maxPot": "Six of a specific rate-up",
    "tools.release.pulls.plan.goal.specific": "A specific rate-up",
    "tools.release.pulls.plan.goalPick": "Set pulls to {count} for {goal}",
    "tools.release.pulls.plan.goalValue": "~{count}",
    "tools.release.pulls.plan.guarantee": "Guarantee {count}",
    "tools.release.pulls.plan.guaranteeTitle": "Commit enough to reach the {at}-pull guarantee. This banner gives {free} free pulls, so {count} of your own get you there.",
    "tools.release.pulls.plan.guaranteeTitlePlain": "Commit enough to reach the {at}-pull guarantee.",
    "tools.release.pulls.plan.inferredCount": "{count, plural, one {# banner has} other {# banners have}} no published rate-up detail yet, so the split is inferred from the banner type.",
    "tools.release.pulls.plan.intro": "Commit pulls to the banners you want. Everything you spend comes out of the same pool, so a banner you save for is one you can still afford later.",
    "tools.release.pulls.plan.max": "Spend everything",
    "tools.release.pulls.plan.maxLabel": "All {count}",
    "tools.release.pulls.plan.maxTitle": "Commit every pull banked when this banner opens: {count}.",
    "tools.release.pulls.plan.noRateUp": "No rate-up on this banner, so there is no operator to aim for. The first 6★ it gives is one you do not own.",
    "tools.release.pulls.plan.overrun": "{count, plural, one {# banner} other {# banners}} over budget",
    "tools.release.pulls.plan.pickHint": "Set the potential you want on each operator, and the pulls follow. P6 is maximum potential.",
    "tools.release.pulls.plan.planFits": "{available} available",
    "tools.release.pulls.plan.planShort": "{short} short, you will only have {available}",
    "tools.release.pulls.plan.plannedHere": "planned",
    "tools.release.pulls.plan.potLess": "One fewer copy of {operator}",
    "tools.release.pulls.plan.potMore": "One more copy of {operator}",
    "tools.release.pulls.plan.potNone": "None",
    "tools.release.pulls.plan.potValue": "P{count}",
    "tools.release.pulls.plan.remaining": "Left over",
    "tools.release.pulls.plan.reset": "Clear plan",
    "tools.release.pulls.plan.setTo": "Presets",
    "tools.release.pulls.plan.spark": "Spark {count}",
    "tools.release.pulls.plan.sparkTitle": "Commit enough to reach {spark} pulls, where the limited operator comes as a free bonus copy. This banner gives {free} free pulls, so {count} of your own get you there.",
    "tools.release.pulls.plan.sparkTitlePlain": "Commit enough to reach {spark} pulls, where the limited operator comes as a free bonus copy.",
    "tools.release.pulls.plan.sumCovers": "{total} covers ~{goal}",
    "tools.release.pulls.plan.sumFreeCovers": "{spent} + {free} free = {total}, covers ~{goal}",
    "tools.release.pulls.plan.sumFreeGap": "{spent} + {free} free = {total}, {gap} under ~{goal}",
    "tools.release.pulls.plan.sumGap": "{total}, {gap} under ~{goal}",
    "tools.release.pulls.plan.title": "Your plan",
    "tools.release.pulls.plan.untouched": "Nothing committed yet. Use Max or Spark on a banner to start planning.",
    "tools.release.pulls.plan.yourGoal": "Your goal",
    "tools.release.pulls.resources.originite": "Originite Prime",
    "tools.release.pulls.resources.orundum": "Orundum",
    "tools.release.pulls.resources.permits": "Permits",
    "tools.release.pulls.resources.pityKernel": "Kernel pity",
    "tools.release.pulls.resources.pityKernelHint": "Pulls since your last 6★ on Kernel banners, a separate counter from Standard. Every other banner keeps its own count and starts you at zero.",
    "tools.release.pulls.resources.pityKernelHint.aria": "About the Kernel pity counter",
    "tools.release.pulls.resources.pityManual": "Type the two pity counts in yourself: the game does not report them, so they are the figures your account cannot fill.",
    "tools.release.pulls.resources.pityStandard": "Standard pity",
    "tools.release.pulls.resources.pityStandardHint": "Pulls since your last 6★ on Standard banners. It carries from one Standard banner to the next and nowhere else.",
    "tools.release.pulls.resources.pityStandardHint.aria": "About the Standard pity counter",
    "tools.release.pulls.resources.resync": "Re-read my account from the game",
    "tools.release.pulls.resources.signedOut": "Sign in to fill these from your account.",
    "tools.release.pulls.resources.sync": "Use my account's data",
    "tools.release.pulls.resources.synced": "Filled from your last sync.",
    "tools.release.pulls.resources.tenPermits": "Ten-roll permits",
    "tools.release.pulls.resources.title": "What you have",
    "tools.release.pulls.rule.carry": "Shares a pity counter with other {scope} banners",
    "tools.release.pulls.rule.guarantee.attain": "The first 6★ is an operator you do not own",
    "tools.release.pulls.rule.guarantee.linkage": "The collab operator is handed over on pull {at, number}",
    "tools.release.pulls.rule.guarantee.linkageRepeat": "Every {at, number} pulls without the collab operator hand one over, and the count restarts after each copy",
    "tools.release.pulls.rule.guarantee.selection": "Past {first, plural, one {# pull} other {# pulls}} the next 6★ is forced on-rate, and past {second} it is the other one",
    "tools.release.pulls.rule.guarantee.selectionSingle": "Past {first, plural, one {# pull} other {# pulls}} without the rate-up, the next 6★ is the rate-up",
    "tools.release.pulls.rule.isolated": "Pity starts at zero and is cleared when the banner ends",
    "tools.release.pulls.rule.noRateUp": "No rate-up: no 6★ is boosted on this banner",
    "tools.release.pulls.rule.scope.kernel": "Kernel",
    "tools.release.pulls.rule.scope.standard": "Standard",
    "tools.release.pulls.rule.share": "{percent}% of 6★ pulls go to {count, plural, one {the rate-up} other {the # rate-ups}}",
    "tools.release.pulls.rule.sharePicked": "Every 6★ is one of the {count} operators you pick, {each}% each",
    "tools.release.pulls.rule.spark": "At {count, plural, one {# pull} other {# pulls}} the limited operator comes once more as a free bonus copy, without touching pity",
    "tools.release.pulls.sim.cost": "{count} Orundum",
    "tools.release.pulls.sim.desc": "Roll against the same model, with pity and guarantees carrying between clicks exactly as they do in game.",
    "tools.release.pulls.sim.distribution": "Across {runs} runs",
    "tools.release.pulls.sim.got": "Rate-up copies",
    "tools.release.pulls.sim.guaranteed": "Guaranteed",
    "tools.release.pulls.sim.median": "Median",
    "tools.release.pulls.sim.p90": "Unlucky (90th)",
    "tools.release.pulls.sim.pityNow": "Since last 6★",
    "tools.release.pulls.sim.pullOne": "Pull",
    "tools.release.pulls.sim.pullTen": "Pull 10",
    "tools.release.pulls.sim.rateUpChip": "Rate-up",
    "tools.release.pulls.sim.reset": "Reset",
    "tools.release.pulls.sim.spent": "Pulls spent",
    "tools.release.pulls.sim.target": "Copies wanted",
    "tools.release.pulls.sim.title": "Pull simulator",
    "tools.release.pulls.sim.withinBudget": "Within your {count, plural, one {# pull} other {# pulls}}",
    "tools.release.pulls.summary.free": "Free on banners",
    "tools.release.pulls.summary.free.hint": "Pulls the banners in this window hand out: a Limited banner's free ten-roll plus one a day, a collab's two ten-rolls. They expire with their banner, so they are counted on it rather than added to your bank.",
    "tools.release.pulls.summary.free.hint.aria": "About free pulls on banners",
    "tools.release.pulls.summary.horizon": "By {date}",
    "tools.release.pulls.summary.now": "Pulls now",
    "tools.release.pulls.summary.perWeek": "Earned per week",
    "tools.release.pulls.summary.withOriginite": "{count} with Originite Prime",
    "tools.release.rel.daysAgo": "{count, plural, one {# day ago} other {# days ago}}",
    "tools.release.rel.inDays": "{count, plural, one {in # day} other {in # days}}",
    "tools.release.rel.today": "today",
    "tools.release.rel.tomorrow": "tomorrow",
    "tools.release.rel.yesterday": "yesterday",
    "tools.release.retry": "Retry",
    "tools.release.review.yearGroup": "Year {gameYear} ({calendarYear})",
    "tools.release.sectionCount": "· {count}",
    "tools.release.shopKind.currency": "LMD and supplies",
    "tools.release.shopKind.exp": "EXP cards",
    "tools.release.shopKind.furniture": "Furniture",
    "tools.release.shopKind.material": "Materials",
    "tools.release.shopKind.other": "Other",
    "tools.release.shopKind.outfit": "Outfits",
    "tools.release.shopKind.ticket": "Tickets",
    "tools.release.tab.banners": "Banners",
    "tools.release.tab.calendar": "Calendar",
    "tools.release.tab.events": "Events",
    "tools.release.tab.planner": "Planner",
    "tools.release.tab.pulls": "Pulls planner",
    "tools.release.tag.arcade": "Arcade",
    "tools.release.tag.autoChess": "Auto-chess",
    "tools.release.tag.banner.attain": "Special Headhunting",
    "tools.release.tag.banner.backflow": "Returning Headhunting",
    "tools.release.tag.banner.classic": "Kernel",
    "tools.release.tag.banner.classicAttain": "Kernel Special Headhunting",
    "tools.release.tag.banner.classicDouble": "Kernel double rate-up",
    "tools.release.tag.banner.double": "Double rate-up",
    "tools.release.tag.banner.fesClassic": "Anniversary Kernel",
    "tools.release.tag.banner.limited": "Limited",
    "tools.release.tag.banner.linkage": "Collaboration",
    "tools.release.tag.banner.normal": "Standard",
    "tools.release.tag.banner.single": "Single rate-up",
    "tools.release.tag.bossRush": "Boss Rush",
    "tools.release.tag.campaign": "Campaign",
    "tools.release.tag.collection": "Collection",
    "tools.release.tag.contingency": "Contingency Contract",
    "tools.release.tag.enemyDuel": "Enemy Duel",
    "tools.release.tag.fashionReview": "Fashion review",
    "tools.release.tag.intermezzi": "Intermezzi",
    "tools.release.tag.mainStory": "Main story",
    "tools.release.tag.miniStory": "Mini story",
    "tools.release.tag.minigame": "Minigame",
    "tools.release.tag.newSkins": "New skins",
    "tools.release.tag.rerun": "Rerun",
    "tools.release.tag.rogueLike": "Integrated Strategies",
    "tools.release.tag.sandbox": "Reclamation Algorithm",
    "tools.release.tag.sideStory": "Side story",
    "tools.release.tag.signIn": "Sign-in",
    "tools.release.tag.vectorBreak": "Vector Breakthrough",
    "tools.release.tag.vignette": "Vignette",
    "tools.release.title": "Release Planner",
    "tools.squad.analysis.chip.support": "Support",
    "tools.squad.analysis.chip.title": "{name}: {why}",
    "tools.squad.analysis.collapse": "Hide {panel}",
    "tools.squad.analysis.coverage.filter": "Show",
    "tools.squad.analysis.coverage.filter.all": "All",
    "tools.squad.analysis.coverage.filter.covered": "Covered",
    "tools.squad.analysis.coverage.filter.missing": "Not in squad",
    "tools.squad.analysis.coverage.filter.stage": "This stage",
    "tools.squad.analysis.coverage.group.control": "Control",
    "tools.squad.analysis.coverage.group.damage": "Damage",
    "tools.squad.analysis.coverage.group.getting_on_the_field": "Getting on the field",
    "tools.squad.analysis.coverage.group.holding_the_line": "Holding the line",
    "tools.squad.analysis.coverage.group.utility": "Utility",
    "tools.squad.analysis.coverage.needed": "Needed here",
    "tools.squad.analysis.coverage.noMatch": "Nothing to show with this filter.",
    "tools.squad.analysis.coverage.none": "None in this squad",
    "tools.squad.analysis.coverage.question": "What can this squad handle?",
    "tools.squad.analysis.coverage.row.anti_air": "Anti-air",
    "tools.squad.analysis.coverage.row.anti_air.hint": "Attacks aerial enemies first",
    "tools.squad.analysis.coverage.row.arts": "Arts damage",
    "tools.squad.analysis.coverage.row.block3": "Blocks 3 or more",
    "tools.squad.analysis.coverage.row.block3.hint": "Lane holders",
    "tools.squad.analysis.coverage.row.cc": "Slow or crowd control",
    "tools.squad.analysis.coverage.row.debuff": "Debuff",
    "tools.squad.analysis.coverage.row.debuff.hint": "Weakens enemies",
    "tools.squad.analysis.coverage.row.dp_gen": "DP generation",
    "tools.squad.analysis.coverage.row.dp_gen.hint": "Skills or traits that make DP",
    "tools.squad.analysis.coverage.row.fast_redeploy": "Fast redeploy",
    "tools.squad.analysis.coverage.row.fast_redeploy.hint": "Redeploy in 25s or less",
    "tools.squad.analysis.coverage.row.heal_area": "Area healing",
    "tools.squad.analysis.coverage.row.heal_area.hint": "Heals several at once",
    "tools.squad.analysis.coverage.row.heal_elemental": "Elemental healing",
    "tools.squad.analysis.coverage.row.heal_elemental.hint": "Treats Elemental Injury",
    "tools.squad.analysis.coverage.row.heal_single": "Single-target healing",
    "tools.squad.analysis.coverage.row.invisible": "Reveals Invisible",
    "tools.squad.analysis.coverage.row.multi": "Hits several enemies",
    "tools.squad.analysis.coverage.row.multi.hint": "Area or multi-target",
    "tools.squad.analysis.coverage.row.openers": "Cheap openers",
    "tools.squad.analysis.coverage.row.openers.hint": "Cost at or under the starting DP",
    "tools.squad.analysis.coverage.row.physical": "Physical damage",
    "tools.squad.analysis.coverage.row.shift": "Shift",
    "tools.squad.analysis.coverage.row.shift.hint": "Push or pull",
    "tools.squad.analysis.coverage.row.summons": "Summons",
    "tools.squad.analysis.coverage.row.true_elemental": "True or Elemental damage",
    "tools.squad.analysis.coverage.threat": "{threat}, {count, plural, one {# enemy} other {# enemies}}",
    "tools.squad.analysis.coverage.title": "Coverage",
    "tools.squad.analysis.economy.cheapest": "Cheapest {count}",
    "tools.squad.analysis.economy.cheapest.none": "no deploy limit picked",
    "tools.squad.analysis.economy.cheapest.stage": "{code}'s deploy limit",
    "tools.squad.analysis.economy.cut.module": "Module {name} {amount}",
    "tools.squad.analysis.economy.cut.potential": "Potential {amount}",
    "tools.squad.analysis.economy.cut.squad": "{giver}, {name} {amount}",
    "tools.squad.analysis.economy.cut.talent": "Talent {name} {amount}",
    "tools.squad.analysis.economy.footer.page": "Pick a stage to use its own starting DP and deploy limit.",
    "tools.squad.analysis.economy.footer.stage": "Starting DP and the deploy limit are {code}'s. Drag the line or type to try another number.",
    "tools.squad.analysis.economy.footer.support": "The support seat's squad talents are not counted.",
    "tools.squad.analysis.economy.ladder": "After potential and squad cuts, cheapest first",
    "tools.squad.analysis.economy.ladder.drag": "Drag to change the starting DP",
    "tools.squad.analysis.economy.ladder.line": "Starting {dp}",
    "tools.squad.analysis.economy.ladder.noCuts": "No cuts",
    "tools.squad.analysis.economy.note.conditional": "{name}, {talent}: only works when its condition is met, so it is left out of the numbers.",
    "tools.squad.analysis.economy.note.cost_cut": "{name}'s {talent} is counted in the costs.",
    "tools.squad.analysis.economy.note.drain": "{name}'s trait spends {amount} DP while deployed.",
    "tools.squad.analysis.economy.note.first_deploy": "{name}, {talent}: works on the first deploy only, so it is left out of the numbers.",
    "tools.squad.analysis.economy.note.next_operator": "{name}, {talent}: works on whoever is deployed next, so it is left out of the numbers.",
    "tools.squad.analysis.economy.note.once_deployed": "{name}, {talent}: works once deployed, so it is left out of the numbers.",
    "tools.squad.analysis.economy.note.redeploy_cut": "{name}'s {talent} is counted in the redeploy times.",
    "tools.squad.analysis.economy.note.sp_bonus": "{name}'s {talent} is counted: +{amount} starting SP.",
    "tools.squad.analysis.economy.question": "Can it get onto the field?",
    "tools.squad.analysis.economy.redeploy": "Redeploy",
    "tools.squad.analysis.economy.redeploy.cut": "{name} {amount}",
    "tools.squad.analysis.economy.redeploy.noCut": "No squad cut",
    "tools.squad.analysis.economy.redeploy.one": "{value}s",
    "tools.squad.analysis.economy.redeploy.range": "{min} to {max}s",
    "tools.squad.analysis.economy.sources": "Sources",
    "tools.squad.analysis.economy.sources.auto": ", fires on its own",
    "tools.squad.analysis.economy.sources.empty": "No skill or trait in this squad makes DP.",
    "tools.squad.analysis.economy.sources.firstReady": ", first ready about {seconds}s in (SP {cost}, starts at {init})",
    "tools.squad.analysis.economy.sources.flat": "{amount} DP",
    "tools.squad.analysis.economy.sources.hint": "At each seat's build and chosen skill",
    "tools.squad.analysis.economy.sources.interval": "{amount} DP every {interval}s",
    "tools.squad.analysis.economy.sources.onAttack": ", charges on attacks",
    "tools.squad.analysis.economy.sources.overDuration": "{amount} DP over {duration}s",
    "tools.squad.analysis.economy.sources.perKill": "{amount} DP a kill",
    "tools.squad.analysis.economy.sources.perKillRefund": "{amount} DP a kill, full refund when retreated",
    "tools.squad.analysis.economy.sources.perKillShort": "per kill",
    "tools.squad.analysis.economy.sources.plus": "+{amount}",
    "tools.squad.analysis.economy.sources.who": "{name}, {source}",
    "tools.squad.analysis.economy.startDp": "Starting DP",
    "tools.squad.analysis.economy.startDp.bonus": "+{amount} from {name}",
    "tools.squad.analysis.economy.startDp.from": "From {code}",
    "tools.squad.analysis.economy.startDp.input": "Starting DP",
    "tools.squad.analysis.economy.startDp.less": "One less starting DP",
    "tools.squad.analysis.economy.startDp.more": "One more starting DP",
    "tools.squad.analysis.economy.startDp.page": "Set here",
    "tools.squad.analysis.economy.title": "Economy",
    "tools.squad.analysis.economy.total": "All {count}",
    "tools.squad.analysis.economy.total.caption": "to field everyone",
    "tools.squad.analysis.empty": "Put an operator in a seat to see this.",
    "tools.squad.analysis.error": "{panel} could not be worked out. It tries again on your next change.",
    "tools.squad.analysis.expand": "Show {panel}",
    "tools.squad.analysis.eyebrow": "Squad analysis",
    "tools.squad.analysis.loading": "Working it out",
    "tools.squad.analysis.readiness.elite": "Elite {n}",
    "tools.squad.analysis.readiness.flag.level": "Lv {value}. The other Elite {phase} seats sit around Lv {reference}.",
    "tools.squad.analysis.readiness.flag.moduleLocked": "The module unlocks at Elite {value} Lv {reference}.",
    "tools.squad.analysis.readiness.flag.promotion": "Elite {value}. The squad is mostly Elite {reference}.",
    "tools.squad.analysis.readiness.flag.skillLocked": "Skill {n} unlocks at Elite {value} Lv {reference}.",
    "tools.squad.analysis.readiness.flag.skillRankLocked": "This skill rank needs Elite {value} Lv {reference}.",
    "tools.squad.analysis.readiness.flag.supportLeftOut": "Borrowed at the lender's build. Left out of the comparison.",
    "tools.squad.analysis.readiness.footer": "Hover a row to find its seat. The ring is the level against that promotion's cap.",
    "tools.squad.analysis.readiness.level": "Lv {level}",
    "tools.squad.analysis.readiness.levelOf": "Lv {level} of {cap}",
    "tools.squad.analysis.readiness.levels": "Elite {n} levels",
    "tools.squad.analysis.readiness.levels.caption": "middle of the squad",
    "tools.squad.analysis.readiness.mastery": "At mastery 3",
    "tools.squad.analysis.readiness.mastery.caption": "of {count} chosen skills",
    "tools.squad.analysis.readiness.moduleRank": "R{level}",
    "tools.squad.analysis.readiness.modules": "Modules on",
    "tools.squad.analysis.readiness.modules.caption": "of {count} that have one",
    "tools.squad.analysis.readiness.noModule": "No module",
    "tools.squad.analysis.readiness.potential": "Potential {n}",
    "tools.squad.analysis.readiness.question": "Is it built evenly?",
    "tools.squad.analysis.readiness.skill": "Skill {n}, level {level}",
    "tools.squad.analysis.readiness.skillMastery": "Skill {n}, mastery {mastery}",
    "tools.squad.analysis.readiness.title": "Readiness",
    "tools.squad.analysis.readiness.usual": "Usual promotion",
    "tools.squad.analysis.readiness.usual.caption": "{count} of {seats}",
    "tools.squad.analysis.source.module": "Module, {name}",
    "tools.squad.analysis.source.skill": "S{n}, {name}",
    "tools.squad.analysis.source.stats": "Base stats",
    "tools.squad.analysis.source.tag": "Recruitment tag",
    "tools.squad.analysis.source.talent": "Talent, {name}",
    "tools.squad.analysis.source.trait": "Trait",
    "tools.squad.analysis.synergy.count.check": "{count} worth a look",
    "tools.squad.analysis.synergy.count.field": "{count} once deployed",
    "tools.squad.analysis.synergy.count.place": "{count} by placement",
    "tools.squad.analysis.synergy.count.squad": "{count} in the squad",
    "tools.squad.analysis.synergy.empty.check": "Nothing to flag here.",
    "tools.squad.analysis.synergy.empty.field": "Nothing here needs someone deployed first.",
    "tools.squad.analysis.synergy.empty.place": "Nothing here depends on placement.",
    "tools.squad.analysis.synergy.empty.squad": "Nothing in this squad works just by being in it.",
    "tools.squad.analysis.synergy.highest": "Only the highest of its kind applies",
    "tools.squad.analysis.synergy.lead.needsCount": "Needs {count} {label} in the squad. {missing} more turns it on.",
    "tools.squad.analysis.synergy.lead.nobody": "Works on {label}, and nobody else in this squad counts.",
    "tools.squad.analysis.synergy.lead.unknown": "Names {label}, which the page cannot match to anyone here.",
    "tools.squad.analysis.synergy.lead.unread": "This operator is not on the EN server yet, so who this talent reaches is not read.",
    "tools.squad.analysis.synergy.lead.unseen": "Who this reaches depends on things the page cannot see, like placement or order.",
    "tools.squad.analysis.synergy.openDps": "Open in DPS calculator",
    "tools.squad.analysis.synergy.pill.field": "Once deployed",
    "tools.squad.analysis.synergy.pill.near": "Nearby",
    "tools.squad.analysis.synergy.pill.nobody": "Reaches nobody",
    "tools.squad.analysis.synergy.pill.skill": "While the skill is active",
    "tools.squad.analysis.synergy.pill.squad": "In the squad",
    "tools.squad.analysis.synergy.pill.unread": "Not read",
    "tools.squad.analysis.synergy.question": "What bonuses are live in this squad?",
    "tools.squad.analysis.synergy.reaches": "Reaches",
    "tools.squad.analysis.synergy.reaches.all": "Everyone else, {count}",
    "tools.squad.analysis.synergy.reaches.near": "Whoever is placed nearby",
    "tools.squad.analysis.synergy.reaches.next": "Whoever is deployed next",
    "tools.squad.analysis.synergy.receiver.field": "once deployed",
    "tools.squad.analysis.synergy.receiver.giver": "{giver}, {talent}",
    "tools.squad.analysis.synergy.receiver.none": "Nothing from this squad",
    "tools.squad.analysis.synergy.receiver.place": "{giver}, {talent} reaches whoever is placed near, so it is not listed per operator.",
    "tools.squad.analysis.synergy.receiver.skill": "skill active",
    "tools.squad.analysis.synergy.receiver.squad": "in the squad",
    "tools.squad.analysis.synergy.section.check": "Worth a look",
    "tools.squad.analysis.synergy.section.check.hint": "Things this squad might want to know",
    "tools.squad.analysis.synergy.section.field": "Once deployed",
    "tools.squad.analysis.synergy.section.field.hint": "Needs the giver on the field",
    "tools.squad.analysis.synergy.section.place": "By placement",
    "tools.squad.analysis.synergy.section.place.hint": "Depends on where you put them",
    "tools.squad.analysis.synergy.section.squad": "In the squad",
    "tools.squad.analysis.synergy.section.squad.hint": "Works from the start of the stage",
    "tools.squad.analysis.synergy.target.costAtMost": "operators that cost {cost} DP or less",
    "tools.squad.analysis.synergy.target.everyone": "every ally",
    "tools.squad.analysis.synergy.target.next": "the next operator deployed",
    "tools.squad.analysis.synergy.target.spAuto": "operators with an auto recovery skill",
    "tools.squad.analysis.synergy.target.spDefensive": "operators with a defensive recovery skill",
    "tools.squad.analysis.synergy.target.spOffensive": "operators with an offensive recovery skill",
    "tools.squad.analysis.synergy.title": "Synergy",
    "tools.squad.analysis.synergy.view": "View",
    "tools.squad.analysis.synergy.view.receiver": "By receiver",
    "tools.squad.analysis.synergy.view.source": "By source",
    "tools.squad.analysis.themes.classes": "Classes",
    "tools.squad.analysis.themes.classes.missing": "{count} missing",
    "tools.squad.analysis.themes.classes.none": "none missing",
    "tools.squad.analysis.themes.classes.value": "{count} of {total}",
    "tools.squad.analysis.themes.close": "Close",
    "tools.squad.analysis.themes.close.hint": "All but one or two",
    "tools.squad.analysis.themes.empty": "None yet for this squad.",
    "tools.squad.analysis.themes.emptyShared": "Nothing two of them share.",
    "tools.squad.analysis.themes.footer": "Nothing here is ranked. Voice actors follow the {dub} dub. The support is left out.",
    "tools.squad.analysis.themes.kind.artist": "Artist",
    "tools.squad.analysis.themes.kind.birthday": "Birthday",
    "tools.squad.analysis.themes.kind.birthplace": "Birthplace",
    "tools.squad.analysis.themes.kind.branch": "Branch",
    "tools.squad.analysis.themes.kind.class": "Class",
    "tools.squad.analysis.themes.kind.faction": "Faction",
    "tools.squad.analysis.themes.kind.gender": "Gender",
    "tools.squad.analysis.themes.kind.position": "Position",
    "tools.squad.analysis.themes.kind.race": "Race",
    "tools.squad.analysis.themes.kind.rarity": "Rarity",
    "tools.squad.analysis.themes.kind.voice": "Voice",
    "tools.squad.analysis.themes.labels": "Labels",
    "tools.squad.analysis.themes.labels.hint": "Every seat shares it",
    "tools.squad.analysis.themes.medics": "Medics",
    "tools.squad.analysis.themes.question": "Just for fun",
    "tools.squad.analysis.themes.rarity": "Total rarity",
    "tools.squad.analysis.themes.rarity.caption": "lower is a harder run",
    "tools.squad.analysis.themes.rarityValue": "{count, plural, one {# star} other {# stars}}",
    "tools.squad.analysis.themes.shared": "Shared",
    "tools.squad.analysis.themes.shared.hint": "Two or more",
    "tools.squad.analysis.themes.title": "Themes",
    "tools.squad.analysis.themes.topRarity": "{stars} stars",
    "tools.squad.analysis.themes.topRarity.caption": "of {seats}",
    "tools.squad.analysis.threat.aerial": "Aerial",
    "tools.squad.analysis.threat.fast": "Fast",
    "tools.squad.analysis.threat.high_def": "High DEF",
    "tools.squad.analysis.threat.high_res": "High RES",
    "tools.squad.analysis.threat.invisible": "Invisible",
    "tools.squad.analysis.threat.multi_life": "Revives",
    "tools.squad.analysis.unread": "{names}: not on the EN server yet, so their talent, trait and skill wording is not read. Their talents show as not read, and rows that need the wording leave them out.",
    "tools.squad.breadcrumb.tools": "Tools",
    "tools.squad.breadcrumbLabel": "Breadcrumb",
    "tools.squad.chooser.desc": "You have {count, plural, one {# slot} other {# slots}}. Saving over a slot replaces what's there.",
    "tools.squad.chooser.editCopy": "Just edit a copy",
    "tools.squad.chooser.empty": "Empty slot",
    "tools.squad.chooser.replaces": "Replaces {name}",
    "tools.squad.chooser.slot": "Slot {slot}",
    "tools.squad.chooser.title": "Save to which slot?",
    "tools.squad.chooser.untitled": "Squad {slot}",
    "tools.squad.defaultName": "Squad {slot}",
    "tools.squad.editor.close": "Close",
    "tools.squad.editor.hint.module": "The module unlocks at Elite {phase} Lv {level}",
    "tools.squad.editor.hint.roster": "Your roster has E{phase} Lv {level}",
    "tools.squad.editor.hint.skill": "Skill {skill} unlocks at Elite {phase}",
    "tools.squad.editor.lab": "Open in DPS calculator",
    "tools.squad.editor.labDesc": "The DPS calculator holds 4. Bring up to 3 squadmates; the buffs it knows apply there.",
    "tools.squad.editor.labGives": "buffs this seat",
    "tools.squad.editor.labGo": "Open with {count, plural, =0 {no squadmates} one {# squadmate} other {# squadmates}}",
    "tools.squad.editor.labNone": "No one else in the squad yet.",
    "tools.squad.editor.labPick": "Pick squadmates to bring",
    "tools.squad.editor.labTitle": "Bring squadmates",
    "tools.squad.editor.level": "Level",
    "tools.squad.editor.module": "Module",
    "tools.squad.editor.moduleRank": "Module rank",
    "tools.squad.editor.noModule": "None",
    "tools.squad.editor.potential": "Potential",
    "tools.squad.editor.potentialAria": "Potential {rank}",
    "tools.squad.editor.promotion": "Promotion",
    "tools.squad.editor.rankLevel": "Lv {rank}",
    "tools.squad.editor.rankMastery": "M{mastery}",
    "tools.squad.editor.readOnly": "This is a shared squad. Copy it to edit.",
    "tools.squad.editor.remove": "Remove",
    "tools.squad.editor.seat": "Seat {seat}",
    "tools.squad.editor.skill": "Skill",
    "tools.squad.editor.skillFallback": "Skill {skill}",
    "tools.squad.editor.skillLevel": "Skill level",
    "tools.squad.editor.source.full": "Full build, not in your roster",
    "tools.squad.editor.source.hand": "Build set by hand",
    "tools.squad.editor.source.roster": "From your roster",
    "tools.squad.editor.source.support": "Support, full build",
    "tools.squad.editor.supportSeat": "Support",
    "tools.squad.editor.useFull": "Use a full build",
    "tools.squad.editor.useRoster": "Use my roster",
    "tools.squad.grid.add": "Add",
    "tools.squad.grid.addAria": "Add an operator to seat {seat}",
    "tools.squad.grid.aria": "Squad seats",
    "tools.squad.grid.dragHint": "Drag a card onto another to swap them.",
    "tools.squad.grid.eliteAria": "Elite {phase}",
    "tools.squad.grid.leader": "Leader",
    "tools.squad.grid.level": "Lv {level}",
    "tools.squad.grid.makeLeader": "Make leader",
    "tools.squad.grid.masteryAria": "Mastery {mastery}",
    "tools.squad.grid.menu": "Seat options",
    "tools.squad.grid.moduleRank": "Rank {rank}",
    "tools.squad.grid.move": "Move to seat...",
    "tools.squad.grid.moveDesc": "Whoever sits there swaps places with them.",
    "tools.squad.grid.moveSeat": "Seat {seat}",
    "tools.squad.grid.moveTitle": "Move {name} to which seat?",
    "tools.squad.grid.noModule": "No module",
    "tools.squad.grid.noSkill": "No skill",
    "tools.squad.grid.openDps": "Open in DPS calculator",
    "tools.squad.grid.potentialAria": "Potential {rank}",
    "tools.squad.grid.rarityAria": "{rarity} star",
    "tools.squad.grid.remove": "Remove",
    "tools.squad.grid.seatAria": "Seat {seat}: {name}, edit",
    "tools.squad.grid.seatTag": "Seat {seat}",
    "tools.squad.grid.skillAria": "Skill {skill}",
    "tools.squad.grid.skillLevelAria": "Skill level {level}",
    "tools.squad.grid.skillShort": "S{skill}",
    "tools.squad.grid.support": "Support",
    "tools.squad.grid.supportAdd": "Pick a support",
    "tools.squad.grid.supportAria": "Support: {name}, edit",
    "tools.squad.grid.supportCaption": "Borrowed from a friend at their full build",
    "tools.squad.importedName": "{name} (copy)",
    "tools.squad.intro": "Put together {seats} operators and a support, then see what the squad covers, what it costs to deploy and how it works together.",
    "tools.squad.leave.desc": "Your changes to this squad aren't saved yet.",
    "tools.squad.leave.discard": "Discard",
    "tools.squad.leave.keep": "Keep editing",
    "tools.squad.leave.title": "Leave without saving?",
    "tools.squad.picker.all": "All",
    "tools.squad.picker.allBranches": "All branches",
    "tools.squad.picker.branch": "Branch",
    "tools.squad.picker.class": "Class",
    "tools.squad.picker.clearFilters": "Clear filters",
    "tools.squad.picker.close": "Close",
    "tools.squad.picker.cost": "{cost} DP",
    "tools.squad.picker.costTitle": "Deployment cost at the highest promotion, before potential",
    "tools.squad.picker.count": "{count, plural, one {# operator} other {# operators}}",
    "tools.squad.picker.currentForm": "In use",
    "tools.squad.picker.elite": "Elite {phase}",
    "tools.squad.picker.empty": "No operators match.",
    "tools.squad.picker.hint.close": "close",
    "tools.squad.picker.hint.move": "move",
    "tools.squad.picker.hint.pick": "add",
    "tools.squad.picker.level": "Lv {level}",
    "tools.squad.picker.loading": "Loading operators...",
    "tools.squad.picker.mastery": "Mastery {mastery}",
    "tools.squad.picker.module": "{type} {rank}",
    "tools.squad.picker.moduleTitle": "Module {type}, rank {rank}",
    "tools.squad.picker.notOwned": "Not owned",
    "tools.squad.picker.owned": "Owned only",
    "tools.squad.picker.pick": "Add {name}, {branch}",
    "tools.squad.picker.potential": "Potential {rank}",
    "tools.squad.picker.rarity": "Rarity",
    "tools.squad.picker.search": "Search operators",
    "tools.squad.picker.seated": "Seat {seat}",
    "tools.squad.picker.seatedSupport": "Support",
    "tools.squad.picker.skill": "S{skill}",
    "tools.squad.picker.skillTitle": "Skill {skill}, rank {level}",
    "tools.squad.picker.sort": "Sort",
    "tools.squad.picker.sort.cost": "DP cost",
    "tools.squad.picker.sort.level": "Level",
    "tools.squad.picker.sort.name": "Name",
    "tools.squad.picker.sort.rarity": "Rarity",
    "tools.squad.picker.stars": "{rarity}★",
    "tools.squad.picker.supportTitle": "Pick a support",
    "tools.squad.picker.title": "Add to seat {seat}",
    "tools.squad.share.build": "E{phase} Lv {level}",
    "tools.squad.share.builds": "Include builds",
    "tools.squad.share.buildsDesc": "Promotion, level, mastery and module rank. Off shares operators, skills and modules only.",
    "tools.squad.share.copied": "Link copied",
    "tools.squad.share.copyFailed": "Couldn't copy. Select the link and copy it yourself.",
    "tools.squad.share.copyImage": "Copy image",
    "tools.squad.share.copyLink": "Copy link",
    "tools.squad.share.empty": "Empty",
    "tools.squad.share.fact.classes": "Classes",
    "tools.squad.share.fact.classesValue": "{count} of {total}",
    "tools.squad.share.fact.medics": "Medics",
    "tools.squad.share.fact.rarity": "Total rarity",
    "tools.squad.share.fact.topRarity": "{stars}★ operators",
    "tools.squad.share.facts": "At a glance",
    "tools.squad.share.image": "Image",
    "tools.squad.share.imageAlt": "Image of the squad {name}",
    "tools.squad.share.imageCopied": "Image copied",
    "tools.squad.share.imageCopyFailed": "This browser can't copy images. Save it instead.",
    "tools.squad.share.imageDesc": "A picture of the squad to post anywhere.",
    "tools.squad.share.leader": "Leader",
    "tools.squad.share.link": "Link",
    "tools.squad.share.linkDesc": "The squad lives in the link. Nothing is stored.",
    "tools.squad.share.linkField": "Share link",
    "tools.squad.share.renderFailed": "Couldn't draw the image.",
    "tools.squad.share.rendering": "Drawing the image...",
    "tools.squad.share.saveImage": "Save image",
    "tools.squad.share.support": "Support",
    "tools.squad.share.title": "Share this squad",
    "tools.squad.share.untitled": "My squad",
    "tools.squad.shared.close": "Back to my squad",
    "tools.squad.shared.copy": "Copy to a slot",
    "tools.squad.shared.desc": "Someone sent you this squad. It's read only until you copy it.",
    "tools.squad.shared.editCopy": "Edit a copy",
    "tools.squad.shared.title": "Shared squad",
    "tools.squad.slots.active": "Editing",
    "tools.squad.slots.count": "{count}/{total}",
    "tools.squad.slots.empty": "Empty slot",
    "tools.squad.slots.emptyDesc": "Save a squad here",
    "tools.squad.slots.game": "In-game squads",
    "tools.squad.slots.gameAria": "Load a copy of in-game squad {name}",
    "tools.squad.slots.gameDesc": "Read only. Click one to load a copy.",
    "tools.squad.slots.gameEmpty": "Sync your account on the Account page to bring in your in-game squads.",
    "tools.squad.slots.gameEmptyLink": "Go to Account",
    "tools.squad.slots.gameSynced": "Synced {date}",
    "tools.squad.slots.gameUntitled": "Squad {index}",
    "tools.squad.slots.loadAria": "Open squad slot {slot}",
    "tools.squad.slots.saved": "Saved {date}",
    "tools.squad.slots.signIn": "Sign in to save squads. The squad below still works without an account.",
    "tools.squad.slots.signInButton": "Sign in",
    "tools.squad.slots.title": "Your squads",
    "tools.squad.slots.unsaved": "Unsaved",
    "tools.squad.slots.untitled": "Squad {slot}",
    "tools.squad.stage.challenge": "Challenge",
    "tools.squad.stage.change": "Change",
    "tools.squad.stage.deployLimit": "Deploy limit",
    "tools.squad.stage.dpRate": "DP per second",
    "tools.squad.stage.dpValue": "{value}/s",
    "tools.squad.stage.empty": "No stage picked. Pick one to use its deploy limit and starting DP, and to see its enemies.",
    "tools.squad.stage.enemies": "Enemies",
    "tools.squad.stage.enemyCount": "x{count}",
    "tools.squad.stage.hideEnemies": "Hide enemies",
    "tools.squad.stage.lifePoints": "Life points",
    "tools.squad.stage.missing": "Couldn't load this stage.",
    "tools.squad.stage.mode": "Stage version",
    "tools.squad.stage.noLevel": "No map data for this stage, so its deploy limit, DP and enemies are unknown.",
    "tools.squad.stage.noThreats": "Nothing that needs a special answer.",
    "tools.squad.stage.none": "None",
    "tools.squad.stage.normal": "Normal",
    "tools.squad.stage.open": "Open stage",
    "tools.squad.stage.pick": "Pick a stage",
    "tools.squad.stage.remove": "Remove",
    "tools.squad.stage.sanity": "Sanity",
    "tools.squad.stage.showEnemies": "Show enemies",
    "tools.squad.stage.startDp": "Starting DP",
    "tools.squad.stage.threat.aerial": "Aerial",
    "tools.squad.stage.threat.fast": "Fast",
    "tools.squad.stage.threat.high_def": "High DEF",
    "tools.squad.stage.threat.high_res": "High RES",
    "tools.squad.stage.threat.invisible": "Invisible",
    "tools.squad.stage.threat.multi_life": "Costs extra life points",
    "tools.squad.stage.threatCount": "{label} x{count}",
    "tools.squad.stage.threats": "What its enemies ask for",
    "tools.squad.stagePicker.allZones": "All chapters and events",
    "tools.squad.stagePicker.desc": "Its deploy limit and starting DP feed the analysis.",
    "tools.squad.stagePicker.empty": "No stages match.",
    "tools.squad.stagePicker.group": "Mode",
    "tools.squad.stagePicker.hard": "Hard",
    "tools.squad.stagePicker.loading": "Loading stages...",
    "tools.squad.stagePicker.search": "Search by code or name",
    "tools.squad.stagePicker.title": "Pick a stage",
    "tools.squad.stagePicker.zone": "Chapter or event",
    "tools.squad.title": "Squad Builder",
    "tools.squad.toast.deleteFailed": "Couldn't delete the slot",
    "tools.squad.toast.deleted": "Slot {slot} deleted",
    "tools.squad.toast.saveFailed": "Couldn't save the squad",
    "tools.squad.toast.saved": "Saved to slot {slot}",
    "tools.squad.toast.stageFailed": "Couldn't load that stage",
    "tools.squad.toolbar.cancel": "Cancel",
    "tools.squad.toolbar.clear": "Clear squad",
    "tools.squad.toolbar.clearDesc": "Every seat and the support are emptied. A saved slot keeps its copy until you save.",
    "tools.squad.toolbar.clearTitle": "Clear the squad?",
    "tools.squad.toolbar.count": "{count} of {total}",
    "tools.squad.toolbar.delete": "Delete slot {slot}",
    "tools.squad.toolbar.deleteConfirm": "Delete",
    "tools.squad.toolbar.deleteDesc": "The saved squad is gone for good. What's on screen stays as an unsaved squad.",
    "tools.squad.toolbar.deleteTitle": "Delete slot {slot}?",
    "tools.squad.toolbar.expand": "Expand",
    "tools.squad.toolbar.inSlot": "Slot {slot}",
    "tools.squad.toolbar.minimize": "Minimize",
    "tools.squad.toolbar.more": "More",
    "tools.squad.toolbar.name": "Squad name",
    "tools.squad.toolbar.plusSupport": "plus support",
    "tools.squad.toolbar.revert": "Revert",
    "tools.squad.toolbar.save": "Save",
    "tools.squad.toolbar.scratch": "Not saved to a slot",
    "tools.squad.toolbar.share": "Share",
    "tools.squad.toolbar.signInToSave": "Sign in to save",
    "user.leaderboard.breadcrumb.current": "Leaderboard",
    "user.leaderboard.breadcrumb.doctors": "Players",
    "user.leaderboard.breadcrumb.label": "Breadcrumb",
    "user.leaderboard.deltaRank": "Δ Rank",
    "user.leaderboard.grade.tooltip": "Grade {grade}: composite score {from}-{to}%, weighted across operators, base, Integrated Strategies, medals, stages and Reclamation Algorithm.",
    "user.leaderboard.grade.unknown": "Not graded yet - this account has not been scored.",
    "user.leaderboard.hero.allTime": "All-time",
    "user.leaderboard.hero.blurb": "A composite ranking across roster depth, base efficiency, and combat scoring. Pulled from public profiles only.",
    "user.leaderboard.hero.blurb.item": "Every player with a public profile, ranked by how much {item} they held when they last synced.",
    "user.leaderboard.hero.eyebrow": "Players · Leaderboard",
    "user.leaderboard.hero.notice": "{lead} - the leaderboard is in active development and the ranking formula is subject to change.",
    "user.leaderboard.hero.notice.lead": "Heads up",
    "user.leaderboard.hero.stat.asOf": "Counted at",
    "user.leaderboard.hero.stat.asOf.value": "last sync",
    "user.leaderboard.hero.stat.holders": "Holders",
    "user.leaderboard.hero.stat.ranked": "Players ranked",
    "user.leaderboard.hero.stat.topHolding": "Top holding",
    "user.leaderboard.hero.stat.topScore": "Top score",
    "user.leaderboard.hero.stat.updated": "Updated",
    "user.leaderboard.hero.title": "Top Players",
    "user.leaderboard.hero.updated.days": "{count}d ago",
    "user.leaderboard.hero.updated.hours": "{count}h ago",
    "user.leaderboard.hero.updated.minutes": "{count}m ago",
    "user.leaderboard.hero.updated.moments": "moments ago",
    "user.leaderboard.interval.day.label": "Today",
    "user.leaderboard.interval.day.short": "1d",
    "user.leaderboard.interval.day.since": "since yesterday",
    "user.leaderboard.interval.day.subtitle": "today",
    "user.leaderboard.interval.month.label": "Past 30 days",
    "user.leaderboard.interval.month.short": "30d",
    "user.leaderboard.interval.month.since": "in the past 30 days",
    "user.leaderboard.interval.month.subtitle": "30 days",
    "user.leaderboard.interval.week.label": "Past 7 days",
    "user.leaderboard.interval.week.short": "7d",
    "user.leaderboard.interval.week.since": "in the past 7 days",
    "user.leaderboard.interval.week.subtitle": "7 days",
    "user.leaderboard.itemYou.metric.held": "Held",
    "user.leaderboard.itemYou.metric.holders": "Holders",
    "user.leaderboard.itemYou.metric.server": "On {server}",
    "user.leaderboard.itemYou.none": "You hold none of this item, so you are not ranked for it.",
    "user.leaderboard.itemYou.rank": "Rank",
    "user.leaderboard.itemYou.title": "You",
    "user.leaderboard.itemYou.topPercentile": " · Top ",
    "user.leaderboard.itemYou.viewProfile": "View profile",
    "user.leaderboard.mostHeld.holders": "{count, number} {count, plural, one {holder} other {holders}}",
    "user.leaderboard.mostHeld.subtitle": "Items by how many players hold them",
    "user.leaderboard.mostHeld.title": "Most held",
    "user.leaderboard.mostHeld.top": "top {top}",
    "user.leaderboard.movers.empty": "No movements yet.",
    "user.leaderboard.movers.title": "Top movers · {interval}",
    "user.leaderboard.rankBy.aria": "Choose what to rank by",
    "user.leaderboard.rankBy.empty": "Nothing matches.",
    "user.leaderboard.rankBy.group.items": "Inventory",
    "user.leaderboard.rankBy.group.items.hint": "Type to search all {count, number} items",
    "user.leaderboard.rankBy.group.score": "Score",
    "user.leaderboard.rankBy.held": "{total} held",
    "user.leaderboard.rankBy.holders": "{count, number} {count, plural, one {holder} other {holders}}",
    "user.leaderboard.rankBy.label": "Rank by",
    "user.leaderboard.rankBy.line.title": "{holders, number} of {population, number} players hold {total, number} in all, {share}",
    "user.leaderboard.rankBy.search.clear": "Clear search",
    "user.leaderboard.rankBy.search.label": "Search rankings",
    "user.leaderboard.rankBy.search.placeholder": "Search scores and items…",
    "user.leaderboard.serverSplit.title": "Server share · top 250",
    "user.leaderboard.showing": "Showing {start}-{end} of {count, number} {count, plural, one {player} other {players}}",
    "user.leaderboard.showingHolders": "Showing {start}-{end} of {count, number} {count, plural, one {holder} other {holders}}",
    "user.leaderboard.sort.base": "Base",
    "user.leaderboard.sort.medals": "Medals",
    "user.leaderboard.sort.operators": "Operators",
    "user.leaderboard.sort.roguelike": "Roguelike",
    "user.leaderboard.sort.sandbox": "Reclamation Algorithm",
    "user.leaderboard.sort.skins": "Skins",
    "user.leaderboard.sort.stages": "Stages",
    "user.leaderboard.sort.total": "Total",
    "user.leaderboard.table.empty": "No players match these filters.",
    "user.leaderboard.table.empty.item": "Nobody with a public profile holds this item yet.",
    "user.leaderboard.table.levelInline": "· Lv {level}",
    "user.leaderboard.table.movement.down": "Fell {count, plural, one {# rank} other {# ranks}} {interval}",
    "user.leaderboard.table.movement.none": "No change in rank {interval}",
    "user.leaderboard.table.movement.up": "Climbed {count, plural, one {# rank} other {# ranks}} {interval}",
    "user.leaderboard.table.share": "{pct}% of the top holding",
    "user.leaderboard.table.th.doctor": "Player",
    "user.leaderboard.table.th.grade": "Grade",
    "user.leaderboard.table.th.level": "Lv",
    "user.leaderboard.table.th.rank": "Rank",
    "user.leaderboard.table.th.server": "Server",
    "user.leaderboard.table.viewProfile": "View {nickname} profile",
    "user.leaderboard.toolbar.all": "All",
    "user.leaderboard.toolbar.allServers": "All servers",
    "user.leaderboard.toolbar.comingSoon": "Coming soon",
    "user.leaderboard.toolbar.interval": "Interval",
    "user.leaderboard.toolbar.intervalLabel": "Change movement interval",
    "user.leaderboard.toolbar.movement.scoreOnly": "Rank movement is tracked for score rankings only",
    "user.leaderboard.toolbar.movementOnly": "Movement only",
    "user.leaderboard.toolbar.movementOnly.off": "Show only players with movement",
    "user.leaderboard.toolbar.movementOnly.on": "Showing only players with movement",
    "user.leaderboard.toolbar.scope.friends": "Friends",
    "user.leaderboard.toolbar.scope.global": "Global",
    "user.leaderboard.toolbar.search.clear": "Clear search",
    "user.leaderboard.toolbar.search.label": "Search this page",
    "user.leaderboard.toolbar.search.placeholder": "Search player name or UID…",
    "user.leaderboard.toolbar.server": "Server",
    "user.leaderboard.toolbar.serverLabel": "Change server filter",
    "user.leaderboard.you.metric.grade": "Grade",
    "user.leaderboard.you.metric.score": "Score",
    "user.leaderboard.you.rank": "Rank",
    "user.leaderboard.you.share": "Share profile",
    "user.leaderboard.you.share.copied.desc": "Your profile link is on the clipboard.",
    "user.leaderboard.you.share.copied.title": "Profile link copied",
    "user.leaderboard.you.share.failed.desc": "Clipboard access was denied.",
    "user.leaderboard.you.share.failed.title": "Couldn't copy",
    "user.leaderboard.you.title": "Your standing",
    "user.leaderboard.you.topPercentile": " · Top ",
    "user.leaderboard.you.viewProfile": "View profile",
    "user.profile.account.maxLevel.allMaxed": "Every operator you own is already at its cap.",
    "user.profile.account.maxLevel.blurb": "The EXP and LMD still needed to take every operator you own to its final promotion and level cap, against what you hold.",
    "user.profile.account.maxLevel.blurbModule": "The EXP and LMD still needed to take every operator you own to the level its module unlocks at, against what you hold.",
    "user.profile.account.maxLevel.calculate": "Calculate",
    "user.profile.account.maxLevel.calculating": "Calculating…",
    "user.profile.account.maxLevel.col.exp": "EXP",
    "user.profile.account.maxLevel.col.lmd": "LMD",
    "user.profile.account.maxLevel.col.moduleTarget": "Module",
    "user.profile.account.maxLevel.col.now": "Now",
    "user.profile.account.maxLevel.col.operator": "Operator",
    "user.profile.account.maxLevel.col.target": "Cap",
    "user.profile.account.maxLevel.days": "{count, plural, one {# day} other {# days}}",
    "user.profile.account.maxLevel.daysToAfford": "Days to afford",
    "user.profile.account.maxLevel.daysWithFarming": "{days} with {stage} farming ({perDay} more per day)",
    "user.profile.account.maxLevel.elite": "E{elite} Lv{level}",
    "user.profile.account.maxLevel.error": "The calculation failed. Try again.",
    "user.profile.account.maxLevel.expMissing": "EXP short",
    "user.profile.account.maxLevel.expNeeded": "EXP needed",
    "user.profile.account.maxLevel.incomeNoBase": "{dailies} from dailies · no synced base",
    "user.profile.account.maxLevel.incomePerDay": "LMD per day",
    "user.profile.account.maxLevel.incomeSplit": "{base} from the base · {dailies} from dailies",
    "user.profile.account.maxLevel.lmdMissing": "LMD short",
    "user.profile.account.maxLevel.lmdNeeded": "LMD needed",
    "user.profile.account.maxLevel.lmdSplit": "{levels} for levels · {promotions} for promotions",
    "user.profile.account.maxLevel.moduleTarget": "Stop at module level",
    "user.profile.account.maxLevel.moduleTarget.tooltip": "Prices each operator up to the level its module unlocks at (E2 40 / 50 / 60 for 4 / 5 / 6 stars) instead of the cap. The last 30 levels of a 6-star are 43% of its LMD and 47% of its EXP for a few points of stat. Operators without a module use their rarity's level; 1 to 3 stars keep their cap.",
    "user.profile.account.maxLevel.noIncome": "Nothing earned yet",
    "user.profile.account.maxLevel.owned": "{owned} owned",
    "user.profile.account.maxLevel.recalculate": "Recalculate",
    "user.profile.account.maxLevel.remaining": "Operators left",
    "user.profile.account.maxLevel.showAll": "Show all {count}",
    "user.profile.account.maxLevel.showFewer": "Show fewer",
    "user.profile.account.maxLevel.title": "Max-level cost",
    "user.profile.account.rest": "Promotion, mastery and module rankings are not built yet.",
    "user.profile.background.cancel": "Cancel",
    "user.profile.background.deadX": "Zoom in to move it sideways",
    "user.profile.background.deadY": "Zoom in to move it up or down",
    "user.profile.background.description": "Pick an art below and position it in the header preview. It shows behind your header for everyone who can see your profile.",
    "user.profile.background.discard.confirm": "Discard",
    "user.profile.background.discard.description": "Your new background isn't saved. Closing the editor drops it.",
    "user.profile.background.discard.keep": "Keep editing",
    "user.profile.background.discard.title": "Discard changes?",
    "user.profile.background.elite": "Art",
    "user.profile.background.elite.e1": "Elite 1",
    "user.profile.background.elite.e2": "Elite 2",
    "user.profile.background.elite.noE2": "This operator has no Elite 2 art.",
    "user.profile.background.expand": "Full preview",
    "user.profile.background.fit": "Fit",
    "user.profile.background.gallery.allGroups": "All stories",
    "user.profile.background.gallery.categories": "Category",
    "user.profile.background.gallery.categoriesLabel": "Filter by story category",
    "user.profile.background.gallery.category.is": "Integrated Strategies",
    "user.profile.background.gallery.category.main": "Main Story",
    "user.profile.background.gallery.category.reclamation": "Reclamation Algorithm",
    "user.profile.background.gallery.category.record": "Operator Records",
    "user.profile.background.gallery.category.side": "Side Stories",
    "user.profile.background.gallery.category.sideContent": "Other Stories",
    "user.profile.background.gallery.category.vignette": "Vignettes",
    "user.profile.background.gallery.categoryOption": "{label}, {count, plural, one {# picture} other {# pictures}}",
    "user.profile.background.gallery.clearFilters": "Clear all",
    "user.profile.background.gallery.count": "{count, plural, one {# picture} other {# pictures}}",
    "user.profile.background.gallery.empty": "No pictures match.",
    "user.profile.background.gallery.error": "Couldn't load the gallery.",
    "user.profile.background.gallery.grid": "Gallery pictures. Arrow keys move between pictures, Enter picks one.",
    "user.profile.background.gallery.loading": "Loading the gallery…",
    "user.profile.background.gallery.removeFilter": "Remove filter: {name}",
    "user.profile.background.gallery.retry": "Retry",
    "user.profile.background.gallery.searchLabel": "Search gallery pictures by title, event or story",
    "user.profile.background.gallery.searchPlaceholder": "Search gallery pictures",
    "user.profile.background.gallery.source.archive_pic": "Integrated Strategies",
    "user.profile.background.gallery.source.story_cg": "Story CGs",
    "user.profile.background.gallery.source.story_scene": "Scenes",
    "user.profile.background.gallery.stories": "Story",
    "user.profile.background.gallery.storyEmpty": "No story matches.",
    "user.profile.background.gallery.storySearchLabel": "Find a story by name",
    "user.profile.background.gallery.storySearchPlaceholder": "Find a story",
    "user.profile.background.gallery.storyTileLabel": "From {group}",
    "user.profile.background.gallery.tileLabel": "{title}, {group}",
    "user.profile.background.mode": "Preview as",
    "user.profile.background.mode.desktop": "Desktop",
    "user.profile.background.mode.phone": "Phone",
    "user.profile.background.none": "No background. Your header shows its usual look.",
    "user.profile.background.panHint": "Drag the picture to position it. Scroll or pinch to zoom.",
    "user.profile.background.preview.keys": "Arrow keys move the picture, Shift with an arrow moves it further, plus and minus zoom.",
    "user.profile.background.preview.label": "Background position",
    "user.profile.background.preview.role": "header preview",
    "user.profile.background.remove": "Remove background",
    "user.profile.background.removed.title": "Background removed",
    "user.profile.background.reset": "Reset",
    "user.profile.background.save": "Save",
    "user.profile.background.saveFailed.title": "Couldn't save the background",
    "user.profile.background.saved.title": "Background saved",
    "user.profile.background.source": "Source",
    "user.profile.background.source.characters": "Character art",
    "user.profile.background.source.gallery": "Gallery",
    "user.profile.background.tileSize": "Tile size",
    "user.profile.background.tileSize.l": "Large tiles",
    "user.profile.background.tileSize.m": "Medium tiles",
    "user.profile.background.tileSize.s": "Small tiles",
    "user.profile.background.title": "Profile background",
    "user.profile.background.zoom": "Zoom",
    "user.profile.background.zoomValue": "{scale}%",
    "user.profile.base.boardTitle": "RIIC base board",
    "user.profile.base.deep.atRisk": "At risk from their current bar: ",
    "user.profile.base.deep.atRisk.synced": "At risk from their current bar (projected from your sync {ago} ago): ",
    "user.profile.base.deep.cadence.aria": "Check-in cadence",
    "user.profile.base.deep.cadence.custom": "Custom check-in cadence in hours",
    "user.profile.base.deep.cadence.customPlaceholder": "h",
    "user.profile.base.deep.cadence.hours": "{hours}h",
    "user.profile.base.deep.checkin": "Check-in economics",
    "user.profile.base.deep.clearSnapshot": "Clear snapshot",
    "user.profile.base.deep.compare": "Compare",
    "user.profile.base.deep.conservative": "conservative",
    "user.profile.base.deep.conservative.tooltip": "Order sizes are modeled conservatively (small orders, fast turnover), so real deadlines can be later than shown - never earlier. Trading posts are assumed gold-supplied.",
    "user.profile.base.deep.copy.header": "Base plan - {lmd} LMD/day, {exp} EXP/day",
    "user.profile.base.deep.copy.room": "{room}: {operators}",
    "user.profile.base.deep.copy.shift": "Shift {n}",
    "user.profile.base.deep.copyPlan": "Copy plan",
    "user.profile.base.deep.daily.exp": "{amount} EXP",
    "user.profile.base.deep.daily.gold": "{amount} gold",
    "user.profile.base.deep.daily.lmd": "{amount} LMD",
    "user.profile.base.deep.days": "{days}d",
    "user.profile.base.deep.diff.dormRecovery": "Dorm recovery",
    "user.profile.base.deep.diff.efficiency": "Production efficiency",
    "user.profile.base.deep.diff.firstStall": "First room stalls",
    "user.profile.base.deep.diff.gold": "Pure Gold / day",
    "user.profile.base.deep.diff.powerNet": "Power net",
    "user.profile.base.deep.diff.tradingCapacity": "Trading capacity",
    "user.profile.base.deep.drones": "Drones",
    "user.profile.base.deep.dronesFilling": "Drones {meter} - full in {when}, spend before then",
    "user.profile.base.deep.dronesFull": " - full, recovery is being wasted",
    "user.profile.base.deep.events.none": "Nobody runs dry - every operator survives the recommended rotation.",
    "user.profile.base.deep.events.runsDry": "runs dry in {room}",
    "user.profile.base.deep.events.title": "Rotation events · {days} simulated days",
    "user.profile.base.deep.events.when": "Day {day}, {hours}h",
    "user.profile.base.deep.firstRoom": "First room",
    "user.profile.base.deep.fullIn": "full in {duration} · {count} {unit}",
    "user.profile.base.deep.furniture": "Furniture upside",
    "user.profile.base.deep.furniture.line": "Dormitory Lv{level} ambience {meter} - {rate} recovery sitting in the furniture shop.",
    "user.profile.base.deep.furniture.rate": "+{rate}/h",
    "user.profile.base.deep.hours": "{hours}h",
    "user.profile.base.deep.idle": "{hours}h idle",
    "user.profile.base.deep.logInBefore": "Log in before {time} to lose nothing",
    "user.profile.base.deep.lost.exp": "−{amount} EXP",
    "user.profile.base.deep.lost.gold": "−{amount} gold",
    "user.profile.base.deep.lost.lmd": "−{amount} LMD",
    "user.profile.base.deep.lost.nothing": "nothing lost",
    "user.profile.base.deep.lost.suffix": "{losses} {period}",
    "user.profile.base.deep.noChange": "no change",
    "user.profile.base.deep.noIdle": "no idle",
    "user.profile.base.deep.outputByFacility": "Output by facility",
    "user.profile.base.deep.overflows": " - overflows at this cadence",
    "user.profile.base.deep.perDay": " /day",
    "user.profile.base.deep.period.aria": "Loss period",
    "user.profile.base.deep.period.day": "/day",
    "user.profile.base.deep.period.dayInitial": "D",
    "user.profile.base.deep.period.month": "/month",
    "user.profile.base.deep.period.monthInitial": "M",
    "user.profile.base.deep.period.week": "/week",
    "user.profile.base.deep.period.weekInitial": "W",
    "user.profile.base.deep.period.year": "/year",
    "user.profile.base.deep.period.yearInitial": "Y",
    "user.profile.base.deep.product.exp": "Battle Records",
    "user.profile.base.deep.product.gold": "Pure Gold",
    "user.profile.base.deep.product.lmd": "LMD orders",
    "user.profile.base.deep.product.none": "Unconfigured",
    "user.profile.base.deep.resnapshot": "Re-snapshot",
    "user.profile.base.deep.simulated.title": "Simulated totals · {days} days under the rotation",
    "user.profile.base.deep.simulating": "Simulating the rotation - this is the slow part…",
    "user.profile.base.deep.simulating.title": "Simulated totals & rotation events",
    "user.profile.base.deep.snapshot": "Snapshot",
    "user.profile.base.deep.snapshotHint": "Snapshot the current numbers, then edit the board or run the optimizer - the difference tracks live.",
    "user.profile.base.deep.stalls": "{room} stalls {duration} after a claim - buffers below.",
    "user.profile.base.deep.title": "Deep Dive",
    "user.profile.base.deep.trainers": "Best trainers for {class}: ",
    "user.profile.base.deep.unit.items": "items",
    "user.profile.base.deep.unit.orders": "orders",
    "user.profile.base.deep.unrotated.dry": "{count, plural, one {# operator runs dry} other {# operators run dry}}",
    "user.profile.base.deep.unrotated.fine": "Your stationed crews hold up even with no swaps at all.",
    "user.profile.base.deep.unrotated.line": "{count} if you never swap - first at {hours}h ({name}). Rotate or lose the hours.",
    "user.profile.base.deep.unrotated.title": "Without rotating · {days} days",
    "user.profile.base.evaluationError": "This plan could not be scored: {error}",
    "user.profile.base.facts.recruitSlots": "Recruit slots",
    "user.profile.base.facts.recruitSlots.aria": "Recruit slots purchased beyond the first",
    "user.profile.base.facts.recruitSlots.tooltip": "Recruitment slots you have purchased beyond the first - account state the sync cannot read. Declaring it prices skills like Lin’s Meritocracy (+10% HR speed per slot); left at +0 they honestly count as zero.",
    "user.profile.base.facts.saved": "saved",
    "user.profile.base.facts.training": "Training",
    "user.profile.base.facts.training.aria": "Class currently training",
    "user.profile.base.facts.training.nobody": "Nobody",
    "user.profile.base.facts.whatIf": "what-if",
    "user.profile.base.fullscreen": "Open board in full screen",
    "user.profile.base.headline.drones": "Drones / day",
    "user.profile.base.headline.drones.hint": "+{lmd} LMD · +{exp} EXP",
    "user.profile.base.headline.efficiency": "Efficiency",
    "user.profile.base.headline.efficiency.hint": "Production rooms",
    "user.profile.base.headline.exp": "EXP / day",
    "user.profile.base.headline.lmd": "LMD / day",
    "user.profile.base.headline.power": "Power",
    "user.profile.base.headline.power.hint": "{generated} generated · {consumed} drawn",
    "user.profile.base.ignorePromotion": "Ignore promotion",
    "user.profile.base.ignorePromotion.tooltip": "Plan with every operator’s highest base skills, even the ones they are not promoted far enough to use. Skills you have not unlocked yet show greyed out.",
    "user.profile.base.morale.sparkline": "Morale across the simulated week",
    "user.profile.base.nerds.beds": "Beds",
    "user.profile.base.nerds.comparison": "Peak staffing vs stationed now",
    "user.profile.base.nerds.comparison.note": "The peak staffing is one crew per room. A rotation spreads those operators over shifts, so a base running the recommended rotation reads below the peak by design; compare rotations above.",
    "user.profile.base.nerds.consumed": "Consumed",
    "user.profile.base.nerds.crew": "Crew",
    "user.profile.base.nerds.crewChanged": "crew changes",
    "user.profile.base.nerds.cycle": "Hand-swapped cycle",
    "user.profile.base.nerds.cycle.note": "Work the first crews until a room runs dry, then the second until the first have recovered. The game's Rotate cannot run this; swap by hand. Figures compare with the recommended rotation.",
    "user.profile.base.nerds.cycleLegs": "Cycle",
    "user.profile.base.nerds.days": "{days}d",
    "user.profile.base.nerds.depleting": "Operators depleting",
    "user.profile.base.nerds.dormAura": "+{rate} aura",
    "user.profile.base.nerds.dormBeds": "{count} beds",
    "user.profile.base.nerds.dormLevel": "Lv {level}",
    "user.profile.base.nerds.dormList": "Dormitories - best first, game rates",
    "user.profile.base.nerds.dormOverflow": "Dorm overflow at peak",
    "user.profile.base.nerds.dormRecovery": "{rate}/h",
    "user.profile.base.nerds.dormSingle": "+{rate} single",
    "user.profile.base.nerds.dormitories": "Dormitories",
    "user.profile.base.nerds.generated": "Generated",
    "user.profile.base.nerds.hours": "{hours}h",
    "user.profile.base.nerds.moraleOverTime": "Morale over time",
    "user.profile.base.nerds.net": "Net",
    "user.profile.base.nerds.neverDeplete": "Never deplete",
    "user.profile.base.nerds.noChange": "no change",
    "user.profile.base.nerds.output": "Output",
    "user.profile.base.nerds.perRoomChanges": "Per-room changes",
    "user.profile.base.nerds.power": "Power",
    "user.profile.base.nerds.presetLegs": "Your preset cycle",
    "user.profile.base.nerds.presetsMatch": "Your presets match the recommended rotation.",
    "user.profile.base.nerds.productionEfficiency": "Production efficiency",
    "user.profile.base.nerds.rooms": "Rooms",
    "user.profile.base.nerds.roomsRestaffed": "Rooms restaffed",
    "user.profile.base.nerds.rotation": "Rotation",
    "user.profile.base.nerds.rotationComparison": "Recommended rotation vs your presets",
    "user.profile.base.nerds.shiftsMatching": "Shift cells matching the plan",
    "user.profile.base.nerds.shortestMorale": "Shortest morale",
    "user.profile.base.nerds.simRecovery": "Sim recovery / hour",
    "user.profile.base.nerds.simulated": "Simulated",
    "user.profile.base.nerds.stationed": "Stationed",
    "user.profile.base.nerds.summedLevels": "Summed levels",
    "user.profile.base.nerds.sustained": "Run 24/7 (Fiammetta)",
    "user.profile.base.nerds.title": "Stats for Nerds",
    "user.profile.base.nerds.totalValue": "Total value (LMD-eq)",
    "user.profile.base.nerds.verdict": "Verdict",
    "user.profile.base.optimize": "Optimize",
    "user.profile.base.optimizeError": "The optimizer failed: {error}",
    "user.profile.base.optimizing": "Optimizing…",
    "user.profile.base.reoptimize": "Re-optimize",
    "user.profile.base.reset": "Reset to my base",
    "user.profile.base.resetView": "Reset board view",
    "user.profile.base.room.bench": "Bench",
    "user.profile.base.room.bench.tooltip": "Spare seat: this operator fills a free seat at the lowest opportunity cost. They were not chosen for their skills - any effect that still applies is a bonus.",
    "user.profile.base.room.clueSearch": "Clue search",
    "user.profile.base.room.disposition.capacity": "capacity",
    "user.profile.base.room.disposition.capacity.hint": "This skill raises the room's order capacity, not its speed - it buys longer gaps between check-ins.",
    "user.profile.base.room.disposition.covered": "covered",
    "user.profile.base.room.disposition.covered.hint": "A stronger skill of the same type is already active in this crew - the game only applies the most effective one, so this copy adds nothing on top.",
    "user.profile.base.room.disposition.inactive": "inactive",
    "user.profile.base.room.disposition.inactive.hint": "This skill's condition isn't met by this crew, so it adds nothing here.",
    "user.profile.base.room.disposition.morale": "morale",
    "user.profile.base.room.disposition.morale.hint": "This skill changes morale drain or recovery - it shows up in the sustainability simulation, not in this room's efficiency.",
    "user.profile.base.room.disposition.non_production": "reception / HR",
    "user.profile.base.room.disposition.non_production.hint": "Non-production value (clues, training, HR) - counted in its own units, never folded into the efficiency number.",
    "user.profile.base.room.disposition.per_room": "per-room",
    "user.profile.base.room.disposition.per_room.hint": "Active - this skill buffs matching operators in the rooms that satisfy it, so its value is counted inside those rooms' numbers. Open those rooms to see the credit.",
    "user.profile.base.room.disposition.unmodeled": "not modeled",
    "user.profile.base.room.disposition.unmodeled.hint": "The optimizer deliberately prices this at zero rather than guessing.",
    "user.profile.base.room.draws": "Draws",
    "user.profile.base.room.droneRecovery": "Drone recovery",
    "user.profile.base.room.efficiency": "Efficiency",
    "user.profile.base.room.emptyRoom": "An empty room produces nothing and buffs nothing.",
    "user.profile.base.room.fromControlCenter": "From the Control Center",
    "user.profile.base.room.generates": "Generates",
    "user.profile.base.room.hrContact": "HR contact",
    "user.profile.base.room.level": "Lv {level}/{max}",
    "user.profile.base.room.lmd": "LMD / day",
    "user.profile.base.room.marginalNote": "Values are marginals - what this room loses if that one skill is removed. Coupled skills overlap, so they don’t sum to the room total.",
    "user.profile.base.room.nobodyWorking": "Nobody is working here.",
    "user.profile.base.room.nonProducing": "Only producing rooms report an efficiency. This crew contributes through the bonuses they cast elsewhere.",
    "user.profile.base.room.optimizeOne": "Optimize this room only",
    "user.profile.base.room.optimized": "Optimized",
    "user.profile.base.room.parked": "Parked",
    "user.profile.base.room.parked.tooltip": "Kept at zero morale on purpose: a Control Center skill still counts them as assigned here, while a plant-count skill that excludes working robots no longer sees them, so both bonuses apply. Never rotate or rest them; their own skill is forfeited.",
    "user.profile.base.room.power": "{kw} kW",
    "user.profile.base.room.presetUnscored": "Your preset crews are not scored per skill. Optimize to see a plan's breakdown.",
    "user.profile.base.room.producing": "Producing",
    "user.profile.base.room.replaced": "replaced",
    "user.profile.base.room.scoreFailed": "This layout could not be scored.",
    "user.profile.base.room.scoring": "Scoring…",
    "user.profile.base.room.seatsOpen": "{count, plural, one {# seat} other {# seats}} open.",
    "user.profile.base.room.staffed": "Staffed",
    "user.profile.base.room.sustained": "24/7",
    "user.profile.base.room.sustained.tooltip": "Runs around the clock: Fiammetta's morale swap keeps this operator at full morale, so the plan never rotates them out.",
    "user.profile.base.room.value": "+{pct}% value",
    "user.profile.base.shift.aria": "Rotation shift",
    "user.profile.base.shift.n": "Shift {n}",
    "user.profile.base.shift.now": "Stationed now",
    "user.profile.base.skill.locked": "E{elite} Lv{level}",
    "user.profile.base.sustain.depletes": "Depletes",
    "user.profile.base.sustain.depletesDetail": "{count, plural, one {# operator} other {# operators}} hit zero morale within {days, plural, one {# day} other {# days}}.",
    "user.profile.base.sustain.dormOverflow": " Dorms are {beds, plural, one {# bed} other {# beds}} short at peak.",
    "user.profile.base.sustain.holds": "Holds up",
    "user.profile.base.sustain.holdsDetail": "Nobody runs dry over {days, plural, one {# simulated day} other {# simulated days}}.",
    "user.profile.base.tile.aria": "{name}, level {level}, {staffed} of {seats} staffed",
    "user.profile.base.tile.crew.added": "{name} - joins this shift",
    "user.profile.base.tile.crew.removed": "{name} - leaves this shift",
    "user.profile.base.tile.empty": "Empty",
    "user.profile.base.tile.level": "Level",
    "user.profile.base.tile.notBuilt": "Not Built",
    "user.profile.base.wip": "The base optimizer is a work in progress. If a recommendation looks wrong, please report it on Discord.",
    "user.profile.base.wip.link": "Discord",
    "user.profile.base.zoomIn": "Zoom in",
    "user.profile.base.zoomOut": "Zoom out",
    "user.profile.enemies.aria": "Enemy handbook",
    "user.profile.enemies.average": "Community average: {value}",
    "user.profile.enemies.averageEncountered": "Community average: {value} encountered",
    "user.profile.enemies.averagePct": " ({pct}%)",
    "user.profile.enemies.card.locked": "Not encountered",
    "user.profile.enemies.card.portraitAlt": "{name} portrait",
    "user.profile.enemies.card.title": "{name} ({index})",
    "user.profile.enemies.card.titleMissing": "{name} ({index}) - not encountered",
    "user.profile.enemies.encountered": "encountered",
    "user.profile.enemies.kicker": "Enemy Handbook",
    "user.profile.enemies.level.all": "All Tiers",
    "user.profile.enemies.level.boss": "Boss",
    "user.profile.enemies.level.elite": "Elite",
    "user.profile.enemies.level.normal": "Normal",
    "user.profile.enemies.noMatch.body": "Try a different filter or clear your search.",
    "user.profile.enemies.noMatch.title": "No enemies match",
    "user.profile.enemies.noneYet": "No enemies recorded yet. Encountered enemies populate on the next profile resync.",
    "user.profile.enemies.progressAria": "{seen} of {total} enemies encountered, {pct}%",
    "user.profile.enemies.progressTooltip": "{seen} / {total} encountered",
    "user.profile.enemies.search.placeholder": "Search enemies...",
    "user.profile.enemies.status.all": "All",
    "user.profile.enemies.status.encountered": "Encountered",
    "user.profile.enemies.status.missing": "Missing",
    "user.profile.enemies.unavailable.body": "This player's enemy handbook is private, or their profile could not be found.",
    "user.profile.enemies.unavailable.title": "Enemy data unavailable",
    "user.profile.header.hiddenMarker": "Hidden from visitors",
    "user.profile.headerEditor.cancel": "Cancel",
    "user.profile.headerEditor.cards.add": "Add a card",
    "user.profile.headerEditor.cards.addOne": "Add {card}",
    "user.profile.headerEditor.cards.count": "{count} of {max}",
    "user.profile.headerEditor.cards.empty": "No cards: the row of stat cards is not shown.",
    "user.profile.headerEditor.cards.full": "The row holds up to {max} cards. Remove one to add another.",
    "user.profile.headerEditor.cards.list": "Stat card order",
    "user.profile.headerEditor.cards.moveDown": "Move {card} later",
    "user.profile.headerEditor.cards.moveUp": "Move {card} earlier",
    "user.profile.headerEditor.cards.moved": "{card} moved to position {position} of {total}.",
    "user.profile.headerEditor.cards.remove": "Remove {card}",
    "user.profile.headerEditor.cards.title": "Stat cards",
    "user.profile.headerEditor.field.level": "Level",
    "user.profile.headerEditor.field.registered": "Registration date",
    "user.profile.headerEditor.field.signIn": "Sign-in days",
    "user.profile.headerEditor.help": "Choose the stat cards under your header, and hide any number you'd rather keep to yourself. You still see a hidden number, marked, but visitors never receive it, and it leaves the leaderboards and search sorts that rank by it.",
    "user.profile.headerEditor.hidden.list": "Header numbers",
    "user.profile.headerEditor.hidden.title": "Hidden from visitors",
    "user.profile.headerEditor.hiddenBadge": "Hidden",
    "user.profile.headerEditor.hide": "Hide {field} from visitors",
    "user.profile.headerEditor.kicker": "Profile header",
    "user.profile.headerEditor.reset": "Reset to default",
    "user.profile.headerEditor.save": "Save",
    "user.profile.headerEditor.saveFailed.title": "Couldn't save your header",
    "user.profile.headerEditor.saved.body": "Visitors now see your header this way.",
    "user.profile.headerEditor.saved.title": "Header saved",
    "user.profile.headerEditor.show": "Show {field} to visitors",
    "user.profile.hero.changeBackground": "Change background",
    "user.profile.hero.copied.desc": "{value} copied to clipboard.",
    "user.profile.hero.copyFailed.desc": "Clipboard access was denied.",
    "user.profile.hero.copyUid": "Copy UID",
    "user.profile.hero.copyUsername": "Copy username",
    "user.profile.hero.days": "days",
    "user.profile.hero.editHeader": "Edit header numbers",
    "user.profile.hero.level.aria": "Level {level}, {current} of {required} EXP to level {next}",
    "user.profile.hero.level.ariaMax": "Level {level} (max)",
    "user.profile.hero.level.exp": "{current} / {required} EXP",
    "user.profile.hero.level.lv": "Lv",
    "user.profile.hero.level.max": "Max · {max}",
    "user.profile.hero.registered": "Registered ·",
    "user.profile.hero.serverTag": "{server} server",
    "user.profile.hero.share": "Share",
    "user.profile.hero.share.copied.desc": "Profile link copied to clipboard.",
    "user.profile.hero.share.copied.title": "Link copied",
    "user.profile.hero.share.failed.title": "Couldn't copy link",
    "user.profile.hero.signedIn": "Signed in ·",
    "user.profile.hero.uid.copied.title": "UID copied",
    "user.profile.hero.uid.failed.title": "Couldn't copy UID",
    "user.profile.hero.username.copied.title": "Username copied",
    "user.profile.hero.username.failed.title": "Couldn't copy username",
    "user.profile.items.aria": "Inventory items",
    "user.profile.items.card.dropStages": "{count, plural, one {# drop stage} other {# drop stages}}",
    "user.profile.items.card.drops": "drops",
    "user.profile.items.card.obtain": "Obtain",
    "user.profile.items.card.quantity": "Quantity",
    "user.profile.items.card.recipe": "Has crafting recipe",
    "user.profile.items.category.all": "All",
    "user.profile.items.category.chip": "Chips",
    "user.profile.items.category.consume": "Consumables",
    "user.profile.items.category.exp": "EXP",
    "user.profile.items.category.furniture": "Furniture",
    "user.profile.items.category.lmd": "Currency",
    "user.profile.items.category.mat": "Materials",
    "user.profile.items.category.module": "Module Mats",
    "user.profile.items.category.other": "Other",
    "user.profile.items.category.skill": "Skill Books",
    "user.profile.items.category.ticket": "Tickets",
    "user.profile.items.count.items": "items",
    "user.profile.items.count.total": "total",
    "user.profile.items.dialog.category": "Category",
    "user.profile.items.dialog.craftedIn": "Crafted in",
    "user.profile.items.dialog.expValue": "EXP value",
    "user.profile.items.dialog.obtainChannels": "Obtain channels",
    "user.profile.items.dialog.onHand": "On hand",
    "user.profile.items.dialog.rarity": "Rarity",
    "user.profile.items.dialog.type": "Type",
    "user.profile.items.dialog.usage": "Usage. ",
    "user.profile.items.dialog.voucherExchange": "Voucher exchange",
    "user.profile.items.empty.filtered.desc": "Try clearing filters or a different category.",
    "user.profile.items.empty.filtered.title": "No items match",
    "user.profile.items.empty.kicker": "Inventory",
    "user.profile.items.empty.none.desc": "This player's inventory is empty.",
    "user.profile.items.empty.none.title": "No items yet",
    "user.profile.items.itemLabel.all": "Item",
    "user.profile.items.itemLabel.chip": "Chip",
    "user.profile.items.itemLabel.consume": "Consumable",
    "user.profile.items.itemLabel.exp": "Battle Record",
    "user.profile.items.itemLabel.furniture": "Furniture",
    "user.profile.items.itemLabel.lmd": "Currency",
    "user.profile.items.itemLabel.mat": "Material",
    "user.profile.items.itemLabel.module": "Module mat",
    "user.profile.items.itemLabel.other": "Item",
    "user.profile.items.itemLabel.skill": "Skill book",
    "user.profile.items.itemLabel.ticket": "Ticket",
    "user.profile.items.openAria": "Open details for {name}",
    "user.profile.items.rarity.1": "1 Star",
    "user.profile.items.rarity.2": "2 Star",
    "user.profile.items.rarity.3": "3 Star",
    "user.profile.items.rarity.4": "4 Star",
    "user.profile.items.rarity.5": "5 Star",
    "user.profile.items.rarity.all": "All Rarities",
    "user.profile.items.rarity.placeholder": "Filter by Rarity",
    "user.profile.items.search.placeholder": "Search items...",
    "user.profile.items.sort.asc": "Asc",
    "user.profile.items.sort.category": "Sort by Category",
    "user.profile.items.sort.desc": "Desc",
    "user.profile.items.sort.name": "Sort by Name",
    "user.profile.items.sort.placeholder": "Sort by",
    "user.profile.items.sort.qty": "Sort by Quantity",
    "user.profile.items.sort.rarity": "Sort by Rarity",
    "user.profile.items.viewMode.aria": "View mode",
    "user.profile.items.viewMode.compact": "Compact view",
    "user.profile.items.viewMode.detailed": "Detailed view",
    "user.profile.layout.allHidden": "Every tab is hidden, so visitors will see only your profile header.",
    "user.profile.layout.cancel": "Cancel",
    "user.profile.layout.customize": "Customize",
    "user.profile.layout.help": "Drag tabs or use the arrows to change their order. A hidden tab stays visible to you, but visitors cannot open it or load its data.",
    "user.profile.layout.hiddenBadge": "Hidden",
    "user.profile.layout.hide": "Hide {tab} from visitors",
    "user.profile.layout.kicker": "Profile tabs",
    "user.profile.layout.list": "Tab order",
    "user.profile.layout.moveDown": "Move {tab} later",
    "user.profile.layout.moveUp": "Move {tab} earlier",
    "user.profile.layout.moved": "{tab} moved to position {position} of {total}.",
    "user.profile.layout.reset": "Reset to default",
    "user.profile.layout.save": "Save",
    "user.profile.layout.saveFailed.title": "Couldn't save your tabs",
    "user.profile.layout.saved.body": "Visitors now see your tabs in this order.",
    "user.profile.layout.saved.title": "Tabs saved",
    "user.profile.layout.show": "Show {tab} to visitors",
    "user.profile.noTabs.desc": "This player keeps every section of their profile private.",
    "user.profile.noTabs.eyebrow": "Private",
    "user.profile.notFound.desc": "No player with ID {id} exists, or their profile is private.",
    "user.profile.notFound.eyebrow": "Player",
    "user.profile.notFound.title": "Profile not found",
    "user.profile.optimizer.account.blurb": "Where to spend next across the account - promotions, masteries and modules, ranked by what each actually returns.",
    "user.profile.optimizer.account.label": "Account Optimizer",
    "user.profile.optimizer.base.blurb": "Solve the best peak staffing for the RIIC, then plans a shift rotation.",
    "user.profile.optimizer.base.label": "Base Optimizer",
    "user.profile.optimizer.comingSoon": "{name} is not built yet.",
    "user.profile.optimizer.noBaseData": "This profile has no base data to plan against yet.",
    "user.profile.plans.aria": "Operator plans",
    "user.profile.plans.eliteAlt": "Elite {elite}",
    "user.profile.plans.empty.desc": "This player hasn't pinned any plans to their profile yet.",
    "user.profile.plans.empty.title": "No public plans",
    "user.profile.plans.kicker": "Plans",
    "user.profile.plans.level": "Level",
    "user.profile.plans.modules": "Modules",
    "user.profile.plans.skillFallback": "Skill {n}",
    "user.profile.plans.skillLevel": "Lv.{level}",
    "user.profile.plans.skills": "Skills",
    "user.profile.plans.ungrouped": "Ungrouped",
    "user.profile.roster.aria": "Operator roster",
    "user.profile.roster.card.eliteAlt": "Elite {elite}",
    "user.profile.roster.card.level": "Level",
    "user.profile.roster.card.masteryAlt": "M{mastery}",
    "user.profile.roster.card.maxed": "Maxed",
    "user.profile.roster.card.moduleAlt": "Module",
    "user.profile.roster.card.moduleLevel": "Lv.{level}",
    "user.profile.roster.card.modules": "Modules",
    "user.profile.roster.card.noModules": "No modules unlocked.",
    "user.profile.roster.card.noSkills": "No skills found.",
    "user.profile.roster.card.potential": "Potential",
    "user.profile.roster.card.potentialAlt": "Potential {rank}",
    "user.profile.roster.card.rarityAlt": "{star} Star",
    "user.profile.roster.card.skillAlt": "Skill",
    "user.profile.roster.card.skillFallback": "Skill {n}",
    "user.profile.roster.card.skillLevel": "Lv.{level}",
    "user.profile.roster.card.skills": "Skills",
    "user.profile.roster.card.stat.atk": "ATK",
    "user.profile.roster.card.stat.block": "Block",
    "user.profile.roster.card.stat.cost": "Cost",
    "user.profile.roster.card.stat.def": "DEF",
    "user.profile.roster.card.stat.dp": "DP",
    "user.profile.roster.card.stat.hp": "HP",
    "user.profile.roster.card.stat.res": "RES",
    "user.profile.roster.card.trust": "Trust",
    "user.profile.roster.chips.source.headhunting": "Headhunting only",
    "user.profile.roster.chips.source.welfare": "Welfare only",
    "user.profile.roster.compact.levelAbbr": "LV",
    "user.profile.roster.compact.moduleStage": "{module} Stage {level}",
    "user.profile.roster.compact.skillLevel": "Skill {n}: Lv.{level}",
    "user.profile.roster.compact.skillMastery": "Skill {n}: M{mastery}",
    "user.profile.roster.detailed.currentPotential": "Current Potential",
    "user.profile.roster.detailed.loadingModules": "Loading modules…",
    "user.profile.roster.detailed.loadingSkills": "Loading skills…",
    "user.profile.roster.detailed.openAria": "Open details for {name}",
    "user.profile.roster.dialog.combatStats": "Combat Stats",
    "user.profile.roster.dialog.default": "Default",
    "user.profile.roster.dialog.elite": "Elite",
    "user.profile.roster.dialog.equipped": "Equipped",
    "user.profile.roster.dialog.info": "Info",
    "user.profile.roster.dialog.loading": "Loading…",
    "user.profile.roster.dialog.recruited": "Recruited",
    "user.profile.roster.dialog.recruited.unknown": "Unknown",
    "user.profile.roster.dialog.skillLevelBadge": "Lv. {level}",
    "user.profile.roster.dialog.voice": "Voice",
    "user.profile.roster.filters.all": "All",
    "user.profile.roster.filters.aria": "Roster filters",
    "user.profile.roster.filters.owned": "Owned",
    "user.profile.roster.filters.ownership": "Ownership",
    "user.profile.roster.filters.source": "Source",
    "user.profile.roster.filters.source.any": "Any",
    "user.profile.roster.filters.source.headhunting": "Headhunting",
    "user.profile.roster.filters.source.welfare": "Welfare",
    "user.profile.roster.filters.unowned": "Unowned",
    "user.profile.roster.gap.elite": "Promote to E{elite}",
    "user.profile.roster.gap.level": "Level to {level}",
    "user.profile.roster.gap.mastery": "{count, plural, one {# skill} other {# skills}} to M3",
    "user.profile.roster.gap.module": "{count, plural, one {# module} other {# modules}} to Lv 3",
    "user.profile.roster.gap.potential": "Max potential (P6)",
    "user.profile.roster.gap.skillLevel": "Skill rank to 7",
    "user.profile.roster.gap.trust": "Reach 100% trust",
    "user.profile.roster.search.placeholder": "Search operators...",
    "user.profile.roster.showing": "Showing {shown} of {total} operators. Scroll to load more.",
    "user.profile.roster.sort.asc": "Asc",
    "user.profile.roster.sort.desc": "Desc",
    "user.profile.roster.sort.investment": "Sort by Investment",
    "user.profile.roster.sort.level": "Sort by Level",
    "user.profile.roster.sort.maxed": "Sort by Maxed",
    "user.profile.roster.sort.obtained": "Sort by Obtained",
    "user.profile.roster.sort.placeholder": "Sort by",
    "user.profile.roster.sort.potential": "Sort by Potential",
    "user.profile.roster.sort.rarity": "Sort by Rarity",
    "user.profile.roster.sort.trust": "Sort by Trust",
    "user.profile.roster.unowned.badge": "Not Owned",
    "user.profile.roster.viewMode.aria": "View mode",
    "user.profile.roster.viewMode.compact": "Compact view",
    "user.profile.roster.viewMode.detailed": "Detailed view",
    "user.profile.roster.voice.cn": "Chinese",
    "user.profile.roster.voice.cnTopolect": "CN Regional",
    "user.profile.roster.voice.en": "English",
    "user.profile.roster.voice.ita": "Italian",
    "user.profile.roster.voice.jp": "Japanese",
    "user.profile.roster.voice.kr": "Korean",
    "user.profile.roster.voice.linkage": "Collab",
    "user.profile.roster.voice.rus": "Russian",
    "user.profile.showcase.add.added": "Added",
    "user.profile.showcase.add.back": "Back",
    "user.profile.showcase.add.checking": "Checking…",
    "user.profile.showcase.add.close": "Close",
    "user.profile.showcase.add.description": "Choose what the block shows.",
    "user.profile.showcase.add.gridTitle": "Add a grid",
    "user.profile.showcase.add.kindTitle": "Favourites of which type?",
    "user.profile.showcase.add.noGrids": "You have no grids yet.",
    "user.profile.showcase.add.noPlans": "No plan is shown on your profile. Turn on 'Show on profile' for a plan in the planner first.",
    "user.profile.showcase.add.noTierLists": "You have no tier lists yet.",
    "user.profile.showcase.add.notALink": "That isn't a link to a grid.",
    "user.profile.showcase.add.notATierListLink": "That isn't a link to a tier list.",
    "user.profile.showcase.add.notFound": "Nothing found at that link.",
    "user.profile.showcase.add.pasteAdd": "Add",
    "user.profile.showcase.add.pasteLabel": "Or paste a link",
    "user.profile.showcase.add.pastePlaceholder": "Link or slug",
    "user.profile.showcase.add.planTitle": "Add a plan",
    "user.profile.showcase.add.size": "{rows} × {cols}",
    "user.profile.showcase.add.tierListTitle": "Add a tier list",
    "user.profile.showcase.add.title": "Add a block",
    "user.profile.showcase.add.yours": "Yours",
    "user.profile.showcase.aria": "Showcase",
    "user.profile.showcase.block.favourites.count": "{count, plural, one {# pick} other {# picks}}",
    "user.profile.showcase.block.grid": "Grid",
    "user.profile.showcase.block.open": "Open",
    "user.profile.showcase.block.openAria": "Open {title}",
    "user.profile.showcase.block.plan": "Plan",
    "user.profile.showcase.block.plansHidden": "Only you: your Plans tab is hidden",
    "user.profile.showcase.block.tierList": "Tier list",
    "user.profile.showcase.block.tierList.viewAll": "View full tier list",
    "user.profile.showcase.edit": "Edit showcase",
    "user.profile.showcase.editor.add": "Add block",
    "user.profile.showcase.editor.cancel": "Cancel",
    "user.profile.showcase.editor.count": "{count} / {max} blocks",
    "user.profile.showcase.editor.dropped": "{count, plural, one {# removed or empty item will be dropped when you save.} other {# removed or empty items will be dropped when you save.}}",
    "user.profile.showcase.editor.empty": "No blocks yet. Add one to start your showcase.",
    "user.profile.showcase.editor.emptyFavourites": "Nothing picked yet. An empty block is not saved.",
    "user.profile.showcase.editor.entities": "{count} / {max}",
    "user.profile.showcase.editor.entitiesList": "Favourites in this block",
    "user.profile.showcase.editor.entityHint": "Drag to reorder, or focus a pick and use the arrow keys. Delete removes it.",
    "user.profile.showcase.editor.favouritesOf": "Favourite {kind}",
    "user.profile.showcase.editor.full": "A showcase holds up to {max} blocks.",
    "user.profile.showcase.editor.help": "Add blocks, then drag them or use the arrows to set the order. Visitors see them top to bottom, before any other tab.",
    "user.profile.showcase.editor.kicker": "Edit showcase",
    "user.profile.showcase.editor.list": "Showcase blocks",
    "user.profile.showcase.editor.moveDown": "Move {item} down",
    "user.profile.showcase.editor.moveUp": "Move {item} up",
    "user.profile.showcase.editor.moved": "{item} moved to position {position} of {total}",
    "user.profile.showcase.editor.pick": "Choose",
    "user.profile.showcase.editor.plansHidden": "Your Plans tab is hidden, so visitors don't see plan blocks.",
    "user.profile.showcase.editor.remove": "Remove {item}",
    "user.profile.showcase.editor.save": "Save",
    "user.profile.showcase.editor.saveFailed.title": "Couldn't save your showcase",
    "user.profile.showcase.editor.saved.body": "Visitors now see these blocks first.",
    "user.profile.showcase.editor.saved.title": "Showcase saved",
    "user.profile.showcase.editor.titleLabel": "Block title",
    "user.profile.showcase.editor.titlePlaceholder": "{kind} (optional title)",
    "user.profile.showcase.editor.type.favourites": "Favourites",
    "user.profile.showcase.editor.type.favouritesDesc": "Up to 24 operators, skins, events, enemies, chapters or more, of one type.",
    "user.profile.showcase.editor.type.grid": "Grid",
    "user.profile.showcase.editor.type.gridDesc": "One of your grids, or any grid by its link.",
    "user.profile.showcase.editor.type.plan": "Plan",
    "user.profile.showcase.editor.type.planDesc": "An operator plan you show on your profile.",
    "user.profile.showcase.editor.type.tierList": "Tier list",
    "user.profile.showcase.editor.type.tierListDesc": "One of your tier lists, or any tier list by its link.",
    "user.profile.showcase.editor.unknownGrid": "Grid {slug}",
    "user.profile.showcase.editor.unknownPlan": "A plan",
    "user.profile.showcase.editor.unknownTierList": "Tier list {slug}",
    "user.profile.showcase.empty.cta": "Set up your showcase",
    "user.profile.showcase.empty.desc": "Pick favourite operators, skins, events or story chapters, and pin your grids, tier lists and plans. Visitors see your showcase first.",
    "user.profile.showcase.empty.kicker": "Showcase",
    "user.profile.showcase.empty.title": "Make this profile yours",
    "user.profile.showcase.error": "The showcase couldn't be loaded.",
    "user.profile.showcase.faction.cardBuild": "{name}: show {player}'s build",
    "user.profile.showcase.faction.cardPage": "{name}: open operator page",
    "user.profile.showcase.faction.count": "{count, plural, one {# operator} other {# operators}}",
    "user.profile.showcase.faction.empty": "No operator in this server's data belongs to this faction.",
    "user.profile.showcase.faction.emptyOwned": "{player} owns none of these operators.",
    "user.profile.showcase.faction.gridLabel": "Operators of {name}",
    "user.profile.showcase.faction.owned": "Owned",
    "user.profile.showcase.faction.ownedCount": "{owned} of {count} owned",
    "user.profile.showcase.faction.ownedOnly": "Owned only",
    "user.profile.showcase.faction.private": "{player}'s roster is private, so ownership isn't shown.",
    "user.profile.showcase.faction.unobtainable": "Not obtainable",
    "user.profile.showcase.faction.upcoming": "Upcoming: not yet on this server ({count})",
    "user.profile.showcase.faction.upcomingAria": "{name}: upcoming, open operator page",
    "user.profile.showcase.operator.loading": "Loading {name}'s build",
    "user.profile.showcase.operator.notOwned": "Not in {player}'s roster.",
    "user.profile.showcase.operator.openPage": "Open operator page",
    "user.profile.showcase.operator.private": "{player}'s roster is private, so their build of this operator isn't shown.",
    "user.profile.showcase.picker.count": "{count} of {max} picked",
    "user.profile.showcase.picker.description": "Pick up to {max}. Pick one again to take it out.",
    "user.profile.showcase.picker.done": "Done",
    "user.profile.showcase.picker.title": "Choose {kind}",
    "user.profile.showcase.player": "Player {uid}",
    "user.profile.showcase.removed.badge": "Removed",
    "user.profile.showcase.removed.entity": "Unknown entry {id}",
    "user.profile.showcase.removed.favourites": "The game data no longer has these entries. Visitors don't see this block.",
    "user.profile.showcase.removed.grid": "This grid was deleted. Visitors don't see this block; remove it in the editor.",
    "user.profile.showcase.removed.plan": "This plan was deleted or is no longer shown on your profile. Visitors don't see this block.",
    "user.profile.showcase.removed.tierList": "This tier list was deleted. Visitors don't see this block; remove it in the editor.",
    "user.profile.showcase.retry": "Try again",
    "user.profile.showcase.tabHidden": "Your Showcase tab is hidden, so visitors don't see it. Show it again from Customize.",
    "user.profile.showcase.tile.factionAria": "{name}: show its operators",
    "user.profile.showcase.tile.operatorAria": "{name}: show {player}'s build",
    "user.profile.skins.badge.missing": "Missing",
    "user.profile.skins.badge.owned": "Owned",
    "user.profile.skins.card.aria": "View {operator} · {skin}",
    "user.profile.skins.card.fallbackName": "Skin",
    "user.profile.skins.channel.codeExchange": "Code Exchange",
    "user.profile.skins.channel.collab": "Collab",
    "user.profile.skins.channel.event": "Event Reward",
    "user.profile.skins.channel.is": "IS Reward",
    "user.profile.skins.channel.seasonal": "Seasonal",
    "user.profile.skins.channel.specialPack": "Special Pack",
    "user.profile.skins.detail.close": "Back to collection",
    "user.profile.skins.detail.ofUsers": "of users own this",
    "user.profile.skins.detail.ownerCount": "{n} owners",
    "user.profile.skins.detail.popularity": "Popularity",
    "user.profile.skins.empty.noQuery": "Try switching the ownership filter.",
    "user.profile.skins.empty.title": "No skins match your filters",
    "user.profile.skins.empty.withQuery": "Try a different search or switch the ownership filter.",
    "user.profile.skins.filter.all": "All",
    "user.profile.skins.filter.missing": "Missing",
    "user.profile.skins.filter.owned": "Owned",
    "user.profile.skins.header.missing": "missing",
    "user.profile.skins.header.owned": "owned",
    "user.profile.skins.header.total": "total",
    "user.profile.skins.popularity.tooltip": "{owners} owners ({pct}% of imported users)",
    "user.profile.skins.price.bundle": "Bundle",
    "user.profile.skins.price.bundle.tooltip": "Obtain from Special Pack",
    "user.profile.skins.price.free": "Free",
    "user.profile.skins.price.is": "IS",
    "user.profile.skins.price.op": "{op} OP",
    "user.profile.skins.price.store.tooltip": "Outfit Store",
    "user.profile.skins.search.aria": "Search skins",
    "user.profile.skins.search.clear": "Clear search",
    "user.profile.skins.search.placeholder": "Search by operator or skin…",
    "user.profile.skins.section.all": "All Skins",
    "user.profile.skins.section.other": "Other",
    "user.profile.skins.sort.brand": "Brand",
    "user.profile.skins.sort.date": "Date",
    "user.profile.skins.sort.label": "Sort",
    "user.profile.skins.sort.popularity": "Popularity",
    "user.profile.skins.title": "Skin Collection",
    "user.profile.stats.classes.title": "Class Breakdown",
    "user.profile.stats.collection.caption": "operators collected",
    "user.profile.stats.collection.completion": "Completion",
    "user.profile.stats.collection.title": "Operator Collection",
    "user.profile.stats.elite.e0": "Elite 0",
    "user.profile.stats.elite.e1": "Elite 1",
    "user.profile.stats.elite.e2": "Elite 2",
    "user.profile.stats.elite.title": "Elite Promotion",
    "user.profile.stats.gaps.allComplete": "All Complete",
    "user.profile.stats.gaps.overflow": "+ {n} more (not rendered)",
    "user.profile.stats.gaps.showAria": "Show {value} {label}",
    "user.profile.stats.gaps.toGo": "To Go",
    "user.profile.stats.gaps.total": "total",
    "user.profile.stats.mastery.gap.levels": "levels",
    "user.profile.stats.mastery.gap.levels.tooltip": "Skill levels remaining to reach Mastery 3 across all E2 operators",
    "user.profile.stats.mastery.gap.m3": "pending M3",
    "user.profile.stats.mastery.gap.m3.tooltip": "Click to view E2 operators without any skill at Mastery 3 yet",
    "user.profile.stats.mastery.gap.m6": "pending M6",
    "user.profile.stats.mastery.gap.m6.tooltip": "Click to view operators with 1 skill at M3 still needing a second",
    "user.profile.stats.mastery.gap.m9": "pending M9",
    "user.profile.stats.mastery.gap.m9.tooltip": "Click to view operators with 2 skills at M3 still needing a third",
    "user.profile.stats.mastery.m3.tooltip": "Operators with at least one Mastery 3 skill",
    "user.profile.stats.mastery.m6.tooltip": "Operators with 2 skills at Mastery 3",
    "user.profile.stats.mastery.m9.tooltip": "Operators with all 3 skills at Mastery 3",
    "user.profile.stats.mastery.ofMax": "{pct}% of max possible (E2 only)",
    "user.profile.stats.mastery.title": "Skill Mastery",
    "user.profile.stats.mastery.totalLevels": "Total Mastery Levels",
    "user.profile.stats.modules.gap.belowMax": "below max",
    "user.profile.stats.modules.gap.belowMax.tooltip": "Click to view unlocked modules that are not yet at level 3",
    "user.profile.stats.modules.gap.locked": "locked",
    "user.profile.stats.modules.gap.locked.tooltip": "Click to view modules available on owned operators but not unlocked",
    "user.profile.stats.modules.maxLevel": "Max Lv",
    "user.profile.stats.modules.maxLevel.tooltip": "Modules upgraded to level 3",
    "user.profile.stats.modules.title": "Modules",
    "user.profile.stats.modules.unlockRate": "Unlock Rate",
    "user.profile.stats.modules.unlocked": "Unlocked",
    "user.profile.stats.modules.unlocked.tooltip": "{unlocked} of {total} available modules unlocked",
    "user.profile.stats.rosterPrivate": "This player keeps their roster private, so the statistics drawn from it are hidden too.",
    "user.profile.stats.signin.accountAge": "Account age",
    "user.profile.stats.signin.age": "days since joining",
    "user.profile.stats.signin.age.days": "{n}d",
    "user.profile.stats.signin.age.months": "{months}mo",
    "user.profile.stats.signin.age.years": "{years}y",
    "user.profile.stats.signin.age.yearsMonths": "{years}y {months}mo",
    "user.profile.stats.signin.behind": "Days behind",
    "user.profile.stats.signin.behind.days": "{count, plural, one {day} other {days}}",
    "user.profile.stats.signin.calendar.title": "Daily Sign-In",
    "user.profile.stats.signin.cardDays.tooltip": "{cardDays} of this month's {claimed} claims came with the monthly card",
    "user.profile.stats.signin.caughtUp": "All caught up",
    "user.profile.stats.signin.cell.day": "Day {day}",
    "user.profile.stats.signin.cell.monthlyCard": "Monthly card",
    "user.profile.stats.signin.cell.nextUp": "Next up",
    "user.profile.stats.signin.claimReady": "· claim ready",
    "user.profile.stats.signin.claimed": "claimed",
    "user.profile.stats.signin.lastOnline": "Last online",
    "user.profile.stats.signin.memberSince": "Member since",
    "user.profile.stats.signin.missed": "Days missed",
    "user.profile.stats.signin.missed.tooltip": "Days since joining without a sign-in",
    "user.profile.stats.signin.rate": "Sign-in rate",
    "user.profile.stats.signin.record.title": "Sign-In Record",
    "user.profile.stats.signin.state.claimed": "Claimed",
    "user.profile.stats.signin.state.unclaimed": "Unclaimed",
    "user.profile.stats.signin.state.upcoming": "Upcoming",
    "user.profile.stats.signin.summary": "{month}: {claimed} of {elapsed} days claimed, as of {date}",
    "user.profile.stats.signin.synced": "Synced {ago}",
    "user.profile.stats.signin.syncedTitle": "Last synced {date}",
    "user.profile.stats.signin.thisMonth": "This month",
    "user.profile.stats.signin.thisMonth.tooltip": "Sign-ins claimed this month, out of the days elapsed",
    "user.profile.stats.signin.total": "total sign-ins",
    "user.profile.stats.signin.total.tooltip": "Lifetime cumulative sign-in days",
    "user.profile.stats.skins.collected": "Skins Collected",
    "user.profile.stats.skins.collected.tooltip": "{owned} of {total} non-default skins collected",
    "user.profile.stats.skins.gap.missing": "missing",
    "user.profile.stats.skins.gap.missing.tooltip": "Open the skin collection viewer",
    "user.profile.stats.skins.rate": "Collected",
    "user.profile.stats.skins.title": "Skins",
    "user.profile.stats.top.completeAria": "{pct}% complete",
    "user.profile.stats.top.fullyBuilt": "Fully built",
    "user.profile.stats.top.level": "Lv {level}",
    "user.profile.stats.top.remaining": "Remaining",
    "user.profile.stats.top.title": "Top Operators",
    "user.profile.strip.items.kicker": "Items",
    "user.profile.strip.operators.kicker": "Operators",
    "user.profile.strip.skins.kicker": "Skins",
    "user.profile.tab.enemies": "Enemies",
    "user.profile.tab.inventory": "Inventory",
    "user.profile.tab.optimizer": "Optimizer",
    "user.profile.tab.plans": "Plans",
    "user.profile.tab.roster": "Roster",
    "user.profile.tab.score": "Score",
    "user.profile.tab.showcase": "Showcase",
    "user.profile.tab.stats": "Stats",
    "user.profile.tabs.label": "Profile sections",
    "user.profile.tabs.private": "Hidden from visitors",
    "user.score.beta.note": "Scoring is subject to change and in the very early stages of development. Score is based off of potential completion, NOT how \"meta\" your account is.",
    "user.score.beta.tag": "Beta",
    "user.score.contribution.segment": "{label}: {earned} of {share} pts",
    "user.score.contribution.title": "Grade composition",
    "user.score.empty.desc": "This player's grade hasn't been calculated. Scores are computed periodically once enough data is on file.",
    "user.score.empty.title": "No score yet",
    "user.score.global": "global",
    "user.score.history.empty": "History builds one point per leaderboard snapshot - check back after the next one.",
    "user.score.history.loading": "Loading history…",
    "user.score.history.title": "Score history",
    "user.score.history.trend": "{delta} pts over {count, plural, one {# point} other {# points}}",
    "user.score.improvements.base.empty": "Component breakdown appears after the next score refresh.",
    "user.score.improvements.base.infrastructure.desc": "What your rooms can achieve as built, against the same rooms at max level.",
    "user.score.improvements.base.infrastructure.label": "Upgrades",
    "user.score.improvements.base.optimizerHint": "Plan restaffing and see the full room-by-room comparison in the Optimizer tab.",
    "user.score.improvements.base.title": "Score breakdown",
    "user.score.improvements.base.utilization.desc": "Sustained daily yield of your base as stationed, against the optimizer's best staffing of your own roster on the same rooms.",
    "user.score.improvements.base.utilization.label": "Stationing",
    "user.score.improvements.base.weight": "{pct}% of this score",
    "user.score.improvements.medal.daysLeft": "{days}d left",
    "user.score.improvements.medal.empty": "You've earned every medal that's currently reachable. Nice work.",
    "user.score.improvements.medal.ended": "Ended {date}",
    "user.score.improvements.medal.endingNow": "ending now",
    "user.score.improvements.medal.event.subtitle": "Sorted by earliest ending. Hidden medals are still listed but their hint is suppressed.",
    "user.score.improvements.medal.event.title": "Event medals - limited time",
    "user.score.improvements.medal.hidden": "Hidden",
    "user.score.improvements.medal.hidden.tooltip": "Hidden medal - unlock condition isn't shown in-game.",
    "user.score.improvements.medal.hide": "Hide",
    "user.score.improvements.medal.lockTooltip": "Requires {operator}, a {reason} operator you don't own. Excluded from your medal score until you have them.",
    "user.score.improvements.medal.locked.subtitle": "These require a collab operator you don't own. Since collab operators aren't normally obtainable, these medals don't count toward your medal score. Earn the operator in a rerun and they'll count again. Shown for reference.",
    "user.score.improvements.medal.locked.title": "Behind unavailable operators",
    "user.score.improvements.medal.missingCount": "{n} missing",
    "user.score.improvements.medal.ownedTooltip": "Earned by {pct}% of synced players on your server who share stats - how rare this medal is in the community.",
    "user.score.improvements.medal.permanent.subtitle": "Sorted by rarity desc. Highest-rarity gaps first.",
    "user.score.improvements.medal.permanent.title": "Permanent medals",
    "user.score.improvements.medal.show": "Show {n}",
    "user.score.improvements.medal.unobtainable.subtitle": "These medals' windows have passed and won't reopen. Past event medals still count in your score with decaying weight rather than against the permanent pool; one-time modes and retired towers are excluded. Shown for reference.",
    "user.score.improvements.medal.unobtainable.title": "No longer obtainable",
    "user.score.improvements.operator.bucket.gainTitle": "Maxing every {rarity}★ below milestone adds ~{gain}% to this section's score.",
    "user.score.improvements.operator.bucket.toUpgrade": "to upgrade",
    "user.score.improvements.operator.byType": "By upgrade type · % gained in this section",
    "user.score.improvements.operator.clearFilter": "Clear filter ({n} shown)",
    "user.score.improvements.operator.count": "{n} total · +{gain} to overall grade",
    "user.score.improvements.operator.dim.earned": "{pct}% earned",
    "user.score.improvements.operator.dim.elite.label": "Elites",
    "user.score.improvements.operator.dim.elite.tooltip": "promotion progress toward each operator's max elite",
    "user.score.improvements.operator.dim.footnote": "Each row is one investment axis: {unit}, both in % of this section. Every operator you own is graded, raised or not, so an unraised pull counts against you until you build it. What an axis is worth depends on your roster (rarer operators and their masteries/modules count for more); the earned figures add up to the section score at the top of the card.",
    "user.score.improvements.operator.dim.footnote.unit": "earned / available",
    "user.score.improvements.operator.dim.level.label": "Levels",
    "user.score.improvements.operator.dim.level.tooltip": "level progress across all elite phases",
    "user.score.improvements.operator.dim.mastery.label": "Masteries",
    "user.score.improvements.operator.dim.mastery.tooltip": "skill masteries, anchored on M3 milestones",
    "user.score.improvements.operator.dim.module.label": "Modules",
    "user.score.improvements.operator.dim.module.tooltip": "advanced module levels, anchored on Mod3 milestones",
    "user.score.improvements.operator.dim.potential.label": "Potential",
    "user.score.improvements.operator.dim.potential.tooltip": "potential on operators where dupes are scarce",
    "user.score.improvements.operator.dim.rowTitle": "{label}: worth {share}% of this section. You've completed {completion}% of that, earning {earned}%.",
    "user.score.improvements.operator.dim.rowTitleDetail": "{label} - {detail}: worth {share}% of this section. You've completed {completion}% of that, earning {earned}%.",
    "user.score.improvements.operator.dim.skillLevel.label": "Skill levels",
    "user.score.improvements.operator.dim.skillLevel.tooltip": "skill levels toward SL7 on operators without masteries",
    "user.score.improvements.operator.dim.title": "Where your score comes from",
    "user.score.improvements.operator.dim.trust.label": "Trust",
    "user.score.improvements.operator.dim.trust.tooltip": "trust toward 100% (200% for published support units)",
    "user.score.improvements.operator.empty": "Every owned operator is at their last milestone - nothing to upgrade here.",
    "user.score.improvements.operator.footnote": "The header's {gain} is what finishing every upgrade here would add to your headline score. The per-tag, per-rarity, and per-operator figures below are {unit} (the percentage shown at the top of the card) - there's +{room}% of room left here to climb toward 100%. ELITE includes a full re-level at the new phase, so it overlaps MAX_LEVEL; the per-op total deduplicates the pair.",
    "user.score.improvements.operator.footnote.headerGain": "+{gain} to overall grade",
    "user.score.improvements.operator.footnote.sectionUnit": "% of this section",
    "user.score.improvements.operator.noMatch": "No operators match this filter.",
    "user.score.improvements.operator.row.gainTitle": "Completing every upgrade on {name} would add ~{section}% to this section (~{overall} to your overall grade). ELITE/MAX_LEVEL overlap is deduped.",
    "user.score.improvements.operator.tag.elite.desc": "Elite promotion",
    "user.score.improvements.operator.tag.elite.detail": "promoting to max elite and re-leveling to its new cap",
    "user.score.improvements.operator.tag.elite.label": "E↑",
    "user.score.improvements.operator.tag.m3.desc": "Mastery 3",
    "user.score.improvements.operator.tag.m3.detail": "raising one skill to Mastery 3",
    "user.score.improvements.operator.tag.m3.label": "M3",
    "user.score.improvements.operator.tag.maxLevel.desc": "Level cap",
    "user.score.improvements.operator.tag.maxLevel.detail": "leveling to the cap of this operator's current elite phase",
    "user.score.improvements.operator.tag.maxLevel.label": "Lvl",
    "user.score.improvements.operator.tag.mod3.desc": "Module L3",
    "user.score.improvements.operator.tag.mod3.detail": "raising one advanced module to Level 3",
    "user.score.improvements.operator.tag.mod3.label": "Mod",
    "user.score.improvements.operator.tag.pot6.desc": "Potential 6",
    "user.score.improvements.operator.tag.pot6.detail": "reaching Potential 6",
    "user.score.improvements.operator.tag.pot6.label": "Pot",
    "user.score.improvements.operator.tag.sl7.desc": "Skill 7",
    "user.score.improvements.operator.tag.sl7.detail": "raising the shared skill level to 7",
    "user.score.improvements.operator.tag.sl7.label": "SL7",
    "user.score.improvements.operator.tag.tooltip": "{desc} - {detail}: {value}",
    "user.score.improvements.operator.tag.tooltip.gain": "+{section}% to this section (+{overall} to overall grade)",
    "user.score.improvements.operator.tag.tooltip.negligible": "less than 0.01% - negligible",
    "user.score.improvements.operator.tag.trust.desc": "Max trust",
    "user.score.improvements.operator.tag.trust.detail": "reaching the trust target (200% for published support units, 100% otherwise)",
    "user.score.improvements.operator.tag.trust.label": "Trust",
    "user.score.improvements.operator.title": "Operators below milestone",
    "user.score.improvements.roguelike.bands": "Bands",
    "user.score.improvements.roguelike.bp": "BP levels",
    "user.score.improvements.roguelike.capsules": "Capsules",
    "user.score.improvements.roguelike.challenges": "Challenges",
    "user.score.improvements.roguelike.collectibles": "Collectibles",
    "user.score.improvements.roguelike.difficulty": "Difficulty",
    "user.score.improvements.roguelike.empty": "No roguelike themes loaded for this account.",
    "user.score.improvements.roguelike.endings": "Endings",
    "user.score.improvements.roguelike.endings.special.count": "The game data lists {special, plural, one {it} other {them}} as {special, plural, one {an ending} other {endings}}, so this counts {total}: {regular} from regular runs plus {special}.",
    "user.score.improvements.roguelike.endings.special.item": "{name} comes from {mode}.",
    "user.score.improvements.roguelike.endings.special.itemNoMode": "{name} is not reached in a regular run.",
    "user.score.improvements.roguelike.endings.special.label": "About the endings count",
    "user.score.improvements.roguelike.relics": "Relics",
    "user.score.improvements.sandbox.empty": "No RA progress detected. Start RA in Operation Originium Dust to begin tracking.",
    "user.score.improvements.sandbox.weight": "{pct}% of RA",
    "user.score.improvements.showLess": "Show less",
    "user.score.improvements.showMore": "Show {n} more",
    "user.score.improvements.stage.annihilation.available": "Available now",
    "user.score.improvements.stage.annihilation.availableSubtitle": "The three permanent maps and the current weekly rotation. State 2 means cleared but enemy-kill count is below the cap; reaching the cap unlocks the full Orundum reward.",
    "user.score.improvements.stage.annihilation.count": "{n} to do now",
    "user.score.improvements.stage.annihilation.locked": "Not in rotation",
    "user.score.improvements.stage.annihilation.lockedSubtitle": "Rotating maps that aren't playable right now, so they can't be maxed until their rotation returns. These are scored on a recency curve rather than as permanent gaps - shown for reference.",
    "user.score.improvements.stage.annihilation.maxed": "Every currently-playable Annihilation map is maxed.",
    "user.score.improvements.stage.chip.lockedTitle": "{label} - rotated out, not currently playable",
    "user.score.improvements.stage.chip.named": "{code} - {name}",
    "user.score.improvements.stage.cleared": "Cleared",
    "user.score.improvements.stage.event": "Event",
    "user.score.improvements.stage.missing": "Missing",
    "user.score.improvements.stage.missing.empty": "All stages cleared.",
    "user.score.improvements.stage.notThree.empty": "Every clear is 3★.",
    "user.score.improvements.stage.notThree.subtitle": "Run again with a sharper squad to hit 3-star.",
    "user.score.improvements.stage.notThree.title": "Cleared, not 3★",
    "user.score.improvements.stage.notThreeStarred": "Not 3-starred",
    "user.score.improvements.stage.permanent": "Permanent",
    "user.score.improvements.stage.threeStarCount": "{done} / {total} 3★",
    "user.score.improvements.stage.threeStarred": "3-starred",
    "user.score.improvements.stage.total": "{n} total",
    "user.score.improvements.unavailable": "Improvements unavailable. Profile may be private or not yet synced.",
    "user.score.ladder.title": "Grade ladder",
    "user.score.ladder.top": "Top of the ladder - nothing left to climb.",
    "user.score.next.fastest": "- fastest through {section}, worth {share}% of the grade with headroom left",
    "user.score.next.points": "{points} points",
    "user.score.next.step": "{points} to {grade}",
    "user.score.overall.calculated": "Calculated · {date}",
    "user.score.overall.composite": "composite",
    "user.score.overall.title": "Overall Grade",
    "user.score.section.base.desc": "Yield vs. your optimal setup",
    "user.score.section.base.label": "Base",
    "user.score.section.medal.desc": "Achievement collection",
    "user.score.section.medal.label": "Medals",
    "user.score.section.operator.desc": "Roster depth & investment",
    "user.score.section.operator.label": "Operator",
    "user.score.section.roguelike.desc": "IS endings & relics",
    "user.score.section.roguelike.label": "Roguelike",
    "user.score.section.sandbox.desc": "Progress & nodes",
    "user.score.section.sandbox.label": "RA",
    "user.score.section.stage.desc": "Story & event clears",
    "user.score.section.stage.label": "Stages",
    "user.score.standing.thisWeek": "this week",
    "user.score.standing.top": "top {pct}%",
    "user.score.sub.details.collapse": "{label} details - collapse",
    "user.score.sub.details.expand": "{label} details - expand",
    "user.score.sub.hideBreakdown": "Hide breakdown",
    "user.score.sub.progress": "Progress",
    "user.score.sub.shareBadge": "{share}% of grade",
    "user.score.sub.shareTooltip": "Worth {share}% of your overall grade - at {pct}%, this section contributes {contribution} of those {share} points",
    "user.score.sub.whatToImprove": "What can I improve?",
    "user.search.breadcrumb.current": "Search",
    "user.search.breadcrumb.doctors": "Players",
    "user.search.breadcrumb.label": "Breadcrumb",
    "user.search.browsing": "Browsing public profiles by total score",
    "user.search.browsingBy": "Browsing public profiles by {sort}",
    "user.search.card.level": "Lv {level}",
    "user.search.card.metric.enemies": "{count, plural, one {# enemy} other {# enemies}}",
    "user.search.card.metric.joined": "Joined {date}",
    "user.search.card.metric.masteries": "{count} M3",
    "user.search.card.metric.modules": "{count, plural, one {# Lv3 module} other {# Lv3 modules}}",
    "user.search.card.metric.operators": "{count, plural, one {# operator} other {# operators}}",
    "user.search.card.metric.potentials": "{count, plural, one {# potential} other {# potentials}}",
    "user.search.card.metric.scoped": "{count, plural, one {# {label}} other {# {label}s}}",
    "user.search.card.metric.skins": "{count, plural, one {# skin} other {# skins}}",
    "user.search.card.operators": "ops",
    "user.search.card.points": "pts",
    "user.search.card.skins": "skins",
    "user.search.clearSearch": "Clear search",
    "user.search.count.unit": "{count, plural, one {player} other {players}}",
    "user.search.empty.filtered.desc": "Loosen a filter, or clear them all to browse every public profile.",
    "user.search.empty.filtered.title": "No player matches these filters",
    "user.search.empty.noResults.desc": "No public profiles match {query}. Try a different nickname.",
    "user.search.empty.noResults.title": "No players found",
    "user.search.empty.none.desc": "Public profiles will appear here as players opt in.",
    "user.search.empty.none.title": "No public profiles yet",
    "user.search.input.label": "Search players",
    "user.search.input.placeholder": "Search by nickname or UID…",
    "user.search.operatorPicker.empty": "No matching operators.",
    "user.search.operatorPicker.loading": "Loading operators…",
    "user.search.operatorPicker.rarity": "{rarity}★",
    "user.search.quotedQuery": "\"{query}\"",
    "user.search.resultsFor": "Results for",
    "user.search.scope.anyArchetype": "Whole class",
    "user.search.scope.archetype": "Archetype",
    "user.search.scope.class": "Class",
    "user.search.scope.loading": "Loading archetypes…",
    "user.search.sort.enemies": "Enemies discovered",
    "user.search.sort.joined": "Joined the game",
    "user.search.sort.masteries": "Masteries (M3)",
    "user.search.sort.modules": "Modules (Lv3)",
    "user.search.sort.operators": "Operators owned",
    "user.search.sort.potentials": "Potentials",
    "user.search.sort.scoped": "{label} operators",
    "user.search.sort.score": "Score",
    "user.search.sort.skins": "Skins owned",
    "user.search.subtitle": "Find player profiles by nickname or browse public profiles ranked by score.",
    "user.search.title": "Search Players",
    "user.search.toolbar.all.aria": "Owns every operator of a class or archetype",
    "user.search.toolbar.all.clear": "Clear",
    "user.search.toolbar.all.hint": "Only players who own every obtainable operator of the chosen scope on their own server.",
    "user.search.toolbar.all.label": "Owns every",
    "user.search.toolbar.all.none": "Not set",
    "user.search.toolbar.clearFilters": "Clear filters",
    "user.search.toolbar.dir.aria": "Sort direction",
    "user.search.toolbar.dir.asc": "Low to high",
    "user.search.toolbar.dir.desc": "High to low",
    "user.search.toolbar.dir.joined.asc": "Oldest first",
    "user.search.toolbar.dir.joined.desc": "Newest first",
    "user.search.toolbar.filters": "Filters",
    "user.search.toolbar.filters.count": "{count, plural, =0 {none active} one {# active} other {# active}}",
    "user.search.toolbar.has.label": "Owns operators",
    "user.search.toolbar.has.placeholder": "Add an operator…",
    "user.search.toolbar.rankBy": "Rank by",
    "user.search.toolbar.rankBy.aria": "Rank players by",
    "user.search.toolbar.rankBy.group.metric": "Roster metric",
    "user.search.toolbar.rankBy.group.scope": "Operators of a class",
    "user.search.toolbar.support.label": "Support unit has",
    "user.search.toolbar.support.placeholder": "Pick an operator…",
    "user.search.uid.open": "Open this UID's profile"
}
