X-Git-Url: https://git.localhorst.tv/?a=blobdiff_plain;f=resources%2Fjs%2Fi18n%2Fen.js;h=d76ce1bf0af0d1a0e6c9a9471892266b408697b4;hb=cf210ddda8ff5336feee10f733b022a72d906238;hp=f91e63bdaa1fc3ce83146cf06ede3d9afd930496;hpb=a5e53546a5960f54fb45e06767f89e9dfeef6a47;p=alttp.git diff --git a/resources/js/i18n/en.js b/resources/js/i18n/en.js index f91e63b..d76ce1b 100644 --- a/resources/js/i18n/en.js +++ b/resources/js/i18n/en.js @@ -44,198 +44,6 @@ export default { pending: 'pending', }, }, - aos: { - baseRomInvalid: 'CRC32 mismatch (need 35:53:61:83). Wrong ROM file?', - baseRomRemoved: 'Base ROM removed.', - baseRomSet: 'Base ROM set.', - inviteBot: 'Invite Bot', - inviteCommand: 'Invite Bot (command only)', - randoDiscord: 'Randomizer Discord', - randoWeb: 'Randomizer Webapp', - setBaseRom: 'Set base ROM', - tourneyDiscord: 'Tournament Discord', - }, - aosGenerate: { - heading: 'Generate AoSR Seed', - }, - aosSeeds: { - date: '{{ date, L LT }}', - fetchingPatch: 'Fetching patch', - filename: 'aosr - {{preset}} - {{hash}}', - heading: 'Aria of Sorrow Randomizer Seed', - generated: 'Generated', - generator: 'Generator', - generators: { - surge: 'This seed has been generated with fusecv\'s randomizer on aosrando.surge.sh.', - }, - mystery: 'Mystery ROM, settings hidden', - noMystery: 'No mystery', - noRace: 'No race', - patch: 'Patch ROM', - patchError: 'Error applying patch: {{msg}}', - preset: 'Preset', - presets: { - Area: 'Area', - AreaAllBosses: 'Area all bosses', - AreaBeginner: 'Area beginner', - AreaExpert: 'Area expert', - AreaExtraFast: 'Area extra fast', - AreaRequireAllSouls: 'Area require all souls', - AreaSpicy: 'Area spicy', - Beginner: 'Beginner', - custom: 'Custom', - DoorAllBosses: 'Door all bosses', - DoorAllBossesEasy: 'Door all bosses easy', - ExtraFastNormal: 'Extra fast normal', - Normal: 'Normal', - SGLive2020: 'SGLive 2020', - SGLive2021: 'SGLive 2021', - SpicyNormal: 'Spicy normal', - Tournament2021: 'Tournament 2021', - Tournament2022: 'Tournament 2022', - }, - race: 'Race ROM, seed hidden', - seed: 'Seed', - settingName: { - area: 'Map', - boss: 'Bosses', - doublechaos: 'Double chaos', - enemy: 'Enemy', - grahm: 'Graham', - itempool: 'Item pool', - kicker: 'Kicker without Malphas', - levelexp: 'Level EXP', - logic: 'Logic', - mapassist: 'Map assist', - nodupes: 'No dupes', - noww: 'No wrong warp', - palette: 'Palette', - panther: 'Panther', - reqallsouls: 'Require all souls', - shopprice: 'Shop price', - shopSouls: 'Shop souls', - startshop: 'Start with shop', - telestart: 'Teleport to start', - weight: 'Item weight', - }, - settings: 'Settings', - settingValue: { - area: { - AreaRandom: 'Area random', - DoorRandom: 'Door random', - Vanilla: 'Vanilla', - }, - boss: { - 'Dead-endShuffle': 'Dead end shuffle', - Vanilla: 'Vanilla', - }, - doublechaos: { - 'false': 'No', - 'true': 'Yes', - }, - enemy: { - RandomNoLimit: 'No limit', - RandomP20M5: '+20 -5', - RandomP30M10: '+30 -10', - RandomPM10: '±10', - RandomPM20: '±20', - RandomPMaxM5: '+max -5', - Vanilla: 'Vanilla', - }, - grahm: { - AllBosses: 'All bosses', - BookSouls: 'Book souls', - NoCheck: 'No check', - }, - itempool: { - AllSouls: 'All souls', - Standard: 'Standard', - }, - kicker: { - 'false': 'No', - 'true': 'Yes', - }, - levelexp: { - Casual: 'Casual', - Hard: 'Hard', - Lvl1: 'Level 1', - Vanilla: 'Vanilla', - }, - logic: { - AreaTechTiers: 'Area tech tiers', - AreaTechTiersHard: 'Area tech tiers hard', - ForwardFeed: 'Forward feed', - ForwardFeedHard: 'Forward feed hard', - HybridProgression: 'Hybrid progression', - VeryRandom: 'Very random', - VeryRandomHard: 'Very random hard', - VeryRandomHardOnly: 'Very random hard only', - }, - mapassist: { - 'false': 'Off', - 'true': 'On', - }, - nodupes: { - 'false': 'No', - 'true': 'Yes', - }, - noww: { - 'false': 'No', - 'true': 'Yes', - }, - palette: { - Mode1: 'Mode 1', - 'Mode1.5': 'Mode 1.5', - Mode2: 'Mode 2', - Vanilla: 'Vanilla', - }, - panther: { - AlwaysRand: 'Always random', - ExtraFairRand: 'Extra fair random', - FirstAlways: 'Always first', - NeverExists: 'Never exists', - Rand70Dup: 'Random 70% dupe', - }, - reqallsouls: { - 'false': 'No', - 'true': 'Yes', - }, - shopprice: { - RandHV: 'Random HV', - Vanilla: 'Vanilla', - }, - shopSouls: { - '2PerGroup': '2 per group', - Half: 'Half', - OnlySouls: 'Only souls', - Vanilla: 'Vanilla', - }, - startshop: { - Unlocked: 'Unlocked', - Unlocked30k: 'Unlocked 30k', - Vanilla: 'Vanilla', - }, - telestart: { - 'false': 'Disabled', - 'true': 'Enabled', - }, - weight: { - '0': '0', - '1.0': '1.0', - '1.5': '1.5', - '2.0': '2.0', - '2.5': '2.5', - '3.0': '3.0', - '3.5': '3.5', - }, - }, - status: 'Status', - statuses: { - error: 'error', - generated: 'generated', - pending: 'pending', - }, - }, applications: { accept: 'Accept', acceptError: 'Error accepting', @@ -244,23 +52,105 @@ export default { rejectSuccess: 'Rejected', rejectError: 'Error rejecting', }, + autoTracking: { + heading: 'Auto tracking', + statusMsg: { + disabled: 'Disabled', + disconnected: 'Disconnected', + error: 'Connection error', + 'no-device': 'No device', + 'not-applicable': 'Connected to {{ device }}, mode not applicable', + 'not-in-game': 'Connected to {{ device }}, not in game', + tracking: 'Connected to {{ device }}', + }, + }, button: { add: 'Add', back: 'Back', + browserSource: 'Browser source', cancel: 'Cancel', chart: 'Chart', close: 'Close', + confirm: 'Confirm', edit: 'Edit', + filter: 'Filter', generate: 'Generate', help: 'Help', + invert: 'Invert', login: 'Login', logout: 'Logout', new: 'New', + nextFrame: 'Next frame', + pause: 'Pause', + play: 'Play', + playPause: 'Play/Pause', protocol: 'Protocol', + remove: 'Remove', retry: 'Retry', save: 'Save', search: 'Search', + send: 'Send', settings: 'Settings', + signUp: 'Sign up', + start: 'Start', + stop: 'Stop', + unconfirm: 'Retract', + unset: 'Unset', + }, + content: { + attribution: 'Attribution', + description: 'Description', + edit: 'Edit content', + saveError: 'Error saving', + saveSuccess: 'Saved', + short: 'Short description', + title: 'Title', + }, + crew: { + roles: { + commentary: 'Commentary', + setup: 'Setup', + tracking: 'Tracking', + }, + }, + discordBot: { + channel: 'Channel', + controls: 'Controls', + guild: 'Server', + heading: 'Discord Bot', + invite: 'Invite bot', + selectGuild: 'Please select server', + }, + episodes: { + addRestream: 'Add Restream', + applyDialog: { + applyError: 'Error signing up', + applySuccess: 'Application received', + signUpAs: 'Sign up as', + title: 'Application', + }, + channel: 'Channel', + commentary: 'Commentary', + empty: 'No dates coming up.', + raceroom: 'Race room', + restreamDialog: { + acceptComms: 'Open commentary application', + acceptTracker: 'Open tracker application', + addError: 'Error adding restream', + addSuccess: 'Added', + addUser: 'Add user', + crewError: 'Error updating', + crewSuccess: 'Updated', + editError: 'Error saving', + editSuccess: 'Saved', + removeError: 'Error removing restream', + removeSuccess: 'Removed', + title: 'Restream', + }, + setup: 'Setup', + sgSignUp: 'SG Signup', + startTime: '{{ date, LL LT }}', + tracking: 'Tracking', }, error: { 403: { @@ -276,12 +166,51 @@ export default { heading: 'Server error', }, }, + events: { + concluded: 'This event has concluded.', + end: 'End', + evergreen: 'Evergreen events', + heading: 'Events', + ongoing: 'Ongoing events', + past: 'Past events', + pastEpisodes: 'Past races', + start: 'Start', + upcomingEpisodes: 'Upcoming races', + }, + footer: { + alttpde: 'German ALttP Discord', + alttpwiki: 'ALttP Speedrunning Wiki', + competitions: 'Competitions', + connect: 'Connect Spedruns Discord', + contact: 'If you would like to organize a Tournament on this site, please contact holysmoke86 on Discord.', + events: 'Events', + info: 'Infos', + map: 'ALttP Map', + muffins: 'Muffins\' Glitch Map', + privacy: 'Privacy', + resources: 'Resources', + restreamCentral: 'Restream Central Discord', + schedule: 'Schedule', + smd: 'German Super Metroid Discord', + smwiki: 'Super Metroid Speedrunning Wiki', + tech: 'ALttP Tech', + }, general: { + actions: 'Actions', anonymous: 'Anonym', + appDescription: 'Tournaments and tutorials for The Legend of Zelda: A Link to the Past Randomizer', appName: 'ALttP', + pleaseSelect: 'Please select', + languages: { + de: 'German', + en: 'English', + es: 'Spanish', + fr: 'French', + }, }, icon: { AddIcon: 'Add', + AllowedIcon: 'Allowed', ApplicationsIcon: 'Applications', ApplyIcon: 'Apply', ChartIcon: 'Chart', @@ -289,6 +218,7 @@ export default { EditIcon: 'Edit', FinishedIcon: 'Finished', FirstPlaceIcon: 'First Place', + ForbiddenIcon: 'Forbidden', ForfeitIcon: 'Forfeit', LanguageIcon: 'Language', LockedIcon: 'Locked', @@ -300,9 +230,17 @@ export default { SettingsIcon: 'Settings', StreamIcon: 'Stream', ThirdPlaceIcon: 'Third Place', + TwitchIcon: 'Twitch', + UnknownIcon: 'Unknown', UnlockedIcon: 'Unlocked', + YoutubeIcon: 'YouTube', + VideoIcon: 'Video', zelda: { + aga: 'Agahnim', + armos: 'Armos Knights', + arrghus: 'Arrghus', 'big-key': 'Big Key', + blind: 'Blind', 'blue-boomerang': 'Boomerang', 'blue-mail': 'Blue Mail', 'blue-pendant': 'Pendant of Power', @@ -314,39 +252,71 @@ export default { 'bottle-bee': 'Bee in a Bottle', bottle: 'Bottle', bow: 'Bow', + 'bowless-silvers': 'Silvers w/o Bow', bugnet: 'Bugnet', byrna: 'Cane of Byrna', cape: 'Cape', compass: 'Compass', crystal: 'Crystal', duck: 'Duck', + 'dungeon-ct': 'Castle Tower', + 'dungeon-dp': 'Desert Palace', + 'dungeon-ep': 'Eastern Palace', + 'dungeon-gt': 'Ganon\'s Tower', + 'dungeon-hc': 'Hyrule Castle', + 'dungeon-ip': 'Ice Palace', + 'dungeon-mm': 'Misery Mire', + 'dungeon-pd': 'Palace of Darkness', + 'dungeon-sp': 'Swamp Palace', + 'dungeon-sw': 'Skull Woods', + 'dungeon-th': 'Tower of Hera', + 'dungeon-tr': 'Turtle Rock', + 'dungeon-tt': 'Thieves\' Town', ether: 'Ether', fairy: 'Fairy in a Bottle', 'fighter-shield': 'Fighter Shield', + 'fighter-sword': 'Fighter Sword', 'fire-rod': 'Fire Rod', 'fire-shield': 'Fire Shield', flippers: 'Flippers', flute: 'Flute', glove: 'Power Glove', + 'gold-sword': 'Gold Sword', 'green-mail': 'Green Mail', 'green-pendant': 'Pendant of Courage', 'green-potion': 'Green Potion', + 'half-magic': 'Half Magic', hammer: 'Hammer', + 'heart-0': 'No Heart Pieces', + 'heart-1': 'One Heart Piece', + 'heart-2': 'Two Heart Pieces', + 'heart-3': 'Three Heart Pieces', 'heart-container': 'Heart Container', 'heart-piece': 'Heart Piece', + helma: 'King Helmasaur', hookshot: 'Hookshot', 'ice-rod': 'Ice Rod', + kholdstare: 'Kholdstare', lamp: 'Lamp', + lanmolas: 'Lanmolas', map: 'Map', + 'master-sword': 'Master Sword', mirror: 'Mirror', 'mirror-shield': 'Mirror Shield', mitts: 'Titan \'s Mitts', + moldorm: 'Moldorm', + mothula: 'Mothula', moonpearl: 'Moonpearl', mushroom: 'Mushroom', + 'not-flippers': 'No Flippers', + 'not-mirror': 'No Mirror', + 'not-moonpearl': 'No Moonpearl', powder: 'Powder', quake: 'Quake', + 'quarter-magic': 'Quarter Magic', 'red-bomb': 'Red Bomb', 'red-boomerang': 'Red Boomerang', + 'red-crystal': 'Red Crystal', 'red-mail': 'Red Mail', 'red-pendant': 'Pendant of Wisdom', 'red-potion': 'Red Potion', @@ -354,8 +324,40 @@ export default { silvers: 'Silvers', 'small-key': 'Small Key', somaria: 'Cane of Somaria', + 'sword-1': 'Fighter Sword', + 'sword-2': 'Master Sword', + 'sword-3': 'Tempered Sword', + 'sword-4': 'Gold Sword', + 'tempered-sword': 'Tempered Sword', + trinexx: 'Trinexx', + vitreous: 'Vitreous', }, }, + map: { + description: 'Maps of The Legend of Zelda: A Link to the Past', + dwLong: 'Dark World', + dwShort: 'DW', + goToLocation: 'Go to location', + heading: 'Map', + lwLong: 'Light World', + lwShort: 'LW', + onThisMap: 'On this map', + spLong: 'Special Areas', + spShort: 'SP', + uw2Long: 'Underworld 2', + uw2Short: 'UW2', + uwLong: 'Underworld', + uwOverlay: 'Show grid', + uwShort: 'UW', + }, + menu: { + map: 'Map', + schedule: 'Schedule', + tech: 'Tech', + }, + modes: { + heading: 'Modes', + }, participants: { empty: 'No participants on record', heading: 'Participants', @@ -373,6 +375,12 @@ export default { score: 'Score', scoreShort: 'Score', }, + privacy: { + heading: 'Privacy', + p1: 'We\'re utilizing cokes and your browser\'s storage to remember your login and preferred language as well as protect against XSRF.', + p2: 'If you click on Login, you wil be redirected to a discord portal. Once signed in, Discord will provide us with your username, discriminator and ID.', + p3: 'Any results you submit will be published on this site and may be shared with the Discord server of the respective community.', + }, protocol: { description: { application: { @@ -385,7 +393,8 @@ export default { report: 'Result of <1>{{time}} reported for round {{number}}', }, round: { - create: 'Round #{{number}} added', + create: 'Added round #{{number}}', + edit: 'Edited round #{{number}}', lock: 'Round #{{number}} locked', seed: 'Set seed for round #{{number}}', unlock: 'Round #{{number}} unlocked', @@ -395,6 +404,7 @@ export default { discord: 'Discord server connected', lock: 'Tournament locked', open: 'Registration opened', + settings: 'Modified settings', unlock: 'Tournament unlocked', }, unknown: 'Unknown protocol entry of type {{type}}.', @@ -422,30 +432,211 @@ export default { round: 'Round', runner: 'Runner', time: 'Time: {{ time }}', + vod: 'VoD', + vodNote: 'If you want to share your VoD, go ahead.', }, rounds: { + code: 'Code', date: '{{ date, L }}', + edit: 'Edit round', + editError: 'Error saving round', + editSuccess: 'Saved successfully', empty: 'No rounds yet', heading: 'Rounds', new: 'New round', noSeed: 'No seed set', + numberOfResults_one: '{{ count }} submission', + numberOfResults_other: '{{ count }} submissions', + loadMore: 'load more rounds', lock: 'Lock round', lockDescription: 'When a round is locked, runners cannot submit or change results.', locked: 'Results for this round have been locked.', lockError: 'Error locking round', lockIncompleteWarning: 'Warning: Not all runners have submitted their results for this round yet!', lockSuccess: 'Round locked', + rolled_by: 'Rolled by', rolledBy: 'Rolled by {{name}}', seed: 'Seed', setSeed: 'Set seed', setSeedError: 'Seed could not be set', setSeedSuccess: 'Seed set', + spoiler: 'Spoiler', + title: 'Title', unlock: 'Unock round', unlockDescription: 'The round is unlocked and runers are free to submit or change their results again.', unlocked: 'Results for this round are subject to change.', unlockError: 'Error unlocking round', unlockSuccess: 'Round unlocked', }, + rulesets: { + heading: 'Rulesets', + }, + schedule: { + description: 'Upcoming matches and other events.', + heading: 'Schedule', + startTime: '{{ date, LT }}', + }, + search: { + noResults: 'No results', + }, + snes: { + device: 'Preferred device', + host: 'Host', + port: 'Port', + proto: 'Protocol', + settings: 'SNES Settings', + }, + techniques: { + description: 'Tutorials for The Legend of Zelda: A Link to the Past Randomizer', + heading: 'Techniques', + lastModified: 'Last modified: {{ date, L }}', + requirements: 'Requires: ', + rulesetCodes: { + competitive: 'COM', + mg: 'MG', + nl: 'NL', + owg: 'OWG', + }, + rulesetDescriptions: { + competitive: 'Competitive', + mg: 'Major Glitches', + nl: 'No Logic', + owg: 'Overworld Glitches', + }, + rulesetFilterHeading: 'Only show techniques allowed in the following rulesets:', + seeAlso: 'See also', + }, + tracker: { + config: { + bossShuffle: 'Boss Shuffle', + calculation: 'Calculation', + checkCalculation: 'Dungeon checks', + checkCalculations: { + inventory: 'Inventory (Doors)', + 'room-data': 'Room data (glitched)', + }, + ganonCrystals: 'Ganon Crystals', + glitches: 'Glitches', + glitchRules: { + hmg: 'HMG', + mg: 'Major', + nl: 'No Logic', + none: 'None', + owg: 'OWG', + }, + goal: 'Goal', + goals: { + ad: 'All Dungeons', + fast: 'Fast Ganon', + ganon: 'Ganon', + ghunt: 'Ganon Hunt', + ped: 'Pedestal', + thunt: 'Triforce Hunt', + trinity: 'Trinity', + }, + gtCrystals: 'GT Crystals', + layout: 'Layout', + logic: 'Logic', + mapLayout: 'Map', + mapLayouts: { + horizontal: 'Horizontal', + vertical: 'Vertical', + }, + showBig: 'Big Keys', + showCompass: 'Compasses', + showItemOptions: { + always: 'Always', + never: 'Never', + situational: 'Situational', + }, + showItems: 'Show Dungeon Items', + showMap: 'Maps', + showSmall: 'Small Keys', + title: 'Configuration', + wildBig: 'Big Keys', + wildCompass: 'Compasses', + wildItems: 'Wild Dungeon Items', + wildMap: 'Maps', + wildSmall: 'Small Keys', + worldState: 'World State', + worldStates: { + inverted: 'Inverted', + open: 'Open', + }, + }, + location: { + aginah: 'Aginah', + blacksmith: 'Blacksmith', + brewery: 'Brewery', + 'blinds-hideout': 'Blind\'s Hideout', + 'bombos-tablet': 'Bombos Tablet', + 'bonk-rocks': 'Pegasus Rocks', + 'bottle-merchant': 'Bottle Merchant', + 'bumper-cave': 'Bumper Cave', + 'c-house': 'C-Shaped House', + catfish: 'Catfish', + 'cave-45': 'Cave 45', + checkerboard: 'Checkerboard Cave', + 'chest-game': 'Chest Game', + 'chicken-house': 'Chicken House', + dam: 'Dam', + 'desert-ledge': 'Desert Ledge', + 'digging-game': 'Digging Game', + dp: 'Desert Palace', + ep: 'Eastern Palace', + 'floating-island': 'Floating Island', + 'flute-spot': 'Flute Spot', + 'ether-tablet': 'Ether Tablet', + 'graveyard-ledge': 'Graveyard Ledge', + gt: 'Ganon\'s Tower', + 'hammer-pegs': 'Hammer Pegs', + hobo: 'Hobo', + 'hookshot-cave': 'Hookshot Cave', + 'hookshot-cave-bonk': 'Hookshot Cave (bonkable chest)', + 'hype-cave': 'Hype Cave', + 'ice-rod-cave': 'Ice Rod Cave', + ip: 'Ice Palace', + 'kak-well': 'Kakariko Well', + 'kings-tomb': 'King\'s Tomb', + 'lake-hylia-island': 'Lake Hylia Island', + library: 'Library', + 'links-house': 'Link\'s House', + 'lost-woods-hideout': 'Lost Woods Hideout', + lumberjack: 'Lumberjack', + 'magic-bat': 'Magic Bat', + 'mimic-cave': 'Mimic Cave', + 'mini-moldorm-cave': 'Mini Moldorm Cave', + 'mire-shed': 'Mire Shed', + mm: 'Misery Mire', + 'mushroom-spot': 'Mushroom Spot', + 'old-man': 'Old Man', + 'paradox-cave': 'Paradox Cave', + pd: 'Palace of Darkness', + pedestal: 'Master Sword Pedestal', + 'potion-shop': 'Potion Shop', + 'purple-chest': 'Purple Chest', + pyramid: 'Pyramid Ledge', + 'pyramid-fairy': 'Pyramid Fairy', + 'race-game': 'Race Game', + saha: 'Sahasrahla', + 'saha-hut': 'Sahasrahla\'s Hut', + 'sick-kid': 'Sick Kid', + sp: 'Swamp Palace', + 'spec-rock': 'Spectacle Rock', + 'spec-rock-cave': 'Spectacle Rock Cave', + 'spike-cave': 'Spike Cave', + 'spiral-cave': 'Spiral Cave', + stumpy: 'Stumpy', + 'super-bunny': 'Super Bunny Cave', + sw: 'Skull Woods', + tavern: 'Back of Tavern', + th: 'Tower of Hera', + tt: 'Thieves\' Town', + 'waterfall-fairy': 'Waterfall Fairy', + zora: 'King Zora', + 'zora-ledge': 'Zora\'s Ledge', + }, + }, tournaments: { admins: 'Admins', applicationDenied: 'Application denied', @@ -478,9 +669,113 @@ export default { scoreboard: 'Scoreboard', scoreChart: 'Score chart', settings: 'Settings', + settingsError: 'Error saving settings', + settingsSuccess: 'Settings saved successfully', + showNumbers: 'Show numbers', unlockError: 'Error unlocking tournaments', unlockSuccess: 'Tournament unlocked', }, + twitchBot: { + addCommand: 'Add command', + channel: 'Channel', + chat: 'Chat', + chatError: 'Error sending message', + chatSettings: 'Chat Bot Settings', + chatSuccess: 'Message queued', + chatWaitMsgsMin: 'Min. messages', + chatWaitMsgsMax: 'Max. messages', + chatWaitTimeMin: 'Min. time', + chatWaitTimeMax: 'Max. time', + commandDialog: 'Edit command', + commandName: 'Name', + commandParameters: 'Parameters', + commandRestriction: 'Restriction', + commandRestrictions: { + mod: 'Mods', + none: 'none', + owner: 'Owner', + }, + commands: 'Commands', + commandType: 'Type', + commandTypes: { + crew: 'Crew list', + 'guessing-cancel': 'Cancel guessing game', + 'guessing-leaderboard': 'Guessing game leaderboard', + 'guessing-solve': 'Solve guessing game', + 'guessing-start': 'Start guessing game', + 'guessing-stop': 'Stop guessing game', + none: 'keiner', + runner: 'Runner list', + }, + controls: 'Controls', + guessingGame: { + activeMessage: 'Message when a game is already running', + cancelMessage: 'Game cancellation announcement', + closeWinnersMessage: 'Message for inexact winners', + closeWinnersMessageHint: '{names} will be replaced with a list of winners\' names and {distance} with the distance', + defaultActiveMessage: 'Channel already has an active guessing game', + defaultCancelMessage: 'Guessing game cancelled', + defaultCloseWinnersMessage: 'Congrats {names} on guessing within {distance}!', + defaultInvalidSolutionMessage: 'Please provide a valid solution to the guessing game', + defaultNoWinnersMessage: 'nobody wins :(', + defaultNotActiveMessage: 'Channel has no active guessing game', + defaultStartMessage: 'Get your guesses in', + defaultStopMessage: 'Guessing closed', + defaultWinnersMessage: 'Congrats {names}!', + guesses: 'Guesses', + guessTimestamp: '{{ timestamp, LT }}', + invalidSolutionMessage: 'Message for invalid (or missing) solution', + leaderboardType: 'Leaderboard type', + leaderboardTypes: { + 30: 'Running month', + 365: 'Running year', + all: 'All time', + month: 'Current month', + year: 'Current year', + }, + noWinnersMessage: 'Announcement for no winners', + notActiveMessage: 'Message when no game is currently active', + pointsCloseFirst: 'Points for first close match', + pointsCloseMax: 'Maximum distance to count as close match', + pointsCloseOther: 'Points for further close matches', + pointsExactFirst: 'Points for first exact match', + pointsExactOther: 'Points for further exact matches', + popoutControls: 'Popout controls', + settings: 'Guessing game settings', + startMessage: 'Starting announcement', + stopMessage: 'Closing announcement', + winners: 'Winners', + winnerScore: '{{ score }} points', + winnerScore_one: '{{ score }} point', + winnersMessage: 'Winners announcement', + winnersMessageHint: '{names} will be replaced with a list of winners\' names', + }, + heading: 'Twitch Bot', + language: 'Preferred Language', + joinApp: 'Join as App Bot', + joinChat: 'Join as Chat Bot', + joinError: 'Error joining channel', + joinSuccess: 'Joined', + noManagePermission: 'You lack the required privileges to manage the twitch bot.', + partError: 'Error parting channel', + partSuccess: 'Parted', + respond: 'Respond', + respondOptions: { + 50: '50:50', + no: 'No', + yes: 'Yes', + }, + saveError: 'Error saving', + saveSuccess: 'Saved', + selectChannel: 'Please select a channel to manage.', + sendApp: 'Send as App Bot', + sendChat: 'Send as Chat Bot', + }, + twitchLegal: { + heading: 'Twitch extension terms and policies', + p1: 'Participation in the guessing game solely takes place via Twitch chat. Your nickname might show up in chat, on stream and in the leaderboard panel, should you choose to participate.', + p2: 'To display the leaderboard, a request is made to alttp.localhorst.tv. This request is logged anonymously and not further processed.', + }, users: { discordTag: 'Discord tag', editNickname: 'Edit name',