local X = { }
local Customize
if GetScriptDirectory() == 'bots' then Customize = require('bots.FunLib.custom_loader')
else Customize = require( GetScriptDirectory()..'/FunLib/custom_loader' ) end

local LanguageCode = 'en'

local Localization = {
    en = {
        welcome_msgs = {
            "Welcome to Open Hyper AI (OHA): ",
            "You can select the heroes for bots to pick, e.g. 10 same heroes or your dream teams, or change their names. Just customize bots in the Customize/general file.",
            "If you feel bots are weak, try enabling the enhanced Fretbots mode to make the game a lot more challenging. Check Workshop page for details.",
            "You can type `!pos X` to swap position with a bot. For example, type: `!pos 2` to go mid lane. Type `!3pos 5` to ask the 3rd bot on the team to play position 5.",
            -- "Note, after the update of 7.38, the `!pos X` command is disabled temporarily for Dire team",
            "You can type `!sp zh` for ally bots to 说中文, or `!sp en` for English, `!sp ru` for русский, `!sp ja` for 日本語. Not 100% translated, just be patient.",
            "This is nonprofit project, if you like this script and have any feedback or want to contritute, or give any support or buy me a coffee, please check script's Workshop."
        },
        say_play_pos = "I will play position ",
        pos_select_closed = "Position selection closed.",
        say_will_lose = "We estimate that the probability of winning is less than 1%, so we are resigned to losing! Well played! ",
        say_will_lose_2 = "We estimate the probability of winning to be below 1%. Well played!",
        say_will_win = "We estimate that the probability of winning a team battle is over 90%",
        say_will_win_2 = "We estimate the probability of winning to above 90%.",
        can_try_tormentor = "Let's try tormentor?",
        say_come_def = "Please come defending",
        got_first_blood = {
            'first blood! I am first on every thing',
            'ez fb. you’re already losing, it’s only just started',
            'ty for feeding',
            'good job',
            'wp',
            'feels like we are going to have a good game',
        },
        got_a_kill = {"?", "you’ll have to do better than that!", "ez", "next time, keep your eyes closer on your dumb ass", "enjoy respawn timers now and then.", "i was not even getting warmed up yet",
            "did someone died? oh wait, no, noob pussi.", "maybe next time, you’ll stand a chance… or not.", "thanks for your feed", "don’t feel bad, we all start somewhere… down there."},
        got_big_kill = {"did you forget to bring your brain today? ez", "I’m on fire! who’s next?", "oh very cute", "farm to feed hum?", "where's your team?", "you should ask for a refund on those skills"},
        got_big_kill_2 = {"that’s what a real rampage looks like!", "well, not too bad buddy, learn and try better", "don't give up, you are almost better than me", "?????"},
        got_big_kill_3 = {"I almost thought you were good. do better next time plz", "good. i can tell that you are not a retarded noob", "????????", "thought you were better than that"},
        kill_streak_ended = {"...", "not too bad", "well played", "noob team", "what is my fking team doing"},
        say_end = {"gg. end", "good game, well played", "noob team. ez", "afk, push mid and end"},
        no_more_talking = {"I'm busy, talk to you later", "STFU, no more talking", "Play, not talk", "Focus on gameplay, I will stop responding" },
        fretbots_wel_msgs = {
            -- RGB color and text. sample color pick web: https://htmlcolorcodes.com/
            {"#C0392B", "GLHF! Native bot scripts lack excitement. This script boosts bots with unfair advantages to make bot games more challenging:"},
            {"#9B59B6", "* You can vote for difficulty scales that affect the amount of bonus the bots will receive." },
            {"#2980B9", "* If difficulty >= 0, bots get bonus neutral items, and get fair bonus in gold, exp, stats, etc every minute."},
            {"#E59866", "* If difficulty >= 1, bots get above bonus upon their death; and also get new bonus in mana/hp regens."},
            {"#1ABC9C", "* As difficulty increments, bots get neutral items sooner and higher bonus amount."},
            {"#F39C12", "* If difficulty >= 5, when a player kills a bot, the killer receives a reduction in gold. The assisting players receive a smaller gold reduction. Bots also provide less exp on death."},
            {"#7FB3D5", "* The higher the difficulty you vote, the more bonus the bots will get which can make the game more challenging." },
            {"#E74C3C", "* High difficulty can be overwhelming or even frustrating, please choose the right difficulty for you and your team." },
            {"#D4AC0D", "* Bot link for any feedback: https://steamcommunity.com/sharedfiles/filedetails/?id=3246316298 . Kudos and thanks all for sharing your ideas." },
            {"#839192", "* You can use simple commands like `-info` to view difficulty info, or `-getroles`, or other interesting commands - check script's Workshop page for details." },
        },
        newer_version = "New version of the script is available! Feel free to update the script Open Hyper AI (OHA), or check the Workshop page if you need help.",
        fret_diff_open = "Difficulty voting is now open! Default difficulty is: ",
        fret_diff_vote_hint = 'Enter a number (0 to %d) in chat to vote.',
        fret_ally_scale_open = 'Now vote for the bonus scale for ally bots in your team comparing to the other side. The default scale is: ',
        fret_ally_vote_hint = 'Enter a number (0 to %d)  e.g. vote 0.5 means your ally bots get half of the bonus amount vs the bonus for enemy bots. Note to challenge a higher difficulty later, you need to win with ally scale not higher than 0.5',
        fret_default_diff_hint = 'The default difficulty is: %d. Type a number to vote.',
        fret_default_diff_limit = 'For the sake of your gaming experience in case you are unfamiliar with the potentially overwhelming game with high difficulty. The max difficulty the host can currently select is: %d. The host needs to win difficulty %d at least %d time(s) before selecting difficulty %d. Setting difficulty to %d.',
        fret_talent_warn = " is very talented!",
        fret_killer_panelty = 'Balance Killer Award to %s for the kill. Gold: %d',
        fret_killer_awards = '[Balance Killer Awards]',
        fret_select_diff = 'Selected difficulty: ',
        fret_select_ally_scale = '. Ally bots bonus scale: ',
        fret_player_total_networth = 'Players Total Net Worth: %dk',
        fret_bot_total_networth = 'Bots Total Net Worth: %dk',
        fret_vote_for = '%s voted difficulty: %s.',
        fret_role_determined = 'Bot Roles have been determined.',
        fret_role_rad = 'For Radiant team:',
        fret_role_dire = 'For Dire team:',
        fret_role_position = 'Position ',
        fret_voting_ends = "Voting ends in %d seconds!",
        fret_diff_selected = "Difficulty selected: ",
        fret_vote_for_ally = '%s voted ally scale: %s.',
        fret_ally_scale_ended = "Ally bots bonus scale selected: ",
        fret_found_netural_item = "Found Neutral Item: ",
        fret_req_error_msg = "Error occurred! Please try again later.",
        fret_new_diff = "New available difficulty: %d",
        random_responses = {
            "?", 'glhf', 'gg',
            "Nice, my dog could do better",
            "focus on gameplay might improve your win rate.",
            "I’ve seen creeps farm better than you.",
            "You know you are playing against bots, right?",
            "Was that your best? My dcik does better than that.",
            "Don’t worry, we’re just playing pos6, nothing new.",
            "Calm down, it’s not your fault you’re bad… wait, yes it is.",
            "Genius gameplay.",
            "such a genius",
            "dota is fun with you",
            "Talk is free, and thats the only thing you can affort.",
            "Maybe try a type-to-win game next time?",
            "Was there a dog barking?",
            "You’re the kind of player that makes Dota fun… for the enemy.",
            "are you playing with your brain off?",
            "Game sense? Never heard of it, huh?",
            "Your decision-making is more random than the neutral creeps.",
            "Enemy team thanks you for the child play.",
            "come again",
            "Do you know the quit button exists?",
            "Oh look, you’re online! Too bad your gameplay isn’t.",
            "Can someone buy this genius a brain?",
            "Keep hands on your mouse",
            "Is your mouse broken or just your brain?",
            "Keep playing like that",
            "Friendly reminder: you are waisting time talking with bots who give a shit of what you say.",
            "Do you even know what you are doing",
            "Congratulations, you know how to type!",
            "Your teamwork is as good as a bunch of bots.",
            "Our teamwork is as good as a bunch of bots.",
            "Someone call a coach, we’ve got a lost soul here.",
            "Your hero is OP, but your gameplay is the opposite.",
            "At this rate, you’re giving out free wins today.",
            "Go feed plz. Give free gold every minute!",
            "Plz quit, easier without you",
            "Are you trying to make us lose by typing? You’re succeeding.",
            "Try to win by typing your poor keyboard with your poor little fingers?",
            "please stfu, it’s for everyone’s sake.",
            "You proofed that this game's matchmaking has no standards, another bot tier player again."
        }
    },
    zh = {
        welcome_msgs = {
            "欢迎来到 Open Hyper AI (OHA)：",
            "你可以自定义机器人要选择的英雄，例如 10 个相同的英雄或别的梦幻队伍，或者更改他们的名字。只需修改 Customize/general 文件",
            "如果你觉得机器人太弱，可以尝试启用增强的 Fretbots 模式，让游戏更加具有挑战性。详情请查看创意工坊页面",
            "你可以输入 `!pos X` 与机器人交换位置。例如，输入：`!pos 2` 来走中路。输入 `!3pos 5` 让队伍中的第3个机器人玩5号位。",
            -- "注意：在 7.38 更新后，夜宴队的 !pos X 命令已暂时被禁用",
            "你可以输入 `!sp zh` 让盟友机器人说中文，或者输入 `!sp en` 说英语，`!sp ru` 说俄语，`!sp ja` 说日语。并非100%完成翻译，请耐心等待。",
            "这是一个非营利项目，如果您喜欢这个脚本，有任何反馈或想做贡献，或者给予任何支持或请我喝一杯咖啡，请查看脚本的工坊"
        },
        say_play_pos = "我将玩位置 ",
        pos_select_closed = "位置选择已关闭",
        say_will_lose = "我们估计胜率不到 1%，所以我们无奈认输！打得不错！",
        say_will_lose_2 = "我们估计胜率低于 1%。打得不错！",
        say_will_win = "我们估计赢得团战的概率超过 90%",
        say_will_win_2 = "我们估计胜率高于 90%",
        can_try_tormentor = "我们尝试挑战 痛苦魔方 吗？",
        say_come_def = "请来防守",
        got_a_kill = {"享受复活计时吧，你会一直看自己倒数的", "？", "你得表现得更好一点！", "ez", "下次小心点吧", "还没开始热身呢"},
        got_big_kill = {"今天忘了带上你的技术了吗？太ez了！", "也许下次你会有机会……但这次没了",
            "我起来了！下一个是谁？", "别难过，每个人都有个开始……比如你现在", "你肯定很喜欢复活计时，不然你怎么又开始倒计时了"},
        got_big_kill_2 = {"这才是真正的杀戮dota！", "更像是练习赛", "朋友，这么菜也能玩dota吗", "别难过，每个人都有个开始……"},
        got_big_kill_3 = {"ez。努力点吧", "太ez了！能不能让我玩得开心点，菜鸡？", "？？？？？", "还以为你比这强一点", "哟，玩的可以", "有人死了吗？哦，等等，不，菜狗死了"},
        kill_streak_ended = {"...", "打得不错", "辣鸡队伍"},
        say_end = {"gg. 结束", "好游戏，打得不错", "辣鸡队伍。ez"},
        no_more_talking = {
            "我已无话可说了。",
            "我要专心打游戏了，下次再说吧。",
            "不和你闹了，我要开始认真玩了。",
            "我的心好累，不说了。",
            "好了好了，别逗我玩了。",
            "玩竞技游戏的时候就不能严肃点嘛。",
            "打游戏呢，先不和你聊了。",
            "我不想再分心聊天了。",
        },
        got_first_blood = {
            '一血！我总是第一',
            '轻松拿下一血。比赛才刚刚开始 你们已经开始输啦',
            '感谢送人头',
            '干得漂亮',
            '很棒棒哦',
            '感觉这将会是一场不错的比赛',
        },
        fretbots_wel_msgs = {
            {"#C0392B", "GLHF！原生机器人脚本缺乏乐趣。这段脚本通过不公平的优势提升机器人，使机器人游戏更具挑战性："},
            {"#9B59B6", "* 你可以投票选择难度等级，这会影响机器人获得的奖励量"},
            {"#2980B9", "* 如果难度 >= 0，机器人将获得额外的中立物品，并每分钟获得公平的金币、经验、属性等加成"},
            {"#E59866", "* 如果难度 >= 1，机器人在死亡时也会获得上述加成；并新增法力/生命值恢复的奖励"},
            {"#1ABC9C", "* 随着难度的增加，机器人会更快获得中立物品并获得更高的奖励。"},
            {"#F39C12", "* 如果难度 >= 5，当玩家击杀机器人时，击杀者的金币会减少，协助击杀的玩家获得较少的金币减免。机器人死亡后也会提供更少的经验值"},
            {"#7FB3D5", "* 难度越高，机器人获得的奖励越多，这会让游戏更具挑战性"},
            {"#E74C3C", "* 高难度可能会让人感到有压力甚至沮丧，请为你和你的团队选择合适的难度来获得最好的娱乐需求"},
            {"#D4AC0D", "* 机器人反馈链接： https://steamcommunity.com/sharedfiles/filedetails/?id=3246316298 。感谢大家分享你们的想法"},
            {"#839192", "* 你可以使用简单命令如 `-info` 查看难度信息，或使用 `-getroles` 及其他有趣的命令 - 查看脚本的创意工坊页面获取详情"}
        },
        newer_version = "有新版本可用！欢迎更新脚本 Open Hyper AI (OHA) ，或者访问创意工坊页面获取帮助。",
        fret_diff_open = "难度投票现已开放！默认难度为：",
        fret_diff_vote_hint = "在聊天中输入一个数字（0 到 %d）进行投票。",
        fret_ally_scale_open = "现在，为你队伍中盟友机器人的奖励比例投票，相对于另一方。默认比例为：",
        fret_ally_vote_hint = '输入一个数字（0 到 %d），例如：投票 0.5 表示你的盟友机器人获得的奖励是敌方机器人的一半。请注意，若要挑战更高难度，你需要在盟友奖励比例不高于 0.5 的情况下获胜',
        fret_default_diff_hint = "默认难度为：%d。输入一个数字进行投票。",
        fret_talent_warn = " 非常有天赋！",
        fret_killer_panelty = "[平衡击杀奖] 颁给 %s。金币：%d",
        fret_killer_awards = '[平衡击杀奖励]',
        fret_select_diff = "选择的难度：",
        fret_default_diff_limit = "为了保证您的游戏体验，假如您不熟悉这款可能因高难度而令人望而却步的游戏，当前主机可选择的最高难度为：%d。主机必须至少在%d难度下赢得%d次，才能选择%d难度。正在设置难度为%d。",
        fret_select_ally_scale = "。盟友机器人的奖励比例：",
        fret_player_total_networth = "玩家总净资产：%dk",
        fret_bot_total_networth = "机器人总净资产：%dk",
        fret_vote_for = "%s 投票难度：%s。",
        fret_role_determined = "机器人角色已确定。",
        fret_role_rad = "天辉队伍角色：",
        fret_role_dire = "夜魇队伍角色：",
        fret_role_position = "位置 ",
        fret_voting_ends = "投票将在 %d 秒后结束！",
        fret_diff_selected = "选择的难度：",
        fret_found_netural_item = "找到中立物品：",
        fret_vote_for_ally = '%s 投票选择了盟友奖励比例：%s。',
        fret_ally_scale_ended = "盟友机器人奖励比例已选择：",
        fret_req_error_msg = "发生错误！请稍后再试。",
        fret_new_diff = "新的可选难度：%d",
        random_responses = {
            "?", 'glhf', 'gg',
            "不错，我家的狗都能做得更好。",
            "专注于游戏可能会提高你的胜率。",
            "我见过小兵都比你补得好。",
            "你知道你是在跟机器人玩吧？",
            "这是你的最佳表现吗？我裤子里的兄弟都比这强。",
            "别担心，6号位",
            "冷静点，这不是你的错……哦等等",
            "天才操作。",
            "真是个天才。",
            "和你玩 Dota 真有趣。",
            "嘴炮是免费的，这大概是你唯一能负担得起的东西。",
            "下次试试玩个靠打字取胜的游戏？",
            "刚才是不是听到狗叫了？",
            "你这种玩家让敌人觉得游戏很好玩。",
            "你是不是在关着脑子玩？",
            "游戏意识？从来没听说过吧？",
            "你的决策比野怪还随机。",
            "敌方队伍感谢你的表演。",
            "再来一次",
            "你知道退出按钮在哪吗？",
            "哦，你在线！可惜你的脑子离线了。",
            "有人能买个脑子给这个天才吗？",
            "手放在鼠标上好吗？",
            "你的鼠标坏了还是脑子坏了？",
            "继续这么玩吧。",
            "友情提示：你正在浪费时间跟不在乎你说啥的机器人聊天。",
            "你知道自己在干什么吗？",
            "恭喜，你会打字！",
            "你的团队合作就像一群机器人。",
            "我们的团队合作就像一群机器人。",
            "快叫个教练吧，这里有个迷路的灵魂。",
            "你的英雄很强，但你的操作完全相反。",
            "去送吧，每分钟都给敌人免费金钱！",
            "求你退了吧，没有你会更容易赢。",
            "你是故意想让我们输吗？你做到了。",
            "用你可怜的小手指敲键盘能赢吗？",
            "请闭嘴，为了大家好。",
            "你证明了这个游戏的匹配没有标准，又一个机器人级别的玩家。"
        },
    },
    ru = {
        welcome_msgs = {
            "Добро пожаловать в Open Hyper AI (OHA):",
            "Вы можете выбрать героев для ботов, например, 10 одинаковых героев или свою команду мечты, или изменить их имена. Просто измените файл Customize/general.",
            "Если вы считаете, что боты слишком слабые, попробуйте включить режим улучшенных Fretbots, чтобы игра стала более сложной. Подробности смотрите на странице Workshop.",
            "Вы можете ввести `!pos X`, чтобы поменяться позицией с ботом. Например, введите: `!pos 2`, чтобы пойти на центральную линию. Введите `!3pos 5`, чтобы попросить 3-го бота в команде играть на позиции 5.",
            -- "Обратите внимание: после обновления до версии 7.38 команда !pos X временно отключена для команды Dire.",
            "Вы можете ввести `!sp zh`, чтобы союзные боты говорили на китайском, или `!sp en` для английского, `!sp ru` для русского, `!sp ja` для японского. Перевод не завершён на 100%, проявите терпение.",
            "Это некоммерческий проект. Если вам нравится этот скрипт и у вас есть отзывы или вы хотите внести вклад, оказать поддержку или угостить меня кофе, пожалуйста, посетите страницу скрипта в Мастерской."
        },
        say_play_pos = "Я буду играть на позиции ",
        pos_select_closed = "Выбор позиции закрыт.",
        say_will_lose = "Мы оцениваем вероятность победы менее 1%, поэтому мы смирились с поражением! Хорошая игра!",
        say_will_lose_2 = "Мы оцениваем вероятность победы ниже 1%. Хорошая игра!",
        say_will_win = "Мы оцениваем вероятность победы в командной битве более 90%",
        say_will_win_2 = "Мы оцениваем вероятность победы выше 90%.",
        can_try_tormentor = "Попробуем сразиться с Торментором?",
        say_come_def = "Пожалуйста, приходите защищать",
        got_a_kill = {"Наслаждайся таймерами возрождения, ты будешь считать их всю игру", "?", "Тебе нужно стараться лучше!", "ez", "В следующий раз будь внимательнее", "Даже не разогрелся"},
        got_big_kill = {"Сегодня забыл свои скиллы дома? Легко!", "Может, в следующий раз у тебя будет шанс… или нет.",
            "Я в ударе! Кто следующий?", "Не переживай, все мы когда-то начинали… внизу.", "Надеюсь, ты иногда наслаждаешься таймерами возрождения."},
        got_big_kill_2 = {"Вот как выглядит настоящая расправа!", "Убийственная серия? Скорее, тренировка", "Тебе стоит потребовать возврат за эти скиллы", "Не переживай, все мы когда-то начинали… внизу."},
        got_big_kill_3 = {"Это типа вызов? ezчные киллы. Старайся лучше, плиз", "Слишком легко! Можешь хоть немного развлечь меня, нуб?",
            "???????", "Думал, ты лучше", "Вот как надо выносить", "Кто-то умер? Ой, нет, нубская фигня."},
        kill_streak_ended = {"...", "хорошая игра", "нубская команда"},
        say_end = {"gg. конец", "хорошая игра, молодцы", "нубская команда. ez"},
        no_more_talking = {"Я занят, поговорим позже", "ЗАТКНИСЬ, больше никаких разговоров", "Играй, а не болтай", "Сфокусируйся на игре, я больше не отвечу"},
        got_first_blood = {
            'Первая кровь! Я всегда первый во всём.',
            'Лёгкая первая кровь. Вы уже проигрываете, хотя всё только началось.',
            'Спасибо за фид.',
            'Отличная работа.',
            'Хорошая игра.',
            'Похоже, нас ждёт хорошая игра.',
        },
        fretbots_wel_msgs = {
            {"#C0392B", "Удачи! Обычные бот-скрипты скучны. Этот скрипт улучшает ботов, давая им нечестные преимущества, чтобы сделать игры с ботами более сложными:"},
            {"#9B59B6", "* Вы можете голосовать за уровень сложности, который влияет на бонусы, получаемые ботами."},
            {"#2980B9", "* Если сложность >= 0, боты получают дополнительные нейтральные предметы, а также бонусы к золоту, опыту, характеристикам и т.д. каждую минуту."},
            {"#E59866", "* Если сложность >= 1, боты получают вышеуказанные бонусы после смерти; также добавляются новые бонусы к восстановлению маны/здоровья."},
            {"#1ABC9C", "* С увеличением сложности боты быстрее получают нейтральные предметы и больше бонусов."},
            {"#F39C12", "* Если сложность >= 5, при убийстве бота игрок получает уменьшение золота. Помогающие игроки получают меньшее уменьшение золота. Боты также дают меньше опыта при смерти."},
            {"#7FB3D5", "* Чем выше уровень сложности, за который вы голосуете, тем больше бонусов получают боты, что делает игру более сложной."},
            {"#E74C3C", "* Высокая сложность может быть подавляющей или даже раздражающей, выбирайте подходящий уровень сложности для себя и своей команды."},
            {"#D4AC0D", "* Ссылка для обратной связи: https://steamcommunity.com/sharedfiles/filedetails/?id=3246316298 . Спасибо всем за ваши идеи."},
            {"#839192", "* Вы можете использовать простые команды, такие как `-info` для просмотра информации о сложности, `-getroles` или другие интересные команды - подробнее на странице мастерской скрипта."}
        },
        newer_version = "Доступна новая версия скрипта! Вы можете обновить скрипт, повторно подписавшись на Open Hyper AI (OHA), или посетить страницу Workshop, если нужна помощь.",
        fret_diff_open = "Голосование за сложность открыто! Сложность по умолчанию: ",
        fret_diff_vote_hint = "Введите число (от 0 до %d) в чат для голосования.",
        fret_ally_scale_open = "Теперь проголосуйте за масштаб бонуса для союзных ботов в вашей команде по сравнению с другой стороной. Масштаб по умолчанию: ",
        fret_ally_vote_hint = 'Введите число (от 0 до %d), например, голосование за 0.5 означает, что союзные боты получают половину бонуса по сравнению с вражескими ботами. Учтите, для вызова более высокой сложности позже вам нужно победить при масштабе союзников не выше 0.5.',
        fret_default_diff_hint = "Сложность по умолчанию: %d. Введите число для голосования.",
        fret_talent_warn = " очень талантлив!",
        fret_killer_panelty = "Баланс награды за убийство для %s. Золото: %d",
        fret_killer_awards = '[Баланс наград за убийство]',
        fret_select_diff = "Выбранная сложность: ",
        fret_default_diff_limit = "Ради вашего игрового опыта, если вы не знакомы с этой потенциально ошеломляющей игрой с высокой сложностью, максимальная сложность, которую хост может выбрать в данный момент: %d. Хост должен выиграть при сложности %d не менее %d раз(а), прежде чем выбрать сложность %d. Устанавливается сложность %d.",
        fret_select_ally_scale = ". Масштаб бонуса для союзных ботов: ",
        fret_player_total_networth = "Общая стоимость игроков: %dk",
        fret_bot_total_networth = "Общая стоимость ботов: %dk",
        fret_vote_for = "%s проголосовал за сложность: %s.",
        fret_role_determined = "Роли ботов определены.",
        fret_role_rad = "Роли для команды Radiant:",
        fret_role_dire = "Роли для команды Dire:",
        fret_role_position = "Позиция ",
        fret_voting_ends = "Голосование заканчивается через %d секунд!",
        fret_diff_selected = "Выбранная сложность: ",
        fret_found_netural_item = "Найден нейтральный предмет: ",
        fret_vote_for_ally = '%s проголосовал за масштаб союзников: %s.',
        fret_ally_scale_ended = "Выбран масштаб бонуса для союзных ботов: ",
        fret_req_error_msg = "Произошла ошибка! Пожалуйста, попробуйте позже.",
        fret_new_diff = "Новая доступная сложность: %d",
        random_responses = {
            "?", 'glhf', 'gg',
            "Неплохо, моя собака могла бы лучше.",
            "Сфокусируйся на игре, может, винрейт улучшится.",
            "Я видел, как крипы фармят лучше, чем ты.",
            "Ты понимаешь, что играешь против ботов, да?",
            "Это твой максимум? Мой друг в штанах лучше играет.",
            "Не переживай, мы просто играем с шестой позицией, ничего нового.",
            "Спокойно, это не твоя вина... Ой, подожди, это твоя.",
            "Гениальный геймплей.",
            "Настоящий гений.",
            "С тобой играть в Доту весело.",
            "Болтать бесплатно, это всё, что ты можешь себе позволить.",
            "Попробуй в следующий раз игру, где побеждают текстом.",
            "Только что собака залаяла?",
            "Ты тот игрок, который делает игру весёлой... для врагов.",
            "Ты играешь без мозга, да?",
            "Игровое чутьё? Никогда не слышал об этом?",
            "Твои решения более случайны, чем нейтральные крипы.",
            "Вражеская команда благодарит тебя за детский сад.",
            "Можем ли мы посмотреть повтор твоего фейла? Это шедевр комедии!",
            "Ты знаешь, что существует кнопка выхода?",
            "О, ты онлайн! Жаль, что твой скилл нет.",
            "Кто-нибудь купите этому гению мозг.",
            "Держи руки на мышке.",
            "У тебя мышь сломана или мозг?",
            "Продолжай в том же духе.",
            "Дружеский совет: ты тратишь время на общение с ботами, которым плевать.",
            "Ты вообще понимаешь, что делаешь?",
            "Поздравляю, ты умеешь печатать!",
            "Твоя командная работа на уровне ботов.",
            "Наша командная работа как у ботов.",
            "Кто-нибудь вызовите тренера, тут заблудшая душа.",
            "Твой герой сильный, а вот твоя игра - наоборот.",
            "С такими темпами мы раздаём победы.",
            "Иди фидить, давай золото врагам каждую минуту!",
            "Пожалуйста, выйди, без тебя будет проще.",
            "Ты пытаешься нас слить? У тебя получается.",
            "Думаешь, победишь, стуча по клаве своими жалкими пальцами?",
            "Пожалуйста, заткнись, это для всеобщего блага.",
            "Ты доказал, что матчмейкинг без стандартов, бот-уровень игрока."
        },
    },
    ja = {
        welcome_msgs = {
            "Open Hyper AI (OHA)へようこそ：",
            "ボットが選ぶヒーローを選択したり（例: 10人の同じヒーローや夢のチーム）、名前を変更したりできます。Customize/general ファイルを編集するだけです。",
            "もしボットが弱いと感じる場合は、強化された Fretbots モードを有効にして、より挑戦的なゲームをお楽しみください。詳細はワークショップページをご覧ください。",
            "`!pos X` を入力してボットとポジションを交換できます。例えば、`!pos 2` を入力するとミッドレーンに行きます。`!3pos 5` を入力すると、チームの3番目のボットにポジション5をプレイさせます。",
            -- "注意：7.38 のアップデート後、Dire チーム向けの !pos X コマンドは一時的に無効化されています",
            "`!sp zh` を入力すると味方ボットが中国語を話し、`!sp en` で英語、`!sp ru` でロシア語、`!sp ja` で日本語を話します。翻訳は100％完成していないので、少しお待ちください。",
            "これは非営利プロジェクトです。もしこのスクリプトが気に入ったら、フィードバックや貢献、サポート、または私にコーヒーをおごっていただける場合は、スクリプトのワークショップをご確認ください"
        },
        say_play_pos = "私はポジション ",
        pos_select_closed = "ポジション選択は終了しました。",
        say_will_lose = "勝率が1％未満と推定されます。敗北を受け入れます！ナイスプレイ！",
        say_will_lose_2 = "勝率が1％未満と推定されます。ナイスプレイ！",
        say_will_win = "チーム戦の勝率が90％以上と推定されます",
        say_will_win_2 = "勝率が90％以上と推定されます。",
        can_try_tormentor = "トーメンターを試してみませんか？",
        say_come_def = "防御に来てください",
        got_a_kill = {"リスポーンタイマーを楽しんでね、ゲーム中ずっと数えることになるよ", "？", "もっと頑張らないとね！", "ez", "次はもっと注意してね", "まだウォームアップ中だよ"},
        got_big_kill = {"今日はスキルを持ってくるのを忘れたの？ezすぎる！", "次回はチャンスがあるかも…いや、ないかな。",
            "絶好調だ！次は誰？", "気にしないで、みんな始めはそんな感じ…下からスタートね。", "たまにはリスポーンタイマーを楽しんでね。"},
        got_big_kill_2 = {"これが本物のランページだ！", "連続キル？むしろ練習会だね", "そのスキルは返金したほうがいいよ", "気にしないで、みんな始めはそんな感じ…下からスタートね。"},
        got_big_kill_3 = {"これが挑戦だと思ってるの？ezなキルだね。もっと頑張ってください", "ezすぎる！もう少し楽しませてくれないかな、初心者？",
            "？？？？？？", "もっと上手いと思ってた", "これが全滅のやり方だよ", "誰か死んだ？あ、違った、初心者のことか。"},
        kill_streak_ended = {"...", "よくやった", "初心者チーム"},
        say_end = {"gg. 終了", "良いゲーム、よくやった", "初心者チーム。ez"},
        no_more_talking = {"忙しいから、また後でね", "黙れ、もう話すな", "プレイして、話さないで", "ゲームに集中して、これ以上返事しないよ"},
        got_first_blood = {
            'ファーストブラッド！何でも一番は私だ。',
            '楽勝のFB。もう負けてるね、試合は始まったばかりなのに。',
            '餌ありがとう。',
            'ナイスジョブ。',
            'いいプレイ。',
            'これは良い試合になりそうな予感がする。',
        },
        fretbots_wel_msgs = {
            {"#C0392B", "GLHF！標準のボットスクリプトはあまり面白くありません。このスクリプトはボットに不公平なアドバンテージを与え、ボットゲームをより挑戦的にします："},
            {"#9B59B6", "* 難易度スケールに投票でき、ボットが受けるボーナス量が変化します。"},
            {"#2980B9", "* 難易度 >= 0 の場合、ボットは追加の中立アイテムを取得し、毎分ゴールド、経験値、ステータスなどの公平なボーナスを受け取ります。"},
            {"#E59866", "* 難易度 >= 1 の場合、ボットは死亡時に上記のボーナスを受け取り、さらにマナ/HPリジェネの新しいボーナスも得られます。"},
            {"#1ABC9C", "* 難易度が増加するにつれて、ボットは中立アイテムをより早く取得し、より多くのボーナスを受け取ります。"},
            {"#F39C12", "* 難易度 >= 5 の場合、プレイヤーがボットを倒すと、倒したプレイヤーのゴールドが減少します。協力したプレイヤーも少しゴールドが減少します。ボットは死亡時に得られる経験値も減少します。"},
            {"#7FB3D5", "* 投票する難易度が高いほど、ボットが受けるボーナスが増え、ゲームがより挑戦的になります。"},
            {"#E74C3C", "* 高難易度は圧倒的またはストレスを感じる場合があります。自分とチームに適した難易度を選んでください。"},
            {"#D4AC0D", "* フィードバック用リンク:  https://steamcommunity.com/sharedfiles/filedetails/?id=3246316298 。アイデアを共有してくれた皆さん、感謝します。"},
            {"#839192", "* `-info` のような簡単なコマンドで難易度情報を表示したり、`-getroles` や他の興味深いコマンドを使用できます - 詳細はスクリプトのワークショップページをご覧ください。"}
        },
        newer_version = "スクリプトの新しいバージョンが利用可能です！Open Hyper AI (OHA) を再購読してスクリプトを更新するか、ヘルプが必要な場合は Workshop ページを確認してください。",
        fret_diff_open = "難易度投票が開始されました！デフォルトの難易度は：",
        fret_diff_vote_hint = "チャットで数字（0 ～ %d）を入力して投票してください。",
        fret_ally_scale_open = "自チームの味方ボットのボーナススケールを他チームと比較して投票してください。デフォルトのスケールは：",
        fret_ally_vote_hint = '数字（0 から %d）を入力してください。例: 0.5 を投票すると、味方ボットが敵ボットのボーナスの半分を得ます。注意：後で高難易度に挑戦するには、味方スケールが 0.5 以下で勝利する必要があります。',
        fret_default_diff_hint = "デフォルトの難易度は：%d。数字を入力して投票してください。",
        fret_talent_warn = " は非常に才能があります！",
        fret_killer_panelty = "%s に対するキルのバランス報酬。ゴールド：%d",
        fret_killer_awards = '[キラー報酬のバランス]',
        fret_select_diff = "選択した難易度：",
        fret_default_diff_limit = "高難易度で圧倒される可能性のあるゲームに不慣れな場合でも、皆様のゲーム体験を守るために、現在ホストが選択できる最大難易度は：%dです。ホストは、難易度%dの試合で少なくとも%d回勝利しなければ、難易度%dを選択できません。難易度を%dに設定します。",
        fret_select_ally_scale = "。味方ボットのボーナススケール：",
        fret_player_total_networth = "プレイヤーの総資産：%dk",
        fret_bot_total_networth = "ボットの総資産：%dk",
        fret_vote_for = "%s が難易度に投票：%s。",
        fret_role_determined = "ボットの役割が決定しました。",
        fret_role_rad = "Radiant チームの役割：",
        fret_role_dire = "Dire チームの役割：",
        fret_role_position = "ポジション ",
        fret_voting_ends = "投票はあと %d 秒で終了します！",
        fret_diff_selected = "選択された難易度：",
        fret_found_netural_item = "中立アイテムを見つけました: ",
        fret_vote_for_ally = '%s が味方のスケールに投票しました: %s。',
        fret_ally_scale_ended = "味方ボットのボーナススケールが選択されました: ",
        fret_req_error_msg = "エラーが発生しました！後でもう一度お試しください。",
        fret_new_diff = "新しい利用可能な難易度: %d",
        random_responses = {
            "?", 'glhf', 'gg',
            "いいね、うちの犬の方が上手いよ。",
            "プレイに集中すれば勝率が上がるかもね。",
            "クリープの方が君よりうまくファームしてる。",
            "ボットと遊んでるのは分かってるよね？",
            "これが君のベスト？俺のズボンの中のやつの方がマシだよ。",
            "心配しないで、ただのポジション6だし、何も新しくないよ。",
            "落ち着け、君が下手なのは君のせいじゃない…いや、やっぱり君のせいだ。",
            "天才的なプレイだね。",
            "本当に天才だ。",
            "君とやるDotaは楽しいね。",
            "話すのはタダ、それが君が唯一できることだよ。",
            "次はテキストで勝つゲームを試してみたら？",
            "犬が吠えてたのかな？",
            "君みたいなプレイヤーは敵チームにとって最高の楽しみだよ。",
            "君、脳を使ってないでプレイしてるでしょ？",
            "ゲームセンス？聞いたことない？",
            "君の判断力は中立クリープよりもランダムだね。",
            "敵チームが君の子供じみたプレイに感謝してるよ。",
            "その投げのリプレイ見れる？コメディの金字塔だね！",
            "終了ボタンがあるって知ってる？",
            "お、オンラインだ！でも君のプレイはオフラインだね。",
            "誰かこの天才に脳みそを買ってやってくれ。",
            "マウスから手を離さないで。",
            "マウスが壊れた？それとも君の頭が？",
            "その調子で続けて。",
            "アドバイス：君はボット相手に無駄話してるだけだよ。",
            "自分が何やってるかわかってるの？",
            "おめでとう、タイプはできるんだね！",
            "君のチームワークはボットと同じだよ。",
            "私たちのチームワークもボット並みだね。",
            "コーチを呼んで、迷子の魂がいるぞ。",
            "君のヒーローは強いけど、君のプレイはその逆だね。",
            "このペースだと今日はただの敗北提供だね。",
            "フィードしに行って、毎分ゴールドを敵にあげてくれ！",
            "お願いだから退場して、君がいない方が簡単だよ。",
            "君、わざと負けようとしてるの？うまくやってるね。",
            "その貧弱な指でキーボードを叩いて勝つつもり？",
            "黙ってくれ、みんなのためだよ。",
            "君はこのゲームのマッチングに基準がない証拠だよ、ボットプレイヤー。"
        },
    },
}

if Customize and Customize.Enable and Localization[Customize.Localization] then
    LanguageCode = Customize.Localization
else
    Customize.Localization = LanguageCode
end

function X.Supported(key)
    return Localization[key] ~= nil
end

function X.GetLocale()
    return Customize.Localization or LanguageCode
end

function X.Get(key)
    local localeSet = Localization[X.GetLocale()] or Localization['en']
    local res = localeSet[key] or Localization['en'][key]
    return res
end

return X
