export const EN_REF_USER = {
  'UserHome.ServerRank': 'Server Rank',
  'UserHome.DXRating': 'DX Rating',
  'UserHome.Rating': 'Rating',
  'UserHome.Statistics': 'Statistics',
  'UserHome.Accuracy': 'Accuracy',
  'UserHome.MaxCombo': 'Max Combo',
  'UserHome.FullCombo': 'Full Combo',
  'UserHome.AllPerfect': 'All Perfect',
  'UserHome.DXScore': 'DX Score',
  'UserHome.Score': 'Score',
  'UserHome.PlayActivity': ' Play Activity',
  'UserHome.Plays': 'Plays',
  'UserHome.PlayTime': 'Play Time',
  'UserHome.FirstSeen': 'First Seen',
  'UserHome.LastSeen': 'Last Seen',
  'UserHome.Version': 'Last Version',
  'UserHome.RecentScores': 'Recent Scores',
  'UserHome.NoData': 'No data in the past ${days} days',
  'UserHome.UnknownSong': '(unknown song)',
  'UserHome.Settings': 'Settings',
  'UserHome.NoValidGame': 'The user hasn\'t played any game yet.',
  'UserHome.ShowRanksDetails': 'Click to show details',
  'UserHome.RankDetail.Title': 'Achievement Details',
  'UserHome.RankDetail.Level': 'Level',
  'UserHome.B50': 'B50',
  'UserHome.AddRival': "Add to Rival",
  'UserHome.RemoveRival': "Remove from Rival",
  'UserHome.InvalidGame': "Game ${game} is not supported on the web UI yet. We only support maimai, chunithm, wacca, and ongeki for now.",
  'UserHome.ShowMoreRecent': 'Show more',
  'UserHome.FavoriteSongs': 'Favorite Songs'
}

export const EN_REF_Welcome = {
  'back': 'Back',
  'email': 'Email',
  'password': 'Password',
  'new-password': 'New password',
  'username': 'Username',
  'welcome.btn-login': 'Log in',
  'welcome.btn-signup': 'Sign up',
  'welcome.btn-reset-password': 'Forgot password?',
  'welcome.btn-submit-reset-password': 'Send reset link',
  'welcome.btn-submit-new-password': 'Change password',
  'welcome.email-missing': 'Email is required',
  'welcome.password-missing': 'Password is required',
  'welcome.username-missing': 'Username/email is required',
  'welcome.email-password-missing': 'Email and password are required',
  'welcome.waiting-turnstile': 'Waiting for Turnstile to verify your network environment...',
  'welcome.turnstile-error': 'Error verifying your network environment. Please turn off your VPN and try again.',
  'welcome.turnstile-timeout': 'Network verification timed out. Please try again.',
  'welcome.verification-sent': 'A verification email has been sent to ${email}. Please check your inbox!',
  'welcome.reset-password-sent': 'A password reset email has been sent to ${email}. Please check your inbox!',
  'welcome.verify-state-0': 'You haven\'t verified your email. A verification email has been sent to your inbox just now. Please check your inbox!',
  'welcome.verify-state-1': 'You haven\'t verified your email. You have requested too many emails, please try again later.',
  'welcome.verify-state-2': 'You haven\'t verified your email. We just sent you another verification email. Please check your inbox!',
  'welcome.reset-state-0': 'A reset email has been sent to your inbox just now. Please check your inbox!',
  'welcome.reset-state-1': 'Too many emails have been sent. Another will not be sent.',
  'welcome.verifying': 'Verifying your email... please wait.',
  'welcome.verified': 'Your email has been verified! You can now log in now.',
  'welcome.verification-failed': 'Verification failed: ${message}. Please try again.',
  'welcome.password-reset-done': 'Your password has been updated! Please log back in.',
}

export const EN_REF_LEADERBOARD = {
  'Leaderboard.Title': 'Server Leaderboard',
  'Leaderboard.Rank': 'Rank',
  'Leaderboard.Rating': 'Rating',
  'Leaderboard.Accuracy': 'Accuracy',
  'Leaderboard.FC': 'FC',
  'Leaderboard.AP': 'AP',
  'Leaderboard.Loading': "Loading..."
}

