460591c159
OrderDraftStore persists per-game command drafts in Cache; the sidebar Order tab renders the list with a per-row delete control. The layout passes a `historyMode` prop through Sidebar / BottomTabs as a constant `false`, so Phase 26 only flips the source. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
130 lines
5.5 KiB
TypeScript
130 lines
5.5 KiB
TypeScript
// English translation dictionary. Keys are dotted strings grouped
|
|
// by feature area (`login.*`, `lobby.*`, `common.*`); values are
|
|
// the user-visible text. Adding a new key here also requires adding
|
|
// it to every other locale dictionary in this folder, otherwise the
|
|
// `t()` helper falls back to English at runtime.
|
|
|
|
const en = {
|
|
"common.language": "language",
|
|
"common.loading": "loading…",
|
|
"common.browser_not_supported_title": "browser not supported",
|
|
"common.browser_not_supported_body":
|
|
"Galaxy requires Ed25519 in WebCrypto. See supported browsers.",
|
|
|
|
"login.title": "sign in to Galaxy",
|
|
"login.email_label": "email",
|
|
"login.email_required": "email must not be empty",
|
|
"login.send_code": "send code",
|
|
"login.sending": "sending…",
|
|
"login.code_label": "code",
|
|
"login.code_required": "code must not be empty",
|
|
"login.code_sent_to": "code sent to {email}",
|
|
"login.verify": "verify",
|
|
"login.verifying": "verifying…",
|
|
"login.send_new_code": "send a new code",
|
|
"login.change_email": "change email",
|
|
"login.challenge_expired":
|
|
"challenge expired, please request a new code",
|
|
"login.code_expired_or_used":
|
|
"code expired or already used, please request a new one",
|
|
"login.device_key_not_ready":
|
|
"device key is not ready, please reload the page",
|
|
|
|
"lobby.title": "you are logged in",
|
|
"lobby.device_session_id_label": "device session id",
|
|
"lobby.greeting": "hello, {name}!",
|
|
"lobby.account_loading": "loading account…",
|
|
"lobby.logout": "logout",
|
|
"lobby.section.my_games": "my games",
|
|
"lobby.section.invitations": "pending invitations",
|
|
"lobby.section.applications": "my applications",
|
|
"lobby.section.public_games": "public games",
|
|
"lobby.section.create": "create a game",
|
|
"lobby.create_button": "create new game",
|
|
"lobby.my_games.empty": "no games yet",
|
|
"lobby.invitations.empty": "no invitations",
|
|
"lobby.applications.empty": "no applications",
|
|
"lobby.public_games.empty": "no public games",
|
|
"lobby.invitation.accept": "accept",
|
|
"lobby.invitation.decline": "decline",
|
|
"lobby.application.submit": "submit application",
|
|
"lobby.application.submit_for": "join {name}",
|
|
"lobby.application.race_name_label": "race name",
|
|
"lobby.application.race_name_required": "race name must not be empty",
|
|
"lobby.application.cancel": "cancel",
|
|
"lobby.application.submitted": "application submitted, awaiting approval",
|
|
"lobby.application.status.pending": "pending",
|
|
"lobby.application.status.approved": "approved",
|
|
"lobby.application.status.rejected": "rejected",
|
|
"lobby.application.status.unknown": "{status}",
|
|
"lobby.list_loading": "loading…",
|
|
"lobby.create.title": "create new game",
|
|
"lobby.create.game_name_label": "game name",
|
|
"lobby.create.description_label": "description",
|
|
"lobby.create.turn_schedule_label": "turn schedule",
|
|
"lobby.create.turn_schedule_hint": "five-field cron, e.g. 0 0 * * *",
|
|
"lobby.create.enrollment_ends_at_label": "enrollment ends at",
|
|
"lobby.create.advanced": "advanced",
|
|
"lobby.create.min_players_label": "min players",
|
|
"lobby.create.max_players_label": "max players",
|
|
"lobby.create.start_gap_hours_label": "start gap (hours)",
|
|
"lobby.create.start_gap_players_label": "start gap (players)",
|
|
"lobby.create.target_engine_version_label": "target engine version",
|
|
"lobby.create.submit": "create",
|
|
"lobby.create.submitting": "creating…",
|
|
"lobby.create.cancel": "cancel",
|
|
"lobby.create.game_name_required": "game name must not be empty",
|
|
"lobby.create.turn_schedule_required": "turn schedule must not be empty",
|
|
"lobby.create.enrollment_ends_at_required": "enrollment end time must be set",
|
|
"lobby.error.invalid_request": "request is invalid",
|
|
"lobby.error.subject_not_found": "not found",
|
|
"lobby.error.forbidden": "operation is forbidden",
|
|
"lobby.error.conflict": "request conflicts with current state",
|
|
"lobby.error.internal_error": "internal server error",
|
|
"lobby.error.unknown": "{message}",
|
|
|
|
"game.shell.race_placeholder": "race ?",
|
|
"game.shell.turn_label": "turn",
|
|
"game.shell.turn_unknown": "?",
|
|
"game.shell.connection.online": "online",
|
|
"game.shell.connection.reconnecting": "reconnecting…",
|
|
"game.shell.connection.offline": "offline",
|
|
"game.shell.menu.toggle_sidebar": "open sidebar",
|
|
"game.shell.menu.close_sidebar": "close sidebar",
|
|
"game.shell.menu.open_views": "open views menu",
|
|
"game.shell.menu.close_views": "close views menu",
|
|
"game.shell.menu.account": "account",
|
|
"game.shell.menu.settings": "settings",
|
|
"game.shell.menu.sessions": "sessions",
|
|
"game.shell.menu.theme": "theme",
|
|
"game.shell.menu.language": "language",
|
|
"game.shell.menu.logout": "logout",
|
|
"game.shell.coming_soon": "coming soon",
|
|
"game.view.map": "map",
|
|
"game.view.table": "table",
|
|
"game.view.table.planets": "planets",
|
|
"game.view.table.ship_classes": "ship classes",
|
|
"game.view.table.ship_groups": "ship groups",
|
|
"game.view.table.fleets": "fleets",
|
|
"game.view.table.sciences": "sciences",
|
|
"game.view.table.races": "races",
|
|
"game.view.report": "turn report",
|
|
"game.view.battle": "battle log",
|
|
"game.view.mail": "diplomatic mail",
|
|
"game.view.designer.ship_class": "ship-class designer",
|
|
"game.view.designer.science": "science designer",
|
|
"game.sidebar.tab.calculator": "calculator",
|
|
"game.sidebar.tab.inspector": "inspector",
|
|
"game.sidebar.tab.order": "order",
|
|
"game.sidebar.empty.calculator": "coming soon",
|
|
"game.sidebar.empty.inspector": "select an object on the map",
|
|
"game.sidebar.empty.order": "order is empty",
|
|
"game.sidebar.order.command_delete": "delete",
|
|
"game.bottom_tabs.map": "map",
|
|
"game.bottom_tabs.calc": "calc",
|
|
"game.bottom_tabs.order": "order",
|
|
"game.bottom_tabs.more": "more",
|
|
} as const;
|
|
|
|
export default en;
|