'Choose a language',
'language.name' => 'English',
'nav.home' => 'Home',
'nav.news' => 'News',
'nav.account' => 'My account',
'nav.account_section' => 'Account',
'nav.login' => 'Log in',
'nav.logout' => 'Log out',
'nav.register' => 'Create account',
'nav.highscores' => 'Highscores',
'nav.online' => 'Who is online',
'nav.guilds' => 'Guilds',
'nav.houses' => 'Houses',
'nav.downloads' => 'Downloads',
'nav.forum' => 'Forum',
'nav.shop' => 'Shop',
'nav.support' => 'Support',
'nav.serverinfo' => 'Server info',
'nav.community' => 'Community',
'nav.library' => 'Library',
'nav.contact' => 'Contact',
'nav.vote_for_us' => 'Vote for us',
'nav.credits' => 'Credits',
'nav.wikipedia' => 'Wikipedia',
'nav.wiki_search' => 'Wiki Search',
'common.submit' => 'Submit',
'common.save' => 'Save',
'common.cancel' => 'Cancel',
'common.back' => 'Back',
'common.delete' => 'Delete',
'common.edit' => 'Edit',
'common.confirm' => 'Confirm',
'common.search' => 'Search',
'common.name' => 'Name',
'common.level' => 'Level',
'common.vocation' => 'Vocation',
'common.world' => 'World',
'common.status' => 'Status',
'common.online' => 'Online',
'common.offline' => 'Offline',
'common.yes' => 'Yes',
'common.no' => 'No',
'common.none' => 'None',
'common.loading' => 'Loading...',
'common.page' => 'Page',
'common.next' => 'Next',
'common.previous' => 'Previous',
'common.country' => 'Country',
'common.unknown' => 'Unknown',
'common.show' => 'Show',
'common.hide' => 'Hide',
'common.name_label' => 'Name:',
'common.level_label' => 'Level:',
'common.status_label' => 'Status:',
'common.status_on' => 'ON',
'common.status_off' => 'OFF',
'login.title' => 'Log in',
'login.username' => 'Account name',
'login.email' => 'Email address',
'login.password' => 'Password',
'login.remember' => 'Keep me logged in',
'login.submit' => 'Log in',
'login.forgot' => 'Lost your password?',
'login.failed_title' => 'We tried to log you in, but...',
'login.empty_fields' => 'You need to enter a username and password.',
'login.too_long' => 'Username or password is too long.',
'login.not_found' => 'Failed to authorize your account. Are the details correct, and have you registered?',
'login.not_activated' => 'Your account is not activated. An email was sent when you registered. Please find it and click the activation link.',
'login.token_invalid' => 'Token is invalid.',
'login.wrong_combo' => 'Username and password combination is wrong.',
'login.too_many_attempts' => 'Too many failed login attempts from this connection. Try again in {minutes} minute(s).',
'login.2fa_wrong' => 'The two-factor authentication token you submitted is wrong.',
'login.2fa_hint' => 'Make sure to type the correct token from your mobile authenticator.',
'login.2fa_activate_failed' => 'Activating two-factor authentication failed. Try logging in without a token and configure your app properly.',
'register.title' => 'Create account',
'register.submit' => 'Create account',
'register.account_name' => 'Account name',
'register.email' => 'Email address',
'register.password' => 'Password',
'register.password_again' => 'Repeat password',
'register.country' => 'Country',
'register.accept_terms' => 'I accept the terms of service',
'register.success' => 'Your account has been created. You may now log in.',
'register.check_email' => 'An activation email has been sent. Please check your inbox, and your spam folder.',
'account.title' => 'My account',
'account.characters' => 'Characters',
'account.create_character' => 'Create character',
'account.change_password' => 'Change password',
'account.change_email' => 'Change email',
'account.points' => 'Shop points',
'account.premium' => 'Premium',
'account.premium_days' => '{days} days remaining',
'account.premium_none' => 'No premium time',
'account.created' => 'Account created',
'account.last_login' => 'Last login',
'character.profile' => 'Character profile',
'character.experience' => 'Experience',
'character.magic' => 'Magic level',
'character.residence' => 'Residence',
'character.guild' => 'Guild',
'character.last_login' => 'Last login',
'character.deaths' => 'Deaths',
'character.not_found' => 'That character does not exist.',
'highscores.title' => 'Highscores',
'highscores.rank' => 'Rank',
'highscores.points' => 'Points',
'highscores.empty' => 'No characters to show yet.',
'online.title' => 'Players online',
'online.count' => '{count} players online',
'online.empty' => 'Nobody is online right now.',
'guild.title' => 'Guilds',
'guild.members' => 'Members',
'guild.leader' => 'Leader',
'guild.founded' => 'Founded',
'guild.empty' => 'No guilds have been founded yet.',
'shop.title' => 'Shop',
'shop.buy' => 'Buy',
'shop.price' => 'Price',
'shop.your_points' => 'You have {points} points.',
'shop.not_enough' => 'You do not have enough points for that offer.',
'shop.payment_processing' => 'Your payment is being processed by PagSeguro...',
'shop.this_offer' => 'this offer',
'shop.confirm_purchase' => 'Do you really want to purchase {name} for {cost} points?',
'shop.success' => 'Your purchase was delivered.',
'error.title' => 'Something went wrong',
'error.not_found' => 'That page does not exist.',
'error.no_access' => 'You do not have access to this page.',
'error.login_first' => 'You need to log in first.',
'error.maintenance' => 'The website is down for maintenance. Please come back shortly.',
'footer.online_record' => 'Record: {count} players online on {date}.',
'widget.admin.title' => 'Administration',
'widget.admin.panel' => 'Admin Panel',
'widget.admin.feedback' => 'Feedback: [{count}] new',
'widget.search.title' => 'Character search',
'widget.search.label' => 'Search:',
'widget.search.placeholder' => 'Name . . .',
'widget.highscores.title' => 'View Highscores',
'widget.highscores.submit' => 'Fetch scoreboard',
'skill.experience' => 'Experience',
'skill.shielding' => 'Shielding',
'skill.axe' => 'Axe',
'skill.sword' => 'Sword',
'skill.club' => 'Club',
'skill.distance' => 'Distance',
'skill.fist' => 'Fist',
'skill.fishing' => 'Fishing',
'skill.magic' => 'Magic',
'skill.soul' => 'Soul',
'skill.cap' => 'Cap',
'skill.health' => 'Health',
'skill.mana' => 'Mana',
'widget.houses.title' => 'Town list / houses',
'widget.houses.submit' => 'Fetch houses',
'widget.login.title' => 'Login / Register',
'widget.login.username' => 'Account name:',
'widget.login.password' => 'Password:',
'widget.login.token' => 'Token:',
'widget.login.submit' => 'Log in',
'widget.login.new_account' => 'New account',
'widget.login.lost' => 'Lost username or password?',
'widget.account.welcome' => 'Welcome, {name}.',
'widget.account.my_account' => 'My Account',
'widget.account.create_character' => 'Create Character',
'widget.account.change_password' => 'Change Password',
'widget.account.settings' => 'Settings',
'widget.account.logout' => 'Logout',
'widget.powergamers.title' => 'Top 5 Powergamers',
'widget.topplayers.title' => 'Top 5 players',
'widget.vote.title' => 'Vote for us!',
'widget.vote.text' => 'Get points by voting at OTServers.eu',
'widget.vote.submit' => 'Vote',
'widget.serverinfo.title' => 'Server Information',
'serverinfo.online' => 'Server Online!',
'serverinfo.offline' => 'Server Offline!',
'widget.serverinfo.online' => 'Players online: {count}',
'widget.serverinfo.accounts' => 'Registered accounts: {count}',
'widget.serverinfo.players' => 'Registered players: {count}',
'widget.follow.title' => 'Follow Us',
'vocation.any' => 'Any vocation',
'skill.shield' => 'Shield',
'common.outfit' => 'Outfit',
'common.rank' => 'Rank',
'common.go' => 'Go',
'common.rank_label' => 'Rank:',
'common.item' => 'Item',
'common.count' => 'Count',
'common.added' => 'Added',
'common.by' => 'By',
'common.points' => 'Points',
'common.time' => 'Time',
'common.reason' => 'Reason',
'common.character' => 'Character',
'common.group' => 'Group',
'common.total' => 'Total',
'common.today' => 'Today',
'common.view' => 'View',
'common.nothing' => 'Nothing to show here yet.',
'highscores.ranking_for' => 'Ranking for',
'online.heading' => 'Who is online?',
'online.currently' => 'Currently online:',
'online.nobody' => 'Nobody is online.',
'online.nobody_recent' => 'Nobody has logged in past',
'online.past' => 'Online past',
'online.new_record' => 'New record!',
'online.logout_days' => 'Logout [days] - date',
'online.label_name' => 'Name:',
'online.label_level' => 'Level:',
'online.label_vocation' => 'Vocation:',
'online.label_guild' => 'Guild:',
'killers.latest' => 'Latest Killers',
'killers.latest_kills' => 'Latest kills',
'killers.biggest_murders' => 'Biggest Murders',
'killers.biggest_victims' => 'Biggest Victims',
'killers.killer' => 'Killer',
'killers.victim' => 'Victim',
'killers.kills' => 'Kills',
'killers.deaths' => 'Deaths',
'bans.title' => 'Bans',
'bans.accounts' => 'Banned accounts',
'bans.namelocks' => 'Name locks',
'bans.banned' => 'Banned',
'bans.locked' => 'Locked',
'bans.none' => 'No accounts are currently banned.',
'bans.no_namelocks' => 'No name locks in force.',
'bans.unsupported' => 'This server engine does not expose a ban list.',
'deaths.latest' => 'Latest Deaths',
'deaths.player' => 'Player:',
'topguilds.title' => 'Top 10 guilds with most frags',
'topguilds.frags' => 'Frags:',
'topguilds.no_frags' => 'No frags yet.',
'guildwar.attacking' => 'Attacking Guild:',
'guildwar.defending' => 'Defending Guild:',
'guildwar.deathcount' => 'Death Count:',
'guildwar.killer' => 'Killer:',
'guildwar.killerguild' => 'Killer guild:',
'guildwar.victim' => 'Victim:',
'guildwar.time' => 'Time:',
'guildwar.no_frags' => 'There were no frags on this war so far.',
'achievements.title' => 'Achievements on',
'achievements.description' => 'Description',
'achievements.grade' => 'Grade',
'achievements.secret' => 'Secret',
'protected.stop' => 'STOP!',
'protected.sniffing' => 'Ummh... Why are you sniffing around here?',
'protected.need_login' => 'Sorry, you need to be logged in to do that!',
'protected.register' => 'Please register or log in.',
'support.title' => 'Support in-game',
'deaths.at_level' => 'At level {level}:',
'deaths.monster' => 'Monster:',
'deaths.none' => 'No deaths exist.',
'toponline.title' => 'Most online on {site}',
'toponline.days_ago' => '{days} Days Ago',
'toponline.day_ago' => '1 Day Ago',
'highscores.heading' => 'Ranking for {what}.',
'highscores.page' => 'Page: {n}',
'vocation.any_lower' => 'any vocation',
'killers.no_kills' => 'No player kills exist.',
'killers.no_deaths' => 'No player deaths exist.',
'killers.unsupported' => 'This server engine does not record kill statistics.',
'bans.permanent' => 'Permanent',
'bans.expired' => 'Expired',
'bans.days_left' => 'Days left: {n}',
'bans.hours_left' => 'Hours left: {n}',
'bans.less_hour' => 'Less than an hour',
'bans.intro' => 'Rule violations handled by the gamemasters.',
'bans.ip_count' => 'Address bans also in force: {count}. Addresses are not listed.',
'achievements.disabled' => 'This page has been disabled. It can be enabled in the configuration.',
'guildwar.versus' => 'VERSUS',
'guildwar.status' => 'War status: {status}.',
'guildwar.leading' => 'Leading guild: {guild}.',
'guildwar.score' => 'Score:',
'guildwar.tie' => 'Tie',
'guildwar.none' => 'There have not been any pending wars on this server.',
'guildwar.killed_by' => 'killed at level {level} by',
'guildwar.and_by' => 'and by',
'guildwar.few_others' => 'and a few others',
'online.new_record_line' => '{count} players online right now, the most this server has ever had.',
'online.record_line' => 'Record: {count} players online on {date}.',
'online.past_days' => 'Online past {days} days:',
'online.nobody_past_days' => 'Nobody has logged in past {days} days.',
'news.changelog_ticker' => 'Latest Changelog Updates',
'news.changelog_full' => 'Click here to see full changelog',
'news.no_changelogs' => 'No changelogs submitted.',
'news.not_found' => 'News post not found.',
'news.not_found_text' => 'We failed to find the post you were looking for.',
'news.none' => 'No news exist.',
'news.by' => 'by',
'common.page_n' => 'Page {n}',
'changelog.title' => 'Changelog',
'changelog.header' => 'Changelogs',
'changelog.none' => 'Currently no change logs submitted.',
'createchar.title' => 'Create Character',
'createchar.success' => 'Congratulations! Your character has been created. See you in-game!',
'createchar.name' => 'Name:',
'createchar.vocation' => 'Vocation:',
'createchar.gender' => 'Gender:',
'createchar.male' => 'Male (boy)',
'createchar.female' => 'Female (girl)',
'createchar.town' => 'Town:',
'settings.title' => 'Settings',
'settings.success' => 'Your settings have been updated.',
'settings.email' => 'Email:',
'settings.country' => 'Country:',
'settings.choose' => '(Please choose)',
'settings.submit' => 'Update settings',
'changepw.title' => 'Change Password',
'changepw.success' => 'Your password has been changed.',
'changepw.relogin' => 'You will need to log in again with the new password.',
'changepw.current' => 'Current password:',
'changepw.new' => 'New password:',
'changepw.new_again' => 'New password again:',
'failed.title' => 'Failed!',
'failed.text' => 'Something went wrong. :(',
'success.title' => 'Success!',
'success.back' => 'back',
'success.go' => 'Go',
'contact.title' => 'Contact',
'contact.text' => 'Add contact details on the Admin Panel.',
'blank.title' => 'Blank',
'blank.text' => 'This is a blank sample page.',
'team.title' => 'Team',
'team.col_name' => 'Name',
'team.none' => 'The staff list is empty right now.',
'team.unnamed_group' => 'Group {id}',
'expstages.title' => 'Experience Stages',
'expstages.col_level' => 'Level',
'expstages.col_multiplier' => 'Multiplier',
'expstages.no_server_path' => 'The server data folder is not configured.',
'expstages.file_missing' => 'This server has no stages.xml file.',
'expstages.file_invalid' => 'stages.xml could not be read.',
'expstages.disabled' => 'Experience stages are not configured on this server.',
'faq.title' => 'Frequently Asked Questions',
'faq.none' => 'No questions have been added yet.',
'powergamers.title' => 'Powergamers',
'powergamers.diff' => 'k Diff',
'downloads.title' => 'Downloads',
'downloads.intro' => 'In order to play, you need a compatible IP changer and a Tibia client.',
'downloads.here' => 'HERE',
'downloads.ipchanger' => 'Download IP changer',
'downloads.win' => 'Download Tibia client {version} for Windows',
'downloads.linux' => 'Download Tibia client {version} for Linux',
'downloads.howto' => 'How to connect and play:',
'downloads.step1' => 'and install the Tibia client if you have not already.',
'downloads.step2' => 'and run the IP changer.',
'downloads.step3' => 'In the IP changer, set Client Path to the tibia.exe file where you installed the client.',
'downloads.step4' => 'In the IP changer, write this in the IP field:',
'downloads.step5' => 'Now you can log in on the Tibia client and play by clicking',
'downloads.step5b' => 'If you do not have an account to log in with, you need to register one',
'downloads.download' => 'Download',
'downloads.tibia_intro' => 'Download the {site} client below and start playing right away.',
'downloads.from_mega' => 'Download from MEGA:',
'downloads.from_drive' => 'Download from Google Drive:',
'downloads.from_direct' => 'Direct download:',
'creatures.title' => 'Creatures',
'creatures.placeholder' => 'Creature name',
'creatures.all_races' => 'All races',
'common.clear' => 'Clear',
'buypoints.title' => 'Buy Points',
'buypoints.paypal' => 'Buy points using PayPal:',
'buypoints.pagseguro' => 'Buy points using PagSeguro:',
'buypoints.paygol' => 'Buy points using PayGol:',
'buypoints.price' => 'Price:',
'buypoints.points' => 'Points:',
'buypoints.bonus_col' => 'Bonus:',
'buypoints.action' => 'Action:',
'buypoints.bonus' => 'bonus',
'buypoints.purchase' => 'PURCHASE',
'buypoints.shop_points_on' => '{points} shop points on {site}',
'buypoints.paygol_line' => '{price} {currency} for {points} points:',
'buypoints.disabled' => 'Buy Points system disabled.',
'buypoints.disabled_text' => 'Sorry, this functionality is disabled.',
'gallery.title' => 'Gallery',
'gallery.create' => 'Create image article',
'gallery.powered' => 'This gallery is powered by the IMGUR image host.',
'gallery.select' => 'Select image to upload:',
'gallery.image_title' => 'Image title:',
'gallery.image_desc' => 'Image description:',
'gallery.upload' => 'Upload image',
'gallery.posted' => 'Image posted',
'gallery.posted_text' => 'Your image will not be listed until a gamemaster has approved it. Feel free to remind a GM in-game to log in on the website and approve the post.',
'gallery.preview' => 'Preview:',
'gallery.exists' => 'Image already exists',
'gallery.exists_text' => 'The image has already been posted. Images are not listed until a gamemaster has approved them.',
'gallery.failed' => 'Failed to find the image',
'gallery.failed_text' => 'We could not find the image. Please check the file you selected and try again.',
'gallery.invite' => 'Got some cool images to show the community?',
'gallery.add' => 'Add image',
'gallery.empty' => 'There are currently no public images.',
'gallery.need_login' => 'You need to be logged in to add images.',
'loot.hide_none' => 'Hide None',
'loot.hide_notfound' => 'Hide Not Found',
'loot.hide_empty' => 'Hide Monsters Without Loot',
'loot.hide_all' => 'Hide All',
'loot.normal_rate' => 'Use Normal Loot Rate',
'loot.server_rate' => 'Use Server Loot Rate',
'loot.failed' => 'Failed to load monster',
'credits.developers' => 'Developers:',
'credits.maintained' => 'Maintained by:',
'credits.thanks' => 'Thanks to: (in no particular order)',
'credits.updates' => 'Updates:',
'credits.powered' => 'This website is powered by',
'credits.full_list' => 'See the full list of developers',
'credits.an_ot_site' => 'An OT website',
'srv.title' => 'Server Information',
'srv.intro' => 'Here you will find all basic information about',
'srv.connection' => 'Connection information',
'srv.port' => 'Port',
'srv.client' => 'Client',
'srv.rates' => 'Server rates',
'srv.multiplier' => 'Multiplier',
'srv.exp_rate' => 'Experience rate',
'srv.skill_rate' => 'Skills rate',
'srv.magic_rate' => 'Magic rate',
'srv.loot_rate' => 'Loot rate',
'srv.min_level' => 'Minimum level',
'srv.max_level' => 'Maximum level',
'srv.pvp' => 'PvP information',
'srv.world_type' => 'World type',
'srv.protection_level' => 'Protection level',
'srv.red_skull' => 'Kills to red skull',
'srv.black_skull' => 'Kills to black skull',
'srv.white_skull' => 'White skull duration',
'srv.frag_decrease' => 'Time to decrease frags',
'srv.pz_lock' => 'Protection zone lock (non lethal attack)',
'srv.exp_by_pk' => 'Experience by killing players',
'srv.exp_threshold' => 'Experience gain kill threshold:',
'srv.misc' => 'Miscellaneous information',
'srv.other' => 'Other information',
'srv.free_premium' => 'Free premium',
'srv.max_players' => 'Max players online server limit',
'srv.one_per_account' => 'One player online per account',
'srv.afk_kick' => 'AFK kickout',
'srv.outfit_change' => 'Allow outfit change',
'srv.hotkey_aimbot' => 'Hotkey aimbot',
'srv.rune_charges' => 'Remove rune charges',
'srv.stamina' => 'Stamina system',
'srv.stair_jump' => 'Stair jump exhaust',
'srv.house_price' => 'House SQM price',
'srv.house_rent' => 'House rent period',
'srv.market_duration' => 'Market offer duration',
'srv.market_premium' => 'Premium to add items to market',
'common.unlimited' => 'Unlimited',
'shop.offers' => 'Shop Offers',
'shop.buy_points' => 'Buy points',
'shop.need_login' => 'You need to be logged in to use the shop.',
'shop.you_have' => 'You have',
'shop.image' => 'Image:',
'shop.item' => 'Item:',
'shop.description' => 'Description:',
'shop.count' => 'Count:',
'shop.duration' => 'Duration:',
'shop.count_dur' => 'Count/duration:',
'shop.points_col' => 'Points:',
'shop.action' => 'Action:',
'shop.error' => 'Error:',
'shop.cat_all' => 'ALL',
'shop.cat_items' => 'ITEMS',
'shop.cat_premium' => 'PREMIUM',
'shop.cat_outfits' => 'OUTFITS',
'shop.cat_mounts' => 'MOUNTS',
'shop.cat_misc' => 'MISC',
'shop.chars_hint' => 'Interested in buying characters? View the',
'spells.title' => 'Spells',
'spells.types' => 'Spell types:',
'spells.instant' => 'Instant Spells',
'spells.conjure' => 'Conjure Spells',
'spells.runes' => 'Magical Runes',
'spells.filter_voc' => 'Filter vocation:',
'spells.all' => 'All',
'spells.image' => 'Image',
'spells.words' => 'Words',
'spells.mana' => 'Mana',
'spells.soul' => 'Soul',
'spells.charges' => 'Charges',
'spells.magic_level' => 'Magic Level',
'spells.vocations' => 'Vocations',
'spells.jump_top' => 'Jump to top',
'items.title' => 'Items',
'items.disabled' => 'The items page is not enabled.',
'items.not_loaded' => 'Items have currently not been loaded into the website by the server admin.',
'items.attributes' => 'Attributes',
'items.helmets' => 'Helmets',
'items.swords' => 'Swords',
'items.distance' => 'Distance Weapons',
'items.wands' => 'Wands & Rods',
'items.armors' => 'Armors',
'items.clubs' => 'Clubs',
'items.ammunition' => 'Ammunition',
'items.spellbooks' => 'Spellbooks',
'items.legs' => 'Legs',
'items.axes' => 'Axes',
'items.necklaces' => 'Amulets & Necklaces',
'items.amulets' => 'Amulets',
'items.boots' => 'Boots',
'items.shields' => 'Shields & Spellbooks',
'items.backpacks' => 'Backpacks',
'items.rings' => 'Rings',
'items.attr_slots' => 'Slots',
'items.attr_hit' => 'Hit',
'items.attr_speed' => 'Speed',
'items.attr_charges' => 'Charges',
'items.attr_shoot' => 'Shoot Type',
'items.attr_magic' => 'Magic Level',
'items.fight_fist' => 'Fist Fighting',
'items.fight_axe' => 'Axe Fighting',
'items.fight_sword' => 'Sword Fighting',
'items.fight_club' => 'Club Fighting',
'items.fight_dist' => 'Distance Fighting',
'items.fight_shield' => 'Shielding',
'items.prot_physical' => 'Physical Protection',
'items.prot_fire' => 'Fire Protection',
'items.prot_ice' => 'Ice Protection',
'items.prot_earth' => 'Earth Protection',
'items.prot_energy' => 'Energy Protection',
'items.prot_holy' => 'Holy Protection',
'items.prot_death' => 'Death Protection',
'items.prot_poison' => 'Poison Protection',
'items.prot_drown' => 'Drown Protection',
'items.prot_lifedrain' => 'Life Drain Protection',
'items.prot_manadrain' => 'Mana Drain Protection',
'items.sup_bleeding' => 'Suppress Bleeding',
'items.sup_curse' => 'Suppress Curse',
'items.sup_dazzle' => 'Suppress Dazzle',
'items.sup_drown' => 'Suppress Drown',
'items.sup_drunk' => 'Suppress Drunk',
'items.sup_energy' => 'Suppress Energy',
'items.sup_fire' => 'Suppress Fire',
'items.sup_freeze' => 'Suppress Freeze',
'items.sup_poison' => 'Suppress Poison',
'credits.znotex_text' => 'This website is powered by ZnoteX, a remaster of Znote AAC rebuilt on a modern codebase: PHP 8, a full admin control panel, a theme system, plugins and a web installer.',
'credits.znote_text' => 'This website is powered by the Znote AAC engine.',
'credits.opensource' => 'Znote AAC is an open source project where everyone can help with development.',
'credits.avatar_of' => 'Avatar of: {name}',
'credits.thanks_chris' => 'PHP OOP file samples, testing, bugfixing.',
'credits.thanks_kiwidan' => 'Researching TFS 0.2 for me, participation in developement.',
'credits.thanks_amoaz' => 'Pentesting and security tips.',
'credits.thanks_evan_gremlee' => 'Researching TFS 0.3, constructive feedback, suggestion and participation.',
'credits.thanks_att3' => 'Reporting and fixing bugs, TFS 1.0 research.',
'credits.thanks_mark' => 'Old repository, TFS distributions which this AAC was primarily built for.',
'credits.thanks_bugreporters' => 'Reporting bugs.',
'credits.thanks_nottinghster' => 'OTHIRE distribution compatibility.',
'auction.title' => 'character auction page!',
'reg.fill_all' => 'You need to fill in all fields.',
'reg.captcha' => 'Please confirm that you are not a robot.',
'reg.name_taken' => 'Sorry, that account name already exists.',
'reg.name_blocked' => 'This account name is blocked for registration.',
'reg.name_chars' => 'Your account name can only contain the characters a-z, A-Z and 0-9.',
'reg.name_digits' => 'Your account can only contain the numbers 0-9.',
'reg.name_length_num' => 'Your account number must be between 6 and 8 digits long.',
'reg.restricted_word' => 'Your name contains a restricted word.',
'reg.words_too_short' => 'There are words that are too short in your name.',
'reg.name_too_long' => 'Your account name must be less than 33 characters.',
'reg.pw_too_short' => 'Your password must be at least 6 characters.',
'reg.pw_too_long' => 'Your password must be less than 30 characters.',
'reg.pw_mismatch' => 'Your passwords do not match.',
'reg.email_invalid' => 'A valid email address is required.',
'reg.email_taken' => 'That email address is already in use.',
'reg.accept_rules' => 'You are only allowed to have an account if you accept the rules.',
'reg.bad_ip' => 'Failed to recognise your IP address (not a valid IPv4 address).',
'reg.choose_country' => 'Please choose a country.',
'reg.created' => 'Congratulations! Your account has been created. You may now log in and create a character.',
'recovery.captcha_wrong' => 'The captcha verification was submitted incorrectly.',
'acc.delete_cancelled' => 'Pending deletion of {name} has been cancelled.',
'acc.comment_updated' => 'Comment updated.',
'acc.is_guild_leader' => 'This character leads a guild. Disband the guild or hand over leadership before deleting the character.',
'acc.must_be_offline' => 'The character must be offline first.',
'acc.no_name_tickets' => 'No name change tickets found. You can buy them in our shop.',
'acc.sync_failed' => 'Failed to sync your account.',
'acc.name_max_words' => 'Your name cannot contain more than 2 words.',
'acc.name_required' => 'Please enter a name.',
'acc.name_taken' => 'Sorry, that character name already exists.',
'acc.name_letters' => 'Your name may only contain a-z, A-Z and spaces.',
'acc.name_length' => 'Your character name must be between {min} and {max} characters long.',
'acc.name_capital' => 'The first letter of a name has to be a capital letter.',
'acc.name_changed' => 'You have successfully changed your character name to {name}.',
'acc.gender_changed' => 'You have successfully changed the gender of character {name}.',
'acc.premium_days' => 'You have {days} premium account days remaining.',
'acc.free_account' => 'You have a free account.',
'createchar.creature_name' => 'Your name contains a creature name.',
'createchar.bad_vocation' => 'Permission denied: wrong vocation.',
'createchar.bad_town' => 'Permission denied: wrong town.',
'createchar.bad_gender' => 'Permission denied: wrong gender.',
'createchar.no_vocation' => 'Failed to recognise that vocation. Does it exist?',
'createchar.no_town' => 'Failed to recognise that town. Does it exist?',
'createchar.no_gender' => 'Failed to recognise that gender. Does it exist?',
'createchar.max_chars' => 'Your account is not allowed to have more than {max} characters.',
'changepw.mismatch' => 'Your new passwords do not match.',
'changepw.too_short' => 'Your new password must be at least 6 characters.',
'changepw.too_long' => 'Your new password must be less than 100 characters.',
'changepw.wrong' => 'Your current password is incorrect.',
'helpdesk.no_access' => 'You cannot view this ticket.',
'helpdesk.created' => 'Your ticket has been created. We will reply within 24 hours.',
'char.killed_at' => 'Killed at level {level} by {killer}',
'guild.need_login' => 'You need to be logged in to create guilds.',
'guild.need_premium' => 'You need a premium account to create a guild.',
'guild.already_in' => 'You are already in a guild.',
'guild.name_taken' => 'A guild with that name already exists.',
'guild.name_too_long' => 'Guild name is too long. It has to be 30 characters or less.',
'guild.name_letters' => 'Guild name may only contain a-z, A-Z and spaces.',
'guild.must_offline' => 'Your character must be offline to create a guild.',
'guild.offline_join' => 'The character must be offline before joining a guild.',
'guild.offline_first' => 'The character must be offline first.',
'guild.not_offline' => 'Character not offline.',
'guild.wrong_account_join' => 'Join guild request sent from the wrong account.',
'guild.wrong_account_leave' => 'Leave guild request sent from the wrong account.',
'guild.empty_list' => 'Guild list is empty.',
'guild.data' => 'Guild data',
'guild.information' => 'Information',
'guild.description' => 'Description',
'guild.label' => 'Guild:',
'guild.status' => 'Status:',
'guild.remove' => 'Remove:',
'guild.invite_char' => 'Invite character to guild:',
'guild.invited_chars' => 'Invited characters',
'guild.no_invites' => 'There are currently no pending invitations.',
'guild.pending_invite' => 'Pending invitation',
'guild.invited_on' => 'Invited on',
'guild.accept_invite' => 'Accept invitation',
'guild.reject_invite' => 'Reject invitation',
'guild.cancel_invite' => 'Cancel invitation',
'guild.reject_label' => 'Reject invitation:',
'guild.join' => 'Join guild:',
'guild.change_leader' => 'Change leadership with:',
'guild.change_motd' => 'Change guild message:',
'guild.change_ranks' => 'Change rank titles:',
'guild.create_board' => 'Create guild forum board:',
'guild.board_exists' => 'The guild board already exists.',
'guild.board_created' => 'The guild board has been created.',
'guild.board_disabled' => 'Error: the guild board system is disabled.',
'guild.war_management' => 'Guild war management:',
'guild.invite_war' => 'Invite guild to war:',
'guild.aggressor' => 'Aggressor',
'guild.attacker' => 'Attacker:',
'guild.defender' => 'Defender:',
'house.not_found' => 'House not found.',
'house.none_selected' => 'No house selected.',
'house.label' => 'House:',
'house.on_auction' => 'This house is up for auction!',
'house.no_bidders' => 'This house does not have any bidders yet.',
'house.active_bid' => 'Active bid:',
'house.active_bid_by' => 'Active bid by:',
'house.bid_ends' => 'Bid will end on:',
'house.your_level' => 'Your level:',
'house.your_account' => 'Your account has',
'house.your_bids' => 'Your house/bid count:',
'house.bid_submit' => 'Bid on this house',
'house.congrats' => 'Congratulations!',
'house.highest_bid' => 'You have the highest bid on this house!',
'house.already_higher' => 'You already have a higher pledge on this house.',
'house.not_enough' => 'You do not have enough money to bid that high.',
'house.too_many' => 'You cannot have more houses.',
'house.need_premium' => 'You need a premium account to purchase houses.',
'house.go_back' => 'Go back to the',
'house.remember_say' => 'Remember to say',
'house.shop_points' => 'Shop points',
'market.title' => 'Marketplace',
'market.active' => 'Active offers',
'market.old' => 'Old purchased offers',
'market.sold' => 'Offer sold',
'market.item_name' => 'Item name',
'market.search' => 'Item search:',
'market.compare' => 'Compare',
'market.price_for_1' => 'Price for 1',
'market.want_to_buy' => 'Want to buy:',
'market.hint' => 'You can buy and sell items by clicking on the',
'market.load_failed' => 'Failed to load the item list.',
'market.tried_file' => 'Attempted to load this file:',
'market.fix_path' => 'Configure the correct \'server_path\' in config.php.',
'market.check_permissions' => 'If the path is correct, make sure your web user has access to read it.',
'market.depot_link_text' => 'market in depot.',
'market.sell_instructions' => 'To sell an item: Place item inside your depot, click on market, search for your item and sell it.',
'market.wts' => 'WTS: Want to sell',
'market.wtb' => 'WTB: Want to buy',
'market.item_image_alt' => 'Item Image',
'market.anonymous' => 'Anonymous',
'market.comparing_item' => 'Comparing item: {name}',
'market.search_result' => 'Search: {query}',
'market.go_back' => 'Go back',
'common.go_back' => 'Go back',
'fsearch.title' => 'Search forum',
'fsearch.fill_all' => 'You must fill in all fields.',
'fsearch.no_results' => 'No results.',
'fsearch.latest_posts' => 'Latest posts',
'fsearch.latest_threads' => 'Latest threads',
'fsearch.author_posts' => 'Author (posts)',
'fsearch.author_threads' => 'Author (threads)',
'fsearch.option_title' => 'Title',
'fsearch.option_post' => 'Post',
'fsearch.search_placeholder' => 'Search string',
'fsearch.col_char' => 'Char',
'fsearch.col_thread' => 'Thread',
'fsearch.col_post' => 'Post',
'guild.change_leader_btn' => 'Change leadership',
'forum.title' => 'Forum',
'forum.boards' => 'Forum Boards',
'forum.guild_boards' => 'Guild Boards',
'forum.no_boards' => 'No boards are available to you yet.',
'forum.threads_word' => 'threads',
'forum.replies_word' => 'replies',
'forum.lastpost' => 'Last:',
'forum.started_by' => 'by {name} · {ago}',
'forum.last_by' => 'last by {name} · {ago}',
'forum.no_replies' => 'no replies yet',
'forum.new_thread_btn' => 'New thread',
'forum.reply_btn' => 'Post reply',
'forum.reply_title' => 'Reply to this thread',
'forum.sticky_tag' => 'Pinned',
'forum.locked_tag' => 'Locked',
'forum.hidden_tag' => 'Hidden',
'forum.op_tag' => 'Original post',
'forum.posted_on' => 'Posted {ago}',
'forum.edit' => 'Edit',
'forum.ago_now' => 'just now',
'forum.ago_min' => '{n}m ago',
'forum.ago_hour' => '{n}h ago',
'forum.ago_day' => '{n}d ago',
'forum.go_back' => 'Go back to Forum',
'forum.go_back_to' => 'Go back to:',
'forum.create_thread' => 'Create Thread',
'forum.create_thread_new' => 'Create new thread',
'forum.edit_post' => 'Edit Post',
'forum.quote' => 'Quote',
'forum.edit_thread' => 'Edit Thread',
'forum.create_board' => 'Create board:',
'forum.board_name' => 'Board name:',
'forum.guild_id' => 'Guild id:',
'forum.hidden' => 'Hidden:',
'forum.closed' => 'Closed:',
'forum.required_access' => 'Required Access:',
'forum.post_as' => 'Post as',
'forum.viewing' => 'Viewing thread:',
'forum.linkmap' => 'LinkMap:',
'forum.board_created' => 'Board has been created.',
'forum.board_updated' => 'Board has been updated successfully.',
'forum.board_closed' => 'This board is closed.',
'forum.board_empty' => 'Board is empty, no threads exist yet.',
'forum.cat_not_found' => 'Category not found.',
'forum.cat_missing' => 'Category does not exist.',
'forum.thread_unavailable' => 'Thread unavailable',
'forum.thread_unavailable_text' => 'Thread is unavailable for you, or do not exist any more.',
'forum.post_deleted' => 'Post has been deleted.',
'forum.board_and_threads_deleted' => 'Board, associated threads and all their associated posts deleted.',
'forum.post_updated' => 'Post has been updated.',
'forum.thread_closed_note' => 'You don\'t have permission to post on this thread. [Thread: Closed]',
'forum.level_required' => 'You must have a character on your account that is level {level}+ to reply to this thread.',
'forum.perm_denied3' => 'Your permission to access this thread has been denied.',
'forum.thread_title_placeholder' => 'Thread title',
'forum.level_required_new_thread' => 'You must have a character on your account that is level {level}+ to create new threads.',
'forum.board_access_denied' => 'Your permission to access this board has been denied.
If you are trying to access a Guild Board, you need level: {level}+',
'forum.thread_deleted' => 'Thread and all associated posts deleted.',
'forum.thread_closed' => 'Thread has been closed.',
'forum.thread_opened' => 'Thread has been opened.',
'forum.thread_stuck' => 'Thread has been stickied.',
'forum.thread_unstuck' => 'Thread has been unstickied.',
'forum.thread_updated' => 'Thread has been updated.',
'forum.perm_denied' => 'Permission denied.',
'forum.perm_thread' => 'Permission to create thread denied.',
'forum.edit_denied' => 'Edit access denied.',
'forum.no_guildboards' => 'You do not have access to any guild boards.',
'forum.antispam' => 'Antispam: You need to wait',
'forum.close_thread' => 'Close Thread',
'forum.open_thread' => 'Open Thread',
'forum.delete_post' => 'Delete Post',
'forum.delete_thread' => 'Delete Thread',
'forum.stick' => 'Stick thread',
'forum.unstick' => 'Unstick thread',
'forum.create_board_btn' => 'Create Board',
'forum.update_board' => 'Update Board',
'forum.update_post' => 'Update Post',
'forum.update_thread' => 'Update Thread',
'auc.page_title' => 'Character auction',
'auc.disabled' => 'The character auction system is disabled.',
'auc.history' => 'Character auction history',
'auc.add' => 'Add a character to the auction',
'auc.ongoing' => 'Ongoing auctions:',
'auc.char_offline' => 'Character: (Must be offline)',
'auc.sell_price' => 'Sell price:',
'auc.verify_pw' => 'Verify with your password:',
'auc.bid_period' => 'The bidding period will last for',
'auc.remaining' => 'Remaining bid period:',
'auc.details' => 'Details',
'auc.detailed_info' => 'Detailed character information.',
'auc.skills' => 'Character skills:',
'auc.player_items' => 'Player items:',
'auc.depot_items' => 'Depot items:',
'auc.deposit' => 'Deposit:',
'auc.deposit_info' => 'Deposit information:',
'auc.go_back_list' => 'Go back to list.',
'auc.shop_points' => 'Shop points:',
'auc.your_points' => 'Your current points:',
'auc.your_max' => 'Your maximum:',
'auc.minimum' => 'Minimum:',
'auc.is_seller' => 'You are the seller of this character.',
'auc.cannot_afford' => 'You cannot afford to buy this character.',
'auc.highest_bid' => 'You currently have the highest bid at:',
'auc.claim_name' => 'Hello master, what should my new name be?',
'auc.claim_issues' => 'Issues occurred while claiming your name',
'auc.so_far_good' => 'So far so good!',
'auc.claim_btn' => 'Claim character',
'auc.sell_btn' => 'Sell character',
'auc.name_required' => 'Please give the character a name.',
'auc.not_found' => 'We are unable to find this auction order.',
'auc.char_option' => 'Level: {level} {vocation}: {name}',
'auc.deposit_reason' => 'To ensure you as the seller is a legitimate account, and to encourage fair prices you have to temporarily invest {percent}% of the selling price as a deposit.',
'auc.deposit_refund' => 'Once the auction has completed, the deposit fee will be refunded back to your account.',
'auc.reclaim_info' => 'If you wish to reclaim your character, you can do it after the bidding period if nobody has placed an offer on it. But if you do this you will not get the deposit back. It is therefore advisable that you create a good and appealing offer to our community.',
'auc.rules_intro' => 'Your account does not follow the required rules to sell characters.',
'auc.min_level' => 'Minimum level',
'auc.rule_min_level' => '1. Minimum level: {level}',
'auc.rule_min_points' => '2. Minimum already earned shop points: {points}',
'auc.rule_offline' => '3. Eligible characters must be offline.',
'auc.storage_error' => 'The storage account cannot use the character auction.',
'auc.sort_by' => 'Sort by',
'auc.sort_level_desc' => 'Level (high to low)',
'auc.sort_level_asc' => 'Level (low to high)',
'auc.sort_price_desc' => 'Price (high to low)',
'auc.sort_price_asc' => 'Price (low to high)',
'auc.sort_ending_soon' => 'Ending soon',
'auc.search_placeholder' => 'Character or item name',
'auc.start' => 'Auction Start:',
'auc.end' => 'Auction End:',
'auc.type_label' => 'Type:',
'auc.instant' => 'Instant',
'auc.bidding' => 'Bidding',
'auc.min_bid' => 'Minimum Bid:',
'auc.my_bid_limit' => 'My Bid Limit',
'auc.no_auctions' => 'No characters are currently up for auction.',
'auc.item_search_placeholder' => 'Search item...',
'auc.remaining_short' => 'Remaining:',
'auc.tab_general' => 'General',
'auc.tab_items' => 'Item Summary',
'auc.items_col' => 'Items',
'auc.wrong_engine' => 'Character shop auction system is currently only available for ServerEngine TFS_10.',
'auc.bank' => 'Bank',
'auc.price' => 'Price',
'auc.price_points' => '{price} points',
'auc.points_remaining' => 'shop points remaining.',
'auc.yours_in' => 'If nobody bids higher than you, this character will be yours in:',
'auc.bid_btn' => 'Bid',
'auc.buy_btn' => 'Buy',
'auc.bidding_ended' => 'The bidding period has ended, you can wait until someone decides to instantly buy it, or you can reclaim your character to your account.',
'auc.reclaim_btn' => 'Reclaim character back to your account',
'auc.reclaim_after_period' => 'After this period, you can reclaim your character if nobody has bid on it.',
'common.bid_label' => 'Bid:',
'common.image' => 'Image',
'recovery.title' => 'Account Recovery',
'recovery.found' => 'Account Found!',
'recovery.failed' => 'Account recovery failed!',
'recovery.disabled' => 'System Disabled',
'recovery.disabled_text' => 'The administrator has disabled automatic account recovery.',
'recovery.confirm_email' => 'Confirm your action through email',
'recovery.verify_failed' => 'Failed to verify your request.',
'recovery.wrong_data' => 'Submitted data is wrong.',
'recovery.cannot_auth' => 'We are unable to authenticate your account.',
'recovery.wish_recover' => 'Do you wish to recover your',
'recovery.sent_link' => 'We have sent a confirmation link to',
'recovery.sent_password' => 'We have sent your new password to',
'recovery.sent_username' => 'We have sent your account name to',
'recovery.new_password' => 'Your new password is:',
'recovery.your_username' => 'Your account name is:',
'recovery.submit' => 'Recover Account',
'recovery.remove_2fa' => 'Remove Two-Factor Authentication',
'recovery.2fa_disabled' => 'Two-Factor Authentication disabled.',
'common.2fa' => 'Two-factor authentication',
'common.label_username' => 'Account name:',
'common.label_password' => 'Password:',
'common.label_character' => 'Character:',
'guild.disband_offline' => 'All members must be offline to disband the guild.',
'guild.nick_disabled' => 'The guild nickname feature has been disabled.',
'guild.no_position' => 'Failed to find the guild rank for this member.',
'guild.char_in_guild' => 'That character is already in a guild.',
'guild.char_not_found' => 'That character name does not exist.',
'guild.not_found' => 'That guild name does not exist.',
'guild.visit_board' => 'Visit Guild Board',
'guild.war_overview' => 'War overview:',
'guild.you_are_already' => 'You are already',
'guild.of_another_guild' => 'of another guild',
'guild.title_char' => 'Guild: {name}',
'guild.logo_label' => 'Logo',
'guild.char_name_placeholder' => 'Character name',
'guild.message_placeholder' => 'Guild Message',
'guild.leave_blank_placeholder' => 'leave blank to erase',
'guild.name_placeholder' => 'Guild name',
'guild.enemy' => 'Enemy',
'guild.with_placeholder' => 'With...',
'guild.leave_first' => 'You need to leave that guild first before you can join another one.',
'guild.vocation' => 'Vocation:',
'guild.create_btn' => 'Create Guild',
'guild.disband_btn' => 'Disband Guild',
'guild.invite_btn' => 'Invite Character',
'guild.change_nick_btn' => 'Change Nick',
'guild.create_board_btn' => 'Create Guild Board',
'acc.page_title' => 'My account',
'acc.welcome' => 'Welcome to your account page,',
'acc.char_list' => 'Character list:',
'acc.char_list_count' => 'Character List: {count} characters.',
'acc.verified_short' => 'Verified',
'acc.hide_col' => 'Hide',
'acc.select_action' => 'Select action',
'acc.delete_char' => 'Delete character',
'acc.change_name' => 'Change name',
'acc.change_gender' => 'Change gender',
'acc.change_comment' => 'Change comment',
'acc.change_comment_on' => 'Change comment on:',
'acc.toggle_hide' => 'Toggle hide',
'acc.cancel_op' => 'Cancel this operation.',
'acc.comment' => 'Comment:',
'acc.update_comment' => 'Update Comment',
'acc.email_verified' => 'Your email has been verified.',
'acc.email_not_verified' => 'Your email is not verified!',
'acc.please_verify' => 'Please verify it',
'acc.email_sent' => 'Email authentication sent',
'acc.auth_failed' => 'Authentication failed',
'acc.auth_failed_or_activated' => 'Either the activation link is wrong, or your account is already activated.',
'acc.verify_reward' => 'As thanks for having a verified email, you have received {points}!',
'acc.mail_subject_verify' => 'Please authenticate your email at {host}.',
'acc.mail_verify_intro' => 'Please click on the following link to authenticate your account:',
'acc.mail_verify_thanks' => 'Thank you for verifying your email and enjoy your stay at {site}.',
'acc.verify_sent_intro' => 'We have sent you an email with a verification link to your email address:',
'acc.check_junk_spam' => 'If you can\'t find the email within 5 minutes, check your junk/trash inbox (spam filter) as it may be misplaced there.',
'acc.verify_send_failed' => 'Failed to verify user when trying to send a verification email.',
'acc.caution' => 'CAUTION!',
'acc.character_will_be_deleted' => 'Your character with name {name} will be deleted on {time}.',
'acc.character_deleted' => '{name} has been deleted',
'acc.requested_by_owner' => 'This operation was requested by owner of this account.',
'acc.security_2fa' => 'Account security with two-factor authentication:',
'common.congrats' => 'Congratulations!',
'reg.heading' => 'Register Account',
'reg.submit' => 'Create Account',
'reg.label_name' => 'Account Name:',
'reg.label_pw' => 'Password:',
'reg.label_pw2' => 'Password again:',
'reg.label_country' => 'Country:',
'reg.rules_title' => 'Server Rules',
'reg.rules_agree' => 'Do you agree to follow the server rules?',
'reg.rule_golden' => 'The golden rule: Have fun.',
'reg.rule_pwned' => 'If you get pwn3d, don\'t hate the game.',
'reg.please_choose' => '(Please choose)',
'reg.rule_no_cheating' => 'No {link} allowed.',
'reg.cheating_word' => 'cheating',
'reg.rule_no_botting' => 'No {link} allowed.',
'reg.botting_word' => 'botting',
'reg.rule_staff_power' => 'The staff can delete, ban, do whatever they want with your account and your submitted information. (Including exposing and logging your IP).',
'reg.email_required' => 'Email authentication required',
'reg.rule_nocheat' => 'No cheating or botting. Staff decisions are final.',
'reg.activation_sent' => 'We have sent you an email with an activation link to your submitted email address.',
'reg.agree_umh' => 'Umh...',
'reg.agree_yes' => 'Yes.',
'reg.agree_no' => 'No.',
'char.death_list' => 'Death List',
'char.never_died' => 'This player has never died.',
'char.last_login_label' => 'Last login:',
'char.last_login' => 'Last Login',
'char.position' => 'Position',
'char.address' => 'Address:',
'char.comment' => 'Comment:',
'char.vocation_label' => 'Vocation:',
'char.ach_points' => 'Achievement Points',
'char.achievements' => 'Achievements:',
'char.toggle_ach' => 'Show/hide player achievements',
'char.other_chars' => 'Other visible characters on this account:',
'char.flagged_delete' => 'Flagged for deletion by the owner after',
'guild.offline_join2' => 'Character must be offline before joining guild.',
'guild.offline_first2' => 'Character must be offline first!',
'guild.nick_disabled2' => 'Change guild nickname feature has been disabled.',
'guild.no_position2' => 'Failed to find guild position representing member.',
'guild.create_board2' => 'Create forum guild board:',
'guild.no_invites2' => 'Currently there are no pending invitations.',
'guild.board_disabled2' => 'Error: Guild board system is disabled.',
'guild.war_management2' => 'Guild War Management:',
'guild.board_exists2' => 'Guild board already exist.',
'guild.board_created2' => 'Guild board has been created.',
'guild.join2' => 'Join Guild:',
'guild.wrong_acc_join2' => 'Join guild request sent from wrong account.',
'guild.wrong_acc_leave2' => 'Leave guild request sent from wrong account.',
'guild.reject2' => 'Reject Invitation:',
'guild.name_too_long2' => 'Guild name is to long. It can has to be 30 or less characters long.',
'guild.accept_btn' => 'Accept Invitation',
'guild.cancel_btn' => 'Cancel Invitation',
'guild.invite_guild_btn' => 'Invite Guild',
'guild.join_btn' => 'Join Guild',
'guild.leave_btn' => 'Leave Guild',
'auc.disabled2' => 'Character shop auctioning system is disabled.',
'fsearch.title2' => 'Search forum',
'fsearch.fill_all2' => 'You must fill in all fields!',
'fsearch.latest_posts2' => 'Latest Posts',
'fsearch.latest_threads2' => 'Latest Threads',
'forum.perm_denied2' => 'Permission denied.',
'forum.thread_stuck2' => 'Thread has been sticked.',
'forum.thread_unstuck2' => 'Thread has been unsticked.',
'forum.edit_post_denied' => 'Your permission to edit this post has been denied.',
'forum.edit_thread_denied' => 'Your permission to edit this thread has been denied.',
'forum.delete_btn' => 'Delete',
'recovery.verify_failed2' => 'Failed verify your request.',
'recovery.disabled_text2' => 'The admin have disabled automatic account recovery.',
'recovery.sent_username2' => 'We have sent your username to',
'recovery.your_username2' => 'Your username is:',
'recovery.click_link' => 'You must click the link before we remove',
'recovery.mail_lostaccount_intro' => 'To recover your account name and receive a new password, click this link:',
'recovery.mail_ignore' => 'If you did not request account recovery, you can ignore this e-mail.',
'recovery.mail_noreply' => 'I am an automatic no-reply e-mail. Any emails sent back to me will be ignored.',
'recovery.sent_generic' => 'If the submitted data matches an account, an e-mail with recovery instructions has been sent to the registered account e-mail address.',
'recovery.not_automated' => 'This recovery option is not automated yet. Please contact an administrator if you need recovery-key based account changes.',
'recovery.mail_subject_lostaccount' => '{host}: Lost account recovery',
'recovery.mail_subject_username' => '{host}: Your username',
'recovery.mail_subject_password' => '{host}: Your new password',
'recovery.mail_subject_recovered' => '{host}: Your recovered account',
'recovery.mail_enjoy_stay' => 'Enjoy your stay at {site}.',
'recovery.check_junk' => 'If you can\'t find the email within 5 minutes, check your junk/trash inbox as it may be mislocated there.',
'recovery.recommend_change_password' => 'We recommend you to login and change it before you continue playing.',
'recovery.recommend_change_password_now' => 'We recommend that you log in and change this password immediately.',
'recovery.remove_2fa_confirm_link' => 'If you really want to remove Two-Factor Authentication, click on the following link:',
'recovery.2fa_disabled_text' => 'You may now login with just your username and password.',
'recovery.welcome_title' => 'Welcome to the Lost Account Interface!',
'recovery.intro_text' => 'If you have lost access to your account, this interface can help you. Of course, you need to prove that your claim to the account is justified. Enter the requested data and follow the instructions carefully. Please understand there is no way to get access to your lost account if the interface cannot help you. Further options to change account data are available if you have a registered account.',
'recovery.can_intro' => 'By using the Lost Account Interface you can',
'recovery.can_new_password' => 'get a new password if you have lost the current password,',
'recovery.can_hacked' => 'get your account back if it has been hacked,',
'recovery.can_change_email' => 'change the email address of your account instantly (only possible with a valid recovery key or a valid recovery TAN),',
'recovery.can_new_key' => 'request a new recovery key/recovery TAN (only available to registered accounts),',
'recovery.can_remove_auth' => 'remove an authenticator app from your account (only possible with a valid recovery key or a valid recovery TAN),',
'recovery.can_disable_email_auth' => 'disable email code authentication for your account (only available to accounts with a valid recovery key).',
'recovery.first_step' => 'As a first step to use the Lost Account Interface, please enter the name of a character or the email address of your account and click on "Submit".',
'recovery.email_label' => 'Email:',
'recovery.panel_title' => 'Lost account',
'recovery.field_character' => 'Please enter your character name',
'recovery.field_email' => 'Or enter your e-mail',
'recovery.field_action' => 'What do you want?',
'recovery.option_email' => 'Send me new password and my account name to account e-mail address.',
'recovery.option_reckey' => 'I got recovery key and want set new password and e-mail address to my account.',
'recovery.option_no_char' => 'I don\'t have character created and want to recovery my account.',
'common.label_username2' => 'Username:',
'house.on_auction2' => 'This house is up on auction!',
'house.no_bidders2' => 'This house don\'t have any bidders yet.',
'house.not_enough2' => 'You don\'t have enough money to bid this high.',
'house.need_premium2' => 'You need premium account to purchase houses.',
'house.shop_points2' => 'Shop points',
'house.bid_too_low' => 'Too low bid amount, someone else has a higher bid active.',
'house.level_too_low' => 'Your character is too low level, must be higher level than {level} to buy a house.',
'house.own_char_only' => 'You may only bid on houses for characters on your account.',
'house.has_bidders' => 'This house have bidders! If you want this house, now is your chance!',
'house.min_bid' => 'Min bid: {amount}',
'helpdesk.title' => 'Helpdesk',
'helpdesk.latest' => 'Latest Tickets',
'helpdesk.subject' => 'Subject:',
'helpdesk.creation' => 'Creation:',
'helpdesk.reply' => 'Post Reply',
'helpdesk.submit' => 'Submit ticket',
'helpdesk.view_ticket' => 'View Ticket #',
'helpdesk.closed' => 'CLOSED',
'helpdesk.created_by' => 'Created by:',
'helpdesk.posted_by' => 'Posted by:',
'twofa.title' => 'Two-Factor Authentication',
'twofa.security' => 'Account security with Two-factor Authentication:',
'twofa.howto' => 'How to use:',
'twofa.google' => 'Google Authenticator',
'twofa.login_to_activate' => 'Login with a token generated from this QR code to activate:',
'twofa.disable_confirm' => 'Disable two-factor authentication?',
'twofa.disable_btn' => 'Disable',
'twofa.qr_alt' => '{title} QR code image for this account.',
'twofa.step_download' => 'Download an authenticator app for free on your mobile phone like {authy} or {google}.',
'twofa.step_scan' => 'Scan the QR image with the app on your phone to create a Two-Factor account for this server.',
'twofa.step_login' => '{logout_link}, then login with username, password and token generated from your phone to enable {title}.',
'twofa.incompatible' => 'Server compatibility error',
'voting.disabled' => 'Voting is not enabled.',
'voting.cannot_verify' => 'Could not verify that you have voted.',
'voting.not_voted' => 'It does not seem like you have voted.',
'voting.request_failed' => 'Something went wrong! Could not make a vote request.',
'voting.rewarded' => 'Thank you for voting! You have been rewarded with {points} {unit}!',
'voting.point_singular' => 'point',
'voting.point_plural' => 'points',
'common.vocation_label' => 'Vocation:',
'common.description' => 'Description',
'common.you_have' => 'You have',
'common.disabled_config' => 'This page has been disabled at config.php.',
'auc.storage_account' => 'Silly you! You cannot claim characters with the storage account configured in',
'auc.char_name_between' => 'Your character name must be between',
'guild.promote' => 'Promote Member',
'guild.reject_btn' => 'Reject Invitation',
'guild.remove_invite' => 'Remove Invitation',
'guild.remove_member' => 'Remove member',
'guild.update_ranks' => 'Update Ranks',
'guild.update_motd' => 'Update guild message',
'guild.upload_logo' => 'Upload guild logo',
'forum.no_guildboards2' => 'You don\'t have access to any guildboards.',
'forum.no_edit_post' => 'You don\'t have permission to edit this post.',
'char.flagged_delete2' => 'Flagged for deletion by owner after',
'sub.disabled_title' => 'System disabled.',
'sub.disabled_text' => 'The sub page system is disabled.',
'sub.unknown_title' => 'Sub page not recognized.',
'sub.unknown_text' => 'The sub page you requested is not recognized.',
'page.not_found' => 'Page not found',
'page.no_such' => 'There is no',
'houses.empty' => 'Is the table empty?',
'houses.fetch' => 'Fetch houses',
'houses.order' => 'Order',
'houses.sort' => 'Sort',
'houses.descending' => 'Descending',
'houses.ascending' => 'Ascending',
'house.size' => 'Size',
'house.beds' => 'Beds',
'house.rent' => 'Rent',
'house.owner' => 'Owner',
'twtr.title' => 'Tweets from',
'twofa.incompatible2' => 'Sorry, this server is not compatible with',
'quest.name' => 'Quest Name',
'quest.status' => 'Status',
'quest.no_characters' => 'You don\'t have any characters.',
'buypoints.off' => 'Buying points is currently disabled.',
'market.load_failed2' => 'Failed to load item list.',
'reg.words_too_short2' => 'Too short words in your name.',
'reg.restricted_word2' => 'Your username contains a restricted word.',
'creatures.no_match' => 'No creature matches.',
'acc.auth_failed_text' => 'Either the activation link is wrong, or your account is already activated.',
'houses.fetch_failed' => 'Failed to fetch data from the houses table.',
'shop.gender_unlocked' => 'You now have access to change the gender of your characters. Visit My Account to select a character and change its gender.',
'shop.name_unlocked' => 'You now have access to change the name of your characters. Visit My Account to select a character and change its name.',
'page.no_such_page' => 'There is no',
'creatures.experience' => 'Experience',
'credits.ot_website' => 'An OT website (Automatic Account Creator) created by',
'credits.from_community' => 'from the OT forum community',
'auc.storage_account2' => 'You cannot claim characters with the storage account configured in $config[\'shop_auction\'][\'storage_account_id\'], because those characters are already in your account.',
'twtr.tweets_from' => 'Tweets from',
'acp.csrf_failed' => 'Your session expired, please try again.',
'acp.pagination_label' => 'Pages',
'acp.group.Overview' => 'Overview',
'acp.group.Players' => 'Players',
'acp.group.Content' => 'Content',
'acp.group.Economy' => 'Economy',
'acp.group.Support' => 'Support',
'acp.group.Settings' => 'Settings',
'acp.group.Server Info' => 'Server Info',
'acp.group.Operations' => 'Operations',
'acp.group.Other' => 'Other',
'acp.mod.accounts.title' => 'Accounts',
'acp.mod.auction.title' => 'Character Auctions',
'acp.mod.changelog.title' => 'Changelog',
'acp.mod.convert.title' => 'Convert SQL',
'acp.mod.dashboard.title' => 'Dashboard',
'acp.mod.feedback.title' => 'Feedback Board',
'acp.mod.gallery.title' => 'Gallery',
'acp.mod.helpdesk.title' => 'Helpdesk',
'acp.mod.landing.title' => 'Landing Page',
'acp.mod.layouts.title' => 'Layout',
'acp.mod.menus.title' => 'Menus',
'acp.mod.minimap.title' => 'Minimap',
'acp.mod.news.title' => 'News',
'acp.mod.payments.title' => 'Payments',
'acp.mod.players.title' => 'Player Tools',
'acp.mod.plugins.title' => 'Plugins',
'acp.mod.reports.title' => 'Bug Reports',
'acp.mod.search.title' => 'Search',
'acp.mod.serverinfo.title' => 'Server Information',
'acp.mod.settings.title' => 'Settings',
'acp.mod.shop.title' => 'Shop Manager',
'acp.mod.shop_orders.title' => 'Shop Pending / History',
'acp.mod.skills.title' => 'Character Skills',
'acp.mod.visitors.title' => 'Visitors',
'acp.mod.accounts.desc' => 'Search an account, see its characters, points and history.',
'acp.mod.auction.desc' => 'Ongoing, unclaimed and completed character sales.',
'acp.mod.changelog.desc' => 'Write and manage the entries shown on the public changelog page.',
'acp.mod.convert.desc' => 'Upload a MyAAC or Gesior2012 SQL dump and download a ZnoteX conversion SQL.',
'acp.mod.dashboard.desc' => 'Server and community at a glance.',
'acp.mod.feedback.desc' => 'Forum threads from players awaiting a staff reply.',
'acp.mod.gallery.desc' => 'Moderate player screenshot submissions.',
'acp.mod.helpdesk.desc' => 'Answer, close and delete player support tickets.',
'acp.mod.landing.desc' => 'Show a standalone page from landing/ instead of the front page.',
'acp.mod.layouts.desc' => 'Pick the theme the public site is dressed in.',
'acp.mod.menus.desc' => 'Add, reorder and hide the links your theme shows.',
'acp.mod.minimap.desc' => 'Import an OTClient .otmm minimap and show it on Server Information.',
'acp.mod.news.desc' => 'Write, edit and remove front-page articles.',
'acp.mod.payments.desc' => 'Gateways, credentials and the point packages players can buy.',
'acp.mod.players.desc' => 'Ban, punish, move and maintain characters and their accounts.',
'acp.mod.plugins.desc' => 'Install, update, enable and disable what is in plugins/.',
'acp.mod.reports.desc' => 'Triage in-game reports, reward reporters and publish changelogs.',
'acp.mod.search.desc' => 'Everything in the panel, by name or by what a setting does.',
'acp.mod.serverinfo.desc' => 'Upload config.lua, stages.xml, items.xml, spells.xml and your monster folder.',
'acp.mod.settings.desc' => 'Change the settings that used to mean editing config.php by FTP.',
'acp.mod.shop.desc' => 'Add, preview, hide and remove database shop offers.',
'acp.mod.shop_orders.desc' => 'Pending shop deliveries and completed purchase history.',
'acp.mod.skills.desc' => 'Read and rewrite a character\'s level, vocation and skills.',
'acp.mod.visitors.desc' => 'Traffic ZnoteX has been recording all along.',
'acp.sec.Site' => 'Site',
'acp.sec.Maintenance' => 'Maintenance',
'acp.sec.Language' => 'Language',
'acp.sec.Game server' => 'Game server',
'acp.sec.Characters' => 'Characters',
'acp.sec.Content' => 'Content',
'acp.sec.Privacy' => 'Privacy',
'acp.sec.Shop' => 'Shop',
'acp.sec.Outfit images' => 'Outfit images',
'acp.sec.Character auction' => 'Character auction',
'acp.sec.Forum' => 'Forum',
'acp.sec.Guilds' => 'Guilds',
'acp.sec.Highscores & lists' => 'Highscores & lists',
'acp.sec.Houses' => 'Houses',
'acp.sec.Server status' => 'Server status',
'acp.sec.Downloads' => 'Downloads',
'acp.sec.Permissions' => 'Permissions',
'acp.set.admin_access.label' => 'Admin panel access',
'acp.set.admin_access.help' => 'Owners see and change everything. A scoped account only sees the categories its roles allow - everything else is hidden from the sidebar and refused if opened directly.',
'acp.perm.role_auditor' => 'Auditor',
'acp.perm.role_auditor_desc' => 'Read-only: dashboard, analytics, admin log, visitors.',
'acp.perm.role_content' => 'Content',
'acp.perm.role_content_desc' => 'News, changelog, menus, landing page, themes, plugins.',
'acp.perm.role_moderator' => 'Moderator',
'acp.perm.role_moderator_desc' => 'Gallery, reports.',
'acp.perm.role_support' => 'Support',
'acp.perm.role_support_desc' => 'Gallery, reports, helpdesk, feedback.',
'acp.perm.role_economy' => 'Economy',
'acp.perm.role_economy_desc' => 'Accounts, character auction, shop, shop orders.',
'acp.perm.role_ops' => 'Ops',
'acp.perm.role_ops_desc' => 'Server info, minimap.',
'acp.perm.col_account' => 'Account name',
'acp.perm.col_owner' => 'Owner',
'acp.perm.account_placeholder' => 'Account name',
'acp.perm.remove_account' => 'Remove',
'acp.perm.add_account' => 'Add account',
'acp.perm.owner_only_view' => 'Only an Owner can view or change this.',
'acp.perm.owner_only' => 'Only an Owner can change permissions.',
'acp.perm.no_owner' => 'At least one account must stay an Owner. Permissions were not saved.',
'acp.health.stat_db_size' => 'Database size',
'acp.health.stat_cache' => 'Cache entries',
'acp.health.stat_migrations' => 'Pending migrations',
'acp.health.stat_backup' => 'Last backup',
'acp.health.no_backup' => 'None yet',
'acp.health.php_title' => 'PHP & extensions',
'acp.health.storage_title' => 'Storage',
'acp.health.db_tables' => 'Database tables',
'acp.health.cache_size' => 'Cache on disk',
'acp.health.apcu' => 'APCu memory cache',
'acp.health.available' => 'Available',
'acp.health.unavailable' => 'Unavailable',
'acp.health.disk_free' => 'Disk free',
'acp.health.errorlog_title' => 'Error log',
'acp.health.errorlog_open' => 'Open',
'acp.health.errorlog_summary' => '{path} - {size}, last written {when}.',
'acp.health.errorlog_none' => 'No log file found at the configured or auto-detected path.',
'acp.bkp.created' => 'Backup created: {name}.',
'acp.bkp.create_failed' => 'Backup failed: {error}',
'acp.bkp.deleted' => 'Backup deleted.',
'acp.bkp.delete_failed' => 'Could not delete that backup.',
'acp.bkp.retention_saved' => 'Kept backups set to {n}.',
'acp.bkp.stat_count' => 'Backups stored',
'acp.bkp.stat_size' => 'Total size',
'acp.bkp.create_title' => 'Create a backup',
'acp.bkp.create_sub' => 'A full SQL dump of the database, compressed. Restorable with any MySQL client - nothing ZnoteX-specific about the file.',
'acp.bkp.create_btn' => 'Create backup now',
'acp.bkp.create_hint' => 'A large database can take a while - the page waits for it to finish.',
'acp.bkp.retention_label' => 'Keep the last',
'acp.bkp.retention_suffix' => 'backups (older ones are deleted right after a new one is made)',
'acp.bkp.retention_save_btn' => 'Save',
'acp.sched.title' => 'Task Scheduler',
'acp.sched.sub' => 'No real cron here - each task runs opportunistically on the next page load once its interval has passed (public pages, and any admin panel page).',
'acp.sched.col_task' => 'Task',
'acp.sched.col_enabled' => 'Enabled',
'acp.sched.col_interval' => 'Every (hours)',
'acp.sched.col_last_run' => 'Last run',
'acp.sched.col_last_result' => 'Last result',
'acp.sched.col_actions' => 'Actions',
'acp.sched.keep_days_label' => 'Keep entries for (days)',
'acp.sched.never' => 'Never',
'acp.sched.run_now' => 'Run now',
'acp.sched.save_btn' => 'Save',
'acp.sched.saved' => 'Scheduler settings saved.',
'acp.sched.unknown_task' => 'Unknown task.',
'acp.sched.run_done' => '{task} ran: {summary}',
'acp.bkp.list_title' => 'Existing backups',
'acp.bkp.col_name' => 'File',
'acp.bkp.col_date' => 'Created',
'acp.bkp.col_size' => 'Size',
'acp.bkp.col_actions' => 'Actions',
'acp.bkp.confirm_delete' => 'Delete this backup? This cannot be undone.',
'acp.bkp.empty' => 'No backups yet.',
'acp.lattempt.no_table' => 'Run the pending database migration first (Admin Panel > Migrations).',
'acp.lattempt.cleared' => 'Cleared - that IP can log in again immediately.',
'acp.lattempt.stat_locked' => 'IPs locked out now',
'acp.lattempt.stat_guard' => 'Protection',
'acp.lattempt.on' => 'On',
'acp.lattempt.off' => 'Off',
'acp.lattempt.locked_title' => 'Currently locked out',
'acp.lattempt.col_ip' => 'IP',
'acp.lattempt.col_failures' => 'Failures',
'acp.lattempt.col_last' => 'Last attempt',
'acp.lattempt.confirm_clear' => 'Let this IP try again immediately?',
'acp.lattempt.clear_btn' => 'Unlock',
'acp.lattempt.recent_title' => 'Last 100 attempts',
'acp.lattempt.col_when' => 'When',
'acp.lattempt.col_username' => 'Username tried',
'acp.lattempt.col_result' => 'Result',
'acp.lattempt.success' => 'Success',
'acp.lattempt.failed' => 'Failed',
'acp.lattempt.empty' => 'No login attempts recorded yet.',
'acp.api.desc_index' => 'Site title, account/player counts, players online (with unique IPs), client version, port.',
'acp.api.desc_online' => 'The currently online players: name, level, vocation.',
'acp.api.desc_top_experience' => 'Top players by experience. ?rows=N (default 10, max 100).',
'acp.api.desc_town_names' => 'Configured town id => name map.',
'acp.api.desc_character_info' => 'Character card by name (?name=). Respects hidden characters.',
'acp.api.desc_highscores_top' => 'Highscores by skill type, same data as the site page. ?type=1-9&vocation=id|all&rows=N.',
'acp.api.title' => 'Public JSON endpoints',
'acp.api.sub' => 'Everything under /api/ - read-only, no authentication. Point a Discord bot or external tool at these.',
'acp.api.col_endpoint' => 'Endpoint',
'acp.api.col_description' => 'What it returns',
'acp.api.open_btn' => 'Open',
'acp.api.empty' => 'No API endpoints found.',
'acp.api.response_title' => 'Response shape',
'acp.api.response_text' => 'Every endpoint replies with JSON shaped like this - "version" always present, "data" holding the actual payload:',
'acp.sec.Login Protection' => 'Login Protection',
'acp.set.login_guard.enabled.label' => 'Lock out an IP after too many failed logins',
'acp.set.login_guard.threshold.label' => 'Failed attempts allowed',
'acp.set.login_guard.window_minutes.label' => 'Counting window (minutes)',
'acp.set.login_guard.window_minutes.help' => 'Failed attempts older than this many minutes no longer count toward the lockout.',
'acp.set.login_guard.lockout_minutes.label' => 'Lockout duration (minutes)',
'acp.sec.Security' => 'Security',
'acp.sec.Cache' => 'Cache',
'acp.sec.E-mail' => 'E-mail',
'acp.set.site_title.label' => 'Site title',
'acp.set.site_title.help' => 'Shown in the browser tab, the footer and the social banners.',
'acp.set.site_title_context.label' => 'Tagline',
'acp.set.site_url.label' => 'Site URL',
'acp.set.site_url.help' => 'Used in e-mails and absolute links. No trailing slash.',
'acp.set.maintenance.label' => 'Maintenance mode',
'acp.set.maintenance.help' => 'Visitors see the message below. Admins keep full access.',
'acp.set.maintenance_message.label' => 'Maintenance message',
'acp.set.language.label' => 'Default language',
'acp.set.language.help' => 'Used when the visitor has no saved choice and their browser asks for nothing you offer.',
'acp.set.languages_enabled.label' => 'Offered languages',
'acp.set.languages_enabled.help' => 'Which flags the switcher shows. The default language is always kept.',
'acp.set.language_selector.label' => 'Show the language switcher',
'acp.set.language_selector.help' => 'Adds it to every theme, top right. Turn off if your theme places it itself.',
'acp.set.client.label' => 'Client version',
'acp.set.client.help' => 'For example 1098 for client 10.98.',
'acp.set.port.label' => 'Game server port',
'acp.set.freePremium.label' => 'Free premium',
'acp.set.max_characters.label' => 'Characters per account',
'acp.set.minL.label' => 'Minimum name length',
'acp.set.maxL.label' => 'Maximum name length',
'acp.set.maxW.label' => 'Maximum words in a name',
'acp.set.create_guild_level.label' => 'Level required to create a guild',
'acp.set.player.label' => 'Starting character (level, stats, skills, outfits)',
'acp.set.player.help' => 'The full base/create block: starting level, base health/mana/cap/soul, per-vocation skills and the default male/female outfits. The create.skills array uses vocation ids: 0 = No vocation, 1 = Sorcerer, 2 = Druid, 3 = Paladin, 4 = Knight. Extra ids such as 9 are custom/other vocations and can be overridden in the vocations config.',
'acp.set.news_per_page.label' => 'News articles per page',
'acp.set.UseChangelogTicker.label' => 'Changelog ticker on the front page',
'acp.set.allowSubPages.label' => 'Allow theme sub pages',
'acp.set.faq.entries.label' => 'FAQ questions',
'acp.set.faq.entries.col_question' => 'Question',
'acp.set.faq.entries.col_answer' => 'Answer',
'acp.set.faq.entries.help' => 'Shown on faq.php as an accordion, in this order. Add, remove or reorder rows freely. Add faq.php as a menu link (Admin Panel > Menus) to point visitors at it, e.g. from Support.',
'acp.set.log_ip.label' => 'Log visitor IPs',
'acp.set.log_ip.help' => 'Feeds the Visitors page. Turning it off stops the collection entirely.',
'acp.set.shop.enabled.label' => 'Shop enabled',
'acp.set.shop.enabled.help' => 'Turns off the shop page and its menu entry.',
'acp.set.shop.loginToView.label' => 'Require login to view the shop',
'acp.set.shop.enableShopConfirmation.label' => 'Ask for confirmation before buying',
'acp.set.shop.showImage.label' => 'Show item images',
'acp.set.shop.imageServer.label' => 'Item image server',
'acp.set.shop.imageType.label' => 'Item image extension',
'acp.set.shop.imageType.help' => 'gif or png, depending on the image server.',
'acp.set.buypoints_enabled.label' => 'Buy points page',
'acp.set.show_outfits.imageServer.label' => 'Outfit image server',
'acp.set.show_outfits.shop.label' => 'Outfits in the shop',
'acp.set.show_outfits.highscores.label' => 'Outfits in the highscores',
'acp.set.show_outfits.characterprofile.label' => 'Outfits on character profiles',
'acp.set.show_outfits.onlinelist.label' => 'Outfits in the online list',
'acp.set.shop_auction.characterAuction.label' => 'Character auction enabled',
'acp.set.shop_auction.characterAuction.help' => 'Lets players sell and bid on characters for shop points.',
'acp.set.shop_auction.storage_account_id.label' => 'Storage account ID',
'acp.set.shop_auction.lowestLevel.label' => 'Minimum level to sell',
'acp.set.shop_auction.lowestPrice.label' => 'Minimum price in points',
'acp.set.shop_auction.step.label' => 'Minimum bid increase',
'acp.set.shop_auction.deposit.label' => 'Seller deposit (%)',
'acp.set.forum.enabled.label' => 'Forum enabled',
'acp.set.forum.level.label' => 'Level required to post',
'acp.set.forum.maxImagesPerPost.label' => 'Images allowed per post',
'acp.set.forum.maxImagesPerPost.help' => '0 blocks images entirely.',
'acp.set.forum.guildboard.label' => 'Guild boards',
'acp.set.forum.outfit_avatars.label' => 'Show outfits as avatars',
'acp.set.forum.newPostsBumpThreads.label' => 'New posts bump threads',
'acp.set.use_guild_logos.label' => 'Guild logo uploads',
'acp.set.guild_require_premium.label' => 'Premium required to create a guild',
'acp.set.guild_allow_nicknames.label' => 'Allow guild nicknames',
'acp.set.guildwar_enabled.label' => 'Guild wars',
'acp.set.highscore.rows.label' => 'Highscore entries',
'acp.set.highscore.rowsPerPage.label' => 'Highscore rows per page',
'acp.set.highscore.ignoreGroupId.label' => 'Hide group ID and above',
'acp.set.highscore.ignoreGroupId.help' => 'Keeps staff out of the highscores. 2 hides gamemasters upward.',
'acp.set.powergamers.enabled.label' => 'Powergamers page',
'acp.set.powergamers.enabled.help' => 'Needs the Lua script and the extra SQL columns.',
'acp.set.powergamers.limit.label' => 'Powergamers shown',
'acp.set.toponline.enabled.label' => 'Top online page',
'acp.set.toponline.limit.label' => 'Top online shown',
'acp.set.houseConfig.HouseListDefaultTown.label' => 'Default town on the house list',
'acp.set.houseConfig.minimumBidSQM.label' => 'Minimum bid per SQM',
'acp.set.houseConfig.housesPerPlayer.label' => 'Houses per player',
'acp.set.houseConfig.levelToBuyHouse.label' => 'Level required to buy a house',
'acp.set.houseConfig.requirePremium.label' => 'Premium required',
'acp.set.houseConfig.shopPoints.enabled.label' => 'Instant buy with shop points',
'acp.set.status.status_check.label' => 'Query the game server for status',
'acp.set.status.status_ip.label' => 'Status IP',
'acp.set.status.status_port.label' => 'Status port',
'acp.set.login_web_service.label' => 'Client login web service',
'acp.set.login_web_service.help' => 'Required by client 11 and newer.',
'acp.set.login_protocol.label' => 'Login protocol',
'acp.set.login_protocol.help' => 'Shape of the character list the client is sent. Auto follows the client version above.',
'acp.set.login_auth_type.label' => 'Canary auth type',
'acp.set.login_auth_type.help' => 'Must match authType in your Canary config.lua, or nobody can enter the world.',
'acp.set.login_session_ttl.label' => 'Session lifetime',
'acp.set.login_session_ttl.help' => 'Seconds a session auth row stays valid. Ignored on password auth.',
'acp.set.gameserver.ip.label' => 'Game server IP',
'acp.set.gameserver.port.label' => 'Login web service port',
'acp.set.gameserver.name.label' => 'World name',
'acp.set.client_download.label' => 'Windows client URL',
'acp.set.client_download_linux.label' => 'Linux client URL',
'acp.set.use_token.label' => 'CSRF tokens on forms',
'acp.set.use_captcha.label' => 'reCaptcha',
'acp.set.use_captcha.help' => 'Needs the site and secret keys below, and the cURL extension.',
'acp.set.captcha_site_key.label' => 'reCaptcha site key',
'acp.set.captcha_secret_key.label' => 'reCaptcha secret key',
'acp.set.twoFactorAuthenticator.label' => 'Two-factor authentication',
'acp.set.twoFactorAuthenticator.help' => 'TFS 1.2+ only. Unavailable on Canary.',
'acp.set.validate_IP.label' => 'Tie sessions to the visitor IP',
'acp.set.cache.lifespan.label' => 'Cache lifetime (seconds)',
'acp.set.cache.memory.label' => 'Keep cache in memory (APCu)',
'acp.set.mailserver.register.label' => 'Send activation mail on register',
'acp.set.mailserver.accountRecovery.label' => 'Allow account recovery by mail',
'acp.set.mailserver.accountRecovery.help' => 'Enables the Lost Account page for recovering usernames, passwords and legacy 2FA by e-mail.',
'acp.set.mailserver.myaccount_verify_email.label' => 'Let players verify their e-mail',
'acp.set.mailserver.verify_email_points.label' => 'Points for verifying e-mail',
'acp.set.mailserver.verify_email_points.help' => '0 disables the reward.',
'acp.set.mailserver.host.label' => 'SMTP host',
'acp.set.mailserver.port.label' => 'SMTP port',
'acp.set.mailserver.port.help' => '465 for SSL, 587 for TLS.',
'acp.set.mailserver.securityType.label' => 'SMTP security',
'acp.set.mailserver.securityType.help' => 'ssl or tls.',
'acp.set.mailserver.email.label' => 'From address',
'acp.set.mailserver.username.label' => 'SMTP username',
'acp.set.mailserver.password.label' => 'SMTP password',
'acp.set.buypoints_enabled.help' => 'Off hides buypoints.php whichever gateways are configured. Gateways themselves are on the Payments page.',
'acp.set.show_outfits.imageServer.help' => 'The script that renders outfits, e.g. https://outfit-images.ots.me/1285/animoutfit.php',
'acp.set.shop_auction.storage_account_id.help' => 'Holds characters while they are listed. Use a separate, secure account - not your god account.',
'acp.set.cache.memory.help' => 'Needs the APCu extension. With it off, the cache uses files in engine/cache/.',
'acp.shell.search_panel' => 'Search panel...',
'acp.shell.nav_label' => 'Admin navigation',
'acp.shell.no_match' => 'No menu entry matches.',
'acp.shell.toggle_menu' => 'Toggle menu',
'acp.shell.control_panel' => 'control panel',
'acp.shell.search_the_panel' => 'Search the panel...',
'acp.shell.breadcrumb_label' => 'Breadcrumb',
'acp.shell.view_site' => 'View site',
'acp.shell.toggle_theme' => 'Toggle day/night mode',
'acp.shell.night' => 'Night',
'acp.shell.log_out' => 'Log out',
'acp.shell.rendered_in' => 'Rendered in {seconds}s',
'acp.dash.stat_accounts' => 'Accounts',
'acp.dash.stat_characters' => 'Characters',
'acp.dash.stat_online' => 'Online now',
'acp.dash.stat_guilds' => 'Guilds',
'acp.dash.stat_houses' => 'Houses',
'acp.dash.stat_points' => 'Shop points',
'acp.dash.attention_title' => 'Needs attention',
'acp.dash.attention_sub' => 'Open items across the panel',
'acp.dash.bug_reports' => 'Bug reports open',
'acp.dash.helpdesk_open' => 'Helpdesk tickets open',
'acp.dash.images_pending' => 'Images awaiting moderation',
'acp.dash.feedback_open' => 'Feedback threads without a staff reply',
'acp.dash.orders_pending' => 'Shop orders pending delivery',
'acp.dash.review' => 'Review',
'acp.dash.open' => 'Open',
'acp.dash.env_title' => 'Environment',
'acp.dash.env_sub' => 'What this install is running',
'acp.dash.znote_table_missing' => 'znote table missing',
'acp.dash.server_engine' => 'Server engine',
'acp.dash.database' => 'Database',
'acp.dash.site_url' => 'Site URL',
'acp.dash.installed' => 'Installed',
'acp.dash.last_cache' => 'Last cache',
'acp.dash.two_factor' => 'Two-factor',
'acp.dash.enabled' => 'Enabled',
'acp.dash.ob_title' => 'Getting started',
'acp.dash.ob_sub' => '{n} step(s) left - this card goes away once they are all done.',
'acp.dash.ob_todo' => 'To do',
'acp.dash.ob_2fa' => 'Enable two-factor authentication',
'acp.dash.ob_backup' => 'Create your first backup',
'acp.dash.ob_scheduler' => 'Turn on automatic backups',
'acp.dash.ob_migrations' => 'Apply pending database migrations',
'acp.dash.disabled' => 'Disabled',
'acp.dash.newest_accounts' => 'Newest accounts',
'acp.dash.col_account' => 'Account',
'acp.dash.col_created' => 'Created',
'acp.dash.col_points' => 'Points',
'acp.dash.no_accounts' => 'No accounts registered yet.',
'acp.dash.newest_characters' => 'Newest characters',
'acp.dash.col_name' => 'Name',
'acp.dash.col_vocation' => 'Vocation',
'acp.dash.col_level' => 'Level',
'acp.dash.no_characters' => 'No characters created yet.',
'acp.dash.top_balances' => 'Largest point balances',
'acp.dash.no_points' => 'Nobody holds shop points yet.',
'acp.search.placeholder' => 'Search settings, pages, payment fields…',
'acp.search.hint' => 'Type anything a setting is called or does. {download} finds the client URLs, {paypal} finds the gateway fields, {auction} finds the character auction.',
'acp.search.nothing' => 'Nothing matches',
'acp.search.result_one' => 'result',
'acp.search.result_many' => 'results',
'acp.search.results_line' => '{count} {noun} for',
'acp.search.section_pages' => 'Pages',
'acp.search.section_settings' => 'Settings and fields',
'acp.settings.save_failed' => '{n} setting(s) could not be saved. Is the {table} table present?',
'acp.settings.save_success' => '{n} settings saved. They take effect immediately.',
'acp.settings.table_missing' => 'The {table} table is missing, so nothing can be saved. Run {file} against your database.',
'acp.settings.stored_note' => 'These are stored in the database and applied over {configphp}, which stays the fallback. Your file is never rewritten, so an update to ZnoteX cannot lose your settings — and a value you have never touched here keeps following {configphp2}.',
'acp.settings.following_title' => 'Currently following config.php',
'acp.settings.file_pill' => 'file',
'acp.settings.enabled' => 'Enabled',
'acp.settings.legend_pill' => 'Marked {pill} means the value still comes from config.php.',
'acp.settings.save_btn' => 'Save settings',
'acp.paysec.PayPal' => 'PayPal',
'acp.paysec.PagSeguro' => 'PagSeguro',
'acp.paysec.PayGol SMS' => 'PayGol SMS',
'acp.paysec.OTServers.eu voting' => 'OTServers.eu voting',
'acp.paysec.PayPal.help' => 'Payments land through ipn.php. The address below must be the one that receives them.',
'acp.paysec.PagSeguro.help' => 'Brazilian gateway. Sandbox mode switches every URL to the test environment.',
'acp.paysec.PayGol SMS.help' => 'PayGol keeps a large share of each payment and pays out to PayPal once the balance passes their threshold.',
'acp.paysec.OTServers.eu voting.help' => 'Rewards players with points for voting. Get the token from OTServers.eu under "Encourage players to vote".',
'acp.pay.paypal.enabled.label' => 'PayPal enabled',
'acp.pay.paypal.email.label' => 'PayPal account e-mail',
'acp.pay.paypal.currency.label' => 'Currency',
'acp.pay.paypal.currency.help' => 'Three-letter code, e.g. EUR, USD, BRL.',
'acp.pay.paypal.points_per_currency.label' => 'Points per unit of currency',
'acp.pay.paypal.points_per_currency.help' => 'Only used to work out the bonus percentages shown to players.',
'acp.pay.paypal.showBonus.label' => 'Show bonus percentages',
'acp.pay.pagseguro.enabled.label' => 'PagSeguro enabled',
'acp.pay.pagseguro.sandbox.label' => 'Sandbox mode',
'acp.pay.pagseguro.email.label' => 'Account e-mail',
'acp.pay.pagseguro.token.label' => 'API token',
'acp.pay.pagseguro.currency.label' => 'Currency',
'acp.pay.pagseguro.product_name.label' => 'Product name',
'acp.pay.pagseguro.price.label' => 'Price',
'acp.pay.paygol.enabled.label' => 'PayGol enabled',
'acp.pay.paygol.serviceID.label' => 'Service ID',
'acp.pay.paygol.secretKey.label' => 'Secret key',
'acp.pay.paygol.secretKey.help' => 'Never share this. It signs the payment callbacks.',
'acp.pay.paygol.currency.label' => 'Currency',
'acp.pay.paygol.price.label' => 'Price',
'acp.pay.paygol.points.label' => 'Points given',
'acp.pay.paygol.name.label' => 'Package name',
'acp.pay.otservers_eu_voting.enabled.label' => 'Voting rewards enabled',
'acp.pay.otservers_eu_voting.secretToken.label' => 'Secret token',
'acp.pay.otservers_eu_voting.points.label' => 'Points per vote',
'acp.pay.otservers_eu_voting.simpleVoteUrl.label' => 'Vote URL for guests',
'acp.pay.save_failed' => '{n} value(s) could not be saved. Is the {table} table present?',
'acp.pay.save_success' => '{n} payment settings saved.',
'acp.pay.table_missing_short' => 'The {table} table is missing, so nothing can be saved.',
'acp.pay.stored_note' => 'Stored in the database and applied over {configphp}, which stays the fallback. Your file is never rewritten. Secrets are held in plain text in {znoteconfig}, same as they were in {configphp2} — keep database backups private.',
'acp.pay.tiers_title' => 'Point packages',
'acp.pay.tiers_sub' => 'What a player gets for each amount. Used by the Buy Points page.',
'acp.pay.col_price' => 'Price',
'acp.pay.col_points' => 'Points',
'acp.pay.col_bonus' => 'Bonus',
'acp.pay.add_package' => 'Add package',
'acp.pay.tiers_hint' => 'A row with an empty or zero price is dropped when you save. Bonus is worked out from "Points per unit of currency" below.',
'acp.pay.following_title' => 'Currently following config.php',
'acp.pay.file_pill' => 'file',
'acp.pay.enabled' => 'Enabled',
'acp.pay.save_btn' => 'Save payment settings',
'acp.gal.hidden' => 'Image #{id} hidden from the gallery.',
'acp.gal.public' => 'Image #{id} is now public.',
'acp.gal.removed' => 'Image #{id} removed for good.',
'acp.gal.unknown_action' => 'Unknown gallery action.',
'acp.gal.pending_title' => 'Awaiting moderation',
'acp.gal.pending_sub' => 'Submitted by players, not visible yet',
'acp.gal.pending_empty' => 'Nothing to moderate right now.',
'acp.gal.approve' => 'Approve',
'acp.gal.reject' => 'Reject',
'acp.gal.public_title' => 'Public gallery',
'acp.gal.public_sub' => 'Live on the site',
'acp.gal.public_empty' => 'The public gallery is empty.',
'acp.gal.hide' => 'Hide',
'acp.gal.hidden_title' => 'Hidden images',
'acp.gal.hidden_sub' => 'Rejected or taken down - recoverable until removed for good',
'acp.gal.hidden_empty' => 'No hidden images.',
'acp.gal.recover' => 'Recover',
'acp.gal.delete_forever' => 'Delete forever',
'acp.gal.delete_confirm' => 'Delete this image permanently, including on imgur? This cannot be undone.',
'acp.lay.installed' => '{theme} installed into {path}.',
'acp.lay.already_installed' => '{theme} is already installed. Use Reinstall to replace it.',
'acp.lay.install_failed' => 'Install failed: {error}',
'acp.lay.removed' => '{theme} removed from {path}.',
'acp.lay.remove_failed' => 'Could not remove it: {error}',
'acp.lay.no_options' => 'That theme has no options to set.',
'acp.lay.file_too_large' => 'the file is larger than upload_max_filesize in php.ini.',
'acp.lay.images_uploaded' => '{n} image(s) uploaded to {path}.',
'acp.lay.save_failed' => '{n} setting(s) could not be saved. Is the {table} table present?',
'acp.lay.options_saved' => 'Options saved for {theme}.',
'acp.lay.unknown_theme' => 'Unknown theme.',
'acp.lay.no_shell' => '{theme} has no {file}, so it cannot render a page. Not activated.',
'acp.lay.switched' => 'Theme switched to {theme}.',
'acp.lay.save_setting_failed' => 'Could not save the setting. Is the {table} table present? See SQL/migrations/.',
'acp.lay.table_missing_banner' => 'The {table} table is missing, so the theme cannot be saved and the site stays on {default}. Run {file} against your database.',
'acp.lay.browse_themes' => 'Browse themes',
'acp.lay.stat_installed' => 'Installed themes',
'acp.lay.stat_active' => 'Active',
'acp.lay.search_placeholder' => 'Search themes by name, folder or author…',
'acp.lay.clear' => 'Clear',
'acp.lay.matched_of_total' => '{matched} of {total} themes',
'acp.lay.total_themes' => '{total} themes',
'acp.lay.page_of' => 'page {page} / {pageCount}',
'acp.lay.active_pill' => 'Active',
'acp.lay.template_pill' => 'Template',
'acp.lay.by_author' => 'by {author}',
'acp.lay.shell_count' => '{n} shell(s)',
'acp.lay.view_count' => '{n} view(s)',
'acp.lay.page_count' => '{n} extra page(s)',
'acp.lay.not_usable' => 'No {file} — this theme cannot be activated.',
'acp.lay.no_views' => 'No views of its own: every page uses the default theme\'s markup, wrapped in this theme\'s shell and styled by its CSS.',
'acp.lay.view_site' => 'View site',
'acp.lay.confirm_switch' => 'Switch the public site to this theme?',
'acp.lay.activate' => 'Activate',
'acp.lay.options' => 'Options',
'acp.lay.confirm_delete' => 'Delete {path} and everything in it? This cannot be undone.',
'acp.lay.remove' => 'Remove',
'acp.lay.no_match' => 'No theme matches "{search}".',
'acp.lay.show_all' => 'Show all themes',
'acp.lay.pages_label' => 'Theme pages',
'acp.lay.previous' => 'Previous',
'acp.lay.next' => 'Next',
'acp.laybr.back' => 'Installed themes',
'acp.laybr.available' => '{n} available',
'acp.laybr.refresh' => 'Refresh catalogue',
'acp.laybr.repo_off' => 'The theme repository is turned off in config.php.',
'acp.laybr.repo_off_hint' => 'Set {code} to use it.',
'acp.laybr.catalogue_error' => 'The catalogue could not be read.',
'acp.laybr.catalogue_url' => 'Catalogue URL:',
'acp.laybr.catalogue_empty' => 'The catalogue is empty.',
'acp.laybr.warning' => 'A theme is PHP that runs on this server. Only install from a repository you trust. Downloads are restricted to {hosts} over https — edit that list in {configphp}.',
'acp.laybr.no_screenshot' => 'no screenshot',
'acp.laybr.active' => 'Active',
'acp.laybr.update_available' => 'Update available',
'acp.laybr.installed_pill' => 'Installed',
'acp.laybr.by_author' => 'by {author}',
'acp.laybr.you_have' => 'you have v{version}',
'acp.laybr.not_installable' => 'Its download URL is not https, or its host is not on the allow list. Cannot be installed.',
'acp.laybr.open_page' => 'Open page',
'acp.laybr.installed_badge' => 'Installed',
'acp.laybr.confirm_reinstall' => 'Reinstall {name}? Your copy in layouts/{key}/ will be replaced, including any edits you made to it.',
'acp.laybr.reinstall' => 'Reinstall',
'acp.laybr.confirm_update' => 'Update {name} to v{version}? Your copy in layouts/{key}/ will be replaced, including any edits.',
'acp.laybr.confirm_install' => 'Install {name}? A theme contains PHP that will run on your server - only continue if you trust the source.',
'acp.laybr.update_btn' => 'Update',
'acp.laybr.install_btn' => 'Install',
'acp.laybr.details' => 'Details',
'acp.laybr.delete_cache' => 'Delete cache',
'acp.laybr.cache_deleted' => 'Theme catalogue cache deleted. The catalogue was fetched again.',
'acp.laybr.cache_delete_failed' => 'Could not delete the theme catalogue cache at {path}. Check file permissions.',
'acp.plgbr.back' => 'Installed plugins',
'acp.plgbr.available' => '{n} available',
'acp.plgbr.refresh' => 'Refresh catalogue',
'acp.plgbr.repo_off' => 'The plugin repository is turned off in config.php.',
'acp.plgbr.repo_off_hint' => 'Set {code} to use it.',
'acp.plgbr.catalogue_error' => 'The catalogue could not be read.',
'acp.plgbr.catalogue_url' => 'Catalogue URL:',
'acp.plgbr.catalogue_empty' => 'The catalogue is empty.',
'acp.plgbr.warning' => 'A plugin is PHP that runs on every request. Only install from a repository you trust. Downloads are restricted to {hosts} over https — edit that list in {configphp}.',
'acp.plgbr.no_screenshot' => 'no screenshot',
'acp.plgbr.update_available' => 'Update available',
'acp.plgbr.installed_pill' => 'Installed',
'acp.plgbr.by_author' => 'by {author}',
'acp.plgbr.you_have' => 'you have v{version}',
'acp.plgbr.whats_new' => 'What\'s new in v{version}',
'acp.plgbr.not_installable' => 'Its download URL is not https, or its host is not on the allow list. Cannot be installed.',
'acp.plgbr.open_page' => 'Open page',
'acp.plgbr.installed_badge' => 'Installed',
'acp.plgbr.confirm_reinstall' => 'Reinstall {name}? Your copy in plugins/{key}/ will be replaced, including any edits you made to it.',
'acp.plgbr.reinstall' => 'Reinstall',
'acp.plgbr.confirm_update' => 'Update {name} to v{version}? Your copy in plugins/{key}/ will be replaced, including any edits.',
'acp.plgbr.confirm_install' => 'Install {name}? A plugin contains PHP that will run on every request - only continue if you trust the source.',
'acp.plgbr.update_btn' => 'Update',
'acp.plgbr.install_btn' => 'Install',
'acp.plgbr.details' => 'Details',
'acp.plgbr.delete_cache' => 'Delete cache',
'acp.plgbr.cache_deleted' => 'Plugin catalogue cache deleted. The catalogue was fetched again.',
'acp.plgbr.cache_delete_failed' => 'Could not delete the plugin catalogue cache at {path}. Check file permissions.',
'acp.plgbr.installed' => '{plugin} is installed and enabled in {path}.',
'acp.plgbr.already_installed' => '{plugin} is already in plugins/. Use Reinstall to replace it.',
'acp.plgbr.install_failed' => 'Install failed: {error}',
'acp.layopt.back' => 'Back to themes',
'acp.layopt.activate' => 'Activate',
'acp.layopt.view_site' => 'View site',
'acp.layopt.options_suffix' => 'options',
'acp.layopt.active' => 'Active',
'acp.layopt.by_author' => 'by {author}',
'acp.layopt.saved_hint' => 'Saved per theme, in the database. The theme\'s files are never modified, so an update to the theme cannot lose these. Leave a field empty to fall back to the theme\'s own default.',
'acp.layopt.enabled' => 'Enabled',
'acp.layopt.image_placeholder' => 'engine/img/theme/... or https://...',
'acp.layopt.upload_hint' => 'Current path above. Or upload a new image, which replaces it:',
'acp.layopt.save_btn' => 'Save options',
'acp.src.config.label' => 'Server information',
'acp.src.config.help' => 'Your server config.lua. Only the whitelisted settings are kept - the file itself is parsed and discarded, never stored where it could be downloaded.',
'acp.src.stages.label' => 'Experience stages',
'acp.src.stages.help' => 'data/XML/stages.xml. Only used when stages are enabled in it or in config.lua.',
'acp.src.items.label' => 'Items',
'acp.src.items.help' => 'data/items/items.xml. Only equipable items (slotType or weaponType) are published.',
'acp.src.spells.label' => 'Spells',
'acp.src.spells.help' => 'data/spells/spells.xml. Monster spells and house spells are filtered out.',
'acp.src.creatures.label' => 'Monsters',
'acp.src.creatures.help' => 'monsters.xml only lists names and file paths. Upload a .zip of data/monster/ to get health, experience, speed and race.',
'acp.srv.unknown_source' => 'Unknown data source.',
'acp.srv.removed' => '{label} removed. {page} no longer has data to show.',
'acp.srv.rebuilt' => '{label} rebuilt: {count} entries cached.',
'acp.srv.select_file' => 'Select a file first.',
'acp.srv.err_ini_size' => 'The file is larger than upload_max_filesize in php.ini.',
'acp.srv.err_form_size' => 'The file is larger than the form allows.',
'acp.srv.err_partial' => 'The upload was interrupted.',
'acp.srv.err_no_tmp_dir' => 'PHP has no temporary folder to write to.',
'acp.srv.err_cant_write' => 'PHP could not write the upload to disk.',
'acp.srv.err_extension' => 'A PHP extension blocked the upload.',
'acp.srv.upload_failed' => 'The upload failed.',
'acp.srv.upload_unverified' => 'The upload could not be verified.',
'acp.srv.uploaded' => '{label} uploaded: {count} entries now live on {page}.',
'acp.srv.sources_published' => '{ready} of {total} sources published',
'acp.srv.public_page' => 'Server Information',
'acp.srv.items_off' => 'The public items page is turned off. Enable {items} under {settings} for your items.xml upload to be visible.',
'acp.srv.settings_link' => 'Settings',
'acp.srv.nothing_published' => 'Nothing published',
'acp.srv.published' => '{count} published',
'acp.srv.xml_files' => '{count} XML files',
'acp.srv.col_source' => 'Source',
'acp.srv.col_uploaded' => 'Uploaded',
'acp.srv.col_published' => 'Published',
'acp.srv.col_public_page' => 'Public page',
'acp.srv.upload_label' => 'Upload {accept}',
'acp.srv.upload_publish' => 'Upload and publish',
'acp.srv.reread' => 'Re-read',
'acp.srv.remove' => 'Remove',
'acp.srv.confirm_remove' => 'Remove {label}? {page} will stop showing it.',
'acp.srv.storage_hint' => 'Uploads are stored under {path}/ and parsed straight away, so the public pages only ever read the cache. PHP currently accepts {size} per upload.',
'acp.srv.edit_entries' => 'Edit entries',
'acp.cfged.no_data' => 'Upload a config.lua on Server Info first - there is nothing published to edit yet.',
'acp.cfged.saved' => '{n} value(s) updated.',
'acp.cfged.nothing_changed' => 'Nothing changed.',
'acp.cfged.save_failed' => 'Some values could not be saved - run the pending database migration first (Admin Panel > Migrations).',
'acp.cfged.title' => 'Config values',
'acp.cfged.sub' => 'These change what is shown on the public server info page. Your OT server\'s own config.lua is never touched.',
'acp.cfged.col_key' => 'Key',
'acp.cfged.col_value' => 'Value',
'acp.cfged.enabled' => 'Enabled',
'acp.cfged.save_btn' => 'Save',
'acp.cfged.back' => 'Back to Server Info',
'acp.itmed.no_data' => 'Upload an items.xml on Server Info first - there is nothing published to edit yet.',
'acp.itmed.missing_fields' => 'ID and name are required.',
'acp.itmed.saved' => 'Item #{id} saved.',
'acp.itmed.save_failed' => 'Could not save - run the pending database migration first (Admin Panel > Migrations).',
'acp.itmed.removed' => 'Item #{id} removed.',
'acp.itmed.remove_failed' => 'Could not remove that item.',
'acp.itmed.col_attr_key' => 'Attribute',
'acp.itmed.col_attr_value' => 'Value',
'acp.itmed.edit_title' => 'Edit item #{id}',
'acp.itmed.add_title' => 'Add an item',
'acp.itmed.sub' => 'Saved separately from items.xml - a later re-upload will not overwrite this.',
'acp.itmed.field_id' => 'Item ID',
'acp.itmed.field_name' => 'Name',
'acp.itmed.field_attrs' => 'Attributes',
'acp.itmed.add_attr' => 'Add attribute',
'acp.itmed.save_btn' => 'Save',
'acp.itmed.add_btn' => 'Add item',
'acp.itmed.cancel' => 'Cancel edit',
'acp.itmed.list_title' => 'Published items',
'acp.itmed.search_placeholder' => 'Search items...',
'acp.itmed.col_name' => 'Name',
'acp.itmed.col_actions' => 'Actions',
'acp.itmed.confirm_remove' => 'Remove this item?',
'acp.itmed.empty' => 'No items published yet.',
'acp.itmed.back' => 'Back to Server Info',
'acp.crted.no_data' => 'Upload your monster data on Server Info first - there is nothing published to edit yet.',
'acp.crted.missing_fields' => 'A name is required.',
'acp.crted.saved' => '{name} saved.',
'acp.crted.save_failed' => 'Could not save - run the pending database migration first (Admin Panel > Migrations).',
'acp.crted.removed' => '{name} removed.',
'acp.crted.remove_failed' => 'Could not remove that creature.',
'acp.crted.edit_title' => 'Edit {name}',
'acp.crted.add_title' => 'Add a creature',
'acp.crted.sub' => 'Saved separately from the uploaded monster files - a later re-upload will not overwrite this.',
'acp.crted.field_name' => 'Name',
'acp.crted.field_race' => 'Race',
'acp.crted.field_health' => 'Health',
'acp.crted.field_experience' => 'Experience',
'acp.crted.field_speed' => 'Speed',
'acp.crted.field_looktype' => 'Looktype',
'acp.crted.save_btn' => 'Save',
'acp.crted.add_btn' => 'Add creature',
'acp.crted.cancel' => 'Cancel edit',
'acp.crted.list_title' => 'Published creatures',
'acp.crted.search_placeholder' => 'Search creatures...',
'acp.crted.col_name' => 'Name',
'acp.crted.col_health' => 'Health',
'acp.crted.col_experience' => 'Experience',
'acp.crted.col_race' => 'Race',
'acp.crted.col_actions' => 'Actions',
'acp.crted.confirm_remove' => 'Remove this creature?',
'acp.crted.empty' => 'No creatures published yet.',
'acp.crted.back' => 'Back to Server Info',
'acp.news.deleted' => 'News article deleted.',
'acp.news.published' => 'News article published.',
'acp.news.fill_fields' => 'Pick an author character and fill in both the title and the body.',
'acp.news.updated' => 'News article updated.',
'acp.news.not_found' => 'That news article no longer exists.',
'acp.news.new_article' => 'New article',
'acp.news.editing' => 'Editing:',
'acp.news.published_count' => '{count} published',
'acp.news.back_to_list' => 'Back to list',
'acp.news.create_article' => 'Create article',
'acp.news.edit_article' => 'Edit article',
'acp.news.no_author' => 'No character with {code} on your account, so there is nobody to publish as. Give one of your characters a staff position first.',
'acp.news.publish_as' => 'Publish as',
'acp.news.title' => 'Title',
'acp.news.body' => 'Body',
'acp.news.save_changes' => 'Save changes',
'acp.news.publish_article' => 'Publish article',
'acp.news.cancel' => 'Cancel',
'acp.news.formatting' => 'Formatting',
'acp.news.formatting_sub' => 'The toolbar writes these for you - this is what the news renderer understands',
'acp.news.published_articles' => 'Published articles',
'acp.news.col_date' => 'Date',
'acp.news.col_author' => 'Author',
'acp.news.col_title' => 'Title',
'acp.news.col_actions' => 'Actions',
'acp.news.edit' => 'Edit',
'acp.news.confirm_delete' => 'Delete this news article?',
'acp.news.delete' => 'Delete',
'acp.news.empty' => 'No news articles have been published yet.',
'acp.news.bb.bold' => 'Bold',
'acp.news.bb.italic' => 'Italic',
'acp.news.bb.underline' => 'Underline',
'acp.news.bb.struck' => 'Struck',
'acp.news.bb.larger' => 'Larger text',
'acp.news.bb.colored' => 'Coloured text',
'acp.news.bb.centered' => 'Centered',
'acp.news.bb.bullet' => 'Bullet item',
'acp.news.bb.numbered' => 'Numbered item',
'acp.news.bb.quoted' => 'Quoted text',
'acp.news.bb.attributed' => 'Attributed quote',
'acp.news.bb.code' => 'Preformatted code',
'acp.news.bb.link' => 'Link text',
'acp.hd.reply_posted' => 'Reply posted.',
'acp.hd.closed' => 'Ticket closed.',
'acp.hd.reopened' => 'Ticket reopened.',
'acp.hd.deleted' => 'Ticket #{id} deleted.',
'acp.hd.not_found' => 'That ticket does not exist.',
'acp.hd.back_all' => 'Back to all tickets',
'acp.hd.ticket_hash' => 'Ticket #{id}',
'acp.hd.all_tickets' => 'All tickets',
'acp.hd.close' => 'Close',
'acp.hd.reopen' => 'Reopen',
'acp.hd.confirm_delete' => 'Delete this ticket and every reply on it?',
'acp.hd.delete' => 'Delete',
'acp.hd.opened_by' => 'Opened by',
'acp.hd.reply_by' => 'Reply by',
'acp.hd.reply_heading' => 'Reply',
'acp.hd.reply_placeholder' => 'Write your reply…',
'acp.hd.post_reply' => 'Post reply',
'acp.hd.closed_hint' => 'This ticket is closed. Reopen it to reply.',
'acp.hd.newest_first' => 'Newest first',
'acp.hd.col_subject' => 'Subject',
'acp.hd.col_opened_by' => 'Opened by',
'acp.hd.col_created' => 'Created',
'acp.hd.col_status' => 'Status',
'acp.hd.empty' => 'No helpdesk tickets have been submitted.',
'acp.land.bad_file' => 'That file name is not allowed. Use a single .html or .php file inside landing/.',
'acp.land.no_folder' => 'There is no {folder} folder yet. Create it and put your page inside.',
'acp.land.pick_page' => 'Pick a page that exists in {folder} before switching this on.',
'acp.land.live' => 'Landing page is live. Visitors now see {path}.',
'acp.land.off' => 'Landing page is off. The front page is back to normal.',
'acp.land.live_pill' => 'Landing page is live',
'acp.land.missing_pill' => 'Switched on, but the file is missing',
'acp.land.off_pill' => 'Off — the normal front page is shown',
'acp.land.open_site' => 'Open the site',
'acp.land.skip' => 'Skip the landing page',
'acp.land.title' => 'Landing page',
'acp.land.sub' => 'A page of your own at the site root, before visitors reach the community site.',
'acp.land.no_folder_flash' => 'No {folder} folder. Create it at the root of ZnoteX and put your {index} (or {indexphp}) and its css/, img/ and js/ inside.',
'acp.land.no_pages_flash' => '{folder} exists but holds no {html} or {php} page.',
'acp.land.page_to_show' => 'Page to show',
'acp.land.nothing_yet' => 'Nothing in landing/ yet',
'acp.land.show_at_root' => 'Show this page at the site root',
'acp.land.save' => 'Save',
'acp.land.behaves_title' => 'How it behaves',
'acp.land.behaves_sub' => 'What visitors get, and how they reach the real site.',
'acp.land.col_folder' => 'Folder',
'acp.land.missing_suffix' => '(missing)',
'acp.land.col_pages' => 'Pages found',
'acp.land.col_way_in' => 'Way in',
'acp.land.hint1' => 'Only the front page is replaced. Every other page — login, highscores, the admin panel — stays reachable as usual, so you cannot lock yourself out.',
'acp.land.hint2' => 'Your css, images and scripts keep their normal relative paths: ZnoteX adds a {base} pointing at {folder} so they resolve. The link that enters the site must start with a slash, for example {link}. Once a visitor follows it, the landing page stays out of the way for the rest of their visit.',
'acp.auc.zero_seconds' => '0 seconds',
'acp.auc.day' => 'day',
'acp.auc.days' => 'days',
'acp.auc.hour' => 'hour',
'acp.auc.hours' => 'hours',
'acp.auc.minute' => 'minute',
'acp.auc.minutes' => 'minutes',
'acp.auc.second' => 'second',
'acp.auc.seconds' => 'seconds',
'acp.auc.stat_ongoing' => 'Ongoing',
'acp.auc.stat_pending' => 'Sold, unclaimed',
'acp.auc.stat_completed' => 'Completed',
'acp.auc.no_storage' => '{code} is not set, so listed characters cannot be parked anywhere. The auction system will not work until it is.',
'acp.auc.ongoing_title' => 'Ongoing auctions',
'acp.auc.ongoing_sub' => 'Listed and still open for bids',
'acp.auc.col_level' => 'Level',
'acp.auc.col_vocation' => 'Vocation',
'acp.auc.col_price' => 'Price',
'acp.auc.col_bid' => 'Bid',
'acp.auc.col_listed' => 'Listed',
'acp.auc.col_type' => 'Type',
'acp.auc.instant_buy' => 'Instant buy',
'acp.auc.bidding' => 'Bidding',
'acp.auc.left' => '{time} left',
'acp.auc.view' => 'View',
'acp.auc.none_ongoing' => 'No characters are currently up for auction.',
'acp.auc.col_character' => 'Character',
'acp.auc.col_ended' => 'Ended',
'acp.auc.pending_title' => 'Sold, waiting to be claimed',
'acp.auc.pending_sub' => 'The buyer has paid but has not pulled the character onto their account yet',
'acp.auc.pending_empty' => 'Nothing is waiting to be claimed.',
'acp.auc.completed_title' => 'Completed auctions',
'acp.auc.completed_sub' => 'Claimed and closed',
'acp.auc.completed_empty' => 'No auction has completed yet.',
'acp.auc.how_title' => 'How this works & current configuration',
'acp.auc.how_sub' => 'From {code}',
'acp.auc.how_text' => 'Players sell, buy and bid on characters for shop points. It deepens the shop economy and gives players who cannot afford points a way to earn them by levelling characters to sell — which also pulls trade away from risky third-party account sellers, since buying officially supports the server. Prices settle on their own against each community\'s own inflation, with no admin intervention.',
'acp.chg.deleted' => 'Changelog entry deleted.',
'acp.chg.empty' => 'The entry cannot be empty.',
'acp.chg.too_long' => 'Too long: {n} of 254 characters. BBCode tags count toward the limit.',
'acp.chg.updated' => 'Changelog entry updated.',
'acp.chg.published' => 'Changelog entry published.',
'acp.chg.unknown_action' => 'Unknown action.',
'acp.chg.not_found' => 'That entry no longer exists.',
'acp.chg.stat_entries' => 'Entries',
'acp.chg.stat_from_reports' => 'From bug reports',
'acp.chg.edit_entry' => 'Edit entry #{id}',
'acp.chg.new_entry' => 'New entry',
'acp.chg.appears_top' => 'Appears at the top of the public changelog',
'acp.chg.text_label' => 'Text',
'acp.chg.save_changes' => 'Save changes',
'acp.chg.publish_entry' => 'Publish entry',
'acp.chg.cancel' => 'Cancel',
'acp.chg.how_title' => 'How this works',
'acp.chg.how_text1' => 'Entries created here are stand-alone. Entries created from {link} stay tied to their report and are marked below, so you can tell at a glance what came from a player report.',
'acp.chg.reports_link' => 'Bug Reports',
'acp.chg.how_text2' => 'The public page reads a cache file. It is refreshed automatically on every change made here, so what you save is live immediately.',
'acp.chg.view_public' => 'View the public changelog',
'acp.chg.published_entries' => 'Published entries',
'acp.chg.newest_first' => 'Newest first',
'acp.chg.col_date' => 'Date',
'acp.chg.col_entry' => 'Entry',
'acp.chg.col_source' => 'Source',
'acp.chg.col_actions' => 'Actions',
'acp.chg.report_hash' => 'report #{id}',
'acp.chg.manual' => 'manual',
'acp.chg.edit' => 'Edit',
'acp.chg.confirm_delete' => 'Delete this changelog entry?',
'acp.chg.delete' => 'Delete',
'acp.chg.no_entries' => 'No changelog entries yet.',
'acp.plg.no_such' => 'No such plugin. It may have been removed from plugins/.',
'acp.plg.install_failed' => '{plugin} could not be installed: {error}',
'acp.plg.installed' => '{plugin} {version} is installed and enabled.',
'acp.plg.update_failed' => '{plugin} could not be updated: {error}',
'acp.plg.updated' => '{plugin} updated from {from} to {to}.',
'acp.plg.enabled' => '{plugin} is enabled.',
'acp.plg.disabled' => '{plugin} is disabled. Its database tables were left untouched.',
'acp.plg.uninstalled' => '{plugin} is no longer installed. Its tables and their data are still there, and deleting the folder from plugins/ removes it for good.',
'acp.plg.unknown_action' => 'Unknown action.',
'acp.plg.browse_plugins' => 'Browse plugins',
'acp.plg.stat_in_folder' => 'In plugins/',
'acp.plg.stat_running' => 'Running',
'acp.plg.stat_updates' => 'Updates',
'acp.plg.search_placeholder' => 'Search plugins...',
'acp.plg.title' => 'Plugins',
'acp.plg.sub' => 'Drop a plugin folder into plugins/ and it shows up here',
'acp.plg.empty' => 'Nothing in plugins/ yet. Download one, unzip it into that folder, and reload this page.',
'acp.plg.col_plugin' => 'Plugin',
'acp.plg.col_adds' => 'Adds',
'acp.plg.col_version' => 'Version',
'acp.plg.col_status' => 'Status',
'acp.plg.page_count' => '{n} page(s)',
'acp.plg.admin_page_count' => '{n} admin page(s)',
'acp.plg.tables' => 'tables',
'acp.plg.website' => 'website',
'acp.plg.hooks_only' => 'hooks only',
'acp.plg.installed_label' => 'installed: {version}',
'acp.plg.update_available' => 'Update available',
'acp.plg.not_installed' => 'Not installed',
'acp.plg.running_pill' => 'Running',
'acp.plg.disabled_pill' => 'Disabled',
'acp.plg.view' => 'View',
'acp.plg.install' => 'Install',
'acp.plg.update_to' => 'Update to {version}',
'acp.plg.disable' => 'Disable',
'acp.plg.enable' => 'Enable',
'acp.plg.confirm_uninstall' => 'Forget that {plugin} is installed? Its tables and their data stay in the database.',
'acp.plg.uninstall' => 'Uninstall',
'acp.plg.how_title' => 'How this works',
'acp.plg.how_install' => 'Installing.',
'acp.plg.how_install_text' => 'Download the plugin, unzip it into {folder}, reload this page and press {install}. That creates its database tables and switches it on. ZnoteX never downloads a plugin by itself: a plugin is PHP that runs on every page of your site, so putting the files there stays your decision.',
'acp.plg.how_update' => 'Updating.',
'acp.plg.how_update_text' => 'Replace the folder with the newer version. If its {json} carries a higher version than the one you installed, an {update} button appears here and applies whatever the new version needs.',
'acp.plg.how_remove' => 'Removing.',
'acp.plg.how_remove_text' => '{disable} stops a plugin. {uninstall} also forgets its version, so it offers to install again. Neither one deletes data — to remove a plugin for good, delete its folder and drop its tables yourself.',
'acp.plg.how_write' => 'Writing one is a folder, a {json}, and nothing else required: see {readme}, with {example} as a working example.',
'acp.error_log.saved' => 'Log path saved.',
'acp.error_log.save_failed' => 'The log path could not be saved.',
'acp.error_log.reset' => 'Reverted to the auto-detected path.',
'acp.error_log.reset_failed' => 'The log path could not be reset.',
'acp.error_log.not_configured' => "PHP is not configured with an error_log file for this request - it is very likely logging to the web server's own error log instead (e.g. Apache's log under XAMPP, WAMP, Uniform Server, or a Linux host), which lives outside this site's folder and cannot be found automatically.",
'acp.error_log.path_missing' => 'The configured path {path} does not exist or is not readable from PHP.',
'acp.error_log.help' => "Paste the correct path below - check your stack's control panel (XAMPP: apache/logs/error.log, WAMP: logs/apache_error.log, Uniform Server: its logs folder) or your php.ini's error_log directive.",
'acp.error_log.title' => 'Log file',
'acp.error_log.ini_get_label' => "PHP's ini_get('error_log') for this request:",
'acp.error_log.empty_sapi_default' => '(empty - using the SAPI default)',
'acp.error_log.path_label' => 'Path to the error log',
'acp.error_log.save' => 'Save',
'acp.error_log.use_auto_detected' => 'Use auto-detected path',
'acp.error_log.latest_entries' => 'Latest entries',
'acp.error_log.bytes' => 'bytes',
'acp.error_log.last_modified' => 'last modified',
'acp.error_log.last_n' => 'Last {n}',
'acp.error_log.refresh' => 'Refresh',
'acp.error_log.empty' => 'The log file is empty.',
'acp.sord.type_item' => 'Item',
'acp.sord.type_premium' => 'Premium days',
'acp.sord.type_gender' => 'Gender change',
'acp.sord.type_name' => 'Name change',
'acp.sord.type_outfit' => 'Outfit',
'acp.sord.type_mount' => 'Mount',
'acp.sord.type_custom' => 'Custom',
'acp.sord.type_unknown' => 'Unknown',
'acp.sord.deleted_account' => 'deleted account #{id}',
'acp.sord.item_unknown' => 'Unknown item',
'acp.sord.stat_pending' => 'Pending delivery',
'acp.sord.stat_completed' => 'Completed orders',
'acp.sord.stat_points' => 'Points spent',
'acp.sord.stat_manage' => 'Manage offers',
'acp.sord.open' => 'Open',
'acp.sord.pending_title' => 'Pending orders',
'acp.sord.pending_sub' => 'Bought but not yet received in game',
'acp.sord.col_account' => 'Account',
'acp.sord.col_type' => 'Type',
'acp.sord.col_item' => 'Item',
'acp.sord.col_count' => 'Count',
'acp.sord.col_ordered' => 'Ordered',
'acp.sord.pending_empty' => 'Nothing is waiting to be delivered.',
'acp.sord.history_title' => 'Order history',
'acp.sord.history_sub' => 'Every transaction that went through the shop',
'acp.sord.col_points' => 'Points',
'acp.sord.col_date' => 'Date',
'acp.sord.history_empty' => 'No shop purchases have been made yet.',
'acp.skl.must_offline' => 'The character must be offline before its skills can be rewritten.',
'acp.skl.updated' => 'Skills updated.',
'acp.skl.not_found' => 'Character {name} does not exist.',
'acp.skl.lookup_title' => 'Look up a character',
'acp.skl.lookup_sub' => 'Its current values load into the editor',
'acp.skl.char_name' => 'Character name',
'acp.skl.fetch' => 'Fetch skills',
'acp.skl.view_profile' => 'View profile',
'acp.skl.search_another' => 'Search another character',
'acp.skl.confirm_overwrite' => 'Overwrite this character\'s level and skills?',
'acp.skl.character_title' => 'Character',
'acp.skl.vocation' => 'Vocation',
'acp.skl.level' => 'Level',
'acp.skl.magic_level' => 'Magic level',
'acp.skl.recalc_hint' => 'Health, mana and capacity are recalculated from the level and vocation using {base} and {gain}.',
'acp.skl.skills_title' => 'Skills',
'acp.skl.fist' => 'Fist fighting',
'acp.skl.club' => 'Club fighting',
'acp.skl.sword' => 'Sword fighting',
'acp.skl.axe' => 'Axe fighting',
'acp.skl.dist' => 'Distance fighting',
'acp.skl.shield' => 'Shielding',
'acp.skl.fish' => 'Fishing',
'acp.skl.save' => 'Save character',
'acp.skl.offline_hint' => 'The character has to be offline, otherwise the server overwrites this on logout.',
'acp.vis.type_pageview' => 'Page view',
'acp.vis.type_register' => 'Account registered',
'acp.vis.type_char_created' => 'Character created',
'acp.vis.type_highscores' => 'Highscores / listing',
'acp.vis.type_char_search' => 'Character searched',
'acp.vis.type_other' => 'Other form',
'acp.vis.type_n' => 'Type {n}',
'acp.vis.off_notice' => 'Visitor logging is currently {off}, so nothing new is being recorded. Anything below is history. Turn it back on in {link}.',
'acp.vis.off' => 'off',
'acp.vis.settings_privacy' => 'Settings → Privacy',
'acp.vis.today' => 'Today',
'acp.vis.7days' => '7 days',
'acp.vis.30days' => '30 days',
'acp.vis.90days' => '90 days',
'acp.vis.events_recorded' => '{n} events on record',
'acp.vis.stat_visits' => 'Visits, period',
'acp.vis.stat_unique_period' => 'Unique IPs, period',
'acp.vis.stat_unique_all' => 'Unique IPs, all time',
'acp.vis.stat_events_all' => 'Events, all time',
'acp.vis.per_day' => 'Per day',
'acp.vis.last_n_days' => 'Last {n} day(s)',
'acp.vis.col_day' => 'Day',
'acp.vis.col_visits' => 'Visits',
'acp.vis.col_unique' => 'Unique',
'acp.vis.empty' => 'Nothing recorded in this period.',
'acp.vis.what_they_did' => 'What they did',
'acp.vis.col_action' => 'Action',
'acp.vis.col_count' => 'Count',
'acp.vis.busiest' => 'Busiest addresses',
'acp.vis.busiest_sub' => 'Useful for spotting a scraper or a stuck client',
'acp.vis.col_ip' => 'IP',
'acp.vis.col_last_seen' => 'Last seen',
'acp.vis.col_account' => 'Account',
'acp.map.removed' => 'Minimap removed. Server Information no longer shows a map.',
'acp.map.select_file' => 'Select a .otmm file first.',
'acp.map.err_ini_size' => 'The file is larger than upload_max_filesize in php.ini.',
'acp.map.err_form_size' => 'The file is larger than the form allows.',
'acp.map.err_partial' => 'The upload was interrupted.',
'acp.map.err_no_tmp_dir' => 'PHP has no temporary folder to write to.',
'acp.map.err_cant_write' => 'PHP could not write the upload to disk.',
'acp.map.err_extension' => 'A PHP extension blocked the upload.',
'acp.map.upload_failed' => 'The upload failed.',
'acp.map.unverified' => 'The upload could not be verified.',
'acp.map.imported' => 'Minimap imported: {tiles} tiles across {floors} floors. It is now visible on Server Information.',
'acp.map.active_pill' => 'Minimap active',
'acp.map.none_pill' => 'No minimap imported',
'acp.map.view_serverinfo' => 'View Server Information',
'acp.map.import_title' => 'Import a minimap',
'acp.map.import_sub' => 'The .otmm file OTClient / OTCv8 writes into its {folder} folder.',
'acp.map.not_writable' => '{folder}/ is not writable by the web server. Fix the permissions before importing.',
'acp.map.missing_ext' => 'PHP needs both the {gd} and {zlib} extensions to convert an .otmm file.',
'acp.map.file_label' => 'Minimap file',
'acp.map.import_btn' => 'Import minimap',
'acp.map.remove_btn' => 'Remove minimap',
'acp.map.confirm_remove' => 'Remove the imported minimap? Server Information will stop showing a map.',
'acp.map.upload_hint' => 'Uploading replaces whatever is stored now. The .otmm itself is not kept: it is converted into 64×64 PNG tiles under {folder}/. Maximum {max} MB, and PHP currently accepts {accepts} per upload.',
'acp.map.status_title' => 'Status',
'acp.map.status_sub' => 'Server Information shows the map only while a minimap is imported.',
'acp.map.none_body' => 'No minimap imported. serverinfo.php shows no map section at all.',
'acp.map.col_source' => 'Source file',
'acp.map.col_imported' => 'Imported',
'acp.map.col_floors' => 'Floors',
'acp.map.col_tiles' => 'Tiles',
'acp.map.col_disk' => 'Disk usage',
'acp.acc.no_selected' => 'No account selected.',
'acp.acc.no_row' => 'That account has no znote_accounts row, so it has no points balance.',
'acp.acc.points_applied' => '{delta} points. New balance: {new}.',
'acp.acc.view_history' => 'Admin log for this account',
'acp.acc.bulk_none_selected' => 'Select at least one account first.',
'acp.acc.bulk_points_done' => '{delta} points applied to {n} account(s).',
'acp.acc.bulk_selected' => 'selected',
'acp.acc.bulk_points_placeholder' => '+/- points',
'acp.acc.bulk_apply' => 'Apply to selected',
'acp.acc.bulk_select_all' => 'Select all',
'acp.acc.no_account' => 'No account with id {id}.',
'acp.acc.all_accounts' => 'All accounts',
'acp.acc.account_title' => 'Account',
'acp.acc.name' => 'Name',
'acp.acc.email' => 'E-mail',
'acp.acc.verified' => 'verified',
'acp.acc.unverified' => 'unverified',
'acp.acc.registered' => 'Registered',
'acp.acc.last_ip' => 'Last known IP',
'acp.acc.country' => 'Country',
'acp.acc.shop_points' => 'Shop points',
'acp.acc.adjust_points' => 'Adjust points',
'acp.acc.adjust_sub' => 'Positive adds, negative removes',
'acp.acc.amount' => 'Amount',
'acp.acc.balance_hint' => 'The balance never goes below zero.',
'acp.acc.apply' => 'Apply',
'acp.acc.other_tools' => 'Password resets, bans, positions and teleports are on {link}, which works by character name.',
'acp.acc.player_tools_link' => 'Player Tools',
'acp.acc.characters' => 'Characters',
'acp.acc.n_on_account' => '{n} on this account',
'acp.acc.col_name' => 'Name',
'acp.acc.col_vocation' => 'Vocation',
'acp.acc.col_level' => 'Level',
'acp.acc.col_group' => 'Group',
'acp.acc.staff' => 'staff',
'acp.acc.player' => 'player',
'acp.acc.skills' => 'Skills',
'acp.acc.no_characters' => 'No characters on this account.',
'acp.acc.recent_purchases' => 'Recent purchases',
'acp.acc.last_10' => 'Last 10 shop transactions',
'acp.acc.col_date' => 'Date',
'acp.acc.col_type' => 'Type',
'acp.acc.col_count' => 'Count',
'acp.acc.col_points' => 'Points',
'acp.acc.type_item' => 'Item',
'acp.acc.type_premium' => 'Premium days',
'acp.acc.type_gender' => 'Gender change',
'acp.acc.type_name' => 'Name change',
'acp.acc.type_outfit' => 'Outfit',
'acp.acc.type_mount' => 'Mount',
'acp.acc.type_custom' => 'Custom',
'acp.acc.type_unknown' => 'Unknown',
'acp.acc.never_bought' => 'This account has never bought anything.',
'acp.acc.search_placeholder' => 'Account name, e-mail, or a character on it…',
'acp.acc.search' => 'Search',
'acp.acc.clear' => 'Clear',
'acp.acc.match_count' => '{n} match(es)',
'acp.acc.total_count' => '{n} accounts',
'acp.acc.newest_50' => 'newest 50',
'acp.acc.search_results' => 'Search results',
'acp.acc.newest_accounts' => 'Newest accounts',
'acp.acc.col_account' => 'Account',
'acp.acc.col_email' => 'E-mail',
'acp.acc.col_chars' => 'Chars',
'acp.acc.col_registered' => 'Registered',
'acp.acc.open' => 'Open',
'acp.acc.no_match' => 'Nothing matches "{search}".',
'acp.acc.no_accounts_yet' => 'No accounts yet.',
'acp.mpts.stat_accounts' => 'Accounts',
'acp.mpts.title' => 'Mass Points',
'acp.mpts.sub' => 'Give or take shop points from every account at once.',
'acp.mpts.warning' => 'This changes the points balance of all {n} accounts on the server. There is no undo.',
'acp.mpts.confirm' => 'Change the points balance of all {n} accounts? This cannot be undone.',
'acp.mpts.delta_label' => 'Points to add (use a negative number to take points away)',
'acp.mpts.delta_placeholder' => 'e.g. 50 or -50',
'acp.mpts.delta_help' => "Added to each account's current balance. An account can never go below 0 points.",
'acp.mpts.submit_btn' => 'Apply to all accounts',
'acp.mpts.zero_value' => 'Enter a non-zero amount.',
'acp.mpts.done' => '{delta} points applied to {n} accounts.',
'acp.mpts.failed' => 'The mass points update failed.',
'acp.mprem.title' => 'Mass Premium Days',
'acp.mprem.sub' => 'Add premium days to every account at once.',
'acp.mprem.warning' => 'This adds premium time to all {n} accounts on the server. There is no undo.',
'acp.mprem.confirm' => 'Add premium days to all {n} accounts? This cannot be undone.',
'acp.mprem.days_label' => 'Premium days to add',
'acp.mprem.days_placeholder' => 'e.g. 7',
'acp.mprem.days_help' => "Added on top of each account's current premium time. Only positive values are accepted.",
'acp.mprem.submit_btn' => 'Apply to all accounts',
'acp.mprem.invalid_value' => 'Enter a number of days greater than 0.',
'acp.mprem.done' => '{days} premium day(s) added to {n} accounts.',
'acp.mprem.not_supported' => "This server's database has no premium-days column ZnoteX recognizes.",
'acp.rep.status_reported' => 'Reported',
'acp.rep.status_todo' => 'To-do list',
'acp.rep.status_confirmed' => 'Confirmed bug',
'acp.rep.status_invalid' => 'Invalid',
'acp.rep.status_rejected' => 'Rejected',
'acp.rep.status_fixed' => 'Fixed',
'acp.rep.status_unknown' => 'Unknown',
'acp.rep.invalid' => 'Invalid report or status.',
'acp.rep.set_to' => 'Report #{id} set to {status}.',
'acp.rep.changelog_updated' => 'Changelog entry updated.',
'acp.rep.changelog_created' => 'Changelog entry created.',
'acp.rep.points_received' => '{name} received {price} points.',
'acp.rep.no_account_row' => 'No znote_accounts row for that account - the points were logged but not credited.',
'acp.rep.no_account_found' => 'No account found for character {name} - no points given.',
'acp.rep.not_found' => 'That report no longer exists.',
'acp.rep.report_hash' => 'Report #{id}',
'acp.rep.back_all' => 'Back to all reports',
'acp.rep.the_report' => 'The report',
'acp.rep.reporter' => 'Reporter',
'acp.rep.position' => 'Position',
'acp.rep.reported' => 'Reported',
'acp.rep.resolve' => 'Resolve',
'acp.rep.status' => 'Status',
'acp.rep.reward_preset' => 'Reward (preset)',
'acp.rep.no_points' => 'No points',
'acp.rep.n_points' => '{n} points',
'acp.rep.extra_points' => 'Extra points',
'acp.rep.publish_changelog' => 'Publish a changelog entry?',
'acp.rep.no' => 'No',
'acp.rep.yes' => 'Yes',
'acp.rep.changelog_text' => 'Changelog text',
'acp.rep.changelog_hint' => 'Shown publicly on the changelog page. Only saved when set to "Yes".',
'acp.rep.update_report' => 'Update report',
'acp.rep.empty' => 'No bug reports have been submitted.',
'acp.rep.n_reports' => '{n} report(s)',
'acp.rep.col_reporter' => 'Reporter',
'acp.rep.col_position' => 'Position',
'acp.rep.col_reported' => 'Reported',
'acp.rep.col_description' => 'Description',
'acp.rep.handle' => 'Handle',
'acp.menu.default_location' => 'Main navigation',
'acp.menu.vis_all' => 'Everyone',
'acp.menu.vis_guest' => 'Logged out only',
'acp.menu.vis_user' => 'Logged in only',
'acp.menu.vis_admin' => 'Admins only',
'acp.menu.cat_no_delete' => 'Menu categories cannot be deleted. Delete or move their entries instead.',
'acp.menu.deleted' => 'Entry deleted.',
'acp.menu.category_deleted' => 'Category and its entries deleted.',
'acp.menu.label_required' => 'A label is required.',
'acp.menu.url_required' => 'An entry inside a category needs a URL.',
'acp.menu.entry_gone' => 'The menu entry no longer exists.',
'acp.menu.choose_category' => 'Choose an existing category before saving this menu entry.',
'acp.menu.updated' => 'Entry updated.',
'acp.menu.added' => 'Entry added.',
'acp.menu.unknown_action' => 'Unknown action.',
'acp.menu.table_missing' => 'The {table} table is missing. Run {file} against your database. Until then, themes keep using whatever links they hardcode.',
'acp.menu.entries_in' => '{n} entries in {location}',
'acp.menu.edit_entry' => 'Edit entry',
'acp.menu.add_entry' => 'Add an entry',
'acp.menu.to_location' => 'to {location}',
'acp.menu.no_category' => 'No category exists in this menu location, so entries cannot be added.',
'acp.menu.label' => 'Label',
'acp.menu.url' => 'URL',
'acp.menu.url_hint' => 'Leave empty on a category, so its heading opens the submenu instead of navigating.',
'acp.menu.icon' => 'Icon',
'acp.menu.icon_hint' => 'Font Awesome class. Themes may ignore it.',
'acp.menu.category' => 'Category',
'acp.menu.top_level' => 'Top-level category',
'acp.menu.choose_category_opt' => 'Choose a category',
'acp.menu.shown_to' => 'Shown to',
'acp.menu.opens_in' => 'Opens in',
'acp.menu.same_tab' => 'Same tab',
'acp.menu.new_tab' => 'New tab',
'acp.menu.order' => 'Order',
'acp.menu.save_entry' => 'Save entry',
'acp.menu.add_entry_btn' => 'Add entry',
'acp.menu.cancel' => 'Cancel',
'acp.menu.how_title' => 'How themes use this',
'acp.menu.how_text1' => 'A theme declares the slots it renders in its {json}, and asks for the entries. It keeps full control of the markup:',
'acp.menu.how_text2' => 'Entries are already filtered for the visitor, so a link marked {admins_only} never reaches anyone else — it is not hidden with CSS, it is simply absent.',
'acp.menu.admins_only' => 'Admins only',
'acp.menu.how_text3' => 'A theme that hardcodes its menu keeps working and ignores this page.',
'acp.menu.lower_first' => 'Lower order numbers come first',
'acp.menu.col_order' => 'Order',
'acp.menu.col_label' => 'Label',
'acp.menu.col_url' => 'URL',
'acp.menu.col_shown_to' => 'Shown to',
'acp.menu.col_actions' => 'Actions',
'acp.menu.hidden_pill' => 'hidden',
'acp.menu.move_up' => 'Move up',
'acp.menu.move_down' => 'Move down',
'acp.menu.show' => 'Show',
'acp.menu.hide' => 'Hide',
'acp.menu.confirm_delete' => 'Delete this menu entry?',
'acp.menu.confirm_delete_category' => 'Delete this category and all entries inside it?',
'acp.menu.empty' => 'No entries in this menu yet.',
'acp.shp.type_item' => 'Item',
'acp.shp.type_premium' => 'Premium days',
'acp.shp.type_gender' => 'Gender change',
'acp.shp.type_name' => 'Name change',
'acp.shp.type_outfit' => 'Outfit',
'acp.shp.type_mount' => 'Mount',
'acp.shp.type_custom' => 'Custom',
'acp.shp.outfit_field_error' => 'For outfit offers, use the item field as maleId,femaleId.',
'acp.shp.missing_fields' => 'Missing or invalid shop offer fields.',
'acp.shp.offer_added' => 'Shop offer added.',
'acp.shp.offer_add_failed' => 'Shop offer could not be added. Check the znote_shop_offers table columns.',
'acp.shp.status_updated' => 'Shop offer status updated.',
'acp.shp.status_failed' => 'Shop offer status could not be updated.',
'acp.shp.removed' => 'Shop offer removed.',
'acp.shp.remove_failed' => 'Shop offer could not be removed.',
'acp.shp.search_placeholder' => 'Search offers...',
'acp.shp.bulk_selected' => 'selected',
'acp.shp.bulk_enable' => 'Show selected',
'acp.shp.bulk_disable' => 'Hide selected',
'acp.shp.bulk_delete' => 'Delete selected',
'acp.shp.bulk_confirm_delete' => 'Delete every selected offer? This cannot be undone.',
'acp.shp.bulk_select_all' => 'Select all',
'acp.shp.bulk_none_selected' => 'No offers were selected.',
'acp.shp.bulk_done' => '{n} offer(s) updated.',
'acp.shp.bulk_failed' => 'The bulk action failed.',
'acp.shp.stat_db_offers' => 'DB offers',
'acp.shp.stat_active' => 'Active offers',
'acp.shp.stat_hidden' => 'Hidden offers',
'acp.shp.stat_orders' => 'Shop orders',
'acp.shp.add_offer_title' => 'Add shop offer',
'acp.shp.add_offer_sub' => 'Saved in znote_shop_offers and shown on the public shop',
'acp.shp.type_label' => 'Type',
'acp.shp.outfit_option' => 'Outfit (male,female)',
'acp.shp.item_id' => 'Item ID',
'acp.shp.preview_label' => 'Preview',
'acp.shp.outfit_hint' => 'For outfits, use maleId,femaleId.',
'acp.shp.description' => 'Description',
'acp.shp.count_label' => 'Count / days / addon',
'acp.shp.points' => 'Points',
'acp.shp.sort_order' => 'Sort order',
'acp.shp.add_offer_btn' => 'Add offer',
'acp.shp.db_offers_title' => 'Database offers',
'acp.shp.db_offers_sub' => 'Used directly by shop.php',
'acp.shp.col_preview' => 'Preview',
'acp.shp.col_offer' => 'Offer',
'acp.shp.col_points' => 'Points',
'acp.shp.col_status' => 'Status',
'acp.shp.col_actions' => 'Actions',
'acp.shp.count_label2' => 'count',
'acp.shp.active_pill' => 'Active',
'acp.shp.hidden_pill' => 'Hidden',
'acp.shp.hide' => 'Hide',
'acp.shp.show' => 'Show',
'acp.shp.confirm_remove' => 'Remove this shop offer?',
'acp.shp.remove_offer' => 'Remove offer',
'acp.shp.empty' => 'No database shop offers yet.',
'acp.conv.err_choose_source' => 'Choose Auto, MyAAC or Gesior2012 for the uploaded SQL.',
'acp.conv.err_no_dump' => 'Upload a MyAAC or Gesior SQL dump first.',
'acp.conv.err_dump_size' => 'The SQL dump must be between 1 byte and 256 MB.',
'acp.conv.err_no_converted_file' => 'Upload a converted ZnoteX SQL file first.',
'acp.conv.err_converted_size' => 'The converted SQL file must be between 1 byte and 256 MB.',
'acp.conv.err_not_generated' => 'This importer only accepts SQL files generated by this converter.',
'acp.conv.imported_success' => 'Converted SQL imported. Statements executed: {n}.',
'acp.conv.import_stopped' => 'Import stopped at statement #{n}: {message}',
'acp.conv.err_unknown_action' => 'Unknown converter action.',
'acp.conv.unknown_sql_error' => 'Unknown SQL error.',
'acp.conv.info_banner' => 'Upload a MyAAC or Gesior2012 SQL dump here. ZnoteX will generate a converted SQL file to download. After checking it, use the import section below to apply that generated SQL.',
'acp.conv.convert_title' => 'Convert Uploaded SQL',
'acp.conv.convert_sub' => 'MyAAC or Gesior2012 dump in, ZnoteX SQL out',
'acp.conv.source_label' => 'Source AAC',
'acp.conv.source_auto' => 'Auto detect',
'acp.conv.source_myaac' => 'MyAAC',
'acp.conv.source_gesior' => 'Gesior2012',
'acp.conv.source_hint' => 'Auto detect uses table names like {tag1} or {tag2}.',
'acp.conv.sql_dump_label' => 'SQL dump',
'acp.conv.sql_dump_hint' => 'Maximum upload handled by this tool: 256 MB, also limited by PHP upload settings.',
'acp.conv.convert_btn' => 'Convert and download SQL',
'acp.conv.import_title' => 'Import Converted SQL',
'acp.conv.import_sub' => 'Apply a converted ZnoteX SQL file to this database',
'acp.conv.converted_sql_label' => 'Converted SQL',
'acp.conv.converted_sql_hint' => 'Only SQL generated by this converter is accepted. Back up the database before importing.',
'acp.conv.import_btn' => 'Import converted SQL',
'acp.conv.what_gets_converted_title' => 'What Gets Converted',
'acp.conv.info_p1' => 'The generated file creates the extra ZnoteX conversion tables, restores the original source tables with their rows and custom columns, inserts Znote-compatible rows for known content, and archives the full original dump data.',
'acp.conv.info_p2' => 'MyAAC imports {myaac_news}, {myaac_changelog}, {myaac_forum_boards}, {myaac_forum}, {myaac_pages}, {myaac_gallery}, {myaac_menu} and legacy config tables. Gesior2012 imports {z_news_big}, {z_news_tickers} and {z_forum} when they exist. Config without a direct ZnoteX equivalent is preserved under {legacy} keys in {znote_config}. All tables from the uploaded dump are also archived row-by-row into {znote_legacy_tables} and {znote_legacy_rows}, so custom columns and custom tables are not lost even when ZnoteX does not have a direct feature for them.',
'acp.conv.report_title' => 'import report',
'acp.conv.report_file' => 'file',
'acp.conv.report_started' => 'started',
'acp.conv.report_finished' => 'finished',
'acp.conv.report_statements' => 'statements',
'acp.conv.report_status' => 'status',
'acp.conv.status_ok' => 'ok',
'acp.conv.status_error' => 'error',
'acp.conv.report_protected' => 'current admin account protected',
'acp.conv.yes' => 'yes',
'acp.conv.no' => 'no',
'acp.conv.report_remapped_accounts' => 'remapped account IDs',
'acp.conv.report_remapped_players' => 'remapped player IDs',
'acp.conv.report_rollback' => 'rollback: attempted',
'acp.conv.report_error_statement' => 'error statement #{n}: {message}',
'acp.conv.report_sql' => 'sql',
'acp.plr.violation_set' => 'Violation set for {char}.',
'acp.plr.violation_failed' => 'Failed to set violation. Check the $config[\'website_char\'] character.',
'acp.plr.char_not_exist' => 'Character {char} does not exist.',
'acp.plr.char_deleted' => 'Character {char} permanently deleted.',
'acp.plr.password_reset' => 'Password reset for {char}.',
'acp.plr.err_current_not_exist' => 'The current character does not exist.',
'acp.plr.err_too_many_words' => 'The new name contains too many words.',
'acp.plr.err_letters_only' => 'The new name may only contain letters and spaces.',
'acp.plr.err_length' => 'The new name must be between {min} and {max} characters.',
'acp.plr.err_word_length' => 'Every word in the new name must contain at least two letters.',
'acp.plr.err_restricted_word' => 'The new name contains a restricted word.',
'acp.plr.err_creature_name' => 'The new name is reserved for a creature.',
'acp.plr.err_must_be_offline' => 'The character must be offline before it can be renamed.',
'acp.plr.err_name_taken' => 'Another character already uses that name.',
'acp.plr.err_same_name' => 'The current and new character names are identical.',
'acp.plr.err_rename_failed' => 'The character could not be renamed.',
'acp.plr.renamed' => '{old} renamed to {new}.',
'acp.plr.points_given' => '{points} points given to {char} (new balance: {balance}).',
'acp.plr.err_no_znote_row' => 'No znote_accounts row for that account - nothing was credited.',
'acp.plr.position_set' => '{char} is now {position}.',
'acp.plr.err_unknown_char_position' => 'Unknown character or position.',
'acp.plr.err_invalid_teleport_char' => 'Invalid character for teleport.',
'acp.plr.err_unknown_destination' => 'Unknown teleport destination.',
'acp.plr.tp_one_done' => 'Character teleported.',
'acp.plr.tp_all_done' => 'All characters teleported.',
'acp.plr.character_label' => 'Character',
'acp.plr.character_name_placeholder' => 'Character name',
'acp.plr.give_points_title' => 'Give shop points',
'acp.plr.give_points_sub' => 'Credited to the character\'s account',
'acp.plr.points_label' => 'Points',
'acp.plr.points_hint' => 'A negative value subtracts points.',
'acp.plr.give_points_btn' => 'Give points',
'acp.plr.reset_pass_title' => 'Reset account password',
'acp.plr.reset_pass_sub' => 'Identified by one of its characters',
'acp.plr.new_password_label' => 'New password',
'acp.plr.reset_pass_hint' => 'Your own account is redirected to the normal change-password page.',
'acp.plr.reset_pass_btn' => 'Reset password',
'acp.plr.rename_title' => 'Rename character',
'acp.plr.rename_sub' => 'The character must be offline',
'acp.plr.current_name_label' => 'Current name',
'acp.plr.current_name_placeholder' => 'Current character name',
'acp.plr.new_name_label' => 'New name',
'acp.plr.new_name_placeholder' => 'New character name',
'acp.plr.rename_btn' => 'Rename character',
'acp.plr.position_title' => 'Set ingame position',
'acp.plr.position_sub' => 'Promote or demote a character\'s group',
'acp.plr.position_label' => 'Position',
'acp.plr.set_position_btn' => 'Set position',
'acp.plr.delete_title' => 'Delete character',
'acp.plr.delete_sub' => 'Immediate and permanent',
'acp.plr.delete_confirm' => 'Permanently delete this character? This cannot be undone.',
'acp.plr.delete_btn' => 'Delete character',
'acp.plr.violation_title' => 'Ban Character',
'acp.plr.violation_sub' => 'Writes the ban straight into the server\'s ban table',
'acp.plr.violation_confirm' => 'Apply this punishment?',
'acp.plr.type_label' => 'Type',
'acp.plr.action_label' => 'Action',
'acp.plr.reason_label' => 'Reason',
'acp.plr.duration_label' => 'Duration',
'acp.plr.err_invalid_duration' => 'Enter a duration greater than 0, or check "Forever".',
'acp.plr.unit_minutes' => 'Minutes',
'acp.plr.unit_hours' => 'Hours',
'acp.plr.unit_days' => 'Days',
'acp.plr.unit_weeks' => 'Weeks',
'acp.plr.forever_label' => 'Forever (permanent ban)',
'acp.plr.comment_label' => 'Comment',
'acp.plr.comment_placeholder' => 'Visible to the player (60 chars)',
'acp.plr.apply_violation_btn' => 'Apply violation',
'acp.plr.teleport_title' => 'Teleport characters',
'acp.plr.teleport_sub' => 'Offline characters only - the server writes positions on logout',
'acp.plr.teleport_confirm' => 'Move the selected characters?',
'acp.plr.who_label' => 'Who',
'acp.plr.tp_one_option' => 'One character',
'acp.plr.tp_all_option' => 'Every character on the server',
'acp.plr.tp_char_placeholder' => 'Only used for \'One character\'',
'acp.plr.destination_label' => 'Destination',
'acp.plr.dest_home' => 'Their own town temple',
'acp.plr.dest_town' => 'A specific town',
'acp.plr.dest_xyz' => 'Exact coordinates',
'acp.plr.town_label' => 'Town',
'acp.plr.teleport_btn' => 'Teleport',
'common.time_days' => 'DAYS',
'common.time_hours' => 'HOURS',
'common.time_minutes' => 'MINUTES',
'common.time_seconds' => 'SECONDS',
'common.account_number' => 'Account number',
'common.lost_acc_or_password' => 'Lost ACC Number or Password?',
'common.manage_account' => 'Manage Account',
'common.flag' => 'Flag',
'common.search_character' => 'Search Character',
'common.sex' => 'Sex',
'common.male' => 'Male',
'common.female' => 'Female',
'common.date' => 'Date',
'common.enabled' => 'Enabled',
'common.disabled' => 'Disabled',
'common.town' => 'Town',
'common.visibility' => 'Visibility',
'common.new_name_placeholder' => 'New Name',
'online.os_status' => 'Currently {count} players are online on {site}. The record holds a total of {record} players on {date}',
'online.os_server_status' => 'Server Status',
'news.posted_by' => 'posted by',
'downloads.demo_notice' => 'Sub system Override DEMO',
'downloads.os_step_settings' => 'In the IP changer, click on Settings and then Add new Tibia client.',
'downloads.os_step_version' => 'In the IP changer, in the Version field, write your desired version.',
'downloads.os_step_browse' => 'In the IP changer, click on Browse, navigate to your desired Tibia version folder, select Tibia.exe and click Add. Then click Close',
'downloads.os_step_apply' => 'Now you can successfully login on the tibia client and play clicking on Apply every time you want.',
'changepw.instructions' => 'Please enter your current password and a new password. Please verify your new password by entering it twice.',
'settings.account_settings' => 'Account Settings',
'createchar.col_name' => 'Character Name',
'createchar.select_vocation' => 'Select vocation',
'highscores.skill_label' => 'Skill:',
'acc.gender_tickets_left' => 'You have {n} gender change tickets left.',
'acc.gender_tickets_out' => 'You are out of tickets.',
'acc.no_gender_tickets' => 'You don\'t have any character gender tickets, buy them in the shop!',
'acc.delete_caution' => 'CAUTION! Your character with name {name} will be deleted on {time}.',
'acc.delete_done' => 'Character {name} has been deleted. This operation was requested by the owner of this account.',
'acc.manage_characters' => 'Manage characters',
'acc.no_characters' => 'You don\'t have any characters. Why don\'t you create one?',
'acc.confirm_delete' => 'Do you really want to DELETE character: {name}?',
'char.search_title' => 'Search Character',
'char.search_name' => 'Character Name:',
'char.search_submit' => 'Submit',
'char.info_title' => 'Character Information',
'char.equipment' => 'Equipment',
'char.details' => 'Character Details',
'char.residence' => 'Residence',
'char.house_label' => 'House',
'char.guild_label' => 'Guild',
'char.guild_of' => 'of',
'char.created' => 'Created',
'char.account_status' => 'Account Status',
'char.premium_active' => 'Premium active',
'char.premium_inactive' => 'Premium inactive',
'char.magic_level' => 'Magic Level',
'char.need_exp' => 'Need {amount} experience to reach level {level}',
'char.does_not_exist' => '{name} does not exist.',
'char.profession_label' => 'Profession:',
'char.account_status_label' => 'Account Status:',
'char.premium_account' => 'Premium Account',
'char.free_account' => 'Free Account',
'char.guild_membership' => 'Guild Membership:',
'char.never' => 'Never.',
'char.created_label' => 'Created:',
'char.achievement_points_label' => 'Achievement Points:',
'char.last_experience' => 'Last Experience',
'char.quest_progression' => 'Quest progression',
'char.quest_label' => 'Quest:',
'char.progression_label' => 'progression:',
'char.killed_by_player' => 'player:',
'char.killed_by_monster' => 'monster:',
'credits.copyright' => 'Copyright © {year} {site}. All rights reserved.',
'common.select_town' => 'Select town:',
'createchar.instructions' => 'Please choose a name and sex for your character.
In any case the name must not violate the naming conventions stated in the Rules, or your character might get deleted or name locked.',
'char.deleted_player' => 'deleted player.',
'char.unjustified' => '(unjustified)',
'char.and_by' => 'and by {name}.',
'char.soloed' => '(soloed)',
'acp.mod.adminlog.title' => 'Admin Log',
'acp.mod.adminlog.desc' => 'Who did what from the admin panel, and when.',
'acp.log.table_missing' => 'The {table} table is missing. Run {file} against your database. Until then, admin actions are not recorded.',
'acp.log.stat_today' => 'Actions today',
'acp.log.stat_total' => 'Total actions',
'acp.log.stat_admins' => 'Active admins (30d)',
'acp.log.title' => 'Action log',
'acp.log.sub' => 'Every mutating action taken from the admin panel',
'acp.log.search_label' => 'Search',
'acp.log.search_placeholder' => 'Character, admin, action...',
'acp.log.action_label' => 'Action',
'acp.log.all_actions' => 'All actions',
'acp.log.period_label' => 'Period',
'acp.log.all_time' => 'All time',
'acp.log.filter' => 'Filter',
'acp.log.clear' => 'Clear',
'acp.log.col_date' => 'Date',
'acp.log.col_admin' => 'Admin',
'acp.log.col_action' => 'Action',
'acp.log.col_target' => 'Target',
'acp.log.col_details' => 'Details',
'acp.log.col_ip' => 'IP',
'acp.log.page_of' => 'Page {page} of {total} ({n} total)',
'acp.log.empty' => 'No admin actions recorded yet.',
'acp.log.action.player.violation' => 'Rule violation',
'acp.log.action.player.delete_char' => 'Delete character',
'acp.log.action.player.reset_password' => 'Reset password',
'acp.log.action.player.rename' => 'Rename character',
'acp.log.action.player.give_points' => 'Give shop points',
'acp.log.action.player.set_position' => 'Set ingame position',
'acp.log.action.player.teleport' => 'Teleport character(s)',
'acp.log.action.player.update_skills' => 'Edit level/skills',
'acp.log.action.account.points' => 'Adjust account points',
'acp.log.action.settings.save' => 'Save settings',
'acp.log.action.payments.save' => 'Save payment settings',
'acp.log.action.plugin.install' => 'Install plugin',
'acp.log.action.plugin.update' => 'Update plugin',
'acp.log.action.plugin.enable' => 'Enable plugin',
'acp.log.action.plugin.disable' => 'Disable plugin',
'acp.log.action.plugin.uninstall' => 'Uninstall plugin',
'acp.log.action.menu.create' => 'Create menu entry',
'acp.log.action.menu.update' => 'Update menu entry',
'acp.log.action.menu.delete' => 'Delete menu entry',
'acp.log.action.menu.toggle' => 'Toggle menu entry',
'acp.log.action.menu.move' => 'Reorder menu entry',
'acp.log.action.news.create' => 'Publish news article',
'acp.log.action.news.update' => 'Update news article',
'acp.log.action.news.delete' => 'Delete news article',
'acp.log.action.changelog.create' => 'Create changelog entry',
'acp.log.action.changelog.update' => 'Update changelog entry',
'acp.log.action.changelog.delete' => 'Delete changelog entry',
'acp.log.action.shop.offer_add' => 'Add shop offer',
'acp.log.action.shop.offer_toggle' => 'Toggle shop offer',
'acp.log.action.shop.offer_delete' => 'Remove shop offer',
'acp.log.action.helpdesk.reply' => 'Reply to ticket',
'acp.log.action.helpdesk.close' => 'Close ticket',
'acp.log.action.helpdesk.reopen' => 'Reopen ticket',
'acp.log.action.helpdesk.delete' => 'Delete ticket',
'acp.log.action.reports.status' => 'Change report status',
'acp.log.action.reports.reward' => 'Reward reporter',
'acp.log.action.minimap.import' => 'Import minimap',
'acp.log.action.minimap.remove' => 'Remove minimap',
'acp.log.action.landing.toggle' => 'Toggle landing page',
'acp.log.action.layouts.activate' => 'Activate theme',
'acp.log.action.layouts.uninstall' => 'Uninstall theme',
'acp.log.action.convert.import' => 'Import converted SQL',
'acp.log.action.gallery.accept' => 'Publish gallery image',
'acp.log.action.gallery.hide' => 'Hide gallery image',
'acp.log.action.gallery.remove' => 'Remove gallery image',
'acp.log.action.layouts.install' => 'Install theme',
'acp.log.action.layouts.options_save' => 'Save theme options',
'social.facebook_label' => 'Facebook:',
'social.discord_label' => 'Discord:',
'social.send_message' => 'Send us a Message',
'social.join_community' => 'Join our Community Today',
'common.click_here' => 'Click here',
'theme.designed_by' => 'Layout Designed by',
'social.send_message_whatsapp' => 'Send a Message',
'nav.latest_news' => 'Latest News',
'nav.ticket_support' => 'Ticket Support',
'nav.account_management' => 'Account Management',
'nav.download_client' => 'Download Client',
'nav.premium_features' => 'Premium Features',
'nav.lost_account' => 'Lost Account?',
'nav.chars_auction' => 'Chars Auction',
'nav.experience_history' => 'Experience History',
'nav.kill_statistics' => 'Kills Statistics',
'nav.support_list' => 'Support List',
'nav.item_market' => 'Item Market',
'nav.forum_boards' => 'Forum Boards',
'nav.discussion' => 'Discussion',
'nav.feedback' => 'Feedback',
'nav.top_guilds' => 'Top Guilds',
'nav.guild_wars' => 'Guild Wars',
'nav.image_gallery' => 'Image Gallery',
'nav.raids' => 'Raids',
'nav.maps' => 'Maps',
'online.players_online_label' => 'Players online:',
'common.translate_button' => 'Translate',
'quest.completed' => '[Completed]',
'recovery.lost_account_title' => 'Lost Account',
'login.help_text' => 'Please fill the login form in this aside bar to login.',
'highscores.search_title' => 'Search highscores',
'highscores.select_skill' => 'Select skill type to view:',
'footer.generated_in' => 'Page generated in {time} seconds.',
'footer.designed_by' => 'Designed By',
'footer.engine' => 'Engine:',
'footer.server_clock' => 'Server date and clock is: {clock}',
'front.server_information' => 'Server Information',
'front.newest_player' => 'Welcome to our newest player:',
'front.best_player' => 'The best player is:',
'front.level_congrats' => 'level: {level} congratulations!',
'front.stats' => 'We have {accounts} accounts in our database, {players} players, and {guilds} guilds',
'front.featured_article' => 'There is the featured article.',
'front.server_type' => 'Server Type:',
'front.server_description' => 'Server Description:',
'front.server_welcome' => 'Welcome to Global Server, latest updates, quests, bosses, etc.',
'success.payment_pending' => 'Your payment is being verified. Shop points are added automatically when the secure payment webhook confirms it.',
'srv.not_imported' => 'The server administrator has yet to import server information to this page.',
'spells.rune_image' => 'Rune image',
'spells.not_loaded' => 'Spells have currently not been loaded into the website by the server admin.',
'shop.purchase' => 'PURCHASE',
'shop.days' => '{count} Days',
'shop.outfit_limit_error' => 'Outfit offers do not support more than 2 outfits. {count} configured.',
'common.all' => 'All',
'common.yesterday' => 'Yesterday',
'common.and' => 'and',
'vocation.sorcerers' => 'Sorcerers',
'vocation.druids' => 'Druids',
'vocation.paladins' => 'Paladins',
'vocation.knights' => 'Knights',
'powergamers.disabled' => 'This page has been disabled in config.php.',
'powergamers.no_vocation' => 'No vocation',
'powergamers.showing_only' => 'Showing only',
'powergamers.showing_all' => 'Showing',
'powergamers.vocations_and' => 'vocations and',
'powergamers.sorted_days' => 'sorted by {days} days',
'powergamers.sorted_today' => 'sorted by today',
'bomberman.title' => 'Bomberman',
'login.aside_help' => 'Please enter your account name and password to log in.',
'recovery.lost_account' => 'Lost Account',
'widget.highscores.search_title' => 'Highscores',
'widget.highscores.select_skill' => 'Select skill',
'widget.houses.search_title' => 'Houses',
'common.deaths' => 'Deaths',
'common.frags' => 'Frags',
'common.wins' => 'Wins',
'common.losses' => 'Losses',
'common.games_played' => 'Games Played',
'common.no_vocation' => 'No vocation',
'powergamers.sorcerers' => 'Sorcerers',
'powergamers.druids' => 'Druids',
'powergamers.paladins' => 'Paladins',
'powergamers.knights' => 'Knights',
'payment.invalid_request' => 'Invalid request',
'payment.retry_hint' => 'Reload the buy points page and try again.',
'payment.unavailable' => 'Payment unavailable',
'payment.start_failed' => 'The payment could not be started. Please contact staff if this continues.',
);