export const EN_REF_GENERAL = {
  'game.mai2': 'Mai',
  'game.chu3': 'Chuni',
  'game.ongeki': 'Ongeki',
  'game.wacca': 'Wacca',
  'status.error': 'Error',
  'status.error.hint': 'Support',
  'status.detail': 'Detail: ${detail}',
  'action.refresh': 'Retry',
  'action.cancel': 'Cancel',
  'action.confirm': 'Confirm',
  'action.home': 'Home',
  'navigation.profile': 'Profile',
  'navigation.maps': 'Maps',
  'navigation.home': 'Home',
  'navigation.rankings': 'Rankings',
  'navigation.notice': 'Notice',
  'loading': `Please wait...`,
  '404': 'Page not found (${pathname}). If this is in error, please report it via an appropriate support channel.'
}

export const EN_REF_HOME = {
  'home.nav.portal': 'Portal',
  'home.nav.link-card': 'Link Card',
  'home.nav.game-setup': 'Game Setup',
  'home.nav.support': 'Support',
  'home.user-profile': 'Profile',
  'home.rankings': 'Rankings',
  'home.settings': 'Settings',
  'home.manage-cards': 'Manage Cards',
  'home.manage-cards-description': 'Link, unlink, and manage your cards.',
  'home.link-card': 'Link Card',
  'home.link-cards-description': 'Link your Amusement IC / Aime card to play games.',
  'home.join-community': 'Community & Support',
  'home.join-community-description': 'Join our community for support and chatting with other players.',
  'home.setup': 'Setup Network Connection',
  'home.setup-description': 'Configure a game to connect to our servers.',
  'home.import': 'Import Player Data',
  'home.import-description': 'Add player data from a separate instance.',
  'home.linkcard.cards': 'Your Cards',
  'home.linkcard.description': 'Access cards that are currently linked',
  'home.linkcard.account-card': 'Account Card',
  'home.linkcard.registered': 'Registered',
  'home.linkcard.lastused': 'Last used',
  'home.linkcard.enter-info': 'Please enter either an Access Code or a Serial Number in the following boxes. Dragging and dropping aime.txt or felica.txt is also supported.',
  'home.linkcard.access-code': 'If you have an Access Code, enter it below. Access Codes can be obtained from the back of your card or from the title screen of your game (press the Access Code button and card in). If you do not have an Access Code, you may generate one.',
  'home.linkcard.enter-sn': 'If you have a Serial Number, enter it below. Serial Numbers can be obtained via most smartphones (NFC Tools: <a href="https://play.google.com/store/apps/details?id=com.wakdev.wdnfc">Android</a> / <a href="https://apps.apple.com/us/app/nfc-tools/id1252962749">Apple</a>) or a card reader.',
  'home.linkcard.link': 'Link',
  'home.linkcard.data-conflict': 'Data Conflict',
  'home.linkcard.name': 'Name',
  'home.linkcard.rating': 'Rating',
  'home.linkcard.last-login': 'Last Login',
  'home.linkcard.linked-own': 'This card is already linked to your account',
  'home.linkcard.linked-another': 'This card is already linked to another account',
  'home.linkcard.notfound': 'Card not found',
  'home.linkcard.unlink': 'Unlink Card',
  'home.linkcard.unlink-notice': 'Are you sure you want to unlink this card?',
  'home.linkcard.felica-ac-warning': 'This Access Code is of a FeliCa AIC card.\nIf you are logging in with a physical card (not aime.txt emulation), unlike the official server, you need to bind the FeliCa SN of the card (or the 00-prefixed card number shown in the game) instead of this code.\nIf you are logging in with aime.txt emulation, please ignore this warning and proceed.',
  'home.linkcard.card-security-warning': 'Access Cards give full access to your games\' player data. Do not share your card information with anyone.',
  'home.community.discord': 'Discord',
  'home.community.telegram': 'Telegram (Chinese)',
  'home.community.qq': 'QQ (Chinese)',
  'home.community.github': 'GitHub Repository',
  'home.import.unknown-game': 'Unknown game type. Currently only Mai and Chuni are supported for importing.',
  'home.import.new-data': 'Data to import',
  'home.import.data-conflict': 'Proceed will override your current data',
}

