{
  "$meta": {
    "language-name": "English"
  },
  "menu": {
    "sections": {
      "monitor": "Monitor",
      "strimertul": "{{APPNAME}}",
      "twitch": "Twitch",
      "loyalty": "Loyalty system"
    },
    "pages": {
      "monitor": {
        "dashboard": "Dashboard"
      },
      "strimertul": {
        "settings": "Server settings",
        "ui-config": "User interface",
        "extensions": "Extensions"
      },
      "twitch": {
        "configuration": "Configuration",
        "bot-commands": "Chat commands",
        "bot-timers": "Chat timers",
        "bot-alerts": "Chat alerts"
      },
      "loyalty": {
        "configuration": "Configuration",
        "points": "Points and redeems",
        "rewards": "Rewards and goals"
      }
    },
    "messages": {
      "update-available": "UPDATE AVAILABLE"
    }
  },
  "pages": {
    "http": {
      "title": "Server settings",
      "bind-placeholder": "address:port",
      "bind": "Webserver Bind",
      "kilovolt-password": "Kilovolt password",
      "kilovolt-placeholder": "Leave empty to disable authentication (not recommended)",
      "bind-help": "Every application that uses {{APPNAME}} will need to be updated!",
      "static-path": "Static assets (leave empty to disable)",
      "static-placeholder": "Absolute path to static assets",
      "static-help": "Will be served at the following URL: {{url}}",
      "saving": "Saving webserver settings...",
      "kv-auth-warning": {
        "header": "Are you sure about this?",
        "message": "You have left the Kilovolt password field empty! This will leave {{APPNAME}} accessible without authentication from any application, including any website you visit!",
        "i-understand": "I understand the risk",
        "go-back": "Go back"
      }
    },
    "twitch-settings": {
      "title": "Twitch configuration",
      "enable": "Enable Twitch integration",
      "apiguide-1": "You will need to create an application, here's how:",
      "apiguide-2": "Go to <1>https://dev.twitch.tv/console/apps/create</1>",
      "apiguide-3": "Use the following data for the required fields:",
      "apiguide-4": "Once made, create a <1>New Secret</1>, then copy both fields below and save!",
      "app-client-id": "App Client ID",
      "app-client-secret": "App Client Secret",
      "subtitle": "Twitch integration with streams including chat bot and API access. If you stream on Twitch, you definitely want this on.",
      "api-subheader": "Application info",
      "api-configuration": "API access",
      "eventsub": "Events",
      "bot-settings": "Bot settings",
      "enable-bot": "Enable Twitch bot",
      "bot-channel": "Twitch channel",
      "bot-username": "Twitch account username",
      "bot-oauth": "Authorization token",
      "bot-oauth-note": "You can get this by logging in with the bot account and going here: <1>https://twitchapps.com/tmi/</1>",
      "bot-info-header": "Bot account info",
      "bot-settings-copy": "A bot can interact with chat messages and provide extra events for the platform (chat events, some notifications) but requires access to a Twitch account. You can use your own or make a new one (if enabled on your main account, you can re-use the same email for your second account!)",
      "bot-chat-header": "Chat settings",
      "bot-chat-history": "How many messages to keep in history (0 to disable)",
      "events": {
        "loading-data": "Querying user data from Twitch APIs…",
        "authenticated-as": "Authenticated as",
        "profile-picture": "Profile picture",
        "err-no-user": "No twitch user is currently associated",
        "sim": {
          "channel.update": "Channel update",
          "channel.follow": "New follow",
          "channel.subscribe": "New sub",
          "channel.subscription.gift": "Gift sub",
          "channel.subscription.message": "Re-sub with message",
          "channel.cheer": "Cheer",
          "channel.raid": "Raid"
        },
        "sim-events": "Send test event",
        "auth-button": "Authenticate with Twitch",
        "auth-message": "Click the following button to authenticate {{APPNAME}} with your Twitch account:",
        "current-status": "Current status"
      },
      "app-category": "Category",
      "app-oauth-redirect-url": "OAuth Redirect URLs",
      "test-button": "Test connection",
      "test-failed": "Test failed: \"{{error}}\". Check your app client IDs and secret!",
      "test-succeeded": "Test succeeded!",
      "bot-chat-cooldown-tip": "Global chat cooldown for commands (in seconds)"
    },
    "botcommands": {
      "title": "Bot commands",
      "desc": "Define custom chat commands to set up autoresponders, counters, etc.",
      "add-button": "New command",
      "search-placeholder": "Search command by name",
      "command-header-new": "New command",
      "command-header-edit": "Edit command",
      "command-name": "Command name",
      "command-name-placeholder": "!command",
      "command-desc": "Description (optional)",
      "command-desc-placeholder": "This command does something",
      "command-response": "Response",
      "command-response-placeholder": "Hello {0}!",
      "command-acl": "Access level",
      "command-acl-help": "This specifies the minimum level, eg. if you choose VIPs, moderators and streamer can still use the command",
      "response-types": {
        "chat": "Message",
        "reply": "Reply",
        "whisper": "Whisper",
        "announce": "Announcement"
      },
      "acl": {
        "everyone": "Everyone",
        "subscribers": "Subscribers",
        "vip": "VIPs",
        "moderators": "Moderators",
        "streamer": "Streamer only"
      },
      "remove-command-title": "Remove command {{name}}?",
      "no-commands": "Chatbot has no commands configured",
      "command-already-in-use": "Command name already in use",
      "command-invalid-format": "The response template contains errors"
    },
    "bottimers": {
      "title": "Bot timers",
      "desc": "Define reminders such as checking out your social media or ongoing events",
      "add-button": "New timer",
      "search-placeholder": "Search timer by name",
      "timer-header-new": "New timer",
      "timer-header-edit": "Edit timer",
      "timer-name": "Timer name",
      "timer-name-placeholder": "my-timer",
      "remove-timer-title": "Remove timer {{name}}?",
      "timer-parameters": "every {{time}}, ≥ {{messages}} messages in the last {{interval}}",
      "timer-interval": "Minimul interval",
      "timer-activity": "Minimul chat activity (0 to disable)",
      "timer-activity-desc": "messages in the last 5 minutes",
      "timer-messages": "Messages",
      "no-timers": "There are no timers configured",
      "name-already-in-use": "Timer name already in use"
    },
    "alerts": {
      "title": "Chat alerts",
      "desc": "Send chat messages when your viewers follow, subscribe and other events",
      "follow-enable": "Enable new follow message",
      "messages": "Messages",
      "msg-info": "If multiple messages are present, one will be picked at random",
      "subscription-enable": "Enable subscription message",
      "gift_sub-enable": "Enable gifted subscription message",
      "raid-enable": "Enable raid message",
      "cheer-enable": "Enable cheering message",
      "events": {
        "follow": "New follow",
        "subscription": "Subscription",
        "gift-sub": "Gift sub",
        "raid": "Raid",
        "cheer": "Cheer"
      }
    },
    "loyalty-settings": {
      "title": "Loyalty system configuration",
      "subtitle": "Loyalty system allowing viewers to accrue points and spend them on rewards and goals",
      "enable": "Enable loyalty system",
      "currency-placeholder": "points",
      "currency-name": "Currency name",
      "currency-name-hint": "This will be appended like this: \"user has X yourcurrency\" so choose a lowercase plural name (ex. points)",
      "bonus-points": "Bonus points for active users",
      "bonus-points-hint": "Extra amount of points awarded to people who have been chatting in the last set interval",
      "note": "Note: Unlike platform-native systems (eg. Twitch channel points), this relies on chat activity rather than actual viewing status.",
      "every": "every",
      "reward": "How often to give {{currency}}"
    },
    "loyalty-queue": {
      "title": "Points and redeems",
      "subtitle": "User leaderboard and pending reward redeems",
      "queue-tab": "Redeem queue",
      "users-tab": "Manage points",
      "username": "Viewer",
      "points": "Points",
      "username-filter": "Search by username",
      "modify-balance-dialog": "Modify balance",
      "give-points-dialog": "Give points",
      "reward": "Reward",
      "date": "Date",
      "request": "Request",
      "no-redeems": "No pending redeems",
      "no-users": "No viewers found",
      "refund": "Refund",
      "accept": "Accept",
      "hardcoded": "My Random hardcoded text"
    },
    "debug": {
      "dismiss-warning": "I am not afraid! ...well ok maybe a little",
      "big-ass-warning": "Using this page can severely wreck your database. Please make sure you know what you're doing!",
      "disclaimer-header": "Big scary disclaimer",
      "title": "Debug ops",
      "read-key": "Read DB key",
      "write-key": "Write DB key",
      "fix-json": "Fix JSON",
      "console-ops": "Console operations",
      "dump-keys": "Dump all DB keys",
      "dump-all": "Dump all KV pairs as JSON"
    },
    "loyalty-rewards": {
      "title": "Rewards and goals",
      "rewards-tab": "Rewards",
      "goals-tab": "Goals",
      "subtitle": "Set up rewards and community goals for your viewers to play with",
      "reward-filter": "Search by reward name",
      "create-reward": "Create reward",
      "reward-id": "Reward ID",
      "id-already-in-use": "ID already in use",
      "reward-name": "Name",
      "reward-icon": "Icon (as remote URL)",
      "reward-desc": "Description",
      "reward-cost": "Cost",
      "reward-id-hint": "This is what viewers will have to write to claim, ie. \"!redeem reward-id-here\".",
      "reward-name-hint": "This is what viewers will see they claimed ie. \"USER has claimed REWARDNAME\"",
      "reward-cooldown": "Cooldown",
      "reward-details-placeholder": "What extra details to ask the viewer for",
      "reward-details": "Require viewer details",
      "edit-reward": "Edit reward",
      "remove-reward-title": "Remove reward \"{{name}}\"?",
      "no-rewards": "There are no loyalty rewards, why not start with an Hydrate or Stretch?",
      "no-goals": "There are no community goals configured",
      "create-goal": "Create goal",
      "edit-goal": "Edit goal",
      "goal-id": "Goal ID",
      "goal-id-hint": "This is what viewers will have to write to contribute to, ie. \"!contribute goal-id-here\".",
      "goal-name": "Name",
      "goal-icon": "Goal icon (as remote URL)",
      "goal-name-hint": "This is what viewers will see they contributed to ie. \"USER has contributed to GOALNAME\"",
      "goal-cost": "Total points required",
      "goal-desc": "Description",
      "goal-filter": "Search by goal name"
    },
    "strimertul": {
      "need-help": "Need help?",
      "need-help-p1": "If you need help, want to report a bug or have suggestions on how to make {{APPNAME}} better, please reach out via any of the following channels:",
      "license-header": "License",
      "license-notice-strimertul": "{{APPNAME}} is licensed under <license>GNU Affero General Public License v3.0</license>",
      "credits-header": "Credits",
      "credits-renko": "Renko, {{APPNAME}}'s mascot and app icon, was drawn by <artist>Sonic_Chan</artist>"
    },
    "dashboard": {
      "twitch-status": "Twitch stream status",
      "live": "Live!",
      "x-viewers": "{{num}} viewers",
      "not-live": "Offline / Not streaming",
      "twitch-events": {
        "header": "Recent events",
        "warning": "This section only contains events that happened while {{APPNAME}} was open, so only use it for recent stuff",
        "anonymous": "An anonymous viewer",
        "events": {
          "follow": "<n>{{name}}</n> followed you",
          "redemption": "<n>{{name}}</n> redeemed <r>{{reward}}</r>",
          "stream-start": "You started streaming",
          "stream-stop": "You stopped streaming",
          "channel-updated": "Stream info changed",
          "raided": "<n>{{name}}</n> raided you with <v>{{viewers}} viewers</v>",
          "cheered": "<n>{{name}}</n> cheered you with <b>{{bits}} bits</b>",
          "subscribed": "<n>{{name}}</n> subscribed to you <t>(Tier {{tier}})</t>",
          "subscribed-multi": "<n>{{name}}</n> subscribed to you <m>({{months}} months)</m> <t>(Tier {{tier}})</t>",
          "subscrition-gift_one": "<n>{{name}}</n> gifted <c>{{count}}</c> subscription <t>(Tier {{tier}})</t>",
          "subscrition-gift_other": "<n>{{name}}</n> gifted <c>{{count}}</c> subscriptions <t>(Tier {{tier}})</t>"
        },
        "replay": "Replay event"
      },
      "quick-links": "Useful links",
      "link-user-guide": "User guide",
      "link-api": "API reference"
    },
    "onboarding": {
      "welcome-header": "Welcome to {{APPNAME}}",
      "welcome-continue-button": "Get started",
      "skip-button": "Skip onboarding",
      "welcome-p1": "It looks like this is the first time you started {{APPNAME}}. You can click the \"Get started\" button at the bottom to set things up one by one, or just skip everything and configure things manually later.",
      "welcome-p2": "Heads up: if you're used to other platforms, this unfortunately will require some more work on your end.",
      "sections": {
        "landing": "Welcome",
        "twitch-config": "Twitch integration",
        "twitch-events": "Twitch events",
        "twitch-bot": "Twitch bot",
        "done": "All done!"
      },
      "twitch-p1": "To set-up Twitch you will need to create an application on the Developer portal. Follow the instructions below or click the button at the bottom to skip this step.",
      "twitch-p2": "Click \"Test connection\" to make sure the Client ID and secret are valid, if the test is successful you will be brought to the next step automatically.",
      "twitch-skip": "Skip Twitch integration",
      "twitch-ev-p1": "Now that you've made an app, you need to authenticate your Twitch account to it so we can access your user data like your channel name or events like new followers or raids.",
      "twitch-ev-p3": "If the above shows your account name and picture correctly, you're all set! Click the button below to complete Twitch integration.",
      "twitch-complete": "Complete Twitch integration",
      "done-header": "You're all set!",
      "done-p1": "That should be enough for now. You can always change any option later, including custom configurations not covered in this procedure (e.g. using a different Twitch account for the bot).",
      "done-p2": "If you have questions or issues, please reach out at any of these places:",
      "done-button": "Complete onboarding",
      "done-p3": "Click the button below to finish the onboarding and go to {{APPNAME}}'s dashboard.",
      "welcome-guide": "It might be a good idea to have the {{APPNAME}} user guide open in case you have trouble with any of the following steps, you can open it by <g>clicking here</g>."
    },
    "uiconfig": {
      "title": "User interface settings",
      "language": "Language",
      "repeat-onboarding": "Repeat onboarding",
      "partial-translation": "Partial translation",
      "themes": {
        "dark": "Dark",
        "light": "Light"
      },
      "theme": "Theme"
    },
    "extensions": {
      "title": "Extensions",
      "loading": "Just one second, the extension subsystem is still getting ready!",
      "create": "Create new",
      "search": "Search by name",
      "tab-manage": "Manage",
      "tab-editor": "Editor",
      "remove-alert": "Remove extension \"{{name}}\"?",
      "rename": "Rename extension",
      "rename-dialog": "Rename extension \"{{name}}\"",
      "name-already-in-use": "Name already in use",
      "rename-new-name": "New name",
      "format": "Format code",
      "statuses": {
        "not-ready": "Loading",
        "ready": "Not running",
        "running": "Running",
        "main-loop-finished": "Active",
        "error": "Error encountered",
        "terminated": "Stopped"
      },
      "error-alert": "Error details for {{name}}",
      "incompatible-body": "This extension requires {{APPNAME}} version {{version}} and up, you are currently running {{appversion}}, which may be too old and miss required features",
      "incompatible-warning": "This extension is not compatible"
    },
    "crash": {
      "fatal-message": "A fatal error has occurred and strimertül has stopped working, check the details below:",
      "action-header": "What to do?",
      "action-submit-line": "Consider submitting this report using the Report button below so someone can look at it.",
      "action-recover-line": "If this error happens every time you start the app or if you've been instructed to, click the Recovery button to restore the database to an earlier backup.",
      "action-log-line": "Logs and other crash related info can be found in the log files <m>{{A}}</m> and <m>{{B}}</m>.",
      "button-report": "Report this error",
      "button-recovery": "Recovery options",
      "app-log-header": "Application logs for this run",
      "report": {
        "button-send": "Send report",
        "dialog-title": "Report this error",
        "thanks-line": "Thanks for choosing to submit this error! If you want, please write below what you were trying to do or anything else that you think might help.",
        "additional-label": "Additional info (optional)",
        "text-placeholder": "What were you doing before this happened?",
        "email-label": "Include email address (if you want to be contacted about this)",
        "email-placeholder": "Write your email address here",
        "transparency-line": "When clicking \"Send report\", the following info will be collected and sent:",
        "transparency-files": "The contents of <m>{{A}}</m> and <m>{{B}}</m>",
        "transparency-info": "Information about the error that triggered this crash",
        "transparency-user": "The additional info below, if any was provided",
        "error-message": "The crash report could not be submitted because of a remote error: {{error}}",
        "post-report": "The error was successfully reported and has been assigned the following code: <m>{{code}}</m> If you haven't provided an email and want to follow up on this, use that code when opening an issue or reaching out."
      },
      "recovery": {
        "restore-error": "The database could not be restored because of the following error: {{error}}",
        "title": "Recovery options",
        "text-head": "These action will irreversibly modify your database, please make sure your database is corrupted in the first place before proceeding.",
        "restore-head": "Restore from backup",
        "restore-desc-1": "Restore a previously backed up database. This will overwrite your current database with the saved copy. Check below for the list of saved copies.",
        "restore-button": "Restore",
        "restore-confirm-title": "Confirm database restore",
        "restore-confirm-body": "Restoring this backup will overwrite your current database, this operation is irreversible.",
        "restore-failed": "Restore failed",
        "restore-succeeded-title": "Database restored",
        "restore-succeeded-body": "The database was restored from the chosen backup, please close and re-open {{APPNAME}}."
      }
    },
    "interactive-auth": {
      "title": "An application is trying to access {{APPNAME}}",
      "unknown-name": "Unknown application",
      "desc-1": "An application wants access to {{APPNAME}}. Allowing this will make the application capable of interacting and controlling {{APPNAME}}. This includes accessing sensible data stored in the database.",
      "warn-1": "Only accept if you know and trust the application.",
      "info-present": "The application identified itself as following:",
      "verification-code": "As an additional security measure, also verify that the application shows this matching code:",
      "allow": "Allow",
      "deny": "Deny"
    }
  },
  "form-actions": {
    "save": "Save",
    "saving": "Saving...",
    "saved": "Saved",
    "error": "Error",
    "edit": "Edit",
    "enable": "Enable",
    "disable": "Disable",
    "delete": "Delete",
    "cancel": "Cancel",
    "ok": "OK",
    "add": "Add",
    "warning-delete": "This cannot be undone",
    "create": "Create",
    "submit": "Submit",
    "password-reveal": "Reveal",
    "password-hide": "Hide",
    "start": "Start",
    "stop": "Stop",
    "rename": "Rename"
  },
  "debug": {
    "dev-build": "Development build"
  },
  "time": {
    "x-hours": "{{time}} hrs",
    "x-minutes": "{{time}} min",
    "x-seconds": "{{time}} sec",
    "hours": "hours",
    "minutes": "minutes",
    "seconds": "seconds"
  },
  "pagination": {
    "items-per-page": "Items per page",
    "page": "Page {{page}}",
    "gotopage": "Go to page {{page}}",
    "title": "pagination",
    "previous": "Previous page",
    "next": "Next page",
    "gotolast": "Go to last page",
    "gotofirst": "Go to first page"
  },
  "special": {
    "wip": {
      "header": "WIP - Page under development",
      "text": "This page is still under construction, apologies for the lackluster view :("
    },
    "loading": "{{APPNAME}} is starting up, please wait!"
  },
  "logging": {
    "dialog-title": "Application logs",
    "levelFilter": "Filter per log severity",
    "level": {
      "info": "Info",
      "warn": "Warning",
      "error": "Error"
    },
    "copy-to-clipboard": "Copy to clipboard",
    "copied": "Copied!",
    "toggle-details": "Toggle details"
  }
}