export const EN_REF_SETUP = {
  'setup.welcome': `Welcome! If you have a game set up, please follow the instructions below to set up the connection with AquaDX.`,
  'setup.keychip-warning': `Your keychip is linked to your account and should be kept secure. Do not give others your keychip.`,
  'setup.steps.one': `Pick a method of setting up network communications. Some browsers may not be able to do automatic setup.`,
  'setup.steps.two': `Ensure your game has encryption disabled as AquaDX does not support encryption. This may be via a patch or setting.`,
  'setup.steps.three': `Link your Aime card to your AquaDX account using the <a href="/cards">Cards</a> page via it's access code or serial number.`,
  'setup.steps.four': `Start the game. Upon reaching the title screen, the network icon in the corner should now show green instead of grey.`,
  'setup.support-info': `If you need assistance, feel free to make an inquiry in a <a href="/support">support channel</a>.`,
  'setup.reveal-keychip': `Reveal keychip`,
  'setup.type.automatic': `Automatic Setup`,
  'setup.type.manual': `Manual Setup`,
  'setup.manual': `Please modify your segatools.ini with the following information.`,
  'setup.automatic': `Select your segatools.ini below to autofill the network information.`,
  'setup.automatic.success': `Success, data has been updated`,
  'setup.automatic.failure': `Failed to update information, please ensure access is not blocked and try again.`,
  'setup.automatic.select': `Pick file`
}

export const EN_REF_SETTINGS = {
  'settings.title': 'Settings',
  'settings.page-title': '${page} Settings',
  'settings.tabs.profile': 'Profile',
  'settings.tabs.global': 'Global',
  'settings.tabs.chu3': 'Chuni',
  'settings.tabs.mai2': 'Mai',
  'settings.tabs.ongeki': 'Ongeki',
  'settings.tabs.wacca': 'Wacca',
  'settings.fields.mai2UnlockMusic.name': 'Unlock All Music',
  'settings.fields.mai2UnlockMusic.desc': 'Unlock all music and master difficulty.',
  'settings.fields.mai2UnlockChara.name': 'Unlock All Characters',
  'settings.fields.mai2UnlockChara.desc': 'Unlock all characters (new characters start at level 1).',
  'settings.fields.mai2UnlockCharaMaxLevel.name': 'Max Character Level',
  'settings.fields.mai2UnlockCharaMaxLevel.desc': 'Set all characters to max level.',
  'settings.fields.mai2UnlockPartners.name': 'Unlock All Partners',
  'settings.fields.mai2UnlockPartners.desc': 'Unlock all partners.',
  'settings.fields.mai2UnlockCollectables.name': 'Unlock All Collectables',
  'settings.fields.mai2UnlockCollectables.desc': 'Unlock all collectables (nameplate, title, icon, frame).',
  'settings.fields.mai2UnlockTickets.name': 'Unlock All Tickets',
  'settings.fields.mai2UnlockTickets.desc': 'Infinite tickets (Note: client still limits which tickets can be used).',
  'settings.fields.waccaUnlockMusic.name': 'Unlock All Music',
  'settings.fields.waccaUnlockMusic.desc': 'Unlock all music.',
  'settings.fields.waccaUnlockPlates.name': 'Unlock All Plates',
  'settings.fields.waccaUnlockPlates.desc': 'Unlock all plates.',
  'settings.fields.waccaUnlockCollectables.name': 'Unlock All Collectables',
  'settings.fields.waccaUnlockCollectables.desc': 'Unlock all collectables (icon, trophy).',
  'settings.fields.waccaUnlockTickets.name': 'Infinite Tickets',
  'settings.fields.waccaUnlockTickets.desc': 'Infinite tickets.',
  'settings.fields.waccaInfiniteWp.name': 'Infinite WP',
  'settings.fields.waccaInfiniteWp.desc': 'Set WP to 999999.',
  'settings.fields.waccaAlwaysVip.name': 'Always VIP',
  'settings.fields.waccaAlwaysVip.desc': 'Set VIP expiration date to 2077-01-01.',
  'settings.fields.chusanTeamName.name': 'Team Name',
  'settings.fields.chusanTeamName.desc': 'Customize the text displayed on the top of your profile.',
  'settings.fields.chusanInfinitePenguins.name': 'Infinite Penguins',
  'settings.fields.chusanInfinitePenguins.desc': 'Set penguin statues for character level prompting to 999.',
  'settings.fields.chusanLvUnlockAll.name': 'Unlock Linked Gates',
  'settings.fields.chusanLvUnlockAll.desc': 'Incurs a long animated sequence, cannot be undone',
  'settings.fields.chusanMatchingReflector.name': 'Matching Server Reflector',
  'settings.fields.chusanMatchingReflector.desc': 'URL of the national matching server\'s UDP reflector.',
  'settings.fields.chusanMatchingServer.name': 'Matching Server',
  'settings.fields.chusanMatchingServer.desc': 'URL of the national matching server.',
  'settings.fields.ongekiInfiniteKaika.name': 'Infinite Kaika',
  'settings.fields.ongekiInfiniteKaika.desc': 'Set Kaika to 999',
  'settings.fields.rounding.name': 'Score Rounding',
  'settings.fields.rounding.desc': 'Round the score to one decimal place',
  'settings.fields.gameUsername.name': 'In-Game Username',
  'settings.fields.gameUsername.desc': 'Your name shown in game',
  'settings.fields.optOutOfLeaderboard.name': 'Opt Out of Leaderboard',
  'settings.fields.optOutOfLeaderboard.desc': 'You will still be able to see yourself on the leaderboard after logging in',
  'settings.fields.enableMusicRank.name': 'Enable Recommended Music Rank on Your Machine',
  'settings.fields.enableMusicRank.desc': 'If you have your own ranking, you can turn this off. It only affects your own machine',
  'settings.mai2.name': 'Player Name',
  'settings.profile.picture': 'Profile Picture',
  'settings.profile.upload-new': 'Upload New',
  'settings.profile.bad-format': 'Invalid image format. Supported types are PNG, JPG, JPEG, WEBP & GIF.',
  'settings.profile.save': 'Save',
  'settings.profile.name': 'Display Name',
  'settings.profile.username': 'Username',
  'settings.profile.password': 'Password',
  'settings.profile.country': 'Country',
  'settings.profile.location': 'Location',
  'settings.profile.bio': 'Bio',
  'settings.profile.unset': 'Unset',
  'settings.profile.logout': 'Log out',
  'settings.profile.unchanged': 'Unchanged',
  'settings.export': 'Export Player Data',
  'settings.batchManualExport': "Export in Batch Manual (for Tachi)",
  'settings.cabNotice': "These settings only apply for your keychip. If you're playing on someone else's setup, please ask them to change these settings.",
  'settings.siteNotice': "These settings only apply to the website.",
  'settings.regionNotice': "These settings are shared amongst Mai, Ongeki and Chuni.",
  'settings.regionSelector.title': "Prefecture Selector",
  'settings.regionSelector.desc': "Select the region where you want the game to identify you",
  'settings.regionSelector.select': "Select Prefecture",
}

export const EN_REF_USERBOX = {
  'userbox.header.general': 'General Settings',
  'userbox.header.matching': 'National Matching',
  'userbox.header.matching.symbolChat': 'Chat Symbols (Matching)',
  'userbox.header.linkedVerse': 'Linked Verse',
  'userbox.header.userbox': 'UserBox Settings',
  'userbox.header.preview': 'UserBox Preview',
  'userbox.nameplateId': 'Nameplate',
  'userbox.frameId': 'Frame',
  'userbox.trophyId': 'Trophy (Title)',
  'userbox.trophyIdSub1': 'Trophy Sub #1 (Title)',
  'userbox.trophyIdSub2': 'Trophy Sub #2 (Title)',
  'userbox.mapIconId': 'Map Icon',
  'userbox.voiceId': 'System Voice',
  'userbox.stageId': 'Stage',
  'userbox.avatarWear': 'Avatar Wear',
  'userbox.avatarHead': 'Avatar Head',
  'userbox.avatarFace': 'Avatar Face',
  'userbox.avatarSkin': 'Avatar Skin',
  'userbox.avatarItem': 'Avatar Item',
  'userbox.avatarFront': 'Avatar Front',
  'userbox.avatarBack': 'Avatar Back',
  'userbox.preview.url': 'Image URL',
  'userbox.error.nodata': 'Chuni data not found',

  'userbox.matching.select': 'Select Matching Server',
  'userbox.matching.select.sub': 'Choose the matching server you want to use.',
  'userbox.matching.option.ui': 'Rooms',
  'userbox.matching.option.guide': 'Guide',
  'userbox.matching.option.collab': 'Collaborators',
  'userbox.matching.custom.name': 'Custom',
  'userbox.matching.custom.sub': 'Enter your own URL',
  'userbox.matching.symbolChat': 'Message Choice',
  'userbox.matching.symbolChat.default': 'Default',

  'userbox.lv.diffnotice': 'In Linked Verse, you will be matched separately based on your difficulty.', 
  'userbox.lv.difficulty': 'Linked Verse Difficulty',
  'userbox.lv.difficulty.1': 'LEVEL V (1000 life, MASTER only)',
  'userbox.lv.difficulty.2': 'LEVEL IV (3000 life, MASTER only)',
  'userbox.lv.difficulty.3': 'LEVEL III (5000 life, MASTER only)',
  'userbox.lv.difficulty.4': 'LEVEL II (5000 life, MASTER & EXPERT only)',
  'userbox.lv.difficulty.5': 'LEVEL I (5000 life, ALL difficulties)',

  'userbox.new.name': 'AquaBox',
  'userbox.new.setup': 'Drag and drop your Chuni game folder (Lumi or newer) into the box below to display UserBoxes with their nameplate & avatar. All files are handled in-browser.',
  'userbox.new.setup.notice': 'Select the highest folder containing your game data.',
  'userbox.new.setup.processing_file': 'Processing',
  'userbox.new.setup.finalizing': 'Saving to internal storage',
  'userbox.new.drop': 'Drop game folder here',
  'userbox.new.switch.to_url': 'Switch to URL mode',
  'userbox.new.switch.to_drop': 'Switch to drop mode',
  'userbox.new.url_warning': 'Enter in the path to access Userbox assets. You are responsible for any results in this state. Please read the documentation. Don\'t expect support for this mode.',
  'userbox.new.activate_first': 'Enable AquaBox (game files required)',
  'userbox.new.activate_update': 'Update AquaBox (game files required)',
  'userbox.new.activate': 'Use AquaBox',
  'userbox.new.activate_desc': 'Enable displaying UserBoxes with their nameplate & avatar',
  'userbox.new.activate_profile': 'Use AquaBox on profiles',
  'userbox.new.activate_profile_desc': 'Enable displaying UserBoxes with their nameplate & avatar on profile pages',
  'userbox.new.error.invalidFolder': 'The folder you selected is invalid. Ensure that your game\'s version is Lumi or newer and that the "A000" option pack is present.',
  'userbox.new.error.invalidUrl': 'The URL you inputted is invalid.'
}

export const EN_REF_MAI_PHOTO = {
  'maiphoto.title': 'Mai Memorial Photo Gallery',
  'maiphoto.url_warning': 'If you want to share a photo with your friend, please save the photo. Do not copy image URL because the URL contains sensitive information.',
  'maiphoto.none': 'No photo found. You can upload photo by clicking upload at the end of each game session.',
}

export const EN_REF_AQUATRANS = {
  'trans.title': '🏳️‍⚧️ AquaTrans™ Data Transfer',
  'trans.confirm.unbackuped.title': 'Confirm transfer',
  'trans.confirm.unbackuped.msg': "It seems like you haven't backed up your destination data. Are you sure you want to proceed? (This will overwrite your destination server's data)",
  'trans.confirm.untested.title': 'Error',
  'trans.confirm.untested.msg': "It seems like you haven't tested both connections yet. Please test the connections first.",
  'trans.confirm.done.title': 'Done!',
  'trans.confirm.done.msg': 'Transfer completed successfully! Your data on ${dst} is overwritten with your data from ${src}.',
  'trans.alert.in-progress': "Transfer already in progress!",
  'trans.prompt-html': `
    <p>👋 Welcome to the AquaTrans™ server data transfer tool!</p>
    <p>You can use this to export data from any server, and input data into any server using the connection credentials (card number, server address, and keychip id).</p>
    <p>This tool will simulate a game client and pull your data from the source server, and push your data to the destination server.</p>
    <p>Please fill out the info below to get started!</p>
  `,
  'trans.error.empty': 'Please fill out all fields.',
  'trans.error.untested': 'Please test the connections first.',
  'trans.success.import': 'Data imported successfully!',
  'trans.source.title': 'Source Server',
  'trans.target.title': 'Destination Server',
  'trans.field.addr': 'Server Address',
  'trans.field.keychip': 'Keychip ID',
  'trans.field.game': 'Game',
  'trans.field.version': 'Version',
  'trans.field.card': 'Card Number',
  'trans.btn.test': 'Test Connection',
  'trans.btn.export': 'Export Data',
  'trans.btn.import': 'Import Data',
  'trans.blacklist': "This server may have rules against tools such as AquaTrans, please use caution.",
}

export const EN_REF = { ...EN_REF_USER, ...EN_REF_Welcome, ...EN_REF_GENERAL,
  ...EN_REF_LEADERBOARD, ...EN_REF_HOME, ...EN_REF_SETTINGS, ...EN_REF_USERBOX,
  ...EN_REF_MAI_PHOTO, ...EN_REF_AQUATRANS, ...EN_REF_SETUP
}

export type LocalizedMessages = typeof EN_REF
